From 0c97119fc8982c1a6f367de25542834e4dd6cda4 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 12 Mar 2024 12:46:41 +0000 Subject: gentoo auto-resync : 12:03:2024 - 12:46:41 --- media-gfx/Manifest.gz | Bin 37842 -> 37840 bytes media-gfx/hydrus/Manifest | 10 +- .../hydrus/files/userpath-in-local-share.patch | 13 +- media-gfx/hydrus/hydrus-534.ebuild | 150 -------------------- media-gfx/hydrus/hydrus-538.ebuild | 149 -------------------- media-gfx/hydrus/hydrus-565.ebuild | 155 +++++++++++++++++++++ 6 files changed, 167 insertions(+), 310 deletions(-) delete mode 100644 media-gfx/hydrus/hydrus-534.ebuild delete mode 100644 media-gfx/hydrus/hydrus-538.ebuild create mode 100644 media-gfx/hydrus/hydrus-565.ebuild (limited to 'media-gfx') diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz index 57077e06c1c8..ca1fac4da0f0 100644 Binary files a/media-gfx/Manifest.gz and b/media-gfx/Manifest.gz differ diff --git a/media-gfx/hydrus/Manifest b/media-gfx/hydrus/Manifest index d4c9b1cb0c86..cfc7a27cb653 100644 --- a/media-gfx/hydrus/Manifest +++ b/media-gfx/hydrus/Manifest @@ -1,9 +1,9 @@ AUX hydrus-client 105 BLAKE2B cb1c55f0831eda122eebb9363eab50180b8746038405ba514a6821c8e4e892e59f18b9b29b5f3117d62d758ad6e5d06fdacde7fe0d8ad59a8e674134c945c77d SHA512 56dc21cd54d0fbf95d1a127ac387d29ae99583210c97a1e77233e1bfc08fb631caf1ac3be1034c43e0485e4238ecc96009533d4079560807ff1126d37b75fe6f AUX hydrus-server 69 BLAKE2B 245851a0bfd7ed4e947d229cae980daaaf213e2ff4238b5bc6c75b12832f3fbf7c95d34d72f4fc7b6194ed06df8652e5042bc69ab40367d09c55796e9013392b SHA512 70fa7877b7d5efc7786926af6a02a468a0c8ebbb553a61bc7e049622ddf00b5ca67876af74e17d0d9408e5f950acf8aa0fc007baaf1a656d3fb5368fa15fcd22 -AUX userpath-in-local-share.patch 443 BLAKE2B 2562bdb6207a35a872a7c1b22ee378504ec4f53ee7b64bdce31649d62780cae00b42be7297aa82e069a9df5e01f76c508d97c47a25a9dffec8cbf8829e7ff674 SHA512 f96cf0040a663c534bd539e40413c95928ea45238f765f741db3c251b7c141fe99989b092d4033695a99e7267fec7fac74641fdc4a0887e74d23d3695f8ce467 -DIST hydrus-534.tar.gz 41548094 BLAKE2B bec115deae4202869f34ed205d4b6f10b63b17fcb3d950250c1cfb2752f021c57487172deb0cebf29a349822d02ee520f3761320f49214ff8adcde7716eda984 SHA512 52f21ae2121fefd83efa2c0df8087fc6872fcb5a89ef1bab71ab968e148b51326f521dcc0f7636a45a9a9ce7661921402d1fc792de1f0c9251efb49e86cb08f7 -DIST hydrus-538.tar.gz 41659526 BLAKE2B 4e6f4058fc8eefb154ec08667d9d586e48df688de2e887bae05cc381dc15c56ba2da4a97d1194bac2547af24a690e8d6962f05792babb68a9f0d5fb9ca23047e SHA512 da7bebf294356455597d8397391edcd3c7af032ef2d494ed2e91277c58bd29516068ba9ed99fa5df8d7bbfc47beb3488b3d73a0d99cb946d57546b095b6d6cd6 -EBUILD hydrus-534.ebuild 4662 BLAKE2B e8ea3f9971318f96a1ea3ba789d12dbec7e882723c4afdf2e8d40aa0636ea885c0e4fb912e852567098db8a39aaa71d5a7bdbe8ab470552c638497482050ac20 SHA512 4d1f850cb07dbc045ed40941a57d930bacd0591e00c6ab228190436a99d892887409b0fa98ded6ca16ee1d0aa2581043b5e108ee628db294fe2c6b1c520b1e5f -EBUILD hydrus-538.ebuild 4694 BLAKE2B 991178a1b0492857c85fecc15e840887a63c33f1b9ed6cd8f5b7c3bdf27dbf1b6a5b8e09af0a4f9541dda9ee9dadb26d5f1b8ec4e7d77d0b8a2a5c3c24354e0a SHA512 37d888d5423c395fb77652275e44a952bd22f6b36e44aea612a2ed7d373eb925e0a3d8a9376ba2978e0468def104b6c8465cdbcc2f8ba6acf758b40e449bfaae +AUX userpath-in-local-share.patch 492 BLAKE2B b6de719f01072ccbb055fb9fb10980bf2f36972c2b998b23c90001e33d2b103d3d55f288a08db8bbb9b2e743bafab4c9ed304f94d1abd6869fbc39dd226f8673 SHA512 0811d610c29ecae4cdecf6d8f01950738f02cdebee84223c884ba708347c91692b13bff00eaa835790df6bf9d0db79c3a78c1abee9adf6a4e57903cc18cc2587 +DIST hydrus-3500-mpeg-error.patch 1632 BLAKE2B 9cc969a3a2d476ea606f3f280ecd6e4cc7f628420586e651377945d370a6c50464b118da1c96a577bc55b13bbac946801b9cff251922299f91e4a76dabf7edf9 SHA512 8769d63c7b2a345e1a7bfa0dae200bca03b991ef6a217150e3f50c95f3d1235305242348aa8fabf1183fc3d787498bbead8a96145e4cdd2251f67032469f095c +DIST hydrus-565.tar.gz 46360280 BLAKE2B 7a9492db917b7f7d10fd92c668dff2206111b5734a707ea86e8d3f5c95359126da31e3bd6fdcea64c621527f5a30e608fdf8cd36b7b7b70185a37c3cc7483180 SHA512 442dde4c9e557c162b8a5cc23f22472d8c48d7717513a192875b413a59000897c05b2b050c16ad480cdbb18548485f51b5e8651e44cb2057fc8e6eb1b99e8f26 +DIST hydrus-test-fixes.patch 820 BLAKE2B 9d912868142cd3e7763241652e81172236094de6d0cf4df888d7203d34ed37b469c4829401a6e3bda945e3683db9f8e577ef21040cb5d57b0e6c01c2c619655b SHA512 a6a322a77638122fdd1f74ca57c23360aa8d58d97877e9517db9d185c11a8187e807b9478533a97a4654d58342b0541cc7eb89b83075bc4c38ceda0effe06ce0 +EBUILD hydrus-565.ebuild 5016 BLAKE2B d5291a005bad4893070b983c56b4fdc5de7e49224da928caf769ba01dc7fe4159641c14c1e29e8ce6fc74562ccfa92bd8215c4d912bd30d67c7213c3486d93ac SHA512 7ea6495c21d3e98733db00a6174b2f2ef51c0da8ba37cf01ccb4b2076761c582f9e3925e1ffd3cb76d925522b7e39430585224e979bfaf1ca9105ae50c328bd6 EBUILD hydrus-9999.ebuild 4694 BLAKE2B 991178a1b0492857c85fecc15e840887a63c33f1b9ed6cd8f5b7c3bdf27dbf1b6a5b8e09af0a4f9541dda9ee9dadb26d5f1b8ec4e7d77d0b8a2a5c3c24354e0a SHA512 37d888d5423c395fb77652275e44a952bd22f6b36e44aea612a2ed7d373eb925e0a3d8a9376ba2978e0468def104b6c8465cdbcc2f8ba6acf758b40e449bfaae MISC metadata.xml 836 BLAKE2B 049faa70763ba176b6e4930abcdb5f4b4b87bd243759aba42dec32b9f2a199b3f2c33f0415ffdd1a392af3b461d939e633ec1f9333b0ff538f74d24306790fbe SHA512 0404c79e85e51eaba13fef930e695f168074e69734d3d8a604515f77196706bae9d36a2df9b3db0530c9f17b32881602509c7e22e7383c957a67e13c2a46e7bb diff --git a/media-gfx/hydrus/files/userpath-in-local-share.patch b/media-gfx/hydrus/files/userpath-in-local-share.patch index 8b4c12be071e..02fe25868ecc 100644 --- a/media-gfx/hydrus/files/userpath-in-local-share.patch +++ b/media-gfx/hydrus/files/userpath-in-local-share.patch @@ -1,12 +1,13 @@ diff --git a/hydrus/core/HydrusConstants.py b/hydrus/core/HydrusConstants.py -index 05fff23..d68fc06 100644 +index 43a2bc8..c62943e 100644 --- a/hydrus/core/HydrusConstants.py +++ b/hydrus/core/HydrusConstants.py -@@ -67,6 +67,7 @@ if USERPATH_DB_DIR == desired_userpath_db_dir: +@@ -85,7 +85,7 @@ else: + desired_userpath_db_dir = os.path.join( '~', 'Hydrus' ) - USERPATH_DB_DIR = None - -+USERPATH_DB_DIR = os.path.expanduser ( os.path.join( '~', '.local', 'share', 'hydrus', 'db' ) ) - LICENSE_PATH = os.path.join( BASE_DIR, 'license.txt' ) +-USERPATH_DB_DIR = os.path.expanduser( desired_userpath_db_dir ) ++USERPATH_DB_DIR = os.path.expanduser ( os.path.join( '~', '.local', 'share', 'hydrus', 'db' ) ) + if USERPATH_DB_DIR == desired_userpath_db_dir: + diff --git a/media-gfx/hydrus/hydrus-534.ebuild b/media-gfx/hydrus/hydrus-534.ebuild deleted file mode 100644 index 851d373d97a8..000000000000 --- a/media-gfx/hydrus/hydrus-534.ebuild +++ /dev/null @@ -1,150 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) -PYTHON_REQ_USE="sqlite" - -DOCS_BUILDER=mkdocs -DOCS_DEPEND="dev-python/mkdocs-material dev-python/regex" - -inherit python-single-r1 desktop docs optfeature - -DESCRIPTION="A booru-like media organizer for the desktop" -HOMEPAGE="https://hydrusnetwork.github.io/hydrus/ https://github.com/hydrusnetwork/hydrus" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/hydrusnetwork/hydrus.git" -else - SRC_URI="https://github.com/hydrusnetwork/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - - KEYWORDS="~amd64" -fi - -# hydrus itself is WTFPL -# icons included are CC-BY-2.5 -LICENSE="WTFPL-2 CC-BY-2.5" -SLOT="0" -IUSE="test" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -RESTRICT="!test? ( test )" - -# RDEPEND is sorted as such: -# - No specific requirements -# - Specific version or slot -RDEPEND=" - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/cbor2[${PYTHON_USEDEP}] - dev-python/chardet[${PYTHON_USEDEP}] - dev-python/cloudscraper[${PYTHON_USEDEP}] - dev-python/html5lib[${PYTHON_USEDEP}] - dev-python/lxml[${PYTHON_USEDEP}] - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pillow[${PYTHON_USEDEP},lcms] - dev-python/psutil[${PYTHON_USEDEP}] - dev-python/pyopenssl[${PYTHON_USEDEP}] - dev-python/pyside2[widgets,gui,${PYTHON_USEDEP}] - dev-python/python-mpv[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/send2trash[${PYTHON_USEDEP}] - dev-python/service-identity[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] - dev-python/twisted[${PYTHON_USEDEP}] - media-libs/opencv[python,png,jpeg,${PYTHON_USEDEP}] - media-video/ffmpeg - - >=dev-python/QtPy-1.9.0-r4[pyside2,${PYTHON_USEDEP}] - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - ') -" -BDEPEND=" - ${RDEPEND} - $(python_gen_cond_dep ' - test? ( - dev-python/httmock[${PYTHON_USEDEP}] - dev-python/mock[${PYTHON_USEDEP}] - - dev-python/pyside2[widgets,gui,multimedia,${PYTHON_USEDEP}] - ) - ') -" - -PATCHES=( - "${FILESDIR}/userpath-in-local-share.patch" -) - -src_prepare() { - default - - # Contains pre-built binaries for other systems and a broken swf renderer for linux - rm -r bin/ || die - # Python requirements file, not needed - rm requirements.txt || die - # Remove unneeded additional scripts - rm *.command *.sh *.bat || die -} - -src_compile() { - python_optimize "${S}" - docs_compile -} - -src_test() { - # The tests use unittest, but are run with a custom runner script. - # QT_QPA_PLATFORM is required to make them run without X - local -x QT_QPA_PLATFORM=offscreen - "${EPYTHON}" "${S}/hydrus_test.py" || die "Tests failed" -} - -src_install() { - local doc="${EPREFIX}/usr/share/doc/${PF}" - elog "Hydrus includes an excellent manual, that can either be viewed at" - elog "${doc}/html/help/index.html" - elog "or accessed through the hydrus help menu." - - mv "help my client will not boot.txt" "help_my_client_will_not_boot.txt" || die - - local DOCS=(COPYING README.md help_my_client_will_not_boot.txt db/) - einstalldocs - - # Files only needed for testing - rm hydrus_test.py hydrus/hydrus_test_boot.py || die - rm -r hydrus/test/ static/testing/ || die - # Build files used for CI and development, not actually needed. Has to be deleted after src_compile. - # because it contains documentation - rm -r static/build_files static/requirements || die - - # ${DOCS[@]} files are copied into doc - # ${S}/docs/ is the markdown source code for documentation - # .gitignore/.github files aren't needed for the program to work, same with mkdocs files - rm -r "${DOCS[@]}" "${S}/docs/" .gitignore .github/ mkdocs.yml mkdocs-gh-pages.yml || die - if use doc; then - # ${S}/_build = ${DOCS_OUTDIR}/.. , these have already been copied, remove before installation - rm -r "${S}/_build" || die - # The program expects to find documentation here, so add a symlink to doc - dosym "${doc}/html" /opt/hydrus/help - fi - - insinto /opt/hydrus - doins -r "${S}"/. - - exeinto /usr/bin - python_newexe - hydrus-server < <(sed "s/python/${EPYTHON}/" "${FILESDIR}/hydrus-server" || die) - python_newexe - hydrus-client < <(sed "s/python/${EPYTHON}/" "${FILESDIR}/hydrus-client" || die) - - make_desktop_entry "hydrus-client" "Hydrus Client" "/opt/hydrus/static/hydrus_non-transparent.png" \ - "AudioVideo;FileTools;Graphics;Network;" -} - -pkg_postinst() { - optfeature "automatic port forwarding support" "net-libs/miniupnpc" - optfeature "bandwidth charts support" "dev-python/pyside2[charts]" - optfeature "memory compression in the client" "dev-python/lz4" - optfeature "SOCKS proxy support" "dev-python/requests[socks5]" "dev-python/PySocks" -} diff --git a/media-gfx/hydrus/hydrus-538.ebuild b/media-gfx/hydrus/hydrus-538.ebuild deleted file mode 100644 index 6c1cb6719c2e..000000000000 --- a/media-gfx/hydrus/hydrus-538.ebuild +++ /dev/null @@ -1,149 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -PYTHON_COMPAT=( python3_{9..11} ) -PYTHON_REQ_USE="sqlite" - -DOCS_BUILDER=mkdocs -DOCS_DEPEND="dev-python/mkdocs-material dev-python/regex" - -inherit python-single-r1 desktop docs optfeature - -DESCRIPTION="A booru-like media organizer for the desktop" -HOMEPAGE="https://hydrusnetwork.github.io/hydrus/ https://github.com/hydrusnetwork/hydrus" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - - EGIT_REPO_URI="https://github.com/hydrusnetwork/hydrus.git" -else - SRC_URI="https://github.com/hydrusnetwork/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - - KEYWORDS="~amd64" -fi - -# hydrus itself is WTFPL -# icons included are CC-BY-2.5 -LICENSE="WTFPL-2 CC-BY-2.5" -SLOT="0" -IUSE="test" -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -RESTRICT="!test? ( test )" - -# RDEPEND is sorted as such: -# Python libraries with no specific requirements -# Python libraries with specific version, slot, or use requirements -# Non-python dependencies -RDEPEND=" - ${PYTHON_DEPS} - $(python_gen_cond_dep ' - dev-python/beautifulsoup4[${PYTHON_USEDEP}] - dev-python/cbor2[${PYTHON_USEDEP}] - dev-python/chardet[${PYTHON_USEDEP}] - dev-python/cloudscraper[${PYTHON_USEDEP}] - dev-python/html5lib[${PYTHON_USEDEP}] - dev-python/lxml[${PYTHON_USEDEP}] - dev-python/numpy[${PYTHON_USEDEP}] - dev-python/pillow[${PYTHON_USEDEP},lcms] - dev-python/psutil[${PYTHON_USEDEP}] - dev-python/pyopenssl[${PYTHON_USEDEP}] - dev-python/python-mpv[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/send2trash[${PYTHON_USEDEP}] - dev-python/service-identity[${PYTHON_USEDEP}] - dev-python/twisted[${PYTHON_USEDEP}] - - dev-python/QtPy[widgets,gui,svg,multimedia,${PYTHON_USEDEP}] - || ( dev-python/QtPy[pyside2] dev-python/QtPy[pyside6] ) - - media-libs/opencv[python,png,jpeg,${PYTHON_USEDEP}] - media-video/ffmpeg - ') -" -BDEPEND=" - ${RDEPEND} - $(python_gen_cond_dep ' - test? ( - dev-python/httmock[${PYTHON_USEDEP}] - dev-python/mock[${PYTHON_USEDEP}] - ) - ') -" - -PATCHES=( - "${FILESDIR}/userpath-in-local-share.patch" -) - -src_prepare() { - default - - # Contains pre-built binaries for other systems and a broken swf renderer for linux - rm -r bin/ || die - # Python requirements file, not needed - rm requirements.txt || die - # Remove unneeded additional scripts - rm *.command *.sh *.bat || die -} - -src_compile() { - python_optimize "${S}" - docs_compile -} - -src_test() { - # The tests use unittest, but are run with a custom runner script. - # QT_QPA_PLATFORM is required to make them run without X - local -x QT_QPA_PLATFORM=offscreen - "${EPYTHON}" "${S}/hydrus_test.py" || die "Tests failed" -} - -src_install() { - local doc="${EPREFIX}/usr/share/doc/${PF}" - elog "Hydrus includes an excellent manual, that can either be viewed at" - elog "${doc}/html/help/index.html" - elog "or accessed through the hydrus help menu." - - mv "help my client will not boot.txt" "help_my_client_will_not_boot.txt" || die - - local DOCS=(COPYING README.md help_my_client_will_not_boot.txt db/) - einstalldocs - - # Files only needed for testing - rm hydrus_test.py hydrus/hydrus_test_boot.py || die - rm -r hydrus/test/ static/testing/ || die - # Build files used for CI and development, not actually needed. Has to be deleted after src_compile. - # because it contains documentation - rm -r static/build_files static/requirements || die - - # ${DOCS[@]} files are copied into doc - # ${S}/docs/ is the markdown source code for documentation - # .gitignore/.github files aren't needed for the program to work, same with mkdocs files - rm -r "${DOCS[@]}" "${S}/docs/" .gitignore .github/ mkdocs.yml mkdocs-gh-pages.yml || die - if use doc; then - # ${S}/_build = ${DOCS_OUTDIR}/.. , these have already been copied, remove before installation - rm -r "${S}/_build" || die - # The program expects to find documentation here, so add a symlink to doc - dosym "${doc}/html" /opt/hydrus/help - fi - - insinto /opt/hydrus - doins -r "${S}"/. - - exeinto /usr/bin - python_newexe - hydrus-server < <(sed "s/python/${EPYTHON}/" "${FILESDIR}/hydrus-server" || die) - python_newexe - hydrus-client < <(sed "s/python/${EPYTHON}/" "${FILESDIR}/hydrus-client" || die) - - make_desktop_entry "hydrus-client" "Hydrus Client" "/opt/hydrus/static/hydrus_non-transparent.png" \ - "AudioVideo;FileTools;Graphics;Network;" -} - -pkg_postinst() { - optfeature "automatic port forwarding support" "net-libs/miniupnpc" - optfeature "memory compression in the client" "dev-python/lz4" - optfeature "SOCKS proxy support" "dev-python/requests[socks5]" "dev-python/PySocks" - optfeature "bandwidth charts support" "dev-python/pyside2[charts]" "dev-python/pyside6[charts]" -} diff --git a/media-gfx/hydrus/hydrus-565.ebuild b/media-gfx/hydrus/hydrus-565.ebuild new file mode 100644 index 000000000000..1fd94b6ee116 --- /dev/null +++ b/media-gfx/hydrus/hydrus-565.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_REQ_USE="sqlite" + +DOCS_BUILDER=mkdocs +DOCS_DEPEND="dev-python/mkdocs-material dev-python/regex" + +inherit python-single-r1 desktop docs optfeature + +DESCRIPTION="A booru-like media organizer for the desktop" +HOMEPAGE="https://hydrusnetwork.github.io/hydrus/ https://github.com/hydrusnetwork/hydrus" + +if [[ "${PV}" == "9999" ]]; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/hydrusnetwork/hydrus.git" +else + SRC_URI=" + https://github.com/hydrusnetwork/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://github.com/vaartis/hydrus/commit/5d2505a1eb4721f7750861f7622c46adec31db8b.diff -> hydrus-3500-mpeg-error.patch + https://github.com/vaartis/hydrus/commit/dc20196f47ac29568a40cd04a45cf4fc5f237603.diff -> hydrus-test-fixes.patch +" + + KEYWORDS="~amd64" +fi + +# hydrus itself is WTFPL +# icons included are CC-BY-2.5 +LICENSE="WTFPL-2 CC-BY-2.5" +SLOT="0" +IUSE="test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RESTRICT="!test? ( test )" + +# RDEPEND is sorted as such: +# Python libraries with no specific requirements +# Python libraries with specific version, slot, or use requirements +# Non-python dependencies +RDEPEND=" + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + dev-python/cbor2[${PYTHON_USEDEP}] + dev-python/chardet[${PYTHON_USEDEP}] + dev-python/cloudscraper[${PYTHON_USEDEP}] + dev-python/html5lib[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP},lcms] + dev-python/psutil[${PYTHON_USEDEP}] + dev-python/pyopenssl[${PYTHON_USEDEP}] + dev-python/python-mpv[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/send2trash[${PYTHON_USEDEP}] + dev-python/service-identity[${PYTHON_USEDEP}] + dev-python/twisted[${PYTHON_USEDEP}] + + dev-python/QtPy[widgets,gui,svg,multimedia,${PYTHON_USEDEP}] + || ( dev-python/QtPy[pyside2] dev-python/QtPy[pyside6] ) + + media-libs/opencv[python,png,jpeg,${PYTHON_USEDEP}] + media-video/ffmpeg + ') +" +BDEPEND=" + ${RDEPEND} + $(python_gen_cond_dep ' + test? ( + dev-python/httmock[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + ) + ') +" + +PATCHES=( + "${FILESDIR}/userpath-in-local-share.patch" + "${DISTDIR}/hydrus-3500-mpeg-error.patch" + "${DISTDIR}/hydrus-test-fixes.patch" +) + +src_prepare() { + default + + # Contains pre-built binaries for other systems and a broken swf renderer for linux + rm -r bin/ || die + # Python requirements file, not needed + rm requirements.txt || die + # Remove unneeded additional scripts + rm *.command *.sh *.bat || die +} + +src_compile() { + python_optimize "${S}" + docs_compile +} + +src_test() { + # The tests use unittest, but are run with a custom runner script. + # QT_QPA_PLATFORM is required to make them run without X + local -x QT_QPA_PLATFORM=offscreen + "${EPYTHON}" "${S}/hydrus_test.py" || die "Tests failed" +} + +src_install() { + local doc="${EPREFIX}/usr/share/doc/${PF}" + elog "Hydrus includes an excellent manual, that can either be viewed at" + elog "${doc}/html/help/index.html" + elog "or accessed through the hydrus help menu." + + mv "help my client will not boot.txt" "help_my_client_will_not_boot.txt" || die + + local DOCS=(COPYING README.md help_my_client_will_not_boot.txt db/) + einstalldocs + + # Files only needed for testing + rm hydrus_test.py hydrus/hydrus_test_boot.py || die + rm -r hydrus/test/ static/testing/ || die + # Build files used for CI and development, not actually needed. Has to be deleted after src_compile. + # because it contains documentation + rm -r static/build_files static/requirements || die + + # ${DOCS[@]} files are copied into doc + # ${S}/docs/ is the markdown source code for documentation + # .gitignore/.github files aren't needed for the program to work, same with mkdocs files + rm -r "${DOCS[@]}" "${S}/docs/" .gitignore .github/ mkdocs.yml mkdocs-gh-pages.yml || die + if use doc; then + # ${S}/_build = ${DOCS_OUTDIR}/.. , these have already been copied, remove before installation + rm -r "${S}/_build" || die + # The program expects to find documentation here, so add a symlink to doc + dosym "${doc}/html" /opt/hydrus/help + fi + + insinto /opt/hydrus + doins -r "${S}"/. + + exeinto /usr/bin + python_newexe - hydrus-server < <(sed "s/python/${EPYTHON}/" "${FILESDIR}/hydrus-server" || die) + python_newexe - hydrus-client < <(sed "s/python/${EPYTHON}/" "${FILESDIR}/hydrus-client" || die) + + make_desktop_entry "hydrus-client" "Hydrus Client" "/opt/hydrus/static/hydrus_non-transparent.png" \ + "AudioVideo;FileTools;Graphics;Network;" +} + +pkg_postinst() { + optfeature "automatic port forwarding support" "net-libs/miniupnpc" + optfeature "memory compression in the client" "dev-python/lz4" + optfeature "SOCKS proxy support" "dev-python/requests[socks5]" "dev-python/PySocks" + optfeature "bandwidth charts support" "dev-python/pyside2[charts]" "dev-python/pyside6[charts]" +} -- cgit v1.2.3