diff --git a/BUILDING.md b/BUILDING.md index c2d460d1..a40f1dbf 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -56,7 +56,44 @@ sudo docker run --rm \ ## ==> $PWD/build/xpu-smi*.deb generated ``` -# Build .rpm package for Redhat / CentOS 7 +# Build .deb package for Debian 10 / 12 + +```sh +# in /tmp/xpum_src + +# Create builder +BASE_VERSION=10 # or 12 +sudo docker build \ +--build-arg http_proxy=$http_proxy \ +--build-arg https_proxy=$https_proxy \ +--iidfile /tmp/xpum_builder_debian_$BASE_VERSION.iid \ +-f builder/Dockerfile.builder-debian$BASE_VERSION . + +# Build xpumanager package +rm -fr build +sudo docker run --rm \ + -v $PWD:$PWD \ + -u $UID \ + -e CCACHE_DIR=$PWD/.ccache \ + -e CCACHE_BASEDIR=$PWD \ + $(cat /tmp/xpum_builder_debian_$BASE_VERSION.iid) $PWD/build.sh + +## ==> $PWD/build/xpumanager*.deb generated + +# Build xpu-smi package +rm -fr build +sudo docker run --rm \ + -v $PWD:$PWD \ + -u $UID \ + -e CCACHE_DIR=$PWD/.ccache \ + -e CCACHE_BASEDIR=$PWD \ + $(cat /tmp/xpum_builder_debian_$BASE_VERSION.iid) $PWD/build.sh -DDAEMONLESS=ON + +## ==> $PWD/build/xpu-smi*.deb generated +``` + +# Build .rpm package for Redhat / CentOS 7 + ```sh # in /tmp/xpum_src diff --git a/builder/Dockerfile.builder-debian b/builder/Dockerfile.builder-debian10 similarity index 100% rename from builder/Dockerfile.builder-debian rename to builder/Dockerfile.builder-debian10 diff --git a/builder/Dockerfile.builder-debian12 b/builder/Dockerfile.builder-debian12 new file mode 100644 index 00000000..f199c2c0 --- /dev/null +++ b/builder/Dockerfile.builder-debian12 @@ -0,0 +1,77 @@ +FROM debian:12.7@sha256:e11072c1614c08bf88b543fcfe09d75a0426d90896408e926454e88078274fcb + +ARG L0_SRC_URL=https://github.com/oneapi-src/level-zero/archive/refs/tags/v1.8.5.tar.gz +ARG CMAKE_INSTALLER_URL=https://cmake.org/files/v3.20/cmake-3.20.0-linux-x86_64.sh +ARG METEE_URL=https://github.com/intel/metee/archive/refs/tags/3.1.3.tar.gz +ARG IGSC_URL=https://github.com/intel/igsc/archive/refs/tags/V0.8.4.tar.gz +ARG ZLIB_VERSION=v1.3 +ARG GRPC_VERSION=v1.56.2 +ARG CARES_VERSION=cares-1_19_1 + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && apt-get install --no-install-recommends -y autoconf automake build-essential ccache doxygen \ + dpkg-dev git gcc g++ libssl-dev libtool liblua5.2-0 libudev-dev pkg-config python3-full python3-dev python3-pip \ + wget zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libreadline-dev libffi-dev \ + apt-transport-https ca-certificates curl && \ + rm -rf /var/lib/apt/lists/* + +RUN mkdir cmake && \ + cd cmake && \ + wget -qc --no-check-certificate $CMAKE_INSTALLER_URL -O cmake.sh && \ + chmod +x cmake.sh && \ + ./cmake.sh --skip-license && \ + rm -f cmake.sh + +ENV PATH "/cmake/bin:${PATH}" + +COPY builder/requirements.txt /tmp/requirements.txt + +RUN python3 -m venv /venv && \ + /venv/bin/python -m pip --proxy=$http_proxy install -r /tmp/requirements.txt + +ENV PATH "/venv/bin:${PATH}" + +RUN git clone --recurse-submodules --depth 1 -b $GRPC_VERSION https://github.com/grpc/grpc && \ + cd /grpc/third_party/zlib && \ + git pull https://github.com/madler/zlib $ZLIB_VERSION && \ + # fix CVE-2023-45853 by removing minizip code + rm -rf contrib/minizip && \ + cd /grpc/third_party/cares/cares/ && \ + git pull https://github.com/c-ares/c-ares.git $CARES_VERSION && \ + cd /grpc && \ + mkdir -p cmake/build && \ + cd cmake/build && \ + cmake -DgRPC_INSTALL=ON \ + -DgRPC_BUILD_TESTS=OFF \ + -DCMAKE_CXX_STANDARD=14 \ + ../.. && \ + make -j4 && make install && \ + rm -fr /grpc + +RUN wget -qc --no-check-certificate $L0_SRC_URL -O - | tar -xz && \ + cd /level-zero-* && \ + mkdir build && \ + cd build && \ + cmake .. && \ + make -j4 && \ + make install && \ + rm -fr /level-zero-* + +RUN wget -qc --no-check-certificate $METEE_URL -O - | tar -xz && \ + cd /metee-* && \ + mkdir build && \ + cd build && \ + cmake .. && \ + make -j4 && \ + make install + +RUN wget -qc --no-check-certificate $IGSC_URL -O - | tar -xz && \ + cd /igsc-* && \ + mkdir build && \ + cd build && \ + cmake .. && \ + make -j4 && \ + make install + +RUN ldconfig