Package: release.debian.org Severity: normal User: [email protected] Usertags: unblock
Please unblock package nvidia-cuda-toolkit Annotated changelog: * Use a snapshot of openjdk-8-jre (8u292-b10-3). currently we use a much older snapshot on ppc64el * Tighten library dependencies. right now it is possible to e.g. use an ancient version of libcufft10 to satisfy the dependency of libcufftw10: ii libcufft10:amd64 10.1.105-1 amd64 NVIDIA cuFFT Library ii libcufftw10:amd64 11.1.1+~10.4.1.152~11.2.2-2 amd64 NVIDIA cuFFTW Library This is not a supported combination, I have no idea if it would actually work... So better use very strict dependencies if cuda toolkit libraries depend on each other. * Add (tesla-)470 driver as alternate dependency. we will probably switch to the 470 driver series during the lifetime of bullseye since 470 will provide security updates for the next three years. With this change we don't have to update nvidia-cuda-toolkit at that time again. * Update watch file. fix parsing the version from the changed website Besides that, there are some documentation updates. cuda-gdb compile flags have been wrapped for better manageability but are otherwise unchanged build-depends are a bit shuffled for consistency (if something is needed by nvidia-openjdk-8, too, use the -dev package for [!arm64]) (unfortunately we still can't build nvidia-openjdk-8 from source since it needs itself to boostrap) unblock nvidia-cuda-toolkit/11.2.2-3 Andreas
diff --git a/debian/changelog b/debian/changelog index 887afeb..17b52a0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +nvidia-cuda-toolkit (11.2.2-3) unstable; urgency=medium + + * Use a snapshot of openjdk-8-jre (8u292-b10-3). + * Tighten library dependencies. + * Add (tesla-)470 driver as alternate dependency. + * Update watch file. + + -- Andreas Beckmann <[email protected]> Sat, 24 Jul 2021 00:01:52 +0200 + nvidia-cuda-toolkit (11.2.2-2) unstable; urgency=medium * Use a snapshot of openjdk-8-jre (8u292-b10-0+deb9u1) for amd64. diff --git a/debian/control b/debian/control index 517d7fb..1e727ce 100644 --- a/debian/control +++ b/debian/control @@ -28,8 +28,8 @@ Build-Depends-Arch: # for nsight-compute/nsight-systems libasound2-dev [!arm64], libdbus-1-3 [amd64], - libegl1 [amd64], libfontconfig1 [amd64], + libfreetype-dev [!arm64] | libfreetype6-dev [!arm64], libgl1 [amd64], libgssapi-krb5-2 [amd64], libnss3 [amd64], @@ -37,12 +37,11 @@ Build-Depends-Arch: libxcomposite1 [amd64], libxcursor1 [amd64], libxdamage1 [amd64], - libxi6 [!arm64], + libxi-dev [!arm64], libxkbcommon-x11-0 [amd64], libxrandr2 [amd64], - libxtst6 [!arm64], + libxtst-dev [!arm64], # for nvidia-openjdk-8-jre - libfreetype-dev [!arm64] | libfreetype6-dev [!arm64], libgif-dev [!arm64], libjpeg-dev (>= 1:0) [!arm64] | libjpeg62-dev [!arm64], liblcms2-dev [!arm64], @@ -64,8 +63,8 @@ Depends: ${nvidia-profiler:eq:Version} [${cuda:arch:has-nvidia-profiler}], nvidia-cuda-dev (= ${binary:Version}), nvidia-opencl-dev (= ${binary:Version}) | opencl-dev, - g++-${cuda:gcc:DefaultVersion} | g++-10 | clang-10 | g++-9 | clang-9 | g++-8 | clang-8 | clang-7 | g++-7 | clang-6.0 | clang (<< 1:11~) | g++-6 | g++-5, - gcc-${cuda:gcc:DefaultVersion} | gcc-10 | clang-10 | gcc-9 | clang-9 | gcc-8 | clang-8 | clang-7 | gcc-7 | clang-6.0 | clang (<< 1:11~) | gcc-6 | gcc-5, + g++-${cuda:gcc:DefaultVersion} | g++-10 | clang-11 | clang-10 | g++-9 | clang-9 | g++-8 | clang-8 | clang-7 | g++-7 | clang-6.0 | clang (<< 1:12~) | g++-6, + gcc-${cuda:gcc:DefaultVersion} | gcc-10 | clang-11 | clang-10 | gcc-9 | clang-9 | gcc-8 | clang-8 | clang-7 | gcc-7 | clang-6.0 | clang (<< 1:12~) | gcc-6, ${shlibs:Depends}, ${misc:Depends}, Recommends: nvidia-cuda-toolkit-doc (= ${source:Version}), diff --git a/debian/gbp.conf b/debian/gbp.conf index aeb749c..b741131 100644 --- a/debian/gbp.conf +++ b/debian/gbp.conf @@ -10,9 +10,8 @@ component = [ 'amd64', 'ppc64el', 'arm64', - 'openjdk-8-source-8u252-b09-1-d9u1', - 'openjdk-8-source-8u292-b10-0-d9u1', - 'openjdk-8-jre-amd64-8u292-b10-0-d9u1', - 'openjdk-8-jre-ppc64el-8u252-b09-1-d9u1', + 'openjdk-8-source-8u292-b10-3', + 'openjdk-8-jre-amd64-8u292-b10-3', + 'openjdk-8-jre-ppc64el-8u292-b10-3', ] debian-branch = master diff --git a/debian/nvidia-cuda-toolkit.README.Debian b/debian/nvidia-cuda-toolkit.README.Debian index 837f37b..63a7663 100644 --- a/debian/nvidia-cuda-toolkit.README.Debian +++ b/debian/nvidia-cuda-toolkit.README.Debian @@ -11,57 +11,25 @@ It is worth noting that not all compilers can be used together with NVCC. Here is a list of possible combinations, partially based on [1]: ``` - | CUDA Toolkit Version | - CXX compiler | 8.0 | 9.0 | 9.1 | 9.2 | 10.0 | 10.1 |10.1u1 | 10.2 | 11.0 | 11.1 | - -------------+-------+-------+-------+-------+-------+-------+-------+------+------+------+ - GCC-10 | - | - | - | - | - | - | - | - | - | OK | - GCC-9 | - | - | - | - | - | - | - | - | OK | OK | - GCC-8 | - | - | - | - | - | OK | OK | OK | OK | OK | - GCC-7 | - | - | - | OK | OK | OK | OK | OK | OK | OK | - GCC-6 | - | OK | OK | OK | OK | OK | OK | OK | OK | OK | - GCC-5 | OK | OK | OK | OK | OK | OK | OK | OK | OK | OK | - -------------+-------+-------+-------+-------+-------+-------+-------+------+------+------+ - CLANG-10 | - | - | - | - | - | - | - | - | - | OK | - CLANG-9 | - | - | - | - | - | - | - | - | OK | OK | - CLANG-8 | - | - | - | - | - | - | OK | OK | OK | OK | - CLANG-7 | - | - | - | - | - | OK | OK | OK | OK | OK | - CLANG-6.0 | - | - | - | - | OK | OK | OK | OK | OK | OK | - CLANG-5.0 | - | - | - | OK | OK | OK | OK | OK | - | - | - CLANG-4.0 | - | - | OK | OK | OK | OK | OK | OK | - | - | - CLANG-3.9 | - | OK | OK | OK | OK | OK | OK | OK | - | - | - CLANG-3.8 | OK | OK | OK | OK | OK | OK | OK | OK | - | - | + CUDA Toolkit Version | Supported GCC Versions | Supported Clang Versions + ---------------------+------------------------+------------------------- + 11.4 | 6 - 10 | 6.0 - 11 + 11.3 | (5) 6 - 10 | (3.8) 6.0 - 11 + 11.2 | (5) 6 - 10 | (3.8) 6.0 - 11 + 11.1 | (5) 6 - 10 | (3.8) 6.0 - 10 + 11.0 | (5) 6 - 9 | (3.8) 6.0 - 9 + 10.2 | 5 - 8 | 3.8 - 8 + 10.1 Update 1 | 5 - 8 | 3.8 - 8 + 10.1 | 5 - 8 | 3.8 - 7 + 10.0 | 5 - 7 | 3.8 - 6.0 + 9.2 | 5 - 7 | 3.8 - 5.0 + 9.1 | 5 - 6 | 3.8 - 4.0 + 9.0 | 5 - 6 | 3.8 - 3.9 + 8.0 | 5 | 3.8 + 7.5 | 4.9 (5) | 3.6 ``` -In the above table, '?' means 'not tested', '-' means 'never work', -'OK' means 'should work'. - -CUDA 8.0 Specific ------------------ - -The recommended way, as declared in NEWS, to compile your CUDA application -with CUDA 8.0 is to globally use clang-3.8/clang++-3.8 as the C/CXX compiler -for your project. Example: - - CC=clang-3.8 make - -However, when you have to mix the use of GCC and CLANG, things differ. -Due to the difference on the default options of the two compilers, you -may have to add flags such as -fPIC/-fPIE or alike to CLANG's argument -list, to avoid the linkage failure as reported in BUG #861878 [2]. -See [3] for detail about these compiler options. Example: - - nvcc -ccbin clang-3.8 --compiler-options -fPIC ... - -Sidenotes ---------- - -Debian Stretch ships CUDA 8.0, and the same time its default GCC is -GCC-6. So we changed the default compiler to clang-3.8 for the CUDA 8.0 -package because Stretch ships no GCC-5. - [1] https://gist.github.com/ax3l/9489132 -[2] https://bugs.debian.org/861878 -[3] https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html Installing the CUDA Code Samples @@ -76,14 +44,16 @@ https://developer.nvidia.com/cuda-downloads#linux This download includes an old driver and the full toolkit, but unfortunately there is no separate download available for the Samples. -Install the Samples to ~/NVIDIA_CUDA-11.1_Samples/ with +Install the Samples to ~/NVIDIA_CUDA-11.2_Samples/ with - sh cuda_11.1.1_455.32.00_linux.run --silent --samples --samplespath=$HOME + sh cuda_11.2.2_460.32.03_linux.run --silent --samples --samplespath=$HOME (Adjust the filename if you downloaded a different version.) The following Debian packages are needed to build the examples: * freeglut3-dev + * libfreeimage-dev + * libglfw3-dev * libvulkan-dev * pkgconf This optional package will be used if it is installed, too: @@ -92,15 +62,15 @@ For using clang as host compiler, this package is needed as well: * libomp-dev To build the example programs, change to the directory where the Samples were -installed (by default: ~/NVIDIA_CUDA-11.1_Samples/) and run +installed (by default: ~/NVIDIA_CUDA-11.2_Samples/) and run MA_LIBDIR=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH) make CUDA_PATH=/usr CUDA_SEARCH_PATH=$MA_LIBDIR GLPATH=$MA_LIBDIR VULKAN_SDK_PATH=$MA_LIBDIR Optionally add HOST_COMPILER=... to select a different compiler for the host -parts of the code. Currently up to g++-10 and clang++-10 are supported. +parts of the code. Currently up to g++-10 and clang++-11 are supported. For more information on the Samples, please see https://developer.nvidia.com/cuda-code-samples - -- Andreas Beckmann <[email protected]> Mon, 09 Nov 2020 17:28:19 +0100 + -- Andreas Beckmann <[email protected]> Sun, 18 Jul 2021 01:02:40 +0200 diff --git a/debian/nvidia-openjdk-8-jre.lintian-overrides b/debian/nvidia-openjdk-8-jre.lintian-overrides index 33d71a7..d276dcc 100644 --- a/debian/nvidia-openjdk-8-jre.lintian-overrides +++ b/debian/nvidia-openjdk-8-jre.lintian-overrides @@ -10,5 +10,5 @@ package-contains-documentation-outside-usr-share-doc package-has-unnecessary-activation-of-ldconfig-trigger exit-in-shared-library repeated-path-segment +shared-library-lacks-prerequisites spelling-error-in-binary -spelling-error-in-copyright diff --git a/debian/rules b/debian/rules index f2dc84d..38e6afc 100755 --- a/debian/rules +++ b/debian/rules @@ -3,15 +3,32 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 -# most flags derived from gdb 8.2 in buster -# README.NVIDIA mentions --enable-targets="x86_64-apple-darwin,x86_64-unknown-linux-gnu,arm-elf-linux-gnu,m68k-unknown-linux-gnu" -CUDA_GDB_FLAGS = \ - --program-prefix=cuda- --with-gdb-datadir='$${prefix}/share/cuda-gdb' --with-jit-reader-dir='$${libdir}/cuda-gdb' --with-system-gdbinit='$${sysconfdir}/cuda-gdb/gdbinit' \ - --enable-cuda --enable-targets="$(DEB_HOST_GNU_TYPE),m68k-unknown-linux-gnu" --disable-nls \ - --disable-gdbtk --disable-shared --disable-readline --with-system-readline --with-expat --with-system-zlib --without-guile --with-babeltrace --enable-tui --with-lzma --with-python=python3 --enable-64-bit-bfd --disable-sim +# cuda-gdb/README mentions --enable-targets="x86_64-apple-darwin,x86_64-unknown-linux-gnu,arm-elf-linux-gnu,m68k-unknown-linux-gnu" +CUDA_GDB_FLAGS = +CUDA_GDB_FLAGS += --program-prefix=cuda- +CUDA_GDB_FLAGS += --with-gdb-datadir='$${prefix}/share/cuda-gdb' +CUDA_GDB_FLAGS += --with-jit-reader-dir='$${libdir}/cuda-gdb' +CUDA_GDB_FLAGS += --with-system-gdbinit='$${sysconfdir}/cuda-gdb/gdbinit' +CUDA_GDB_FLAGS += --enable-cuda +CUDA_GDB_FLAGS += --enable-targets="$(DEB_HOST_GNU_TYPE),m68k-unknown-linux-gnu" +CUDA_GDB_FLAGS += --disable-nls +# the following flags were taken from gdb 8.2 in buster +CUDA_GDB_FLAGS += --disable-gdbtk +CUDA_GDB_FLAGS += --disable-shared +CUDA_GDB_FLAGS += --disable-readline +CUDA_GDB_FLAGS += --with-system-readline +CUDA_GDB_FLAGS += --with-expat +CUDA_GDB_FLAGS += --with-system-zlib +CUDA_GDB_FLAGS += --without-guile +CUDA_GDB_FLAGS += --with-babeltrace ifneq (,$(filter $(DEB_HOST_ARCH),amd64)) CUDA_GDB_FLAGS += --with-intel-pt endif +CUDA_GDB_FLAGS += --enable-tui +CUDA_GDB_FLAGS += --with-lzma +CUDA_GDB_FLAGS += --with-python=python3 +CUDA_GDB_FLAGS += --enable-64-bit-bfd +CUDA_GDB_FLAGS += --disable-sim DEB_BUILD_MAINT_OPTIONS = hardening=+all DEB_CPPFLAGS_MAINT_APPEND = -I$(CURDIR)/nvidia-cuda-tree-$(DEB_HOST_ARCH)/cuda_cudart/include @@ -232,9 +249,6 @@ ifeq (amd64,$(DEB_HOST_ARCH)) chrpath -d build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/libQt5WebEngineCore.so.5 chrpath -d build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/libicu*.so.56 chrpath -d build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/libpapi.so.5 -else - chrpath -d build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/QdstrmImporter - chrpath -d build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/lib[ACDIPST]*.so endif $(RM) -v build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/libstdc++.so.6 $(RM) -v build/nsight_systems/$(NSIGHT_SYSTEMS_HOST_DIR)/libcrypto.so* @@ -300,7 +314,9 @@ endif endif dh_shlibdeps --remaining-packages -X/stubs/ -- -llibcuda $(RM) -r libcuda debian/shlibs.local - sed -i -r 's/XXXlibcuda1XXX/$${package:libcuda1}/g' debian/*.substvars + sed -r -i -e 's/XXXlibcuda1XXX/$${package:libcuda1}/g' \ + $(foreach lib,$(LIB_BASENAMES),-e 's/$(lib)$($(lib).SOVERSION)(,|$$)/$${$(lib):eq:Version}\1/g') \ + debian/*.substvars # running dh_strip is not permitted by the NVIDIA license override_dh_dwz: diff --git a/debian/rules.defs b/debian/rules.defs index 823d20c..51a055f 100644 --- a/debian/rules.defs +++ b/debian/rules.defs @@ -10,17 +10,24 @@ endif CUDA_ARCH_LIST_NO_OPENJDK += arm64 package_libcuda1.Debian += libcuda1 (>= $${nvidia:MinVersion}) [!armhf !ppc64el] | +package_libcuda1.Debian += libnvidia-tesla-470-cuda1 (>= $${nvidia:MinVersion}) [amd64 i386 arm64 ppc64el] | package_libcuda1.Debian += libnvidia-tesla-460-cuda1 (>= $${nvidia:MinVersion}) [amd64 i386 arm64 ppc64el] | +package_libcuda1.Ubuntu += libnvidia-compute-470 (>= $${nvidia:MinVersion}) [amd64 i386] | +package_libcuda1.Ubuntu += libnvidia-compute-470-server (>= $${nvidia:MinVersion}) [amd64 i386] | +package_libcuda1.Ubuntu += libnvidia-compute-465 (>= $${nvidia:MinVersion}) [amd64 i386] | +package_libcuda1.Ubuntu += libnvidia-compute-465-server (>= $${nvidia:MinVersion}) [amd64 i386] | package_libcuda1.Ubuntu += libnvidia-compute-460 (>= $${nvidia:MinVersion}) [amd64 i386] | package_libcuda1.Ubuntu += libnvidia-compute-460-server (>= $${nvidia:MinVersion}) [amd64 i386] | package_libnvidia-ml1.Debian += libnvidia-ml1 (>= $${nvidia:MinVersion}) [!armhf !ppc64el] | +package_libnvidia-ml1.Debian += libnvidia-tesla-470-ml1 (>= $${nvidia:MinVersion}) [amd64 i386 arm64 ppc64el] | package_libnvidia-ml1.Debian += libnvidia-tesla-460-ml1 (>= $${nvidia:MinVersion}) [amd64 i386 arm64 ppc64el] | package_libnvidia-ml1.Ubuntu = $(package_libcuda1.Ubuntu) package_driver.Debian += nvidia-driver (>= $${nvidia:MinVersion}) [!i386 !armhf !ppc64el] | +package_driver.Debian += nvidia-tesla-470-driver (>= $${nvidia:MinVersion}) [amd64 arm64 ppc64el] | package_driver.Debian += nvidia-tesla-460-driver (>= $${nvidia:MinVersion}) [amd64 arm64 ppc64el] | package_driver.Ubuntu = @@ -90,8 +97,7 @@ nsight-systems-target.VERSION = $(CUDA_VERSION_nsight_systems) DEFAULT_GCC_VERSION = 10 -OPENJDK_VERSION.default = 8u292-b10-0+deb9u1 -OPENJDK_VERSION.ppc64el = 8u252-b09-1~deb9u1 +OPENJDK_VERSION.default = 8u292-b10-3 NSIGHT_COMPUTE_DESKTOP_DIR.amd64 = linux-desktop-glibc_2_11_3-x64 NSIGHT_COMPUTE_DESKTOP_DIR.i386 = linux-desktop-glibc_2_11_3-x86 diff --git a/debian/watch b/debian/watch index a7a02b3..8850b23 100644 --- a/debian/watch +++ b/debian/watch @@ -1,2 +1,2 @@ version=4 -opts=searchmode=plain https://developer.nvidia.com/cuda-downloads https?://[-./0-9a-zA-Z]+/local_installers/cuda_([0-9.]+)_[0-9.]+_linux(?:_[0-9a-zA-Z]+)?.run +opts=searchmode=plain,downloadurlmangle=s/\\//g https://developer.nvidia.com/cuda-downloads https?:\\?/\\?/[-.\\/0-9a-zA-Z]+\\?/local_installers\\?/cuda_([0-9.]+)_[0-9.]+_linux(?:_[0-9a-zA-Z]+)?.run diff --git a/debian/watch.in b/debian/watch.in index 09f905f..9438093 100644 --- a/debian/watch.in +++ b/debian/watch.in @@ -1,2 +1,2 @@ version=4 -opts=searchmode=plain #CUDA_DOWNLOAD_URL# https?://[-./0-9a-zA-Z]+/local_installers/cuda_([0-9.]+)_[0-9.]+_linux(?:_[0-9a-zA-Z]+)?.run +opts=searchmode=plain,downloadurlmangle=s/\\//g #CUDA_DOWNLOAD_URL# https?:\\?/\\?/[-.\\/0-9a-zA-Z]+\\?/local_installers\\?/cuda_([0-9.]+)_[0-9.]+_linux(?:_[0-9a-zA-Z]+)?.run

