summaryrefslogtreecommitdiff
path: root/app-text/calibre
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-10-18 10:02:49 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-10-18 10:02:49 +0100
commit8aed242683822c23f5ed6a295d3464161e2d0880 (patch)
treecb1e15198402ba7e5f401a02469a6e7219a2e9b3 /app-text/calibre
parentd0678ca0b0a7eefe3151a0b6c78f5ec2dd1c0ad8 (diff)
gentoo auto-resync : 18:10:2023 - 10:02:48
Diffstat (limited to 'app-text/calibre')
-rw-r--r--app-text/calibre/Manifest7
-rw-r--r--app-text/calibre/calibre-5.44.0-r1.ebuild28
-rw-r--r--app-text/calibre/calibre-5.44.0-r2.ebuild266
-rw-r--r--app-text/calibre/files/calibre-5.44.0-Fix-compatibility-with-zeroconf-0.73.patch26
-rw-r--r--app-text/calibre/metadata.xml7
5 files changed, 313 insertions, 21 deletions
diff --git a/app-text/calibre/Manifest b/app-text/calibre/Manifest
index 6210a6cbe719..61ec98c9b9ef 100644
--- a/app-text/calibre/Manifest
+++ b/app-text/calibre/Manifest
@@ -1,10 +1,13 @@
AUX calibre-2.9.0-no_updates_dialog.patch 1661 BLAKE2B c75fc49a621e8dbd16ee1bad748110399cf09a404b4a905d3f723bac1827787e4749f464ba026700b6e5b3cc0ee646a92de00f1f58d10cf12dc9bc91195ee8b6 SHA512 9663b95ed64bdc2bc40692922384d1c6073177eee58a49c412883c4d2ae098e4e0b4ea51b80443108b7c0c3e4f3fda60c00fc3be4d0b62a5d79d982697927235
AUX calibre-5.31.0-qt-image-test.patch 691 BLAKE2B b0eb6e3a5f74277b967d2002ad1090107a4a131fa2c1107fdb9ea0ca8593e7872e73a4c6d657670b5de1a1296567fa87f5a891514e379b83925a8d0c55154bdc SHA512 29a86e8416eff1f47f49790472480ebf6dc4c0dc771d045b0c3ea632e0df6d05f5fe23adac9510135b944757dc84c1f96cae55ef4860dc68bd68ee6a3ab3902b
AUX calibre-5.35.0-jxr-test.patch 827 BLAKE2B 0a94ac5b12ee2ec732d3ff68979c2060b0b218eee27409b3c351a9cc0b6bccce2260b8b387b442ae10f31483b20bd6d672f7d5424f7d9a8297a1bd14af2f7793 SHA512 259a3b4882bf0fbb01cb22974e219a621a2b337d6f638234a806148b11142fdbf9ac36ae38e71fcb7e18bd61362b34cf3c221ba1df317ec6ea8668591ad2d3ff
+AUX calibre-5.44.0-Fix-compatibility-with-zeroconf-0.73.patch 1065 BLAKE2B 7a74b7d7788340f96b326619f5e2bd916ff21644f0554b2507fcea439eec8217b8b002a2da3b99021fa576a6d3a6fd15d82222f005b8a4fbf37ab5016f33bdb9 SHA512 13f6fc949cc8c5c66013c772cd40429a679fa067d7828cc02e416ecbd556eafb56bebc80bc85a8b442feb3e6b94518450252e701e6426f5a2cde9d102312cf87
AUX calibre-server-3.conf 541 BLAKE2B 06593633721e6adf2cf2077dffa83953eea46ccdcdc857ad468a9b74788326e9424f6ab9058be344dbbac8e49d343f5a1e53ddb486f2018b77319a7f8f713cf4 SHA512 12ef793a5b6ffd4413f780a13cad63927a95f15d17d85d4229eb5005ead68e51779abb822f9898ab5ae8c2094affeec1f9e85c34f109499739e6726b7641542a
AUX calibre-server-3.init 1796 BLAKE2B f87d785d6f6fc10fa648d40944ec8538027854bb872d9a3be6b5b35b0abf3cda1e4e93874a9422914da5eb4287f193459733956e3f1e25e61bec0c214c552c99 SHA512 88110ded1b9c6cf8d3bfc3d5889654f77578f9d299e88daea9023767b930082e00fbddbb92a6e43c46d900248f3684232d93396ec1d0e784c7ec14b44783f98a
DIST calibre-5.43.0.tar.xz 38641220 BLAKE2B dddf9e5f7303845f8d86826d38d08dfbf05f144c4fb80d215197f51dc6685f09d848148f00f9795c441f8cd8c541ed9d4988b0a5d2020ce98eb8f8bcd4853dac SHA512 1a5b95c621e47b660841d989445ab56244b9c805aa5d01efc4d95d8c37c5290e93523cedec92a6ca12d16e5f74b63743d6e682bf4084f400d080678ff540a190
DIST calibre-5.44.0.tar.xz 41015696 BLAKE2B c7053e728da20fccfa981ed4f56e24a4d5b382b7687c92ecb039b078fd4828de0529380093e4ab33f77d78aa54a59758c1620cf8f918937a9a64f13decdf77ee SHA512 3d79e76d820cd1a41605dfd4c1d992599a6e4a759e57a8383d42d86982177e4539313f59e647758ab1896ce5874cb2a93c7678bf962e332c44171651aabf0230
+DIST calibre-5.44.0.tar.xz.sig 566 BLAKE2B 413b95855d79bdb5b17ca5d760f834006797b4d3e413604f27d351a3392e16d647e772dc063306bf973e1156c34f68cb38152a66164bca849ebed5484e7f6065 SHA512 59957bf35a73f218241bf76cc86994d5af87cea11d3b0800e83f157bf0b2cfcaf4b6c1314562e74a1141d0c167fdb1619cb9a90e93b67f55dd55ceed77045059
EBUILD calibre-5.43.0.ebuild 10192 BLAKE2B 97e9e7e9cce94e0206ef3b4a93b442a1cd008021755e780a0e2fa0d22d7452a2c8a5f3d99dbad1da61f030033a56d159d37de790ef816c9aaf8d78762b931ecc SHA512 fc70706a3079a7d0e089072773a32378be3ea220f2d4d921bbe002a67f6dd8ddeeec2a2cc6a74c312101ad6ee798223a3b5f9460c16aee30ba97e105d531f537
-EBUILD calibre-5.44.0-r1.ebuild 10201 BLAKE2B 45b41952133880c1c28820cb3a65c08ce001641a2ef17b37152ea36563b4562eb09264608a163e92d467d9aa8fe8aa14c13fc35befc2d7dc59192287fababf97 SHA512 7f040849a079e776f99970191af14edd3c006a1fc8c3f719bf72b65d96d83e7d90e0ea93df027e2dc8a1074ec602b6e9e9a160b141b941654875d4b49fd0aed4
-MISC metadata.xml 364 BLAKE2B 970d39f28421dbb398cef4dd957d5723f7596d0a9c99f40cceb55909d339e79261cf4b6de552b1855e8afcf9c09ba2b5332c5deb0c097b2d6c83f0f31a47bc7c SHA512 ae6a8dfd2b4055258c3fc85c3874725afb9c35bbe085e667ae50002bd26eaf8522d1f3cf809e06821fec70009a4a9646ed449a4dfb2d79d398942f39dbf8ac49
+EBUILD calibre-5.44.0-r1.ebuild 9883 BLAKE2B 3a801266bc5b9e620624da95e4d5371d2f3a6069defc33f20e9556d52c0694332cf1b066ea5e925d4903a92ea93aa94e7d4fb64eb35155f8974ef55f6eebe1f1 SHA512 6507510dfa88c77d4089852793a6766cf61a608fba03a2e87dd5b17ffcc00959822e041c1389f8960ead82d2daba7a6642daf6149c73f0dd7296aabe74735518
+EBUILD calibre-5.44.0-r2.ebuild 8739 BLAKE2B cac6ff34848d71cc7b4c27094e60fc9315c5eecfe497f5ceda72b928ce87f9c3b9af0a8ac72fe8cb4bfc25f8e0b156a8a87183efae19a9ad3da4f0e1cbbb18b8 SHA512 353b344cde07d298e604bff64c318f179102a0866f6bfff6adcbb09b73937e0fff6d7b7cc07031b8d965f407a0c4af59c2ba0c8c3e5fc952c0d898de2405b47e
+MISC metadata.xml 572 BLAKE2B be33ecb84304bebc23c7f92529f410a58941ed15c9083c488d443305a99c1c64dff0d3ba9f82de2a0c0f3b6277decfa70d00baafa0cbf46af6a3fcb9f44ea202 SHA512 cff8a886c1b4bc491b7745197b91048b242110fea6a4b1826764d1157adf3f44e79a9a24bb3aa840c9748c96c716cc9590c2851b79986b837f0e6d239ca84a41
diff --git a/app-text/calibre/calibre-5.44.0-r1.ebuild b/app-text/calibre/calibre-5.44.0-r1.ebuild
index ba8f956e0af1..7b4d5e9dea2c 100644
--- a/app-text/calibre/calibre-5.44.0-r1.ebuild
+++ b/app-text/calibre/calibre-5.44.0-r1.ebuild
@@ -6,11 +6,15 @@ EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
PYTHON_REQ_USE="ipv6(+),sqlite,ssl"
-inherit toolchain-funcs python-single-r1 qmake-utils xdg-utils
+inherit toolchain-funcs python-single-r1 qmake-utils verify-sig xdg-utils
DESCRIPTION="Ebook management application"
HOMEPAGE="https://calibre-ebook.com/"
-SRC_URI="https://download.calibre-ebook.com/${PV}/${P}.tar.xz"
+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="${BROOT}/usr/share/openpgp-keys/kovidgoyal.gpg"
LICENSE="
GPL-3+
@@ -115,7 +119,9 @@ BDEPEND="$(python_gen_cond_dep '
')
>=virtual/podofo-build-0.9.6_pre20171027
<virtual/podofo-build-0.10
- virtual/pkgconfig"
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-kovidgoyal )
+"
PATCHES=(
# Don't prompt the user for updates - they've installed via
@@ -281,23 +287,7 @@ src_install() {
newconfd "${FILESDIR}"/calibre-server-3.conf calibre-server
}
-pkg_preinst() {
- # Indentify stray directories from upstream's "Binary install"
- # method (see bug 622728).
- CALIBRE_LIB_DIR=/usr/$(get_libdir)/calibre
- CALIBRE_LIB_CONTENT=$(for x in "${ED}${CALIBRE_LIB_DIR}"/*; do
- printf -- "${x##*/} "; done) || die "Failed to list ${ED}${CALIBRE_LIB_DIR}"
-}
-
pkg_postinst() {
- [[ -n ${CALIBRE_LIB_DIR} ]] || die "CALIBRE_LIB_DIR is unset"
- local x
- for x in "${EROOT}${CALIBRE_LIB_DIR}"/*; do
- if [[ " ${CALIBRE_LIB_CONTENT} " != *" ${x##*/} "* ]]; then
- elog "Purging '${x}'"
- rm -rf "${x}"
- fi
- done
xdg_desktop_database_update
xdg_mimeinfo_database_update
xdg_icon_cache_update
diff --git a/app-text/calibre/calibre-5.44.0-r2.ebuild b/app-text/calibre/calibre-5.44.0-r2.ebuild
new file mode 100644
index 000000000000..28908e49f5d8
--- /dev/null
+++ b/app-text/calibre/calibre-5.44.0-r2.ebuild
@@ -0,0 +1,266 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE="ipv6(+),sqlite,ssl"
+
+inherit toolchain-funcs python-single-r1 qmake-utils verify-sig xdg-utils
+
+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="${BROOT}/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
+"
+KEYWORDS="~amd64 ~arm ~x86"
+SLOT="0"
+IUSE="ios speech test +udisks"
+
+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-text/hunspell-1.7:=
+ >=app-text/podofo-0.9.6_pre20171027:=
+ <app-text/podofo-0.10:=
+ 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/cchardet[${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/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/zeroconf[${PYTHON_USEDEP}]
+ >=dev-python/PyQt5-5.15.5_pre2107091435[gui,widgets,network,printsupport,svg,${PYTHON_USEDEP}]
+ >=dev-python/PyQtWebEngine-5.15.5_pre2108100905[${PYTHON_USEDEP}]
+ dev-python/regex[${PYTHON_USEDEP}]
+ ')
+ dev-qt/qtimageformats:5
+ dev-qt/qtcore:5=
+ dev-qt/qtdbus:5=
+ dev-qt/qtgui:5=[jpeg,png]
+ dev-qt/qtwidgets:5
+ 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
+ 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}]') )
+ udisks? ( virtual/libudev )"
+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/podofo-build-0.9.6_pre20171027
+ <virtual/podofo-build-0.10
+ virtual/pkgconfig
+ verify-sig? ( sec-keys/openpgp-keys-kovidgoyal )
+"
+
+PATCHES=(
+ # Don't prompt the user for updates - they've installed via
+ # an ebuild.
+ "${FILESDIR}/${PN}-2.9.0-no_updates_dialog.patch"
+
+ # 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}-5.35.0-jxr-test.patch"
+
+ # fix compatibility with recent versions of zeroconf
+ "${FILESDIR}"/${PN}-5.44.0-Fix-compatibility-with-zeroconf-0.73.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"
+ sed -e "/^ os.chdir(os.path.join(src_dir, 'build'))$/a\
+\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ self.check_call(['sed', \
+'-e', 's|^CFLAGS .*|\\\\\\\\0 ${CFLAGS}|', \
+'-e', 's|^CXXFLAGS .*|\\\\\\\\0 ${CXXFLAGS}|', \
+'-e', 's|^LFLAGS .*|\\\\\\\\0 ${LDFLAGS}|', \
+'-i', os.path.join(os.path.basename(src_dir), 'Makefile')])" \
+ -e "s|open(self.j(bdir, '.qmake.conf'), 'wb').close()|open(self.j(bdir, '.qmake.conf'), 'wb').write(b'QMAKE_LFLAGS += ${LDFLAGS}')|" \
+ -i setup/build.py || die "sed failed to patch build.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="$(qt5_get_bindir)/qmake"
+
+ ${EPYTHON} setup.py build || die
+ ${EPYTHON} setup.py gui || die
+
+ # 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.
+ ${EPYTHON} setup.py liberation_fonts \
+ --path-to-liberation_fonts "${EPREFIX}"/usr/share/fonts/liberation-fonts \
+ --system-liberation_fonts || die
+}
+
+src_test() {
+ # Skipped tests:
+ local _test_excludes=(
+ # unpackaged Python dependency: py7zr
+ 7z
+ # unpackaged Python dependency: unrardll
+ test_unrar
+ # tests if a completely unused module is bundled
+ pycryptodome
+
+ $(usev !speech speech_dispatcher)
+
+ # undocumented reasons
+ test_mem_leaks
+ test_searching
+ )
+
+ ${PYTHON} setup.py test "${_test_excludes[@]/#/--exclude-test-name=}" || die
+}
+
+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 #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
+
+ "${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" || die
+
+ cp -r man-pages/ "${ED}"/usr/share/man || die
+
+ find "${ED}"/usr/share -type d -empty -delete || die
+
+ einfo "Converting python shebangs"
+ python_fix_shebang "${ED}/usr/bin"
+
+ einfo "Compiling python modules"
+ 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
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+}
diff --git a/app-text/calibre/files/calibre-5.44.0-Fix-compatibility-with-zeroconf-0.73.patch b/app-text/calibre/files/calibre-5.44.0-Fix-compatibility-with-zeroconf-0.73.patch
new file mode 100644
index 000000000000..79af5d94bb59
--- /dev/null
+++ b/app-text/calibre/files/calibre-5.44.0-Fix-compatibility-with-zeroconf-0.73.patch
@@ -0,0 +1,26 @@
+From 5d8d85c649b181747d182f676cfd76f843bd61f0 Mon Sep 17 00:00:00 2001
+From: Kovid Goyal <kovid@kovidgoyal.net>
+Date: Sun, 1 Oct 2023 15:08:59 +0530
+Subject: [PATCH] Fix compatibility with zeroconf >= 0.73
+
+Fixes #2038 (fix compatibility with newer zeroconf)
+---
+ src/calibre/devices/smart_device_app/driver.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/calibre/devices/smart_device_app/driver.py b/src/calibre/devices/smart_device_app/driver.py
+index 87608f305b..b41c3a0063 100644
+--- a/src/calibre/devices/smart_device_app/driver.py
++++ b/src/calibre/devices/smart_device_app/driver.py
+@@ -2175,6 +2175,8 @@ def monkeypatch_zeroconf():
+ # "monkeypatch" zeroconf with a function without the check
+ try:
+ from zeroconf._utils.name import service_type_name
++ # zeroconf 0.73 uses an lru cache so we need __wrapped__
++ service_type_name = getattr(service_type_name, '__wrapped__', service_type_name)
+ service_type_name.__kwdefaults__['strict'] = False
+ except ImportError:
+ import zeroconf
+--
+2.41.0
+
diff --git a/app-text/calibre/metadata.xml b/app-text/calibre/metadata.xml
index a969c28b1737..7a4fb8fcb017 100644
--- a/app-text/calibre/metadata.xml
+++ b/app-text/calibre/metadata.xml
@@ -4,8 +4,15 @@
<maintainer type="person">
<email>zmedico@gentoo.org</email>
</maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>eschwartz93@gmail.com</email>
+ <name>Eli Schwartz</name>
+ </maintainer>
<upstream>
<remote-id type="sourceforge">calibre</remote-id>
<remote-id type="github">kovidgoyal/calibre</remote-id>
</upstream>
+ <use>
+ <flag name="speech">Enable text-to-speech support</flag>
+ </use>
</pkgmetadata>