Merge pull request #2193 from flatcar/krnowak/dev-automation

Add dev-* packages to automation
This commit is contained in:
Krzesimir Nowak 2024-08-08 12:46:01 +02:00 committed by GitHub
commit 008947c9da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
115 changed files with 3556 additions and 377 deletions

View File

@ -187,6 +187,8 @@ dev-build/meson-format-array
dev-build/ninja
dev-cpp/abseil-cpp
dev-cpp/gflags
dev-cpp/glog
dev-cpp/gtest
dev-db/sqlite
@ -194,6 +196,8 @@ dev-db/sqlite
dev-debug/gdb
dev-debug/strace
dev-embedded/u-boot-tools
dev-go/go-md2man
dev-lang/duktape
@ -205,6 +209,7 @@ dev-lang/python
dev-lang/python-exec
dev-lang/python-exec-conf
dev-lang/swig
dev-lang/tcl
dev-lang/yasm
dev-libs/cJSON
@ -271,10 +276,16 @@ dev-libs/yajl
dev-perl/File-Slurp
dev-perl/Parse-Yapp
dev-python/PySocks
dev-python/autocommand
dev-python/backports-tarfile
dev-python/cachecontrol
dev-python/certifi
dev-python/charset-normalizer
dev-python/colorama
dev-python/crcmod
dev-python/cython
dev-python/distlib
dev-python/distro
dev-python/docutils
dev-python/editables
@ -282,34 +293,51 @@ dev-python/ensurepip-pip
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheels
dev-python/fasteners
dev-python/fastjsonschema
dev-python/flit-core
dev-python/gentoo-common
dev-python/gpep517
dev-python/hatchling
dev-python/idna
dev-python/installer
dev-python/jaraco-context
dev-python/jaraco-functools
dev-python/jaraco-text
dev-python/jinja
dev-python/lark
dev-python/lazy-object-proxy
dev-python/linkify-it-py
dev-python/lxml
dev-python/markdown-it-py
dev-python/markupsafe
dev-python/mdurl
dev-python/more-itertools
dev-python/msgpack
dev-python/olefile
dev-python/ordered-set
dev-python/packaging
dev-python/pathspec
dev-python/pillow
dev-python/pip
dev-python/platformdirs
dev-python/pluggy
dev-python/poetry-core
dev-python/pydecomp
dev-python/pygments
dev-python/pyproject-hooks
dev-python/requests
dev-python/resolvelib
dev-python/rich
dev-python/setuptools
dev-python/setuptools-scm
dev-python/six
dev-python/snakeoil
dev-python/tenacity
dev-python/tomli
dev-python/trove-classifiers
dev-python/truststore
dev-python/uc-micro-py
dev-python/urllib3
dev-python/wheel
dev-util/bpftool
@ -339,8 +367,8 @@ eclass/cargo.eclass
eclass/cmake-multilib.eclass
eclass/cmake.eclass
eclass/desktop.eclass
eclass/distutils-r1.eclass
eclass/dist-kernel-utils.eclass
eclass/distutils-r1.eclass
eclass/eapi7-ver.eclass
eclass/eapi8-dosym.eclass
eclass/edo.eclass
@ -367,8 +395,8 @@ eclass/lua-single.eclass
eclass/lua-utils.eclass
eclass/meson-multilib.eclass
eclass/meson.eclass
eclass/mount-boot.eclass
eclass/mount-boot-utils.eclass
eclass/mount-boot.eclass
eclass/multibuild.eclass
eclass/multilib-build.eclass
eclass/multilib-minimal.eclass
@ -390,10 +418,10 @@ eclass/python-r1.eclass
eclass/python-single-r1.eclass
eclass/python-utils-r1.eclass
eclass/readme.gentoo-r1.eclass
eclass/rpm.eclass
eclass/ruby-single.eclass
eclass/ruby-utils.eclass
eclass/rust-toolchain.eclass
eclass/rpm.eclass
eclass/savedconfig.eclass
eclass/selinux-policy-2.eclass
eclass/strip-linguas.eclass
@ -461,6 +489,7 @@ net-misc/iperf
net-misc/iputils
net-misc/ntp
net-misc/openssh
net-misc/passt
net-misc/rsync
net-misc/socat
net-misc/wget
@ -474,6 +503,7 @@ net-vpn/wireguard-tools
perl-core/File-Temp
profiles
scripts
sec-keys/openpgp-keys-gentoo-release
@ -539,10 +569,10 @@ sys-block/parted
sys-block/thin-provisioning-tools
sys-boot/efibootmgr
sys-boot/mokutil
# Updating to 3.0.17 breaks building of sys-boot/shim.
#
# sys-boot/gnu-efi
sys-boot/mokutil
sys-devel/bc
sys-devel/binutils
@ -580,7 +610,6 @@ sys-fs/udisks
sys-fs/xfsprogs
sys-fs/zfs
sys-fs/zfs-kmod
net-misc/passt
sys-kernel/linux-headers

View File

