diff options
| author | Liguros - Gitlab CI/CD [feature/flatten] <gitlab@liguros.net> | 2020-09-24 18:29:19 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [feature/flatten] <gitlab@liguros.net> | 2020-09-24 18:29:19 +0000 |
| commit | 2ae6e775712c12adb693178c6b5c104a64091e24 (patch) | |
| tree | 9709520c2ac99cea024305cfc9799024fd0be9b0 /dev-python | |
| parent | 61f09dac1e93ecda99dd048d4d59eee94691c7ec (diff) | |
| download | baldeagleos-repo-2ae6e775712c12adb693178c6b5c104a64091e24.tar.gz baldeagleos-repo-2ae6e775712c12adb693178c6b5c104a64091e24.tar.xz baldeagleos-repo-2ae6e775712c12adb693178c6b5c104a64091e24.zip | |
Updating liguros repo
Diffstat (limited to 'dev-python')
61 files changed, 1459 insertions, 60 deletions
diff --git a/dev-python/PyGithub/Manifest b/dev-python/PyGithub/Manifest index 053c37d164bd..f34b274a7c02 100644 --- a/dev-python/PyGithub/Manifest +++ b/dev-python/PyGithub/Manifest @@ -1,2 +1 @@ -DIST PyGithub-1.51.gh.tar.gz 2950990 BLAKE2B 214014b8205d954c559f2d19a38c7bc93800f40500c294397f16d55a4a027b7827910c93d98b6f5dd867bb0049ad1c9618c08ff72996f3717480ad17ce0ec64d SHA512 617b7bbc1fbd680735d5a57910ac1863cf67d9b2afc037d20fbd140a32aaa146164a76f73d76f2395aff1eee1fb13eac7a146c9cd05791b27db9a06a28d520e0 DIST PyGithub-1.53.gh.tar.gz 3026570 BLAKE2B 7204c5934b94d5629b38e841a9c9011ea561ca8aa8d3d169915975fb02fe8db059fcb521d11bbb2350a806457d98abbfe36a19c4e5f633c82cdf06b8b7203c6d SHA512 f98d013d5fdf31ee59405c52edb35942ca5a3d2c1ff9653c71f03871bb28d0c247412bfc2593991026ddb989e1a33dfe91d19b4ebb1e89386b54493d51071768 diff --git a/dev-python/PyGithub/PyGithub-1.51.ebuild b/dev-python/PyGithub/PyGithub-1.51.ebuild deleted file mode 100644 index ecc5b01f7708..000000000000 --- a/dev-python/PyGithub/PyGithub-1.51.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -PYTHON_COMPAT=( python3_{5,6,7,8,9} ) - -inherit distutils-r1 - -DESCRIPTION="Python library to access the Github API v3" -HOMEPAGE="https://github.com/PyGithub/PyGithub/" -# Use github since pypi is missing test data -SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz" - -LICENSE="LGPL-3+" -SLOT="0" -KEYWORDS="amd64 x86" - -RDEPEND="dev-python/deprecated[${PYTHON_USEDEP}] - dev-python/pyjwt[${PYTHON_USEDEP}] - >=dev-python/requests-2.14.0[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}]" -BDEPEND=" - test? ( - dev-python/cryptography[${PYTHON_USEDEP}] - >=dev-python/httpretty-0.9.6[${PYTHON_USEDEP}] - )" - -distutils_enable_tests pytest diff --git a/dev-python/PyQt5/PyQt5-5.14.2.ebuild b/dev-python/PyQt5/PyQt5-5.14.2.ebuild index 6b80e9f1f794..afd89e2e83a5 100644 --- a/dev-python/PyQt5/PyQt5-5.14.2.ebuild +++ b/dev-python/PyQt5/PyQt5-5.14.2.ebuild @@ -64,7 +64,10 @@ RDEPEND=" >=dev-qt/qtxml-${QT_PV} bluetooth? ( >=dev-qt/qtbluetooth-${QT_PV} ) dbus? ( - dev-python/dbus-python[${PYTHON_USEDEP}] + python_targets_python2_7? ( + dev-python/dbus-python2[python_targets_python2_7] + ) + dev-python/dbus-python[python_targets_python3_6(-)?,python_targets_python3_7(-)?,python_targets_python3_8(-)?,python_targets_python3_9(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-),-python_single_target_python3_9(-)] >=dev-qt/qtdbus-${QT_PV} ) declarative? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] ) diff --git a/dev-python/PyQt5/PyQt5-5.15.0.ebuild b/dev-python/PyQt5/PyQt5-5.15.0.ebuild index ae0ffbe7b6ad..2c9d324fc9a0 100644 --- a/dev-python/PyQt5/PyQt5-5.15.0.ebuild +++ b/dev-python/PyQt5/PyQt5-5.15.0.ebuild @@ -64,7 +64,10 @@ RDEPEND=" >=dev-qt/qtxml-${QT_PV} bluetooth? ( >=dev-qt/qtbluetooth-${QT_PV} ) dbus? ( - dev-python/dbus-python[${PYTHON_USEDEP}] + python_targets_python2_7? ( + dev-python/dbus-python2[python_targets_python2_7] + ) + dev-python/dbus-python[python_targets_python3_6(-)?,python_targets_python3_7(-)?,python_targets_python3_8(-)?,python_targets_python3_9(-)?,-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_single_target_python3_8(-),-python_single_target_python3_9(-)] >=dev-qt/qtdbus-${QT_PV} ) declarative? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] ) diff --git a/dev-python/cffi-python2/Manifest b/dev-python/cffi-python2/Manifest new file mode 100644 index 000000000000..380fea6a6ea3 --- /dev/null +++ b/dev-python/cffi-python2/Manifest @@ -0,0 +1 @@ +DIST cffi-1.14.0.tar.gz 463065 BLAKE2B 4d1e8a92241db801848ef8bd05ea15a31c7f61ea426ce4da184aff00df786348d2c76de9dc48898c814478aed9750b665868df24ad39435062cd7e1c84163e52 SHA512 4c5451eeede1d48a8f4b40e25b845ad1863b8bf3bd39624e6c693c2800d89a13efedc4c43b37e317a035613bffc2e3fd5f7e583c46cb283cb5cb930356f86253 diff --git a/dev-python/cffi-python2/cffi-python2-1.14.0-r2.ebuild b/dev-python/cffi-python2/cffi-python2-1.14.0-r2.ebuild new file mode 100644 index 000000000000..912054989aee --- /dev/null +++ b/dev-python/cffi-python2/cffi-python2-1.14.0-r2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# DO NOT ADD pypy to PYTHON_COMPAT +# pypy bundles a modified version of cffi. Use python_gen_cond_dep instead. +DISTUTILS_USE_SETUPTOOLS=rdepend +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 toolchain-funcs +MY_PN=cffi +MY_P=$MY_PN-$PV + +DESCRIPTION="Foreign Function Interface for Python calling C code" +HOMEPAGE="https://cffi.readthedocs.io/ https://pypi.org/project/cffi/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0/${PV}" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +IUSE="test" +RESTRICT="test" + +DEPEND="dev-libs/libffi:=" +RDEPEND="${DEPEND} + !dev-python/cffi[python_targets_python2_7] + dev-python/pycparser[${PYTHON_USEDEP}]" +BDEPEND="${RDEPEND} + virtual/pkgconfig" + +distutils_enable_sphinx doc/source + +PATCHES=( + "${FILESDIR}"/cffi-0.14.0-g-line.patch +) + +S="${WORKDIR}/${MY_PN}-${PV}" + +src_configure() { + tc-export PKG_CONFIG +} + + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/cffi-python2/files/cffi-0.14.0-g-line.patch b/dev-python/cffi-python2/files/cffi-0.14.0-g-line.patch new file mode 100644 index 000000000000..45a1099dce27 --- /dev/null +++ b/dev-python/cffi-python2/files/cffi-0.14.0-g-line.patch @@ -0,0 +1,250 @@ +From 19ff1036043ae40ff3d8a2e1a6a793219e1ec378 Mon Sep 17 00:00:00 2001 +From: Armin Rigo <arigo@tunes.org> +Date: Tue, 26 May 2020 15:51:56 +0200 +Subject: [PATCH] Issue #454 + +Try harder to avoid #line directives confuse the rest of pre-parsing +--- + cffi/cparser.py | 37 ++++++++++++++++++++++++--- + testing/cffi0/test_parsing.py | 48 ++++++++++++++++++++++++++++++++++- + 2 files changed, 81 insertions(+), 4 deletions(-) + +diff --git a/cffi/cparser.py b/cffi/cparser.py +index d7069a73..d9784655 100644 +--- a/cffi/cparser.py ++++ b/cffi/cparser.py +@@ -29,6 +29,7 @@ _r_comment = re.compile(r"/\*.*?\*/|//([^\n\\]|\\.)*?$", + _r_define = re.compile(r"^\s*#\s*define\s+([A-Za-z_][A-Za-z_0-9]*)" + r"\b((?:[^\n\\]|\\.)*?)$", + re.DOTALL | re.MULTILINE) ++_r_line_directive = re.compile(r"^[ \t]*#[ \t]*line\b.*$", re.MULTILINE) + _r_partial_enum = re.compile(r"=\s*\.\.\.\s*[,}]|\.\.\.\s*\}") + _r_enum_dotdotdot = re.compile(r"__dotdotdot\d+__$") + _r_partial_array = re.compile(r"\[\s*\.\.\.\s*\]") +@@ -163,10 +164,37 @@ def _warn_for_non_extern_non_static_global_variable(decl): + "with C it should have a storage class specifier " + "(usually 'extern')" % (decl.name,)) + ++def _remove_line_directives(csource): ++ # _r_line_directive matches whole lines, without the final \n, if they ++ # start with '#line' with some spacing allowed. This function stores ++ # them away and replaces them with exactly the string '#line@N', where ++ # N is the index in the list 'line_directives'. ++ line_directives = [] ++ def replace(m): ++ i = len(line_directives) ++ line_directives.append(m.group()) ++ return '#line@%d' % i ++ csource = _r_line_directive.sub(replace, csource) ++ return csource, line_directives ++ ++def _put_back_line_directives(csource, line_directives): ++ def replace(m): ++ s = m.group() ++ if not s.startswith('#line@'): ++ raise AssertionError("unexpected #line directive " ++ "(should have been processed and removed") ++ return line_directives[int(s[6:])] ++ return _r_line_directive.sub(replace, csource) ++ + def _preprocess(csource): ++ # First, remove the lines of the form '#line N "filename"' because ++ # the "filename" part could confuse the rest ++ csource, line_directives = _remove_line_directives(csource) + # Remove comments. NOTE: this only work because the cdef() section +- # should not contain any string literal! +- csource = _r_comment.sub(' ', csource) ++ # should not contain any string literals (except in line directives)! ++ def replace_keeping_newlines(m): ++ return ' ' + m.group().count('\n') * '\n' ++ csource = _r_comment.sub(replace_keeping_newlines, csource) + # Remove the "#define FOO x" lines + macros = {} + for match in _r_define.finditer(csource): +@@ -219,7 +247,10 @@ def _preprocess(csource): + csource = _r_float_dotdotdot.sub(' __dotdotdotfloat__ ', csource) + # Replace all remaining "..." with the same name, "__dotdotdot__", + # which is declared with a typedef for the purpose of C parsing. +- return csource.replace('...', ' __dotdotdot__ '), macros ++ csource = csource.replace('...', ' __dotdotdot__ ') ++ # Finally, put back the line directives ++ csource = _put_back_line_directives(csource, line_directives) ++ return csource, macros + + def _common_type_names(csource): + # Look in the source for what looks like usages of types from the +diff --git a/testing/cffi0/test_parsing.py b/testing/cffi0/test_parsing.py +index 3fc3783a..5f2d7ec4 100644 +--- a/testing/cffi0/test_parsing.py ++++ b/testing/cffi0/test_parsing.py +@@ -174,7 +174,7 @@ def test_remove_line_continuation_comments(): + double // blah \\ + more comments + x(void); +- double // blah\\\\ ++ double // blah // blah\\\\ + y(void); + double // blah\\ \ + etc +@@ -185,6 +185,52 @@ def test_remove_line_continuation_comments(): + m.y + m.z + ++def test_dont_remove_comment_in_line_directives(): ++ ffi = FFI(backend=FakeBackend()) ++ e = py.test.raises(CDefError, ffi.cdef, """ ++ \t # \t line \t 8 \t "baz.c" \t ++ ++ some syntax error here ++ """) ++ assert str(e.value) == "parse error\nbaz.c:9:14: before: syntax" ++ # ++ e = py.test.raises(CDefError, ffi.cdef, """ ++ #line 7 "foo//bar.c" ++ ++ some syntax error here ++ """) ++ assert str(e.value) == "parse error\nfoo//bar.c:8:14: before: syntax" ++ ++def test_multiple_line_directives(): ++ ffi = FFI(backend=FakeBackend()) ++ e = py.test.raises(CDefError, ffi.cdef, ++ """ #line 5 "foo.c" ++ extern int xx; ++ #line 6 "bar.c" ++ extern int yy; ++ #line 7 "baz.c" ++ some syntax error here ++ #line 8 "yadda.c" ++ extern int zz; ++ """) ++ assert str(e.value) == "parse error\nbaz.c:7:14: before: syntax" ++ ++def test_commented_line_directive(): ++ ffi = FFI(backend=FakeBackend()) ++ e = py.test.raises(CDefError, ffi.cdef, """ ++ /* ++ #line 5 "foo.c" ++ */ ++ void xx(void); ++ ++ #line 6 "bar.c" ++ /* ++ #line 35 "foo.c" ++ */ ++ some syntax error ++ """) ++ assert str(e.value) == "parse error\nbar.c:9:14: before: syntax" ++ + def test_line_continuation_in_defines(): + ffi = FFI(backend=FakeBackend()) + ffi.cdef(""" +-- +2.26.2 + +From 31249d786c833d4960bbbf4e0d7f7bcaecf92d1f Mon Sep 17 00:00:00 2001 +From: Armin Rigo <arigo@tunes.org> +Date: Fri, 29 May 2020 10:27:40 +0200 +Subject: [PATCH] #454 + +Second try with '# NUMBER' instead of '#line NUMBER', as gcc seems to output +--- + cffi/cparser.py | 8 +++---- + testing/cffi0/test_parsing.py | 41 +++++++++++++++++++++++++++++++++++ + 2 files changed, 45 insertions(+), 4 deletions(-) + +diff --git a/cffi/cparser.py b/cffi/cparser.py +index d9784655..74830e91 100644 +--- a/cffi/cparser.py ++++ b/cffi/cparser.py +@@ -29,7 +29,7 @@ _r_comment = re.compile(r"/\*.*?\*/|//([^\n\\]|\\.)*?$", + _r_define = re.compile(r"^\s*#\s*define\s+([A-Za-z_][A-Za-z_0-9]*)" + r"\b((?:[^\n\\]|\\.)*?)$", + re.DOTALL | re.MULTILINE) +-_r_line_directive = re.compile(r"^[ \t]*#[ \t]*line\b.*$", re.MULTILINE) ++_r_line_directive = re.compile(r"^[ \t]*#[ \t]*(?:line|\d+)\b.*$", re.MULTILINE) + _r_partial_enum = re.compile(r"=\s*\.\.\.\s*[,}]|\.\.\.\s*\}") + _r_enum_dotdotdot = re.compile(r"__dotdotdot\d+__$") + _r_partial_array = re.compile(r"\[\s*\.\.\.\s*\]") +@@ -166,9 +166,9 @@ def _warn_for_non_extern_non_static_global_variable(decl): + + def _remove_line_directives(csource): + # _r_line_directive matches whole lines, without the final \n, if they +- # start with '#line' with some spacing allowed. This function stores +- # them away and replaces them with exactly the string '#line@N', where +- # N is the index in the list 'line_directives'. ++ # start with '#line' with some spacing allowed, or '#NUMBER'. This ++ # function stores them away and replaces them with exactly the string ++ # '#line@N', where N is the index in the list 'line_directives'. + line_directives = [] + def replace(m): + i = len(line_directives) +diff --git a/testing/cffi0/test_parsing.py b/testing/cffi0/test_parsing.py +index 5f2d7ec4..a5e45874 100644 +--- a/testing/cffi0/test_parsing.py ++++ b/testing/cffi0/test_parsing.py +@@ -199,6 +199,21 @@ def test_dont_remove_comment_in_line_directives(): + + some syntax error here + """) ++ # ++ assert str(e.value) == "parse error\nfoo//bar.c:8:14: before: syntax" ++ ffi = FFI(backend=FakeBackend()) ++ e = py.test.raises(CDefError, ffi.cdef, """ ++ \t # \t 8 \t "baz.c" \t ++ ++ some syntax error here ++ """) ++ assert str(e.value) == "parse error\nbaz.c:9:14: before: syntax" ++ # ++ e = py.test.raises(CDefError, ffi.cdef, """ ++ # 7 "foo//bar.c" ++ ++ some syntax error here ++ """) + assert str(e.value) == "parse error\nfoo//bar.c:8:14: before: syntax" + + def test_multiple_line_directives(): +@@ -214,6 +229,18 @@ def test_multiple_line_directives(): + extern int zz; + """) + assert str(e.value) == "parse error\nbaz.c:7:14: before: syntax" ++ # ++ e = py.test.raises(CDefError, ffi.cdef, ++ """ # 5 "foo.c" ++ extern int xx; ++ # 6 "bar.c" ++ extern int yy; ++ # 7 "baz.c" ++ some syntax error here ++ # 8 "yadda.c" ++ extern int zz; ++ """) ++ assert str(e.value) == "parse error\nbaz.c:7:14: before: syntax" + + def test_commented_line_directive(): + ffi = FFI(backend=FakeBackend()) +@@ -229,6 +256,20 @@ def test_commented_line_directive(): + */ + some syntax error + """) ++ # ++ assert str(e.value) == "parse error\nbar.c:9:14: before: syntax" ++ e = py.test.raises(CDefError, ffi.cdef, """ ++ /* ++ # 5 "foo.c" ++ */ ++ void xx(void); ++ ++ # 6 "bar.c" ++ /* ++ # 35 "foo.c" ++ */ ++ some syntax error ++ """) + assert str(e.value) == "parse error\nbar.c:9:14: before: syntax" + + def test_line_continuation_in_defines(): +-- +2.26.2 + diff --git a/dev-python/cffi-python2/metadata.xml b/dev-python/cffi-python2/metadata.xml new file mode 100644 index 000000000000..247fb9296b1c --- /dev/null +++ b/dev-python/cffi-python2/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <upstream> + <remote-id type="pypi">cffi</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/cookies/cookies-2.2.1-r1.ebuild b/dev-python/cookies/cookies-2.2.1-r1.ebuild index 25196c2dbef9..7459aaddfd3c 100644 --- a/dev-python/cookies/cookies-2.2.1-r1.ebuild +++ b/dev-python/cookies/cookies-2.2.1-r1.ebuild @@ -12,7 +12,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="MIT" SLOT="0" -KEYWORDS="amd64 arm arm64 hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" +KEYWORDS="amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux" PATCHES=( # https://gitlab.com/sashahart/cookies/merge_requests/2 diff --git a/dev-python/cryptography-python2/Manifest b/dev-python/cryptography-python2/Manifest new file mode 100644 index 000000000000..fa467877cf90 --- /dev/null +++ b/dev-python/cryptography-python2/Manifest @@ -0,0 +1,2 @@ +DIST cryptography-2.9.tar.gz 517211 BLAKE2B 3889812dadce01f09c509f5bcdf26405fd1cd2de7064cdbf0f68338894cf65dfe0c6a607867db614b35ad11da4546af2371cf59836dbbbd3037db84241cf71ec SHA512 7db2846b901e42ddc4caa9851235e5a0894ef702d4c4692eb60fcae17bc4e7833782a8001679ea41b78f9273d7d68a4b85810248590e12ca33cfade3208e2849 +DIST cryptography_vectors-2.9.tar.gz 35140661 BLAKE2B 870245659f6a64566f823116d8b4ba017981eb41148e9dcde9cac372eb6703a7b4580040b487cd8773160d5bd989fa9d5bb1788ac550b28e76bde8c9f6cd56c7 SHA512 025ed48855f182b926e3eeb5dca1033eb7f43c419bd6ea71accfed38b4d9ef4cbbf5af60bc28a39e3d6723de2d4091bd226e30c0e572a2e0d43a95a12c1bb7a2 diff --git a/dev-python/cryptography-python2/cryptography-python2-2.9-r1.ebuild b/dev-python/cryptography-python2/cryptography-python2-2.9-r1.ebuild new file mode 100644 index 000000000000..9d93057b53ec --- /dev/null +++ b/dev-python/cryptography-python2/cryptography-python2-2.9-r1.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 flag-o-matic +MY_PN=cryptography +MY_P=$MY_PN-$PV + +VEC_P=cryptography_vectors-${PV} +DESCRIPTION="Library providing cryptographic recipes and primitives" +HOMEPAGE="https://github.com/pyca/cryptography/ https://pypi.org/project/cryptography/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz + test? ( mirror://pypi/c/cryptography_vectors/${VEC_P}.tar.gz )" + +LICENSE="|| ( Apache-2.0 BSD )" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="libressl idna test" +RESTRICT="test" + +# the openssl 1.0.2l-r1 needs to be updated again :( +# It'd theb be able to go into the || section again +#=dev-libs/openssl-1.0.2l-r1:0 +# the following is the original section, disallowing bindist entirely +#!libressl? ( >=dev-libs/openssl-1.0.2:0=[-bindist(-)] ) +RDEPEND=" + !dev-python/cryptography[python_targets_python2_7] + !libressl? ( >=dev-libs/openssl-1.0.2o-r6:0= ) + libressl? ( >=dev-libs/libressl-2.8:0= ) + idna? ( >=dev-python/idna-2.1[${PYTHON_USEDEP}] ) + dev-python/setuptools[${PYTHON_USEDEP}] + >=dev-python/six-1.4.1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/enum34[${PYTHON_USEDEP}] + dev-python/ipaddress[${PYTHON_USEDEP}] + ' -2) + $(python_gen_cond_dep ' + >=dev-python/cffi-python2-1.8:=[${PYTHON_USEDEP}] + ' 'python*') + " +DEPEND="${RDEPEND} + >=dev-python/setuptools-1.0[${PYTHON_USEDEP}]" + +S="${WORKDIR}/${MY_PN}-${PV}" + +DOCS=( AUTHORS.rst CONTRIBUTING.rst README.rst ) + +python_configure_all() { + append-cflags $(test-flags-CC -pthread) +} + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/cryptography-python2/metadata.xml b/dev-python/cryptography-python2/metadata.xml new file mode 100644 index 000000000000..b3065b70dd31 --- /dev/null +++ b/dev-python/cryptography-python2/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <use> + <flag name="idna">enable support for the old, deprecated IDNA specification (RFC 3490)</flag> + </use> + <upstream> + <remote-id type="pypi">cryptography</remote-id> + <remote-id type="github">pyca/cryptography</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/dbus-python2/Manifest b/dev-python/dbus-python2/Manifest new file mode 100644 index 000000000000..40ba4cdce245 --- /dev/null +++ b/dev-python/dbus-python2/Manifest @@ -0,0 +1 @@ +DIST dbus-python-1.2.16.tar.gz 576701 BLAKE2B 58d9f9ea092cd3a6b872c084a6159baf03f1aab615282e161a0e3da1d01ff5f4940862e693d21907b0c146d285b9067386759a1306ae2e6907f5e2ff4ef9944d SHA512 e76c00c5fd3fe6884e4c24f258987fd3b80d21bd4e0f96aa8fda152078a860b62321324f6efcbfe7226d5ab2521a14b5bda7cf2468d2cae5f376c124a71aa05c diff --git a/dev-python/dbus-python2/dbus-python2-1.2.16.ebuild b/dev-python/dbus-python2/dbus-python2-1.2.16.ebuild new file mode 100644 index 000000000000..d52a27131951 --- /dev/null +++ b/dev-python/dbus-python2/dbus-python2-1.2.16.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="threads(+)" + +inherit autotools python-r1 +MY_PN=dbus-python +MY_P=$MY_PN-$PV + +DESCRIPTION="Python bindings for the D-Bus messagebus" +HOMEPAGE="https://www.freedesktop.org/wiki/Software/DBusBindings https://dbus.freedesktop.org/doc/dbus-python/" +SRC_URI="https://dbus.freedesktop.org/releases/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86" + +IUSE="examples" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RESTRICT="test" + +RDEPEND="${PYTHON_DEPS} + !dev-python/dbus-python[python_targets_python2_7] + >=sys-apps/dbus-1.8:= + >=dev-libs/glib-2.40 +" +DEPEND="${RDEPEND}" +BDEPEND=" + virtual/pkgconfig +" +S="${WORKDIR}/${MY_PN}-${PV}" + +src_prepare() { + default + # Update py-compile, bug 529502. + eautoreconf + python_copy_sources +} + +src_configure() { + local SPHINX_IMPL=${EPYTHON} + + configuring() { + local myconf=( + --disable-documentation + ) + [[ ${EPYTHON} == ${SPHINX_IMPL} ]] && + myconf+=( --enable-documentation ) + + econf "${myconf[@]}" + } + python_foreach_impl run_in_build_dir configuring +} + +src_compile() { + python_foreach_impl run_in_build_dir default +} + +src_test() { + unset DBUS_SESSION_BUS_ADDRESS + python_foreach_impl run_in_build_dir default +} + +src_install() { + python_foreach_impl run_in_build_dir default + find "${D}" -name '*.la' -type f -delete || die + rm -r ${D}/usr/share + rm -r ${D}/usr/include + rm -r ${D}/usr/lib*/pkgconfig +} diff --git a/dev-python/dbus-python2/metadata.xml b/dev-python/dbus-python2/metadata.xml new file mode 100644 index 000000000000..6f25f5673f7d --- /dev/null +++ b/dev-python/dbus-python2/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> +<maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/m2crypto-python2/Manifest b/dev-python/m2crypto-python2/Manifest new file mode 100644 index 000000000000..7cd94be8b091 --- /dev/null +++ b/dev-python/m2crypto-python2/Manifest @@ -0,0 +1 @@ +DIST M2Crypto-0.36.0.tar.gz 1127584 BLAKE2B 5cdbbb11ff67d4ddffb2853a72383f3c7f1e1aa53ab84166aeda4fbea1b0d7f506761bb07bf8cb5b36f94bdbeb2ea2b46e0693da8355f81b4bf5c4c1c1cc18b1 SHA512 5b7d6d10c943ff0e09e0e9748d5578e7e0f7659a73de4ba49481152bca05871aef2bfbb869e1636a7cebcf2dd8b9f67fb0d299a833d1d4ebd538031c35d7bca1 diff --git a/dev-python/m2crypto-python2/files/m2crypto-libressl-0.31.0.patch b/dev-python/m2crypto-python2/files/m2crypto-libressl-0.31.0.patch new file mode 100644 index 000000000000..10ed142b33e4 --- /dev/null +++ b/dev-python/m2crypto-python2/files/m2crypto-libressl-0.31.0.patch @@ -0,0 +1,222 @@ +From fa56170c7adf5f124a48cf1074390adfc697272c Mon Sep 17 00:00:00 2001 +From: Stefan Strogin <stefan.strogin@gmail.com> +Date: Wed, 9 Jan 2019 10:15:08 +0200 +Subject: [PATCH] Fix compilation with LibreSSL + +--- + SWIG/_bio.i | 8 +++++--- + SWIG/_evp.i | 2 +- + SWIG/_lib.i | 2 +- + SWIG/_lib11_compat.i | 5 ++++- + SWIG/_m2crypto_wrap.c | 11 ++++++++--- + SWIG/_ssl.i | 4 ++-- + SWIG/_threads.i | 10 +++++----- + 7 files changed, 26 insertions(+), 16 deletions(-) + +diff --git a/SWIG/_bio.i b/SWIG/_bio.i +index e85a275..8eada82 100644 +--- a/SWIG/_bio.i ++++ b/SWIG/_bio.i +@@ -293,7 +293,7 @@ int bio_should_write(BIO* a) { + } + + /* Macros for things not defined before 1.1.0 */ +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) + static BIO_METHOD * + BIO_meth_new( int type, const char *name ) + { +@@ -325,11 +325,13 @@ BIO_meth_free( BIO_METHOD *meth ) + #define BIO_set_shutdown(b, x) (b)->shutdown = x + #define BIO_get_shutdown(b) (b)->shutdown + #define BIO_set_init(b, x) b->init = x +-#define BIO_get_init(b) (b)->init + #define BIO_set_data(b, x) b->ptr = x + #define BIO_clear_flags(b, x) b->flags &= ~(x) + #define BIO_get_data(b) b->ptr + #endif ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#define BIO_get_init(b) (b)->init ++#endif + + /* implment custom BIO_s_pyfd */ + +@@ -515,7 +517,7 @@ static long pyfd_ctrl(BIO *b, int cmd, long num, void *ptr) { + } + + void pyfd_init(void) { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL) + methods_fdp = BIO_meth_new( + BIO_get_new_index()|BIO_TYPE_DESCRIPTOR|BIO_TYPE_SOURCE_SINK, + "python file descriptor"); +diff --git a/SWIG/_evp.i b/SWIG/_evp.i +index d04e806..6fa9b38 100644 +--- a/SWIG/_evp.i ++++ b/SWIG/_evp.i +@@ -19,7 +19,7 @@ Copyright (c) 2009-2010 Heikki Toivonen. All rights reserved. + #include <openssl/rsa.h> + #include <openssl/opensslv.h> + +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) + + HMAC_CTX *HMAC_CTX_new(void) { + HMAC_CTX *ret = PyMem_Malloc(sizeof(HMAC_CTX)); +diff --git a/SWIG/_lib.i b/SWIG/_lib.i +index c84b800..807d5f6 100644 +--- a/SWIG/_lib.i ++++ b/SWIG/_lib.i +@@ -512,7 +512,7 @@ int passphrase_callback(char *buf, int num, int v, void *arg) { + %inline %{ + + void lib_init() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) + SSLeay_add_all_algorithms(); + ERR_load_ERR_strings(); + #endif +diff --git a/SWIG/_lib11_compat.i b/SWIG/_lib11_compat.i +index 1ec42dd..4234004 100644 +--- a/SWIG/_lib11_compat.i ++++ b/SWIG/_lib11_compat.i +@@ -8,7 +8,7 @@ + */ + + %{ +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + + #include <string.h> + #include <openssl/engine.h> +@@ -24,6 +24,9 @@ static void *CRYPTO_zalloc(size_t num, const char *file, int line) + return ret; + } + ++#endif ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) ++ + #include <openssl/bn.h> + + #ifndef BN_F_BN_GENCB_NEW +diff --git a/SWIG/_m2crypto_wrap.c b/SWIG/_m2crypto_wrap.c +index 0f07702..f168822 100644 +--- a/SWIG/_m2crypto_wrap.c ++++ b/SWIG/_m2crypto_wrap.c +@@ -3838,7 +3838,7 @@ void threading_cleanup(void) { + #include <ceval.h> + + +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + + #include <string.h> + #include <openssl/engine.h> +@@ -3854,6 +3854,9 @@ static void *CRYPTO_zalloc(size_t num, const char *file, int line) + return ret; + } + ++#endif ++#ifdef OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) ++ + #include <openssl/bn.h> + + #ifndef BN_F_BN_GENCB_NEW +@@ -5315,7 +5318,7 @@ int bio_should_write(BIO* a) { + } + + /* Macros for things not defined before 1.1.0 */ +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL) + static BIO_METHOD * + BIO_meth_new( int type, const char *name ) + { +@@ -5347,11 +5350,13 @@ BIO_meth_free( BIO_METHOD *meth ) + #define BIO_set_shutdown(b, x) (b)->shutdown = x + #define BIO_get_shutdown(b) (b)->shutdown + #define BIO_set_init(b, x) b->init = x +-#define BIO_get_init(b) (b)->init + #define BIO_set_data(b, x) b->ptr = x + #define BIO_clear_flags(b, x) b->flags &= ~(x) + #define BIO_get_data(b) b->ptr + #endif ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#define BIO_get_init(b) (b)->init ++#endif + + /* implment custom BIO_s_pyfd */ + +diff --git a/SWIG/_ssl.i b/SWIG/_ssl.i +index 7257656..40b0582 100644 +--- a/SWIG/_ssl.i ++++ b/SWIG/_ssl.i +@@ -27,7 +27,7 @@ typedef unsigned __int64 uint64_t; + #endif + %} + +-#if OPENSSL_VERSION_NUMBER >= 0x10100005L ++#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100005L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL) + %include <openssl/safestack.h> + #endif + +@@ -261,7 +261,7 @@ void ssl_init(PyObject *ssl_err, PyObject *ssl_timeout_err) { + } + + const SSL_METHOD *tlsv1_method(void) { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if (!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10100000L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL) + PyErr_WarnEx(PyExc_DeprecationWarning, + "Function TLSv1_method has been deprecated.", 1); + #endif +diff --git a/SWIG/_threads.i b/SWIG/_threads.i +index 69adb9f..fd2285a 100644 +--- a/SWIG/_threads.i ++++ b/SWIG/_threads.i +@@ -5,7 +5,7 @@ + #include <pythread.h> + #include <openssl/crypto.h> + +-#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) + #define CRYPTO_num_locks() (CRYPTO_NUM_LOCKS) + static PyThread_type_lock lock_cs[CRYPTO_num_locks()]; + static long lock_count[CRYPTO_num_locks()]; +@@ -13,7 +13,7 @@ static int thread_mode = 0; + #endif + + void threading_locking_callback(int mode, int type, const char *file, int line) { +-#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) + if (mode & CRYPTO_LOCK) { + PyThread_acquire_lock(lock_cs[type], WAIT_LOCK); + lock_count[type]++; +@@ -25,7 +25,7 @@ void threading_locking_callback(int mode, int type, const char *file, int line) + } + + unsigned long threading_id_callback(void) { +-#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) + return (unsigned long)PyThread_get_thread_ident(); + #else + return (unsigned long)0; +@@ -35,7 +35,7 @@ unsigned long threading_id_callback(void) { + + %inline %{ + void threading_init(void) { +-#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) + int i; + if (!thread_mode) { + for (i=0; i<CRYPTO_num_locks(); i++) { +@@ -50,7 +50,7 @@ void threading_init(void) { + } + + void threading_cleanup(void) { +-#if defined(THREADING) && OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(THREADING) && (OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000fL)) + int i; + if (thread_mode) { + CRYPTO_set_locking_callback(NULL); +-- +2.20.1 + diff --git a/dev-python/m2crypto-python2/m2crypto-python2-0.36.0.ebuild b/dev-python/m2crypto-python2/m2crypto-python2-0.36.0.ebuild new file mode 100644 index 000000000000..ad93a7c53900 --- /dev/null +++ b/dev-python/m2crypto-python2/m2crypto-python2-0.36.0.ebuild @@ -0,0 +1,75 @@ +# Copyright 2018-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 toolchain-funcs + +MY_PN="M2Crypto" +DESCRIPTION="A Python crypto and SSL toolkit" +HOMEPAGE="https://gitlab.com/m2crypto/m2crypto https://pypi.org/project/M2Crypto/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_PN}-${PV}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" +IUSE="libressl" +RESTRICT="test" + +RDEPEND=" + !dev-python/m2crypto[python_targets_python2_7] + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + $(python_gen_cond_dep ' + dev-python/typing[${PYTHON_USEDEP}] + ' -2) +" +DEPEND="${RDEPEND}" +BDEPEND=" + >=dev-lang/swig-2.0.9 + dev-python/setuptools[${PYTHON_USEDEP}] +" + +S="${WORKDIR}/${MY_PN}-${PV}" + +PATCHES=( + "${FILESDIR}/m2crypto-libressl-0.31.0.patch" +) + +swig_define() { + local x + for x; do + if tc-cpp-is-true "defined(${x})"; then + SWIG_FEATURES+=" -D${x}" + fi + done +} + +src_prepare() { + # TODO + sed -e 's:test_server_simple_timeouts:_&:' \ + -i tests/test_ssl.py || die + distutils-r1_src_prepare +} + +python_compile() { + # setup.py looks at platform.machine() to determine swig options. + # For exotic ABIs, we need to give swig a hint. + local -x SWIG_FEATURES= + + # https://bugs.gentoo.org/617946 + swig_define __ILP32__ + + # https://bugs.gentoo.org/674112 + swig_define __ARM_PCS_VFP + + distutils-r1_python_compile --openssl="${ESYSROOT}"/usr +} + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/m2crypto-python2/metadata.xml b/dev-python/m2crypto-python2/metadata.xml new file mode 100644 index 000000000000..81e4a1cb2e89 --- /dev/null +++ b/dev-python/m2crypto-python2/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <upstream> + <remote-id type="pypi">M2Crypto</remote-id> + <remote-id type="gitlab">m2crypto/m2crypto</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/pexpect-python2/Manifest b/dev-python/pexpect-python2/Manifest new file mode 100644 index 000000000000..335b751b7e95 --- /dev/null +++ b/dev-python/pexpect-python2/Manifest @@ -0,0 +1 @@ +DIST pexpect-4.8.0.tar.gz 157037 BLAKE2B 742642bd6b9ec3f6cdfad054d4fd22db56b4a55b746d675c27a8cdf824ea749ec4589e296dffa08778195f3ccd20feb56bc0fd5212984396ea5aa0555c41ca96 SHA512 7447ae2d1e13be422c894a8fd51c5aaa788e37ea7f0c798c88b77afd401fb3631400a637077ccbb83c2e3876b0d0c5e1dbd5fdc9d3739d785b4d5ad7c0192580 diff --git a/dev-python/pexpect-python2/metadata.xml b/dev-python/pexpect-python2/metadata.xml new file mode 100644 index 000000000000..1a2ce08fd175 --- /dev/null +++ b/dev-python/pexpect-python2/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="pypi">pexpect</remote-id> + <remote-id type="github">pexpect/pexpect</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/pexpect-python2/pexpect-python2-4.8.0.ebuild b/dev-python/pexpect-python2/pexpect-python2-4.8.0.ebuild new file mode 100644 index 000000000000..d7aa8b6a6dff --- /dev/null +++ b/dev-python/pexpect-python2/pexpect-python2-4.8.0.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 + +MY_PN=pexpect +MY_P=$MY_PN-$PV + +DESCRIPTION="Python module for spawning child apps and responding to expected patterns" +HOMEPAGE="https://pexpect.readthedocs.io/ https://pypi.org/project/pexpect/ https://github.com/pexpect/pexpect/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos" +IUSE="examples" +RESTRICT="test" + +RDEPEND=" + !dev-python/pexpect[python_targets_python2_7] + >=dev-python/ptyprocess-python2-0.5[${PYTHON_USEDEP}]" +DEPEND="" +S="${WORKDIR}/${MY_PN}-${PV}" + +python_install() { + distutils-r1_python_install + rm "${D}$(python_get_sitedir)/pexpect/_async.py" || die +} + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/protobuf-python/files/protobuf-python-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch b/dev-python/protobuf-python/files/protobuf-python-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch new file mode 100644 index 000000000000..68318320b909 --- /dev/null +++ b/dev-python/protobuf-python/files/protobuf-python-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch @@ -0,0 +1,22 @@ +https://github.com/protocolbuffers/protobuf/issues/6205 +https://github.com/protocolbuffers/protobuf/pull/7016 + +--- /python/google/protobuf/pyext/unknown_fields.cc ++++ /python/google/protobuf/pyext/unknown_fields.cc +@@ -277,13 +277,13 @@ + PyObject* data = NULL; + switch (field->type()) { + case UnknownField::TYPE_VARINT: +- data = PyInt_FromLong(field->varint()); ++ data = PyLong_FromUnsignedLongLong(field->varint()); + break; + case UnknownField::TYPE_FIXED32: +- data = PyInt_FromLong(field->fixed32()); ++ data = PyLong_FromUnsignedLong(field->fixed32()); + break; + case UnknownField::TYPE_FIXED64: +- data = PyInt_FromLong(field->fixed64()); ++ data = PyLong_FromUnsignedLongLong(field->fixed64()); + break; + case UnknownField::TYPE_LENGTH_DELIMITED: + data = PyBytes_FromStringAndSize(field->length_delimited().data(), diff --git a/dev-python/protobuf-python/protobuf-python-3.11.4.ebuild b/dev-python/protobuf-python/protobuf-python-3.11.4.ebuild index 25568dc7f52a..f437b2cdbc0a 100644 --- a/dev-python/protobuf-python/protobuf-python-3.11.4.ebuild +++ b/dev-python/protobuf-python/protobuf-python-3.11.4.ebuild @@ -3,7 +3,7 @@ EAPI="7" PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} ) -DISTUTILS_USE_SETUPTOOLS="manual" +DISTUTILS_USE_SETUPTOOLS="rdepend" inherit distutils-r1 @@ -30,7 +30,6 @@ IUSE="" BDEPEND="${PYTHON_DEPS} ~dev-libs/protobuf-${PV} dev-python/namespace-google[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] dev-python/six[${PYTHON_USEDEP}]" DEPEND="${PYTHON_DEPS} ~dev-libs/protobuf-${PV}" @@ -43,6 +42,15 @@ if [[ "${PV}" == "9999" ]]; then EGIT_CHECKOUT_DIR="${WORKDIR}/protobuf-${PV}" fi +python_prepare_all() { + pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die + eapply "${FILESDIR}/${PN}-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch" + eapply_user + popd > /dev/null || die + + distutils-r1_python_prepare_all +} + python_configure_all() { mydistutilsargs=(--cpp_implementation) } diff --git a/dev-python/protobuf-python/protobuf-python-3.12.2.ebuild b/dev-python/protobuf-python/protobuf-python-3.12.2.ebuild index 8fa95934c259..2d8e8aef7b07 100644 --- a/dev-python/protobuf-python/protobuf-python-3.12.2.ebuild +++ b/dev-python/protobuf-python/protobuf-python-3.12.2.ebuild @@ -3,7 +3,7 @@ EAPI="7" PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} ) -DISTUTILS_USE_SETUPTOOLS="manual" +DISTUTILS_USE_SETUPTOOLS="rdepend" inherit distutils-r1 @@ -30,7 +30,6 @@ IUSE="" BDEPEND="${PYTHON_DEPS} ~dev-libs/protobuf-${PV} dev-python/namespace-google[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] dev-python/six[${PYTHON_USEDEP}]" DEPEND="${PYTHON_DEPS} ~dev-libs/protobuf-${PV}" @@ -43,6 +42,15 @@ if [[ "${PV}" == "9999" ]]; then EGIT_CHECKOUT_DIR="${WORKDIR}/protobuf-${PV}" fi +python_prepare_all() { + pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die + eapply "${FILESDIR}/${PN}-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch" + eapply_user + popd > /dev/null || die + + distutils-r1_python_prepare_all +} + python_configure_all() { mydistutilsargs=(--cpp_implementation) } diff --git a/dev-python/protobuf-python/protobuf-python-3.12.4.ebuild b/dev-python/protobuf-python/protobuf-python-3.12.4.ebuild index 4b2d3c1527db..e031479968b8 100644 --- a/dev-python/protobuf-python/protobuf-python-3.12.4.ebuild +++ b/dev-python/protobuf-python/protobuf-python-3.12.4.ebuild @@ -3,7 +3,7 @@ EAPI="7" PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} ) -DISTUTILS_USE_SETUPTOOLS="manual" +DISTUTILS_USE_SETUPTOOLS="rdepend" inherit distutils-r1 @@ -24,13 +24,12 @@ fi LICENSE="BSD" SLOT="0/23" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" +KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" IUSE="" BDEPEND="${PYTHON_DEPS} ~dev-libs/protobuf-${PV} dev-python/namespace-google[${PYTHON_USEDEP}] - dev-python/setuptools[${PYTHON_USEDEP}] dev-python/six[${PYTHON_USEDEP}]" DEPEND="${PYTHON_DEPS} ~dev-libs/protobuf-${PV}" @@ -43,6 +42,15 @@ if [[ "${PV}" == "9999" ]]; then EGIT_CHECKOUT_DIR="${WORKDIR}/protobuf-${PV}" fi +python_prepare_all() { + pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die + eapply "${FILESDIR}/${PN}-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch" + eapply_user + popd > /dev/null || die + + distutils-r1_python_prepare_all +} + python_configure_all() { mydistutilsargs=(--cpp_implementation) } diff --git a/dev-python/protobuf-python/protobuf-python-3.13.0.ebuild b/dev-python/protobuf-python/protobuf-python-3.13.0.ebuild index 88bd7b0ddad7..c5d593dd8c5b 100644 --- a/dev-python/protobuf-python/protobuf-python-3.13.0.ebuild +++ b/dev-python/protobuf-python/protobuf-python-3.13.0.ebuild @@ -2,9 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 EAPI="7" - -DISTUTILS_USE_SETUPTOOLS=rdepend PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} ) +DISTUTILS_USE_SETUPTOOLS="rdepend" inherit distutils-r1 @@ -44,6 +43,11 @@ if [[ "${PV}" == "9999" ]]; then fi python_prepare_all() { + pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die + eapply "${FILESDIR}/${PN}-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch" + eapply_user + popd > /dev/null || die + distutils-r1_python_prepare_all sed -e "/^[[:space:]]*setup_requires = \['wheel'\],$/d" -i setup.py || die diff --git a/dev-python/protobuf-python/protobuf-python-9999.ebuild b/dev-python/protobuf-python/protobuf-python-9999.ebuild index 65fd540c9796..c081829379e0 100644 --- a/dev-python/protobuf-python/protobuf-python-9999.ebuild +++ b/dev-python/protobuf-python/protobuf-python-9999.ebuild @@ -2,9 +2,8 @@ # Distributed under the terms of the GNU General Public License v2 EAPI="7" - -DISTUTILS_USE_SETUPTOOLS=rdepend PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} ) +DISTUTILS_USE_SETUPTOOLS="rdepend" inherit distutils-r1 @@ -44,6 +43,11 @@ if [[ "${PV}" == "9999" ]]; then fi python_prepare_all() { + pushd "${WORKDIR}/protobuf-${PV}" > /dev/null || die + eapply "${FILESDIR}/${PN}-3.13.0-google.protobuf.pyext._message.PyUnknownFieldRef.patch" + eapply_user + popd > /dev/null || die + distutils-r1_python_prepare_all sed -e "/^[[:space:]]*setup_requires = \['wheel'\],$/d" -i setup.py || die diff --git a/dev-python/ptyprocess-python2/Manifest b/dev-python/ptyprocess-python2/Manifest new file mode 100644 index 000000000000..cee8c8bb6773 --- /dev/null +++ b/dev-python/ptyprocess-python2/Manifest @@ -0,0 +1 @@ +DIST ptyprocess-0.6.0.tar.gz 70115 BLAKE2B 02499e560c4df2f852d0951a9acfcb88a2bfe659592ead0304bb6a240e831fb093dd40a457714a8a91d1af70b5364b7af91d2c14c956d8a84d3eeec3eb2a9edf SHA512 b34b6bca977f09d1443b210e338e1300e12d6ef35857f9543b3a116ef3b500ad4844357a7a283321756f886af41bddb1f02b27bf200ef1e82a96fd9e431bed86 diff --git a/dev-python/ptyprocess-python2/metadata.xml b/dev-python/ptyprocess-python2/metadata.xml new file mode 100644 index 000000000000..4fd602251bf9 --- /dev/null +++ b/dev-python/ptyprocess-python2/metadata.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <upstream> + <remote-id type="pypi">ptyprocess</remote-id> + <remote-id type="github">pexpect/ptyprocess</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/ptyprocess-python2/ptyprocess-python2-0.6.0.ebuild b/dev-python/ptyprocess-python2/ptyprocess-python2-0.6.0.ebuild new file mode 100644 index 000000000000..da71985afa19 --- /dev/null +++ b/dev-python/ptyprocess-python2/ptyprocess-python2-0.6.0.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS=no +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 +MY_PN=ptyprocess +MY_P=$MY_PN-$PV + +DESCRIPTION="Run a subprocess in a pseudo terminal" +HOMEPAGE="https://github.com/pexpect/ptyprocess" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux" +RESTRICT="test" + +RDEPEND=" + !dev-python/ptyprocess[python_targets_python2_7] +" + +S="${WORKDIR}/${MY_PN}-${PV}" + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/pyasn1-modules-python2/Manifest b/dev-python/pyasn1-modules-python2/Manifest new file mode 100644 index 000000000000..c9a9bae71388 --- /dev/null +++ b/dev-python/pyasn1-modules-python2/Manifest @@ -0,0 +1 @@ +DIST pyasn1-modules-0.2.8.tar.gz 242864 BLAKE2B 22b6cc27d45d19d8e7f5b12c8aeff1fa379bd567fda6b1dc0fafd00c0f4367d32f21cd48cf3cba140f2f11ba7d258140e8014c8420300451ab1acff475d28da7 SHA512 fdfcaa065deffdd732deaa1fa30dec2fc4a90ffe15bd12de40636ce0212f447611096d2f4e652ed786b5c47544439e6a93721fabe121f3320f13965692a1ca5b diff --git a/dev-python/pyasn1-modules-python2/metadata.xml b/dev-python/pyasn1-modules-python2/metadata.xml new file mode 100644 index 000000000000..0815be9a15b4 --- /dev/null +++ b/dev-python/pyasn1-modules-python2/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="pypi">pyasn1-modules</remote-id> + <remote-id type="sourceforge">pyasn1</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/pyasn1-modules-python2/pyasn1-modules-python2-0.2.8.ebuild b/dev-python/pyasn1-modules-python2/pyasn1-modules-python2-0.2.8.ebuild new file mode 100644 index 000000000000..0e7554bbef3f --- /dev/null +++ b/dev-python/pyasn1-modules-python2/pyasn1-modules-python2-0.2.8.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 + +MY_PN=pyasn1-modules +MY_P=$MY_PN-$PV + +DESCRIPTION="pyasn1 modules" +HOMEPAGE="https://snmplabs.com/pyasn1/ https://github.com/etingof/pyasn1-modules/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + !dev-python/pyasn1-modules[python_targets_python2_7] + >=dev-python/pyasn1-python2-0.4.6" +DEPEND="${RDEPEND}" + +RESTRICT="test" + +S="${WORKDIR}/${MY_PN}-${PV}" + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/pyasn1-python2/Manifest b/dev-python/pyasn1-python2/Manifest new file mode 100644 index 000000000000..491c89541136 --- /dev/null +++ b/dev-python/pyasn1-python2/Manifest @@ -0,0 +1 @@ +DIST pyasn1-0.4.8.tar.gz 146820 BLAKE2B 5c00b47c2014e599d1aa2e14c3004b3688786c7afd160c85709d5a0f324166abb1d29ebbd9f3e13100166e7176710e4dc6e1b8fcf80db5f5bdaa202912f8a023 SHA512 e64e70b325c8067f87ace7c0673149e82fe564aa4b0fa146d29b43cb588ecd6e81b1b82803b8cfa7a17d3d0489b6d88b4af5afb3aa0052bf92e8a1769fe8f7b0 diff --git a/dev-python/pyasn1-python2/metadata.xml b/dev-python/pyasn1-python2/metadata.xml new file mode 100644 index 000000000000..90d57a7983d9 --- /dev/null +++ b/dev-python/pyasn1-python2/metadata.xml @@ -0,0 +1,14 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <stabilize-allarches/> + <upstream> + <remote-id type="pypi">pyasn1</remote-id> + <remote-id type="sourceforge">pyasn1</remote-id> + <remote-id type="github">etingof/pyasn1</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/pyasn1-python2/pyasn1-python2-0.4.8.ebuild b/dev-python/pyasn1-python2/pyasn1-python2-0.4.8.ebuild new file mode 100644 index 000000000000..b1be772ed4d4 --- /dev/null +++ b/dev-python/pyasn1-python2/pyasn1-python2-0.4.8.ebuild @@ -0,0 +1,31 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 +MY_PN=pyasn1 +MY_P=$MY_PN-$PV + +DESCRIPTION="ASN.1 library for Python" +HOMEPAGE="https://snmplabs.com/pyasn1/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" + +RESTRICT="test" + +S="${WORKDIR}/${MY_PN}-${PV}" + +RDEPEND=" + !dev-python/pyasn1[python_targets_python2_7] +" + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/pymilter/ChangeLog b/dev-python/pymilter-python2/ChangeLog index 85c8bb179805..85c8bb179805 100644 --- a/dev-python/pymilter/ChangeLog +++ b/dev-python/pymilter-python2/ChangeLog diff --git a/dev-python/pymilter-python2/Manifest b/dev-python/pymilter-python2/Manifest new file mode 100644 index 000000000000..1394e2f90b52 --- /dev/null +++ b/dev-python/pymilter-python2/Manifest @@ -0,0 +1 @@ +DIST pymilter-0.9.3.tar.gz 96362 BLAKE2B fbe5805277434e0bdaf875f9761c36bd460f6304d53d82843ae9245723b2c6c58bd14bfd117c4404650ac9dcb84190a2e400632b112655c0c14f73156dc25a68 SHA512 e43d28ffe6bf73aea8ad712e7aa9b2f5c75e322fab30c3a4da441323c32263c384e2f1205fc440ba8b119c52b83e6aba0c9d8fd5291cb57a20d07c904442955f diff --git a/dev-python/pymilter/pymilter-0.9.3.ebuild b/dev-python/pymilter-python2/pymilter-python2-0.9.3.ebuild index fed27d8f16e4..9b6386bfbcf6 100644 --- a/dev-python/pymilter/pymilter-0.9.3.ebuild +++ b/dev-python/pymilter-python2/pymilter-python2-0.9.3.ebuild @@ -6,10 +6,12 @@ EAPI=5 PYTHON_COMPAT=( python2_7 ) PYTHON_REQ_USE="threads(+)" +MY_PN=pymilter +MY_P=$MY_PN-$PV inherit distutils-r1 -SRC_URI="http://downloads.sourceforge.net/project/${PN}/${PN}/${P}/${P}.tar.gz" +SRC_URI="http://downloads.sourceforge.net/project/${MY_PN}/${MY_PN}/${MY_P}/${MY_P}.tar.gz" DESCRIPTION="The package of Python milters that wraps the C libmilter library." HOMEPAGE="https://spidey2.bmsi.com/pymilter/" @@ -17,6 +19,16 @@ LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 x86" IUSE="" -DEPEND="mail-filter/libmilter - >=dev-lang/python-2.5.2" +DEPEND=" + !dev-python/pymilter[python_targets_python2_7] + mail-filter/libmilter" RDEPEND="${DEPEND}" + +RESTRICT="test" + +S="${WORKDIR}/${MY_PN}-${PV}" + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/pymilter/Manifest b/dev-python/pymilter/Manifest index 2446b4fc8741..07186006bfa2 100644 --- a/dev-python/pymilter/Manifest +++ b/dev-python/pymilter/Manifest @@ -1 +1 @@ -DIST pymilter-0.9.3.tar.gz 96362 SHA256 fd1e424a25fc40e9908c6ae6b03dae4381e21bd600c80180dd4cc712499cd3c1 SHA512 e43d28ffe6bf73aea8ad712e7aa9b2f5c75e322fab30c3a4da441323c32263c384e2f1205fc440ba8b119c52b83e6aba0c9d8fd5291cb57a20d07c904442955f WHIRLPOOL 6127b01b9cb3d27d02dfd48e40aaf127dd3b307183fae84458b9b3e88524f715ff4b95b5a885abc97ad3782cf9e39133de89ca4d3532c2f0f46c5f0f3e93fe09 +DIST pymilter-1.0.4.tar.gz 1023222 BLAKE2B 1e5ce42af76ae1ac2f7cda87d40bdce404ed7e9fce9e88909572ec065f05e2c9effc8bc62d4fad113753ff7dc7e87c790515a9116615191745097cb2c3390042 SHA512 b356a10ffc0ba0172cdb228e4e15034e67c0fd82b4b8bbe1193e54e45e518626fd647033d824f2cd5a9d456154c528027726977d3ad2f2c2fe0e0155ad50d294 diff --git a/dev-python/pymilter/metadata.xml b/dev-python/pymilter/metadata.xml new file mode 100644 index 000000000000..08118eec0d91 --- /dev/null +++ b/dev-python/pymilter/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>gentoo@seichter.de</email> + <name>Ralph Seichter</name> + </maintainer> + <maintainer type="person"> + <email>whissi@gentoo.org</email> + <name>Thomas Deutschmann</name> + <description>Proxy Maintainer</description> + </maintainer> + <longdescription> + A python extension module to enable python scripts to attach + to sendmail’s libmilter functionality. Additional python + modules provide for navigating and modifying MIME parts, and + sending DSNs or doing CBVs. + </longdescription> + <upstream> + <remote-id type="github">sdgathman/pymilter</remote-id> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-python/pymilter/pymilter-1.0.4-r1.ebuild b/dev-python/pymilter/pymilter-1.0.4-r1.ebuild new file mode 100644 index 000000000000..5a706a8fdf00 --- /dev/null +++ b/dev-python/pymilter/pymilter-1.0.4-r1.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python3_{6,7,8,9} ) + +inherit distutils-r1 + +DESCRIPTION="Python interface to sendmail milter API" +HOMEPAGE="https://github.com/sdgathman/pymilter" +SRC_URI="https://github.com/sdgathman/${PN}/archive/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +DEPEND="|| ( mail-filter/libmilter mail-mta/sendmail ) + test? ( $(python_gen_impl_dep sqlite) )" +RDEPEND="${DEPEND}" + +S="${WORKDIR}/${PN}-${P}" + +python_test() { + "${EPYTHON}" -m unittest discover -v || die +} diff --git a/dev-python/pyopenssl-python2/Manifest b/dev-python/pyopenssl-python2/Manifest new file mode 100644 index 000000000000..ea84bd5c37d1 --- /dev/null +++ b/dev-python/pyopenssl-python2/Manifest @@ -0,0 +1 @@ +DIST pyOpenSSL-19.1.0.tar.gz 160510 BLAKE2B e6e39f860221a2696aa3fa32ac89ed48e34b18e4accc366a86264d943a15a1b00ba1a0d8349550d1775d25836aa5d214e1e3fe4ec0a9c0f6d5ab00cd9fede633 SHA512 4acd96f287d72eb11bd812697d28cd6eb6a96a4653248b65f967187830a6b17cc1254775a18a3405469f3d45abdae6f02d165f2f35f035f3174c2826fba82916 diff --git a/dev-python/pyopenssl-python2/metadata.xml b/dev-python/pyopenssl-python2/metadata.xml new file mode 100644 index 000000000000..b2491350b097 --- /dev/null +++ b/dev-python/pyopenssl-python2/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <upstream> + <remote-id type="pypi">pyOpenSSL</remote-id> + <remote-id type="launchpad">pyopenssl</remote-id> + <remote-id type="sourceforge">pyopenssl</remote-id> + <remote-id type="cpe">cpe:/a:pyopenssl:pyopenssl</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/pyopenssl-python2/pyopenssl-python2-19.1.0.ebuild b/dev-python/pyopenssl-python2/pyopenssl-python2-19.1.0.ebuild new file mode 100644 index 000000000000..6803698451f3 --- /dev/null +++ b/dev-python/pyopenssl-python2/pyopenssl-python2-19.1.0.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 flag-o-matic + +MY_PN=pyOpenSSL +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Python interface to the OpenSSL library" +HOMEPAGE=" + https://www.pyopenssl.org/ + https://pypi.org/project/pyOpenSSL/ + https://github.com/pyca/pyopenssl +" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" +RESTRICT="test" + +RDEPEND=" + !dev-python/pyopenssl[python_targets_python2_7] + >=dev-python/six-1.5.2[${PYTHON_USEDEP}] + dev-python/cryptography-python2" +DEPEND="${RDEPEND}" + +distutils_enable_sphinx doc \ + dev-python/sphinx_rtd_theme + +python_prepare_all() { + # Requires network access + sed -i -e 's/test_set_default_verify_paths/_&/' tests/test_ssl.py || die + distutils-r1_python_prepare_all +} + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/python-ldap/metadata.xml b/dev-python/python-ldap/metadata.xml new file mode 100644 index 000000000000..5c901e39ed42 --- /dev/null +++ b/dev-python/python-ldap/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <upstream> + <remote-id type="pypi">python-ldap</remote-id> + <remote-id type="github">python-ldap/python-ldap</remote-id> + <bugs-to>https://github.com/python-ldap/python-ldap/issues</bugs-to> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-python/python-ldap/python-ldap-3.2.0.ebuild b/dev-python/python-ldap/python-ldap-3.2.0.ebuild index 11ee421f388a..775436269d38 100644 --- a/dev-python/python-ldap/python-ldap-3.2.0.ebuild +++ b/dev-python/python-ldap/python-ldap-3.2.0.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python2_7 python3_{5,6,7,8,9} ) +PYTHON_COMPAT=( python3_{5,6,7,8,9} pypy3 ) inherit distutils-r1 diff --git a/dev-python/python-ldap/python-ldap-9999.ebuild b/dev-python/python-ldap/python-ldap-9999.ebuild new file mode 100644 index 000000000000..9d3d37a83396 --- /dev/null +++ b/dev-python/python-ldap/python-ldap-9999.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python3_{5,6,7,8,9} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="Various LDAP-related Python modules" +HOMEPAGE="https://www.python-ldap.org/en/latest/ + https://pypi.org/project/python-ldap/ + https://github.com/python-ldap/python-ldap" +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/python-ldap/python-ldap.git" + inherit git-r3 +else + SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-solaris" +fi + +LICENSE="PSF-2" +SLOT="0" +IUSE="examples sasl ssl" + +# We do not need OpenSSL, it is never directly used: +# https://github.com/python-ldap/python-ldap/issues/224 +RDEPEND=" + !dev-python/pyldap + >=dev-python/pyasn1-0.3.7[${PYTHON_USEDEP}] + >=dev-python/pyasn1-modules-0.1.5[${PYTHON_USEDEP}] + >net-nds/openldap-2.4.11:=[sasl?,ssl?] +" +# We do not link against cyrus-sasl but we use some +# of its headers during the build. +BDEPEND=" + >net-nds/openldap-2.4.11:=[sasl?,ssl?] + sasl? ( >=dev-libs/cyrus-sasl-2.1 ) +" + +distutils_enable_tests pytest +distutils_enable_sphinx Doc + +python_prepare_all() { + # The live ebuild won't compile if setuptools_scm < 1.16.2 is installed + # https://github.com/pypa/setuptools_scm/issues/228 + if [[ ${PV} == *9999* ]]; then + rm -r .git || die + fi + + if ! use sasl; then + sed -i 's/HAVE_SASL//g' setup.cfg || die + fi + if ! use ssl; then + sed -i 's/HAVE_TLS//g' setup.cfg || die + fi + + distutils-r1_python_prepare_all +} + +python_test() { + # Run all tests which don't require slapd + local ignored_tests=( + t_bind.py + t_cext.py + t_edit.py + t_ldapobject.py + t_ldap_options.py + t_ldap_sasl.py + t_ldap_schema_subentry.py + t_ldap_syncrepl.py + t_slapdobject.py + ) + pushd Tests >/dev/null || die + pytest -vv ${ignored_tests[@]/#/--ignore } \ + || die "tests failed with ${EPYTHON}" + popd > /dev/null || die +} + +python_install() { + distutils-r1_python_install + python_optimize +} + +python_install_all() { + if use examples; then + docinto examples + dodoc -r Demo/. + docompress -x /usr/share/doc/${PF}/examples + fi + distutils-r1_python_install_all +} diff --git a/dev-python/python2-ldap/Manifest b/dev-python/python2-ldap/Manifest new file mode 100644 index 000000000000..055f928ceea2 --- /dev/null +++ b/dev-python/python2-ldap/Manifest @@ -0,0 +1 @@ +DIST python-ldap-3.2.0.tar.gz 367645 BLAKE2B 5109f4a13644d53fff7506ad2417da6dbfd5d1c5d31cc63932338ee0bc7327b00878804764366523fc0610191126c1a1367e15fddbad481880f73d29d96d3322 SHA512 ef2833739fd57ad26d97ae5dba3bca8a47e770ff3f113d06a5bed0841f8fcbbe6cd102e75c753dfff48f5f6041f46a91c6166f3bb9ca44ef9bd643c0666c6b23 diff --git a/dev-python/python2-ldap/python2-ldap-3.2.0.ebuild b/dev-python/python2-ldap/python2-ldap-3.2.0.ebuild new file mode 100644 index 000000000000..f020a10ee9a4 --- /dev/null +++ b/dev-python/python2-ldap/python2-ldap-3.2.0.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +PYTHON_COMPAT=( python2_7 ) + +inherit distutils-r1 + +MY_PN=python-ldap +MY_P=$MY_PN-$PV + +DESCRIPTION="Various LDAP-related Python modules" +HOMEPAGE="https://www.python-ldap.org/en/latest/ + https://pypi.org/project/python-ldap/ + https://github.com/python-ldap/python-ldap" +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/python-ldap/python-ldap.git" + inherit git-r3 +else + SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ppc ppc64 sparc x86 ~x86-solaris" +fi + +LICENSE="PSF-2" +SLOT="0" +IUSE="examples sasl ssl" + +# We do not need OpenSSL, it is never directly used: +# https://github.com/python-ldap/python-ldap/issues/224 +RDEPEND=" + !dev-python/pyldap + !dev-python/python-ldap[python_targets_python2_7] + >=dev-python/pyasn1-python2-0.3.7[${PYTHON_USEDEP}] + >=dev-python/pyasn1-modules-python2-0.1.5[${PYTHON_USEDEP}] + >net-nds/openldap-2.4.11:=[sasl?,ssl?] +" +# We do not link against cyrus-sasl but we use some +# of its headers during the build. +BDEPEND=" + >net-nds/openldap-2.4.11:=[sasl?,ssl?] + sasl? ( >=dev-libs/cyrus-sasl-2.1 ) +" + +S="${WORKDIR}/${MY_PN}-${PV}" +RESTRICT="test" + +python_prepare_all() { + # The live ebuild won't compile if setuptools_scm < 1.16.2 is installed + # https://github.com/pypa/setuptools_scm/issues/228 + if [[ ${PV} == *9999* ]]; then + rm -r .git || die + fi + + if ! use sasl; then + sed -i 's/HAVE_SASL//g' setup.cfg || die + fi + if ! use ssl; then + sed -i 's/HAVE_TLS//g' setup.cfg || die + fi + + distutils-r1_python_prepare_all +} + +python_install() { + distutils-r1_python_install + python_optimize +} + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} diff --git a/dev-python/pytz-python2/Manifest b/dev-python/pytz-python2/Manifest new file mode 100644 index 000000000000..851e4f603006 --- /dev/null +++ b/dev-python/pytz-python2/Manifest @@ -0,0 +1 @@ +DIST pytz-2020.1.tar.gz 311771 BLAKE2B 2d7dd9987fd912dd2a62b5c4ab1667a13f3704ff407796c00fd76b6f3ac4dfcffba9f58740f9456ddfade6c2ef6deacc754f57f5e434b97da36b36fca3024d0f SHA512 4f652ab400bac0bd83ed305be7540094e674029a0cbde7da280adfd911b8c0a44023799b7c61971a5a61a1d6e3992c5b621e5e95bbfe962f310d5f26d4fda3ce diff --git a/dev-python/pytz-python2/files/2018.4-zoneinfo.patch b/dev-python/pytz-python2/files/2018.4-zoneinfo.patch new file mode 100644 index 000000000000..2eeeab416d7f --- /dev/null +++ b/dev-python/pytz-python2/files/2018.4-zoneinfo.patch @@ -0,0 +1,12 @@ +--- a/pytz/__init__.py ++++ b/pytz/__init__.py +@@ -91,8 +91,7 @@ + if zoneinfo_dir is not None: + filename = os.path.join(zoneinfo_dir, *name_parts) + else: +- filename = os.path.join(os.path.dirname(__file__), +- 'zoneinfo', *name_parts) ++ filename = os.path.join('/usr/share/zoneinfo', *name_parts) + if not os.path.exists(filename): + # http://bugs.launchpad.net/bugs/383171 - we avoid using this + # unless absolutely necessary to help when a broken version of diff --git a/dev-python/pytz-python2/files/pytz-python2-2018.4-zoneinfo-noinstall.patch b/dev-python/pytz-python2/files/pytz-python2-2018.4-zoneinfo-noinstall.patch new file mode 100644 index 000000000000..9f8b93bf70a5 --- /dev/null +++ b/dev-python/pytz-python2/files/pytz-python2-2018.4-zoneinfo-noinstall.patch @@ -0,0 +1,18 @@ +--- a/setup.py ++++ b/setup.py +@@ -15,15 +15,8 @@ + memail = 'stuart@stuartbishop.net' + packages = ['pytz'] + resources = ['zone.tab', 'locales/pytz.pot'] +-for dirpath, dirnames, filenames in os.walk(os.path.join('pytz', 'zoneinfo')): +- # remove the 'pytz' part of the path +- basepath = dirpath.split(os.path.sep, 1)[1] +- resources.extend([os.path.join(basepath, filename) +- for filename in filenames]) + package_data = {'pytz': resources} + +-assert len(resources) > 10, 'zoneinfo files not found!' +- + setup( + name='pytz', + version=pytz.VERSION, diff --git a/dev-python/pytz-python2/metadata.xml b/dev-python/pytz-python2/metadata.xml new file mode 100644 index 000000000000..467d48680dd9 --- /dev/null +++ b/dev-python/pytz-python2/metadata.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <herd>maintainer-wanted</herd> + </maintainer> + <longdescription lang="en"> + pytz brings the Olson tz database into Python. This library allows + accurate and cross platform timezone calculations using Python 2.3 + or higher. It also solves the issue of ambiguous times at the end of + daylight savings, which you can read more about in the Python + Library Reference (datetime.tzinfo). + Amost all (over 540) of the Olson timezones are supported. +</longdescription> + <stabilize-allarches/> + <upstream> + <remote-id type="pypi">pytz</remote-id> + </upstream> + <origin>calculatelinux-overlay</origin> +</pkgmetadata> diff --git a/dev-python/pytz-python2/pytz-python2-2020.1.ebuild b/dev-python/pytz-python2/pytz-python2-2020.1.ebuild new file mode 100644 index 000000000000..a5b4d186d605 --- /dev/null +++ b/dev-python/pytz-python2/pytz-python2-2020.1.ebuild @@ -0,0 +1,44 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="threads(+)" + +inherit distutils-r1 +MY_PN=pytz +MY_P=$MY_PN-$PV + +DESCRIPTION="World timezone definitions for Python" +HOMEPAGE="https://pythonhosted.org/pytz/ https://pypi.org/project/pytz/" +SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris" +IUSE="" + +RDEPEND=" + !dev-python/pytz[python_targets_python2_7] + || ( >=sys-libs/timezone-data-2017a sys-libs/glibc[vanilla] )" +DEPEND="${RDEPEND} + app-arch/unzip" + +PATCHES=( + # Use timezone-data zoneinfo. + "${FILESDIR}"/2018.4-zoneinfo.patch + # ...and do not install a copy of it. + "${FILESDIR}"/${PN}-2018.4-zoneinfo-noinstall.patch +) + +RESTRICT="test" + +S="${WORKDIR}/${MY_PN}-${PV}" + + +python_install_all() { + distutils-r1_python_install_all + rm -r ${D}/usr/share +} + diff --git a/dev-python/responses/responses-0.12.0.ebuild b/dev-python/responses/responses-0.12.0.ebuild index 0470dbdc8a58..2735eda0d7df 100644 --- a/dev-python/responses/responses-0.12.0.ebuild +++ b/dev-python/responses/responses-0.12.0.ebuild @@ -12,7 +12,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="amd64 arm arm64 hppa ~ia64 ppc ppc64 sparc x86 ~amd64-linux ~x86-linux" +KEYWORDS="amd64 arm arm64 hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux" IUSE="test" RDEPEND=" diff --git a/dev-python/retrying/Manifest b/dev-python/retrying/Manifest index ef840b4c0d4b..8044ec16f43a 100644 --- a/dev-python/retrying/Manifest +++ b/dev-python/retrying/Manifest @@ -1 +1 @@ -DIST retrying-1.3.3.tar.gz 10890 BLAKE2B b7f2dd9488e99089e842f832666c6b71f94cb7fa9394bd504c27b5bb83fac2eb3dd1b7ed59cabe0c74a17c17483520502b65027d36887580744621d1776a2342 SHA512 99b81560caf63416f0301721ed9b9f9e3527a2fee4c53aeb0630b6e860ed81baf4b12b9819ca5b81346d45c4f40dfcb479a0b25305da1f560657fd3fdf2ffa75 +DIST retrying-1.3.3.tar.gz 11648 BLAKE2B 2c518ca887dddc35bad421ad75c76cb88f08a0965272816af8667b1b151eca2dda1b0b198607f26dcda2df547ba2cb317ac927ebfc5891cd8c6203ded619f1e1 SHA512 e053e62cb71b31573b89b8fffa706c3410794b5cced829582c373a09af78158f7a16948e6ce52078589cf7d8f5bba726c889180588a2628be343f242bc40c035 diff --git a/dev-python/retrying/retrying-1.3.3.ebuild b/dev-python/retrying/retrying-1.3.3.ebuild index 881b56d471f4..a6e2fc90dd5b 100644 --- a/dev-python/retrying/retrying-1.3.3.ebuild +++ b/dev-python/retrying/retrying-1.3.3.ebuild @@ -2,22 +2,19 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=7 + PYTHON_COMPAT=( python3_{5,6,7,8,9} pypy3 ) inherit distutils-r1 DESCRIPTION="General-purpose retrying library" HOMEPAGE="https://github.com/rholder/retrying" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" +SRC_URI="https://github.com/rholder/retrying/archive/v${PV}.tar.gz -> ${P}.tar.gz" LICENSE="Apache-2.0" SLOT="0" KEYWORDS="~alpha amd64 arm ~arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~s390 sparc x86" -IUSE="" -DEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] -" -RDEPEND=" - >=dev-python/six-1.7.0[${PYTHON_USEDEP}] -" +RDEPEND=">=dev-python/six-1.7.0[${PYTHON_USEDEP}]" + +distutils_enable_tests unittest diff --git a/dev-python/soaplib/Manifest b/dev-python/soaplib/Manifest index 8b66738d576f..c82eac590fd2 100644 --- a/dev-python/soaplib/Manifest +++ b/dev-python/soaplib/Manifest @@ -1 +1 @@ -DIST soaplib-1.0.0.tar.gz 68722 SHA256 3f92388651ef4595824006094626b0bfa257cc04c53c1e129cea0e851b652dba SHA512 f63a541e55dc7ce9886ee9ef6f6ca24257dce79522a3be3928872de1406063a49c6254b40f184ec488c3ce3975602ad7b99f47602b0960b825d66b0f6aef9e3a WHIRLPOOL e237e1ae9cd916d935ebebefeb87999f748e5706daf0de00c5d83bba17ac83b9e0f943fa1164044511bee83a354dcdb98b00b10b1905c2f2efee46f0ebc3a2ea +DIST soaplib-1.0.0.tar.gz 68722 BLAKE2B f44f431cf23eef36cfb9ea0fbc7dc57e575b770ab78a4008e21a0f244c5cdb8ff0b59d0f9990cc289f121fdb9334d84678ba36801bfa29a02bfec39144ef7a19 SHA512 f63a541e55dc7ce9886ee9ef6f6ca24257dce79522a3be3928872de1406063a49c6254b40f184ec488c3ce3975602ad7b99f47602b0960b825d66b0f6aef9e3a diff --git a/dev-python/soaplib/soaplib-1.0.0-r2.ebuild b/dev-python/soaplib/soaplib-1.0.0-r3.ebuild index 6b287e3e8037..dfd908865447 100644 --- a/dev-python/soaplib/soaplib-1.0.0-r2.ebuild +++ b/dev-python/soaplib/soaplib-1.0.0-r3.ebuild @@ -18,7 +18,7 @@ IUSE="examples" RDEPEND=" dev-python/lxml - dev-python/pytz + dev-python/pytz-python2 " DEPEND="${RDEPEND} dev-python/setuptools |
