diff options
author | Repository mirror & CI <repomirrorci@gentoo.org> | 2022-01-24 22:43:10 +0000 |
---|---|---|
committer | Repository mirror & CI <repomirrorci@gentoo.org> | 2022-01-24 22:43:10 +0000 |
commit | 383c56cf52242738d772575058eb52e62b947a0f (patch) | |
tree | d2e85c43bdc6fab339de1229c0a25b2e792d42d0 | |
parent | 2022-01-24 21:41:28 UTC (diff) | |
parent | dev-python/pytest-param-files: Bump to 0.3.4 (diff) | |
download | gentoo-383c56cf52242738d772575058eb52e62b947a0f.tar.gz gentoo-383c56cf52242738d772575058eb52e62b947a0f.tar.bz2 gentoo-383c56cf52242738d772575058eb52e62b947a0f.zip |
Merge updates from master
46 files changed, 2344 insertions, 388 deletions
diff --git a/app-admin/awscli/Manifest b/app-admin/awscli/Manifest index ace8aa6cf5f5..ce85636054f6 100644 --- a/app-admin/awscli/Manifest +++ b/app-admin/awscli/Manifest @@ -3,3 +3,4 @@ DIST awscli-1.22.31.tar.gz 2134102 BLAKE2B e1918352146b3176c8fc60cc6338a69b04a28 DIST awscli-1.22.37.tar.gz 2148283 BLAKE2B 0355bac3b0710af5ce6938a59c1e93115fb109f5aa6b05fe7bd2b5341a11c9e4bf35b826addaa1a7f8e404fd58c15cd2056802c192abe6d5acfc4ff4facd42fc SHA512 3cb1acead139329774565a5aed818eb2bc1e444627d6448c1c31eb431a6aae1e07af273c8b24a1910522764d5898946629197606e0b2762fb89d1bc163641d73 DIST awscli-1.22.40.tar.gz 2150034 BLAKE2B a03c28f05d80102fc76bafe1d535e2c8907e063c1066e4b5badb006620608c2e174851a673c77a6c0571aba39f9e29036f7d28fd1c4804e950964c08624b9b72 SHA512 3a0097296c22222daa9288972435bb0ed4b410b4f463a49cc67ff4dbb1de29b3a8b638ec337b5746a751605500ef424d5261f1da9d361cd38a4442857a3da78c DIST awscli-1.22.41.tar.gz 2149857 BLAKE2B dfa66104b723abae76a98d40d40e67e4d7895d9767b2591ce0da1c4c6c77f50f5eaa81dcbf11e7f380df27f5236ff3950c3c80be398e37d4f91a68d95b840147 SHA512 427fe04c0e895fb0b28b37ab81c58e4b4dbeeb5500c237f8bc5cb981409a08d3f54347939a4dcbefc51f5bb480318e51741f64f118bf1ccb5e25a0699ad88ee5 +DIST awscli-1.22.42.tar.gz 2150093 BLAKE2B 5773ce97774003868b085814c72dd8471292df8768f2f6bef984d2f110ea2b53f4728d8736c08cd9e928469a779191cfc92362b1076c830787b7872071c461af SHA512 21fa5cd3c0996aeab87124786fad3ad7ebc66f226a42d4aa55e63d0d4f1ec48a380b669c5b92edb5e386a48af30d936efb93e85dae31a79efa0d4c205f331c98 diff --git a/app-admin/awscli/awscli-1.22.42.ebuild b/app-admin/awscli/awscli-1.22.42.ebuild new file mode 100644 index 000000000000..1f3430af8a9f --- /dev/null +++ b/app-admin/awscli/awscli-1.22.42.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit bash-completion-r1 distutils-r1 + +DESCRIPTION="Universal Command Line Environment for AWS" +HOMEPAGE="https://pypi.org/project/awscli/" +#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" +SRC_URI="https://github.com/aws/aws-cli/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/aws-cli-${PV}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +# botocore is x.(y+1).z +BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 1)).$(ver_cut 3-)" +RDEPEND=" + >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}] + dev-python/colorama[${PYTHON_USEDEP}] + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/rsa[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.4.0[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +src_prepare() { + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + # strip overzealous upper bounds on requirements + sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die + distutils-r1_src_prepare +} + +python_test() { + # integration tests require AWS credentials and Internet access + epytest tests/{functional,unit} +} + +python_install_all() { + newbashcomp bin/aws_bash_completer aws + + insinto /usr/share/zsh/site-functions + newins bin/aws_zsh_completer.sh _aws + + distutils-r1_python_install_all + + rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die +} diff --git a/dev-lang/python/python-2.7.18_p13.ebuild b/dev-lang/python/python-2.7.18_p13.ebuild index c5ca53a4ed2c..da93a624d8f9 100644 --- a/dev-lang/python/python-2.7.18_p13.ebuild +++ b/dev-lang/python/python-2.7.18_p13.ebuild @@ -37,14 +37,7 @@ RDEPEND="app-arch/bzip2:= virtual/libintl berkdb? ( || ( sys-libs/db:5.3 - sys-libs/db:5.1 sys-libs/db:4.8 - sys-libs/db:4.7 - sys-libs/db:4.6 - sys-libs/db:4.5 - sys-libs/db:4.4 - sys-libs/db:4.3 - sys-libs/db:4.2 ) ) gdbm? ( sys-libs/gdbm:=[berkdb] ) ncurses? ( >=sys-libs/ncurses-5.2:= ) diff --git a/dev-lang/python/python-3.10.2-r1.ebuild b/dev-lang/python/python-3.10.2-r1.ebuild new file mode 100644 index 000000000000..c3d1ada324fb --- /dev/null +++ b/dev-lang/python/python-3.10.2-r1.ebuild @@ -0,0 +1,386 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened libedit lto +ncurses pgo +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-lang/python-exec[python_targets_python3_10(-)] + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( + !libedit? ( >=sys-libs/readline-4.1:= ) + libedit? ( dev-libs/libedit:= ) + ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= ) + !!<sys-apps/sandbox-2.21" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +# autoconf-archive needed to eautoreconf +BDEPEND=" + sys-devel/autoconf-archive + virtual/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + if use pgo; then + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + export PROFILE_TASK="-m test -j${jobs} --pgo-extended -x test_gdb -u-network" + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + PROFILE_TASK+=" -x test_socket -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_xmlrpc" + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + PROFILE_TASK+=" -x test_distutils" + fi + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --without-static-libpython + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + + $(use_with lto) + $(use_enable pgo optimizations) + $(use_with readline readline "$(usex libedit editline readline)") + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + addpredict /usr/lib/python3.10/site-packages + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + # workaround https://bugs.gentoo.org/775416 + addwrite /usr/lib/python3.10/site-packages + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.11.0_alpha4.ebuild b/dev-lang/python/python-3.11.0_alpha4.ebuild index 92c0168fc31a..1ee098aec00d 100644 --- a/dev-lang/python/python-3.11.0_alpha4.ebuild +++ b/dev-lang/python/python-3.11.0_alpha4.ebuild @@ -184,7 +184,15 @@ src_configure() { $(use_with readline readline "$(usex libedit editline readline)") ) - OPT="" econf "${myeconfargs[@]}" + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + econf "${myeconfargs[@]}" if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then eerror "configure has detected that the sem_open function is broken." @@ -226,6 +234,8 @@ src_compile() { addpredict /usr/lib/python3.11/site-packages fi + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* emake CPPFLAGS= CFLAGS= LDFLAGS= # Work around bug 329499. See also bug 413751 and 457194. @@ -290,11 +300,6 @@ src_install() { emake DESTDIR="${D}" altinstall - sed \ - -e "s/\(CONFIGURE_LDFLAGS=\).*/\1/" \ - -e "s/\(PY_LDFLAGS=\).*/\1/" \ - -i "${libdir}/config-${PYVER}"*/Makefile || die "sed failed" - # Fix collisions between different slots of Python. rm "${ED}/usr/$(get_libdir)/libpython3.so" || die diff --git a/dev-lang/python/python-3.6.15-r1.ebuild b/dev-lang/python/python-3.6.15-r1.ebuild new file mode 100644 index 000000000000..55fe23a77484 --- /dev/null +++ b/dev-lang/python/python-3.6.15-r1.ebuild @@ -0,0 +1,342 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_P="Python-${PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}/${PYVER}m" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened +ncurses +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( dev-libs/openssl:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + Lib/distutils/command/install.py \ + Lib/distutils/sysconfig.py \ + Lib/site.py \ + Lib/sysconfig.py \ + Lib/test/test_site.py \ + Makefile.pre.in \ + Modules/Setup.dist \ + Modules/getpath.c \ + configure.ac \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --with-fpectl + --enable-shared + --enable-ipv6 + --with-threads + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb faulthandler" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/$(get_libdir)/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/$(get_libdir)/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc, pyvenv + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + ln -s "../../../bin/pyvenv-${PYVER}" \ + "${scriptdir}/pyvenv" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.7.12_p1-r1.ebuild b/dev-lang/python/python-3.7.12_p1-r1.ebuild new file mode 100644 index 000000000000..074aa167ce94 --- /dev/null +++ b/dev-lang/python/python-3.7.12_p1-r1.ebuild @@ -0,0 +1,335 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_P="Python-${PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~floppym/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}/${PYVER}m" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened +ncurses +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/awk + virtual/pkgconfig + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc, pyvenv + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + ln -s "../../../bin/pyvenv-${PYVER}" \ + "${scriptdir}/pyvenv" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.8.12_p1-r2.ebuild b/dev-lang/python/python-3.8.12_p1-r2.ebuild new file mode 100644 index 000000000000..6f6f64737f66 --- /dev/null +++ b/dev-lang/python/python-3.8.12_p1-r2.ebuild @@ -0,0 +1,345 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~floppym/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened +ncurses +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-lang/python-exec[python_targets_python3_8(-)] + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/awk + virtual/pkgconfig + sys-devel/autoconf-archive + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + use wininst || rm "${libdir}/distutils/command/"wininst-*.exe || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-lang/python/python-3.9.10-r1.ebuild b/dev-lang/python/python-3.9.10-r1.ebuild new file mode 100644 index 000000000000..b5cc8dd4a44c --- /dev/null +++ b/dev-lang/python/python-3.9.10-r1.ebuild @@ -0,0 +1,380 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" +WANT_LIBTOOL="none" + +inherit autotools check-reqs flag-o-matic multiprocessing pax-utils \ + python-utils-r1 toolchain-funcs verify-sig + +MY_PV=${PV/_rc/rc} +MY_P="Python-${MY_PV%_p*}" +PYVER=$(ver_cut 1-2) +PATCHSET="python-gentoo-patches-${MY_PV}" + +DESCRIPTION="An interpreted, interactive, object-oriented programming language" +HOMEPAGE="https://www.python.org/" +SRC_URI="https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz + https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz + verify-sig? ( + https://www.python.org/ftp/python/${PV%_*}/${MY_P}.tar.xz.asc + )" +S="${WORKDIR}/${MY_P}" + +LICENSE="PSF-2" +SLOT="${PYVER}" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="bluetooth build examples gdbm hardened lto +ncurses pgo +readline +sqlite +ssl test tk wininst +xml" +RESTRICT="!test? ( test )" + +# Do not add a dependency on dev-lang/python to this ebuild. +# If you need to apply a patch which requires python for bootstrapping, please +# run the bootstrap code on your dev box and include the results in the +# patchset. See bug 447752. + +RDEPEND="app-arch/bzip2:= + app-arch/xz-utils:= + dev-lang/python-exec[python_targets_python3_9(-)] + dev-libs/libffi:= + sys-apps/util-linux:= + >=sys-libs/zlib-1.1.3:= + virtual/libcrypt:= + virtual/libintl + gdbm? ( sys-libs/gdbm:=[berkdb] ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + readline? ( >=sys-libs/readline-4.1:= ) + sqlite? ( >=dev-db/sqlite-3.3.8:3= ) + ssl? ( >=dev-libs/openssl-1.1.1:= ) + tk? ( + >=dev-lang/tcl-8.0:= + >=dev-lang/tk-8.0:= + dev-tcltk/blt:= + dev-tcltk/tix + ) + xml? ( >=dev-libs/expat-2.1:= )" +# bluetooth requires headers from bluez +DEPEND="${RDEPEND} + bluetooth? ( net-wireless/bluez ) + test? ( app-arch/xz-utils[extra-filters(+)] )" +BDEPEND=" + virtual/awk + virtual/pkgconfig + sys-devel/autoconf-archive + verify-sig? ( sec-keys/openpgp-keys-python ) + !sys-devel/gcc[libffi(-)]" +RDEPEND+=" !build? ( app-misc/mime-types )" + +VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/python.org.asc + +# large file tests involve a 2.5G file being copied (duplicated) +CHECKREQS_DISK_BUILD=5500M + +pkg_pretend() { + use test && check-reqs_pkg_pretend +} + +pkg_setup() { + use test && check-reqs_pkg_setup +} + +src_unpack() { + if use verify-sig; then + verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc} + fi + default +} + +src_prepare() { + # Ensure that internal copies of expat, libffi and zlib are not used. + rm -fr Modules/expat || die + rm -fr Modules/_ctypes/libffi* || die + rm -fr Modules/zlib || die + + local PATCHES=( + "${WORKDIR}/${PATCHSET}" + ) + + default + + sed -i -e "s:@@GENTOO_LIBDIR@@:$(get_libdir):g" \ + setup.py || die "sed failed to replace @@GENTOO_LIBDIR@@" + + # force correct number of jobs + # https://bugs.gentoo.org/737660 + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + sed -i -e "s:-j0:-j${jobs}:" Makefile.pre.in || die + sed -i -e "/self\.parallel/s:True:${jobs}:" setup.py || die + + eautoreconf +} + +src_configure() { + local disable + # disable automagic bluetooth headers detection + use bluetooth || export ac_cv_header_bluetooth_bluetooth_h=no + use gdbm || disable+=" gdbm" + use ncurses || disable+=" _curses _curses_panel" + use readline || disable+=" readline" + use sqlite || disable+=" _sqlite3" + use ssl || export PYTHON_DISABLE_SSL="1" + use tk || disable+=" _tkinter" + use xml || disable+=" _elementtree pyexpat" # _elementtree uses pyexpat. + export PYTHON_DISABLE_MODULES="${disable}" + + if ! use xml; then + ewarn "You have configured Python without XML support." + ewarn "This is NOT a recommended configuration as you" + ewarn "may face problems parsing any XML documents." + fi + + if [[ -n "${PYTHON_DISABLE_MODULES}" ]]; then + einfo "Disabled modules: ${PYTHON_DISABLE_MODULES}" + fi + + if [[ "$(gcc-major-version)" -ge 4 ]]; then + append-flags -fwrapv + fi + + filter-flags -malign-double + + # https://bugs.gentoo.org/show_bug.cgi?id=50309 + if is-flagq -O3; then + is-flagq -fstack-protector-all && replace-flags -O3 -O2 + use hardened && replace-flags -O3 -O2 + fi + + # https://bugs.gentoo.org/700012 + if is-flagq -flto || is-flagq '-flto=*'; then + append-cflags $(test-flags-CC -ffat-lto-objects) + fi + + # Export CXX so it ends up in /usr/lib/python3.X/config/Makefile. + tc-export CXX + + # Fix implicit declarations on cross and prefix builds. Bug #674070. + use ncurses && append-cppflags -I"${ESYSROOT}"/usr/include/ncursesw + + local dbmliborder + if use gdbm; then + dbmliborder+="${dbmliborder:+:}gdbm" + fi + + if use pgo; then + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + export PROFILE_TASK="-m test -j${jobs} --pgo-extended -x test_gdb -u-network" + + # All of these seem to occasionally hang for PGO inconsistently + # They'll even hang here but be fine in src_test sometimes. + # bug #828535 (and related: bug #788022) + PROFILE_TASK+=" -x test_socket -x test_asyncio -x test_httpservers -x test_logging -x test_multiprocessing_fork -x test_xmlrpc" + + if has_version "app-arch/rpm" ; then + # Avoid sandbox failure (attempts to write to /var/lib/rpm) + PROFILE_TASK+=" -x test_distutils" + fi + fi + + local myeconfargs=( + # glibc-2.30 removes it; since we can't cleanly force-rebuild + # Python on glibc upgrade, remove it proactively to give + # a chance for users rebuilding python before glibc + ac_cv_header_stropts_h=no + + --enable-shared + --enable-ipv6 + --infodir='${prefix}/share/info' + --mandir='${prefix}/share/man' + --with-computed-gotos + --with-dbmliborder="${dbmliborder}" + --with-libc= + --enable-loadable-sqlite-extensions + --without-ensurepip + --with-system-expat + --with-system-ffi + + $(use_with lto) + $(use_enable pgo optimizations) + ) + + # disable implicit optimization/debugging flags + local -x OPT= + # pass system CFLAGS & LDFLAGS as _NODIST, otherwise they'll get + # propagated to sysconfig for built extensions + local -x CFLAGS_NODIST=${CFLAGS} + local -x LDFLAGS_NODIST=${LDFLAGS} + local -x CFLAGS= LDFLAGS= + + econf "${myeconfargs[@]}" + + if grep -q "#define POSIX_SEMAPHORES_NOT_ENABLED 1" pyconfig.h; then + eerror "configure has detected that the sem_open function is broken." + eerror "Please ensure that /dev/shm is mounted as a tmpfs with mode 1777." + die "Broken sem_open function (bug 496328)" + fi +} + +src_compile() { + # Ensure sed works as expected + # https://bugs.gentoo.org/594768 + local -x LC_ALL=C + # Prevent using distutils bundled by setuptools. + # https://bugs.gentoo.org/823728 + export SETUPTOOLS_USE_DISTUTILS=stdlib + + if use pgo ; then + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + addpredict /usr/lib/python3.9/site-packages + fi + + # also need to clear the flags explicitly here or they end up + # in _sysconfigdata* + emake CPPFLAGS= CFLAGS= LDFLAGS= + + # Work around bug 329499. See also bug 413751 and 457194. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E python + else + pax-mark m python + fi +} + +src_test() { + # Tests will not work when cross compiling. + if tc-is-cross-compiler; then + elog "Disabling tests due to crosscompiling." + return + fi + + # Skip failing tests. + local skipped_tests="gdb" + + for test in ${skipped_tests}; do + mv "${S}"/Lib/test/test_${test}.py "${T}" + done + + # bug 660358 + local -x COLUMNS=80 + local -x PYTHONDONTWRITEBYTECODE= + + local jobs=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") + + emake test EXTRATESTOPTS="-u-network -j${jobs}" \ + CPPFLAGS= CFLAGS= LDFLAGS= < /dev/tty + local result=$? + + for test in ${skipped_tests}; do + mv "${T}/test_${test}.py" "${S}"/Lib/test + done + + elog "The following tests have been skipped:" + for test in ${skipped_tests}; do + elog "test_${test}.py" + done + + elog "If you would like to run them, you may:" + elog "cd '${EPREFIX}/usr/lib/python${PYVER}/test'" + elog "and run the tests separately." + + if [[ ${result} -ne 0 ]]; then + die "emake test failed" + fi +} + +src_install() { + local libdir=${ED}/usr/lib/python${PYVER} + + emake DESTDIR="${D}" altinstall + + # Remove static library + rm "${ED}"/usr/$(get_libdir)/libpython*.a || die + + # Fix collisions between different slots of Python. + rm "${ED}/usr/$(get_libdir)/libpython3.so" || die + + # Cheap hack to get version with ABIFLAGS + local abiver=$(cd "${ED}/usr/include"; echo python*) + if [[ ${abiver} != python${PYVER} ]]; then + # Replace python3.X with a symlink to python3.Xm + rm "${ED}/usr/bin/python${PYVER}" || die + dosym "${abiver}" "/usr/bin/python${PYVER}" + # Create python3.X-config symlink + dosym "${abiver}-config" "/usr/bin/python${PYVER}-config" + # Create python-3.5m.pc symlink + dosym "python-${PYVER}.pc" "/usr/$(get_libdir)/pkgconfig/${abiver/${PYVER}/-${PYVER}}.pc" + fi + + # python seems to get rebuilt in src_install (bug 569908) + # Work around it for now. + if has_version dev-libs/libffi[pax-kernel]; then + pax-mark E "${ED}/usr/bin/${abiver}" + else + pax-mark m "${ED}/usr/bin/${abiver}" + fi + + use sqlite || rm -r "${libdir}/"{sqlite3,test/test_sqlite*} || die + use tk || rm -r "${ED}/usr/bin/idle${PYVER}" "${libdir}/"{idlelib,tkinter,test/test_tk*} || die + + dodoc Misc/{ACKS,HISTORY,NEWS} + + if use examples; then + docinto examples + find Tools -name __pycache__ -exec rm -fr {} + || die + dodoc -r Tools + fi + insinto /usr/share/gdb/auto-load/usr/$(get_libdir) #443510 + local libname=$(printf 'e:\n\t@echo $(INSTSONAME)\ninclude Makefile\n' | \ + emake --no-print-directory -s -f - 2>/dev/null) + newins "${S}"/Tools/gdb/libpython.py "${libname}"-gdb.py + + newconfd "${FILESDIR}/pydoc.conf" pydoc-${PYVER} + newinitd "${FILESDIR}/pydoc.init" pydoc-${PYVER} + sed \ + -e "s:@PYDOC_PORT_VARIABLE@:PYDOC${PYVER/./_}_PORT:" \ + -e "s:@PYDOC@:pydoc${PYVER}:" \ + -i "${ED}/etc/conf.d/pydoc-${PYVER}" \ + "${ED}/etc/init.d/pydoc-${PYVER}" || die "sed failed" + + local -x EPYTHON=python${PYVER} + # if not using a cross-compiler, use the fresh binary + if ! tc-is-cross-compiler; then + local -x PYTHON=./python + local -x LD_LIBRARY_PATH=${LD_LIBRARY_PATH+${LD_LIBRARY_PATH}:}${PWD} + else + local -x PYTHON=${EPREFIX}/usr/bin/${EPYTHON} + fi + + echo "EPYTHON='${EPYTHON}'" > epython.py || die + python_domodule epython.py + + # python-exec wrapping support + local pymajor=${PYVER%.*} + local scriptdir=${D}$(python_get_scriptdir) + mkdir -p "${scriptdir}" || die + # python and pythonX + ln -s "../../../bin/${abiver}" \ + "${scriptdir}/python${pymajor}" || die + ln -s "python${pymajor}" "${scriptdir}/python" || die + # python-config and pythonX-config + # note: we need to create a wrapper rather than symlinking it due + # to some random dirname(argv[0]) magic performed by python-config + cat > "${scriptdir}/python${pymajor}-config" <<-EOF || die + #!/bin/sh + exec "${abiver}-config" "\${@}" + EOF + chmod +x "${scriptdir}/python${pymajor}-config" || die + ln -s "python${pymajor}-config" \ + "${scriptdir}/python-config" || die + # 2to3, pydoc + ln -s "../../../bin/2to3-${PYVER}" \ + "${scriptdir}/2to3" || die + ln -s "../../../bin/pydoc${PYVER}" \ + "${scriptdir}/pydoc" || die + # idle + if use tk; then + ln -s "../../../bin/idle${PYVER}" \ + "${scriptdir}/idle" || die + fi +} diff --git a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0.ebuild b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0.ebuild index b76698164cc0..462e690912a0 100644 --- a/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0.ebuild +++ b/dev-python/argon2-cffi-bindings/argon2-cffi-bindings-21.2.0.ebuild @@ -16,7 +16,10 @@ KEYWORDS="amd64 arm arm64 hppa ~ia64 ppc ~ppc64 ~riscv ~s390 ~sparc x86" IUSE="cpu_flags_x86_sse2" DEPEND="app-crypt/argon2:=" -BDEPEND="virtual/python-cffi[${PYTHON_USEDEP}]" +BDEPEND=" + >=dev-python/setuptools_scm-6.2[${PYTHON_USEDEP}] + virtual/python-cffi[${PYTHON_USEDEP}] +" RDEPEND=" ${DEPEND} ${BDEPEND} diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index ec8df2395a9b..a7a0d8e4cb1a 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -3,3 +3,4 @@ DIST boto3-1.20.31.tar.gz 458553 BLAKE2B 396acd8bbc47f76a0ba65da4b83f141f2536903 DIST boto3-1.20.37.tar.gz 461197 BLAKE2B 4ae94815809401378bbd6c6b7774776c62436c3ae379be44b045105d00ffdebc6cfba1112ed6d4693662c6a00b5de53b4fcd1ea605a93cccb1406f3f983d8c9a SHA512 368abbe51e814b5a8080323f436d8e0b5ea660b31abd77a49299afd6363c3d10e51883a3237f06799be53472c3e24c76f5ba3ece8cc9721b87fe3fb40ad8911f DIST boto3-1.20.40.tar.gz 462565 BLAKE2B bd540636392678e83112e85cb6c078d657196a46ddabaa00bdd66d00d7d0aeabe525e8639bf35fa88b039226372bfa5385ea2e1eaea790ebee7f4732d2cdfae4 SHA512 5b28a2de946942c3bb68b1d073a2567bb3cbce9732f3f620ef41c4ffab7c7d6aa4f68ec1e5357f930819f3948d50ed3a58f0176206946a5eaaa42c096fd1e020 DIST boto3-1.20.41.tar.gz 463009 BLAKE2B c60443611023dd03ddcd1cc5ca951d2efdf02c221c673a01fc056788d9ef7d1704a37c006c1706c012d11219cb6c75203518796155aa3ef144154a8a86d6620a SHA512 7bec4a384c42b238bd3f6b0f58884fab357edae2ab985142b76f6b906323c0f02568046c9bbb229bb040de336ea2cbf25fa5441cd09e7c56c94f9e7de2abc763 +DIST boto3-1.20.42.tar.gz 463092 BLAKE2B 5396f2c47db8aaec468a0e9cb3eebe8450dd3a91680ea3e87171186052222c14be40ceb637aa88149eb878cf9dc45a1f0ffe6f02388be3e7dfcc28e92cad032c SHA512 1ae9b70eb601c0445bd67a61681ad1d7765deace0f007320124d587be40d8761e4270ce590994c80313090d060e84080effd6f7c3e40ca01c868bbad2d1ff6c9 diff --git a/dev-python/boto3/boto3-1.20.42.ebuild b/dev-python/boto3/boto3-1.20.42.ebuild new file mode 100644 index 000000000000..48ea5aa483a1 --- /dev/null +++ b/dev-python/boto3/boto3-1.20.42.ebuild @@ -0,0 +1,60 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE="https://github.com/boto/boto3" +LICENSE="Apache-2.0" +SLOT="0" + +if [[ "${PV}" == "9999" ]]; then + EGIT_REPO_URI="https://github.com/boto/boto3" + inherit git-r3 + BOTOCORE_PV=${PV} +else + SRC_URI="https://github.com/boto/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + + # botocore is x.(y+3).z + BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)" +fi + +RDEPEND=" + >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.3.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/mock[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx docs/source \ + 'dev-python/guzzle_sphinx_theme' +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index 11354302914b..dfd4a180cf55 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -3,3 +3,4 @@ DIST botocore-1.23.31.tar.gz 8706949 BLAKE2B 2e31bc09173a93806fe045e5217defcf17b DIST botocore-1.23.37.tar.gz 8728451 BLAKE2B 039352d4c727433cc5aef435cd7527fa3bc6027c3db8b2a27219d4cab8f602f74995b09e5407c1df1c7a51e37830db7e8f351484485f6b822499933c35607472 SHA512 79004d38fbfc744d2fd91364a1cc99d8be1f2d03f25f2ba77df0da4b4d429a156ac5d52ca523ee4992ff99ac83b7a14e7f49e3b12b9b6f91e164fb720c41e10d DIST botocore-1.23.40.tar.gz 8730992 BLAKE2B 855742e6661e497c10cee6becbc9fc5eae39b1525b11008ecc27e35126d3c2ab9ce68d5d260a974d8359eeb056dad0d79dd866b6097458989989b6ae9924e49f SHA512 cbed5c316e3976594930ae1c274fdac9e25289c9818bc515e5a27c620431b05c010736f8e94d90fb935e22e5a1c50dbd4708c7674ef6e697c35475f8757df63d DIST botocore-1.23.41.tar.gz 8732416 BLAKE2B 2d1a3284521a608db2dbfdbb8c98fb3bd01e048fb3b4a34e3dc497b6476bcbf8cd37ea9273ae3d3b09a9356aca8d1063dafdf15ae9c7ab59bbf3cc841bcc7a24 SHA512 d3d12df8faced36a9c7a75fd01d63986cb12d56a259f31211c32cbf0f1eceb1d6708e90f6a6a43189e37b86e01ceef68fcd5dcbd1867c571ca3630cbcc7e94f5 +DIST botocore-1.23.42.tar.gz 8734201 BLAKE2B 009fd49716ce5a1453c83f279f36b8b174403ef7e403caa43a030126fde6e0e9bd414dc4369791aa090d7b10065906c6a97ada1d7796553af0cbbd4af8b78d95 SHA512 bc5ec5996fb139bc18975976bb8907978caf10399867cbcf8dc39bf47a5d61749c617c704cfbbe87074a6db5f4355f645fc88f06a71251c8bd3f65adacd1d9ba diff --git a/dev-python/botocore/botocore-1.23.42.ebuild b/dev-python/botocore/botocore-1.23.42.ebuild new file mode 100644 index 000000000000..79a1cd5da0e2 --- /dev/null +++ b/dev-python/botocore/botocore-1.23.42.ebuild @@ -0,0 +1,65 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE="https://github.com/boto/botocore" +LICENSE="Apache-2.0" +SLOT="0" + +if [[ "${PV}" == "9999" ]]; then + EGIT_REPO_URI="https://github.com/boto/botocore" + inherit git-r3 +else + SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" +fi + +RDEPEND=" + dev-python/six[${PYTHON_USEDEP}] + dev-python/jmespath[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +PATCHES=( + "${FILESDIR}/1.8.6-tests-pass-all-env-vars-to-cmd-runner.patch" +) + +distutils_enable_sphinx docs/source \ + 'dev-python/guzzle_sphinx_theme' +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + epytest tests/{functional,unit} +} diff --git a/dev-python/dulwich/Manifest b/dev-python/dulwich/Manifest index 90d6d04db8a8..2f66260ae117 100644 --- a/dev-python/dulwich/Manifest +++ b/dev-python/dulwich/Manifest @@ -3,3 +3,4 @@ DIST dulwich-0.20.27.tar.gz 416618 BLAKE2B 73ed04d9fc871a82126e212bdac0eaf235e44 DIST dulwich-0.20.28.tar.gz 416723 BLAKE2B ddbb36c65e1372e1c2fbab5d85ef26a77f40e4763eee8dc5d2ba249a6b4e37bd6e38197eaebbcb46f16df577c0ff4730ec69fff39a549adf2e5d147e7a3eabfc SHA512 5eb90dd888909f787ef5e9f0a79d7db9a31c5897e334a862c1d0593c4f115ff30047f108c7b315e0145e267f581ba0f4fd0fafb7b1b2316d3def4f70697f2e20 DIST dulwich-0.20.30.tar.gz 417219 BLAKE2B 6b5b10a37f2901424b632dad081b9972da5af7475e11389c73f8a64a57ebf421700c6591bfddc5418b9c02d61916894aeeb2371a3ceb514532fd1b9e63dffb2c SHA512 1dd18c047e8bfe9f23a10c0c55b57be7b4d89d93af4a682265dac3bf495d1594057ed755e7caad926100d35e3603006377163dc6ae71bc51a500c744064f8bbc DIST dulwich-0.20.31.tar.gz 418063 BLAKE2B 7b914ce6509227b48fc716ed4ecabfead8b95fa17661564b3dc6b9abedb2c444d026d1261de9bb7195a14f5ffea9dfcb3103f32784f07731d2101a7c60f1abda SHA512 1f181aa62493fc8cdb2a18183f0aa2f5bb0963c1739423fc6790080bcec9d10368689934bfe8828b502bbe319ade4846428f3c4262666be01ccbce55a8803efa +DIST dulwich-0.20.32.tar.gz 418100 BLAKE2B 21d41a7b1e491848a11ab3e3b1b63bfbe1798b38ef331136b07609f004e780672477e91a637dd3b1ccd3b26e359461e1a16d759ac2cb98d1091fbdb1968c00a9 SHA512 9af4cb4462ab9a69bea9074aace81eeb8d33087f2c53e64145991913ad132e076b62f7958551729c758cd6eeae029a278723872771ef36b046331c85ebf2fcf4 diff --git a/dev-python/dulwich/dulwich-0.20.32.ebuild b/dev-python/dulwich/dulwich-0.20.32.ebuild new file mode 100644 index 000000000000..db9d32133a7a --- /dev/null +++ b/dev-python/dulwich/dulwich-0.20.32.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="Pure-Python implementation of the Git file formats and protocols" +HOMEPAGE=" + https://github.com/dulwich/dulwich/ + https://pypi.org/project/dulwich/" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="GPL-2+ Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="doc examples test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/certifi[${PYTHON_USEDEP}] + dev-python/urllib3[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${RDEPEND} + !hppa? ( !ia64? ( + dev-python/gevent[${PYTHON_USEDEP}] + dev-python/geventhttpclient[${PYTHON_USEDEP}] + ) ) + app-crypt/gpgme[python,${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/fastimport[${PYTHON_USEDEP}] + )" + +distutils_enable_sphinx docs + +python_test() { + # remove interference from the tests that do stuff like user.name + unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE \ + GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_COMMITTER_DATE EMAIL + # Do not use make check which rebuilds the extension and uses -Werror, + # causing unexpected failures. + "${EPYTHON}" -m unittest -v dulwich.tests.test_suite || + die "tests failed with ${EPYTHON}" +} + +python_install_all() { + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + dodoc -r examples + fi + distutils-r1_python_install_all +} diff --git a/dev-python/fonttools/Manifest b/dev-python/fonttools/Manifest index 56b02a28dec3..279af5c95fc6 100644 --- a/dev-python/fonttools/Manifest +++ b/dev-python/fonttools/Manifest @@ -1,2 +1,3 @@ DIST fonttools-4.28.4.tar.gz 2945369 BLAKE2B f178552aca7b41dcec1c03d2a7c3de17cdb5f4b2e057a75e196e78a098b9959a038a9a3b14ee8546d5ea12e3546c22d2a8d9b34a922c0822bf52f78bc03f4f54 SHA512 9ecdf4186e24a8a44c6010432d71f1689ebf8461a404dde71259eb4712c4987d94bbe31b33ad6943fb2e0105fc9f8e9032a94e6ccbb4ac01fe330bb700a39c63 DIST fonttools-4.28.5.tar.gz 2948092 BLAKE2B b35f4be68cfc2be6afb209c2caee38f7088a1a17dea85fac0f40183b61a3eded59fab47f703587097669f8823a8dbc2e84b0df58305597784bed7f8c2e2b0f28 SHA512 5d87f4fadbcb447d1c1a1e97550f6a477d74bfe8647d14b35097e03e6a45a1a01632d2092483d675c523f97d4a04f39aa9b3175e535b1e1a4f19d619eb40ad5f +DIST fonttools-4.29.0.tar.gz 2954211 BLAKE2B 47b7228b2f0f7332f54df58d8be8289b9bc3a737caa57ffafe9a8467e4d7e35db153f7e02caf8c6129af8dbb2bc18689af3f3122b0be7afee19bece83c846aad SHA512 0573970ceaf43e4987eee970aa93a6aba5af2b592b5d92a1aec36b102cb1967f380f8170f7a14bb80cd6348ef09737ac17a0f82eaa1ad73f9f5e246271d34b32 diff --git a/dev-python/fonttools/fonttools-4.29.0.ebuild b/dev-python/fonttools/fonttools-4.29.0.ebuild new file mode 100644 index 000000000000..e91a05a05cd3 --- /dev/null +++ b/dev-python/fonttools/fonttools-4.29.0.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +PYTHON_REQ_USE="xml(+)" + +inherit distutils-r1 virtualx + +DESCRIPTION="Library for manipulating TrueType, OpenType, AFM and Type1 fonts" +HOMEPAGE="https://github.com/fonttools/fonttools/" +SRC_URI="https://github.com/fonttools/fonttools/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" + +RDEPEND=">=dev-python/fs-2.4.9[${PYTHON_USEDEP}]" +BDEPEND=" + ${RDEPEND} + dev-python/cython[${PYTHON_USEDEP}] + test? ( + app-arch/brotli[python,${PYTHON_USEDEP}] + app-arch/zopfli + )" + +distutils_enable_tests pytest + +python_prepare_all() { + # When dev-python/pytest-shutil is installed, we get weird import errors. + # This is due to incomplete nesting in the Tests/ tree: + # + # Tests/feaLib/__init__.py + # Tests/ufoLib/__init__.py + # Tests/svgLib/path/__init__.py + # Tests/otlLib/__init__.py + # Tests/varLib/__init__.py + # + # This tree requires an __init__.py in Tests/svgLib/ too, bug #701148. + touch Tests/svgLib/__init__.py || die + + distutils-r1_python_prepare_all +} + +src_configure() { + export FONTTOOLS_WITH_CYTHON=1 +} + +python_test() { + # virtualx used when matplotlib is installed causing plot module tests to run + virtx epytest Tests fontTools +} diff --git a/dev-python/installer/Manifest b/dev-python/installer/Manifest index b18a2088dca8..9add80aee415 100644 --- a/dev-python/installer/Manifest +++ b/dev-python/installer/Manifest @@ -1,4 +1,2 @@ DIST installer-0.4.0-py2.py3-none-any.whl.zip 451433 BLAKE2B 933b7e63b3d0306213789d493d4df112df26b432d63ecd1f8f21449520c34bd2ad542aac25069043fbb535c44f988dca927625eafd0a5a20489fc3ce2bcf84a2 SHA512 cf303bb422e329a36007b361034144a232ba021d4013bb8678dc7c326544e74ec9a3b3fe8b9d3696433dbbe90d2ce4a0ae8967fb054bd5ed49321d470be729a8 -DIST installer-0.4.0_p20220115-cli.patch 14552 BLAKE2B 6632c1472ae0a578f6c7ed0acf1bb0d89ece924626b68c0daa28d9a7d93826837adaf6b0d40f048c4f5c2986b4328ca565340137e7b7fa7f407f62ebddc70275 SHA512 f8c6369955e0bde2bff0b935c39748d02659bc6ca0341af405e2c1026cf145479ba0b908bd769cdc05f3cc920f881b894b6a5eb7ace643951e05250ec0486b80 -DIST installer-0.4.0_p20220115.gh.tar.gz 466532 BLAKE2B 6dea3f4bacb52c4983e111d420495ee157076342a823b7062c6e5b3e4d3b70e6b2e9cb024d0c7baba6f88ed70f4303ab071d1882bc9d8dd0726f82a3e406056f SHA512 fbb0d4c8642fa2cbe2fd3be2eef7044a0353f04c67ecce20aafed33a0d7877ff55872ca5ad51390ae7e02cdb7af5dbd57b662085b60d425be95da6643b061eaa DIST installer-0.4.0_p20220124.gh.tar.gz 468296 BLAKE2B 44763fd05b9e3cc665871817f3a6a417ddc12274ae42989e96ad432af98d42c23ab9f1c1cc37e17d4b9ce06ead7ef0c8227b2b10fe5744c899a9e3ea347e4e33 SHA512 b25fa910e8a7d9a2757af4694bf12a64c8731213a5682ab02bbe472229c99dd9190b1e7663a7632d61cbf0585006b2d4de62115c40f9b132be2c70672e23726d diff --git a/dev-python/installer/installer-0.4.0_p20220115.ebuild b/dev-python/installer/installer-0.4.0_p20220115.ebuild deleted file mode 100644 index 1d5d429041ce..000000000000 --- a/dev-python/installer/installer-0.4.0_p20220115.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_SETUPTOOLS=manual -PYTHON_COMPAT=( python3_{8..10} pypy3 ) -inherit distutils-r1 - -EGIT_COMMIT="bf68f7b045ffc08784af03cf2433548c9ee9e8ca" -DESCRIPTION="A library for installing Python wheels" -HOMEPAGE=" - https://pypi.org/project/installer/ - https://github.com/pradyunsg/installer/ - https://installer.readthedocs.io/en/latest/ -" -SRC_URI=" - https://github.com/pradyunsg/installer/archive/${EGIT_COMMIT}.tar.gz - -> ${P}.gh.tar.gz - https://files.pythonhosted.org/packages/py2.py3/${PN::1}/${PN}/${P%_p*}-py2.py3-none-any.whl - -> ${P%_p*}-py2.py3-none-any.whl.zip - https://patch-diff.githubusercontent.com/raw/pradyunsg/installer/pull/94.diff - -> ${P}-cli.patch -" -S=${WORKDIR}/${PN}-${EGIT_COMMIT} - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" - -# NB: newer git doesn't use mock anymore -BDEPEND=" - app-arch/unzip - test? ( - dev-python/mock[${PYTHON_USEDEP}] - ) -" - -distutils_enable_tests pytest - -PATCHES=( - "${DISTDIR}"/${P}-cli.patch -) - -# do not use any build system to avoid circular deps -python_compile() { :; } - -python_test() { - local -x PYTHONPATH=src - epytest -} - -python_install() { - python_domodule src/installer "${WORKDIR}"/*.dist-info -} diff --git a/dev-python/markdown-it-py/Manifest b/dev-python/markdown-it-py/Manifest index f6fc23e4fb2c..04ffab946247 100644 --- a/dev-python/markdown-it-py/Manifest +++ b/dev-python/markdown-it-py/Manifest @@ -1 +1,2 @@ DIST markdown-it-py-2.0.0.gh.tar.gz 265346 BLAKE2B f509c3fdc82a2665bb9bca862118c544cf203afbb8454cdbb5f58c58aeadcd1fbd66ef98615ac6501e4fe8ce83d2e668de29d2e67301ddda06d1cbbaf6cf7422 SHA512 226111a8d0e57d9def2076053abfba1b7533bb0cdee569b8e1c7ece2b61ebce49daa263aee673683b83974b7597df0e6d62c1723860af684fe306c55619357ca +DIST markdown-it-py-2.0.1.gh.tar.gz 265850 BLAKE2B fe61608f14b22dffb81bb943df75967300e8366ff1b1c252b35974414efa6b2daac223b09f40ff6d7feab70c5b033b0eee35a4ee5f8523325f12311f4cbeef57 SHA512 fccf00de7e94986a29047da948d6ebb6304ae3645e79bbad480366c3aadbd417b95d96489d167a532eee3c2e17b67e22777224290564c7bcc17d72fec29b08df diff --git a/dev-python/markdown-it-py/markdown-it-py-2.0.1.ebuild b/dev-python/markdown-it-py/markdown-it-py-2.0.1.ebuild new file mode 100644 index 000000000000..834cfae053f4 --- /dev/null +++ b/dev-python/markdown-it-py/markdown-it-py-2.0.1.ebuild @@ -0,0 +1,43 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 + +DESCRIPTION="Python port of markdown-it, Markdown parser" +HOMEPAGE="https://pypi.org/project/markdown-it-py/ + https://github.com/executablebooks/markdown-it-py" +SRC_URI=" + https://github.com/executablebooks/markdown-it-py/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + <dev-python/attrs-22[${PYTHON_USEDEP}] + dev-python/mdurl[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pytest-regressions[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # Unimportant tests needing a new dep linkify + tests/test_linkify.py::test_token_levels + tests/test_port/test_fixtures.py::test_linkify +) + +EPYTEST_IGNORE=( + # No need to benchmark + benchmarking/ +) diff --git a/dev-python/numpydoc/Manifest b/dev-python/numpydoc/Manifest index 73b5150901a4..ad77cba92360 100644 --- a/dev-python/numpydoc/Manifest +++ b/dev-python/numpydoc/Manifest @@ -1 +1,2 @@ DIST numpydoc-1.1.0.tar.gz 609482 BLAKE2B 475be835a760dd148b7132a3149a1b79193425b70bbaa51b29a3909c73ed11a933181c917a0f0d0b56d8d30baced2142897e0a931b5eeb6449092d0a2a81632b SHA512 10dfc5e40ca851401be7d7cca3cbf24bf8ded8573c01344976321cd65fe351d985ee0bf48a92a485a43f8fb191c246e4822545a1583c87c1214d819a5fdfc106 +DIST numpydoc-1.2.tar.gz 69659 BLAKE2B e5483ad3d6d82e9ff51d2d7cdc36c75407361059a696047f1d0fb7d3307c36ee056e8c0b9eb45fc11e4d341350c1b1dd021d60252055154c6907942e549b9555 SHA512 b8ea82a947c7fca9d02c2083f6040f2a1a115400e43257fd6ce7ac9b1b174d22ed7723053b87893d6bff8f47a625932297c884e853be4e00d3ae2262ad0161cf diff --git a/dev-python/numpydoc/numpydoc-1.2.ebuild b/dev-python/numpydoc/numpydoc-1.2.ebuild new file mode 100644 index 000000000000..1d6b9cd2cb0a --- /dev/null +++ b/dev-python/numpydoc/numpydoc-1.2.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 + +DESCRIPTION="Sphinx extension to support docstrings in Numpy format" +HOMEPAGE="https://pypi.org/project/numpydoc/" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +RDEPEND=" + >=dev-python/jinja-2.10[${PYTHON_USEDEP}] + >=dev-python/sphinx-1.8[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/matplotlib-3.2.1[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + sed -i -e 's:--cov-report= --cov=numpydoc::' setup.cfg || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # these require Internet (intersphinx) + numpydoc/tests/test_full.py::test_MyClass + numpydoc/tests/test_full.py::test_my_function + ) + epytest --pyargs numpydoc +} diff --git a/dev-python/pdm-pep517/Manifest b/dev-python/pdm-pep517/Manifest index f9273745987d..a2bfe9f63f76 100644 --- a/dev-python/pdm-pep517/Manifest +++ b/dev-python/pdm-pep517/Manifest @@ -1 +1,2 @@ DIST pdm-pep517-0.10.0.gh.tar.gz 189457 BLAKE2B 5a51b62dbc828aec5bca6ada8c7ecb479dd7491f22251392198a3d8e183f2d3d86fd4264addd9a428c37a24041365f3eeecec0a33c3f1a39ea8a1a8e6827be91 SHA512 7eb76bdf3db99ec1cf76a467617ce15423eaa465800efa9ccb248efb3c3cb5644b8e6a9ce04d6181dc9f3b5287a167f62f25d5e3334929f3e947a62ca9633d01 +DIST pdm-pep517-0.10.1.gh.tar.gz 189525 BLAKE2B 10d80fee2ac45fd68c61baf9a8ee7365da19a5daa085fdecd3164b3271cf0c0ee8ad110b1f96a33a4eecdceace72c2d4ee1ce789331c208eb4a67e3b4e3fe56a SHA512 acdf36eeb2baf90c1c80b676901ac06946fbb32f2a5c2bfbdfd85d0889ae22a0851dede4f5898d109d20583504b311cbec6903deadfb77e3f1dd7ff6a1098e04 diff --git a/dev-python/pdm-pep517/pdm-pep517-0.10.1.ebuild b/dev-python/pdm-pep517/pdm-pep517-0.10.1.ebuild new file mode 100644 index 000000000000..9c1dcf99a0c9 --- /dev/null +++ b/dev-python/pdm-pep517/pdm-pep517-0.10.1.ebuild @@ -0,0 +1,50 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{8..10} pypy3 ) +inherit distutils-r1 + +DESCRIPTION="A PEP 517 backend for PDM that supports PEP 621 metadata" +HOMEPAGE=" + https://pypi.org/project/pdm-pep517/ + https://github.com/pdm-project/pdm-pep517/ +" +SRC_URI=" + https://github.com/pdm-project/pdm-pep517/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +# setuptools are used to build C extensions +RDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-vcs/git + ) +" + +distutils_enable_tests pytest + +src_test() { + git config --global user.email "test@example.com" || die + git config --global user.name "Test User" || die + distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=() + if [[ ${EPYTHON} == pypy3 ]]; then + EPYTEST_DESELECT+=( + tests/test_wheel.py::test_override_tags_in_wheel_filename + ) + fi + epytest +} diff --git a/dev-python/pure_eval/Manifest b/dev-python/pure_eval/Manifest index fff84ca7e352..b017b8262d55 100644 --- a/dev-python/pure_eval/Manifest +++ b/dev-python/pure_eval/Manifest @@ -1 +1,2 @@ DIST pure_eval-0.2.1.tar.gz 19430 BLAKE2B 6907cf2fc2a7118274a80dacdebeae163be57cc31086bc66f8ad9960f4624accde78149db9098bfba902774b367e2e0e9c5aac53c4e75119465d5f07cabbf17d SHA512 938d5bc5676ca39b728ab5a9c98d33a1eb7a2e8a66e61e3ae16e516a7c3bcc1b6d73c402faaec44581baeec6fee7297092c2473c257588948fabf786b14a7204 +DIST pure_eval-0.2.2.tar.gz 19395 BLAKE2B 19f86a1436e5f1a026a24f62c435e8970d84960f4cde1de80c58949b1aede6aa7562e8430e10e3f7171212c31d5699a3321fad5fb2ea1eed961a30d43a632a79 SHA512 35d20cbbfd513b7ac341759e619401a5f57b7b9df8abd09ce6414d4ee6bfa45dcadbad7529d067e81ad7ea2107c14fd03783a3a77f8074dad30d2e5161656804 diff --git a/dev-python/pure_eval/pure_eval-0.2.2.ebuild b/dev-python/pure_eval/pure_eval-0.2.2.ebuild new file mode 100644 index 000000000000..8490802a5f09 --- /dev/null +++ b/dev-python/pure_eval/pure_eval-0.2.2.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="Safely evaluate AST nodes without side effects" +HOMEPAGE="https://github.com/alexmojaki/pure_eval" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~riscv" + +BDEPEND="dev-python/wheel[${PYTHON_USEDEP}]" + +distutils_enable_tests pytest diff --git a/dev-python/py-zabbix/Manifest b/dev-python/py-zabbix/Manifest deleted file mode 100644 index 771920ad78c8..000000000000 --- a/dev-python/py-zabbix/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST py-zabbix-1.1.7.tar.gz 11447 BLAKE2B a61450f4d1783bbf6879b94300ae71fbecded5f232c234402d19c59af9bea5f1ef164c549a433a4b221032b6105d4ecd0f3515104ed8f02d3da8888ee3c45a90 SHA512 eaa8c5e5ad5604ad4ad41de439ab7856f6907346caa56bed67520df3316f313038e300cbf96f8389dca5be30079392406bcbb26f3ba40d2ef39ccd2fc99c11b6 diff --git a/dev-python/py-zabbix/metadata.xml b/dev-python/py-zabbix/metadata.xml deleted file mode 100644 index 359f1d2181fa..000000000000 --- a/dev-python/py-zabbix/metadata.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>alexxy@gentoo.org</email> - <name>Alexey Shvetsov</name> - </maintainer> - <maintainer type="project"> - <email>python@gentoo.org</email> - <name>Python</name> - </maintainer> - <stabilize-allarches/> - <upstream> - <remote-id type="pypi">py-zabbix</remote-id> - <remote-id type="github">adubkov/py-zabbix</remote-id> - </upstream> -</pkgmetadata> diff --git a/dev-python/py-zabbix/py-zabbix-1.1.7.ebuild b/dev-python/py-zabbix/py-zabbix-1.1.7.ebuild deleted file mode 100644 index 98d6f4182470..000000000000 --- a/dev-python/py-zabbix/py-zabbix-1.1.7.ebuild +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} pypy3 ) - -inherit distutils-r1 - -DESCRIPTION="Zabbix module for Python" -HOMEPAGE="https://pypi.org/project/py-zabbix https://github.com/adubkov/py-zabbix" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64" diff --git a/dev-python/pytest-flake8/pytest-flake8-1.0.7.ebuild b/dev-python/pytest-flake8/pytest-flake8-1.0.7.ebuild index 6398ac03bfb8..29d153438360 100644 --- a/dev-python/pytest-flake8/pytest-flake8-1.0.7.ebuild +++ b/dev-python/pytest-flake8/pytest-flake8-1.0.7.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -6,8 +6,10 @@ EAPI=7 PYTHON_COMPAT=( python3_{8..10} ) inherit distutils-r1 -DESCRIPTION="py.test plugin for flake8" -HOMEPAGE="https://github.com/tholo/pytest-flake8 https://pypi.org/project/pytest-flake8" +DESCRIPTION="pytest plugin for flake8" +HOMEPAGE=" + https://github.com/tholo/pytest-flake8/ + https://pypi.org/project/pytest-flake8/" SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="MIT" @@ -17,3 +19,7 @@ KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 x86" RDEPEND=">=dev-python/flake8-3.5.0[${PYTHON_USEDEP}]" distutils_enable_tests pytest + +python_test() { + epytest -p flake8 +} diff --git a/dev-python/pytest-flakes/Manifest b/dev-python/pytest-flakes/Manifest index 38db5f1fb820..545b526b2ef0 100644 --- a/dev-python/pytest-flakes/Manifest +++ b/dev-python/pytest-flakes/Manifest @@ -1,2 +1 @@ -DIST pytest-flakes-4.0.3.tar.gz 7312 BLAKE2B cf62d7e11a0521592325492c76e67cd51384b31d8a6191f10940230014c9a8797b3603e24664c022add5cec18ff7c3b558cd7507af47e8c90a9e90499f39e583 SHA512 ca63d68063cf48789d86dee3707b3ea7c5076fc1f636e17f408ad6f444303fb3a701af8d1e464d49af745e350272bffe8596853a52c01baa0bdb0b6b0c0bb303 DIST pytest-flakes-4.0.4.tar.gz 7271 BLAKE2B aee9b573c1d4e173465d8547a568433eec3a6ab93a05c1a7655d7ecfd3dff2628f50b4f13f2aaa9a8f3ff365552f54cd1a5a3e4c7b347b056615e136fc5c5657 SHA512 f3bc82bef2dad4a1bf145179f1d25330adcb123cb6e2dd9802b0696be56ef66a8c705725a4e05a9fbbdc37d7482af7fe615735e0e94055f66b0893cc4cf15e53 diff --git a/dev-python/pytest-flakes/files/pytest-flakes-4.0.3-fix-py3.10.patch b/dev-python/pytest-flakes/files/pytest-flakes-4.0.3-fix-py3.10.patch deleted file mode 100644 index 35b4809c865b..000000000000 --- a/dev-python/pytest-flakes/files/pytest-flakes-4.0.3-fix-py3.10.patch +++ /dev/null @@ -1,17 +0,0 @@ -From: Arthur Zamarin <arthurzam@gentoo.org> -Date: Fri, 27 Aug 2021 08:23:16 +0300 -Subject: [PATCH] test_syntax_error: fix for python 3.10 - -Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org> ---- a/test_flakes.py -+++ b/test_flakes.py -@@ -20,7 +20,8 @@ for x in [] - pass - """) - result = testdir.runpytest("--flakes", "--ignore", testdir.tmpdir) -- assert "1: invalid syntax" in result.stdout.str() -+ assert ("1: invalid syntax" in result.stdout.str() or -+ "1: expected ':'" in result.stdout.str()) - assert 'passed' not in result.stdout.str() - - diff --git a/dev-python/pytest-flakes/pytest-flakes-4.0.3.ebuild b/dev-python/pytest-flakes/pytest-flakes-4.0.3.ebuild deleted file mode 100644 index d3a52d73420f..000000000000 --- a/dev-python/pytest-flakes/pytest-flakes-4.0.3.ebuild +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..10} pypy3 ) -inherit distutils-r1 - -DESCRIPTION="Collection of small Python functions & classes" -HOMEPAGE="https://pypi.org/project/pytest-flakes/" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -RDEPEND=" - dev-python/pyflakes[${PYTHON_USEDEP}] - dev-python/pytest[${PYTHON_USEDEP}]" - -PATCHES=( - "${FILESDIR}/${P}-fix-py3.10.patch" -) - -distutils_enable_tests pytest diff --git a/dev-python/pytest-flakes/pytest-flakes-4.0.4.ebuild b/dev-python/pytest-flakes/pytest-flakes-4.0.4.ebuild index ccb22189a668..2dbe18a13be2 100644 --- a/dev-python/pytest-flakes/pytest-flakes-4.0.4.ebuild +++ b/dev-python/pytest-flakes/pytest-flakes-4.0.4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -19,3 +19,7 @@ RDEPEND=" dev-python/pytest[${PYTHON_USEDEP}]" distutils_enable_tests pytest + +python_test() { + epytest -p flakes +} diff --git a/dev-python/pytest-param-files/Manifest b/dev-python/pytest-param-files/Manifest index 1654e8c02308..5234361ee133 100644 --- a/dev-python/pytest-param-files/Manifest +++ b/dev-python/pytest-param-files/Manifest @@ -1 +1,2 @@ DIST pytest-param-files-0.3.3.gh.tar.gz 6858 BLAKE2B 6614b00dcfab63241daee0951bea442afb885942c4ab1ce0b2f6b4c3fe1e0a6048955d79cb1bd703f31ffedaede19b36f40caded98e0c8dc014b64e847110a00 SHA512 d52d0aa44088879ee5cd55f8af56ed649a1a82420bed357be043fdcc0df4899002cae36d95c6864126eaaa97877a21aedabb00dd12a8730d6aee3bcaecdcee62 +DIST pytest-param-files-0.3.4.gh.tar.gz 6882 BLAKE2B e2e96bd2cf7b8676f92eeb7821ef76f1f82bb066210170ed4d04a16a7fb3ce346bcd63688ef9d46118c03fd74812fd821fff0414565befb8c558d03d15af2945 SHA512 2df6fe798aab743fdbf892b88ee1d09c554119429167e85bccb87e4ae9d487f8ab5a66c4157827500e8a5d2930277c7490348f6c38f23243e421d5449bde2df5 diff --git a/dev-python/pytest-param-files/pytest-param-files-0.3.4.ebuild b/dev-python/pytest-param-files/pytest-param-files-0.3.4.ebuild new file mode 100644 index 000000000000..4bd1d3f4866b --- /dev/null +++ b/dev-python/pytest-param-files/pytest-param-files-0.3.4.ebuild @@ -0,0 +1,24 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..10} ) +DISTUTILS_USE_PEP517=flit +inherit distutils-r1 + +DESCRIPTION="Pytest parametrize decorators from external files." +HOMEPAGE="https://pypi.org/project/pytest_param_files/ + https://github.com/chrisjsewell/pytest-param-files" +SRC_URI=" + https://github.com/chrisjsewell/pytest-param-files/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND="dev-python/pytest[${PYTHON_USEDEP}]" + +distutils_enable_tests pytest diff --git a/dev-python/stack_data/Manifest b/dev-python/stack_data/Manifest index 93736d786b3a..b812efd89f6d 100644 --- a/dev-python/stack_data/Manifest +++ b/dev-python/stack_data/Manifest @@ -1 +1,2 @@ DIST stack_data-0.1.3.tar.gz 35593 BLAKE2B 8d60f7c589f75dc8362c25ce88c3d46935768033373fd22846e81cce26609c8137ff64d346904ed38181dc27d24e14ed4c4d0217a1229881b6f7373ea359161f SHA512 89f6fcc680b245747c505fac81780834280d3c67aa37f8ba5e782552d074566fe5d8645ccf1e0e47563593b842a4f4dbe50c0ee100773e1888475728ee0007bb +DIST stack_data-0.1.4.tar.gz 36049 BLAKE2B 277d403a441ddd6e3d3019fa8e49e5703d140ee0df7ceac81b7a3b513241ed3759a105b8ada896c328804e35965a26527608477870435d4d6506e58651249d40 SHA512 0dc697513adde1f275eec96291f8ee937bd24b25ba2ee51707f973e8eb30c740159a3b0211ec8617a282ccc22c0db0bd6e75244e0778390d744d64950aaa9ba0 diff --git a/dev-python/stack_data/stack_data-0.1.4.ebuild b/dev-python/stack_data/stack_data-0.1.4.ebuild new file mode 100644 index 000000000000..8d3602838639 --- /dev/null +++ b/dev-python/stack_data/stack_data-0.1.4.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..10} ) +inherit distutils-r1 + +DESCRIPTION="Extract data from Python tracebacks for informative displays" +HOMEPAGE="https://github.com/alexmojaki/stack_data" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~hppa ~ia64 ~riscv" + +RDEPEND=" + dev-python/asttokens[${PYTHON_USEDEP}] + dev-python/executing[${PYTHON_USEDEP}] + dev-python/pure_eval[${PYTHON_USEDEP}]" +BDEPEND=" + test? ( + dev-python/typeguard[${PYTHON_USEDEP}] + dev-python/littleutils[${PYTHON_USEDEP}] + dev-python/pygments[${PYTHON_USEDEP}] + )" + +distutils_enable_tests pytest diff --git a/dev-vcs/git-cola/Manifest b/dev-vcs/git-cola/Manifest index 7008ac23a0cc..f160122dd063 100644 --- a/dev-vcs/git-cola/Manifest +++ b/dev-vcs/git-cola/Manifest @@ -1,4 +1,2 @@ DIST git-cola-3.10.1.tar.gz 996036 BLAKE2B 2d705b853cf67a0f437d8dc77d46d5804124af600f872717c832843586d3c739e67a79ebe50ba2a8db38afd4217a7bb94db9cb8e27d51a00087ced340f4877d6 SHA512 79496023bfaa05049079eec2cdaf8449a6598faebedb4a13acf178209edc63e725eb1b003700a1dcfee09072d34e5a49d7053f070e45b498562cc124cd0582d4 DIST git-cola-3.11.0.tar.gz 997046 BLAKE2B 7a8270c30e0cbd919dcd6f8e38ca420257630717e535ef11ed337fde2461b544453b20363906a5b769cd23d96ca77ce72d71729f46ae6abada83ae4d33628cbc SHA512 f05862b9b27ff5dfe9b220bbee4f3f455a7ce98acaa0bb0a8cdbb44f8cb97ce265df036ba48d5abb0bf46a91fd782cd73a67ca544b4662d36e8023e92c80b541 -DIST git-cola-3.8.tar.gz 980190 BLAKE2B 0502701c63f370b304a83094b2154757d1810216e82882472c7eac9633ac26eaa75974af05c32c18203d03b67a027655ea85c0e335915f204f668fcc86ed9c3f SHA512 9ae04dfef3b5bc64452a8df43e7afa93091f282097447208dadbd17522b62e5c43f7afce3eecc59fc4e38863496cdb41ac8b0453bbf327121629fbde20e45bb0 -DIST git-cola-3.9.tar.gz 992335 BLAKE2B ab591d953173aa69773a82eb91ebcc6fa5bc5e31efa78ad27f3e1e57e22c4222d70914f059dffb0b05b2b366d3208e127ad123ccfeb1b4c1b648daae0bf53352 SHA512 91f4bb40c166669e05136985920113d7482a396a46adf45fcf05e8ee56677fee7ebfb6a793face79737a17be42aa5e32b216a30847e8e4a5b8dc5b3b4eba5395 diff --git a/dev-vcs/git-cola/git-cola-3.11.0.ebuild b/dev-vcs/git-cola/git-cola-3.11.0.ebuild index 1aa8af03490f..ebab708004f6 100644 --- a/dev-vcs/git-cola/git-cola-3.11.0.ebuild +++ b/dev-vcs/git-cola/git-cola-3.11.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2021 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -34,7 +34,6 @@ BDEPEND="sys-devel/gettext test? ( ${VIRTUALX_DEPEND} dev-python/pytest[\${PYTHON_USEDEP}] - dev-python/pytest-flake8[\${PYTHON_USEDEP}] dev-python/mock[\${PYTHON_USEDEP}] dev-python/PyQt5[\${PYTHON_USEDEP},gui,widgets] ) @@ -58,6 +57,9 @@ python_prepare_all() { # fix ssh-askpass directory reference sed -i -e 's/resources\.share/resources\.prefix/' cola/app.py || die + # disable flake8 testing, it's not useful for ebuilds + sed -i -e 's:--flake8::' pytest.ini || die + distutils-r1_python_prepare_all } diff --git a/dev-vcs/git-cola/git-cola-3.8.ebuild b/dev-vcs/git-cola/git-cola-3.8.ebuild deleted file mode 100644 index d467fc38d90b..000000000000 --- a/dev-vcs/git-cola/git-cola-3.8.ebuild +++ /dev/null @@ -1,114 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..9} ) -DISTUTILS_SINGLE_IMPL=true -DISTUTILS_USE_SETUPTOOLS=no -inherit distutils-r1 readme.gentoo-r1 virtualx xdg-utils - -DESCRIPTION="The highly caffeinated git GUI" -HOMEPAGE="https://git-cola.github.io/" -SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="doc test" - -RESTRICT="!test? ( test )" - -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/PyQt5[network,${PYTHON_USEDEP}] - dev-python/QtPy[gui,${PYTHON_USEDEP}] - dev-python/send2trash[${PYTHON_USEDEP}] - ') - dev-vcs/git -" -BDEPEND="sys-devel/gettext - $(python_gen_cond_dep " - doc? ( dev-python/sphinx[\${PYTHON_USEDEP}] ) - test? ( - ${VIRTUALX_DEPEND} - dev-python/mock[\${PYTHON_USEDEP}] - dev-python/nose[\${PYTHON_USEDEP}] - dev-python/pytest[\${PYTHON_USEDEP}] - ) - ") -" - -python_prepare_all() { - # make sure that tests also use the system provided QtPy - rm -r qtpy || die - - rm share/git-cola/bin/*askpass* || die - - # don't install docs into wrong location - sed -i -e '/doc/d' setup.py || die - - # fix doc directory reference - sed -i \ - -e "s/'doc', 'git-cola'/'doc', '${PF}'/" \ - cola/resources.py || die - - # fix ssh-askpass directory reference - sed -i -e 's/resources\.share/resources\.prefix/' cola/app.py || die - - distutils-r1_python_prepare_all -} - -python_configure_all() { - mydistutilsargs=( --no-vendor-libs --no-private-libs ) -} - -python_compile_all() { - cd share/doc/${PN}/ || die - if use doc ; then - emake all - else - sed \ - -e '/^install:/s:install-html::g' \ - -e '/^install:/s:install-man::g' \ - -i Makefile || die - fi -} - -python_test() { - GIT_CONFIG_NOSYSTEM=true \ - PYTHONPATH="${S}:${S}/build/lib:${PYTHONPATH}" LC_ALL="en_US.utf8" \ - virtx nosetests --verbose --with-id --with-doctest \ - --exclude=sphinxtogithub -} - -src_install() { - distutils-r1_src_install -} - -python_install_all() { - cd share/doc/${PN}/ || die - emake \ - DESTDIR="${D}" \ - docdir="${EPREFIX}/usr/share/doc/${PF}" \ - prefix="${EPREFIX}/usr" \ - install - - # remove empty bin folder - rm -R "${ED}"/usr/share/git-cola/bin - - use doc || HTML_DOCS=( "${FILESDIR}"/index.html ) - - distutils-r1_python_install_all - readme.gentoo_create_doc -} - -pkg_postinst() { - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/dev-vcs/git-cola/git-cola-3.9.ebuild b/dev-vcs/git-cola/git-cola-3.9.ebuild deleted file mode 100644 index ef74afe09e0a..000000000000 --- a/dev-vcs/git-cola/git-cola-3.9.ebuild +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{8..9} ) -DISTUTILS_SINGLE_IMPL=true -DISTUTILS_USE_SETUPTOOLS=no -inherit distutils-r1 readme.gentoo-r1 virtualx xdg-utils - -DESCRIPTION="The highly caffeinated git GUI" -HOMEPAGE="https://git-cola.github.io/" -SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="doc test" - -RESTRICT="!test? ( test )" - -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pygments[${PYTHON_USEDEP}] - dev-python/PyQt5[network,${PYTHON_USEDEP}] - dev-python/QtPy[gui,${PYTHON_USEDEP}] - dev-python/send2trash[${PYTHON_USEDEP}] - ') - dev-vcs/git -" -BDEPEND="sys-devel/gettext - $(python_gen_cond_dep " - doc? ( dev-python/sphinx[\${PYTHON_USEDEP}] ) - test? ( - ${VIRTUALX_DEPEND} - dev-python/mock[\${PYTHON_USEDEP}] - dev-python/nose[\${PYTHON_USEDEP}] - dev-python/pytest[\${PYTHON_USEDEP}] - ) - ") -" - -python_prepare_all() { - # make sure that tests also use the system provided QtPy - rm -r qtpy || die - - rm share/git-cola/bin/*askpass* || die - - # don't install docs into wrong location - sed -i -e '/doc/d' setup.py || die - - # fix doc directory reference - sed -i \ - -e "s/'doc', 'git-cola'/'doc', '${PF}'/" \ - cola/resources.py || die - - # fix ssh-askpass directory reference - sed -i -e 's/resources\.share/resources\.prefix/' cola/app.py || die - - distutils-r1_python_prepare_all -} - -python_configure_all() { - mydistutilsargs=( --no-vendor-libs --no-private-libs ) -} - -python_compile_all() { - cd share/doc/${PN}/ || die - if use doc ; then - emake all - else - sed \ - -e '/^install:/s:install-html::g' \ - -e '/^install:/s:install-man::g' \ - -i Makefile || die - fi -} - -python_test() { - GIT_CONFIG_NOSYSTEM=true \ - PYTHONPATH="${S}:${S}/build/lib:${PYTHONPATH}" LC_ALL="C.utf8" \ - virtx nosetests --verbose --with-id --with-doctest \ - --exclude=sphinxtogithub -} - -python_install_all() { - cd share/doc/${PN}/ || die - emake \ - DESTDIR="${D}" \ - docdir="${EPREFIX}/usr/share/doc/${PF}" \ - prefix="${EPREFIX}/usr" \ - install - - # remove empty bin folder - rm -R "${ED}"/usr/share/git-cola/bin || die - - use doc || HTML_DOCS=( "${FILESDIR}"/index.html ) - - distutils-r1_python_install_all - readme.gentoo_create_doc -} - -pkg_postinst() { - xdg_desktop_database_update -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index a91442459346..9b2dc841054c 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -157,7 +157,7 @@ _distutils_set_globals() { # installer is used to install the wheel # tomli is used to read build-backend from pyproject.toml bdep+=' - >=dev-python/installer-0.4.0_p20220115[${PYTHON_USEDEP}] + >=dev-python/installer-0.4.0_p20220124[${PYTHON_USEDEP}] dev-python/tomli[${PYTHON_USEDEP}]' case ${DISTUTILS_USE_PEP517} in flit) @@ -971,13 +971,6 @@ distutils-r1_python_compile() { --no-compile-bytecode || die "installer failed" - # TODO: workaround for a bug in installer; remove once we depend - # on a properly fixed version - # https://github.com/pradyunsg/installer/commit/245896289a590bd9be505bd061d4f49372948a16 - if [[ -d ${root}${EPREFIX}/usr/bin ]]; then - chmod +x "${root}${EPREFIX}"/usr/bin/* || die - fi - # remove installed licenses find "${root}$(python_get_sitedir)" \ '(' -path '*.dist-info/COPYING*' -o \ diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass index 85de8cb92182..3d55bc0905f2 100644 --- a/eclass/python-utils-r1.eclass +++ b/eclass/python-utils-r1.eclass @@ -1321,6 +1321,14 @@ epytest() { -Wdefault # override color output "--color=${color}" + # disable the undesirable-dependency plugins by default to + # trigger missing argument strips. strip options that require + # them from config files. enable them explicitly via "-p ..." + # if you *really* need them. + -p no:cov + -p no:flake8 + -p no:flakes + -p no:pylint ) local x for x in "${EPYTEST_DESELECT[@]}"; do |