From 469855c92562b236dfb3ef119b2a81d2c90d1b88 Mon Sep 17 00:00:00 2001 From: "Liguros - Gitlab CI/CD [develop]" Date: Thu, 6 Feb 2025 18:55:33 +0000 Subject: Adding metadata --- dev-python/aiohttp/Manifest | 1 + dev-python/aiohttp/aiohttp-3.11.12.ebuild | 135 ++++++++++++++++ dev-python/dateparser/Manifest | 2 +- dev-python/dateparser/dateparser-1.2.0.ebuild | 55 ------- dev-python/dateparser/dateparser-1.2.1.ebuild | 61 ++++++++ .../files/dateparser-1.2.0-migrate-hijridate.patch | 71 --------- dev-python/langdetect/Manifest | 2 + .../files/langdetect-1.0.9-explicit-config.patch | 13 -- dev-python/langdetect/langdetect-1.0.9.ebuild | 4 +- dev-python/langdetect/metadata.xml | 10 +- dev-python/uv/Manifest | 2 + dev-python/uv/uv-0.5.29.ebuild | 170 +++++++++++++++++++++ 12 files changed, 379 insertions(+), 147 deletions(-) create mode 100644 dev-python/aiohttp/aiohttp-3.11.12.ebuild delete mode 100644 dev-python/dateparser/dateparser-1.2.0.ebuild create mode 100644 dev-python/dateparser/dateparser-1.2.1.ebuild delete mode 100644 dev-python/dateparser/files/dateparser-1.2.0-migrate-hijridate.patch delete mode 100644 dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch create mode 100644 dev-python/uv/uv-0.5.29.ebuild (limited to 'dev-python') diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest index 33f666162715..a7c39e12f1d3 100644 --- a/dev-python/aiohttp/Manifest +++ b/dev-python/aiohttp/Manifest @@ -1 +1,2 @@ DIST aiohttp-3.11.11.tar.gz 7669618 BLAKE2B 148c15503ca2b5449b8afe4d0cadb054625cd12c7e3d958547c7ba6b46ca4d4da1b4091db0f97e2003c8bc7a582c36f4c6aba062a8fe0b0894740042853b68e9 SHA512 7b5c6fdf15a3bdae49b28f6955f31f528aff29f635b8bbbe60f0677dea8fbbe5de8e09b3cbb85f8a846942470b9e44c9d287aaf9eb08f8e8d9fab3bd64079edf +DIST aiohttp-3.11.12.tar.gz 7673175 BLAKE2B 56f511d5bf10c60823bf3fef9552add3c8cac4e68dc6848931bc875417067bf61a0437adce0ffa13a47c595546f31b497f9044b0b3f2c6d48b31bff7a7b75905 SHA512 9f770f5182394acace994d40ca3b7028698242ce5e0caecd16b2e511c9463ae43e3fac9aabfc21afcbb7e17a44e324d19d88f7e1c81d0b4646f81923f9b4f160 diff --git a/dev-python/aiohttp/aiohttp-3.11.12.ebuild b/dev-python/aiohttp/aiohttp-3.11.12.ebuild new file mode 100644 index 000000000000..7ff90c02861c --- /dev/null +++ b/dev-python/aiohttp/aiohttp-3.11.12.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2025 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_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="HTTP client/server for asyncio" +HOMEPAGE=" + https://github.com/aio-libs/aiohttp/ + https://pypi.org/project/aiohttp/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+native-extensions test-rust" + +RDEPEND=" + >=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}] + >=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}] + >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}] + >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] + dev-python/brotlicffi[${PYTHON_USEDEP}] + >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}] + >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] + >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}] + >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + =dev-python/async-timeout-4.0[${PYTHON_USEDEP}] + ' 3.10) +" +BDEPEND=" + native-extensions? ( + dev-python/cython[${PYTHON_USEDEP}] + ) + test? ( + dev-python/freezegun[${PYTHON_USEDEP}] + www-servers/gunicorn[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/re-assert[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' 'python3*') + test-rust? ( + dev-python/trustme[${PYTHON_USEDEP}] + ) + ) +" + +DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # increase the timeout a little + sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die + # xfail_strict fails on py3.10 + sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die + sed -i -e 's:-Werror::' Makefile || die + + distutils-r1_src_prepare +} + +python_configure() { + if [[ ! -d tools && ${EPYTHON} != pypy3 ]] && use native-extensions + then + # workaround missing files + mkdir tools || die + > requirements/cython.txt || die + > tools/gen.py || die + chmod +x tools/gen.py || die + # force rehashing first + emake requirements/.hash/cython.txt.hash + > .update-pip || die + > .install-cython || die + emake cythonize + fi +} + +python_compile() { + # implicitly disabled for pypy3 + if ! use native-extensions; then + local -x AIOHTTP_NO_EXTENSIONS=1 + fi + + distutils-r1_python_compile +} + +python_test() { + local EPYTEST_IGNORE=( + # proxy is not packaged + tests/test_proxy_functional.py + # python_on_whales is not packaged + tests/autobahn/test_autobahn.py + # benchmarks + tests/test_benchmarks_client.py + tests/test_benchmarks_client_request.py + tests/test_benchmarks_client_ws.py + tests/test_benchmarks_cookiejar.py + tests/test_benchmarks_http_websocket.py + tests/test_benchmarks_http_writer.py + tests/test_benchmarks_web_fileresponse.py + tests/test_benchmarks_web_middleware.py + tests/test_benchmarks_web_response.py + tests/test_benchmarks_web_urldispatcher.py + ) + + local EPYTEST_DESELECT=( + # Internet + tests/test_client_session.py::test_client_session_timeout_zero + # broken by irrelevant deprecation warnings + tests/test_circular_imports.py::test_no_warnings + ) + + # upstream unconditionally blocks building C extensions + # on PyPy3 but the test suite needs an explicit switch + if [[ ${EPYTHON} == pypy3 ]] || ! use native-extensions; then + local -x AIOHTTP_NO_EXTENSIONS=1 + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin + rm -rf aiohttp || die + epytest -m "not internal and not dev_mode" \ + -p rerunfailures --reruns=5 +} diff --git a/dev-python/dateparser/Manifest b/dev-python/dateparser/Manifest index 44c8fffea20e..1f05fece6f51 100644 --- a/dev-python/dateparser/Manifest +++ b/dev-python/dateparser/Manifest @@ -1 +1 @@ -DIST dateparser-1.2.0.tar.gz 307260 BLAKE2B b4611dfc4fccaf5f129e4d9aa3debe4a6d4242a44896305b909e6c34728ba153be92659b2f0c3a5da028d3863789d9c3a4236676087346b5f3f4aeb1f57b7a1e SHA512 74d5975f515dee096d83d10b72e5dc66ab197d50f24c129560ffb87eef4abd1422d8236555496d1ab1c0bfb832729e9c0d3ea2ca2c9c49da19963f0f2c1c1eb4 +DIST dateparser-1.2.1.tar.gz 309924 BLAKE2B 09b7cf4148edea37bb80d1734b2f5a3ddac7965e6d46bc1775f2f0807d3421c80bd3927dd62135a80adc99451a85a2961b61335784d191cfdd1fdc51b3d81298 SHA512 85e1c5cabb8acebd63ec60c0913ac89b362b64edfbe5af06bcd5968ed7be6383d4035ec9f45afadc0d10fc95a3f538702285d75365c4f8e4522ac9643f4ed4da diff --git a/dev-python/dateparser/dateparser-1.2.0.ebuild b/dev-python/dateparser/dateparser-1.2.0.ebuild deleted file mode 100644 index b4f3aa74bf62..000000000000 --- a/dev-python/dateparser/dateparser-1.2.0.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) -DISTUTILS_USE_PEP517=setuptools -inherit distutils-r1 optfeature pypi - -DESCRIPTION="Date parsing library designed to parse dates from HTML pages" -HOMEPAGE=" - https://pypi.org/project/dateparser/ - https://github.com/scrapinghub/dateparser -" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND=" - dev-python/python-dateutil[${PYTHON_USEDEP}] - dev-python/pytz[${PYTHON_USEDEP}] - dev-python/regex[${PYTHON_USEDEP}] - dev-python/tzlocal[${PYTHON_USEDEP}] -" -BDEPEND="test? ( - dev-libs/fastText[python,${PYTHON_USEDEP}] - dev-python/convertdate[${PYTHON_USEDEP}] - dev-python/hijridate[${PYTHON_USEDEP}] - dev-python/langdetect[${PYTHON_USEDEP}] - dev-python/parameterized[${PYTHON_USEDEP}] -)" - -PATCHES=( "${FILESDIR}/${P}-migrate-hijridate.patch" ) - -EPYTEST_IGNORE=( - # tests that require network - tests/test_dateparser_data_integrity.py -) - -EPYTEST_DESELECT=( - # tests that require network - tests/test_language_detect.py::CustomLangDetectParserTest::test_custom_language_detect_fast_text_{0,1} -) - -distutils_enable_tests pytest - -distutils_enable_sphinx docs \ - dev-python/sphinx-rtd-theme - -pkg_postinst() { - optfeature "calendars support" "dev-python/hijridate dev-python/convertdate" - optfeature "fasttext support" "dev-libs/fastText[python]" - optfeature "langdetect support" dev-python/langdetect -} diff --git a/dev-python/dateparser/dateparser-1.2.1.ebuild b/dev-python/dateparser/dateparser-1.2.1.ebuild new file mode 100644 index 000000000000..838987d5f124 --- /dev/null +++ b/dev-python/dateparser/dateparser-1.2.1.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +DISTUTILS_USE_PEP517=setuptools +inherit distutils-r1 optfeature pypi + +DESCRIPTION="Date parsing library designed to parse dates from HTML pages" +HOMEPAGE=" + https://pypi.org/project/dateparser/ + https://github.com/scrapinghub/dateparser +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + dev-python/python-dateutil[${PYTHON_USEDEP}] + dev-python/pytz[${PYTHON_USEDEP}] + dev-python/regex[${PYTHON_USEDEP}] + dev-python/tzlocal[${PYTHON_USEDEP}] +" +BDEPEND="test? ( + dev-libs/fastText[python,${PYTHON_USEDEP}] + dev-python/convertdate[${PYTHON_USEDEP}] + dev-python/hijridate[${PYTHON_USEDEP}] + dev-python/langdetect[${PYTHON_USEDEP}] + dev-python/parameterized[${PYTHON_USEDEP}] +)" + +distutils_enable_tests pytest + +distutils_enable_sphinx docs \ + dev-python/sphinx-rtd-theme + +python_test() { + # Need to set TZ when testing with gentoo docker images. + # Their /etc/{timezone,localtime} are inconsistent, which causes + # to tests to fail. + local -x TZ=UTC + + local EPYTEST_IGNORE=( + # tests that require network + tests/test_dateparser_data_integrity.py + ) + local EPYTEST_DESELECT=( + # tests that require network + tests/test_language_detect.py::CustomLangDetectParserTest::test_custom_language_detect_fast_text_{0,1} + ) + + epytest +} + +pkg_postinst() { + optfeature "calendars support" "dev-python/hijridate dev-python/convertdate" + optfeature "fasttext support" "dev-libs/fastText[python]" + optfeature "langdetect support" dev-python/langdetect +} diff --git a/dev-python/dateparser/files/dateparser-1.2.0-migrate-hijridate.patch b/dev-python/dateparser/files/dateparser-1.2.0-migrate-hijridate.patch deleted file mode 100644 index 3d488ca53b9d..000000000000 --- a/dev-python/dateparser/files/dateparser-1.2.0-migrate-hijridate.patch +++ /dev/null @@ -1,71 +0,0 @@ -https://github.com/scrapinghub/dateparser/pull/1211 -From: pastalian -Date: Thu, 25 Jan 2024 21:14:28 +0900 -Subject: [PATCH] Migrate from hijri-converter to hijridate - ---- a/dateparser/calendars/hijri_parser.py -+++ b/dateparser/calendars/hijri_parser.py -@@ -1,4 +1,4 @@ --from hijri_converter import convert -+from hijridate import Gregorian, Hijri - - from dateparser.calendars import non_gregorian_parser - -@@ -6,19 +6,17 @@ - class hijri: - @classmethod - def to_gregorian(cls, year=None, month=None, day=None): -- g = convert.Hijri( -- year=year, month=month, day=day, validate=False -- ).to_gregorian() -+ g = Hijri(year=year, month=month, day=day, validate=False).to_gregorian() - return g.datetuple() - - @classmethod - def from_gregorian(cls, year=None, month=None, day=None): -- h = convert.Gregorian(year, month, day).to_hijri() -+ h = Gregorian(year, month, day).to_hijri() - return h.datetuple() - - @classmethod - def month_length(cls, year, month): -- h = convert.Hijri(year=year, month=month, day=1) -+ h = Hijri(year=year, month=month, day=1) - return h.month_length() - - ---- a/docs/introduction.rst -+++ b/docs/introduction.rst -@@ -223,13 +223,13 @@ Dependencies - - * dateutil_'s module ``relativedelta`` for its freshness parser. - * convertdate_ to convert *Jalali* dates to *Gregorian*. -- * hijri-converter_ to convert *Hijri* dates to *Gregorian*. -+ * hijridate_ to convert *Hijri* dates to *Gregorian*. - * tzlocal_ to reliably get local timezone. - * ruamel.yaml_ (optional) for operations on language files. - - .. _dateutil: https://pypi.python.org/pypi/python-dateutil - .. _convertdate: https://pypi.python.org/pypi/convertdate --.. _hijri-converter: https://pypi.python.org/pypi/hijri-converter -+.. _hijridate: https://pypi.python.org/pypi/hijridate - .. _tzlocal: https://pypi.python.org/pypi/tzlocal - .. _ruamel.yaml: https://pypi.python.org/pypi/ruamel.yaml - -@@ -261,4 +261,4 @@ To be able to use them you need to install the `calendar` extra by typing: - >>> HijriCalendar('17-01-1437 هـ 08:30 مساءً').get_date() - DateData(date_obj=datetime.datetime(2015, 10, 30, 20, 30), period='day', locale=None) - --.. note:: `HijriCalendar` only works with Python ≥ 3.6. -+.. note:: `HijriCalendar` only works with Python ≥ 3.7. ---- a/setup.py -+++ b/setup.py -@@ -41,7 +41,7 @@ - "console_scripts": ["dateparser-download = dateparser_cli.cli:entrance"], - }, - extras_require={ -- "calendars": ["hijri-converter", "convertdate"], -+ "calendars": ["hijridate", "convertdate"], - "fasttext": ["fasttext"], - "langdetect": ["langdetect"], - }, diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest index a11d7c268c91..37a64204a00a 100644 --- a/dev-python/langdetect/Manifest +++ b/dev-python/langdetect/Manifest @@ -1 +1,3 @@ DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db +EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9b3521c5721afa49a58e0c35267f7d82bb56bd7e1d6d3152be0d36cd220180a526cb20b90b1113fbf0fff4a512137570f0b3bcf864498b7b7cc00403cb61ca27 SHA512 16d311400bf84a5f04e15f3da4b68b2810e4b005009f4d03dc8a487176dfc294403c976c412c83dcfa8084a49ef7b7d5389b43fb2ba446ce107ce4595e3558c6 +MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45 diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch deleted file mode 100644 index 637368d2f237..000000000000 --- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch +++ /dev/null @@ -1,13 +0,0 @@ -Fix "Package 'langdetect.profiles' is absent from the `packages` configuration." - ---- a/setup.py -+++ b/setup.py -@@ -18,7 +18,7 @@ setup( - author_email='michal.danilak@gmail.com', - url='https://github.com/Mimino666/langdetect', - keywords='language detection library', -- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'], -+ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'], - include_package_data=True, - install_requires=['six'], - license='MIT', diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild index eb2586280d80..56733bbffc48 100644 --- a/dev-python/langdetect/langdetect-1.0.9.ebuild +++ b/dev-python/langdetect/langdetect-1.0.9.ebuild @@ -1,4 +1,4 @@ -# Copyright 2022-2024 Gentoo Authors +# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -19,6 +19,4 @@ KEYWORDS="~amd64" RDEPEND="dev-python/six[${PYTHON_USEDEP}]" -PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" ) - distutils_enable_tests unittest diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml index c0f74ac187e2..020e07f2a3dd 100644 --- a/dev-python/langdetect/metadata.xml +++ b/dev-python/langdetect/metadata.xml @@ -2,9 +2,11 @@ - pastalian46@gmail.com - Takuya Wakazono + marcin.deranek@slonko.net + Marcin Deranek - - gentoo-guru-overlay + + https://github.com/Mimino666/langdetect/issues + + slonko-overlay \ No newline at end of file diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest index 53dfa8c31ca2..25e775bfa37c 100644 --- a/dev-python/uv/Manifest +++ b/dev-python/uv/Manifest @@ -9,3 +9,5 @@ DIST uv-0.5.25-crates.tar.xz 53882356 BLAKE2B b0762449534ccf0be33d2c4d50fd9bc018 DIST uv-0.5.26.gh.tar.gz 3353978 BLAKE2B 1920825eaf2d2eca3d5e5fdaba9677e08f6bbb6d1b078a3ffe706f1344ccd9de19237c0470cc902a06f5fbfa9bad0af51c67a10141e76c9f9f182217c461c094 SHA512 e723775465594959b8e70c1bd43f0ddce0b8d64d7ddb157f28385593aa6c40153b1152b2c22534862da0605e2a0ccb7dffd1f95e07d8003eb37433bb3b887b73 DIST uv-0.5.27-crates.tar.xz 47539520 BLAKE2B 701e7bf284a3506555a6da6ccc0f3aba5161305b4acc065f68c14ebf25f79a8bce3739589e5d3461aa8d058860d387790e6f007ce74309c03c1623574ef15c85 SHA512 fe276c9cfb0d07d4ba56427fde7067480f32cb21341b3967bfa65217e94d78992692808981dcd321731339c81ee7a44cfcd103557d63ebd727c04cbc403217fe DIST uv-0.5.27.gh.tar.gz 3356614 BLAKE2B 143d1ee171a46a4bdedec79767f04973233ba389ed053358383834f9b6fdbd2334ce695adc63a76f3ffcc92427739bfc4adbf57b19280f98c1904b607f2ecbc2 SHA512 ce597666983b24e85992cf7aa313506255d58b97ac0e98300c5f01f8418a71e2c7357b9fdbd2cd1b56b3a8cfff13d3014f18f740e11561cd4eea03438efec990 +DIST uv-0.5.29-crates.tar.xz 47545324 BLAKE2B 880a4c51619031cabd6e375373e5a1a99f0ad344d08fd0bca4bfdb3b7c72fe4a23e34cad93167c23c7b2e7b09e350ae4e0b832786e09246f297aea146f9cc3fc SHA512 fa6489400af45462dc59ccd35a8c942dc635bad4ebf7481cc2eda585147a6016b17eca42ef6d0fa233d714def6d56fef205abe4782aba4610c324fd2825eef62 +DIST uv-0.5.29.gh.tar.gz 3375616 BLAKE2B bce1af0353271f8c0ecf073286ed26303953920f68fdb3e24aa7f03926dbc0a9165e93ee2b92bc554ce5eeca3c2d40413e3eee5c83c85dc85da7f737a9af5cb3 SHA512 ebcc2f4d25e800fdd864b1aa64ed0c2f7e5ab2f9e4a80e43f7ecc27d4a0fedac1062644bd954e15b39055d562ec2366c089a934fd65bb103cb50e2b5414a6d97 diff --git a/dev-python/uv/uv-0.5.29.ebuild b/dev-python/uv/uv-0.5.29.ebuild new file mode 100644 index 000000000000..d917efbee3a8 --- /dev/null +++ b/dev-python/uv/uv-0.5.29.ebuild @@ -0,0 +1,170 @@ +# Copyright 2024-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" +" + +declare -A GIT_CRATES=( + [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%' + [pubgrub]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%' + [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%' + [version-ranges]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%/version-ranges' +) + +RUST_MIN_VER="1.83.0" + +inherit cargo check-reqs + +CRATE_PV=0.5.29 +DESCRIPTION="A Python package installer and resolver, written in Rust" +HOMEPAGE=" + https://github.com/astral-sh/uv/ + https://pypi.org/project/uv/ +" +# pypi sdist misses scripts/, needed for tests +SRC_URI=" + https://github.com/astral-sh/uv/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz + ${CARGO_CRATE_URIS} +" +if [[ ${PKGBUMPING} != ${PVR} ]]; then + SRC_URI+=" + https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz + " +fi + +# most of the code +LICENSE="|| ( Apache-2.0 MIT )" +# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below +# Dependent crate licenses +LICENSE+=" + 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD ISC MIT + MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB +" +# ring crate +LICENSE+=" openssl" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86" +IUSE="test" +RESTRICT="test" +PROPERTIES="test_network" + +DEPEND=" + app-arch/bzip2:= + app-arch/xz-utils:= + app-arch/zstd:= +" +RDEPEND=" + ${DEPEND} +" +BDEPEND=" + test? ( + dev-lang/python:3.8 + dev-lang/python:3.9 + dev-lang/python:3.10 + dev-lang/python:3.11 + dev-lang/python:3.12 + !!~dev-python/uv-0.5.0 + ) +" + +QA_FLAGS_IGNORED="usr/bin/.*" + +check_space() { + local CHECKREQS_DISK_BUILD=3G + use debug && CHECKREQS_DISK_BUILD=9G + check-reqs_pkg_setup +} + +pkg_pretend() { + check_space +} + +pkg_setup() { + check_space + rust_pkg_setup +} + +src_prepare() { + default + + # enable system libraries where supported + export ZSTD_SYS_USE_PKG_CONFIG=1 + # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys? + + # remove unbundled sources, just in case + find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die + + # bzip2-sys requires a pkg-config file + # https://github.com/alexcrichton/bzip2-rs/issues/104 + mkdir "${T}/pkg-config" || die + export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}} + cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die + Name: bzip2 + Version: 9999 + Description: + Libs: -lbz2 + EOF +} + +src_configure() { + local myfeatures=( + git + pypi + python + ) + + cargo_src_configure --no-default-features +} + +src_compile() { + cd crates/uv || die + cargo_src_compile +} + +src_test() { + # work around https://github.com/astral-sh/uv/issues/4376 + local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH} + local -x COLUMNS=100 + local -x PYTHONDONTWRITEBYTECODE= + # fix tests failing because of our config + local -x XDG_CONFIG_DIRS=${T} + + cd crates/uv || die + cargo_src_test --no-fail-fast +} + +src_install() { + cd crates/uv || die + cargo_src_install + + insinto /etc/xdg/uv + newins - uv.toml <<-EOF || die + # These defaults match Fedora, see: + # https://src.fedoraproject.org/rpms/uv/pull-request/18 + + # By default ("automatic"), uv downloads missing Python versions + # automatically and keeps them in the user's home directory. + # Disable that to make downloading opt-in, and especially + # to avoid unnecessarily fetching custom Python when the distro + # package would be preferable. Python builds can still be + # downloaded manually via "uv python install". + # + # https://docs.astral.sh/uv/reference/settings/#python-downloads + python-downloads = "manual" + + # By default ("managed"), uv always prefers self-installed + # Python versions over the system Python, independently + # of versions. Since we generally expect users to use that + # to install old Python versions not in ::gentoo anymore, + # this effectively means that uv would end up preferring very + # old Python versions over the newer ones that are provided + # by the system. Default to using the system versions to avoid + # this counter-intuitive behavior. + # + # https://docs.astral.sh/uv/reference/settings/#python-preference + python-preference = "system" + EOF +} -- cgit v1.3