Gentoo Archives: gentoo-commits

From: Andrew Ammerlaan <andrewammerlaan@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/nvidia-cuda-sdk/
Date: Tue, 11 Jan 2022 13:26:28
Message-Id: 1641907580.b8908ee8a65cb1876409ba6896abe6fac04a55b0.andrewammerlaan@gentoo
1 commit: b8908ee8a65cb1876409ba6896abe6fac04a55b0
2 Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jan 11 13:25:44 2022 +0000
4 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
5 CommitDate: Tue Jan 11 13:26:20 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8908ee8
7
8 dev-util/nvidia-cuda-sdk: add version 11.5.1
9
10 Closes: https://bugs.gentoo.org/760522
11 Package-Manager: Portage-3.0.30, Repoman-3.0.3
12 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
13
14 dev-util/nvidia-cuda-sdk/Manifest | 1 +
15 .../nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild | 140 +++++++++++++++++++++
16 2 files changed, 141 insertions(+)
17
18 diff --git a/dev-util/nvidia-cuda-sdk/Manifest b/dev-util/nvidia-cuda-sdk/Manifest
19 index e80c872ce2fa..0ec3c2e9bff3 100644
20 --- a/dev-util/nvidia-cuda-sdk/Manifest
21 +++ b/dev-util/nvidia-cuda-sdk/Manifest
22 @@ -1 +1,2 @@
23 DIST cuda_10.2.89_440.33.01_linux.run 2645419389 BLAKE2B 236aa70a7b45e3636c2c229fffa7d1ca0699ab4365865a73edab607a209c42c2899133dd6a83c61c5929fa754668ad15aec4d847639af1c00a8e6657c8487c77 SHA512 ad8da539ff5df7caf411d1e497ff3d6978cfa8a1fd9150fa4846089e92a604ea56be8631f3efdfe7229a655b8d2d28e6edb32f5731530a77d6f00241cc7aab6e
24 +DIST cuda_11.5.1_495.29.05_linux.run 3420998120 BLAKE2B 0d3f9626f97c60291397ebd0edc04e2c84942473d943d95af6fae244e5809721335bb90eaa6c019c9391de516d20599ca5631e99764616b6d25eacf1899d99d9 SHA512 71fb354714cac09265b5102223f919e34e3a8503593dd4f2e7b9542ae7787de96d64c490276b36b685da9e691cc2704419b67cfa376dcd3647e4d0f93b02db9b
25
26 diff --git a/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild b/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild
27 new file mode 100644
28 index 000000000000..f919d837304d
29 --- /dev/null
30 +++ b/dev-util/nvidia-cuda-sdk/nvidia-cuda-sdk-11.5.1.ebuild
31 @@ -0,0 +1,140 @@
32 +# Copyright 1999-2022 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=7
36 +
37 +inherit cuda flag-o-matic portability toolchain-funcs unpacker
38 +
39 +DRIVER_PV="495.29.05"
40 +
41 +DESCRIPTION="NVIDIA CUDA Software Development Kit"
42 +HOMEPAGE="https://developer.nvidia.com/cuda-zone"
43 +SRC_URI="https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux.run"
44 +S="${WORKDIR}/builds/cuda_samples"
45 +
46 +LICENSE="CUDPP"
47 +SLOT="0/${PV}"
48 +KEYWORDS="~amd64 ~amd64-linux"
49 +IUSE="+cuda debug +doc +examples opencl mpi"
50 +
51 +RDEPEND="
52 + ~dev-util/nvidia-cuda-toolkit-${PV}
53 + media-libs/freeglut
54 + examples? (
55 + media-libs/freeimage
56 + media-libs/glew:0=
57 + !prefix? ( >=x11-drivers/nvidia-drivers-${DRIVER_PV}[uvm(+)] )
58 + mpi? ( virtual/mpi )
59 + )"
60 +DEPEND="${RDEPEND}"
61 +BDEPEND="virtual/pkgconfig"
62 +
63 +RESTRICT="test"
64 +
65 +QA_EXECSTACK=(
66 + opt/cuda/sdk/0_Simple/cdpSimplePrint/cdpSimplePrint
67 + opt/cuda/sdk/0_Simple/cdpSimpleQuicksort/cdpSimpleQuicksort
68 + opt/cuda/sdk/bin/x86_64/linux/release/cdpSimplePrint
69 + opt/cuda/sdk/bin/x86_64/linux/release/cdpSimpleQuicksort
70 + )
71 +
72 +src_prepare() {
73 + cuda_src_prepare
74 +
75 + export RAWLDFLAGS="$(raw-ldflags)"
76 +
77 + local file
78 + while IFS="" read -d $'\0' -r file; do
79 + sed \
80 + -e 's:-O[23]::g' \
81 + -e "/LINK/s:gcc:$(tc-getCC) ${LDFLAGS}:g" \
82 + -e "/LINK/s:g++:$(tc-getCXX) ${LDFLAGS}:g" \
83 + -e "/CC/s:gcc:$(tc-getCC):g" \
84 + -e "/GCC/s:g++:$(tc-getCXX):g" \
85 + -e "/NVCC /s|\(:=\).*|:= ${EPREFIX}/opt/cuda/bin/nvcc|g" \
86 + -e "/ CFLAGS/s|\(:=\)|\1 ${CFLAGS}|g" \
87 + -e "/ CXXFLAGS/s|\(:=\)|\1 ${CXXFLAGS}|g" \
88 + -e "/NVCCFLAGS/s|\(:=\)|\1 ${NVCCFLAGS} |g" \
89 + -e 's:-Wimplicit::g' \
90 + -e "s|../../common/lib/linux/\$(OS_ARCH)/libGLEW.a|$($(tc-getPKG_CONFIG) --libs glew)|g" \
91 + -e "s|../../common/lib/\$(OSLOWER)/libGLEW.a|$($(tc-getPKG_CONFIG) --libs glew)|g" \
92 + -e "s|../../common/lib/\$(OSLOWER)/\$(OS_ARCH)/libGLEW.a|$($(tc-getPKG_CONFIG) --libs glew)|g" \
93 + -i "${file}" || die
94 + done < <(find . -type f -name 'Makefile' -print0)
95 +
96 + # Upstream suggested us skip cudaNvSci https://github.com/NVIDIA/cuda-samples/issues/22
97 + rm -rf 0_Simple/cudaNvSci || die
98 + rm -rf common/inc/GL || die
99 + find . -type f -name '*.a' -delete || die
100 +
101 + eapply_user
102 +}
103 +
104 +src_compile() {
105 + use examples || return
106 + local myopts=("verbose=1")
107 + use debug && myopts+=("dbg=1")
108 + export FAKEROOTKEY=1 # Workaround sandbox issue in #462602
109 + emake \
110 + cuda-install="${EPREFIX}/opt/cuda" \
111 + CUDA_PATH="${EPREFIX}/opt/cuda/" \
112 + MPI_GCC=10 \
113 + "${myopts[@]}"
114 +}
115 +
116 +src_test() {
117 + addwrite /dev/nvidiactl
118 + addwrite /dev/nvidia0
119 +
120 + local i
121 + for i in {0..9}*/*; do
122 + emake -C "${i}" run
123 + done
124 +}
125 +
126 +src_install() {
127 + local f t crap=( *.txt Samples.htm* )
128 +
129 + if use doc; then
130 + ebegin "Installing docs ..."
131 + while IFS="" read -d $'\0' -r f; do
132 + treecopy "${f}" "${ED}"/usr/share/doc/${PF}/
133 + done < <(find -type f \( -name 'readme.txt' -o -name '*.pdf' \) -print0)
134 +
135 + while IFS="" read -d $'\0' -r f; do
136 + docompress -x "${f#${ED}}"
137 + done < <(find "${ED}"/usr/share/doc/${PF}/ -type f -name 'readme.txt' -print0)
138 + eend "Done"
139 + fi
140 +
141 + ebegin "Cleaning before installation..."
142 + for f in "${crap[@]}"; do
143 + rm -f "${f}" || die
144 + done
145 + find -type f \( -name '*.o' -o -name '*.pdf' -o -name 'readme.txt' \) -delete || die
146 + eend "Done"
147 +
148 + ebegin "Moving files..."
149 + while IFS="" read -d $'\0' -r f; do
150 + t="$(dirname ${f})"
151 + if [[ ${t/obj\/} != ${t} || ${t##*.} == a ]]; then
152 + continue
153 + fi
154 + if [[ -x ${f} ]]; then
155 + exeinto /opt/cuda/sdk/"${t}"
156 + doexe "${f}"
157 + else
158 + insinto /opt/cuda/sdk/"${t}"
159 + doins "${f}"
160 + fi
161 + done < <(find . -type f -print0)
162 + eend "Done"
163 +}
164 +
165 +pkg_postinst() {
166 + if use examples && use prefix; then
167 + ewarn "Gentoo Prefix does not manage kernel modules. You need to make certain"
168 + ewarn "the function counterpart to >=x11-drivers/nvidia-drivers-${DRIVER_PV}"
169 + ewarn "is available from the host"
170 + fi
171 +}