diff --git a/.ci/Dockerfile.debian12 b/.ci/Dockerfile.debian12 index 332481319f4..71a8860be47 100644 --- a/.ci/Dockerfile.debian12 +++ b/.ci/Dockerfile.debian12 @@ -37,7 +37,8 @@ RUN apt-get update && \ linux-headers-generic \ pkg-config nasm \ libnuma-dev \ - libfuse3-dev + libfuse3-dev \ + lsb-release RUN echo "deb [trusted=yes] http://nbu-nfs.gtm.nvidia.com/auto/mswg/release/MLNX_OFED/MLNX_OFED_LINUX-${MOFED_VER}/MLNX_OFED_LINUX-${MOFED_VER}-debian12.1-$(dpkg-architecture -qDEB_HOST_GNU_CPU)/DEBS/ ./" > /etc/apt/sources.list.d/ofed.list && \ apt update && KVERSION=$(ls /lib/modules) apt install -y mlnx-ofed-basic-user-only diff --git a/.ci/Dockerfile.ubuntu20.04 b/.ci/Dockerfile.ubuntu20.04 index 16b35a83b4a..7adcbc53821 100644 --- a/.ci/Dockerfile.ubuntu20.04 +++ b/.ci/Dockerfile.ubuntu20.04 @@ -36,7 +36,8 @@ RUN apt-get update && \ linux-headers-generic \ pkg-config nasm \ libnuma-dev \ - libfuse3-dev + libfuse3-dev \ + lsb-release RUN echo "deb [trusted=yes] https://urm.nvidia.com/artifactory/sw-nbu-swx-ci-debian-local focal liburing1" > /etc/apt/sources.list.d/liburing.list && \ apt update && apt install -y liburing-dev diff --git a/.ci/Dockerfile.ubuntu22.04 b/.ci/Dockerfile.ubuntu22.04 index cb8042c792f..551c6421aae 100644 --- a/.ci/Dockerfile.ubuntu22.04 +++ b/.ci/Dockerfile.ubuntu22.04 @@ -37,7 +37,8 @@ RUN apt-get update && \ linux-headers-generic \ pkg-config nasm \ libnuma-dev \ - libfuse3-dev + libfuse3-dev \ + lsb-release RUN wget -qO - https://www.mellanox.com/downloads/ofed/RPM-GPG-KEY-Mellanox | \ sudo apt-key add - && \ diff --git a/.ci/Dockerfile.ubuntu24.04 b/.ci/Dockerfile.ubuntu24.04 new file mode 100644 index 00000000000..c2d5f7e7895 --- /dev/null +++ b/.ci/Dockerfile.ubuntu24.04 @@ -0,0 +1,57 @@ +FROM ubuntu:24.04 +ARG _UID=6213 +ARG _GID=11429 +ARG _LOGIN=swx-jenkins +ARG _HOME=/var/home/$_LOGIN +ARG DEBIAN_FRONTEND=noninteractive +ARG MOFED_VER +ENV TZ=Etc/UTC +USER root + +RUN apt-get update && \ + apt-get install -y \ + git \ + vim \ + wget \ + curl \ + python3 \ + dpkg-dev \ + sudo \ + debhelper \ + debsigs \ + autotools-dev \ + dh-python \ + libiscsi-dev \ + meson \ + uuid-dev \ + libssl-dev \ + libaio-dev \ + libncurses-dev \ + libcunit1-dev \ + patchelf \ + python3-pyelftools \ + python3-requests \ + python3-pip \ + liburing-dev \ + linux-headers-generic \ + pkg-config nasm \ + libnuma-dev \ + libfuse3-dev \ + lsb-release + +RUN wget -qO - https://www.mellanox.com/downloads/ofed/RPM-GPG-KEY-Mellanox | \ + sudo apt-key add - && \ + echo "deb [trusted=yes] http://nbu-nfs.gtm.nvidia.com/auto/mswg/release/MLNX_OFED/MLNX_OFED_LINUX-${MOFED_VER}/MLNX_OFED_LINUX-${MOFED_VER}-ubuntu24.04-$(dpkg-architecture -qDEB_HOST_GNU_CPU)/DEBS/ ./" > /etc/apt/sources.list.d/ofed.list && \ + apt update && KVERSION=$(ls /lib/modules) apt install -y mlnx-ofed-basic-user-only && \ + apt-get download libxlio-dev && dpkg --force-all -i libxlio-dev* + +RUN echo "${_LOGIN} ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers +RUN mkdir -p $_HOME +RUN groupadd -f -g "$_GID" "$_LOGIN" +RUN useradd -u "$_UID" -g "$_GID" -s /bin/bash -m -d ${_HOME} "$_LOGIN" +RUN chown $_LOGIN $_HOME + +SHELL ["/bin/bash"] + +USER "${_LOGIN}" +ENTRYPOINT [ "/bin/bash", "--login", "--rcfile", "/etc/bashrc", "-c" ] diff --git a/.ci/build_deb.sh b/.ci/build_deb.sh index 07885c03ec1..93ecfd764b7 100755 --- a/.ci/build_deb.sh +++ b/.ci/build_deb.sh @@ -16,6 +16,12 @@ if [ -z "$VER" ]; then export VER=$(echo $branch | grep -o '[0-9]\+\(\.[0-9]\+\)*') fi +if test -n "$ghprbPullId" ; then + REV="pr${ghprbPullId}" +else + REV="${BUILD_NUMBER:-1}" +fi + function pack_dist() { git submodule init git submodule update @@ -38,7 +44,7 @@ function pack_dist() { function generate_changelog() { today=$(date +"%a, %d %b %Y %T %z") - sed -e "s/@PACKAGE_VERSION@/$VER/" -e "s/@PACKAGE_REVISION@/${BUILD_NUMBER:-1}/" \ + sed -e "s/@PACKAGE_VERSION@/$VER/" -e "s/@PACKAGE_REVISION@/${REV}/" \ -e 's/@PACKAGE_BUGREPORT@/support@mellanox.com/' -e "s/@BUILD_DATE_CHANGELOG@/$today/" \ debian/changelog.in > debian/changelog } diff --git a/.ci/job_matrix.yaml b/.ci/job_matrix.yaml index 1cb7e96624c..3c617a2edad 100644 --- a/.ci/job_matrix.yaml +++ b/.ci/job_matrix.yaml @@ -20,7 +20,7 @@ kubernetes: privileged: true env: - MOFED_VER: 25.01-0.5.6.0 + MOFED_VER: 25.04-0.6.1.0 REGISTRY_AUTH_FILE: '/mnt/secret_podman/config_podman.json' GIT_SSH_COMMAND: 'ssh -o StrictHostKeyChecking=no' @@ -32,6 +32,7 @@ secret_volumes: runs_on_dockers: - {file: '.ci/Dockerfile.ubuntu20.04', name: 'ubuntu20_04', arch: 'aarch64', build_args: '--build-arg MOFED_VER=$MOFED_VER', tag: '$MOFED_VER'} - {file: '.ci/Dockerfile.ubuntu22.04', name: 'ubuntu22_04', arch: 'aarch64', build_args: '--build-arg MOFED_VER=$MOFED_VER', tag: '$MOFED_VER'} + - {file: '.ci/Dockerfile.ubuntu24.04', name: 'ubuntu24_04', arch: 'aarch64', build_args: '--build-arg MOFED_VER=$MOFED_VER', tag: '$MOFED_VER'} # - {file: '.ci/Dockerfile.centos7.9.2009', name: 'centos7_9', arch: 'aarch64', build_args: '--build-arg MOFED_VER=$MOFED_VER', tag: '$MOFED_VER'} - {file: '.ci/Dockerfile.centos8', name: 'centos8_stream', arch: 'aarch64', build_args: '--build-arg MOFED_VER=$MOFED_VER', tag: '$MOFED_VER'} - {file: '.ci/Dockerfile.openeuler.20.03', name: 'openeuler20_03', arch: 'aarch64', build_args: '--build-arg MOFED_VER=$MOFED_VER', tag: '$MOFED_VER'} @@ -69,6 +70,7 @@ steps: containerSelector: - "{name: 'ubuntu20_04', variant:1}" - "{name: 'ubuntu22_04', variant:1}" + - "{name: 'ubuntu24_04', variant:1}" - "{name: 'centos7_9', variant:1}" - "{name: 'centos8_stream', variant:1}" - "{name: 'openeuler20_03', variant:1}" diff --git a/.ci/upload.sh b/.ci/upload.sh index 9f29a27c668..b44021ffae0 100755 --- a/.ci/upload.sh +++ b/.ci/upload.sh @@ -41,11 +41,14 @@ upload_deb_urm() { test -e $deb_pkg echo "INFO: Signing package ${deb_pkg##*/}" # Debian 12 doesn't have dpkg-sig, so use debsigs - if [[ "$(get_os_name)" == "debian_12" ]]; then - debsigs --sign=origin -k ${gpg_key_name} ${deb_pkg} - else - dpkg-sig -k ${gpg_key_name} -s builder ${deb_pkg} - fi + case "$(get_os_name)" in + debian_12|ubuntu_24.04) + debsigs --sign=origin -k ${gpg_key_name} ${deb_pkg} + ;; + *) + dpkg-sig -k ${gpg_key_name} -s builder ${deb_pkg} + ;; + esac MD5=$(md5sum $deb_pkg | awk '{print $1}') SHA1=$(shasum -a 1 $deb_pkg | awk '{ print $1 }') SHA256=$(shasum -a 256 $deb_pkg | awk '{ print $1 }') diff --git a/debian/rules b/debian/rules index a90a8c7db3a..50a9ce118ae 100755 --- a/debian/rules +++ b/debian/rules @@ -68,9 +68,6 @@ override_dh_auto_install: install -m 644 include/spdk/pci_ids.h debian/tmp$(install_datadir)/include/spdk install -p -m 644 scripts/bash-completion/spdk debian/tmp/etc/bash_completion.d sed -i -e 's/ rpc.py/ spdk_rpc.py/' debian/tmp/etc/bash_completion.d/spdk - for so in debian/tmp$(pkg_prefix)/lib/lib*so.*; do \ - patchelf --set-rpath $(pkg_prefix)/lib --force-rpath $$so || true; \ - done rm -rf debian/tmp$(pkg_prefix)/share/dpdk/examples (cd scripts ; python3 setup.py install --install-layout=deb --root=../debian/tmp ) mv debian/tmp/usr/bin/spdkcli.py debian/tmp/usr/bin/spdkcli @@ -82,6 +79,13 @@ override_dh_installdeb: dh_installdeb rm debian/*/DEBIAN/conffiles +# Run patchelf after strip to avoid corruption with patchelf > 0.14 (RM 4406077) +override_dh_strip: + dh_strip + for so in debian/*/$(pkg_prefix)/lib/lib*so.*; do \ + patchelf --set-rpath $(pkg_prefix)/lib --force-rpath $$so || true; \ + done + override_dh_shlibdeps: dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l$(shell pwd)/debian/tmp$(pkg_prefix)/lib