diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-08-23 14:56:14 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-08-23 14:56:14 +0100 |
commit | b818f6a820dceae80d6e3faac5fdf7be0c6fcbe2 (patch) | |
tree | ecc35732c51ff9d610d4a9e0cc77e940ef5ac9da /app-text/calibre | |
parent | 2bae4d8bcdc3862f8d7cf1963acc0a9036762d2d (diff) |
gentoo auto-resync : 23:08:2024 - 14:56:14
Diffstat (limited to 'app-text/calibre')
-rw-r--r-- | app-text/calibre/Manifest | 4 | ||||
-rw-r--r-- | app-text/calibre/calibre-7.17.0.ebuild | 246 | ||||
-rw-r--r-- | app-text/calibre/files/calibre-7.17.0-qt-texttospeech.patch | 38 |
3 files changed, 288 insertions, 0 deletions
diff --git a/app-text/calibre/Manifest b/app-text/calibre/Manifest index 3dda4e0dcecb..2b35c020c450 100644 --- a/app-text/calibre/Manifest +++ b/app-text/calibre/Manifest @@ -5,6 +5,7 @@ AUX calibre-5.44.0-Fix-compatibility-with-zeroconf-0.73.patch 1065 BLAKE2B 7a74b AUX calibre-5.44.0-icu75.patch 1294 BLAKE2B 1f05f84e5653a7c3d9162fc1dc7d91fc73b3346323e05d3c379227deece394e0754a6c2d72223ef2453abf5b062ba3ad3b4705b110bd333e643fa0a35d0a0ad4 SHA512 3eecadbd27cb178f630b80b789d3e3a437d95e883b429473414fd08d9a412a9c32201b7b859d28446523426caff292580c244a86a1b7bb117fa2b7281fd15b5f AUX calibre-5.44.0-xss-backport.patch 1272 BLAKE2B 65be0f6b97b387b37faa86f79d84e150f0a2801a8f2bde95497ebf4f292f95a56bf9c49613d727446dfa9afdef6a4f108a28e1c02cb4343bbc717834ae544896 SHA512 d8ae8fbe64c40169efd4a2f090c194d5a032b2d7072b6f7763932597b227fb12f88712290fd902cf639d40fff48a8806226037d6bb89e8bb4d1a7a79d4bdc21f AUX calibre-7.0.0-jxr-test.patch 935 BLAKE2B bc38ea2f2d10ec4859ee03ab5d18048df4cf0af5ce4076efc013013bc975966390d618c43ce621675e3b8ee8f929bfaebaa72cf6bb7d8dea544bca77d9772b60 SHA512 db8da42fdcf5b5d5dfad35c128e394cf8f51e57dda6cd1a482803429738515fc1a8b338c711679a11acb93678f35f10883e1bf282e1443ccaafe2eb470fbbfee +AUX calibre-7.17.0-qt-texttospeech.patch 1857 BLAKE2B c043883ffc42314d00754907ccbadbc6f1d4916f4d53b0cfe0a86403d251db26f07b26a169671683fd26816868e4f7538705c57024f1314d863edb39937bcee5 SHA512 246c1e8dc4f423b8d87d8e96b13d695c1efe1bd24c69b06fa82b8d655aad89d206ae1bc5998b9f2d160bcd1b87f4d0af41806ed17de711b445811a159d165a37 AUX calibre-server-3.conf 541 BLAKE2B 06593633721e6adf2cf2077dffa83953eea46ccdcdc857ad468a9b74788326e9424f6ab9058be344dbbac8e49d343f5a1e53ddb486f2018b77319a7f8f713cf4 SHA512 12ef793a5b6ffd4413f780a13cad63927a95f15d17d85d4229eb5005ead68e51779abb822f9898ab5ae8c2094affeec1f9e85c34f109499739e6726b7641542a AUX calibre-server-3.init 1796 BLAKE2B f87d785d6f6fc10fa648d40944ec8538027854bb872d9a3be6b5b35b0abf3cda1e4e93874a9422914da5eb4287f193459733956e3f1e25e61bec0c214c552c99 SHA512 88110ded1b9c6cf8d3bfc3d5889654f77578f9d299e88daea9023767b930082e00fbddbb92a6e43c46d900248f3684232d93396ec1d0e784c7ec14b44783f98a AUX e9cc00560a28f56a303cca97630ab58e519dd9c8.patch 1335 BLAKE2B eb71cb5510d2259bbc7a4fe7b54652bb543aa3d26816654da7e22a6effb0c81770a91eccccecff5fe711d0495ff5b1ab378231e3cb10dd18f3faeb301acab1ba SHA512 211ea8c0fab1de5bd076eb965eda51ee1330a69e54251fc6a16e5aa0d6ef7721aea14a57a27eb75a99c8e37418aa15bd311e6f4d03f1f05d80cd87d2f00fb995 @@ -12,6 +13,9 @@ DIST calibre-5.44.0.tar.xz 41015696 BLAKE2B c7053e728da20fccfa981ed4f56e24a4d5b3 DIST calibre-5.44.0.tar.xz.sig 566 BLAKE2B 413b95855d79bdb5b17ca5d760f834006797b4d3e413604f27d351a3392e16d647e772dc063306bf973e1156c34f68cb38152a66164bca849ebed5484e7f6065 SHA512 59957bf35a73f218241bf76cc86994d5af87cea11d3b0800e83f157bf0b2cfcaf4b6c1314562e74a1141d0c167fdb1619cb9a90e93b67f55dd55ceed77045059 DIST calibre-7.16.0.tar.xz 44833684 BLAKE2B 2b609a0d014d43998f693a69c10f6d8b0165bf97f8c9d388cf4e1e398e7254b300d53b26e5ec24af651e03bb625bb088331dc77aa2ed6edea13de2beb0e75339 SHA512 5ea11badd972422299ce143e2aa33f58f7abcfd2837acba47d2a7aa6f0997a711245273205ed043c783e5e82bbaaf7cab44e5c03c00e274a03a4ba29be53a708 DIST calibre-7.16.0.tar.xz.sig 566 BLAKE2B 1d09e8dd49ad53c88632dc23573fa9cd5403d45a308598ac4ed7d4f2dd5a84cc3ae6812ac652ff4a98fc5d67589ad1584411f7746b6b98468bf03a35a0585de6 SHA512 91f3897d95d234a8d673006273974d32cb6c5aa4953d247700d6d89d511c9b1450dc8e222eabf5d1e4d82de206e425ee440defaff38d1ca83efdbf4bcada7c7c +DIST calibre-7.17.0.tar.xz 45053400 BLAKE2B 93149c4fab7a25e1239c4b8c72b766e5ffc71eb27d1206225bc8436f26d2c76f9323e0f0f63d8444291f02a5a7e94d4500715398a71df4ab2a5b16e325e7be73 SHA512 916337dc425916110528828bac0fbdc24db9496362c1e8dad67eafdfda42b90174fb6a4352400cd34af0f11268aabed82b166b3e4875f59e317359079e10bf3b +DIST calibre-7.17.0.tar.xz.sig 566 BLAKE2B c041904919ef300f51ba7363daf7d2bc70fc8bb819ffef157e53c28f91b9716be56b1e95465180ecd67069241a5810b70ac08027f4837426a5426792fab05e49 SHA512 af88bcbf394ac6ec68c40d661545a17e956b31dd7797d1cc8490e090437206902a64c7a642cf1e34184e379c79066843959e1459eb1836bddbd615febbc85c07 EBUILD calibre-5.44.0-r5.ebuild 8978 BLAKE2B aefccace3b939a72817f8c9cf36f4687d492af4ea84f8b588199dab1134989ebf030ddcf7609c834f4ea3b313dfb403e50af8c5e007309f0b3aa6e036128706b SHA512 63cadd04ff3ffb9b2d27fde04caf7caf43f981dd012cacd36569efc305db15aca09ddaf1875308368a8001e6b047cf44f55ff6a513d9d03428963fb171d4c45b EBUILD calibre-7.16.0.ebuild 7987 BLAKE2B 15c5678554e68f5187d228175e6f65548a1ea9807bf06b7020c8e11b41a7a3e6fd03100d86ca32abc296c300309df7d9165364539cbaec15ca56c1dce03278e9 SHA512 af7c748f66e8a76338d96d20fa7d91d9d09b1bc00d8d187c9b44f952e827fbca63a3eb3d9d81302ce8b84ba911fe4ef711cba9df5b8d4a2dd9ed6d06f3b04c2d +EBUILD calibre-7.17.0.ebuild 8156 BLAKE2B 53bd5b3b6b1377ac6d7a28393d3e4ab62291764b16c540be1bace62ea293278576653a16d97b8db60daf50d1b3a7db6c4891ea705d2704832ac66c8a14797213 SHA512 d12572da0484c527a85c55dde65faf4102adbc128075cc80428b752d36d4dc7ec2975bfe1aea12a368859c35911d8f97d2d5f7ebb0f59c006bf008d4fee87479 MISC metadata.xml 745 BLAKE2B 2e1e831d9e6a1f32596b4544a7237c020e2c027a3e872fc517e2557bd8b1be6d0ddb0335f5266159c0e0fbb8776e8d048916e716b77cd011da14bbd51779922d SHA512 3d0ef51069731cac8f751af461367d74151df517cab48c0fd66f1c3a2fab1d3a92f9a06118c700dd782fddbe0055bd379bd79f81f2dbb1adcc5b2a22a443e94d diff --git a/app-text/calibre/calibre-7.17.0.ebuild b/app-text/calibre/calibre-7.17.0.ebuild new file mode 100644 index 000000000000..ba0528419925 --- /dev/null +++ b/app-text/calibre/calibre-7.17.0.ebuild @@ -0,0 +1,246 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +PYTHON_REQ_USE="sqlite,ssl" + +inherit edo toolchain-funcs python-single-r1 qmake-utils verify-sig xdg + +DESCRIPTION="Ebook management application" +HOMEPAGE="https://calibre-ebook.com/" +SRC_URI=" + https://download.calibre-ebook.com/${PV}/${P}.tar.xz + verify-sig? ( https://calibre-ebook.com/signatures/${P}.tar.xz.sig ) +" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kovidgoyal.gpg + +LICENSE=" + GPL-3+ + GPL-3 + GPL-2+ + GPL-2 + GPL-1+ + LGPL-3+ + LGPL-2.1+ + LGPL-2.1 + BSD + MIT + Old-MIT + Apache-2.0 + public-domain + || ( Artistic GPL-1+ ) + CC-BY-3.0 + OFL-1.1 + PSF-2 +" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="+font-subsetting ios speech +system-mathjax test +udisks unrar" + +RESTRICT="!test? ( test )" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# Qt slotted dependencies are used because the libheadless.so plugin links to +# QT_*_PRIVATE_ABI. It only uses core/gui/dbus. +COMMON_DEPEND="${PYTHON_DEPS} + app-i18n/uchardet + >=app-text/hunspell-1.7:= + >=app-text/podofo-0.10.0:= + app-text/poppler[utils] + dev-libs/hyphen:= + >=dev-libs/icu-57.1:= + dev-libs/openssl:= + dev-libs/snowball-stemmer:= + $(python_gen_cond_dep ' + >=dev-python/apsw-3.25.2_p1[${PYTHON_USEDEP}] + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + >=dev-python/css-parser-1.0.4[${PYTHON_USEDEP}] + dev-python/dnspython[${PYTHON_USEDEP}] + >=dev-python/feedparser-5.2.1[${PYTHON_USEDEP}] + >=dev-python/html2text-2019.8.11[${PYTHON_USEDEP}] + >=dev-python/html5-parser-0.4.9[${PYTHON_USEDEP}] + dev-python/jeepney[${PYTHON_USEDEP}] + >=dev-python/lxml-3.8.0[${PYTHON_USEDEP}] + dev-python/lxml-html-clean[${PYTHON_USEDEP}] + >=dev-python/markdown-3.0.1[${PYTHON_USEDEP}] + >=dev-python/mechanize-0.3.5[${PYTHON_USEDEP}] + >=dev-python/msgpack-0.6.2[${PYTHON_USEDEP}] + >=dev-python/netifaces-0.10.5[${PYTHON_USEDEP}] + >=dev-python/pillow-3.2.0[jpeg,truetype,webp,zlib,${PYTHON_USEDEP}] + >=dev-python/psutil-4.3.0[${PYTHON_USEDEP}] + >=dev-python/pychm-0.8.6[${PYTHON_USEDEP}] + >=dev-python/pygments-2.3.1[${PYTHON_USEDEP}] + >=dev-python/python-dateutil-2.5.3[${PYTHON_USEDEP}] + dev-python/PyQt6[gui,network,opengl,printsupport,quick,svg,widgets,${PYTHON_USEDEP}] + dev-python/PyQt6-WebEngine[widgets,${PYTHON_USEDEP}] + dev-python/regex[${PYTHON_USEDEP}] + dev-python/xxhash[${PYTHON_USEDEP}] + >=dev-python/zeroconf-0.75.0[${PYTHON_USEDEP}] + ') + dev-qt/qtbase:6=[gui,widgets] + dev-qt/qtimageformats:6 + dev-util/desktop-file-utils + dev-util/gtk-update-icon-cache + media-fonts/liberation-fonts + media-libs/fontconfig:= + >=media-libs/freetype-2:= + >=media-libs/libmtp-1.1.11:= + >=media-gfx/optipng-0.7.6 + virtual/libusb:1= + x11-misc/shared-mime-info + >=x11-misc/xdg-utils-1.0.2-r2 + font-subsetting? ( $(python_gen_cond_dep 'dev-python/fonttools[${PYTHON_USEDEP}]') ) + ios? ( + >=app-pda/usbmuxd-1.0.8 + >=app-pda/libimobiledevice-1.2.0 + ) + speech? ( $(python_gen_cond_dep 'app-accessibility/speech-dispatcher[python,${PYTHON_USEDEP}]') ) + system-mathjax? ( >=dev-libs/mathjax-3:= ) + udisks? ( virtual/libudev ) + unrar? ( dev-python/unrardll ) +" +RDEPEND="${COMMON_DEPEND} + udisks? ( sys-fs/udisks:2 )" +DEPEND="${COMMON_DEPEND} + test? ( $(python_gen_cond_dep '>=dev-python/chardet-3.0.3[${PYTHON_USEDEP}]') ) +" +BDEPEND="$(python_gen_cond_dep ' + >=dev-python/PyQt-builder-1.10.3[${PYTHON_USEDEP}] + >=dev-python/sip-5[${PYTHON_USEDEP}] + ') + virtual/pkgconfig + system-mathjax? ( dev-lang/rapydscript-ng ) + verify-sig? ( sec-keys/openpgp-keys-kovidgoyal ) +" + +PATCHES=( + # Skip calling a binary (JxrDecApp) from libjxr which is used for tests + # We don't (yet?) package libjxr and it seems to be dead upstream + # (last commit in 2017) + "${FILESDIR}/${PN}-7.0.0-jxr-test.patch" + # Don't test availability of PyQt6 tts module, which is not yet used. + # Recheck this with future version bumps... + "${FILESDIR}"/calibre-7.17.0-qt-texttospeech.patch +) + +src_prepare() { + default + + # Warning: + # + # While it might be rather tempting to add yet another sed here, + # please don't. There have been several bugs in Gentoo's packaging + # of calibre from seds-which-become-stale. Please consider + # creating a patch instead, but in any case, run the test suite + # and ensure it passes. + # + # If in doubt about a problem, checking Fedora's packaging is recommended. + + # Disable unnecessary privilege dropping for bug #287067. + sed -e "s:if os.geteuid() == 0:if False and os.geteuid() == 0:" \ + -i setup/install.py || die "sed failed to patch install.py" + + # This is only ever used at build time. It contains a small embedded copy + # of the rapydscript-ng compiler usable inside of qtwebengine, if you don't + # have rapydscript-ng (a nodejs package) itself installed. Its only purpose + # is to build some resources that come bundled in dist tarballs already... + # and which we may also need to regenerate e.g. to use system-mathjax. + # + # However, running qtwebengine violates the portage sandbox (among other + # things, it tries to create directories in /usr! amazing) so this is a + # wash anyway. The only real solution here is to package rapydscript-ng. + # + # We do not need it at build time, and *no one* needs it at install time. + # Delete the cruft. + rm -r resources/rapydscript/ || die +} + +src_compile() { + # TODO: get qmake called by setup.py to respect CC and CXX too + tc-export CC CXX + + # bug 821871 + local MY_LIBDIR="${ESYSROOT}/usr/$(get_libdir)" + export FT_LIB_DIR="${MY_LIBDIR}" HUNSPELL_LIB_DIR="${MY_LIBDIR}" PODOFO_LIB_DIR="${MY_LIBDIR}" + export QMAKE="$(qt6_get_bindir)/qmake" + + edo ${EPYTHON} setup.py build + edo ${EPYTHON} setup.py gui + + # A few different resources are bundled in the distfile by default, because + # not all systems necessarily have them. We un-vendor them, using the + # upstream integrated approach if possible. See setup/revendor.py and + # consider migrating other resources to this if they do not use it, in + # *preference* over manual rm'ing. + edo ${EPYTHON} setup.py liberation_fonts \ + --path-to-liberation_fonts "${EPREFIX}"/usr/share/fonts/liberation-fonts \ + --system-liberation_fonts + if use system-mathjax; then + edo ${EPYTHON} setup.py mathjax --path-to-mathjax "${EPREFIX}"/usr/share/mathjax --system-mathjax + edo ${EPYTHON} setup.py rapydscript + fi +} + +src_test() { + # Skipped tests: + local _test_excludes=( + # unpackaged Python dependency: py7zr + 7z + # unpackaged Python dependency: pyzstd + test_zstd + # tests if a completely unused module is bundled + pycryptodome + + $(usev !speech speech_dispatcher) + $(usev !unrar test_unrar) + + # undocumented reasons + test_mem_leaks + test_searching + ) + + edo ${PYTHON} setup.py test "${_test_excludes[@]/#/--exclude-test-name=}" +} + +src_install() { + # Bug #352625 - Some LANGUAGE values can trigger the following ValueError: + # File "/usr/lib/python2.6/locale.py", line 486, in getdefaultlocale + # return _parse_localename(localename) + # File "/usr/lib/python2.6/locale.py", line 418, in _parse_localename + # raise ValueError, 'unknown locale: %s' % localename + #ValueError: unknown locale: 46 + export -n LANG LANGUAGE ${!LC_*} + export LC_ALL=C.utf8 # bug #709682 + + # Bug #295672 - Avoid sandbox violation in ~/.config by forcing + # variables to point to our fake temporary $HOME. + export HOME="${T}/fake_homedir" + export CALIBRE_CONFIG_DIRECTORY="${HOME}/.config/calibre" + mkdir -p "${CALIBRE_CONFIG_DIRECTORY}" || die + + addpredict /dev/dri #665310 + + # If this directory doesn't exist, zsh completion won't install + dodir /usr/share/zsh/site-functions + + edo "${PYTHON}" setup.py install \ + --staging-root="${ED}/usr" \ + --prefix="${EPREFIX}/usr" \ + --libdir="${EPREFIX}/usr/$(get_libdir)" \ + --staging-libdir="${ED}/usr/$(get_libdir)" \ + --system-plugins-location="${EPREFIX}/usr/share/calibre/system-plugins" + + cp -r man-pages/ "${ED}"/usr/share/man || die + + find "${ED}"/usr/share -type d -empty -delete || die + + python_fix_shebang "${ED}/usr/bin" + + python_optimize "${ED}"/usr/$(get_libdir)/calibre "${D}/$(python_get_sitedir)" + + newinitd "${FILESDIR}"/calibre-server-3.init calibre-server + newconfd "${FILESDIR}"/calibre-server-3.conf calibre-server +} diff --git a/app-text/calibre/files/calibre-7.17.0-qt-texttospeech.patch b/app-text/calibre/files/calibre-7.17.0-qt-texttospeech.patch new file mode 100644 index 000000000000..ff50735e4788 --- /dev/null +++ b/app-text/calibre/files/calibre-7.17.0-qt-texttospeech.patch @@ -0,0 +1,38 @@ +From 6d87aa054724155c9413e5692fa1f242f9cc0efc Mon Sep 17 00:00:00 2001 +From: Eli Schwartz <eschwartz93@gmail.com> +Date: Fri, 23 Aug 2024 02:20:00 -0400 +Subject: [PATCH] tests: delete qt TTS assert which is not yet used + +It will be used in future versions of calibre, and should likely be +gated on USE=speech. +--- + src/calibre/test_build.py | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py +index 4f19363680..898caad665 100644 +--- a/src/calibre/test_build.py ++++ b/src/calibre/test_build.py +@@ -314,7 +314,7 @@ def test_apsw(self): + def test_qt(self): + if is_sanitized: + raise unittest.SkipTest('Skipping Qt build test as sanitizer is enabled') +- from qt.core import QApplication, QFontDatabase, QImageReader, QLoggingCategory, QNetworkAccessManager, QSslSocket, QTextToSpeech, QTimer ++ from qt.core import QApplication, QFontDatabase, QImageReader, QLoggingCategory, QNetworkAccessManager, QSslSocket, QTimer + QLoggingCategory.setFilterRules('''qt.webenginecontext.debug=true''') + if hasattr(os, 'geteuid') and os.geteuid() == 0: + # likely a container build, webengine cannot run as root with sandbox +@@ -348,10 +348,6 @@ def test_qt(self): + try: + ensure_app() + self.assertGreaterEqual(len(QFontDatabase.families()), 5, 'The QPA headless plugin is not able to locate enough system fonts via fontconfig') +- available_tts_engines = tuple(x for x in QTextToSpeech.availableEngines() if x != 'mock') +- self.assertTrue(available_tts_engines) +- +- self.assertGreaterEqual + from calibre.ebooks.oeb.transforms.rasterize import rasterize_svg + img = rasterize_svg(as_qimage=True) + self.assertFalse(img.isNull()) +-- +2.44.2 + |