@ -0,0 +1,3 @@
- gflags ([2.2.2](https://github.com/gflags/gflags/releases/tag/v2.2.2))
- glog ([0.6.0](https://github.com/google/glog/releases/tag/v0.6.0))
- sysext-python: pip ([24.1.2](https://github.com/pypa/pip/blob/24.1.2/NEWS.rst))

View File

@ -44,8 +44,8 @@
# Keep versions on both arches in sync.
=dev-cpp/abseil-cpp-20230125.3-r4 ~arm64
# Needed by arm64-native SDK.
=dev-embedded/u-boot-tools-2021.04_rc2 ~arm64
# Keep versions on both arches in sync.
=dev-cpp/glog-0.6.0 ~arm64
# Accept unstable host Rust compilers.
=dev-lang/rust-1.80.0 ~amd64 ~arm64

View File

@ -1,2 +1 @@
DIST gflags-2.2.1.tar.gz 96985 BLAKE2B 065dac9cf5d878e4179cb6d56ddf240052a552b72036fd06cb83197d9772a9b97fa544f809c6e1efd6f9ad8cd0222872fc6292c44bc013c5f70e235bcc5b290c SHA512 e919cbdcff1f993ddbfa9c06d8e595566a4717c27ff62f388a64c0e6b4683a93211c24ce78485eae84c2c76053341574064e6c56af185fc2782e2816b26e1fc9
DIST gflags-2.2.2.tar.gz 98704 BLAKE2B 54cbf3b0a422d662e89c1921614ae9f20a4a383524d374d1e7ce1473eff0a6e121c1a2255df0b9d27ae9866c8e63094b908534c5fd2173737033cc0f184a5e4f SHA512 98c4703aab24e81fe551f7831ab797fb73d0f7dfc516addb34b9ff6d0914e5fd398207889b1ae555bac039537b1d4677067dae403b64903577078d99c1bdb447

View File

@ -1,17 +1,16 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
CMAKE_ECLASS=cmake
inherit cmake-multilib
inherit cmake-multilib flag-o-matic
if [[ ${PV} == 9999 ]]; then
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/gflags/gflags"
else
SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="Google's C++ argument parsing library"
@ -26,6 +25,8 @@ RESTRICT="!test? ( test )"
DOCS=( ChangeLog.txt README.md )
multilib_src_configure() {
append-lfs-flags
local mycmakeargs=(
-DBUILD_STATIC_LIBS=$(usex static-libs)
-DBUILD_TESTING=$(usex test)

View File

@ -1,37 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
CMAKE_ECLASS=cmake
inherit cmake-multilib
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/gflags/gflags"
else
SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="Google's C++ argument parsing library"
HOMEPAGE="https://gflags.github.io/gflags/"
LICENSE="BSD"
SLOT="0/2.2"
IUSE="static-libs test"
RESTRICT="!test? ( test )"
# AUTHORS.txt only links the google group
DOCS=( ChangeLog.txt README.md )
multilib_src_configure() {
local mycmakeargs=(
-DBUILD_STATIC_LIBS=$(usex static-libs)
-DBUILD_TESTING=$(usex test)
# avoid installing .cmake/packages, e.g.:
# >>> /tmp/portage/dev-cpp/gflags-9999/homedir/.cmake/packages/gflags/a7fca4708532331c2d656af0fdc8b8b9
-DREGISTER_INSTALL_PREFIX=OFF
)
cmake_src_configure
}

View File

@ -1,17 +1,16 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
CMAKE_ECLASS=cmake
inherit cmake-multilib
inherit cmake-multilib flag-o-matic
if [[ ${PV} == 9999 ]]; then
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/gflags/gflags"
else
SRC_URI="https://github.com/gflags/gflags/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
fi
DESCRIPTION="Google's C++ argument parsing library"
@ -26,6 +25,8 @@ RESTRICT="!test? ( test )"
DOCS=( ChangeLog.txt README.md )
multilib_src_configure() {
append-lfs-flags
local mycmakeargs=(
-DBUILD_STATIC_LIBS=$(usex static-libs)
-DBUILD_TESTING=$(usex test)

View File

@ -1,2 +1,2 @@
DIST glog-0.4.0.tar.gz 200955 BLAKE2B 083da6117af3e85697724942bfcb5a7831d447666945b06b149d8d324231b10923887bd8c507e8027136d12bffd30a657cb225df8c449f234381e3876f132953 SHA512 b585f1819ade2075f6b61dc5aaca5c3f9d25601dba2bd08b6c49b96ac5f79db23c6b7f2042df003f7130497dd7241fcaa8b107d1f97385cb66ce52d3c554b176
DIST glog-0.5.0.tar.gz 183346 BLAKE2B 9109a9a4bd3c74ba5d4c1d9ed44ffe0e16d5d3b9b12bf9dd5d31c6e728292ea50f39b4e1b96d55fbb35653a448af4dc8a978e266a2b0f34261c5108099e90845 SHA512 445e4338f3d81cd0b065f2da9c6ce343c243263ca144cea424ef97531a4e9e09c06ffd6942ac01c5213a8003c75cfbbede3c4028d12f0134f23ff29314769c1a
DIST glog-0.6.0.tar.gz 193267 BLAKE2B b42112cdfd54280ce7a9592c3af6b6e10dcb854fe9dbe0db7445c60801d1c12a240c4b3709b45e41aedeb8876d2e08fc3368296e088be6a66126858888cc274e SHA512 fd2c42583d0dd72c790a8cf888f328a64447c5fb9d99b2e2a3833d70c102cb0eb9ae874632c2732424cc86216c8a076a3e24b23a793eaddb5da8a1dc52ba9226

View File

@ -1,99 +0,0 @@
Index: b/src/googletest.h
===================================================================
--- a/src/googletest.h
+++ b/src/googletest.h
@@ -437,6 +437,18 @@ static inline void StringReplace(string*
}
}
+static inline void IntReplace(string* str,
+ const string& oldsub,
+ int newsub) {
+ size_t pos = str->find(oldsub);
+ if (pos != string::npos) {
+ std::ostringstream ss;
+ ss << newsub;
+ const std::string x = ss.str();
+ str->replace(pos, oldsub.size(), x.c_str());
+ }
+}
+
static inline string Munge(const string& filename) {
FILE* fp = fopen(filename.c_str(), "rb");
CHECK(fp != NULL) << filename << ": couldn't open";
@@ -452,9 +464,13 @@ static inline string Munge(const string&
StringReplace(&line, "__SUCCESS__", StrError(0));
StringReplace(&line, "__ENOENT__", StrError(ENOENT));
+ IntReplace(&line, "__ENOENT_NUM__", ENOENT);
StringReplace(&line, "__EINTR__", StrError(EINTR));
+ IntReplace(&line, "__EINTR_NUM__", EINTR);
StringReplace(&line, "__ENXIO__", StrError(ENXIO));
+ IntReplace(&line, "__ENXIO_NUM__", ENXIO);
StringReplace(&line, "__ENOEXEC__", StrError(ENOEXEC));
+ IntReplace(&line, "__ENOEXEC_NUM__", ENOEXEC);
result += line + "\n";
}
fclose(fp);
Index: b/src/logging_unittest.cc
===================================================================
--- a/src/logging_unittest.cc
+++ b/src/logging_unittest.cc
@@ -238,6 +238,17 @@ int main(int argc, char **argv) {
return 0;
}
+static int errnoForIteration(int i) {
+ switch (i) {
+ case 0: return 0;
+ case 2: return ENOENT;
+ case 4: return EINTR;
+ case 6: return ENXIO;
+ case 8: return ENOEXEC;
+ }
+ return -1;
+}
+
void TestLogging(bool check_counts) {
int64 base_num_infos = LogMessage::num_messages(GLOG_INFO);
int64 base_num_warning = LogMessage::num_messages(GLOG_WARNING);
@@ -246,7 +257,7 @@ void TestLogging(bool check_counts) {
LOG(INFO) << string("foo ") << "bar " << 10 << ' ' << 3.4;
for ( int i = 0; i < 10; ++i ) {
int old_errno = errno;
- errno = i;
+ errno = errnoForIteration(i);
PLOG_EVERY_N(ERROR, 2) << "Plog every 2, iteration " << COUNTER;
errno = old_errno;
Index: b/src/logging_unittest.err
===================================================================
--- a/src/logging_unittest.err
+++ b/src/logging_unittest.err
@@ -51,21 +51,21 @@ WDATE TIME__ THREADID logging_unittest.c
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 1
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 1
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 2
-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [2]
+EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 3: __ENOENT__ [__ENOENT_NUM__]
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 3
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log if less than 3 every 2, iteration 3
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 4
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 4
-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [4]
+EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 5: __EINTR__ [__EINTR_NUM__]
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 5
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 5
WDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 5, iteration 6
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 6
-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [6]
+EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 7: __ENXIO__ [__ENXIO_NUM__]
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 7
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 7
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 8
-EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [8]
+EDATE TIME__ THREADID logging_unittest.cc:LINE] Plog every 2, iteration 9: __ENOEXEC__ [__ENOEXEC_NUM__]
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 4, iteration 9
IDATE TIME__ THREADID logging_unittest.cc:LINE] Log if every 1, iteration 9
EDATE TIME__ THREADID logging_unittest.cc:LINE] Log every 3, iteration 10

View File

@ -1,19 +0,0 @@
Index: google-glog-0.3.2/src/signalhandler_unittest.sh
===================================================================
--- google-glog-0.3.2.orig/src/signalhandler_unittest.sh 2013-03-13 13:49:37.820188111 -0400
+++ google-glog-0.3.2/src/signalhandler_unittest.sh 2013-03-13 14:07:11.980204520 -0400
@@ -65,10 +65,10 @@
exit 0
fi
-# The PC cannot be obtained in signal handlers on PowerPC correctly.
-# We just skip the test for PowerPC.
-if [ x`uname -p` = x"powerpc" ]; then
- echo "PASS (We don't test the signal handler on PowerPC.)"
+# This test only works correctly on i386 and amd64.
+# We just skip the test when not on those platforms.
+if [ x`uname -m` != x"x86_64" -a x`uname -m` != x"i686" ]; then
+ echo "PASS (We only test the signal handler on i386 or amd64.)"
exit 0
fi

View File

@ -1,35 +0,0 @@
Description: fix FTBFS on x32
Author: Guillaume Morin <guillaume@morinfr.org>
Forwarded: no
Last-Update: 2019-08-05
---
--- google-glog-0.3.4.orig/src/symbolize_unittest.cc
+++ google-glog-0.3.4/src/symbolize_unittest.cc
@@ -313,8 +313,12 @@ extern "C" {
inline void* always_inline inline_func() {
void *pc = NULL;
#ifdef TEST_X86_32_AND_64
+#if __x86_64__ || (__x86_64__ && __ILP32__)
+ __asm__ __volatile__("call 1f; 1: popq %q0" : "=r"(pc));
+#else
__asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
#endif
+#endif
return pc;
}
@@ -322,8 +326,12 @@ void* ATTRIBUTE_NOINLINE non_inline_func
void* ATTRIBUTE_NOINLINE non_inline_func() {
void *pc = NULL;
#ifdef TEST_X86_32_AND_64
+#if __x86_64__ || (__x86_64__ && __ILP32__)
+ __asm__ __volatile__("call 1f; 1: popq %q0" : "=r"(pc));
+#else
__asm__ __volatile__("call 1f; 1: pop %0" : "=r"(pc));
#endif
+#endif
return pc;
}

View File

@ -2,8 +2,8 @@ https://github.com/google/glog/issues/125
https://github.com/google/glog/pull/651
https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
--- /src/glog/logging.h.in
+++ /src/glog/logging.h.in
--- a/src/glog/logging.h.in
+++ b/src/glog/logging.h.in
@@ -594,6 +594,9 @@
void* prefix_callback_data = NULL);
#endif
@ -14,8 +14,8 @@ https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
// Shutdown google's logging library.
GOOGLE_GLOG_DLL_DECL void ShutdownGoogleLogging();
--- /src/logging_custom_prefix_unittest.cc
+++ /src/logging_custom_prefix_unittest.cc
--- a/src/logging_custom_prefix_unittest.cc
+++ b/src/logging_custom_prefix_unittest.cc
@@ -221,11 +221,15 @@
LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors"
const string early_stderr = GetCapturedTestStderr();
@ -43,8 +43,8 @@ https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
}
_START_GOOGLE_NAMESPACE_
--- /src/logging_unittest.cc
+++ /src/logging_unittest.cc
--- a/src/logging_unittest.cc
+++ b/src/logging_unittest.cc
@@ -197,8 +197,12 @@
LogWithLevels(0, 0, 0, 0); // simulate "before global c-tors"
const string early_stderr = GetCapturedTestStderr();
@ -69,8 +69,8 @@ https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
}
_START_GOOGLE_NAMESPACE_
--- /src/utilities.cc
+++ /src/utilities.cc
--- a/src/utilities.cc
+++ b/src/utilities.cc
@@ -62,6 +62,10 @@
static const char* g_program_invocation_short_name = NULL;
@ -93,8 +93,8 @@ https://github.com/google/glog/commit/81e0d616edeb73cbd06d6c40bc4f90593ac0c5d1
#ifdef OS_WINDOWS
struct timeval {
long tv_sec, tv_usec;
--- /src/utilities.h
+++ /src/utilities.h
--- a/src/utilities.h
+++ b/src/utilities.h
@@ -163,8 +163,6 @@
const char* ProgramInvocationShortName();

View File

@ -2,8 +2,8 @@ https://github.com/google/glog/issues/649
https://github.com/google/glog/pull/650
https://github.com/google/glog/commit/86fea1ab254c463cbb72e5ce8bcc6855bc4e1e9c
--- /src/glog/vlog_is_on.h.in
+++ /src/glog/vlog_is_on.h.in
--- a/src/glog/vlog_is_on.h.in
+++ b/src/glog/vlog_is_on.h.in
@@ -81,10 +81,10 @@
// parsing of --vmodule flag and/or SetVLOGLevel calls.
#define VLOG_IS_ON(verboselevel) \
@ -41,8 +41,8 @@ https://github.com/google/glog/commit/86fea1ab254c463cbb72e5ce8bcc6855bc4e1e9c
@ac_google_namespace@::int32* site_default,
const char* fname,
@ac_google_namespace@::int32 verbose_level);
--- /src/logging_unittest.cc
+++ /src/logging_unittest.cc
--- a/src/logging_unittest.cc
+++ b/src/logging_unittest.cc
@@ -98,6 +98,7 @@
static void TestRawLogging();
static void LogWithLevels(int v, int severity, bool err, bool alsoerr);
@ -84,8 +84,8 @@ https://github.com/google/glog/commit/86fea1ab254c463cbb72e5ce8bcc6855bc4e1e9c
TEST(DeathRawCHECK, logging) {
ASSERT_DEATH(RAW_CHECK(false, "failure 1"),
"RAW: Check false failed: failure 1");
--- /src/vlog_is_on.cc
+++ /src/vlog_is_on.cc
--- a/src/vlog_is_on.cc
+++ b/src/vlog_is_on.cc
@@ -125,6 +125,8 @@
// Pointer to head of the VModuleInfo list.
// It's a map from module pattern to logging level for those module(s).

View File

@ -1,46 +0,0 @@
# Copyright 2011-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit autotools multilib-minimal
DESCRIPTION="Google's C++ logging library"
HOMEPAGE="https://github.com/google/glog"
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
# -sparc as libunwind is not ported on sparc
KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 -sparc x86 ~amd64-linux ~x86-linux"
IUSE="gflags static-libs test"
RESTRICT="test"
RDEPEND="sys-libs/libunwind[${MULTILIB_USEDEP}]
gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}
test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
PATCHES=(
"${FILESDIR}"/${PN}-0.4.0-fix-x32-build.patch
"${FILESDIR}"/${PN}-0.4.0-errnos.patch
"${FILESDIR}"/${PN}-0.4.0-fix-test-on-ports.patch
)
src_prepare() {
default
eautoreconf
}
multilib_src_configure() {
ECONF_SOURCE="${S}" econf \
$(use_enable static-libs static) \
ac_cv_lib_gflags_main="$(usex gflags)"
}
multilib_src_install_all() {
einstalldocs
# package provides .pc files
find "${D}" -name '*.la' -delete || die
}

View File

@ -1,8 +1,7 @@
# Copyright 2011-2021 Gentoo Authors
# Copyright 2011-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
CMAKE_ECLASS="cmake"
EAPI="8"
inherit cmake-multilib
@ -22,7 +21,7 @@ fi
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc64 ~s390 ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="gflags +libunwind llvm-libunwind test"
RESTRICT="!test? ( test )"
@ -55,3 +54,8 @@ src_configure() {
cmake-multilib_src_configure
}
src_test() {
# See bug #832355
cmake-multilib_src_test -j1
}

View File

@ -0,0 +1,49 @@
# Copyright 2011-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
inherit cmake-multilib
if [[ "${PV}" == "9999" ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/google/glog"
fi
DESCRIPTION="Google Logging library"
HOMEPAGE="https://github.com/google/glog"
if [[ "${PV}" == "9999" ]]; then
SRC_URI=""
else
SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
fi
LICENSE="BSD"
SLOT="0/1"
KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux"
IUSE="gflags +libunwind llvm-libunwind test"
RESTRICT="!test? ( test )"
RDEPEND="gflags? ( dev-cpp/gflags:0=[${MULTILIB_USEDEP}] )
libunwind? (
llvm-libunwind? ( sys-libs/llvm-libunwind:0=[${MULTILIB_USEDEP}] )
!llvm-libunwind? ( sys-libs/libunwind:0=[${MULTILIB_USEDEP}] )
)"
DEPEND="${RDEPEND}
test? ( >=dev-cpp/gtest-1.8.0[${MULTILIB_USEDEP}] )"
src_configure() {
local mycmakeargs=(
-DBUILD_TESTING=$(usex test ON OFF)
-DWITH_GFLAGS=$(usex gflags ON OFF)
-DWITH_GTEST=$(usex test ON OFF)
-DWITH_UNWIND=$(usex libunwind ON OFF)
)
cmake-multilib_src_configure
}
src_test() {
cmake-multilib_src_test -j1
}

View File

@ -1,13 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>arfrever.fta@gmail.com</email>
<name>Arfrever Frehtes Taifersar Arahesis</name>
</maintainer>
<maintainer type="person" proxied="proxy">
<email>floppym@gentoo.org</email>
<name>Mike Gilbert</name>
<maintainer type="project">
<email>cjk@gentoo.org</email>
<name>Cjk</name>
</maintainer>
<use>
<flag name="gflags">Use <pkg>dev-cpp/gflags</pkg> for flag parsing</flag>

View File

@ -1 +1,2 @@
DIST u-boot-2021.04-rc2.tar.bz2 16620315 BLAKE2B e16c167346ef3999443855b9a702bf28faacf51b7887c84096f7a372a0c820d6ed9f06c1dd209b4070adf8000853b58b7b9b81c5b32a973d37558acf1da2edfa SHA512 7bf07f15e0c5f5e63ef8cb9568278ea7c209e484bbb599c47b22a8d2e5c007cc204eec365e5328dea3e7b016cd6ba0cb4c917330cc76163b1016f7c7762ad1bf
DIST u-boot-2024.01.tar.bz2 19926911 BLAKE2B c62a22f56276426917b0db508ad7dc82efa4fe7be14c5e7d79ecdea172b2b383981b7e65b7e920b196d0162a17fb362ef97a8d758a1b30e509e3c66748d2c106 SHA512 45bd093ba3bda23e43cdde83d8656c1ee1348ac2886ecff1fee475f101ac4965a5be6565408fa5b990c723f3fdc833edfca60a719f735a43040cd14a1b59a88b
DIST u-boot-tools-2024.01-fix-invalid-escape-sequence.patch 1285 BLAKE2B ad0af975b59794f21a44472a1f1b4542e75e478d51e649a6c339a4af9963cb4b822e6eba6819cbd3d35c09f3c33f1995288ef296e07466a427cf1f0dd0a399e1 SHA512 8675c267ca5a234924bdf8fc03dcaf75501cf86ac7a9b2e7fbc7982b9620e8863af289c124c5e91cccee58cc116b4d2798be745dedc1b28099a143f3464ad4d6

View File

@ -0,0 +1,14 @@
Disable unused mkeficapsule
`CONFIG_TOOLS_MKEFICAPSULE` requires gnutls to build. Since we don't actually
expose the tool, we can just disable it.
diff -ur a/configs/tools-only_defconfig b/configs/tools-only_defconfig
--- a/configs/tools-only_defconfig 2023-01-09 09:07:33.000000000 -0700
+++ b/configs/tools-only_defconfig 2023-08-11 14:01:50.151294889 -0600
@@ -33,4 +33,4 @@
# CONFIG_VIRTIO_SANDBOX is not set
# CONFIG_GENERATE_ACPI_TABLE is not set
# CONFIG_EFI_LOADER is not set
-CONFIG_TOOLS_MKEFICAPSULE=y
+# CONFIG_TOOLS_MKEFICAPSULE is not set

View File

@ -0,0 +1,17 @@
Disable unused pylibfdt
The `imply BINMAN` causes `pylibfdt` to be built, which requires python. We
don't currently expose `pylibfdt`, or declare python dependencies, so disable
it.
diff -ur a/arch/Kconfig b/arch/Kconfig
--- a/arch/Kconfig 2023-01-09 09:07:33.000000000 -0700
+++ b/arch/Kconfig 2023-08-11 14:01:05.998403114 -0600
@@ -205,7 +205,6 @@
imply KEYBOARD
imply PHYSMEM
imply GENERATE_ACPI_TABLE
- imply BINMAN
config SH
bool "SuperH architecture"

View File

@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>embedded@gentoo.org</email>
<name>Embedded Gentoo</name>
</maintainer>
<maintainer type="project">
<email>embedded@gentoo.org</email>
<name>Embedded Gentoo</name>
</maintainer>
<use>
<flag name="envtools">Build only the target-side environment tools</flag>
</use>
</pkgmetadata>

View File

@ -1,77 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
inherit toolchain-funcs
MY_P="u-boot-${PV/_/-}"
DESCRIPTION="utilities for working with Das U-Boot"
HOMEPAGE="https://www.denx.de/wiki/U-Boot/WebHome"
SRC_URI="ftp://ftp.denx.de/pub/u-boot/${MY_P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm ~arm64 ~ppc ~ppc64 ~riscv x86"
IUSE=""
RDEPEND="dev-libs/openssl:0="
DEPEND="${RDEPEND}"
BDEPEND="
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
"
S=${WORKDIR}/${MY_P}
src_prepare() {
default
sed -i 's:\bpkg-config\b:${PKG_CONFIG}:g' \
scripts/kconfig/{g,m,n,q}conf-cfg.sh \
scripts/kconfig/Makefile \
tools/Makefile || die
}
src_configure() {
tc-export AR CC PKG_CONFIG
}
src_compile() {
# Unset a few KBUILD variables. Bug #540476
unset KBUILD_OUTPUT KBUILD_SRC
emake \
V=1 \
AR="${AR}" \
CC="${CC}" \
HOSTCC="${CC}" \
HOSTCFLAGS="${CFLAGS} ${CPPFLAGS}"' $(HOSTCPPFLAGS)' \
HOSTLDFLAGS="${LDFLAGS}" \
tools-only_defconfig
emake \
V=1 \
NO_SDL=1 \
HOSTSTRIP=: \
STRIP=: \
AR="${AR}" \
CC="${CC}" \
HOSTCC="${CC}" \
HOSTCFLAGS="${CFLAGS} ${CPPFLAGS}"' $(HOSTCPPFLAGS)' \
HOSTLDFLAGS="${LDFLAGS}" \
CONFIG_ENV_OVERWRITE=y \
tools-all
}
src_test() { :; }
src_install() {
cd tools || die
dobin bmp_logo dumpimage fdtgrep gen_eth_addr img2srec mkenvimage mkimage
dobin env/fw_printenv
dosym fw_printenv /usr/bin/fw_setenv
insinto /etc
doins env/fw_env.config
doman "${S}"/doc/mkimage.1
}

View File

@ -0,0 +1,94 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit toolchain-funcs
MY_P="u-boot-${PV/_/-}"
DESCRIPTION="utilities for working with Das U-Boot"
HOMEPAGE="https://www.denx.de/wiki/U-Boot/WebHome"
SRC_URI="
https://ftp.denx.de/pub/u-boot/${MY_P}.tar.bz2
https://github.com/u-boot/u-boot/commit/88b9b9c44c859bdd9bb227e2fdbc4cbf686c3343.patch
-> u-boot-tools-2024.01-fix-invalid-escape-sequence.patch
"
S="${WORKDIR}/${MY_P}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv x86"
IUSE="envtools"
RDEPEND="
dev-libs/openssl:=
net-libs/gnutls:=
sys-apps/util-linux:=
"
DEPEND="${RDEPEND}"
BDEPEND="
dev-lang/swig
app-alternatives/yacc
app-alternatives/lex
virtual/pkgconfig
"
PATCHES=(
# https://github.com/u-boot/u-boot/pull/489
"${DISTDIR}"/u-boot-tools-2024.01-fix-invalid-escape-sequence.patch
)
src_prepare() {
default
sed -i 's:\bpkg-config\b:${PKG_CONFIG}:g' \
scripts/kconfig/{g,m,n,q}conf-cfg.sh \
scripts/kconfig/Makefile \
tools/Makefile || die
}
src_configure() {
tc-export AR BUILD_CC CC PKG_CONFIG
tc-export_build_env
}
src_compile() {
# Unset a few KBUILD variables. Bug #540476
unset KBUILD_OUTPUT KBUILD_SRC
local myemakeargs=(
V=1
AR="${AR}"
CC="${CC}"
HOSTCC="${BUILD_CC}"
HOSTCFLAGS="${BUILD_CFLAGS} ${BUILD_CPPFLAGS}"' $(HOSTCPPFLAGS)'
HOSTLDFLAGS="${BUILD_LDFLAGS}"
)
emake "${myemakeargs[@]}" tools-only_defconfig
emake "${myemakeargs[@]}" \
NO_SDL=1 \
HOSTSTRIP=: \
STRIP=: \
CONFIG_ENV_OVERWRITE=y \
$(usex envtools envtools tools-all)
}
src_test() { :; }
src_install() {
cd tools || die
if ! use envtools; then
dobin dumpimage fdtgrep gen_eth_addr img2srec mkeficapsule mkenvimage mkimage
fi
dobin env/fw_printenv
dosym fw_printenv /usr/bin/fw_setenv
insinto /etc
doins env/fw_env.config
doman ../doc/mkimage.1
}

View File

@ -1,2 +1,4 @@
DIST tcl-core8.6.11-src.tar.gz 6041050 BLAKE2B 9c41d5ae5d22627b903d18c5ca607d4a2647d7af65d3029a463cf571d3fbe0bd48e15fef643e81de94296777985a36530a83718d4eb7befca4bc107ab860cc0d SHA512 fe3556c37305e3856743e9a202a320d44b1b3cbc926a1b7a4449ae5baf2f8df92214a9aa06f0a87645d032857fb71458fc864ff007fd73da60463ae5001f2d3f
DIST tcl-core8.6.12-src.tar.gz 6064625 BLAKE2B 30dc780562aa6955e2c417798cc96fabd23e947cee81146dc192156598e3c43f588864aab4392d62901b8964cf59bedb6cad1f064e32b03dd9733b3a0a7b5c8a SHA512 7144a50d19d3855edbda14b538cc94fe26c0dd357b979676c3fe02d599dab61ba777bf14f6aaebb63e238aeff1d0bad25ea7b0ff31b2398468f67fc0a305b9f3
DIST tcl-core8.6.13-src.tar.gz 6370805 BLAKE2B f5af3c0fa2d52c09ab16578c9147cb5ac4a06b81882c49f1ef23642bed32adccbe2a5acbddc5d18bd1757e1991daf864707d842e675f92c6de70be6f4275b95e SHA512 c1c953ac0f9a530d8256514c0cb78f166d0063db725b87fa19272716a955cd390ff8f1c5f17e791cf463284d88bb136d61194779a913a6a78f46146d485c71ee
DIST tcl-core8.6.14-src.tar.gz 7081644 BLAKE2B 7148c889954d78774c4352ceae5d814498a1670423a2b3ed288786dce97b87d42395b817ef92fc6561358d84736619ef03d1c2e2c502433c4b3f5eb7c80a62e8 SHA512 495b13af817c68d81533c45345d003efd711ddbc5c1a3d1fbbdb10452fa62d91e649f77835239e547355ade84abfea6ae843d2e76de6108532054170a672ddc0

View File

@ -0,0 +1,31 @@
https://github.com/tcltk/tcl/commit/5eb33c5c7e9d6b703275b680f337691ecfe38f2a
From 5eb33c5c7e9d6b703275b680f337691ecfe38f2a Mon Sep 17 00:00:00 2001
From: "jan.nijtmans" <nijtmans@users.sourceforge.net>
Date: Sun, 7 Nov 2021 21:34:08 +0000
Subject: [PATCH] Fix [15845d9fd8]: unix/tcl.m4: implicit declaration of exit()
in timezone variable checks
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -2349,7 +2349,8 @@ AC_DEFUN([SC_TIME_HANDLER], [
# (like convex) have timezone functions, etc.
#
AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
+#include <stdlib.h>]],
[[extern long timezone;
timezone += 1;
exit (0);]])],
@@ -2361,7 +2362,8 @@ AC_DEFUN([SC_TIME_HANDLER], [
# On some systems (eg IRIX 6.2), timezone is a time_t and not a long.
#
AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>
+#include <stdlib.h>]],
[[extern time_t timezone;
timezone += 1;
exit (0);]])],

View File

@ -0,0 +1,16 @@
https://bugs.gentoo.org/892029
https://core.tcl-lang.org/tcltls/tktview?name=37bbdb9fb2
--- a/unix/configure.in
+++ b/unix/configure.in
@@ -866,9 +866,9 @@ if test "$FRAMEWORK_BUILD" = "1" ; then
test -z "$TCL_MODULE_PATH" && \
TCL_MODULE_PATH="~/Library/Tcl /Library/Tcl"
elif test "$prefix/lib" != "$libdir"; then
- test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="{${libdir}} {${prefix}/lib} ${TCL_PACKAGE_PATH}"
+ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${libdir} ${prefix}/lib ${TCL_PACKAGE_PATH}"
else
- test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="{${prefix}/lib} ${TCL_PACKAGE_PATH}"
+ test -z "$TCL_PACKAGE_PATH" && TCL_PACKAGE_PATH="${prefix}/lib ${TCL_PACKAGE_PATH}"
fi
#--------------------------------------------------------------------

View File

@ -3,9 +3,11 @@
<pkgmetadata>
<maintainer type="project">
<email>tcltk@gentoo.org</email>
<name>TCL/TK Herd.</name>
<name>TCL/TK project</name>
</maintainer>
<upstream>
<remote-id type="cpe">cpe:/a:tcl:tcl</remote-id>
<remote-id type="sourceforge">tcl</remote-id>
<remote-id type="github">tcltk/tcl</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -9,11 +9,11 @@ MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"

View File

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -11,11 +11,11 @@ MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
SRC_URI="mirror://sourceforge/tcl/${PN}-core${PV}-src.tar.gz"
SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk"
SLOT="0/8.6"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
@ -28,6 +28,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
"${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
"${FILESDIR}"/${P}-configure-clang16.patch
)
src_prepare() {

View File

@ -0,0 +1,130 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
# Please bump with dev-lang/tk!
inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk Spencer-99"
SLOT="0/8.6"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}"
SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
PATCHES=(
"${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
"${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
"${FILESDIR}"/${PN}-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch # Bug 892029
)
QA_CONFIG_IMPL_DECL_SKIP=(
stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support
)
src_prepare() {
# By dropping the compat directory a lot of licensing and attribution burden
# (BSD-3, zlib,...) is lifted from the user
find \
"${SPARENT}"/compat/* \
"${SPARENT}"/doc/try.n \
-delete || die
pushd "${SPARENT}" &>/dev/null || die
default
popd &>/dev/null || die
# httpold tests require netowk
rm ../tests/httpold.test \
../tests/env.test \
../tests/http.test \
|| die
# workaround stack check issues, bug #280934
use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
tc-export CC
sed \
-e '/chmod/s:555:755:g' \
-i Makefile.in || die
sed \
-e 's:-O[2s]\?::g' \
-i tcl.m4 || die
mv configure.{in,ac} || die
eautoconf
multilib_copy_sources
}
multilib_src_configure() {
# We went ahead and deleted the whole compat/ subdir which means
# the configure tests to detect broken versions need to pass (else
# we'll fail to build). This comes up when cross-compiling, but
# might as well get a minor configure speed up normally.
export ac_cv_func_memcmp_working="yes"
export tcl_cv_str{str,toul,tod}_unbroken="ok"
export tcl_cv_strtod_buggy="no"
econf \
$(use_enable threads) \
$(use_enable debug symbols)
}
multilib_src_install() {
#short version number
local v1=$(ver_cut 1-2)
local mylibdir=$(get_libdir)
S= default
# fix the tclConfig.sh to eliminate refs to the build directory
# and drop unnecessary -L inclusion to default system libdir
sed \
-e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
-e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
fi
# install private headers
insinto /usr/${mylibdir}/tcl${v1}/include/unix
doins *.h
insinto /usr/${mylibdir}/tcl${v1}/include/generic
doins "${SPARENT}"/generic/*.h
rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die
# install symlink for libraries
dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a
if multilib_is_native_abi; then
dosym tclsh${v1} /usr/bin/tclsh
dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
fi
}

View File

@ -0,0 +1,136 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
# Please bump with dev-lang/tk!
inherit autotools flag-o-matic multilib-minimal multilib toolchain-funcs
MY_P="${PN}${PV}"
DESCRIPTION="Tool Command Language"
HOMEPAGE="http://www.tcl.tk/"
SRC_URI="https://downloads.sourceforge.net/tcl/${PN}-core${PV}-src.tar.gz"
LICENSE="tcltk Spencer-99"
SLOT="0/8.6"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="debug +threads"
RDEPEND=">=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]"
DEPEND="${RDEPEND}"
SPARENT="${WORKDIR}/${MY_P}"
S="${SPARENT}"/unix
PATCHES=(
"${FILESDIR}"/${PN}-8.6.10-multilib.patch
"${FILESDIR}"/${PN}-8.6.8-conf.patch # Bug 125971
"${FILESDIR}"/${PN}-8.6.9-include-spec.patch # Bug 731120
"${FILESDIR}"/${PN}-8.6.13-tclConfig-TCL_PACKAGE_PATH-braces.patch # Bug 892029
)
QA_CONFIG_IMPL_DECL_SKIP=(
stat64 opendir64 rewinddir64 closedir64 # used to test for Large File Support
)
src_prepare() {
# By dropping the compat directory a lot of licensing and attribution burden
# (BSD-3, zlib,...) is lifted from the user
find \
"${SPARENT}"/compat/* \
"${SPARENT}"/doc/try.n \
-delete || die
# Drop -Werror
sed -i \
-e "s: -Werror::g" \
dltest/Makefile.in \
|| die
pushd "${SPARENT}" &>/dev/null || die
default
popd &>/dev/null || die
# httpold tests require netowk
rm ../tests/httpold.test \
../tests/env.test \
../tests/http.test \
|| die
# workaround stack check issues, bug #280934
use hppa && append-cflags "-DTCL_NO_STACK_CHECK=1"
tc-export CC
sed \
-e '/chmod/s:555:755:g' \
-i Makefile.in || die
sed \
-e 's:-O[2s]\?::g' \
-i tcl.m4 || die
mv configure.{in,ac} || die
eautoconf
multilib_copy_sources
}
multilib_src_configure() {
# We went ahead and deleted the whole compat/ subdir which means
# the configure tests to detect broken versions need to pass (else
# we'll fail to build). This comes up when cross-compiling, but
# might as well get a minor configure speed up normally.
export ac_cv_func_memcmp_working="yes"
export tcl_cv_str{str,toul,tod}_unbroken="ok"
export tcl_cv_strtod_buggy="no"
econf \
$(use_enable threads) \
$(use_enable debug symbols)
}
multilib_src_install() {
#short version number
local v1=$(ver_cut 1-2)
local mylibdir=$(get_libdir)
S= default
# fix the tclConfig.sh to eliminate refs to the build directory
# and drop unnecessary -L inclusion to default system libdir
sed \
-e "/^TCL_BUILD_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_SRC_DIR=/s:${SPARENT}:${EPREFIX}/usr/${mylibdir}/tcl${v1}/include:g" \
-e "/^TCL_BUILD_STUB_LIB_SPEC=/s:-L$(pwd) *::g" \
-e "/^TCL_STUB_LIB_SPEC=/s:-L${EPREFIX}/usr/${mylibdir} *::g" \
-e "/^TCL_BUILD_STUB_LIB_PATH=/s:$(pwd):${EPREFIX}/usr/${mylibdir}:g" \
-e "/^TCL_LIBW_FILE=/s:'libtcl${v1}..TCL_DBGX..so':\"libtcl${v1}\$\{TCL_DBGX\}.so\":g" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
if use prefix && [[ ${CHOST} != *-darwin* ]] ; then
sed \
-e "/^TCL_CC_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|g" \
-e "/^TCL_LD_SEARCH_FLAGS=/s|'$|:${EPREFIX}/usr/${mylibdir}'|" \
-i "${ED}"/usr/${mylibdir}/tclConfig.sh || die
fi
# install private headers
insinto /usr/${mylibdir}/tcl${v1}/include/unix
doins *.h
insinto /usr/${mylibdir}/tcl${v1}/include/generic
doins "${SPARENT}"/generic/*.h
rm -f "${ED}"/usr/${mylibdir}/tcl${v1}/include/generic/{tcl,tclDecls,tclPlatDecls}.h || die
# install symlink for libraries
dosym libtcl${v1}$(get_libname) /usr/${mylibdir}/libtcl$(get_libname)
dosym libtclstub${v1}.a /usr/${mylibdir}/libtclstub.a
if multilib_is_native_abi; then
dosym tclsh${v1} /usr/bin/tclsh
dodoc "${SPARENT}"/{ChangeLog*,README.md,changes}
fi
}

View File

@ -0,0 +1 @@
DIST PySocks-1.7.1.tar.gz 284429 BLAKE2B 8015e8a0a7ebfbb09ec542393aeb633a769701445c07f24bb9e62b07803d7bb605f22e79ad9ec83e47aa7fe843a1a057073d97e25482e742f42e18b2c7a2f1b3 SHA512 cef4a5ce8c67fb485644696a23bf68a721db47f3211212de2d4431eaf9ebd26077dd5a06f6dfa7fde2dcb9d7c1ed551facd014e999929cb4d7b504972c464016

View File

@ -0,0 +1,21 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 7 -- sys-apps/portage dep
EAPI=7
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="SOCKS client module"
HOMEPAGE="https://github.com/Anorov/PySocks https://pypi.org/project/PySocks/"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
# tests are broken beyond repair and the package is no longer maintained
RESTRICT="test"

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<maintainer status="unknown">
<email>anorov.vorona@gmail.com</email>
<name>Anorov</name>
</maintainer>
<remote-id type="pypi">PySocks</remote-id>
<remote-id type="github">Anorov/PySocks</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST cachecontrol-0.14.0.tar.gz 28899 BLAKE2B 158d70333b8e5cbbee31db788c9737a92592c3c342d17e4e1ff4826759e3fe14eb855556f9363c122fbf3fd68ca43a78b34b3327260fe51a15b30dde01302508 SHA512 4bb43475d43a2b83f9196cf02af7a881ab37da3b481777f1ae6b24df0f7dab54629fcdf9e07b00e1226a7707f5c92b0473481ef7cbbcaa4275665a41487c903f

View File

@ -0,0 +1,33 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="httplib2 caching for requests"
HOMEPAGE="
https://pypi.org/project/CacheControl/
https://github.com/psf/cachecontrol/
"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~sparc x86"
RDEPEND="
<dev-python/msgpack-2[${PYTHON_USEDEP}]
>=dev-python/msgpack-0.5.2[${PYTHON_USEDEP}]
>=dev-python/requests-2.16.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/cherrypy[${PYTHON_USEDEP}]
>=dev-python/filelock-3.8.0[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="github">psf/cachecontrol</remote-id>
<remote-id type="pypi">CacheControl</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,2 @@
DIST certifi-system-store-3021.3.16.gh.tar.gz 13784 BLAKE2B c0c2322fe298d363c4ef4dada2c0db8837bf7a32d86a7b54a1b45bb3dd3c99d732b2612f25495f4a59d9692f896e2b962e7057fa5fec9998724476db48f90c2a SHA512 44953ed8a3deb5fa4aff3f74afa557219e042acea395e9cdebfd26fd43ce0bdeca07c6b6dfe91977f88852e7674b94337b93c4d78fd2da6f47a6187fa46d6668
DIST certifi-system-store-3024.7.22.gh.tar.gz 12441 BLAKE2B 445477dc557f980c5f2edf37d6683204181071e625dac66e9cc3bdeec38ba28ff385d2a92d8162de6af30fc552b64b6c8ad13a06dd6e7f2e26f02d453d69d5c4 SHA512 a4862dbb9f931322f7c62ecd877bee97679cc147acd4585642cbd215f37663f3bde7a73cf846bb0c84077c6cee1c1e4c06da9e2ce44d8dcb1e8fe6065e282feb

View File

@ -0,0 +1,54 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 7 -- sys-apps/portage dep
EAPI=7
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
MY_P=certifi-system-store-${PV}
DESCRIPTION="A certifi hack to use system trust store on Linux/FreeBSD"
HOMEPAGE="
https://github.com/tiran/certifi-system-store/
https://pypi.org/project/certifi-system-store/
"
SRC_URI="
https://github.com/tiran/certifi-system-store/archive/v${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
app-misc/ca-certificates
"
PATCHES=(
"${FILESDIR}"/${P}-use-importlib.patch
)
EPYTEST_IGNORE=(
# requires Internet
tests/test_requests.py
)
distutils_enable_tests pytest
src_prepare() {
sed -i -e "s^/etc^${EPREFIX}/etc^" src/certifi/core.py || die
distutils-r1_src_prepare
}
python_compile() {
distutils-r1_python_compile
cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
local distinfo=( certifi_system_store*.dist-info )
[[ -d ${distinfo} ]] || die
ln -v -s "${distinfo}" "${distinfo/_system_store}" || die
}

View File

@ -0,0 +1,43 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
MY_P=certifi-system-store-${PV}
DESCRIPTION="A certifi hack to use system trust store on Linux/FreeBSD"
HOMEPAGE="
https://github.com/projg2/certifi-system-store/
https://github.com/tiran/certifi-system-store/
https://pypi.org/project/certifi-system-store/
"
SRC_URI="
https://github.com/projg2/certifi-system-store/archive/v${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
RDEPEND="
app-misc/ca-certificates
"
EPYTEST_IGNORE=(
# requires Internet
tests/test_requests.py
)
distutils_enable_tests pytest
src_prepare() {
sed -i -e "s^/etc^${EPREFIX}/etc^" src/certifi/core.py || die
distutils-r1_src_prepare
}

View File

@ -0,0 +1,164 @@
1. https://github.com/tiran/certifi-system-store/commit/6945f34b7be433dbf22946825cdb225d5d2136d5
2. https://github.com/tiran/certifi-system-store/pull/21
Avoid repeated instances of https://bugs.gentoo.org/878045 when a package
has too-strict requirements and then affects other, unrelated Python
packages on the system.
From 6945f34b7be433dbf22946825cdb225d5d2136d5 Mon Sep 17 00:00:00 2001
From: Christian Heimes <christian@python.org>
Date: Tue, 16 Mar 2021 16:00:08 +0100
Subject: [PATCH] Relax patch checks (#13)
- only check that version matches, not files are identical
- compare base directories with samefile. This fixes a problem with
lib64 symlink in virtual envs.
Signed-off-by: Christian Heimes <christian@python.org>
--- a/src/certifi/_patch.py
+++ b/src/certifi/_patch.py
@@ -28,7 +28,7 @@ def _patch_dist_info():
except pkg_resources.DistributionNotFound:
pass
else:
- if os.path.samefile(css_dist.egg_info, certifi_dist.egg_info):
+ if certifi_dist.version == css_dist.version:
return False, css_dist.egg_info, certifi_dist.egg_info
else:
# blow away certifi's dist-info
@@ -55,7 +55,9 @@ def _patch_dist_info():
certifi_dir = os.path.dirname(os.path.abspath(__file__))
dist_dir = os.path.abspath(certifi_dist.egg_info)
- if os.path.dirname(certifi_dir) != os.path.dirname(dist_dir):
+ # compare with samefile instead of string comparison to avoid false
+ # negatives caused by venv lib64 / lib symlinks
+ if not os.path.samefile(os.path.dirname(certifi_dir), os.path.dirname(dist_dir)):
raise RuntimeError(
f"'{certifi_dir} and {dist_dir} have different parent directories."
)
From cdec6d20b5d716d9853e72a1519a304070395498 Mon Sep 17 00:00:00 2001
From: Christian Heimes <christian@python.org>
Date: Wed, 22 Jun 2022 10:08:18 +0200
Subject: [PATCH] Use importlib on Python 3.8+
--- a/setup.cfg
+++ b/setup.cfg
@@ -38,8 +40,9 @@ packages = certifi
include_package_data = True
zip_safe = True
setup_requires = setuptools
-# hack to prevent installation on unsupported platforms Windows and macOS
install_requires =
+ setuptools; python_version < "3.8"
+ # hack to prevent installation on unsupported platforms Windows and macOS
certifi-system-store > 4000; sys_platform == "win32" or sys_platform == "darwin"
python_requires = >=3.6
--- a/src/certifi/_patch.py
+++ b/src/certifi/_patch.py
@@ -1,7 +1,31 @@
import os
import shutil
import sys
-import pkg_resources
+
+if sys.version_info >= (3, 8):
+ from importlib import metadata
+
+ PackageNotFoundError = metadata.PackageNotFoundError
+
+ def _get_distinfo(name):
+ dist = metadata.distribution(name)
+ egg_info = dist._path
+ return dist.version, egg_info
+
+ def _invalidate_caches():
+ pass
+
+else:
+ import pkg_resources
+
+ PackageNotFoundError = pkg_resources.DistributionNotFound
+
+ def _get_distinfo(name):
+ dist = pkg_resources.get_distribution(name)
+ return dist.version, dist.egg_info
+
+ def _invalidate_caches():
+ pkg_resources.working_set.__init__()
def _relsymlink(target, linkname):
@@ -22,22 +46,22 @@ def _relsymlink(target, linkname):
def _patch_dist_info():
# distribution object for the canonical project name
- css_dist = pkg_resources.get_distribution("certifi_system_store")
+ css_version, css_egg_info = _get_distinfo("certifi_system_store")
try:
- certifi_dist = pkg_resources.get_distribution("certifi")
- except pkg_resources.DistributionNotFound:
+ certifi_version, certifi_egg_info = _get_distinfo("certifi")
+ except PackageNotFoundError:
pass
else:
- if certifi_dist.version == css_dist.version:
- return False, css_dist.egg_info, certifi_dist.egg_info
+ if certifi_version == css_version:
+ return False, css_egg_info, certifi_egg_info
else:
# blow away certifi's dist-info
- shutil.rmtree(certifi_dist.egg_info)
+ shutil.rmtree(certifi_egg_info)
# reset current working set, so pkg_resources can pick up our hack
- pkg_resources.working_set.__init__()
+ _invalidate_caches()
# certifi-system-store's dist-info
- abs_css_distinfodir = os.path.abspath(css_dist.egg_info)
+ abs_css_distinfodir = os.path.abspath(css_egg_info)
css_basedir, css_distinfodir = os.path.split(abs_css_distinfodir)
# certifi's dist-info in same base directory
@@ -48,12 +72,12 @@ def _patch_dist_info():
_relsymlink(target=abs_css_distinfodir, linkname=abs_certifi_distinfodir)
# get dist info from refreshed working set
- css_dist = pkg_resources.get_distribution("certifi_system_store")
- certifi_dist = pkg_resources.get_distribution("certifi")
+ css_version, css_egg_info = _get_distinfo("certifi_system_store")
+ certifi_version, certifi_egg_info = _get_distinfo("certifi")
# check that certifi dist-info is in same site-packages as certifi package
certifi_dir = os.path.dirname(os.path.abspath(__file__))
- dist_dir = os.path.abspath(certifi_dist.egg_info)
+ dist_dir = os.path.abspath(certifi_egg_info)
# compare with samefile instead of string comparison to avoid false
# negatives caused by venv lib64 / lib symlinks
@@ -65,17 +89,17 @@ def _patch_dist_info():
# double check versions
_verify_dist_info()
- return True, css_dist.egg_info, certifi_dist.egg_info
+ return True, css_egg_info, certifi_egg_info
def _verify_dist_info():
- css_dist = pkg_resources.get_distribution("certifi_system_store")
+ css_version, css_egg_info = _get_distinfo("certifi_system_store")
try:
- certifi_dist = pkg_resources.get_distribution("certifi")
- except pkg_resources.DistributionNotFound as e:
+ certifi_version, certifi_egg_info = _get_distinfo("certifi")
+ except PackageNotFoundError as e:
raise RuntimeError(e)
else:
- if certifi_dist.version != css_dist.version:
+ if certifi_version != css_version:
raise RuntimeError(
f"'certifi.dist-info' is not an alias to "
f"'certifi_system_store.dist-info'. "

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="github">projg2/certifi-system-store</remote-id>
<remote-id type="github">tiran/certifi-system-store</remote-id>
<remote-id type="pypi">certifi-system-store</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST charset-normalizer-3.3.2.tar.gz 104809 BLAKE2B dbc3271794c7d73ee0d2ccbc5cdc3aa56181ac1331b69bd72928a20cb464f64fc190fd5f627b1deab4bba4a3c62144272e4b1368d2020707522bcae10c8a9607 SHA512 227dd9496e080310b3262fe0ffc32b5ebed16e5b3a294877555c0b04dee0cb073a2a0a4fa8dbad3029703ffaf1857acf24d9b87ca74d75fa2f0ba8fd3413e9c4

View File

@ -0,0 +1,28 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="The Real First Universal Charset Detector"
HOMEPAGE="
https://pypi.org/project/charset-normalizer/
https://github.com/Ousret/charset_normalizer/
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
distutils_enable_tests pytest
python_test() {
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest -o addopts=
}

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="github">Ousret/charset_normalizer</remote-id>
<remote-id type="pypi">charset-normalizer</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST colorama-0.4.6.gh.tar.gz 116300 BLAKE2B 5b8f013a0cfa227dc750456d28af83dd6322000a3982e680d0cf051f6ae964b630f2889a0f1b78fe1cab465b25a52db07516cee9cbd99575dae38a86c5b69bd0 SHA512 2b269b190041398a1808b0b5147e47422b4451a1bc91841d0957572214ba8addd731c8932afdc60bfbba9833a0fe6c9c5c2ecb150613f13498f661799d625e4f

View File

@ -0,0 +1,44 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( pypy3 python3_{10..13} )
inherit distutils-r1
DESCRIPTION="ANSI escape character sequences for colored terminal text & cursor positioning"
HOMEPAGE="
https://pypi.org/project/colorama/
https://github.com/tartley/colorama/
"
SRC_URI="
https://github.com/tartley/colorama/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples"
distutils_enable_tests pytest
python_install_all() {
distutils-r1_python_install_all
if use examples; then
docinto examples
dodoc -r demos/.
docompress -x /usr/share/doc/${PF}/examples
fi
}
python_test() {
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
# Some tests require stdout to be a TTY
# https://github.com/tartley/colorama/issues/169
script -eqc "${EPYTHON} -m pytest -vv -s" /dev/null \
|| die "tests failed with ${EPYTHON}"
}

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">colorama</remote-id>
<remote-id type="github">tartley/colorama</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST distlib-0.3.8.gh.tar.gz 1240659 BLAKE2B 5d14440bd6886a37e80323ea35370f306135f5b15544180b072ed42c6e7b00799dc4b5fe207adb31eee7234d4f291420bd289b5430bbf38ff0468b29af2ca621 SHA512 98dc6459f54783598aad8ee3b8d80c0092a5d08d4272ad212faeef5e30cf9029b718231681f39d26e48588bb676bae7919f1431ddb51eb3917725f99a5c90457

View File

@ -0,0 +1,58 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
DESCRIPTION="Low-level components of distutils2/packaging"
HOMEPAGE="
https://pypi.org/project/distlib/
https://github.com/pypa/distlib
"
SRC_URI="
https://github.com/pypa/distlib/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
"
LICENSE="PSF-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
IUSE="test"
RESTRICT="!test? ( test )"
# pypiserver is called as external executable
BDEPEND="
test? (
dev-python/pypiserver
)
"
src_prepare() {
local PATCHES=(
# use system pypiserver instead of bundled one
"${FILESDIR}"/distlib-0.3.2-system-pypiserver.py
# https://github.com/pypa/distlib/commit/1c08845b05d022692252ed45cb07e9cb9647caac
"${FILESDIR}"/${P}-py313.patch
)
# make sure it's not used
rm tests/pypi-server-standalone.py || die
distutils-r1_src_prepare
}
python_test() {
local -x SKIP_ONLINE=1
local -x PYTHONHASHSEED=0
# disable system-site-packages -- distlib has no deps, and is very
# fragile to packages actually installed on the system
sed -i -e '/system-site-packages/s:true:false:' \
"${BUILD_DIR}/install${EPREFIX}/usr/bin/pyvenv.cfg" || die
"${EPYTHON}" tests/test_all.py -v -x ||
die "Tests failed with ${EPYTHON}"
}

View File

@ -0,0 +1,24 @@
diff -dupr a/tests/test_index.py b/tests/test_index.py
--- a/tests/test_index.py 2021-05-29 17:42:08.015558305 +0200
+++ b/tests/test_index.py 2021-05-29 17:42:56.949966576 +0200
@@ -57,11 +57,6 @@ class PackageIndexTestCase(DistlibTestCa
def setUpClass(cls):
if cls.run_test_server:
cls.server = None
- server_script = os.path.join(HERE, 'pypi-server-standalone.py')
- if not os.path.exists(server_script):
- logger.debug('test server not available - some tests '
- 'will be skipped.')
- return
pwdfn = os.path.join(HERE, 'passwords')
if not os.path.exists(pwdfn): # pragma: no cover
with open(pwdfn, 'w') as f:
@@ -72,7 +67,7 @@ class PackageIndexTestCase(DistlibTestCa
fd, cls.sinkfile = tempfile.mkstemp(suffix='.log', prefix='distlib-pypi-')
os.close(fd)
cls.sink = sink = open(cls.sinkfile, 'w')
- cmd = [sys.executable, 'pypi-server-standalone.py',
+ cmd = ['pypi-server',
'--interface', '127.0.0.1', '--port', TEST_SERVER_PORT,
'-P', 'passwords', 'packages']
cls.server = subprocess.Popen(cmd, stdout=sink, stderr=sink,

View File

@ -0,0 +1,22 @@
From 1c08845b05d022692252ed45cb07e9cb9647caac Mon Sep 17 00:00:00 2001
From: Vinay Sajip <vinay_sajip@yahoo.co.uk>
Date: Wed, 14 Feb 2024 14:46:14 +0000
Subject: [PATCH] Fix #214: Update representation of interpreter in test.
---
tests/test_scripts.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_scripts.py b/tests/test_scripts.py
index 5c38687..74ee647 100644
--- a/tests/test_scripts.py
+++ b/tests/test_scripts.py
@@ -340,7 +340,7 @@ def test_script_run(self):
self.assertIn(b'<H3>Current Working Directory:</H3>', stdout)
self.assertIn(os.getcwd().encode('utf-8'), stdout)
else:
- self.assertIn(b'[Interpreter(id=0, isolated=None)]', stderr)
+ self.assertIn(b'[Interpreter(0)]', stderr)
self.assertEqual(p.returncode, 1)
@unittest.skipUnless(os.name == 'posix', 'Test only valid for POSIX')

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">distlib</remote-id>
<remote-id type="github">pypa/distlib</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST fastjsonschema-2.20.0.tar.gz 373056 BLAKE2B 99e80a6aa05aef421c5d95149f5f40f0a732bd686888f32067295c19d9c1d7569bf628d06b59bbeb68ea302e06de700b05c27e7a44e018b213e0c1a7f4dc1304 SHA512 7881937a02c7487d1dfd7499dbe85e8f8e359b9686673f32491d93cef1d7a949df5309b0d4a5cc525a7d9c8269568bc34e9d072ec1a49e44d5becbf8718b250d

View File

@ -0,0 +1,25 @@
# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( pypy3 python3_{10..13} )
inherit distutils-r1 pypi
DESCRIPTION="Fast JSON schema validator for Python"
HOMEPAGE="
https://github.com/horejsek/python-fastjsonschema/
https://pypi.org/project/fastjsonschema/
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
distutils_enable_tests pytest
EPYTEST_IGNORE=(
tests/benchmarks
)

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="github">horejsek/python-fastjsonschema</remote-id>
<remote-id type="pypi">fastjsonschema</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST idna-3.7.tar.gz 189575 BLAKE2B b604f5e69775b6052e3358a31ea0154832264979a992db51130a0f0e7c5ef9163e97e15956cfd599212ba233c789706a4a2ea8051c3baeda5abc3657bdf40902 SHA512 b50e5ae117b67c7076125d6943e3436200676f85d7dd1b5a5414e217e73904ef077f0b1108d9781ab4afe2a66f7c9e1ce8262ce51edeb2d29e4c504147b6c4cc

View File

@ -0,0 +1,22 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
EAPI=8
DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="Internationalized Domain Names in Applications (IDNA)"
HOMEPAGE="
https://github.com/kjd/idna/
https://pypi.org/project/idna/
"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
distutils_enable_tests unittest

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">idna</remote-id>
<remote-id type="github">kjd/idna</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST lark-1.1.9.tar.gz 255451 BLAKE2B 0bdb34a75c17800cc6819413011de879a163317c7414b260e1a4a0ccc4b40d11636fad1ae84946e0408096525b6cfeb6f725c95caed8043d3dff3e318d15be1f SHA512 4d711451f129312a28cff84239a2928fdff96df1445f77ae7a9d882d13791a58e44663ef70fd064df954094878214611ee1313ce9315c8dcfb0833b003a3774f

View File

@ -0,0 +1,40 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="Python module to propose a modern general-purpose parsing library for Python"
HOMEPAGE="
https://github.com/lark-parser/lark/
https://pypi.org/project/lark/
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
# dev-python/regex doesn't support pypy
BDEPEND="
test? (
dev-python/atomicwrites[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
dev-python/regex[${PYTHON_USEDEP}]
' 'python*')
)
"
distutils_enable_tests pytest
python_test() {
local EPYTEST_IGNORE=(
# require dev-python/js2py which is a really bad quality package
tests/test_nearley/test_nearley.py
)
epytest
}

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">lark</remote-id>
<remote-id type="github">lark-parser/lark</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST linkify-it-py-2.0.3.gh.tar.gz 76727 BLAKE2B df0d2c8f31a9715c6eadd1f8fb295990b5ed82b8f49231071f8220045d9b64ec21098477d43a74afa21592b2a345357654a23df38636e852a767c62443580e34 SHA512 6621533246a42f3b13fb7dd9f1366cadb0e3c291bcb92fd899bc6389cb9f7904ababf4b5dbae51a561a4f50f8a20597badf03c82653ae8db75d9a5a484bc1229

View File

@ -0,0 +1,30 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( pypy3 python3_{10..13} )
inherit distutils-r1
DESCRIPTION="Links recognition library with full unicode support"
HOMEPAGE="
https://github.com/tsutsu3/linkify-it-py/
https://pypi.org/project/linkify-it-py/
"
# no tests in sdist, as of 2.0.1
SRC_URI="
https://github.com/tsutsu3/linkify-it-py/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
RDEPEND="
dev-python/uc-micro-py[${PYTHON_USEDEP}]
"
distutils_enable_tests pytest

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="github">tsutsu3/linkify-it-py</remote-id>
<remote-id type="pypi">linkify-it-py</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST markdown-it-py-3.0.0.gh.tar.gz 275478 BLAKE2B ab264d6de015262e770b5da9c26a48a9fa40209119e38e12e4185aa8b5141986df62f2ff44d80c2d62732e75408b3a70bf35ae9b7ca899ae284636cc62ded710 SHA512 820265595ab650f5ac64419d5c2687d1ee361d2a0550b9d94e86ec826cfe5e89cbd69e59d6582aac41d3b95f00ce4a0b7213bf6cd590fdbd8fd9b743c7418759

View File

@ -0,0 +1,40 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..13} pypy3 )
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="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
RDEPEND="
<dev-python/linkify-it-py-3[${PYTHON_USEDEP}]
dev-python/mdurl[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/pytest-regressions[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
EPYTEST_IGNORE=(
# No need to benchmark
benchmarking/
)

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">markdown-it-py</remote-id>
<remote-id type="github">executablebooks/markdown-it-py</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1 @@
DIST mdurl-0.1.2.gh.tar.gz 15236 BLAKE2B 797ff496e116c0aa4c5045e9dc34f0762b1492d74fc0b85a081fb7447c3880618e0e4936205afb92b75524e0381fe4ab94d0d47faae9a6ed6d7b2fc51a5efba3 SHA512 e301ca3ab6d80df1ad28b9c2725d66b6e6cf139d93e5f7fd2a70333678616a3f6db64f15250972eee3cd1cf1eaff6ec587415629e6802dcf07995edff6865ff2

View File

@ -0,0 +1,25 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
DESCRIPTION="Markdown URL utilities"
HOMEPAGE="
https://pypi.org/project/mdurl/
https://github.com/executablebooks/mdurl/
"
SRC_URI="
https://github.com/hukkin/mdurl/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
distutils_enable_tests pytest

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">mdurl</remote-id>
<remote-id type="github">executablebooks/mdurl</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,2 @@
DIST msgpack-1.0.7.tar.gz 166311 BLAKE2B 8ddf2acf6bf81498d981c3ec83cbdffde1b1611f8ac23d3377f3f1541e679eda288b40b949bd586ca24a7059da3a0f73fa797a661375135ec092f408521c8527 SHA512 0ebd36f45b73106a4272588b55d55e72b6b8441be652b16f63f5547ae7ff1bc517a6b4549ef999ee63deb2856354a71ef37fd8d8829e516232518b046cf589c5
DIST msgpack-1.0.8.tar.gz 167014 BLAKE2B 714b0355941104e791c5a3b8ee2bd4f40b11484631a3bde63e7c0bdbb925a603c4704b037ab437c2330dc0d2e466d41ccfd50c6a45ef798e5cd34a87e4e3863f SHA512 b739667d4384ba0e18a4e55de6033933822180eb5d28bd7f5ecd7e7da112a214f400740feb45de6f0873d12c8b062b1a8b9b9e5939c2961a8c9585f282645c5b

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<upstream>
<remote-id type="github">msgpack/msgpack-python</remote-id>
<remote-id type="pypi">msgpack</remote-id>
</upstream>
<use>
<flag name="native-extensions">
Compiles native "C" extensions (speedups, instead of using python
fallback code).
</flag>
</use>
</pkgmetadata>

View File

@ -0,0 +1,51 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="MessagePack (de)serializer for Python"
HOMEPAGE="
https://msgpack.org/
https://github.com/msgpack/msgpack-python/
https://pypi.org/project/msgpack/
"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
IUSE="+native-extensions"
# extension code is relying on CPython implementation details
BDEPEND="
native-extensions? (
$(python_gen_cond_dep '
>=dev-python/cython-3.0.0[${PYTHON_USEDEP}]
' 'python*')
)
"
distutils_enable_tests pytest
python_prepare_all() {
# Remove pre-generated cython files
rm msgpack/_cmsgpack.cpp || die
# native-extensions are always disabled on PyPy
# https://github.com/msgpack/msgpack-python/blob/main/setup.py#L76
if ! use native-extensions ; then
export MSGPACK_PUREPYTHON=1
fi
distutils-r1_python_prepare_all
}
python_test() {
rm -rf msgpack || die
epytest
}

View File

@ -0,0 +1,51 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_EXT=1
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 pypi
DESCRIPTION="MessagePack (de)serializer for Python"
HOMEPAGE="
https://msgpack.org/
https://github.com/msgpack/msgpack-python/
https://pypi.org/project/msgpack/
"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ppc ppc64 ~riscv ~s390 sparc x86 ~x64-macos"
IUSE="+native-extensions"
# extension code is relying on CPython implementation details
BDEPEND="
native-extensions? (
$(python_gen_cond_dep '
>=dev-python/cython-3.0.8[${PYTHON_USEDEP}]
' 'python*')
)
"
distutils_enable_tests pytest
python_prepare_all() {
# Remove pre-generated cython files
rm msgpack/_cmsgpack.cpp || die
# native-extensions are always disabled on PyPy
# https://github.com/msgpack/msgpack-python/blob/main/setup.py#L76
if ! use native-extensions ; then
export MSGPACK_PUREPYTHON=1
fi
distutils-r1_python_prepare_all
}
python_test() {
rm -rf msgpack || die
epytest
}

View File

@ -1 +1,5 @@
DIST pip-24.0.gh.tar.gz 9398156 BLAKE2B 17a7ed9e15e9b8efa0d3e3c5586dc446958b62cf9ba52155a0d1ad97a3e212ee7a08a0e88a592718fc3d542eb8f434155a75cb98d90c008904bd8f59bd2b40b6 SHA512 0c2ecb2ecde4f155c83468d35bc4f52f37efffc16821ae7c706d035e1e8cc3709b41cb10f8140ff09205e8bbdba2c76128ad76d1cbd18401328b619228e834df
DIST pip-24.1.1.gh.tar.gz 9190972 BLAKE2B 1ce876d2767c1c36bac3237c17a3aced9dd5a335a7b522c70cee1e155bc0b47256db74c6835aab5f58133ebcde0daeb8e6eb217b06f76418c355034cbe736cf6 SHA512 523e7273134b68252693ba7a032e7992c72075aebd2bcd895fbd90ad28d76f98b13ea1a7df0b6da1802650782ae977868177f740dc6f0a2eaccb95915c27b318
DIST pip-24.1.2.gh.tar.gz 9192691 BLAKE2B 9b5a07e9f10b5787d668766423d8b3a9dfcc62564673155b80c7bc95ffe79daafa8788d8141f67c76d4098c21922e62fcb2164f72bf580bbeec136786c48d512 SHA512 222a957030e9c51defa6f741f8e176f2a19bd54f0ef664d2e218d3d2c2b5a335c9b7ce4bd1c804133d6116b3fbf37648453cd85f7a2bcf86a5aeb43e22db4b0f
DIST pip-24.1.gh.tar.gz 9188658 BLAKE2B 4a43ff0199d811dd30461e376f655a447f3f706a48dd97fe1d0ccf630f558e72209ccd06d98949a1541cd6b2942a816db23ce8aaa7fbbf9aef429502fb91ab92 SHA512 c60ab329fe91202ff64b5f0f90209085fbf8db0f0a05f0703f952ad69e39e2e3edb5dadc006a3f317cdd4ba4fb5abe56dfbd22792249a2d139702eec272186d1
DIST pip-24.2.gh.tar.gz 9189637 BLAKE2B 6bc7bf69cd3e1edc1898a4476d36b749c037ac10a1614ef3a6bacc0c7debd38de94e0cf6d8a2931b1a7afb2f6f853922fcd62b65d17ac805f22741b7ff6423c6 SHA512 2c44881f62f7b89cedeb0b739409ad67c6144bfdffc347efeb7bcf85aed77bcd7ddd10868d24577fbba0ef84dd752473d6b6dff329b42841939fae2ff2f63d28

View File

@ -0,0 +1,65 @@
diff --git a/tests/conftest.py b/tests/conftest.py
index 35101cef2..5934e9f95 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -395,6 +395,7 @@ def pip_editable_parts(
"-m",
"pip",
"install",
+ "--no-build-isolation",
"--target",
pip_self_install_path,
"-e",
diff --git a/tests/functional/test_config_settings.py b/tests/functional/test_config_settings.py
index 3f88d9c39..857722dd1 100644
--- a/tests/functional/test_config_settings.py
+++ b/tests/functional/test_config_settings.py
@@ -118,6 +118,7 @@ def test_config_settings_implies_pep517(
)
result = script.pip(
"wheel",
+ "--no-build-isolation",
"--config-settings",
"FOO=Hello",
pkg_path,
diff --git a/tests/functional/test_install.py b/tests/functional/test_install.py
index eaea12a16..e19446385 100644
--- a/tests/functional/test_install.py
+++ b/tests/functional/test_install.py
@@ -685,7 +685,7 @@ def test_link_hash_in_dep_fails_require_hashes(
# Build a wheel for pkga and compute its hash.
wheelhouse = tmp_path / "wheehouse"
wheelhouse.mkdir()
- script.pip("wheel", "--no-deps", "-w", wheelhouse, project_path)
+ script.pip("wheel", "--no-build-isolation", "--no-deps", "-w", wheelhouse, project_path)
digest = hashlib.sha256(
wheelhouse.joinpath("pkga-1.0-py3-none-any.whl").read_bytes()
).hexdigest()
@@ -903,7 +903,7 @@ def test_editable_install__local_dir_setup_requires_with_pyproject(
"setup(name='dummy', setup_requires=['simplewheel'])\n"
)
- script.pip("install", "--find-links", shared_data.find_links, "-e", local_dir)
+ script.pip("install", "--no-build-isolation", "--find-links", shared_data.find_links, "-e", local_dir)
def test_install_pre__setup_requires_with_pyproject(
diff --git a/tests/functional/test_self_update.py b/tests/functional/test_self_update.py
index c50755220..1331a87c3 100644
--- a/tests/functional/test_self_update.py
+++ b/tests/functional/test_self_update.py
@@ -11,12 +11,12 @@ def test_self_update_editable(script: Any, pip_src: Any) -> None:
# Step 1. Install pip as non-editable. This is expected to succeed as
# the existing pip in the environment is installed in editable mode, so
# it only places a .pth file in the environment.
- proc = script.pip("install", pip_src)
+ proc = script.pip("install", "--no-build-isolation", pip_src)
assert proc.returncode == 0
# Step 2. Using the pip we just installed, install pip *again*, but
# in editable mode. This could fail, as we'll need to uninstall the running
# pip in order to install the new copy, and uninstalling pip while it's
# running could fail. This test is specifically to ensure that doesn't
# happen...
- proc = script.pip("install", "-e", pip_src)
+ proc = script.pip("install", "--no-build-isolation", "-e", pip_src)
assert proc.returncode == 0

View File

@ -0,0 +1,193 @@
diff --git a/src/pip/_internal/commands/debug.py b/src/pip/_internal/commands/debug.py
index 567ca967e..427bfcf04 100644
--- a/src/pip/_internal/commands/debug.py
+++ b/src/pip/_internal/commands/debug.py
@@ -6,7 +6,6 @@ from optparse import Values
from types import ModuleType
from typing import Any, Dict, List, Optional
-import pip._vendor
from pip._vendor.certifi import where
from pip._vendor.packaging.version import parse as parse_version
@@ -192,9 +191,7 @@ class DebugCommand(Command):
show_value("REQUESTS_CA_BUNDLE", os.environ.get("REQUESTS_CA_BUNDLE"))
show_value("CURL_CA_BUNDLE", os.environ.get("CURL_CA_BUNDLE"))
show_value("pip._vendor.certifi.where()", where())
- show_value("pip._vendor.DEBUNDLED", pip._vendor.DEBUNDLED)
-
- show_vendor_versions()
+ show_value("pip._vendor.DEBUNDLED", True)
show_tags(options)
diff --git a/tests/conftest.py b/tests/conftest.py
index 35101cef2..840663fed 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -413,6 +413,7 @@ def _common_wheel_editable_install(
assert len(wheel_candidates) == 1, wheel_candidates
install_dir = tmpdir_factory.mktemp(package) / "install"
lib_install_dir = install_dir / "lib"
+ return lib_install_dir
bin_install_dir = install_dir / "bin"
with WheelFile.open(wheel_candidates[0]) as source:
install(
diff --git a/tests/functional/test_check.py b/tests/functional/test_check.py
index 46ecdcc64..6507febfa 100644
--- a/tests/functional/test_check.py
+++ b/tests/functional/test_check.py
@@ -6,10 +6,8 @@ from tests.lib import PipTestEnvironment, create_test_package_with_setup
def matches_expected_lines(string: str, expected_lines: Collection[str]) -> bool:
# Ignore empty lines
output_lines = list(filter(None, string.splitlines()))
- # We'll match the last n lines, given n lines to match.
- last_few_output_lines = output_lines[-len(expected_lines) :]
# And order does not matter
- return set(last_few_output_lines) == set(expected_lines)
+ return set(expected_lines).issubset(set(output_lines))
def test_basic_check_clean(script: PipTestEnvironment) -> None:
diff --git a/tests/functional/test_freeze.py b/tests/functional/test_freeze.py
index b7af974ea..144f79483 100644
--- a/tests/functional/test_freeze.py
+++ b/tests/functional/test_freeze.py
@@ -80,8 +80,8 @@ def test_basic_freeze(script: PipTestEnvironment) -> None:
result = script.pip("freeze", expect_stderr=True)
expected = textwrap.dedent(
"""\
- ...simple==2.0
- simple2==3.0...
+ ...simple==2.0...
+ ...simple2==3.0...
<BLANKLINE>"""
)
_check_output(result.stdout, expected)
@@ -1014,7 +1014,7 @@ def test_freeze_skip_work_dir_pkg(script: PipTestEnvironment) -> None:
# Freeze should not include package simple when run from package directory
result = script.pip("freeze", cwd=pkg_path)
- assert "simple" not in result.stdout
+ assert "\nsimple==" not in result.stdout
def test_freeze_include_work_dir_pkg(script: PipTestEnvironment) -> None:
diff --git a/tests/functional/test_install_check.py b/tests/functional/test_install_check.py
index 8a8a7c93a..bbda083f7 100644
--- a/tests/functional/test_install_check.py
+++ b/tests/functional/test_install_check.py
@@ -57,6 +57,7 @@ def test_check_install_canonicalization(script: PipTestEnvironment) -> None:
)
assert "requires" not in result.stderr
assert result.returncode == 0
+ return
# Double check that all errors are resolved in the end
result = script.pip("check")
diff --git a/tests/functional/test_list.py b/tests/functional/test_list.py
index 5164c1d5c..ce0a81aea 100644
--- a/tests/functional/test_list.py
+++ b/tests/functional/test_list.py
@@ -1,5 +1,6 @@
import json
import os
+import re
from pathlib import Path
import pytest
@@ -41,8 +42,8 @@ def test_basic_list(simple_script: PipTestEnvironment) -> None:
"""
result = simple_script.pip("list")
- assert "simple 1.0" in result.stdout, str(result)
- assert "simple2 3.0" in result.stdout, str(result)
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
@@ -54,8 +55,8 @@ def test_verbose_flag(simple_script: PipTestEnvironment) -> None:
assert "Version" in result.stdout, str(result)
assert "Location" in result.stdout, str(result)
assert "Installer" in result.stdout, str(result)
- assert "simple 1.0" in result.stdout, str(result)
- assert "simple2 3.0" in result.stdout, str(result)
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
def test_columns_flag(simple_script: PipTestEnvironment) -> None:
@@ -66,8 +67,8 @@ def test_columns_flag(simple_script: PipTestEnvironment) -> None:
assert "Package" in result.stdout, str(result)
assert "Version" in result.stdout, str(result)
assert "simple (1.0)" not in result.stdout, str(result)
- assert "simple 1.0" in result.stdout, str(result)
- assert "simple2 3.0" in result.stdout, str(result)
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
def test_format_priority(simple_script: PipTestEnvironment) -> None:
@@ -79,16 +80,16 @@ def test_format_priority(simple_script: PipTestEnvironment) -> None:
)
assert "simple==1.0" in result.stdout, str(result)
assert "simple2==3.0" in result.stdout, str(result)
- assert "simple 1.0" not in result.stdout, str(result)
- assert "simple2 3.0" not in result.stdout, str(result)
+ assert not re.search(r"simple\s+1\.0", result.stdout), str(result)
+ assert not re.search(r"simple2\s+3\.0", result.stdout), str(result)
result = simple_script.pip("list", "--format=freeze", "--format=columns")
assert "Package" in result.stdout, str(result)
assert "Version" in result.stdout, str(result)
assert "simple==1.0" not in result.stdout, str(result)
assert "simple2==3.0" not in result.stdout, str(result)
- assert "simple 1.0" in result.stdout, str(result)
- assert "simple2 3.0" in result.stdout, str(result)
+ assert re.search(r"simple\s+1\.0", result.stdout), str(result)
+ assert re.search(r"simple2\s+3\.0", result.stdout), str(result)
def test_local_flag(simple_script: PipTestEnvironment) -> None:
@@ -124,8 +125,8 @@ def test_multiple_exclude_and_normalization(
assert "Normalizable_Name" in result.stdout
assert "pip" in result.stdout
result = script.pip("list", "--exclude", "normalizablE-namE", "--exclude", "pIp")
- assert "Normalizable_Name" not in result.stdout
- assert "pip" not in result.stdout
+ assert "Normalizable_Name " not in result.stdout
+ assert "pip " not in result.stdout
@pytest.mark.network
diff --git a/tests/lib/venv.py b/tests/lib/venv.py
index fac54d3bd..6bfe3cfdc 100644
--- a/tests/lib/venv.py
+++ b/tests/lib/venv.py
@@ -9,6 +9,7 @@ import venv as _venv
from pathlib import Path
from typing import Dict, Literal, Optional, Union
+import pytest
import virtualenv as _virtualenv
VirtualEnvironmentType = Literal["virtualenv", "venv"]
@@ -35,7 +36,7 @@ class VirtualEnvironment:
self._venv_type = venv_type
else:
self._venv_type = "virtualenv"
- self._user_site_packages = False
+ self._user_site_packages = True
self._template = template
self._sitecustomize: Optional[str] = None
self._update_paths()
@@ -234,6 +235,8 @@ class VirtualEnvironment:
@user_site_packages.setter
def user_site_packages(self, value: bool) -> None:
+ if not value:
+ pytest.skip("Gentoo: skipping due to lack of system site-packages")
self._user_site_packages = value
if self._legacy_virtualenv:
marker = self.lib / "no-global-site-packages.txt"

View File

@ -6,7 +6,7 @@ EAPI=8
# please bump dev-python/ensurepip-pip along with this package!
DISTUTILS_USE_PEP517=setuptools
PYTHON_TESTED=( python3_{10..12} )
PYTHON_TESTED=( python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
PYTHON_REQ_USE="ssl(+),threads(+)"
@ -25,8 +25,8 @@ SRC_URI="
LICENSE="MIT"
# bundled deps
LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="test-rust"
RDEPEND="
@ -109,6 +109,15 @@ python_test() {
fi
case ${EPYTHON} in
python3.13)
EPYTEST_DESELECT+=(
# hacky upstream time mocking stopped working, they have it
# failing on CI already too
tests/unit/test_base_command.py::test_log_command_success
tests/unit/test_base_command.py::test_log_command_error
tests/unit/test_base_command.py::test_log_file_command_error
)
;;
python3.10)
EPYTEST_DESELECT+=(
# no clue why they fail
@ -122,7 +131,7 @@ python_test() {
local -x PIP_DISABLE_PIP_VERSION_CHECK=1
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local EPYTEST_XDIST=1
epytest -m "not network"
epytest -m "not network" -o tmp_path_retention_policy=all
}
python_install_all() {

View File

@ -0,0 +1,176 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# please bump dev-python/ensurepip-pip along with this package!
DISTUTILS_USE_PEP517=setuptools
PYTHON_TESTED=( python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
PYTHON_REQ_USE="ssl(+),threads(+)"
inherit bash-completion-r1 distutils-r1
DESCRIPTION="The PyPA recommended tool for installing Python packages"
HOMEPAGE="
https://pip.pypa.io/en/stable/
https://pypi.org/project/pip/
https://github.com/pypa/pip/
"
SRC_URI="
https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
"
LICENSE="MIT"
# bundled deps
LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~sparc"
IUSE="test-rust"
# see src/pip/_vendor/vendor.txt
RDEPEND="
>=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
>=dev-python/distlib-0.3.8[${PYTHON_USEDEP}]
>=dev-python/distro-1.9.0[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.8[${PYTHON_USEDEP}]
>=dev-python/packaging-24.1[${PYTHON_USEDEP}]
>=dev-python/platformdirs-4.2.1[${PYTHON_USEDEP}]
>=dev-python/pyproject-hooks-1.0.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.32.0[${PYTHON_USEDEP}]
>=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
>=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-69.5.1[${PYTHON_USEDEP}]
>=dev-python/tenacity-8.2.3[${PYTHON_USEDEP}]
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
>=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
test? (
$(python_gen_cond_dep '
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheel
dev-python/freezegun[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
test-rust? (
dev-python/cryptography[${PYTHON_USEDEP}]
)
dev-vcs/git
' "${PYTHON_TESTED[@]}")
)
"
distutils_enable_tests pytest
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/pip-23.1-no-coverage.patch"
# https://github.com/pypa/pip/issues/12786 (and more)
"${FILESDIR}/pip-24.1-test-offline.patch"
# prepare to unbundle dependencies
"${FILESDIR}/pip-24.1-unbundle.patch"
)
distutils-r1_python_prepare_all
# unbundle dependencies
rm -r src/pip/_vendor || die
find -name '*.py' -exec sed -i \
-e 's:from pip\._vendor import:import:g' \
-e 's:from pip\._vendor\.:from :g' \
{} + || die
if use test; then
local wheels=(
"${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
)
mkdir tests/data/common_wheels/ || die
cp "${wheels[@]}" tests/data/common_wheels/ || die
fi
}
python_compile_all() {
# 'pip completion' command embeds full $0 into completion script, which confuses
# 'complete' and causes QA warning when running as "${PYTHON} -m pip".
# This trick sets correct $0 while still calling just installed pip.
local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
"${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
"${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
}
python_test() {
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Skipping tests on ${EPYTHON}"
return 0
fi
local EPYTEST_DESELECT=(
tests/functional/test_inspect.py::test_inspect_basic
# Internet
tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
tests/functional/test_install.py::test_double_install_fail
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
# broken by system site-packages use
tests/functional/test_check.py::test_basic_check_clean
tests/functional/test_check.py::test_check_skip_work_dir_pkg
tests/functional/test_check.py::test_check_complicated_name_clean
tests/functional/test_check.py::test_check_development_versions_are_also_considered
tests/functional/test_freeze.py::test_freeze_with_setuptools
tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
tests/functional/test_uninstall.py::test_basic_uninstall_distutils
tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
# broken by unbundling
"tests/functional/test_debug.py::test_debug[vendored library versions:]"
tests/functional/test_debug.py::test_debug__library_versions
tests/functional/test_python_option.py::test_python_interpreter
tests/functional/test_uninstall.py::test_uninstall_non_local_distutils
)
local EPYTEST_IGNORE=(
# requires proxy.py
tests/functional/test_proxy.py
)
if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/functional/test_install.py::test_install_sends_client_cert
tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
)
fi
case ${EPYTHON} in
python3.10)
EPYTEST_DESELECT+=(
# no clue why they fail
)
;;
esac
local -x PIP_DISABLE_PIP_VERSION_CHECK=1
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local EPYTEST_XDIST=1
epytest -m "not network" -o tmp_path_retention_policy=all
}
python_install_all() {
local DOCS=( AUTHORS.txt docs/html/**/*.rst )
distutils-r1_python_install_all
newbashcomp completion.bash pip
insinto /usr/share/zsh/site-functions
newins completion.zsh _pip
}

View File

@ -0,0 +1,176 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# please bump dev-python/ensurepip-pip along with this package!
DISTUTILS_USE_PEP517=setuptools
PYTHON_TESTED=( python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
PYTHON_REQ_USE="ssl(+),threads(+)"
inherit bash-completion-r1 distutils-r1
DESCRIPTION="The PyPA recommended tool for installing Python packages"
HOMEPAGE="
https://pip.pypa.io/en/stable/
https://pypi.org/project/pip/
https://github.com/pypa/pip/
"
SRC_URI="
https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
"
LICENSE="MIT"
# bundled deps
LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc64 ~riscv ~sparc ~x86"
IUSE="test-rust"
# see src/pip/_vendor/vendor.txt
RDEPEND="
>=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
>=dev-python/distlib-0.3.8[${PYTHON_USEDEP}]
>=dev-python/distro-1.9.0[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.8[${PYTHON_USEDEP}]
>=dev-python/packaging-24.1[${PYTHON_USEDEP}]
>=dev-python/platformdirs-4.2.1[${PYTHON_USEDEP}]
>=dev-python/pyproject-hooks-1.0.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.32.0[${PYTHON_USEDEP}]
>=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
>=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-69.5.1[${PYTHON_USEDEP}]
>=dev-python/tenacity-8.2.3[${PYTHON_USEDEP}]
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
>=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
test? (
$(python_gen_cond_dep '
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheel
dev-python/freezegun[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
test-rust? (
dev-python/cryptography[${PYTHON_USEDEP}]
)
dev-vcs/git
' "${PYTHON_TESTED[@]}")
)
"
distutils_enable_tests pytest
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/pip-23.1-no-coverage.patch"
# https://github.com/pypa/pip/issues/12786 (and more)
"${FILESDIR}/pip-24.1-test-offline.patch"
# prepare to unbundle dependencies
"${FILESDIR}/pip-24.1-unbundle.patch"
)
distutils-r1_python_prepare_all
# unbundle dependencies
rm -r src/pip/_vendor || die
find -name '*.py' -exec sed -i \
-e 's:from pip\._vendor import:import:g' \
-e 's:from pip\._vendor\.:from :g' \
{} + || die
if use test; then
local wheels=(
"${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
)
mkdir tests/data/common_wheels/ || die
cp "${wheels[@]}" tests/data/common_wheels/ || die
fi
}
python_compile_all() {
# 'pip completion' command embeds full $0 into completion script, which confuses
# 'complete' and causes QA warning when running as "${PYTHON} -m pip".
# This trick sets correct $0 while still calling just installed pip.
local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
"${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
"${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
}
python_test() {
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Skipping tests on ${EPYTHON}"
return 0
fi
local EPYTEST_DESELECT=(
tests/functional/test_inspect.py::test_inspect_basic
# Internet
tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
tests/functional/test_install.py::test_double_install_fail
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
# broken by system site-packages use
tests/functional/test_check.py::test_basic_check_clean
tests/functional/test_check.py::test_check_skip_work_dir_pkg
tests/functional/test_check.py::test_check_complicated_name_clean
tests/functional/test_check.py::test_check_development_versions_are_also_considered
tests/functional/test_freeze.py::test_freeze_with_setuptools
tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
tests/functional/test_uninstall.py::test_basic_uninstall_distutils
tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
# broken by unbundling
"tests/functional/test_debug.py::test_debug[vendored library versions:]"
tests/functional/test_debug.py::test_debug__library_versions
tests/functional/test_python_option.py::test_python_interpreter
tests/functional/test_uninstall.py::test_uninstall_non_local_distutils
)
local EPYTEST_IGNORE=(
# requires proxy.py
tests/functional/test_proxy.py
)
if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/functional/test_install.py::test_install_sends_client_cert
tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
)
fi
case ${EPYTHON} in
python3.10)
EPYTEST_DESELECT+=(
# no clue why they fail
)
;;
esac
local -x PIP_DISABLE_PIP_VERSION_CHECK=1
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local EPYTEST_XDIST=1
epytest -m "not network" -o tmp_path_retention_policy=all
}
python_install_all() {
local DOCS=( AUTHORS.txt docs/html/**/*.rst )
distutils-r1_python_install_all
newbashcomp completion.bash pip
insinto /usr/share/zsh/site-functions
newins completion.zsh _pip
}

View File

@ -0,0 +1,171 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# please bump dev-python/ensurepip-pip along with this package!
DISTUTILS_USE_PEP517=setuptools
PYTHON_TESTED=( python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
PYTHON_REQ_USE="ssl(+),threads(+)"
inherit bash-completion-r1 distutils-r1
DESCRIPTION="The PyPA recommended tool for installing Python packages"
HOMEPAGE="
https://pip.pypa.io/en/stable/
https://pypi.org/project/pip/
https://github.com/pypa/pip/
"
SRC_URI="
https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
"
LICENSE="MIT"
# bundled deps
LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ppc ~ppc64 ~riscv ~sparc x86"
IUSE="test-rust"
# see src/pip/_vendor/vendor.txt
RDEPEND="
>=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
>=dev-python/distlib-0.3.8[${PYTHON_USEDEP}]
>=dev-python/distro-1.9.0[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.8[${PYTHON_USEDEP}]
>=dev-python/packaging-24.1[${PYTHON_USEDEP}]
>=dev-python/platformdirs-4.2.1[${PYTHON_USEDEP}]
>=dev-python/pyproject-hooks-1.0.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.32.0[${PYTHON_USEDEP}]
>=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
>=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-69.5.1[${PYTHON_USEDEP}]
>=dev-python/tenacity-8.2.3[${PYTHON_USEDEP}]
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
>=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
test? (
$(python_gen_cond_dep '
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheel
dev-python/freezegun[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
test-rust? (
dev-python/cryptography[${PYTHON_USEDEP}]
)
dev-vcs/git
' "${PYTHON_TESTED[@]}")
)
"
distutils_enable_tests pytest
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/pip-23.1-no-coverage.patch"
# prepare to unbundle dependencies
"${FILESDIR}/pip-24.1-unbundle.patch"
)
distutils-r1_python_prepare_all
# unbundle dependencies
rm -r src/pip/_vendor || die
find -name '*.py' -exec sed -i \
-e 's:from pip\._vendor import:import:g' \
-e 's:from pip\._vendor\.:from :g' \
{} + || die
if use test; then
local wheels=(
"${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
)
mkdir tests/data/common_wheels/ || die
cp "${wheels[@]}" tests/data/common_wheels/ || die
fi
}
python_compile_all() {
# 'pip completion' command embeds full $0 into completion script, which confuses
# 'complete' and causes QA warning when running as "${PYTHON} -m pip".
# This trick sets correct $0 while still calling just installed pip.
local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
"${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
"${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
}
python_test() {
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Skipping tests on ${EPYTHON}"
return 0
fi
local EPYTEST_DESELECT=(
tests/functional/test_inspect.py::test_inspect_basic
# Internet
tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
tests/functional/test_install.py::test_double_install_fail
tests/functional/test_install.py::test_install_sdist_links
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
# broken by system site-packages use
tests/functional/test_check.py::test_basic_check_clean
tests/functional/test_check.py::test_check_skip_work_dir_pkg
tests/functional/test_check.py::test_check_complicated_name_clean
tests/functional/test_check.py::test_check_development_versions_are_also_considered
tests/functional/test_freeze.py::test_freeze_with_setuptools
tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
tests/functional/test_uninstall.py::test_basic_uninstall_distutils
tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
# broken by unbundling
"tests/functional/test_debug.py::test_debug[vendored library versions:]"
tests/functional/test_debug.py::test_debug__library_versions
tests/functional/test_python_option.py::test_python_interpreter
tests/functional/test_uninstall.py::test_uninstall_non_local_distutils
)
local EPYTEST_IGNORE=(
# requires proxy.py
tests/functional/test_proxy.py
)
if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/functional/test_install.py::test_install_sends_client_cert
tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
)
fi
local -x PIP_DISABLE_PIP_VERSION_CHECK=1
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local EPYTEST_XDIST=1
# rerunfailures because test suite breaks if packages are installed
# in parallel
epytest -m "not network" -o tmp_path_retention_policy=all \
-p rerunfailures --reruns=5
}
python_install_all() {
local DOCS=( AUTHORS.txt docs/html/**/*.rst )
distutils-r1_python_install_all
newbashcomp completion.bash pip
insinto /usr/share/zsh/site-functions
newins completion.zsh _pip
}

View File

@ -0,0 +1,137 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# please bump dev-python/ensurepip-pip along with this package!
DISTUTILS_USE_PEP517=setuptools
PYTHON_TESTED=( python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
PYTHON_REQ_USE="ssl(+),threads(+)"
inherit bash-completion-r1 distutils-r1
DESCRIPTION="The PyPA recommended tool for installing Python packages"
HOMEPAGE="
https://pip.pypa.io/en/stable/
https://pypi.org/project/pip/
https://github.com/pypa/pip/
"
SRC_URI="
https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
"
LICENSE="MIT"
# bundled deps
LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="test-rust"
RDEPEND="
>=dev-python/setuptools-39.2.0[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
test? (
$(python_gen_cond_dep '
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheel
dev-python/freezegun[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
test-rust? (
dev-python/cryptography[${PYTHON_USEDEP}]
)
' "${PYTHON_TESTED[@]}")
)
"
distutils_enable_tests pytest
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/pip-23.1-no-coverage.patch"
# https://github.com/pypa/pip/issues/12786 (and more)
"${FILESDIR}/pip-24.1-test-offline.patch"
)
distutils-r1_python_prepare_all
if use test; then
local wheels=(
"${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
)
mkdir tests/data/common_wheels/ || die
cp "${wheels[@]}" tests/data/common_wheels/ || die
fi
}
python_compile_all() {
# 'pip completion' command embeds full $0 into completion script, which confuses
# 'complete' and causes QA warning when running as "${PYTHON} -m pip".
# This trick sets correct $0 while still calling just installed pip.
local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
"${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
"${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
}
python_test() {
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Skipping tests on ${EPYTHON}"
return 0
fi
local EPYTEST_DESELECT=(
tests/functional/test_inspect.py::test_inspect_basic
# Internet
tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
tests/functional/test_install.py::test_double_install_fail
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
)
local EPYTEST_IGNORE=(
# requires proxy.py
tests/functional/test_proxy.py
)
if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/functional/test_install.py::test_install_sends_client_cert
tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
)
fi
case ${EPYTHON} in
python3.10)
EPYTEST_DESELECT+=(
# no clue why they fail
tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
)
;;
esac
local -x PIP_DISABLE_PIP_VERSION_CHECK=1
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local EPYTEST_XDIST=1
epytest -m "not network" -o tmp_path_retention_policy=all
}
python_install_all() {
local DOCS=( AUTHORS.txt docs/html/**/*.rst )
distutils-r1_python_install_all
newbashcomp completion.bash pip
insinto /usr/share/zsh/site-functions
newins completion.zsh _pip
}

View File

@ -0,0 +1,171 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# please bump dev-python/ensurepip-pip along with this package!
DISTUTILS_USE_PEP517=setuptools
PYTHON_TESTED=( python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
PYTHON_REQ_USE="ssl(+),threads(+)"
inherit bash-completion-r1 distutils-r1
DESCRIPTION="The PyPA recommended tool for installing Python packages"
HOMEPAGE="
https://pip.pypa.io/en/stable/
https://pypi.org/project/pip/
https://github.com/pypa/pip/
"
SRC_URI="
https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${P}.gh.tar.gz
"
LICENSE="MIT"
# bundled deps
LICENSE+=" Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MPL-2.0 PSF-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~riscv ~sparc ~x86"
IUSE="test-rust"
# see src/pip/_vendor/vendor.txt
RDEPEND="
>=dev-python/cachecontrol-0.14.0[${PYTHON_USEDEP}]
>=dev-python/distlib-0.3.8[${PYTHON_USEDEP}]
>=dev-python/distro-1.9.0[${PYTHON_USEDEP}]
>=dev-python/msgpack-1.0.8[${PYTHON_USEDEP}]
>=dev-python/packaging-24.1[${PYTHON_USEDEP}]
>=dev-python/platformdirs-4.2.1[${PYTHON_USEDEP}]
>=dev-python/pyproject-hooks-1.0.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.32.0[${PYTHON_USEDEP}]
>=dev-python/rich-13.7.1[${PYTHON_USEDEP}]
>=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}]
>=dev-python/setuptools-69.5.1[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
' 3.10)
>=dev-python/truststore-0.9.1[${PYTHON_USEDEP}]
>=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
"
BDEPEND="
${RDEPEND}
test? (
$(python_gen_cond_dep '
dev-python/ensurepip-setuptools
dev-python/ensurepip-wheel
dev-python/freezegun[${PYTHON_USEDEP}]
dev-python/pretend[${PYTHON_USEDEP}]
dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
dev-python/scripttest[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
dev-python/virtualenv[${PYTHON_USEDEP}]
dev-python/werkzeug[${PYTHON_USEDEP}]
dev-python/wheel[${PYTHON_USEDEP}]
test-rust? (
dev-python/cryptography[${PYTHON_USEDEP}]
)
dev-vcs/git
' "${PYTHON_TESTED[@]}")
)
"
distutils_enable_tests pytest
python_prepare_all() {
local PATCHES=(
"${FILESDIR}/pip-23.1-no-coverage.patch"
# prepare to unbundle dependencies
"${FILESDIR}/pip-24.1-unbundle.patch"
)
distutils-r1_python_prepare_all
# unbundle dependencies
rm -r src/pip/_vendor || die
find -name '*.py' -exec sed -i \
-e 's:from pip\._vendor import:import:g' \
-e 's:from pip\._vendor\.:from :g' \
{} + || die
if use test; then
local wheels=(
"${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl
)
mkdir tests/data/common_wheels/ || die
cp "${wheels[@]}" tests/data/common_wheels/ || die
fi
}
python_compile_all() {
# 'pip completion' command embeds full $0 into completion script, which confuses
# 'complete' and causes QA warning when running as "${PYTHON} -m pip".
# This trick sets correct $0 while still calling just installed pip.
local pipcmd='import sys; sys.argv[0] = "pip"; __file__ = ""; from pip._internal.cli.main import main; sys.exit(main())'
"${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die
"${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die
}
python_test() {
if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
einfo "Skipping tests on ${EPYTHON}"
return 0
fi
local EPYTEST_DESELECT=(
tests/functional/test_inspect.py::test_inspect_basic
# Internet
tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist
tests/functional/test_install.py::test_double_install_fail
tests/functional/test_install.py::test_install_sdist_links
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
# broken by system site-packages use
tests/functional/test_check.py::test_basic_check_clean
tests/functional/test_check.py::test_check_skip_work_dir_pkg
tests/functional/test_check.py::test_check_complicated_name_clean
tests/functional/test_check.py::test_check_development_versions_are_also_considered
tests/functional/test_freeze.py::test_freeze_with_setuptools
tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip
tests/functional/test_uninstall.py::test_basic_uninstall_distutils
tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup
tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers
# broken by unbundling
"tests/functional/test_debug.py::test_debug[vendored library versions:]"
tests/functional/test_debug.py::test_debug__library_versions
tests/functional/test_python_option.py::test_python_interpreter
tests/functional/test_uninstall.py::test_uninstall_non_local_distutils
)
local EPYTEST_IGNORE=(
# requires proxy.py
tests/functional/test_proxy.py
)
if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/functional/test_install.py::test_install_sends_client_cert
tests/functional/test_install_config.py::test_do_not_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_authentication
tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed
)
fi
local -x PIP_DISABLE_PIP_VERSION_CHECK=1
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local EPYTEST_XDIST=1
# rerunfailures because test suite breaks if packages are installed
# in parallel
epytest -m "not network" -o tmp_path_retention_policy=all \
-p rerunfailures --reruns=5
}
python_install_all() {
local DOCS=( AUTHORS.txt docs/html/**/*.rst )
distutils-r1_python_install_all
newbashcomp completion.bash pip
insinto /usr/share/zsh/site-functions
newins completion.zsh _pip
}

View File

@ -0,0 +1 @@
DIST poetry-core-1.9.0.gh.tar.gz 371033 BLAKE2B 67e4674bcc45f6ce1737a26d8f1fd1ce6e6469d692cabe461fb2959b03ab3ca26b9e3848d9cbf533c5fd9bf7d75ac8b70a6aad0cce1930472971cc1ad530aedf SHA512 a2d63480f0df36fabe61c234377a4fa9ea0a1ddce449006162d6e49e849c92ad9c77d0a93aba7c51561bac16a77d5db00a95594bd5e2de328e1664f3f41f689b

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">poetry-core</remote-id>
<remote-id type="github">python-poetry/poetry-core</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,74 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=standalone
PYTHON_TESTED=( pypy3 python3_{10..13} )
PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
inherit distutils-r1
DESCRIPTION="Poetry PEP 517 Build Backend"
HOMEPAGE="
https://github.com/python-poetry/poetry-core/
https://pypi.org/project/poetry-core/
"
SRC_URI="
https://github.com/python-poetry/poetry-core/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
# check inside vendors/pyproject.toml
# (note that some are indirect deps)
RDEPEND="
>=dev-python/fastjsonschema-2.18.0[${PYTHON_USEDEP}]
>=dev-python/lark-1.1.3[${PYTHON_USEDEP}]
>=dev-python/packaging-22.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
' 3.10)
"
BDEPEND="
${RDEPEND}
test? (
$(python_gen_cond_dep '
dev-python/build[${PYTHON_USEDEP}]
dev-python/pytest-mock[${PYTHON_USEDEP}]
dev-python/tomli-w[${PYTHON_USEDEP}]
>=dev-python/virtualenv-20.21[${PYTHON_USEDEP}]
dev-vcs/git
' "${PYTHON_TESTED[@]}")
)
"
distutils_enable_tests pytest
src_prepare() {
# remove vendoring of dependencies
rm -r src/poetry/core/_vendor || die
sed -e '/__vendor_site__/d' -i src/poetry/core/__init__.py || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_DESELECT=(
# These "fail" bacause of glob file path resulting from newer versions
# in our tree than vendored. But those don't affect anything.
tests/masonry/builders/test_sdist.py::test_default_with_excluded_data
tests/masonry/builders/test_wheel.py::test_default_src_with_excluded_data
)
if ! has "${EPYTHON/./_}" "${PYTHON_TESTED[@]}"; then
einfo "Skipping tests on ${EPYTHON} (unported deps)"
return
fi
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest -p pytest_mock
}

View File

@ -0,0 +1 @@
DIST pyproject-hooks-1.1.0.gh.tar.gz 18774 BLAKE2B e6b376188655a5bc188567f412c22f8224209612c4fb0332f8c0c441180c18589139549139957834b3359bf3ced961e22f97e2449edc354047afaa6d2eff58d7 SHA512 256028d13adbe35126a63431a2a49e0c48adddce5ffc3ff2eebad368eee7ce52591ecfd8a8526876de20bc59dfc87156533d6a97b55538a739873e60f9509eff

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">pyproject-hooks</remote-id>
<remote-id type="github">pypa/pyproject-hooks</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,42 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=flit
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
DESCRIPTION="Wrappers to build Python packages using PEP 517 hooks"
HOMEPAGE="
https://pypi.org/project/pyproject-hooks/
https://github.com/pypa/pyproject-hooks/
https://pyproject-hooks.readthedocs.io/
"
SRC_URI="
https://github.com/pypa/pyproject-hooks/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
BDEPEND="
test? (
dev-python/testpath[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
dev-python/tomli[${PYTHON_USEDEP}]
' 3.10)
)
"
distutils_enable_tests pytest
EPYTEST_DESELECT=(
# fails due to setuptools 70.1
# https://bugs.gentoo.org/936052
# https://github.com/pypa/pyproject-hooks/issues/203
tests/test_call_hooks.py::test_setup_py
)

View File

@ -0,0 +1 @@
DIST requests-2.32.3.tar.gz 131218 BLAKE2B c36bd80e0544e83b80c001e6bfdde7b8552e65b888d44d781f95d5a6302dd34dfd4368e18dbfeab3a014d7170946c502e3bf3a6dbd027a60a2f0f535c674d75c SHA512 20d413597ff4803a62156ada25ef2e8a5edd0d4dbf7d79cc7fcd88d51a76e019a7dacf41d7c3d546306f37c506ede68f16b9afea57c918db64e702382b1ae420

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<longdescription lang="en">
Most existing Python modules for sending HTTP requests are extremely verbose and
cumbersome. Pythons built-in urllib2 module provides most of the HTTP
capabilities you should need, but the API is thoroughly broken. This library is
designed to make HTTP requests easy for developers.
</longdescription>
<stabilize-allarches/>
<upstream>
<remote-id type="github">psf/requests</remote-id>
<remote-id type="pypi">requests</remote-id>
<remote-id type="cpe">cpe:/a:python-requests:requests</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,82 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
PYTHON_REQ_USE="threads(+)"
inherit distutils-r1 pypi
DESCRIPTION="HTTP library for human beings"
HOMEPAGE="
https://requests.readthedocs.io/
https://github.com/psf/requests/
https://pypi.org/project/requests/
"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
IUSE="socks5 test-rust"
RDEPEND="
>=dev-python/certifi-2017.4.17[${PYTHON_USEDEP}]
<dev-python/charset-normalizer-4[${PYTHON_USEDEP}]
<dev-python/idna-4[${PYTHON_USEDEP}]
<dev-python/urllib3-3[${PYTHON_USEDEP}]
socks5? ( >=dev-python/PySocks-1.5.6[${PYTHON_USEDEP}] )
"
BDEPEND="
test? (
>=dev-python/pytest-httpbin-2.0.0[${PYTHON_USEDEP}]
dev-python/pytest-mock[${PYTHON_USEDEP}]
>=dev-python/PySocks-1.5.6[${PYTHON_USEDEP}]
test-rust? (
dev-python/trustme[${PYTHON_USEDEP}]
)
)
"
distutils_enable_tests pytest
python_test() {
local EPYTEST_DESELECT=(
# Internet (doctests)
requests/__init__.py::requests
requests/api.py::requests.api.request
requests/models.py::requests.models.PreparedRequest
requests/sessions.py::requests.sessions.Session
# require IPv4 interface in 10.* range
tests/test_requests.py::TestTimeout::test_connect_timeout
tests/test_requests.py::TestTimeout::test_total_timeout_connect
# TODO: openssl?
tests/test_requests.py::TestRequests::test_pyopenssl_redirect
# flask-2
tests/test_requests.py::TestRequests::test_cookie_sent_on_redirect
tests/test_requests.py::TestRequests::test_cookie_removed_on_expire
tests/test_requests.py::TestPreparingURLs::test_redirecting_to_bad_url
)
case ${EPYTHON} in
python3.13)
;&
python3.12)
EPYTEST_DESELECT+=(
# different repr()
requests/utils.py::requests.utils.from_key_val_list
)
;;
esac
if ! has_version "dev-python/trustme[${PYTHON_USEDEP}]"; then
EPYTEST_DESELECT+=(
tests/test_requests.py::TestRequests::test_https_warnings
)
fi
epytest
}

View File

@ -0,0 +1 @@
DIST resolvelib-1.0.1.gh.tar.gz 769608 BLAKE2B 7715f61d262cb79ce08f0431650e6213def4582a0774cf36dab722d88013f7bc9c72a31a957d3782e35b315158982c3311fe3e06e26bbf9040fa96b239934661 SHA512 a35f7fdbc3aba5b44fdf6b9c55b082156ca641dfe5825611be6364622bcaaf45faafa2c45bdd13d1b5723a55732759a806905ab4b6f366fba0474d1f808d91bc

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<upstream>
<remote-id type="pypi">resolvelib</remote-id>
<remote-id type="github">sarugaku/resolvelib</remote-id>
<bugs-to>https://github.com/sarugaku/resolvelib/issues</bugs-to>
</upstream>
<longdescription lang="en">
ResolveLib at the highest level provides a Resolver class that includes
dependency resolution logic. You give it some things, and a little
information on how it should interact with them, and it will spit out
a resolution result.
</longdescription>
</pkgmetadata>

View File

@ -0,0 +1,33 @@
# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1
DESCRIPTION="Resolve abstract dependencies into concrete ones"
HOMEPAGE="
https://github.com/sarugaku/resolvelib/
https://pypi.org/project/resolvelib/
"
SRC_URI="
https://github.com/sarugaku/resolvelib/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="ISC"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ppc ~ppc64 ~riscv ~sparc x86"
BDEPEND="
test? (
dev-python/commentjson[${PYTHON_USEDEP}]
dev-python/packaging[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest

View File

@ -0,0 +1,2 @@
DIST rich-13.4.2.gh.tar.gz 15063000 BLAKE2B f65079440bc7d89a3ff03be01fa71e076493ae50f22ae8781be2448a7ff2769c174d6654db3a835d34720c34cd8cbecfdd6b13e3064cf7fdcade71806563309d SHA512 17052a9fb0e1d89b31a00d8a719214719891d048fd805185b2d4258c8766130f44bf2280c9567bc162f3b34d9bf2eb7d747d6a37d910c81cd53d3003b51f70bd
DIST rich-13.7.1.gh.tar.gz 15058064 BLAKE2B 6fad18bf0a4e4f72e530c78db7a498f27dd8c9a7b9b17ca5ef12a94bbe513857f3c42d4903f8ebbfe8907727cddaf290f08862c27efb29db8aaf70c7bcb13ace SHA512 0c69101bc6c2a238a4c516812cda08299115b903b8282ee348b45b212a88fcbfbf69d11a3705a97bdb6192988ee3047804bb5b52b7950d860542cde8ce2d4bd2

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>python@gentoo.org</email>
<name>Python</name>
</maintainer>
<stabilize-allarches/>
<upstream>
<remote-id type="pypi">rich</remote-id>
<remote-id type="github">Textualize/rich</remote-id>
</upstream>
</pkgmetadata>

View File

@ -0,0 +1,65 @@
# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( python3_{10..12} pypy3 )
inherit distutils-r1 optfeature
DESCRIPTION="Python library for rendering rich text, tables, etc. to the terminal"
HOMEPAGE="
https://github.com/Textualize/rich/
https://pypi.org/project/rich/
"
SRC_URI="
https://github.com/Textualize/rich/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
RDEPEND="
dev-python/colorama[${PYTHON_USEDEP}]
>=dev-python/markdown-it-py-2.2.0[${PYTHON_USEDEP}]
>=dev-python/pygments-2.13.0[${PYTHON_USEDEP}]
"
distutils_enable_tests pytest
python_test() {
local -x COLUMNS=80
local EPYTEST_DESELECT=(
# TODO
tests/test_console.py::test_size_can_fall_back_to_std_descriptors
tests/test_inspect.py::test_inspect_integer_with_methods_python38_and_python39
# pygments?
tests/test_syntax.py::test_python_render_simple_indent_guides
tests/test_syntax.py::test_python_render_line_range_indent_guides
)
# version-specific output -- the usual deal
case ${EPYTHON} in
pypy3)
EPYTEST_DESELECT+=(
# pypy3.10, to be more precise
tests/test_inspect.py::test_inspect_integer_with_methods_python310only
)
;;
python3.12)
EPYTEST_DESELECT+=(
tests/test_inspect.py::test_inspect_builtin_function_except_python311
tests/test_inspect.py::test_inspect_integer_with_methods_python310only
tests/test_inspect.py::test_inspect_integer_with_methods_python311_and_above
tests/test_pretty.py::test_attrs_broken
)
;;
esac
epytest -p no:pytest-qt
}
pkg_postinst() {
optfeature "integration with HTML widgets for Jupyter" dev-python/ipywidgets
}

View File

@ -0,0 +1,74 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( python3_{10..13} pypy3 )
inherit distutils-r1 optfeature
DESCRIPTION="Python library for rendering rich text, tables, etc. to the terminal"
HOMEPAGE="
https://github.com/Textualize/rich/
https://pypi.org/project/rich/
"
SRC_URI="
https://github.com/Textualize/rich/archive/v${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86"
RDEPEND="
dev-python/colorama[${PYTHON_USEDEP}]
>=dev-python/markdown-it-py-2.2.0[${PYTHON_USEDEP}]
>=dev-python/pygments-2.13.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
>=dev-python/attrs-21.4.0[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
python_test() {
local EPYTEST_DESELECT=(
# TODO
tests/test_console.py::test_size_can_fall_back_to_std_descriptors
# TODO: segfault in recursion (PyQt6 interfering?)
tests/test_traceback.py::test_recursive
)
# version-specific output -- the usual deal
case ${EPYTHON} in
pypy3)
EPYTEST_DESELECT+=(
# pypy3.10, to be more precise
tests/test_inspect.py::test_inspect_integer_with_methods_python310only
)
;;
python3.13)
EPYTEST_DESELECT+=(
tests/test_inspect.py::test_inspect_builtin_function_except_python311
tests/test_inspect.py::test_inspect_integer_with_methods_python38_and_python39
tests/test_inspect.py::test_inspect_integer_with_methods_python310only
tests/test_inspect.py::test_inspect_integer_with_methods_python311
tests/test_pretty.py::test_pretty_dataclass
tests/test_pretty.py::test_reference_cycle_dataclass
tests/test_pretty.py::test_max_depth_dataclass
tests/test_pretty.py::test_attrs_broken
)
;;
esac
local -x COLUMNS=80
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
epytest
}
pkg_postinst() {
optfeature "integration with HTML widgets for Jupyter" dev-python/ipywidgets
}

Some files were not shown because too many files have changed in this diff Show More