Gentoo Archives: gentoo-commits

From: Quentin Retornaz <gentoo@××××××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/libressl:master commit in: dev-lang/python/
Date: Wed, 02 Nov 2022 23:39:43
Message-Id: 1667432343.139be149283fcf5257268d147b8798096e59af70.quentin@gentoo
1 commit: 139be149283fcf5257268d147b8798096e59af70
2 Author: orbea <orbea <AT> riseup <DOT> net>
3 AuthorDate: Tue Nov 1 00:53:46 2022 +0000
4 Commit: Quentin Retornaz <gentoo <AT> retornaz <DOT> com>
5 CommitDate: Wed Nov 2 23:39:03 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=139be149
7
8 dev-lang/python: Remove old version
9
10 Signed-off-by: orbea <orbea <AT> riseup.net>
11 Closes: https://github.com/gentoo/libressl/pull/466
12 Signed-off-by: Quentin Retornaz <gentoo <AT> retornaz.com>
13
14 dev-lang/python/Manifest | 2 -
15 dev-lang/python/python-3.10.8.ebuild | 453 -----------------------------------
16 dev-lang/python/python-3.9.15.ebuild | 449 ----------------------------------
17 3 files changed, 904 deletions(-)
18
19 diff --git a/dev-lang/python/Manifest b/dev-lang/python/Manifest
20 index 80237e8..a3e1918 100644
21 --- a/dev-lang/python/Manifest
22 +++ b/dev-lang/python/Manifest
23 @@ -5,7 +5,5 @@ DIST Python-3.10.8.tar.xz.asc 833 BLAKE2B 1e94822a57d055f5db1a5d2915df24be9d6fd9
24 DIST Python-3.9.15.tar.xz 19712208 BLAKE2B a8490c998c89ed4e3e87ef48e3b5d622e5d06ebd7b8b79db564d668cd1f0c7fe89e0ef37ec4481ff82b30778e2be1a96c1b16199b9dce1f82de32f73b4343ddd SHA512 9310d263bc7a7925f73a6f66fd254ae61f377f43011a6bc5c58e57c8b170c2da4f197a646927ab9d05f8912ed8be4369c09576063931a3f93c3b0228ccb33a39
25 DIST Python-3.9.15.tar.xz.asc 833 BLAKE2B c325fb52fae254153456c24c1039b07c9ccf8734df3665640215d35219ccacb705f99d94c9f8b644d15d4ea4612f5ac0da599814f68f7d3b6fc1fdc175db9002 SHA512 722625091731536757b9db447590c31620665133d45076367a3281f2ee3add23a781b10ce5cea582d65caabb18814583c1a347689d2b396214e36a6771182f38
26 DIST python-gentoo-patches-2.7.18_p15.tar.xz 34956 BLAKE2B d173f276dd9c0ce31004dcc55a0d18e9ce25a47683c2df3c4dd62e967dfbbb35be59a2f08cf20f30a19475a8a2344dd95b17400eafa88b5fdbe9270a12ccbf32 SHA512 d9386808265f978808e5c0ffd384cefe54fb0e05aeccfd394167d5227d9cd66e25c8e93c54914762b2cfc3c2dd851b26a7a84d62634c6aa8a0798aacbb7ac25f
27 -DIST python-gentoo-patches-3.10.8.tar.xz 10104 BLAKE2B a2e5fa956652fda1464c65ba4f648da2d77a545d53bf8d2429bce745c93e82eaea40bf6da3289f4216fe4b029b97ccf6ac0c3cfbdcc179f3c5f9e64e89cd5fe4 SHA512 e506c7fc3f6ebff340f090b462716c745f1acfa95c00a39a58367941efb356b8dcd72a3fa46d6760422733c0d6b65b79f0e8bedc77b93289c51ca4dc2ea0db2a
28 DIST python-gentoo-patches-3.10.8_p1.tar.xz 12712 BLAKE2B 54370dc973fedfab4dda33a20733f483f1592fede407541b90d8389bf03f9697bf755e35a39d1d45ea99b42edaa434a0901a35b7058c73fbc4e9ca8472fce35e SHA512 093a9a532713eea68b18a0681db782cf38176f4582473e4fb45c45ce6d27f9a4a7f8fd37141ae44492283bbe9eda698c7190cfd8b4cddaf4f945124b908f3cf2
29 -DIST python-gentoo-patches-3.9.15.tar.xz 20200 BLAKE2B 4367cdeb0d9c27110f52f5061717e37da6b9d8a167de24417fdf2b88b4cf6d512fba2c81df90a19f02e929baaf755e70ede305b5ebbb0be94bd5ab3dc3f1bdfa SHA512 9c3a20b49a29d83d2c55d7432f606ebdcaf6210c6bf6d891084d0b2161502002c6f6738cee6e05eceb8ffd6b6a40d4c6ea42f6e07634388644aaeb8f87dbdf8e
30 DIST python-gentoo-patches-3.9.15_p1.tar.xz 22716 BLAKE2B 8bfe3ed3642a6734d7662c68be50c050112c1f2ae5bc10742b47e2b2943336df3bc6b0b5e6f0c1a1180dffc0590bbdd7341e84bafbfcfaf5977cde3184de6278 SHA512 f68b88a296a5ba6cf352c20345abe8c1dcaf9fbcaf6e48c2d7390e5d3ca57f786bfcefb912962d6642272f00dde832595bb73b48b03f3300bc11e3417e0f5fa6
31
32 diff --git a/dev-lang/python/python-3.10.8.ebuild b/dev-lang/python/python-3.10.8.ebuild
33 deleted file mode 100644
34 index e0368e1..0000000
35 --- a/dev-lang/python/python-3.10.8.ebuild
36 +++ /dev/null
37 @@ -1,453 +0,0 @@
38 -# Copyright 1999-2022 Gentoo Authors
39 -# Distributed under the terms of the GNU General Public License v2
40 -
41 -EAPI="7"
42 -WANT_LIBTOOL="none"
43 -
44 -inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
45 -inherit python-utils-r1 toolchain-funcs verify-sig
46 -
47 -MY_PV=${PV/_rc/rc}
48 -MY_P="Python-${MY_PV%_p*}"
49 -PYVER=$(ver_cut 1-2)
50 -PATCHSET="python-gentoo-patches-${MY_PV}"
51 -
52 -DESCRIPTION="An interpreted, interactive, object-oriented programming language"
53 -HOMEPAGE="
54 - https://www.python.org/
55 - https://github.com/python/cpython/
56 -"
57 -SRC_URI="
58 - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
59 - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
60 - verify-sig? (
61 - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
62 - )
63 -"
64 -S="${WORKDIR}/${MY_P}"
65 -
66 -LICENSE="PSF-2"
67 -SLOT="${PYVER}"
68 -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
69 -IUSE="
70 - bluetooth build +ensurepip examples gdbm hardened libedit lto
71 - +ncurses pgo +readline +sqlite +ssl test tk +xml
72 -"
73 -RESTRICT="!test? ( test )"
74 -
75 -# Do not add a dependency on dev-lang/python to this ebuild.
76 -# If you need to apply a patch which requires python for bootstrapping, please
77 -# run the bootstrap code on your dev box and include the results in the
78 -# patchset. See bug 447752.
79 -
80 -RDEPEND="
81 - app-arch/bzip2:=
82 - app-arch/xz-utils:=
83 - dev-lang/python-exec[python_targets_python3_10(-)]
84 - dev-libs/libffi:=
85 - sys-apps/util-linux:=
86 - >=sys-libs/zlib-1.1.3:=
87 - virtual/libcrypt:=
88 - virtual/libintl
89 - ensurepip? ( dev-python/ensurepip-wheels )
90 - gdbm? ( sys-libs/gdbm:=[berkdb] )
91 - ncurses? ( >=sys-libs/ncurses-5.2:= )
92 - readline? (
93 - !libedit? ( >=sys-libs/readline-4.1:= )
94 - libedit? ( dev-libs/libedit:= )
95 - )
96 - sqlite? ( >=dev-db/sqlite-3.3.8:3= )
97 - ssl? ( >=dev-libs/openssl-1.1.1:= )
98 - tk? (
99 - >=dev-lang/tcl-8.0:=
100 - >=dev-lang/tk-8.0:=
101 - dev-tcltk/blt:=
102 - dev-tcltk/tix
103 - )
104 - xml? ( >=dev-libs/expat-2.1:= )
105 - !!<sys-apps/sandbox-2.21
106 -"
107 -# bluetooth requires headers from bluez
108 -DEPEND="
109 - ${RDEPEND}
110 - bluetooth? ( net-wireless/bluez )
111 - test? ( app-arch/xz-utils[extra-filters(+)] )
112 -"
113 -# autoconf-archive needed to eautoreconf
114 -BDEPEND="
115 - sys-devel/autoconf-archive
116 - virtual/awk
117 - virtual/pkgconfig
118 - verify-sig? ( sec-keys/openpgp-keys-python )
119 -"
120 -RDEPEND+="
121 - !build? ( app-misc/mime-types )
122 -"
123 -
124 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc
125 -
126 -# large file tests involve a 2.5G file being copied (duplicated)
127 -CHECKREQS_DISK_BUILD=5500M
128 -
129 -QA_PKGCONFIG_VERSION=${PYVER}
130 -
131 -pkg_pretend() {
132 - use test && check-reqs_pkg_pretend
133 -}
134 -
135 -pkg_setup() {
136 - use test && check-reqs_pkg_setup
137 -}
138 -
139 -src_unpack() {
140 - if use verify-sig; then
141 - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
142 - fi
143 - default
144 -}
145 -
146 -src_prepare() {
147 - # Ensure that internal copies of expat and libffi are not used.
148 - rm -r Modules/expat || die
149 - rm -r Modules/_ctypes/libffi* || die
150 -
151 - local PATCHES=(
152 - "${WORKDIR}/${PATCHSET}"
153 - "${FILESDIR}"/${PN}-3.10.3-libressl.patch
154 - )
155 -
156 - default
157 -
158 - # https://bugs.gentoo.org/850151
159 - sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
160 -
161 - # force the correct number of jobs
162 - # https://bugs.gentoo.org/737660
163 - local jobs=$(makeopts_jobs)
164 - sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
165 - sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
166 -
167 - eautoreconf
168 -}
169 -
170 -src_configure() {
171 - # disable automagic bluetooth headers detection
172 - if ! use bluetooth; then
173 - local -x ac_cv_header_bluetooth_bluetooth_h=no
174 - fi
175 - local disable
176 - use gdbm || disable+=" gdbm"
177 - use ncurses || disable+=" _curses _curses_panel"
178 - use readline || disable+=" readline"
179 - use sqlite || disable+=" _sqlite3"
180 - use ssl || export PYTHON_DISABLE_SSL="1"
181 - use tk || disable+=" _tkinter"
182 - use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
183 - export PYTHON_DISABLE_MODULES="${disable}"
184 -
185 - if ! use xml; then
186 - ewarn "You have configured Python without XML support."
187 - ewarn "This is NOT a recommended configuration as you"
188 - ewarn "may face problems parsing any XML documents."
189 - fi
190 -
191 - if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
192 - einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
193 - fi
194 -
195 - append-flags -fwrapv
196 - filter-flags -malign-double
197 -
198 - # https://bugs.gentoo.org/700012
199 - if is-flagq -flto || is-flagq '-flto=*'; then
200 - append-cflags $(test-flags-CC -ffat-lto-objects)
201 - fi
202 -
203 - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
204 - # PKG_CONFIG needed for cross.
205 - tc-export CXX PKG_CONFIG
206 -
207 - # Fix implicit declarations on cross and prefix builds. Bug #674070.
208 - if use ncurses; then
209 - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
210 - fi
211 -
212 - local dbmliborder=
213 - if use gdbm; then
214 - dbmliborder+="${dbmliborder:+:}gdbm"
215 - fi
216 -
217 - if use pgo; then
218 - local profile_task_flags=(
219 - -m test
220 - "-j$(makeopts_jobs)"
221 - --pgo-extended
222 - -x test_gdb
223 - -u-network
224 -
225 - # All of these seem to occasionally hang for PGO inconsistently
226 - # They'll even hang here but be fine in src_test sometimes.
227 - # bug #828535 (and related: bug #788022)
228 - -x test_asyncio
229 - -x test_httpservers
230 - -x test_logging
231 - -x test_multiprocessing_fork
232 - -x test_socket
233 - -x test_xmlrpc
234 - )
235 -
236 - if has_version "app-arch/rpm" ; then
237 - # Avoid sandbox failure (attempts to write to /var/lib/rpm)
238 - profile_task_flags+=(
239 - -x test_distutils
240 - )
241 - fi
242 - local -x PROFILE_TASK="${profile_task_flags[*]}"
243 - fi
244 -
245 - local myeconfargs=(
246 - # glibc-2.30 removes it; since we can't cleanly force-rebuild
247 - # Python on glibc upgrade, remove it proactively to give
248 - # a chance for users rebuilding python before glibc
249 - ac_cv_header_stropts_h=no
250 -
251 - --enable-shared
252 - --without-static-libpython
253 - --enable-ipv6
254 - --infodir='${prefix}/share/info'
255 - --mandir='${prefix}/share/man'
256 - --with-computed-gotos
257 - --with-dbmliborder="${dbmliborder}"
258 - --with-libc=
259 - --enable-loadable-sqlite-extensions
260 - --without-ensurepip
261 - --with-system-expat
262 - --with-system-ffi
263 - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
264 -
265 - $(use_with lto)
266 - $(use_enable pgo optimizations)
267 - $(use_with readline readline "$(usex libedit editline readline)")
268 - )
269 -
270 - # disable implicit optimization/debugging flags
271 - local -x OPT=
272 - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
273 - # propagated to sysconfig for built extensions
274 - local -x CFLAGS_NODIST=${CFLAGS}
275 - local -x LDFLAGS_NODIST=${LDFLAGS}
276 - local -x CFLAGS= LDFLAGS=
277 -
278 - if tc-is-cross-compiler ; then
279 - # We need to build our own Python on CBUILD first, and feed it in.
280 - # bug #847910 and bug #864911.
281 - local myeconfargs_cbuild=(
282 - "${myeconfargs[@]}"
283 -
284 - # As minimal as possible for the mini CBUILD Python
285 - # we build just for cross.
286 - --without-lto
287 - --disable-optimizations
288 - )
289 -
290 - # Point the imminent CHOST build to the Python we just
291 - # built for CBUILD.
292 - export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
293 -
294 - mkdir "${WORKDIR}"/${P}-${CBUILD} || die
295 - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
296 - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
297 -
298 - # Avoid as many dependencies as possible for the cross build.
299 - cat >> Makefile <<-EOF || die
300 - MODULE_NIS=disabled
301 - MODULE__DBM=disabled
302 - MODULE__GDBM=disabled
303 - MODULE__DBM=disabled
304 - MODULE__SQLITE3=disabled
305 - MODULE__HASHLIB=disabled
306 - MODULE__SSL=disabled
307 - MODULE__CURSES=disabled
308 - MODULE__CURSES_PANEL=disabled
309 - MODULE_READLINE=disabled
310 - MODULE__TKINTER=disabled
311 - MODULE_PYEXPAT=disabled
312 - MODULE_ZLIB=disabled
313 - EOF
314 -
315 - # Unfortunately, we do have to build this immediately, and
316 - # not in src_compile, because CHOST configure for Python
317 - # will check the existence of the Python it was pointed to
318 - # immediately.
319 - emake
320 - popd &> /dev/null || die
321 - fi
322 -
323 - econf "${myeconfargs[@]}"
324 -
325 - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
326 - eerror "configure has detected that the sem_open function is broken."
327 - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
328 - die "Broken sem_open function (bug 496328)"
329 - fi
330 -
331 - # install epython.py as part of stdlib
332 - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
333 -}
334 -
335 -src_compile() {
336 - # Ensure sed works as expected
337 - # https://bugs.gentoo.org/594768
338 - local -x LC_ALL=C
339 - # Prevent using distutils bundled by setuptools.
340 - # https://bugs.gentoo.org/823728
341 - export SETUPTOOLS_USE_DISTUTILS=stdlib
342 -
343 - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
344 - # end up writing bytecode & violating sandbox.
345 - # bug #831897
346 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
347 -
348 - if use pgo ; then
349 - # bug 660358
350 - local -x COLUMNS=80
351 - local -x PYTHONDONTWRITEBYTECODE=
352 -
353 - addpredict /usr/lib/python3.10/site-packages
354 - fi
355 -
356 - # also need to clear the flags explicitly here or they end up
357 - # in _sysconfigdata*
358 - emake CPPFLAGS= CFLAGS= LDFLAGS=
359 -
360 - # Restore saved value from above.
361 - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
362 -
363 - # Work around bug 329499. See also bug 413751 and 457194.
364 - if has_version dev-libs/libffi[pax-kernel]; then
365 - pax-mark E python
366 - else
367 - pax-mark m python
368 - fi
369 -}
370 -
371 -src_test() {
372 - # Tests will not work when cross compiling.
373 - if tc-is-cross-compiler; then
374 - elog "Disabling tests due to crosscompiling."
375 - return
376 - fi
377 -
378 - local test_opts=(
379 - -u-network
380 - -j "$(makeopts_jobs)"
381 -
382 - # fails
383 - -x test_gdb
384 - )
385 -
386 - if use sparc ; then
387 - # bug #788022
388 - test_opts+=(
389 - -x test_multiprocessing_fork
390 - -x test_multiprocessing_forkserver
391 - )
392 - fi
393 -
394 - # bug 660358
395 - local -x COLUMNS=80
396 - local -x PYTHONDONTWRITEBYTECODE=
397 - # workaround https://bugs.gentoo.org/775416
398 - addwrite /usr/lib/python3.10/site-packages
399 -
400 - emake test EXTRATESTOPTS="${test_opts[*]}" \
401 - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty || die "emake test failed"
402 -}
403 -
404 -src_install() {
405 - local libdir=${ED}/usr/lib/python${PYVER}
406 -
407 - emake DESTDIR="${D}" altinstall
408 -
409 - # Fix collisions between different slots of Python.
410 - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
411 -
412 - # Cheap hack to get version with ABIFLAGS
413 - local abiver=$(cd "${ED}/usr/include"; echo python*)
414 - if [[ ${abiver} != python${PYVER} ]]; then
415 - # Replace python3.X with a symlink to python3.Xm
416 - rm "${ED}/usr/bin/python${PYVER}" || die
417 - dosym "${abiver}" "/usr/bin/python${PYVER}"
418 - # Create python3.X-config symlink
419 - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
420 - # Create python-3.5m.pc symlink
421 - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
422 - fi
423 -
424 - # python seems to get rebuilt in src_install (bug 569908)
425 - # Work around it for now.
426 - if has_version dev-libs/libffi[pax-kernel]; then
427 - pax-mark E "${ED}/usr/bin/${abiver}"
428 - else
429 - pax-mark m "${ED}/usr/bin/${abiver}"
430 - fi
431 -
432 - rm -r "${libdir}"/ensurepip/_bundled || die
433 - if ! use ensurepip; then
434 - rm -r "${libdir}"/ensurepip || die
435 - fi
436 - if ! use sqlite; then
437 - rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
438 - fi
439 - if ! use tk; then
440 - rm -r "${ED}/usr/bin/idle${PYVER}" || die
441 - rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
442 - fi
443 -
444 - dodoc Misc/{ACKS,HISTORY,NEWS}
445 -
446 - if use examples; then
447 - docinto examples
448 - find Tools -name __pycache__ -exec rm -fr {} + || die
449 - dodoc -r Tools
450 - fi
451 - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
452 - local libname=$(
453 - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
454 - emake --no-print-directory -s -f - 2>/dev/null
455 - )
456 - newins Tools/gdb/libpython.py "${libname}"-gdb.py
457 -
458 - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
459 - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
460 - sed \
461 - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
462 - -e "s:@PYDOC@:pydoc${PYVER}:" \
463 - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \
464 - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
465 -
466 - # python-exec wrapping support
467 - local pymajor=${PYVER%.*}
468 - local EPYTHON=python${PYVER}
469 - local scriptdir=${D}$(python_get_scriptdir)
470 - mkdir -p "${scriptdir}" || die
471 - # python and pythonX
472 - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
473 - ln -s "python${pymajor}" "${scriptdir}/python" || die
474 - # python-config and pythonX-config
475 - # note: we need to create a wrapper rather than symlinking it due
476 - # to some random dirname(argv[0]) magic performed by python-config
477 - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
478 - #!/bin/sh
479 - exec "${abiver}-config" "\${@}"
480 - EOF
481 - chmod +x "${scriptdir}/python${pymajor}-config" || die
482 - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
483 - # 2to3, pydoc
484 - ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
485 - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
486 - # idle
487 - if use tk; then
488 - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
489 - fi
490 -}
491
492 diff --git a/dev-lang/python/python-3.9.15.ebuild b/dev-lang/python/python-3.9.15.ebuild
493 deleted file mode 100644
494 index 6c234cc..0000000
495 --- a/dev-lang/python/python-3.9.15.ebuild
496 +++ /dev/null
497 @@ -1,449 +0,0 @@
498 -# Copyright 1999-2022 Gentoo Authors
499 -# Distributed under the terms of the GNU General Public License v2
500 -
501 -EAPI="7"
502 -WANT_LIBTOOL="none"
503 -
504 -inherit autotools check-reqs flag-o-matic multiprocessing pax-utils
505 -inherit python-utils-r1 toolchain-funcs verify-sig
506 -
507 -MY_PV=${PV/_rc/rc}
508 -MY_P="Python-${MY_PV%_p*}"
509 -PYVER=$(ver_cut 1-2)
510 -PATCHSET="python-gentoo-patches-${MY_PV}"
511 -
512 -DESCRIPTION="An interpreted, interactive, object-oriented programming language"
513 -HOMEPAGE="
514 - https://www.python.org/
515 - https://github.com/python/cpython/
516 -"
517 -SRC_URI="
518 - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
519 - https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
520 - verify-sig? (
521 - https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
522 - )
523 -"
524 -S="${WORKDIR}/${MY_P}"
525 -
526 -LICENSE="PSF-2"
527 -SLOT="${PYVER}"
528 -KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
529 -IUSE="
530 - bluetooth build +ensurepip examples gdbm hardened lto +ncurses pgo
531 - +readline +sqlite +ssl test tk +xml
532 -"
533 -RESTRICT="!test? ( test )"
534 -
535 -# Do not add a dependency on dev-lang/python to this ebuild.
536 -# If you need to apply a patch which requires python for bootstrapping, please
537 -# run the bootstrap code on your dev box and include the results in the
538 -# patchset. See bug 447752.
539 -
540 -RDEPEND="
541 - app-arch/bzip2:=
542 - app-arch/xz-utils:=
543 - dev-lang/python-exec[python_targets_python3_9(-)]
544 - dev-libs/libffi:=
545 - sys-apps/util-linux:=
546 - >=sys-libs/zlib-1.1.3:=
547 - virtual/libcrypt:=
548 - virtual/libintl
549 - ensurepip? ( dev-python/ensurepip-wheels )
550 - gdbm? ( sys-libs/gdbm:=[berkdb] )
551 - ncurses? ( >=sys-libs/ncurses-5.2:= )
552 - readline? ( >=sys-libs/readline-4.1:= )
553 - sqlite? ( >=dev-db/sqlite-3.3.8:3= )
554 - ssl? ( >=dev-libs/openssl-1.1.1:= )
555 - tk? (
556 - >=dev-lang/tcl-8.0:=
557 - >=dev-lang/tk-8.0:=
558 - dev-tcltk/blt:=
559 - dev-tcltk/tix
560 - )
561 - xml? ( >=dev-libs/expat-2.1:= )
562 -"
563 -# bluetooth requires headers from bluez
564 -DEPEND="
565 - ${RDEPEND}
566 - bluetooth? ( net-wireless/bluez )
567 - test? ( app-arch/xz-utils[extra-filters(+)] )
568 -"
569 -# autoconf-archive needed to eautoreconf
570 -BDEPEND="
571 - sys-devel/autoconf-archive
572 - virtual/awk
573 - virtual/pkgconfig
574 - verify-sig? ( sec-keys/openpgp-keys-python )
575 -"
576 -RDEPEND+="
577 - !build? ( app-misc/mime-types )
578 -"
579 -
580 -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc
581 -
582 -# large file tests involve a 2.5G file being copied (duplicated)
583 -CHECKREQS_DISK_BUILD=5500M
584 -
585 -QA_PKGCONFIG_VERSION=${PYVER}
586 -
587 -pkg_pretend() {
588 - use test && check-reqs_pkg_pretend
589 -}
590 -
591 -pkg_setup() {
592 - use test && check-reqs_pkg_setup
593 -}
594 -
595 -src_unpack() {
596 - if use verify-sig; then
597 - verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
598 - fi
599 - default
600 -}
601 -
602 -src_prepare() {
603 - # Ensure that internal copies of expat and libffi are not used.
604 - rm -r Modules/expat || die
605 - rm -r Modules/_ctypes/libffi* || die
606 - rm "${WORKDIR}/${PATCHSET}"/0013-bpo-43998-Default-to-TLS-1.2-and-increase-cipher-sui.patch || die
607 -
608 - local PATCHES=(
609 - "${WORKDIR}/${PATCHSET}"
610 - "${FILESDIR}"/${PN}-3.9.9-r1-libressl.patch
611 - )
612 -
613 - default
614 -
615 - # https://bugs.gentoo.org/850151
616 - sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" setup.py || die
617 -
618 - # force the correct number of jobs
619 - # https://bugs.gentoo.org/737660
620 - local jobs=$(makeopts_jobs)
621 - sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die
622 - sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die
623 -
624 - eautoreconf
625 -}
626 -
627 -src_configure() {
628 - # disable automagic bluetooth headers detection
629 - if ! use bluetooth; then
630 - local -x ac_cv_header_bluetooth_bluetooth_h=no
631 - fi
632 - local disable
633 - use gdbm || disable+=" gdbm"
634 - use ncurses || disable+=" _curses _curses_panel"
635 - use readline || disable+=" readline"
636 - use sqlite || disable+=" _sqlite3"
637 - use ssl || export PYTHON_DISABLE_SSL="1"
638 - use tk || disable+=" _tkinter"
639 - use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat.
640 - export PYTHON_DISABLE_MODULES="${disable}"
641 -
642 - if ! use xml; then
643 - ewarn "You have configured Python without XML support."
644 - ewarn "This is NOT a recommended configuration as you"
645 - ewarn "may face problems parsing any XML documents."
646 - fi
647 -
648 - if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then
649 - einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}"
650 - fi
651 -
652 - append-flags -fwrapv
653 - filter-flags -malign-double
654 -
655 - # https://bugs.gentoo.org/700012
656 - if is-flagq -flto || is-flagq '-flto=*'; then
657 - append-cflags $(test-flags-CC -ffat-lto-objects)
658 - fi
659 -
660 - # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile.
661 - # PKG_CONFIG needed for cross.
662 - tc-export CXX PKG_CONFIG
663 -
664 - # Fix implicit declarations on cross and prefix builds. Bug #674070.
665 - if use ncurses; then
666 - append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw
667 - fi
668 -
669 - local dbmliborder=
670 - if use gdbm; then
671 - dbmliborder+="${dbmliborder:+:}gdbm"
672 - fi
673 -
674 - if use pgo; then
675 - local profile_task_flags=(
676 - -m test
677 - "-j$(makeopts_jobs)"
678 - --pgo-extended
679 - -x test_gdb
680 - -u-network
681 -
682 - # All of these seem to occasionally hang for PGO inconsistently
683 - # They'll even hang here but be fine in src_test sometimes.
684 - # bug #828535 (and related: bug #788022)
685 - -x test_asyncio
686 - -x test_httpservers
687 - -x test_logging
688 - -x test_multiprocessing_fork
689 - -x test_socket
690 - -x test_xmlrpc
691 - )
692 -
693 - if has_version "app-arch/rpm" ; then
694 - # Avoid sandbox failure (attempts to write to /var/lib/rpm)
695 - profile_task_flags+=(
696 - -x test_distutils
697 - )
698 - fi
699 - local -x PROFILE_TASK="${profile_task_flags[*]}"
700 - fi
701 -
702 - local myeconfargs=(
703 - # glibc-2.30 removes it; since we can't cleanly force-rebuild
704 - # Python on glibc upgrade, remove it proactively to give
705 - # a chance for users rebuilding python before glibc
706 - ac_cv_header_stropts_h=no
707 -
708 - --enable-shared
709 - --enable-ipv6
710 - --infodir='${prefix}/share/info'
711 - --mandir='${prefix}/share/man'
712 - --with-computed-gotos
713 - --with-dbmliborder="${dbmliborder}"
714 - --with-libc=
715 - --enable-loadable-sqlite-extensions
716 - --without-ensurepip
717 - --with-system-expat
718 - --with-system-ffi
719 - --with-wheel-pkg-dir="${EPREFIX}"/usr/lib/python/ensurepip
720 -
721 - $(use_with lto)
722 - $(use_enable pgo optimizations)
723 - )
724 -
725 - # disable implicit optimization/debugging flags
726 - local -x OPT=
727 - # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get
728 - # propagated to sysconfig for built extensions
729 - local -x CFLAGS_NODIST=${CFLAGS}
730 - local -x LDFLAGS_NODIST=${LDFLAGS}
731 - local -x CFLAGS= LDFLAGS=
732 -
733 - if tc-is-cross-compiler ; then
734 - # We need to build our own Python on CBUILD first, and feed it in.
735 - # bug #847910 and bug #864911.
736 - local myeconfargs_cbuild=(
737 - "${myeconfargs[@]}"
738 -
739 - # As minimal as possible for the mini CBUILD Python
740 - # we build just for cross.
741 - --without-lto
742 - --disable-optimizations
743 - )
744 -
745 - # Point the imminent CHOST build to the Python we just
746 - # built for CBUILD.
747 - export PATH="${WORKDIR}/${P}-${CBUILD}:${PATH}"
748 -
749 - mkdir "${WORKDIR}"/${P}-${CBUILD} || die
750 - pushd "${WORKDIR}"/${P}-${CBUILD} &> /dev/null || die
751 - ECONF_SOURCE="${S}" econf_build "${myeconfargs_cbuild[@]}"
752 -
753 - # Avoid as many dependencies as possible for the cross build.
754 - cat >> Makefile <<-EOF || die
755 - MODULE_NIS=disabled
756 - MODULE__DBM=disabled
757 - MODULE__GDBM=disabled
758 - MODULE__DBM=disabled
759 - MODULE__SQLITE3=disabled
760 - MODULE__HASHLIB=disabled
761 - MODULE__SSL=disabled
762 - MODULE__CURSES=disabled
763 - MODULE__CURSES_PANEL=disabled
764 - MODULE_READLINE=disabled
765 - MODULE__TKINTER=disabled
766 - MODULE_PYEXPAT=disabled
767 - MODULE_ZLIB=disabled
768 - EOF
769 -
770 - # Unfortunately, we do have to build this immediately, and
771 - # not in src_compile, because CHOST configure for Python
772 - # will check the existence of the Python it was pointed to
773 - # immediately.
774 - emake
775 - popd &> /dev/null || die
776 - fi
777 -
778 - econf "${myeconfargs[@]}"
779 -
780 - if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then
781 - eerror "configure has detected that the sem_open function is broken."
782 - eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777."
783 - die "Broken sem_open function (bug 496328)"
784 - fi
785 -
786 - # install epython.py as part of stdlib
787 - echo "EPYTHON='python${PYVER}'" > Lib/epython.py || die
788 -}
789 -
790 -src_compile() {
791 - # Ensure sed works as expected
792 - # https://bugs.gentoo.org/594768
793 - local -x LC_ALL=C
794 - # Prevent using distutils bundled by setuptools.
795 - # https://bugs.gentoo.org/823728
796 - export SETUPTOOLS_USE_DISTUTILS=stdlib
797 -
798 - # Save PYTHONDONTWRITEBYTECODE so that 'has_version' doesn't
799 - # end up writing bytecode & violating sandbox.
800 - # bug #831897
801 - local -x _PYTHONDONTWRITEBYTECODE=${PYTHONDONTWRITEBYTECODE}
802 -
803 - if use pgo ; then
804 - # bug 660358
805 - local -x COLUMNS=80
806 - local -x PYTHONDONTWRITEBYTECODE=
807 -
808 - addpredict /usr/lib/python3.9/site-packages
809 - fi
810 -
811 - # also need to clear the flags explicitly here or they end up
812 - # in _sysconfigdata*
813 - emake CPPFLAGS= CFLAGS= LDFLAGS=
814 -
815 - # Restore saved value from above.
816 - local -x PYTHONDONTWRITEBYTECODE=${_PYTHONDONTWRITEBYTECODE}
817 -
818 - # Work around bug 329499. See also bug 413751 and 457194.
819 - if has_version dev-libs/libffi[pax-kernel]; then
820 - pax-mark E python
821 - else
822 - pax-mark m python
823 - fi
824 -}
825 -
826 -src_test() {
827 - # Tests will not work when cross compiling.
828 - if tc-is-cross-compiler; then
829 - elog "Disabling tests due to crosscompiling."
830 - return
831 - fi
832 -
833 - local test_opts=(
834 - -u-network
835 - -j "$(makeopts_jobs)"
836 -
837 - # fails
838 - -x test_gdb
839 - )
840 -
841 - if use sparc ; then
842 - # bug #788022
843 - test_opts+=(
844 - -x test_multiprocessing_fork
845 - -x test_multiprocessing_forkserver
846 - )
847 - fi
848 -
849 - # bug 660358
850 - local -x COLUMNS=80
851 - local -x PYTHONDONTWRITEBYTECODE=
852 -
853 - emake test EXTRATESTOPTS="${test_opts[*]}" \
854 - CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty || die "emake test failed"
855 -}
856 -
857 -src_install() {
858 - local libdir=${ED}/usr/lib/python${PYVER}
859 -
860 - emake DESTDIR="${D}" altinstall
861 -
862 - # Remove static library
863 - rm "${ED}"/usr/$(get_libdir)/libpython*.a || die
864 -
865 - # Fix collisions between different slots of Python.
866 - rm "${ED}/usr/$(get_libdir)/libpython3.so" || die
867 -
868 - # Cheap hack to get version with ABIFLAGS
869 - local abiver=$(cd "${ED}/usr/include"; echo python*)
870 - if [[ ${abiver} != python${PYVER} ]]; then
871 - # Replace python3.X with a symlink to python3.Xm
872 - rm "${ED}/usr/bin/python${PYVER}" || die
873 - dosym "${abiver}" "/usr/bin/python${PYVER}"
874 - # Create python3.X-config symlink
875 - dosym "${abiver}-config" "/usr/bin/python${PYVER}-config"
876 - # Create python-3.5m.pc symlink
877 - dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc"
878 - fi
879 -
880 - # python seems to get rebuilt in src_install (bug 569908)
881 - # Work around it for now.
882 - if has_version dev-libs/libffi[pax-kernel]; then
883 - pax-mark E "${ED}/usr/bin/${abiver}"
884 - else
885 - pax-mark m "${ED}/usr/bin/${abiver}"
886 - fi
887 -
888 - rm -r "${libdir}"/ensurepip/_bundled || die
889 - if ! use ensurepip; then
890 - rm -r "${libdir}"/ensurepip || die
891 - fi
892 - if ! use sqlite; then
893 - rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die
894 - fi
895 - if ! use tk; then
896 - rm -r "${ED}/usr/bin/idle${PYVER}" || die
897 - rm -r "${libdir}/"{idlelib,tkinter,test/test_tk*} || die
898 - fi
899 -
900 - dodoc Misc/{ACKS,HISTORY,NEWS}
901 -
902 - if use examples; then
903 - docinto examples
904 - find Tools -name __pycache__ -exec rm -fr {} + || die
905 - dodoc -r Tools
906 - fi
907 - insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510
908 - local libname=$(
909 - printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' |
910 - emake --no-print-directory -s -f - 2>/dev/null
911 - )
912 - newins Tools/gdb/libpython.py "${libname}"-gdb.py
913 -
914 - newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER}
915 - newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER}
916 - sed \
917 - -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \
918 - -e "s:@PYDOC@:pydoc${PYVER}:" \
919 - -i "${ED}/etc/conf.d/pydoc-${PYVER}" \
920 - "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed"
921 -
922 - # python-exec wrapping support
923 - local pymajor=${PYVER%.*}
924 - local EPYTHON=python${PYVER}
925 - local scriptdir=${D}$(python_get_scriptdir)
926 - mkdir -p "${scriptdir}" || die
927 - # python and pythonX
928 - ln -s "../../../bin/${abiver}" "${scriptdir}/python${pymajor}" || die
929 - ln -s "python${pymajor}" "${scriptdir}/python" || die
930 - # python-config and pythonX-config
931 - # note: we need to create a wrapper rather than symlinking it due
932 - # to some random dirname(argv[0]) magic performed by python-config
933 - cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die
934 - #!/bin/sh
935 - exec "${abiver}-config" "\${@}"
936 - EOF
937 - chmod +x "${scriptdir}/python${pymajor}-config" || die
938 - ln -s "python${pymajor}-config" "${scriptdir}/python-config" || die
939 - # 2to3, pydoc
940 - ln -s "../../../bin/2to3-${PYVER}" "${scriptdir}/2to3" || die
941 - ln -s "../../../bin/pydoc${PYVER}" "${scriptdir}/pydoc" || die
942 - # idle
943 - if use tk; then
944 - ln -s "../../../bin/idle${PYVER}" "${scriptdir}/idle" || die
945 - fi
946 -}