Cleanup and python 3.13

This commit is contained in:
Mario Fetka
2025-05-05 10:23:40 +02:00
parent 7c1ee4ca45
commit b56141d74d
121 changed files with 9006 additions and 479 deletions

View File

@@ -0,0 +1,4 @@
AUX fs-uae-launcher-3.0.0-ROMs.patch 626 BLAKE2B 2662476f496345e6dc2f169b8c3e6e579ba68c3c7c1d9c782ce2dff39394520bde6dc1a52d9d43f562bddec9dc28daa3d0e7e1e93f1da48a0a932e1415ad40ea SHA512 8b607f64cd1c66601f7fccf5332377a85e905a6d9ba9fadb9a7234d5f36c350590011141602e093ee7a30dce4c9c6c0e9928b8b7a0be716eeaa15aeff1eacce0
DIST fs-uae-launcher-3.1.70.tar.xz 7707368 BLAKE2B fce6e47b1e09fbfae4959cffe55fec5803aa4dca511af76d621fba2156eee5d76164c0ff5dfad75864b3c2fd5c0a8b5968181538d37b9a039ffd8ab037eeafa2 SHA512 6a4eca273ebd21f64ee0a863497fb39c8b17b6dba0b99a0122f33ea688fb2b341998280b3d0ab4cac2d913bc15834dfec3a1662331dea48933135a82e29f5a83
EBUILD fs-uae-launcher-3.1.70.ebuild 1766 BLAKE2B 41851f4fe6da67a487b3228bd27cafb41e6353a8777fd594bebd45afe0ea6358132443d3290b7a51a8023fdee7e1885fadf65d003142045d5cd25e56ea537ebe SHA512 5d6a87332cceb908f6d45e45f883dc155a3c9005a13abaf9fec5bc0f4d27a2f9258d0cc53be857e1267d60e2cf1be0797c4737917b8e5364449a4b6ec506ec0c
MISC metadata.xml 409 BLAKE2B 0e27dad4e68facd0066f0f7d02e859eef7147a16cffa734b74efce77eea44ed333052e3a2a9956c052d9c7e8459b50893b0af78eb2061d1c0a1eaf32597ee1d0 SHA512 a4cf13ffb131f6049cdbd83c16ee1114651450d874dca73f68dfa19686ab09021277e860068a4ed6e8318d9bb1b750f861cb2a693945bcd8d0d4eece7f576e94

View File

@@ -0,0 +1,14 @@
diff -Naur a/fsgs/amiga/roms.py b/fsgs/amiga/roms.py
--- a/fsgs/amiga/roms.py 2019-06-21 17:49:42.000000000 +0100
+++ b/fsgs/amiga/roms.py 2019-07-21 21:42:14.135600616 +0100
@@ -10,7 +10,9 @@
# amiga-os-130.rom (decrypted, patched)
# Kickstart v1.3 r34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!]
# Kickstart v1.3 r34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[o] (patch)
- "891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
+ "891e9a547772fe0c6c19b610baf8bc4ea7fcb785",
+ # kick13.rom - from Upgrade Commodore Amiga 500 (1989)
+ "90933936cce43ca9bc6bf375662c076b27e3c458",
]
A500_1_2_KICKSTARTS = [

View File

@@ -0,0 +1,66 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_SINGLE_IMPL=yes
inherit distutils-r1 xdg
DESCRIPTION="PyQt5-based launcher for FS-UAE"
HOMEPAGE="https://fs-uae.net/"
SRC_URI="https://fs-uae.net/files/FS-UAE-Launcher/Stable/${PV}/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc64"
IUSE="lha"
RESTRICT="test" # The test files are just boilerplate.
RDEPEND="
app-emulation/fs-uae
$(python_gen_cond_dep '
dev-python/pyqt5[${PYTHON_USEDEP},declarative,gui,network,opengl,widgets]
dev-python/pyopengl[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
lha? ( dev-python/lhafile[${PYTHON_USEDEP}] )
')
"
BDEPEND="
sys-devel/gettext
"
PATCHES=(
"${FILESDIR}"/${PN}-3.0.0-ROMs.patch
)
python_compile_all() {
emake mo
}
python_install_all() {
emake install-data DESTDIR="${D}" prefix="${EPREFIX}"/usr
mv "${ED}"/usr/share/doc/{${PN},${PF}} || die
}
pkg_postinst() {
xdg_pkg_postinst
elog "Some important information:"
elog
ewarn " - Do not use QtCurve, it will crash PyQt5!"
elog
elog " - By default, FS-UAE creates its directories under Documents/FS-UAE."
elog " If your Documents directory is not configured according to the XDG"
elog " user diretory spec, ~/FS-UAE will be used as a fallback."
elog
elog " - You can override this by putting the path to the desired base"
elog " directory in a special config file. The config file will be read"
elog " from ~/.config/fs-uae/base-dir by both FS-UAE and FS-UAE Launcher"
elog " if it exists."
elog
elog " Alternatively, you can start FS-UAE and/or FS-UAE Launcher with"
elog " --base-dir=/path/to/desired/dir"
}

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>chewi@gentoo.org</email>
<name>James Le Cuirot</name>
</maintainer>
<upstream>
<remote-id type="github">FrodeSolheim/fs-uae-launcher</remote-id>
</upstream>
<use>
<flag name="lha">Enable LHA archive support</flag>
</use>
</pkgmetadata>

View File

@@ -1,5 +1,6 @@
AUX 050_virtualbox-5.2.8-nopie.patch 13011 BLAKE2B 17e94f0abbf52f5ee33538e63078f4cfc641fd72fc558a0f51dc3de033f2e2a2b4c38bb680847e80b1fed558e6ae287a5e1d8059ae54f59a1409215fb2424900 SHA512 a5af5766b8be4adda6fb1e1901ef18c88c24f59ac311afc58cc6d02555562f934c46159aa956b109342fb9890b1bd4af747d600c34ba8a211feebb8c9fd15715
AUX 10-virtualbox.rules 576 BLAKE2B 11654424fdfe0276df88907476eda6ecdc84c2b2650c1d71a030009849c896ce34168daff8a29366109703f3d6756b40afa64f8a54f4ff6effedea80b4e9fc23 SHA512 12128375244e0fb090674e5a11cc70178f3c6208040830c009284addb91db7dc0a2d3cbd5d1056944782e936a63b0bcef03be0135683646c41d540413805f0ba
AUX VirtualBox-python3.13.patch 3562 BLAKE2B 7979cd4950eebca3579138950cd64b8177f2d3f93218f1b94c80975629f565438c8d495106050da58f7fe3c67d15ec3faf1e64356761eecc6839be32870c134c SHA512 dd7aaa25187d9e0eb8fb8cc3d17660757c898c0a372f36f9dadcd7a7c1626733976cf2cd8f64211a0b6a6d4723e0aee70f9ab40465523e17e3cb0d38c035bca4
AUX test_python.py 455 BLAKE2B 5b3295d568fcfb415673998682b8132a6eb396bd05b9a9498e795d446f0e1df7918a2324c4ca348e7ce3084853c2df03d82e6f0304da88fd93513a2f44e6df39 SHA512 8fb796424b37bf93880260655bd8d7e5ec0f8008d00593227a276fed7fff550f02cfbe0961f88f8eb55b17197241640e8c8c346b1cc3c07f1ca6257c7c591bf4
AUX vboxwebsrv-confd 559 BLAKE2B 979dc91678fac7277c69e482b07f8d46df6b4df92ffb37d5358be33aa08b01808776f95e915377f3b65dc8b89b54141e70f655847aeba4d0bd12cfceb72d8889 SHA512 47af05e5c8f496f9d55cb1240ab55b3c12f655fda14a3e9d904ada18ed6b748f599b2429133772ff4bcd1f363e5afa19ff5873f9e538aebce58eb88253ef4cab
AUX vboxwebsrv-initd 646 BLAKE2B d71673a3afea56aea69ab1d795d8b265bb5fc62296e35d6d28caaf600ca65da43006b6d69b58f6a05f7ca0301bafce2d983536db1c98ceb03ca880f5e7632023 SHA512 365bd3a9f5d8edeb921330eebf67b43f60b048d9869f8378fa68543ed6005320b06360590187631176c256d8ce49305b856a2e0c1dc20b42890e020a8c729719
@@ -16,9 +17,12 @@ AUX virtualbox-ose-6-wrapper 3578 BLAKE2B c150e578212435268de3c5fb0eea701bc843ec
AUX virtualbox-vboxusb_tmpfilesd 35 BLAKE2B 56937e236a0e4d1a2aa085271e8ae0af9553fdf7c3b804af4d3fda3aa8dbc32d63762fee90bc949390cb9cd67f2f0111894c8af084731dab6920ae1675c69a64 SHA512 72e4602f5f214f8833486f5c787c263a10390e8bdf65b5615d67c35ec44048f02add12fe43b19f9c57a9d2f12d768c52e54fcfb9052c0611d06cc988a698c171
DIST VirtualBox-7.1.4.tar.bz2 206218796 BLAKE2B 62a4f44b4eac2e1cb2c0bace5dfabf86c41b738d81aede3de75d88159a8d76158748eaae38ee3eedbc0f79b639a875f1ef6805a8ca7c95021f475935f54d7ef9 SHA512 97654339d509447e2604db01e29f9e810f59498a378e645f412cffb67022c4e547f205e8ebdac6ae33aaa8f7bc0f289bdca2e5a04b1fa31b4a05c191d7600a9c
DIST VirtualBox-7.1.6a.tar.bz2 205777317 BLAKE2B 584a53df603311bb1d49c8564bb05015426c678d58578327a73e1bb5d8ed4f0563a4edfaea13f3d41acc6902567572e67225cc9ea797b15489fb3d786d35c3f9 SHA512 fbb9487d531db6bf176e73f307ef1b65cc5263c8e5f38755cdc6bed41fe2906ffbd64076d42b8b505183d0ae054d8f6bccc522e981edd5a815e440066327cd3b
DIST VirtualBox-7.1.8.tar.bz2 215541146 BLAKE2B dbe8e432162ed29716e14a390be1fa14d13f861943bb2392f8de0cd8ec3dbb991588a8aafe47b2bd0884ca12932af78799d7b21a2b115d818702ccbed564dc97 SHA512 9c801309aac8eeea94279c6872892046cdf933dda0dc7493be5442a9dabbb6e5e513e116bb17d8fd225a6d6d37285f21c26e42daeb37c4335f3636b810f84dfb
DIST virtualbox-help-7.1.4.tar.xz 1586108 BLAKE2B e8219ed67b1db9a5e4d0271e25980fbcbfb8c72316dc4bd3337080c81082bb8ecad9c9317b5b9be77db1eeac42c567512a64fe86ae9bb6371dea8632e7afc9ab SHA512 185249fe2bdf2138a034c53e23eedb88cf487e1fb26a8bd623f0d75ea0d2ff4dff3484564a5b317703fb3f302ec7037cb0a49c7c3845e229fe2ac9e2c8c96af6
DIST virtualbox-help-7.1.6a.tar.xz 984912 BLAKE2B fe30248627e61f75c6486b7ff73b68027cf9804bfc2df9d331dfbcb93571fb6816d95a35a05719a136d6540035f3bb628f6c61a8ca6ed704d10738b4017f9ad8 SHA512 528b74c170b1ab13b05df03c104f735a67f79cce4d2c03f7094a3cf481f0a832586d07137cab746eeeaae475f671c17996cd3c3acd9f72b77d24bef9a9a403e6
DIST virtualbox-help-7.1.8.tar.xz 8308340 BLAKE2B 74a553dcf72306ab5168c403862c872d7de917f090a559fc06fc9a6bb344601ab5a78196e5ae13a9daed9150fc3b29e700fe6dbb4e589f8b3636fec6e9bb9ed5 SHA512 00613dead921bff77b16369b0267d06d668be7b56a12885cff4d050a1120d51de8576472b2dc069e93bf7cefcf4837ebe13d2d8c147953ad4484669df93d3e1e
DIST virtualbox-patches-7.1.4-r1.tar.bz2 6140 BLAKE2B dc84a0522629d06b72ff98e330e2c104e55185914238fed53d696399e43400a1c32979724c156479c3a67d2c64f7f8389d58a83242de559cf8dd89fbda0804e6 SHA512 3541ace61bd64f6ecb2f7b3aaa2383c33ae51682676eead78b267ff82d46e769117f074a534301e734408efa0e622d63e778085f06741223b35ed8caaacc003d
EBUILD virtualbox-7.1.4.ebuild 21865 BLAKE2B c4ab6c32a2320a1f9a3bc4c82d1138deb6ceee83dd32533e51c03102ec0afdd43ce47f53a7f2133717216fa7fc0afc7ffc4c912896844ec40d479f9f91de8e5a SHA512 a4fc1eb8ad68f6d540f177b589ed776e14bf597d6791d0ac15c389821ca8cadb9ea19243f60ded1551981c0b751545fcfe4f91d9b94325d8f8e3efc5ce130d12
EBUILD virtualbox-7.1.6a.ebuild 21877 BLAKE2B 2928931ce4299231947cdef1c5661ae28114a3f6101aeee76840aa27c35058bec128c7f2fd9bc4496730b9fb8b25c269deffd5c7b44943f722e08e33536062bb SHA512 bc95f07403c6191c41a18ab5c2baa64d07d7d31a9d0d300fcfd002d06b72b68cd38f58794e650aa2cdedced062586e24827e1991497e4dde42cee5da9dcb5e6a
EBUILD virtualbox-7.1.8.ebuild 22019 BLAKE2B ebb4e32bd3c423ab11745eec869b05298492b458ae1db1202ee10bc4d23dc728eaa2542c5926a54f4e845230a9685ac46ea156a6681de92bd2a4b80396999e4c SHA512 6c707838bcaf991342a2c391ed922d4578f08be4f6935b753ab306151fec14643c608e05595347b88a6fc5a703bf2d4c1550a42350f0409fb57b9b6d2eb26b8a
MISC metadata.xml 948 BLAKE2B c074e494d9affda91addd2355f8e71616602102b4cc151d2b45efd04754f1f92621ecd313dbe3baa44c3301f57b61e9cff780d445c2ea3d19ce3d9c8ae05213a SHA512 5338812da9334aedf08dd7a31a4a07c7bfa8232e8f0de6af9de9ac0f5585397cea16e66cb73d56632efa4cf21386782108182d803de6ff45c08082a13dc5fed9

View File

@@ -0,0 +1,76 @@
diff --git a/configure b/configure
index 65a39770f6f..465baafb1a5 100755
--- a/configure
+++ b/configure
@@ -2187,7 +2187,7 @@ extern "C" int main(void)
}
EOF
found=
- SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.9 python3.10 python3.11 python3.12"
+ SUPPYTHONLIBS="python2.7 python2.6 python3.1 python3.2 python3.3 python3.4 python3.4m python3.5 python3.5m python3.6 python3.6m python3.7 python3.7m python3.8 python3.9 python3.10 python3.11 python3.12 python3.13"
for p in $PYTHONDIR; do
for d in $SUPPYTHONLIBS; do
for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do
diff --git a/src/libs/xpcom18a4/python/gen_python_deps.py b/src/libs/xpcom18a4/python/gen_python_deps.py
index 1e5add1c5f0..cc62b689e13 100755
--- a/src/libs/xpcom18a4/python/gen_python_deps.py
+++ b/src/libs/xpcom18a4/python/gen_python_deps.py
@@ -29,7 +29,7 @@ if sys.version_info >= (3, 10):
else:
from distutils.version import StrictVersion as Version
-versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.9", "3.10", "3.11", "3.12" ]
+versions = ["2.6", "2.7", "3.1", "3.2", "3.2m", "3.3", "3.3m", "3.4", "3.4m", "3.5", "3.5m", "3.6", "3.6m", "3.7", "3.7m", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13" ]
prefixes = ["/usr", "/usr/local", "/opt", "/opt/local"]
known = {}
diff --git a/src/libs/xpcom18a4/python/Makefile.kmk b/src/libs/xpcom18a4/python/Makefile.kmk
index d3aea2dd2dd..fe6a1db9ee4 100644
--- a/src/libs/xpcom18a4/python/Makefile.kmk
+++ b/src/libs/xpcom18a4/python/Makefile.kmk
@@ -616,23 +616,23 @@ ifndef VBOX_ONLY_SDK
endif
endif
- ifdef VBOX_PYTHON311_INC
+ ifdef VBOX_PYTHON313_INC
#
- # Python 3.11 version (implicitly with pymalloc)
+ # Python 3.13 version (implicitly with pymalloc)
#
- DLLS += VBoxPython3_11
- VBoxPython3_11_EXTENDS = VBoxPythonBase
- VBoxPython3_11_EXTENDS_BY = appending
- VBoxPython3_11_INCS = $(VBOX_PYTHON311_INC)
- VBoxPython3_11_LIBS = $(VBOX_PYTHON311_LIB)
+ DLLS += VBoxPython3_13
+ VBoxPython3_13_EXTENDS = VBoxPythonBase
+ VBoxPython3_13_EXTENDS_BY = appending
+ VBoxPython3_13_INCS = $(VBOX_PYTHON313_INC)
+ VBoxPython3_13_LIBS = $(VBOX_PYTHON313_LIB)
ifdef VBOX_WITH_32_ON_64_MAIN_API
- ifdef VBOX_PYTHON311_LIB_X86
- DLLS += VBoxPython3_11_x86
- VBoxPython3_11_x86_EXTENDS = VBoxPythonBase_x86
- VBoxPython3_11_x86_EXTENDS_BY = appending
- VBoxPython3_11_x86_INCS = $(VBOX_PYTHON311_INC)
- VBoxPython3_11_x86_LIBS = $(VBOX_PYTHON311_LIB_X86)
+ ifdef VBOX_PYTHON313_LIB_X86
+ DLLS += VBoxPython3_13_x86
+ VBoxPython3_13_x86_EXTENDS = VBoxPythonBase_x86
+ VBoxPython3_13_x86_EXTENDS_BY = appending
+ VBoxPython3_13_x86_INCS = $(VBOX_PYTHON313_INC)
+ VBoxPython3_13_x86_LIBS = $(VBOX_PYTHON313_LIB_X86)
endif
endif
endif
@@ -700,7 +700,7 @@ ifndef VBOX_ONLY_SDK
# TODO: ASSUMING that we don't need a different headers for pymalloc
# ('m' builds < 3.8) and CRT malloc.
#
- VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 37 38 39 310 311 312 34 33 \
+ VBOX_PYTHON_LIMITED_API_VER := $(firstword $(foreach ver, 35 36 37 38 39 310 313 312 34 33 \
,$(if-expr defined(VBOX_PYTHON$(ver)_INC),$(ver),)$(if-expr defined(VBOX_PYTHON$(ver)M_INC),$(ver)M,)))
ifneq ($(VBOX_PYTHON_LIMITED_API_VER),)
DLLS += VBoxPython3

View File

@@ -0,0 +1,779 @@
# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# To add a new Python here:
# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
# Do NOT skip this part. It'll end up silently not-building the Python extension
# or otherwise misbehaving if you do.
#
# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
#
# May need to look at other distros (e.g. Arch Linux) to find patches for newer
# Python versions as upstream tends to lag. Upstream may have patches on their
# trunk branch but not release branch.
#
# See bug #785835, bug #856121.
PYTHON_COMPAT=( python3_{10..13} )
inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
python-single-r1 tmpfiles toolchain-funcs udev xdg
MY_PN="VirtualBox"
MY_P=${MY_PN}-${PV}
HELP_PV=${PV}
DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="
https://download.virtualbox.org/virtualbox/${PV%*a}/${MY_P}.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.4-r1.tar.bz2
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${HELP_PV}.tar.xz ) )
"
S="${WORKDIR}/${MY_PN}-${PV%*a}"
LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64"
IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl test +udev vboxwebsrv vde +vmmraw vnc"
RESTRICT="!test? ( test )"
unset WATCOM #856769
COMMON_DEPEND="
acct-group/vboxusers
app-arch/xz-utils
~app-emulation/virtualbox-modules-${PV%*a}
dev-libs/libtpms
dev-libs/libxml2
dev-libs/openssl:0=
media-libs/libpng:0=
media-libs/libvpx:0=
net-misc/curl
sys-libs/zlib
dbus? ( sys-apps/dbus )
gui? (
dev-qt/qtbase:6[X,widgets]
dev-qt/qtscxml:6
dev-qt/qttools:6[assistant]
x11-libs/libX11
x11-libs/libXt
)
lvm? ( sys-fs/lvm2 )
opengl? (
media-libs/libglvnd[X]
media-libs/vulkan-loader
x11-libs/libX11
x11-libs/libXt
)
pam? ( sys-libs/pam )
python? ( ${PYTHON_DEPS} )
sdl? (
media-libs/libsdl2[X,video]
x11-libs/libX11
x11-libs/libXt
)
vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
vde? ( net-misc/vde )
vnc? ( >=net-libs/libvncserver-0.9.9 )
"
# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
# based on *DEPEND doesn't work for BDEPEND at least right now.
#
# There's a comment in Config.kmk about it
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
# but it needs more investigation.
#
# See bug #878299 to track this issue.
DEPEND="
${COMMON_DEPEND}
>=dev-libs/libxslt-1.1.19
virtual/libcrypt:=
x11-libs/libXt
alsa? ( >=media-libs/alsa-lib-1.0.13 )
gui? (
x11-base/xorg-proto
x11-libs/libxcb:=
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrandr
)
java? ( virtual/jdk:1.8 )
opengl? (
x11-base/xorg-proto
x11-libs/libXcursor
x11-libs/libXinerama
x11-libs/libXmu
x11-libs/libXrandr
virtual/glu
)
sdl? (
x11-libs/libXcursor
x11-libs/libXinerama
)
pulseaudio? ( media-libs/libpulse )
udev? ( >=virtual/udev-171 )
"
RDEPEND="
${COMMON_DEPEND}
gui? ( x11-libs/libxcb:= )
java? ( virtual/jre:1.8 )
"
BDEPEND="
>=app-arch/tar-1.34-r2
>=dev-lang/yasm-0.6.2
dev-libs/libIDL
dev-util/glslang
>=dev-build/kbuild-0.1.9998.3592
sys-apps/which
sys-devel/bin86
sys-libs/libcap
sys-power/iasl
virtual/pkgconfig
doc? (
app-doc/dita-ot-bin
app-text/docbook-sgml-dtd:4.4
app-text/docbook-xsl-ns-stylesheets
dev-texlive/texlive-basic
dev-texlive/texlive-latex
dev-texlive/texlive-latexrecommended
dev-texlive/texlive-latexextra
dev-texlive/texlive-fontsrecommended
dev-texlive/texlive-fontsextra
dev-qt/qttools:6[assistant]
sys-libs/nss_wrapper
)
gui? ( dev-qt/qttools:6[linguist] )
nls? ( dev-qt/qttools:6[linguist] )
java? ( virtual/jdk:1.8 )
python? (
${PYTHON_DEPS}
test? (
$(python_gen_cond_dep '
dev-python/pytest[${PYTHON_USEDEP}]
')
)
)
"
QA_FLAGS_IGNORED="
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
"
QA_TEXTRELS="
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
"
QA_EXECSTACK="
usr/lib64/virtualbox/iPxeBaseBin
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
"
QA_WX_LOAD="
usr/lib64/virtualbox/iPxeBaseBin
"
QA_PRESTRIPPED="
usr/lib64/virtualbox/VMMR0.r0
usr/lib64/virtualbox/VBoxDDR0.r0
usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
"
REQUIRED_USE="
java? ( sdk )
python? ( sdk ${PYTHON_REQUIRED_USE} )
vboxwebsrv? ( java )
"
PATCHES=(
# Downloaded patchset
"${WORKDIR}"/virtualbox-patches-7.1.4-r1/patches
"${FILESDIR}"/VirtualBox-python3.13.patch
)
pkg_pretend() {
if ! use gui; then
einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
fi
if ! use opengl; then
einfo "No USE=\"opengl\" selected, this build will lack"
einfo "the OpenGL feature."
fi
if ! use nls && use gui; then
einfo "USE=\"gui\" also selects USE=\"nls\". This build"
einfo "will have NLS support."
fi
# 749273
local d=${ROOT}
for i in usr "$(get_libdir)"; do
d="${d}/$i"
if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
die "${d} should be owned by root, VirtualBox will not start otherwise"
fi
done
}
pkg_setup() {
java-pkg-opt-2_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
default
if use python; then
mkdir test
cp "${FILESDIR}"/test_python.py test/
python_fix_shebang test/test_python.py
fi
# Only add nopie patch when we're on hardened
if gcc-specs-pie; then
eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
fi
# Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
rm -r kBuild/bin || die
# Remove everything in tools except kBuildUnits
find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
# Disable things unused or split into separate ebuilds
sed -e "s@MY_LIBDIR@$(get_libdir)@" \
"${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
if ! use pch; then
# bug #753323
printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
>> LocalConfig.kmk || die
fi
# bug #916002, #488176, #925347
tc-ld-is-mold || tc-ld-force-bfd
# Respect LDFLAGS
sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
-i Config.kmk src/libs/xpcom18a4/Config.kmk || die
# Do not use hard-coded ld (related to bug #488176)
sed -e '/QUIET)ld /s@ld @$(LD) @' \
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
# Use PAM only when pam USE flag is enbaled (bug #376531)
if ! use pam; then
einfo "Disabling PAM removes the possibility to use the VRDP features."
sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
src/VBox/HostServices/Makefile.kmk || die
echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
fi
# add correct java path
if use java; then
sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
-i "${S}"/Config.kmk || die
java-pkg-opt-2_src_prepare
fi
# bug #940482
filter-flags -fno-plt
# bug #908814
filter-lto
# bug #843437
cat >> LocalConfig.kmk <<-EOF || die
CXXFLAGS=${CXXFLAGS}
CFLAGS=${CFLAGS}
EOF
if use sdl; then
sed -i 's/sdl-config/sdl2-config/' configure || die
echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
fi
#443830
echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
if tc-is-clang; then
# clang does not support this extension
eapply "${FILESDIR}"/${PN}-7.1.0-disable-rebuild-iPxeBiosBin.patch
fi
# fix doc generation
echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
# replace xhtml names with numeric equivalents
find doc/manual -name \*.xml -exec sed -i \
-e 's/&nbsp;/\&#160;/g' \
-e 's/&ndash;/\&#8211;/g' \
-e 's/&larr;/\&#8592;/g' \
-e 's/&rarr;/\&#8594;/g' \
-e 's/&harr;/\&#8596;/g' {} \+ || die
# fix help path #891879
echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die
# 489208
# Cannot patch the whole text, many translations. Use sed instead to replace the command
find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \
's/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || die
sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \
src/VBox/Frontends/VirtualBox/src/main.cpp \
src/VBox/VMM/VMMR3/VM.cpp || die
# 890561
echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
if ! use nls && ! use gui; then
cat >> LocalConfig.kmk <<-EOF || die
VBOX_WITH_NLS :=
VBOX_WITH_MAIN_NLS :=
VBOX_WITH_PUEL_NLS :=
VBOX_WITH_VBOXMANAGE_NLS :=
EOF
fi
}
src_configure() {
tc-export AR CC CXX LD RANLIB
export HOST_CC="$(tc-getBUILD_CC)"
# --enable-webservice is a no-op
# webservice is automagically enabled if gsoap is found
local myconf=(
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--disable-kmods
$(usev !alsa --disable-alsa)
$(usev !dbus --disable-dbus)
$(usev debug --build-debug)
$(usev !doc --disable-docs)
$(usev !java --disable-java)
$(usev !lvm --disable-devmapper)
$(usev !pulseaudio --disable-pulse)
$(usev !python --disable-python)
$(usev !vboxwebsrv --with-gsoap-dir=/dev/null)
$(usev vde --enable-vde)
$(usev !vmmraw --disable-vmmraw)
$(usev vnc --enable-vnc)
)
if use gui || use sdl || use opengl; then
myconf+=(
$(usev !opengl --disable-opengl)
$(usev !gui --disable-qt)
$(usev !sdl --disable-sdl)
)
else
myconf+=(
--build-headless
)
fi
if use amd64 && ! has_multilib_profile; then
myconf+=( --disable-vmmraw )
fi
# not an autoconf script
edo ./configure "${myconf[@]}"
# Force usage of chosen Python implementation
# bug #856121, bug #785835
sed -i \
-e '/VBOX_WITH_PYTHON.*=/d' \
-e '/VBOX_PATH_PYTHON_INC.*=/d' \
-e '/VBOX_LIB_PYTHON.*=/d' \
AutoConfig.kmk || die
if use python; then
cat >> AutoConfig.kmk <<-EOF || die
VBOX_WITH_PYTHON=$(usev python 1)
VBOX_PATH_PYTHON_INC=$(python_get_includedir)
VBOX_LIB_PYTHON=$(python_get_library_path)
EOF
local mangled_python="${EPYTHON#python}"
mangled_python="${mangled_python/.}"
# Stub out the script which defines what the Makefile ends up
# building for. gen_python_deps.py gets called by the Makefile
# with some args and it spits out a bunch of paths for a hardcoded
# list of Pythons. We just override it with what we're actually using.
# This minimises the amount of patching we have to do for new Pythons.
cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
EOF
chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
else
cat >> AutoConfig.kmk <<-EOF || die
VBOX_WITH_PYTHON:=
EOF
fi
}
src_compile() {
source ./env.sh || die
# Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
local myemakeargs=(
VBOX_BUILD_PUBLISHER=_Gentoo
VBOX_WITH_VBOXIMGMOUNT=1
KBUILD_VERBOSE=2
AS="$(tc-getCC)"
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
TOOL_GCC3_CC="$(tc-getCC)"
TOOL_GCC3_LD="$(tc-getCC)"
TOOL_GCC3_AS="$(tc-getCC)"
TOOL_GCC3_AR="$(tc-getAR)"
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GXX3_CC="$(tc-getCC)"
TOOL_GXX3_CXX="$(tc-getCXX)"
TOOL_GXX3_LD="$(tc-getCXX)"
TOOL_GXX3_AS="$(tc-getCXX)"
TOOL_GXX3_AR="$(tc-getAR)"
TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GCC3_CFLAGS="${CFLAGS}"
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
VBOX_GCC_OPT="${CXXFLAGS}"
VBOX_NM="$(tc-getNM)"
TOOL_YASM_AS=yasm
)
if use amd64 && has_multilib_profile; then
myemakeargs+=(
CC32="$(tc-getCC) -m32"
CXX32="$(tc-getCXX) -m32"
TOOL_GCC32_CC="$(tc-getCC) -m32"
TOOL_GCC32_CXX="$(tc-getCXX) -m32"
TOOL_GCC32_LD="$(tc-getCC) -m32"
TOOL_GCC32_AS="$(tc-getCC) -m32"
TOOL_GCC32_AR="$(tc-getAR)"
TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
TOOL_GXX32_CC="$(tc-getCC) -m32"
TOOL_GXX32_CXX="$(tc-getCXX) -m32"
TOOL_GXX32_LD="$(tc-getCXX) -m32"
TOOL_GXX32_AS="$(tc-getCXX) -m32"
TOOL_GXX32_AR="$(tc-getAR)"
TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
)
fi
if use doc; then
# dita needs to write to ~/.fop and ~/.java
# but it ignores ${HOME} and tries to write to the real home of user portage
# resulting in a sandbox violation
# -Duser.home= does not work
# force using the temporary homedir with nss_wrapper
echo "${LOGNAME}::$(id -u):$(id -g):${USER}:${HOME}:/bin/bash" >> ~/passwd
echo "${LOGNAME}::$(id -g):" >> ~/group
local -x LD_PRELOAD=libnss_wrapper.so
local -x NSS_WRAPPER_PASSWD="${HOME}"/passwd
local -x NSS_WRAPPER_GROUP="${HOME}"/group
fi
MAKE="kmk" emake "${myemakeargs[@]}" all
}
src_test() {
if use python; then
local -x VBOX_APP_HOME="${S}"/out/linux.${ARCH}/$(usex debug debug release)
local -x VBOX_INSTALL_PATH="${VBOX_APP_HOME}"
local -x VBOX_PROGRAM_PATH="${VBOX_APP_HOME}"/bin
local -x VBOX_SDK_PATH="${VBOX_PROGRAM_PATH}"/sdk
local -x PYTHONPATH="${VBOX_SDK_PATH}"/installer/python/vboxapi/src
einfo "VBOX_APP_HOME ${VBOX_APP_HOME}"
einfo "VBOX_PROGRAM_PATH ${VBOX_PROGRAM_PATH}"
einfo "VBOX_SDK_PATH ${VBOX_SDK_PATH}"
einfo "PYTHONPATH ${PYTHONPATH}"
LD_LIBRARY_PATH="${VBOX_PROGRAM_PATH}" epytest test/
fi
}
src_install() {
cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
vbox_inst() {
local binary="${1}"
local perms="${2:-0750}"
local path="${3:-${vbox_inst_path}}"
[[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
[[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
insinto ${path}
doins ${binary}
fowners root:vboxusers ${path}/${binary}
fperms ${perms} ${path}/${binary}
}
# Create configuration files
insinto /etc/vbox
newins "${FILESDIR}/${PN}-4-config" vbox.cfg
# Set the correct libdir
sed \
-e "s@MY_LIBDIR@$(get_libdir)@" \
-i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
# Install the wrapper script
exeinto ${vbox_inst_path}
newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
fowners root:vboxusers ${vbox_inst_path}/VBox
fperms 0750 ${vbox_inst_path}/VBox
# Install binaries and libraries
insinto ${vbox_inst_path}
doins -r components
for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \
vboximg-mount vbox-img *so *r0; do
vbox_inst ${each}
done
# These binaries need to be suid root.
for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
vbox_inst ${each} 4750
done
# Install EFI Firmware files (bug #320757)
for each in VBoxEFI{32,64}.fd ; do
vbox_inst ${each} 0644
done
# VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
# VBoxXPCOMIPCD (bug #524202)
for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
# Symlink binaries to the shipped wrapper
for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
if use pam; then
# VRDPAuth only works with this (bug #351949)
dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
fi
# set an env-variable for 3rd party tools
echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
# environment variables used during SDK binding installation
echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
doenvd "${T}/90virtualbox"
if use sdl; then
vbox_inst VBoxSDL 4750
pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
for each in vboxsdl VBoxSDL ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
fi
if use gui; then
vbox_inst VirtualBox
vbox_inst VirtualBoxVM 4750
for each in VirtualBox{,VM} ; do
pax-mark -m "${ED}"${vbox_inst_path}/${each}
done
for each in virtualbox{,vm} VirtualBox{,VM} ; do
dosym ${vbox_inst_path}/VBox /usr/bin/${each}
done
insinto /usr/share/${PN}
doins -r nls
doins -r UnattendedTemplates
domenu ${PN}.desktop
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
for size in 16 32 48 64 128 ; do
newicon -s ${size} ${PN}-${size}px.png ${PN}.png
done
newicon ${PN}-48px.png ${PN}.png
doicon -s scalable ${PN}.svg
popd &>/dev/null || die
pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
for size in 16 24 32 48 64 72 96 128 256 512 ; do
for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
icofile="${PN}-${ico}-${size}px.png"
if [[ -f "${icofile}" ]]; then
newicon -s ${size} ${icofile} ${PN}-${ico}.png
fi
done
done
popd &>/dev/null || die
fi
if use lvm; then
vbox_inst VBoxVolInfo 4750
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
fi
if use sdk; then
insinto ${vbox_inst_path}
doins -r sdk
if use java; then
java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
fi
fi
if use udev; then
local udevdir="$(get_udevdir)"
local udev_file="VBoxCreateUSBNode.sh"
local rules_file="10-virtualbox.rules"
insinto ${udevdir}
doins ${udev_file}
fowners root:vboxusers ${udevdir}/${udev_file}
fperms 0750 ${udevdir}/${udev_file}
insinto ${udevdir}/rules.d
sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
> "${T}"/${rules_file} || die
doins "${T}"/${rules_file}
fi
if use vboxwebsrv; then
vbox_inst vboxwebsrv
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
fi
# Remove dead symlinks (bug #715338)
find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
# Fix version string in extensions or else they don't get accepted
# by the virtualbox host process (see bug #438930)
find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
if use vnc; then
insinto ${extensions_dir}
doins -r ExtensionPacks/VNC
fi
if use dtrace; then
insinto ${extensions_dir}
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
fi
if use doc; then
dodoc UserManual.pdf UserManual.q{ch,hc}
docompress -x /usr/share/doc/${PF}
elif use gui; then
dodoc "${WORKDIR}"/${PN}-help-${HELP_PV}/UserManual.q{ch,hc}
docompress -x /usr/share/doc/${PF}
fi
if use python; then
local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
if [[ ! -x "${python_path_ext}" ]]; then
eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
eerror "but none were installed. This may happen if support for a Python target"
eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
die "Incomplete installation of Python bindings! File a bug with Gentoo!"
fi
# 378871
local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src"
pushd "${installer_dir}" &> /dev/null || die
sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
-e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
-i vboxapi/__init__.py || die
# insert shebang, the files come without one
find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
python_domodule vboxapi
popd &> /dev/null || die
# upstream added a /bin/sh stub here
# use /usr/bin/python3, python_doscript will take care of it
sed -e '1 i #! /usr/bin/python3' -i vboxshell.py
python_doscript vboxshell.py
# do not install the installer
rm -r "${installer_dir%vboxapi*}" || die
fi
newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
}
pkg_postinst() {
xdg_pkg_postinst
if use udev; then
udev_reload
udevadm trigger --subsystem-match=usb
fi
tmpfiles_process virtualbox-vboxusb.conf
if use gui; then
elog "To launch VirtualBox just type: \"virtualbox\"."
fi
elog "You must be in the vboxusers group to use VirtualBox."
elog ""
elog "The latest user manual is available for download at:"
elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
elog ""
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
optfeature "Guest additions ISO" app-emulation/virtualbox-additions
if ! use udev; then
ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
fi
}
pkg_postrm() {
xdg_pkg_postrm
use udev && udev_reload
}

33
app-text/calibre/Manifest Normal file
View File

@@ -0,0 +1,33 @@
AUX 0001-HTML-Input-Dont-add-resources-that-exist-outside-the.patch 2420 BLAKE2B eafb4c38c87bdb708905b0c17b9d3466dad76c1f286f702b6c063c9af866ab8dc656af019eb10a70fa841cfda4e47e1eac9276abdd63d23cf2ffe69f377ad110 SHA512 083e7112f6bdabd0f1894a8afacc87a166ffdad7fa9c88683f05991249b2aa18de04c4e5d842991b0b49a6d0d76248093a7f6ed29a3d0c1a6725e8ab512982e7
AUX 0001-PIL-11.0-changes-its-webp-features-output.patch 1223 BLAKE2B 959dc14e452dd1d19a67976fef43e7fc12ec7739d91710848e9f0cfd24966d553c74521a48a44f3b67d36256ef2041b20b8ee2201a855870270512a5937c36ba SHA512 365f55f94d3657a39a5495604f383e3ecda2ed9c4ab8e783b5117b59f2707f933722939049f4450e7629a3f91ce0c607d968427e6b05b9a00e275980b5b2c2ca
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-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
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
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
DIST calibre-7.19.0.tar.xz 45057708 BLAKE2B 888ddf4292b8c8931c811eb78d6e9b003139545947f2b7bf63fcd96d96caa050a0f93a30ed0313ccf9b4ebfb25c2df1be7f2806d5117a870d1ac34ad29669e39 SHA512 b1225d6d403a8c4dca321c108d270aa79cf65a450f7db90a4e4df5525e8c1c6eb06b4a2492de7b691f6a1a85ce09361dc3796311c46fa082d6e82829827022a7
DIST calibre-7.19.0.tar.xz.sig 566 BLAKE2B 35a9f8987f0dfad0a14843f3db61f8b3442692dafdf9d253ed13c2071b7e8d9d4cec8012dad4b59b30013fdda790967cf42594a29c6a9a2a668bccda72ac2e72 SHA512 836a0138ed46b179fefe78bc678f6f8146fe5d8a1eb9111f02bcc804d96253281c918cc4ad7a3a860a3177babac9c6fd4b2e417361e59b7245d19bfa50f3f739
DIST calibre-7.20.0.tar.xz 44795188 BLAKE2B 2ccb7fcd5acdf9f627d79f5656709a7eddee7545dd2c8a95bbb7d2dc61fb26dcf8c34c3c2d6b1514fdbb6b4d7c3fd3e98be72c778026c7b2bb4a42651c5e664b SHA512 3b6e2d4ed8d0755096b466f4bdcc8b6ca4810398caa2322c1efc30280680ff8b10dc5fb8cb763bed8fee82746e7c51c6f31f56e5d9689d5f43c671442004c532
DIST calibre-7.20.0.tar.xz.sig 566 BLAKE2B 4d89a7781eb1500969ca75ddf01890bbfea6ecfde4e7173f062be6546e898f68a16e0ff7a3d76e5e17dc0abca617d381de24e18e72f4f05b5965b051f28e6cab SHA512 62dc9964c3a30477e22f832148fdaa57860559e2aaddccff107b37c399854ac3ca84097cd7072c2ee4e57403c7ed17286469f31f6efc3d790f63f438d9c78c79
DIST calibre-7.21.0.tar.xz 44802864 BLAKE2B f86ce0f310ac5b38f3aa54ca6436ad9c22c465e5608089c0178fcc5ed87d988ffae50d6b760ae4281ce68315998a5e1c426f243b58bfae86a78e5479d824070d SHA512 0c2ee610833df83219c0c33b09e1374a8262f1630ccd48e3c4725c92922a3ac5d102ad83fc213457fb9de3efa4f5a2c98ff6dff039828e1661085a1054d7f631
DIST calibre-7.21.0.tar.xz.sig 566 BLAKE2B 6410767553809878644ccae960b756b3b0571309bf4cbb61b9282586442243d41d1b2da578f97fbf7fbac573c7e9f84bc293e6b38e921850bce44bc7c87d74c8 SHA512 444492b958a01105cb60e8653f8b0e3c5c27a42876527b642f176a375459d3a5664b601aa8fa64c3d39ae486200cd456cd8691a055f7f7530225df106b1bd074
DIST calibre-7.22.0.tar.xz 42428392 BLAKE2B e9b7e0dc6e92340ff76d99f44f8265a572d05afadb6b5b06312a6dfbc6b0540d49647686a3fbb367da67a31d680ec8982a46d7baeb2c8371b4eeea1f0eb6c1f8 SHA512 583a1e2bcdd05c350e57cb205fc95eb076210ea5c9156f95a08c63e27f418ecb735c0a68212514edaa05af61e780cf8377a1e1b76a89729ee13b4d5ed34359c7
DIST calibre-7.22.0.tar.xz.sig 566 BLAKE2B d818c347043efcd8b01f68efdfdae43bf0315d45a7d8c52e8920972b8fa718b9551edb388a0531eb1781c8a959b31a16bb6f1dec517d3415b0a596d50c4d368e SHA512 9e72f286f01bf3ca76d702f0a8415635d5a352e06765f14a50fae828bea3f5c710200eb857075972e1bcfd176c05983421d899a13ef5aa9c3aa7e996bce80e5e
EBUILD calibre-5.44.0-r5.ebuild 8984 BLAKE2B b5f9a34dadb013f347366ccbe2cc36168b85caf4a466188665d949d6116406664ba533290395046148d24104140aaa94b6caf5027444293c9fe17de43a27b4ca SHA512 43381007298d2f41cad354cd608e6f3b04192bb055836d9175d8c9204832f26d54297b0da0ddea4e6139ae058fb49ff761932978992928885b8197f193749804
EBUILD calibre-7.16.0.ebuild 7987 BLAKE2B 61535b4bea3c99a8ac5cbe3b6738c91c3bdd0d30780a904102fc1b21799b835e922c034045bbfcf234f3a99890c0fa0203274ccefbdf570254dc946c65ea503b SHA512 090609b21ec694a22a89f27a516e10d5772bc5377c87e0fe2ff0b751c01d2a0cf9c4fa0512541a77e49483cbf7722a83e264b3bb0b45f3ee6f8d73e2b8f7054e
EBUILD calibre-7.17.0.ebuild 8155 BLAKE2B e8045cf5f3e6557b0027ba84ce2c4e2558a1dd67f6007eee794ac2571c5277ed45b6c45b183d0144fe58c297af405637cb95c54ebdcfaaa96e6a9c117e7c3533 SHA512 07ba8a2a98a960111dec197e415b8ffcd9697a6d7e2278c7b417d6e89864713d7f0b1e7a015b23958f08db8fb5965e1c7502fc79508872c24b979d4b053eae38
EBUILD calibre-7.19.0.ebuild 8374 BLAKE2B 80659908ab33bf598b3f3706c0c6b57cf477af6953e14f038544920862839864dc3dccc53f029e1fd45a62cc4d9f40719f1306ed44a474c6c8912977616639a6 SHA512 9a469b83c5c36b42e8d3e589a9a56cc7cf7be74bbf2e30f7d0987386de80882c8e8a538d7d873bf175f3bf5eacaf9fef09c93ddffa5e46b5d08aaebcf7d50566
EBUILD calibre-7.20.0.ebuild 8400 BLAKE2B a36548f91272362a57c6286342855044cb39f7712ddfa9e55a3c72627ababc4eacdca6008741e63df056eb2ca7e5df0f59c22830ab988fcc3a8b683eb232ef79 SHA512 28a5034d892e24d61ffb0e40e0d996ce0a4dbb0faded49240d42803d920917457471efd86dd5706f64ab1075d917432daa9c482da0c3d302dcb78c41487d52a5
EBUILD calibre-7.21.0.ebuild 8305 BLAKE2B cf08c0f9a5d1046632aa77f7d6e0ce2cb24551e716fe6f4c7614f508c8331841a574337b2678b0b79396f15d02df629247c7da16a90c0e925fb56d3567394230 SHA512 ec7852d1b70a18df376d10ea2d93b1147a3da58f3c635ecd6ac23c90c9f53f79b6da7a71d533334e62fc8b6f5aae6babfbbf8aaa3cc4fdb947516f999f7eda3c
EBUILD calibre-7.22.0.ebuild 8337 BLAKE2B 93f2ebb81f4b2a0c15921b72b33bd13bdbef9f474b3def869a1f90862acab431edc37d25ab37a64c41763f2bf9503ab575c06fe980826950be6f23a04bc0cbe7 SHA512 27a8ed9283914061c446a519c8e88e29c4dde9c91e45f9f9385b74b6f635f1579d6345e28a8606fc238d65549d18176ab8f780b970731b2765f3901010732492
MISC metadata.xml 662 BLAKE2B 102f4f537d2127c42311951cd5ca73e41a0ab948d85a037ed24c876382ffe628070d96b7310a337ac8efac61b32fd225b840b20fbe3f51e4cbf48ce073e95e7c SHA512 9929c8d731dfa112cf4b2ca67ddb269360a4f2cd84d9c0c0df6adfa2efe04669e1a45d9d7011f1dffe9e7ebf185e348478c2a1afa2bf2351e69b4f7e7c14da32

View File

@@ -0,0 +1,265 @@
# 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"
IUSE="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-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/faust-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/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/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-python/zeroconf[${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}]') )
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/podofo-build-0.9.6_pre20171027
<virtual/podofo-build-0.10
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}-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
# Security backport for CVE-2023-46303
"${FILESDIR}"/0001-HTML-Input-Dont-add-resources-that-exist-outside-the.patch
# bug #936270
"${FILESDIR}"/${P}-icu75.patch
# backport test-only fix for lxml 5
"${FILESDIR}"/e9cc00560a28f56a303cca97630ab58e519dd9c8.patch
# Security backport for CVE-2024-7008
"${FILESDIR}"/${P}-xss-backport.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"
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
# 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
}

View File

@@ -0,0 +1,243 @@
# 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"
)
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
}

View File

@@ -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
}

View File

@@ -0,0 +1,254 @@
# 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}]')
dev-python/pyqt6[multimedia,speech]
)
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"
# fix tests with pillow 11
"${FILESDIR}"/0001-PIL-11.0-changes-its-webp-features-output.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
# unpackaged TTS backend (optional at runtime): https://github.com/rhasspy/piper
piper
# tests if a completely unused module is bundled
pycryptodome
$(usev !speech speech_dispatcher)
$(usev !unrar test_unrar)
# undocumented reasons
test_mem_leaks
test_searching
)
# Some of these tests weren't practical to split out into distinct tests, so
# have a different control mechanism
use speech || export SKIP_SPEECH_TESTS=1
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
}

View File

@@ -0,0 +1,255 @@
# 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
>=media-video/ffmpeg-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}]')
dev-python/pyqt6[multimedia,speech]
)
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"
# fix tests with pillow 11
"${FILESDIR}"/0001-PIL-11.0-changes-its-webp-features-output.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
# unpackaged TTS backend (optional at runtime): https://github.com/rhasspy/piper
piper
# tests if a completely unused module is bundled
pycryptodome
$(usev !speech speech_dispatcher)
$(usev !unrar test_unrar)
# undocumented reasons
test_mem_leaks
test_searching
)
# Some of these tests weren't practical to split out into distinct tests, so
# have a different control mechanism
use speech || export SKIP_SPEECH_TESTS=1
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
}

View File

@@ -0,0 +1,253 @@
# 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
>=media-video/ffmpeg-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}]')
dev-python/pyqt6[multimedia,speech]
)
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"
)
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
# unpackaged TTS backend (optional at runtime): https://github.com/rhasspy/piper
piper
# tests if a completely unused module is bundled
pycryptodome
$(usev !speech speech_dispatcher)
$(usev !unrar test_unrar)
# undocumented reasons
test_mem_leaks
test_searching
)
# Some of these tests weren't practical to split out into distinct tests, so
# have a different control mechanism
use speech || export SKIP_SPEECH_TESTS=1
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
}

View File

@@ -0,0 +1,254 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
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"
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/pykakasi[${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
>=media-video/ffmpeg-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}]')
dev-python/pyqt6[multimedia,speech]
)
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"
)
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
# unpackaged TTS backend (optional at runtime): https://github.com/rhasspy/piper
piper
# tests if a completely unused module is bundled
pycryptodome
$(usev !speech speech_dispatcher)
$(usev !unrar test_unrar)
# undocumented reasons
test_mem_leaks
test_searching
)
# Some of these tests weren't practical to split out into distinct tests, so
# have a different control mechanism
use speech || export SKIP_SPEECH_TESTS=1
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
}

View File

@@ -0,0 +1,55 @@
From 57190699030dc6746320e49695a67ce83c62d549 Mon Sep 17 00:00:00 2001
From: Kovid Goyal <kovid@kovidgoyal.net>
Date: Sun, 28 May 2023 14:03:15 +0530
Subject: [PATCH] HTML Input: Dont add resources that exist outside the folder
hierarchy rooted at the parent folder of the input HTML file by default
(cherry picked from commit bbbddd2bf4ef4ddb467b0aeb0abe8765ed7f8a6b)
---
.../ebooks/conversion/plugins/html_input.py | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/calibre/ebooks/conversion/plugins/html_input.py b/src/calibre/ebooks/conversion/plugins/html_input.py
index 6f9c2084ea..742f3e0279 100644
--- a/src/calibre/ebooks/conversion/plugins/html_input.py
+++ b/src/calibre/ebooks/conversion/plugins/html_input.py
@@ -64,6 +64,16 @@ class HTMLInput(InputFormatPlugin):
)
),
+ OptionRecommendation(name='allow_local_files_outside_root',
+ recommended_value=False, level=OptionRecommendation.LOW,
+ help=_('Normally, resources linked to by the HTML file or its children will only be allowed'
+ ' if they are in a sub-folder of the original HTML file. This option allows including'
+ ' local files from any location on your computer. This can be a security risk if you'
+ ' are converting untrusted HTML and expecting to distribute the result of the conversion.'
+ )
+ ),
+
+
}
def convert(self, stream, opts, file_ext, log,
@@ -76,6 +86,7 @@ def convert(self, stream, opts, file_ext, log,
if hasattr(stream, 'name'):
basedir = os.path.dirname(stream.name)
fname = os.path.basename(stream.name)
+ self.root_dir_of_input = os.path.abspath(basedir) + os.sep
if file_ext != 'opf':
if opts.dont_package:
@@ -250,6 +261,11 @@ def link_to_local_path(self, link_, base=None):
frag = l.fragment
if not link:
return None, None
+ link = os.path.abspath(os.path.realpath(link))
+ if not link.startswith(self.root_dir_of_input):
+ if not self.opts.allow_local_files_outside_root:
+ self.log.warn('Not adding {} as it is outside the document root: {}'.format(link, self.root_dir_of_input))
+ return None, None
return link, frag
def resource_adder(self, link_, base=None):
--
2.41.0

View File

@@ -0,0 +1,36 @@
From a961ddbfcb96461fd830ccd6facb81d69cc679d8 Mon Sep 17 00:00:00 2001
From: Kovid Goyal <kovid@kovidgoyal.net>
Date: Tue, 29 Oct 2024 06:08:04 +0530
Subject: [PATCH] PIL 11.0 changes its webp features output
---
src/calibre/test_build.py | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/calibre/test_build.py b/src/calibre/test_build.py
index 4e3d740705..91c32eba38 100644
--- a/src/calibre/test_build.py
+++ b/src/calibre/test_build.py
@@ -436,16 +436,14 @@ def test_imaging(self):
out = StringIO()
features.pilinfo(out=out, supported_formats=False)
out = out.getvalue()
- for line in '''\
+ lines = '''\
--- PIL CORE support ok
--- FREETYPE2 support ok
--- WEBP support ok
- --- WEBP Transparency support ok
- --- WEBPMUX support ok
- --- WEBP Animation support ok
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
- '''.splitlines():
+ '''.splitlines()
+ for line in lines:
self.assertIn(line.strip(), out)
with Image.open(I('lt.png', allow_user_override=False)) as i:
self.assertGreaterEqual(i.size, (20, 20))
--
2.45.2

View File

@@ -0,0 +1,24 @@
Avoid calling libjxr's JxrDecApp as we currently don't package it.
--- a/src/calibre/utils/img.py
+++ b/src/calibre/utils/img.py
@@ -118,8 +118,6 @@
i = QImage()
if not i.loadFromData(data):
q = what(None, data)
- if q == 'jxr':
- return load_jxr_data(data)
raise NotImage(f'Not a valid image (detected type: {q})')
return i
@@ -645,11 +643,6 @@
despeckle_image(img)
remove_borders_from_image(img)
image_to_data(img, fmt='GIF')
- raw = subprocess.Popen([get_exe_path('JxrDecApp'), '-h'],
- creationflags=subprocess.DETACHED_PROCESS if iswindows else 0,
- stdout=subprocess.PIPE).stdout.read()
- if b'JPEG XR Decoder Utility' not in raw:
- raise SystemExit('Failed to run JxrDecApp')
# }}}

View File

@@ -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

View File

@@ -0,0 +1,28 @@
logical changes backported from:
https://github.com/kovidgoyal/calibre/commit/a3d3d8d33e314ccabb5099e78e4056a79b7c9aa2
https://bugs.gentoo.org/936270
diff -rup a/setup/build.py b/setup/build.py
--- a/setup/build.py 2022-06-17 04:35:27.000000000 +0200
+++ b/setup/build.py 2024-07-19 11:51:56.374389213 +0200
@@ -65,6 +65,8 @@ class Extension:
self.cflags.insert(0, '-std=c++11')
elif kwargs.get('needs_c++14'):
self.cflags.insert(0, '-std=c++14')
+ elif kwargs.get('needs_c++17'):
+ self.cflags.insert(0, '-std=c++17')
else:
if kwargs.get('needs_c99'):
self.cflags.insert(0, '-std=c99')
diff -rup a/setup/extensions.json b/setup/extensions.json
--- a/setup/extensions.json 2022-06-17 04:35:27.000000000 +0200
+++ b/setup/extensions.json 2024-07-19 11:52:11.253389395 +0200
@@ -75,7 +75,7 @@
"name": "sqlite_extension",
"headers": "calibre/utils/cpp_binding.h",
"sources": "calibre/db/sqlite_extension.cpp",
- "needs_c++14": true,
+ "needs_c++17": true,
"libraries": "icudata icui18n icuuc icuio stemmer",
"windows_libraries": "icudt icuin icuuc icuio libstemmer",
"lib_dirs": "!icu_lib_dirs",

View File

@@ -0,0 +1,33 @@
Changelog:
Only relevant if you embed the calibre server within a larger server, it
means attackers who can convince users to click on a specially crafted
link, can run JavaScript code with the same origin as the larger server
calibre is embedded in.
From e75f85919a3c3a5f2d87861050d8483d66561c06 Mon Sep 17 00:00:00 2001
From: Kovid Goyal <kovid@kovidgoyal.net>
Date: Tue, 30 Jul 2024 13:40:21 +0530
Subject: [PATCH] Fix #2075130 [Private
bug](https://bugs.launchpad.net/calibre/+bug/2075130)
---
src/calibre/srv/legacy.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/calibre/srv/legacy.py b/src/calibre/srv/legacy.py
index 055228ebee..85586b07a6 100644
--- a/src/calibre/srv/legacy.py
+++ b/src/calibre/srv/legacy.py
@@ -255,7 +255,7 @@ def browse(ctx, rd, rest):
if rest.startswith('book/'):
# implementation of https://bugs.launchpad.net/calibre/+bug/1698411
# redirect old server book URLs to new URLs
- redirect = ctx.url_for(None) + '#book_id=' + rest[5:] + "&amp;panel=book_details"
+ redirect = ctx.url_for(None) + '#book_id=' + int(rest[5:]) + "&amp;panel=book_details"
from lxml import etree as ET
return html(ctx, rd, endpoint,
E.html(E.head(
--
2.44.2

View File

@@ -0,0 +1,27 @@
diff --git a/src/calibre/utils/img.py b/src/calibre/utils/img.py
index b61627b63e..ff51c76e75 100644
--- a/src/calibre/utils/img.py
+++ b/src/calibre/utils/img.py
@@ -129,8 +129,6 @@ def image_from_data(data):
i = QImage()
if not i.loadFromData(data):
q = what(None, data)
- if q == 'jxr':
- return load_jxr_data(data)
raise NotImage(f'Not a valid image (detected type: {q})')
return i
@@ -693,13 +691,6 @@ def test(): # {{{
despeckle_image(img)
remove_borders_from_image(img)
image_to_data(img, fmt='GIF')
- p = subprocess.Popen([get_exe_path('JxrDecApp'), '-h'],
- creationflags=subprocess.DETACHED_PROCESS if iswindows else 0,
- stdout=subprocess.PIPE)
- raw, _ = p.communicate()
- p.wait()
- if b'JPEG XR Decoder Utility' not in raw:
- raise SystemExit('Failed to run JxrDecApp')
# }}}

View File

@@ -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

View File

@@ -0,0 +1,13 @@
# /etc/conf.d/calibre-server
# Change this to the user you want to run calibre-server as.
# You may specify a group too, after a colon
# NOTE: This must be set and not to root!
CALIBRE_USER=
# Set the path of the library to serve.
# Defaults to the default location for CALIBRE_USER.
#CALIBRE_LIBRARY='<user home directory>/Calibre Library'
# Extra options to pass to calibre-server.
# See the calibre-server man page for more options.
#CALIBRE_SERVER_OPTS="--userdb /srv/calibre/users.sqlite --enable-auth --worker-count 10 --port 8080"

View File

@@ -0,0 +1,58 @@
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
depend() {
need net
need localmount
after bootmisc
}
checkconfig() {
if [ "${CALIBRE_USER}" = "" -o "${CALIBRE_USER}" = "root" ] ; then
eerror "Please edit /etc/conf.d/calibre-server"
eerror "You have to specify a user to run calibre-server as, as we will not run it as root!"
eerror "Modify CALIBRE_USER to your needs (you can also add a group, after a colon)"
return 1
fi
if ! getent passwd "${CALIBRE_USER%:*}" >/dev/null ; then
eerror "Please edit /etc/conf.d/calibre-server"
eerror "Your user has to exist!"
return 1
fi
if [ "${CALIBRE_USER%:*}" != "${CALIBRE_USER}" ] ; then
if ! getent group "${CALIBRE_USER#*:}" >/dev/null ; then
eerror "Please edit /etc/conf.d/calibre-server"
eerror "Your group has to exist too!"
return 1
fi
fi
if [ "${CALIBRE_LIBRARY}" = "" ] ; then
CALIBRE_USER_HOME=$(getent passwd "${CALIBRE_USER%:*}" | cut -d ':' -f 6)
CALIBRE_LIBRARY="${CALIBRE_USER_HOME}/Calibre Library"
fi
if [ ! -d "${CALIBRE_LIBRARY}" ] ; then
eerror "Please edit /etc/conf.d/calibre-server"
eerror "The Calibre library, '${CALIBRE_LIBRARY},' does not exist."
eerror "Please modify CALIBRE_LIBRARY to point to a valid library."
return 1
fi
return 0
}
start() {
checkconfig || return $?
local pidfile=/var/run/calibre-server.pid
ebegin "Starting calibre-server"
start-stop-daemon --user "${CALIBRE_USER}" \
--pidfile "${pidfile}" --make-pidfile --background --exec /usr/bin/calibre-server \
-- ${CALIBRE_OPTS} "${CALIBRE_LIBRARY}"
eend $?
}
stop() {
ebegin "Stopping calibre-server"
start-stop-daemon --stop --user "${CALIBRE_USER}" \
--pidfile /var/run/calibre-server.pid
eend $?
}

View File

@@ -0,0 +1,35 @@
From e9cc00560a28f56a303cca97630ab58e519dd9c8 Mon Sep 17 00:00:00 2001
From: Kovid Goyal <kovid@kovidgoyal.net>
Date: Mon, 8 Jan 2024 09:12:35 +0530
Subject: [PATCH] Fix #2048475 [Tests fail with lxml
5.0](https://bugs.launchpad.net/calibre/+bug/2048475)
---
src/calibre/utils/xml_parse.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/calibre/utils/xml_parse.py b/src/calibre/utils/xml_parse.py
index a31c6ed83ed7..339538b90057 100644
--- a/src/calibre/utils/xml_parse.py
+++ b/src/calibre/utils/xml_parse.py
@@ -36,6 +36,11 @@ def safe_xml_fromstring(string_or_bytes, recover=True):
return ans
+def unsafe_xml_fromstring(string_or_bytes):
+ parser = etree.XMLParser(resolve_entities=True)
+ return fs(string_or_bytes, parser=parser)
+
+
def find_tests():
import unittest, tempfile, os
from calibre.constants import iswindows
@@ -61,7 +66,7 @@ def t(tid, val, expected, safe=True):
raw = templ.format(id=tid, val=val)
err = None
try:
- root = safe_xml_fromstring(raw) if safe else etree.fromstring(raw)
+ root = safe_xml_fromstring(raw) if safe else unsafe_xml_fromstring(raw)
except Exception as e:
err = str(e)
root = None

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>eschwartz@gentoo.org</email>
<name>Eli Schwartz</name>
</maintainer>
<upstream>
<remote-id type="github">kovidgoyal/calibre</remote-id>
<changelog>https://calibre-ebook.com/whats-new</changelog>
</upstream>
<use>
<flag name="font-subsetting">Enable font subsetting support</flag>
<flag name="system-mathjax">Use a system copy of mathjax</flag>
<flag name="unrar">Enable support for comic books compressed with the non-free Rar format</flag>
</use>
</pkgmetadata>

View File

@@ -1,7 +1,11 @@
AUX libftdi-0.20-cmake-include.patch 687 BLAKE2B 8817db6e200adcb3d76da91565fe25f694445a46325a6435d6d0545d6741b0d15b199f96aabf01ca664eeb3355008acc6ec309f5fa87f975584935ecd74558f7 SHA512 b7b2d3a8cd84f3bbc86aa43bc9d090359375c6ea6b52a32107cd46751d386768b3d196c0bca7235453c596ef19c5ee4e1a39739db90e3e0c06adc62609e7fb90
AUX libftdi-0.20-cmake-version.patch 1010 BLAKE2B cd88bc50cebb22a5e982d8f7985014549bdae23e35fefb0d2f6cf14c4610d79ebfbbb11e94174b6c1ff260d83713c4c4db395c725bbe836142e0e80092324a3f SHA512 9ea6d07324c6cb89856f8a9411b0564fb344f2624162f5435b9cbaeddb97361d79dd9b71d0c64988106ec162cd5a93b43f2c5257f0f0207ce8151de37712cd91
AUX libftdi-1.5-cmake-cxx.patch 1448 BLAKE2B f43c592cc17481e21dc1b0fe4a4cf583c3b2f192197133443f90dc1f9bd134fe903598dc9d12f92a8376bcd58f4cb698b9bd34ff4c06cf2df180260d2456126c SHA512 9881153611aa75dcc53f739bd510898f55d9fc56a07cec41e09fed37768c462663160d8491f7eaaa5dd7bc8935d36f33379d3529cfe355a3391507415a9e7cae
AUX libftdi-1.5-cmake4.patch 2596 BLAKE2B 3bdcd9886451b0f0f14905109ec755d80bade06572c5c40ddc29115a6294c280f3ba13f9c7387100cde6d6cd1898e8f8d8fd891f2ffa2d91e04e44208f8d4a26 SHA512 7fa0ef24934e07a6f6e1cecb1e1246c2d96c42b97a7943a3ac532da041c1eb5d69bc2764613a6b0fd7baf9f91f8b82a9c23adde31c3d7f6663bca3c0222c2b07
AUX libftdi-1.5-py312.patch 1144 BLAKE2B cf2263322b71ac06ac23f94fff8b2b68763fda8eb9d59d5811ed02e178a8c866f0f045b9acaced3b8cb01924504f3e00fd5f10c16642e9e2089a18f56e2e2c6c SHA512 8f0bdf45028d586a3d5d28aac135e6ad04f4e28d44e5a16953db78253a37374c87bf085eb1969a716e906a22f0b6affa874f3bc8e39c1b4ffaf8a84cdd5f800a
AUX libftdi-1.5-swig-4.3.patch 4135 BLAKE2B 88da729f7ce3f02400f5ff1a7c9f94242625225b7e3193169725acf0f6acf8c3bcf29a85fa6dae9f632ac1cf05bcb6a7e9086256a9c687df3b1250d9b808f4a5 SHA512 6102992dfeca5c8ade821deff1d76d7ed579a1951287beede7cbd96cd09b39061b8742cdb7c073dd06af759d8fe476c66f9ba81c5b78f755658d02ae4014cf77
AUX libftdi-1.5-tests-no-cxx.patch 1017 BLAKE2B ff3e05ae2cc48a023c74142f986159f68b6a3e49ccf9684c94b4de2fd03c8d5c53e600810d1e8933e09ed7aa167fab15101344a6bdc8b9e00647f2c86801f694 SHA512 6d0fa3923f8f1e92b22538448368016db24d194b886c4702731eb5038b65c8a03773cfe0a02459cf040574845ab482fb676f01a97f26d5c48065fd9427a11eeb
DIST libftdi1-1.5.tar.bz2 116297 BLAKE2B 460ab93026e14a452e31fcc6930d305638fdc0ed06cb44fb9d50ad8f80199b17057d2f48a27b8295b43b956934289c872a2ef1ddb7f93fa93c6816511ef7607d SHA512 c525b2ab6aff9ef9254971ae7d57f3549a36a36875765c48f947d52532814a2a004de1232389d4fe824a8c8ab84277b08427308573476e1da9b7db83db802f6f
EBUILD libftdi-1.5-r4.ebuild 1917 BLAKE2B 1e3a1b651d560dd752a8a8f61ba179423b6bc33f8b5b5d43f5daa0d51af84e5210dae0d6b69937629105a85516d845626f12f09f185260bc52ea8b6ea7c770f9 SHA512 f6b528fd3efe328ba9787537ae7983e68e9aedd62d64acb61a6e155010210496e95dabfa769380132f19a2f7acb9ab3f20561b593ec9e92fb68175cf29db46d6
EBUILD libftdi-1.5-r4.ebuild 1917 BLAKE2B cf81642728b47ff66a177003e00eb1d4ff29dfec745df5bb977e43841cbc80da19a5c3231fb6242c4b947a25e3af3b51d6aa74997b8c8cfbd0a5728b06be3a03 SHA512 4cfdb32d72019f6c982f59d9c3a8bdc49ffc6b8ae762fa270409eb1096de1fe0f8ca6b89cd1e71ccf8010d5cd18462d7727e799da8e09678651e8d85145ae3eb
EBUILD libftdi-1.5-r7.ebuild 2049 BLAKE2B 5d046361cb7967ebc606d20e94ca1825c11737336be521aec35242f00faab0ce7af26eecf2e9c439b83d8d1c209828121f6eb5e489e766a719aee221000ec992 SHA512 f76fce65bb6b574bc93f19ec99a3f7e9a44815d57e38f7388491d3c137b3b21af4e64d597bfd5d2bd8795a00f4bdf7cb87852c412bd21642eb15629f55b2d99b
MISC metadata.xml 318 BLAKE2B c2c9ab83d57a082ed6608367f53f0f9420056c909d4ee50641da5b8f12b6a6ca996740fbdcadb0fa08460cb0cbef36dbedfaaf98acaea3eeeeee6afcf7724f54 SHA512 313b5c5dfcf5feb7dc8e41c1cb74939619451cb0747c1a281c9a0e763d26e0850a43e05d8fd2a836389bd75c2a4f153b80986e11be8171e9d93ca234f9df05f2

View File

@@ -0,0 +1,87 @@
From 503c8789db7cb99e4e53cae3c220f80aef07c785 Mon Sep 17 00:00:00 2001
From: Yegor Yefremov <yegorslists@googlemail.com>
Date: Wed, 2 Apr 2025 10:12:34 +0200
Subject: [PATCH] CMakeLists.txt: bump CMake version to 3.15
Older CMake versions are treated as deprecated.
merged with cherry-picks of preceding changes:
3861e7dc9e83f2f6ff4e1579cf3bbf63a6827105
de9f01ece34d2fe6e842e0250a38f4b16eda2429
3f314ed78111473b7cbf1b9d1854c9f6322eea7a
diff -u a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,3 +1,5 @@
+cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
+
# Project
project(libftdi1 C)
set(MAJOR_VERSION 1)
@@ -12,7 +14,6 @@
set(CMAKE_BUILD_TYPE RelWithDebInfo)
endif("${CMAKE_BUILD_TYPE}" STREQUAL "")
set(CMAKE_COLOR_MAKEFILE ON)
-cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
add_definitions(-Wall)
@@ -211,30 +212,25 @@
set ( LIBFTDI_USE_FILE ${CMAKE_INSTALL_PREFIX}/${LIBFTDI_CMAKE_CONFIG_DIR}/UseLibFTDI1.cmake )
-if(CMAKE_VERSION VERSION_LESS 2.8.8)
- configure_file ( cmake/LibFTDI1Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake @ONLY )
- configure_file ( cmake/LibFTDI1ConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1ConfigVersion.cmake @ONLY )
-else ()
- include(CMakePackageConfigHelpers)
-
- configure_package_config_file (
- cmake/LibFTDI1Config.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
- INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
- PATH_VARS
- LIBFTDI_USE_FILE
- LIBFTDI_ROOT_DIR
- LIBFTDI_INCLUDE_DIR
- LIBFTDI_INCLUDE_DIRS
- LIBFTDI_LIBRARY_DIRS
- NO_CHECK_REQUIRED_COMPONENTS_MACRO
- )
- write_basic_package_version_file (
- LibFTDI1ConfigVersion.cmake
- VERSION ${LIBFTDI_VERSION_STRING}
- COMPATIBILITY AnyNewerVersion
- )
-endif ()
+include(CMakePackageConfigHelpers)
+
+configure_package_config_file (
+ cmake/LibFTDI1Config.cmake.in
+ ${CMAKE_CURRENT_BINARY_DIR}/LibFTDI1Config.cmake
+ INSTALL_DESTINATION ${LIBFTDI_CMAKE_CONFIG_DIR}
+ PATH_VARS
+ LIBFTDI_USE_FILE
+ LIBFTDI_ROOT_DIR
+ LIBFTDI_INCLUDE_DIR
+ LIBFTDI_INCLUDE_DIRS
+ LIBFTDI_LIBRARY_DIRS
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO
+)
+write_basic_package_version_file (
+ LibFTDI1ConfigVersion.cmake
+ VERSION ${LIBFTDI_VERSION_STRING}
+ COMPATIBILITY AnyNewerVersion
+)
install ( FILES
--- a/examples/cmake_example/CMakeLists.txt
+++ b/examples/cmake_example/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required ( VERSION 2.8 )
+cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
project ( example C )

View File

@@ -0,0 +1,25 @@
https://bugs.gentoo.org/934224
http://developer.intra2net.com/git/?p=libftdi;a=commit;h=abd19b721f7e9b4d514ed319ece173ebc7b1ea72
From abd19b721f7e9b4d514ed319ece173ebc7b1ea72 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Mon, 19 Dec 2022 17:40:43 +0100
Subject: [PATCH] python: move from distutils to sysconfig
The distutils module was deprecated in Python 3.10, and will be removed
in 3.12 [1], thus switch to the sysconfig module instead.
[1] https://peps.python.org/pep-0632/
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -42,7 +42,7 @@ endif ()
set_target_properties ( ${SWIG_MODULE_ftdi1_REAL_NAME} PROPERTIES NO_SONAME ON )
-execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print( sysconfig.get_python_lib( plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}' ) )"
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sysconfig; print( sysconfig.get_path( 'platlib', vars={'platbase': '${CMAKE_INSTALL_PREFIX}'} ) )"
OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE )
--
1.7.1

View File

@@ -0,0 +1,82 @@
https://bugs.gentoo.org/953348
http://developer.intra2net.com/git/?p=libftdi;a=commit;h=ff7707e3ffadc09af420b26370b9e097a5b2bc8b
From ff7707e3ffadc09af420b26370b9e097a5b2bc8b Mon Sep 17 00:00:00 2001
From: William S Fulton <wsf@fultondesigns.co.uk>
Date: Fri, 18 Oct 2024 09:38:20 +0200
Subject: [PATCH] python: update for SWIG 4.3
SWIG 4.3 comes with an API change to the SWIG_Python_AppendOutput()
function, so switch to the recommended SWIG_AppendOutput() instead.
Because the new function is a macro in fact also switch to the {..}
delimiters as the code needs to be preprocessed. The change is
compatible with the previous SWIG releases 4.2 and 4.1 at least.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2319133
Related: https://github.com/swig/swig/pull/2907
---
python/ftdi1.i | 18 +++++++++---------
1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/python/ftdi1.i b/python/ftdi1.i
index 8b179f9..fac4d16 100644
--- a/python/ftdi1.i
+++ b/python/ftdi1.i
@@ -52,7 +52,7 @@ char * str2charp_size(PyObject* pyObj, int * size)
%enddef
%feature("autodoc", ftdi_usb_find_all_docstring) ftdi_usb_find_all;
%typemap(in,numinputs=0) SWIGTYPE** OUTPUT ($*ltype temp) %{ $1 = &temp; %}
-%typemap(argout) SWIGTYPE** OUTPUT %{ $result = SWIG_Python_AppendOutput($result, SWIG_NewPointerObj((void*)*$1,$*descriptor,0)); %}
+%typemap(argout,noblock=1) SWIGTYPE** OUTPUT { $result = SWIG_AppendOutput($result, SWIG_NewPointerObj((void*)*$1,$*descriptor,0)); }
%apply SWIGTYPE** OUTPUT { struct ftdi_device_list **devlist };
int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist,
int vendor, int product);
@@ -92,12 +92,12 @@ char * str2charp_size(PyObject* pyObj, int * size)
%enddef
%feature("autodoc", ftdi_read_data_docstring) ftdi_read_data;
%typemap(in,numinputs=1) (unsigned char *buf, int size) %{ $2 = PyInt_AsLong($input);$1 = (unsigned char*)malloc($2*sizeof(char)); %}
-%typemap(argout) (unsigned char *buf, int size) %{
+%typemap(argout,noblock=1) (unsigned char *buf, int size) {
if(result<0)
$2=0;
- $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, $2));
+ $result = SWIG_AppendOutput($result, charp2str((char*)$1, $2));
free($1);
-%}
+}
int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size);
%clear (unsigned char *buf, int size);
@@ -119,12 +119,12 @@ char * str2charp_size(PyObject* pyObj, int * size)
%enddef
%feature("autodoc", ftdi_read_pins_docstring) ftdi_read_pins;
%typemap(in,numinputs=0) unsigned char *pins ($*ltype temp) %{ $1 = &temp; %}
-%typemap(argout) (unsigned char *pins) %{ $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, 1)); %}
+%typemap(argout,noblock=1) (unsigned char *pins) { $result = SWIG_AppendOutput($result, charp2str((char*)$1, 1)); }
int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins);
%clear unsigned char *pins;
%typemap(in,numinputs=0) unsigned char *latency ($*ltype temp) %{ $1 = &temp; %}
-%typemap(argout) (unsigned char *latency) %{ $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, 1)); %}
+%typemap(argout,noblock=1) (unsigned char *latency) { $result = SWIG_AppendOutput($result, charp2str((char*)$1, 1)); }
int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency);
%clear unsigned char *latency;
@@ -137,12 +137,12 @@ char * str2charp_size(PyObject* pyObj, int * size)
%clear int* value;
%typemap(in,numinputs=1) (unsigned char *buf, int size) %{ $2 = PyInt_AsLong($input);$1 = (unsigned char*)malloc($2*sizeof(char)); %}
-%typemap(argout) (unsigned char *buf, int size) %{
+%typemap(argout,noblock=1) (unsigned char *buf, int size) {
if(result<0)
$2=0;
- $result = SWIG_Python_AppendOutput($result, charp2str((char*)$1, $2));
+ $result = SWIG_AppendOutput($result, charp2str((char*)$1, $2));
free($1);
-%}
+}
int ftdi_get_eeprom_buf(struct ftdi_context *ftdi, unsigned char * buf, int size);
%clear (unsigned char *buf, int size);
--
1.7.1

View File

@@ -3,7 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{9..12} )
PYTHON_COMPAT=( python3_{9..13} )
inherit cmake python-single-r1
MY_P="${PN}1-${PV}"

View File

@@ -0,0 +1,92 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_P="${PN}1-${PV}"
PYTHON_COMPAT=( python3_{10..13} )
inherit cmake python-single-r1
if [[ ${PV} == 9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="git://developer.intra2net.com/${PN}"
else
SRC_URI="https://www.intra2net.com/en/developer/${PN}/download/${MY_P}.tar.bz2"
S="${WORKDIR}/${MY_P}"
KEYWORDS="amd64 arm arm64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
fi
DESCRIPTION="Userspace access to FTDI USB interface chips"
HOMEPAGE="https://www.intra2net.com/en/developer/libftdi/"
LICENSE="LGPL-2"
SLOT="1"
IUSE="cxx doc examples python test tools"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
RDEPEND="
virtual/libusb:1
cxx? ( dev-libs/boost )
doc? ( !dev-embedded/libftdi:0[doc] )
python? ( ${PYTHON_DEPS} )
tools? ( dev-libs/confuse:= )
"
DEPEND="${RDEPEND}
test? ( dev-libs/boost )
"
BDEPEND="
doc? ( app-text/doxygen )
python? ( >=dev-lang/swig-4.2.0 )
"
PATCHES=(
"${FILESDIR}"/${P}-tests-no-cxx.patch
"${FILESDIR}"/${P}-cmake-cxx.patch
"${FILESDIR}"/${P}-py312.patch
"${FILESDIR}"/${P}-cmake4.patch
"${FILESDIR}"/${P}-swig-4.3.patch
)
pkg_setup() {
use python && python-single-r1_pkg_setup
}
src_configure() {
local mycmakeargs=(
-DFTDIPP=$(usex cxx)
-DDOCUMENTATION=$(usex doc)
-DEXAMPLES=$(usex examples)
-DPYTHON_BINDINGS=$(usex python)
-DBUILD_TESTS=$(usex test)
-DFTDI_EEPROM=$(usex tools)
-DCMAKE_SKIP_BUILD_RPATH=ON
-DSTATICLIBS=OFF
)
cmake_src_configure
}
src_test() {
cd "${BUILD_DIR}/test" || die
LD_LIBRARY_PATH="${BUILD_DIR}/src" ./test_libftdi1 -l all || die
}
src_install() {
cmake_src_install
use python && python_optimize
dodoc AUTHORS ChangeLog README TODO
if use doc ; then
# Clean up man pages with too generic names. #356369
rm -vf "${BUILD_DIR}"/doc/man/man3/_* || die
doman "${BUILD_DIR}"/doc/man/man3/*
dodoc -r "${BUILD_DIR}"/doc/html
fi
if use examples ; then
docinto examples
dodoc examples/*.c
fi
}

View File

@@ -1,5 +1,7 @@
AUX libcec-4.0.7-no-override-udev.patch 850 BLAKE2B ce5c795ba3db2d6600b93af6d15d95794435b22c29eb0b65f1d6dbcbb877f076abafd2b2b8d7bd751b981a34a939d61bf7389118a7252d7fc0517c472f583fc2 SHA512 fb23ccc01fee0c61453490e2f8037b1d30124077847e09f8a5e08365bca3253fa883484d412ae1f60cd7beefc6f2075a83bcdd36e160b14ebae23f4be41fb78b
AUX libcec-6.0.2-musl-nullptr.patch 829 BLAKE2B cfad08ba094e7ca92caec9a38d77d3d65b5baedf49db2b131b33a84543c2ccd0f60b99e7100434a302710c8bcf0d526a6033aa119c8f274efeff277388e75d6d SHA512 015055905a639a8599d5b0766a17bd6b3c91feb59eba543b55919fe40d9bcd0deebdd1b29a9b92e718c7d1bf8486d8413dfea986bf2639e984ba9f8b7a162d0a
AUX libcec-python13.patch 815 BLAKE2B 3e4a62b54fa0211f9c6225e1da56dd784d424e7efec23fcd279d92361fee99fd750f418497a68e62701130cb22471b5b28120d5a1e97b78d877f32ed4c688074 SHA512 cde2b029d9b831db240fcf7659419e9e2e85e7363e141d8751eb51d8a0e57fbda9343ba8eeab68279070c1aaf73ad01629115f0319cdf7044cb8fec7fb3004cb
DIST libcec-6.0.2.tar.gz 355807 BLAKE2B 007530d839493355f283992a4390550d6ddd432977d7489c17087f7e5bb6f503c35e967ed6a620d55e2e7c25ce10814f360d146a28b860cdcdd108fae152f896 SHA512 c16ac268e67b01d4e35fad644e5927e1d9fc7bcaeff698ac5f0eadd31ec63a0bef2a2b2bc37860d1571e1e0cdc55911c2de468c661c7c7ae1d492f80188035cb
EBUILD libcec-6.0.2-r2.ebuild 2875 BLAKE2B 7f29dd45f8017ecfa30a584d6d85a9f1a485d02d4197f63abcbd852a5fdc1decc91a49014f5bd8b1383d56baf9c0bc3ad44baa0b71250958a6648086534d2e6e SHA512 515dc2254c83e0aac1f53f07258a0af86d0cd9d3672d3dcf52d5acd106ecb6b752b20b5d3ec69e64c3494b5ff91b38cb476c2eef65fbd751e92fc660b49bd79a
EBUILD libcec-6.0.2.ebuild 3331 BLAKE2B 17df2b506e9521e7289191052a05fa8b8b080ee86c30420fc1aefaa3393162cb5ab92f0210155c483117c40d01fc0cce25ac012a68966e405a02283ca80a7a8b SHA512 5d43dceb5efb575675a76036710d557b946c59236a42e7dba57cfbdf2fab614688ee3e260abce93f8c643a7a26962b8c52118027772b617405f4a24522498e42
MISC metadata.xml 828 BLAKE2B 55df5b9af327507fdb9f415c8616affc437d82ac5a7e57b53f21f7917285b10f70e58b3fdbebf6899aa8c10dbe73186f84643842b04953da74f94b6c4112b3d6 SHA512 25e981d2c88ce87c9c41f6816dfadeb00bf3e0d5dfebc8b135ceba09552c40c29501bede0e3a73a63dcacb0741167f6180a674d82cf2b66dfb649a4aa968387a

View File

@@ -0,0 +1,26 @@
diff --git a/src/libcec/SwigHelper.h b/src/libcec/SwigHelper.h
index 9855976..cc73024 100644
--- a/src/libcec/SwigHelper.h
+++ b/src/libcec/SwigHelper.h
@@ -119,7 +119,7 @@ namespace CEC
if (!!m_callbacks[callback])
{
/** call the callback */
- result = PyEval_CallObject(m_callbacks[callback], arglist);
+ result = PyObject_CallObject(m_callbacks[callback], arglist);
/** unref the argument and result */
if (!!arglist)
diff --git a/src/libcec/libcec.i b/src/libcec/libcec.i
index 88250be..03ccd2a 100644
--- a/src/libcec/libcec.i
+++ b/src/libcec/libcec.i
@@ -141,7 +141,7 @@ namespace std {
if (!!lib)
{
lib->InitVideoStandalone();
- PyEval_InitThreads();
+ // PyEval_InitThreads();
}
return lib;
}

View File

@@ -0,0 +1,120 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
MY_PV=${PV/_p/-}
MY_P=${PN}-${MY_PV}
inherit cmake linux-info python-single-r1 udev
DESCRIPTION="Library for communicating with the Pulse-Eight USB HDMI-CEC Adaptor"
HOMEPAGE="https://libcec.pulse-eight.com"
SRC_URI="https://github.com/Pulse-Eight/${PN}/archive/${MY_P}.tar.gz"
S="${WORKDIR}/${PN}-${MY_P}"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~riscv x86"
IUSE="exynos kernel-cec python tools udev +xrandr"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND=">=dev-libs/libplatform-2.0.0
python? ( ${PYTHON_DEPS} )
udev? ( virtual/udev )
xrandr? (
x11-libs/libX11
x11-libs/libXrandr
)
"
DEPEND="${RDEPEND}
python? ( dev-lang/swig )"
BDEPEND="virtual/pkgconfig"
CONFIG_CHECK="~USB_ACM"
PATCHES=(
"${FILESDIR}/${PN}-4.0.7-no-override-udev.patch"
"${FILESDIR}/${PN}-6.0.2-musl-nullptr.patch"
"${FILESDIR}/libcec-python13.patch"
)
pkg_pretend() {
use udev || CONFIG_CHECK+=" ~SYSFS"
ERROR_SYSFS="When using libcec build without udev, kernel config option CONFIG_SYSFS is required to automatically detect P8 USB-CEC adapter port number"
linux-info_pkg_setup
}
pkg_setup() {
linux-info_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
cmake_src_prepare
sed -Ee 's|[ ~]?#DIST#;?||g' debian/changelog.in > ChangeLog || die
(use tools && use python) || cmake_comment_add_subdirectory "src/pyCecClient"
if ! use tools; then
cmake_comment_add_subdirectory "src/cec-client"
cmake_comment_add_subdirectory "src/cecc-client"
sed -i -Ee 's|add_dependencies\(cecc?-client cec\)|#DO NOT BUILD \0|' \
CMakeLists.txt || die
fi
}
src_configure() {
local mycmakeargs=(
-DHAVE_LINUX_API=$(usex kernel-cec ON OFF)
-DHAVE_LIBUDEV=$(usex udev ON OFF)
-DSKIP_PYTHON_WRAPPER=$(usex python OFF ON)
-DHAVE_EXYNOS_API=$(usex exynos ON OFF)
# bug 922690 and bug 955124
-DHAVE_TDA995X_API=OFF
-DHAVE_RPI_API=OFF
)
if linux_config_exists && linux_chkconfig_present SYSFS; then
mycmakeargs+=( -DHAVE_P8_USB_DETECT=ON )
fi
cmake_src_configure
}
src_compile() {
cmake_src_compile
if use udev ; then
sed '/2548/ s/SUBSYSTEM/SUBSYSTEMS/; s/$/, GROUP="video"/;' "${S}/debian/pulse-eight-usb-cec.udev" > \
"${BUILD_DIR}/65-pulse-eight-usb-cec.rules" || die
fi
}
src_install() {
cmake_src_install
use python && python_optimize "${D}$(python_get_sitedir)"
use tools && doman debian/cec-client.1
if use udev; then
udev_dorules "${BUILD_DIR}/65-pulse-eight-usb-cec.rules"
fi
}
pkg_postrm() {
use udev && udev_reload
}
pkg_postinst() {
use udev && udev_reload
elog "You will need to ensure the user running your CEC client has"
elog "read/write access to the device. You can ensure this by adding"
elog "them to the video group"
}

View File

@@ -5,5 +5,5 @@ AUX stfl-0.22-soname-symlink.patch 444 BLAKE2B 9aa44343a18a8d7fb2f75a60ae94c30ef
AUX stfl-0.24-ncurses-widechar.patch 828 BLAKE2B 5916f745b819fad0c6dedb882acfca4395eab60de656ec138988c756cddbe1109088279aef1a5b55e33931735426958a0f654a9ef3f567845960a8e17198a635 SHA512 897e32ad0d67e424ee66c1d572611f3707c665a6830b7c4560378bcb4ec4a9d2fc65eab7b2a827785bd724bf45f1eea9f20824e02ddb36e611c42b036d19c2aa
DIST stfl-0.24.tar.gz 45585 BLAKE2B a601f373f19baa3a11fb823852ada19ab824828935240280c74ff442a1e5c4abdf0abe56e445869e43785df3940a8c7269bc16457436abbe5e2853f907071059 SHA512 95df4574b1bc32d795751156dc5b93afbca3ba241607a3a55210c89dda61b9a26ad574bb5f729a0158c9052235dbf63d6c58b38e7f1061d14ab7062af6150fa0
EBUILD stfl-0.24-r4.ebuild 3145 BLAKE2B d20c8e4bd67ee8f9f20d9e470eb02b03e6c52e5a007c722402a5fe8604835bbebd92d66a95d33f874c2a2b5cab82027282391fa9494336b43ba2d11d9e2fbf3e SHA512 7a342581482d8b0c14f6266d7ea66e1f0c5c7f26547445966354809c4de569f1f7c9f263e61b4c243f1f697744be787c4b24f6e74f2bb06720891ccbb2ef51f9
EBUILD stfl-0.24-r5.ebuild 3256 BLAKE2B c17fe27fc8baff9f83b8f841f41c86c00a91effd3edcc7b9560df2a0716bd5dc8f8f163e5eeaf8655b7596f6598a41976b5800ce757653d628f3261dda7ee804 SHA512 e9ef5ef9b2acc66eb5c077a6d928807d6504742d7166a2187e6b72931ed24b12dd306b2f6dc2cfe8ffa960028c3254f55ce91ffa074765e5e7373fcfb31dd574
EBUILD stfl-0.24-r5.ebuild 3256 BLAKE2B a175152483ce439845f98e5a3d1155b72e8a72cb4ebfc3dce19734f51ada460bb003bc9d94d95e224b3280c52bc3b7650cd5bcecbd6b90b8ee78275d4cff7e6b SHA512 87cdb0d32461fd805dd4c7fcefc234ee4140a2e83fff313a04d263522b0e14e0a6565a24eada3e7702e7559578249a7c80e5f3dbdace4dba23dd62c4a967aba2
MISC metadata.xml 884 BLAKE2B d1ee81a475935527af118da278c54f34a773dff1165c39ea2013135b767dbfe96972623d83833501d0531df78547c5d6040990039674832e9f5f701f915d3924 SHA512 55dc2b480ea7b0929be1e74d60d06ddc33ce977885969fdda332a6cb390c219cc13c017c0a56ed3594c475dcb9586b2d433c65fa200675de421e1aa4b22c7ce5

View File

@@ -3,7 +3,7 @@
EAPI=7
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_COMPAT=( python3_{10..13} )
GENTOO_DEPEND_ON_PERL=no
inherit perl-module python-r1 toolchain-funcs

View File

@@ -1,4 +1,4 @@
DIST IMDbPY-2020.9.25.tar.gz 259453 BLAKE2B a703682d11d798c182bb4fe0a93f8dd50c9e673ff8bb6f1acbea768121c32ec6c3293a559b48381e547c21b12103732d537c6402f0f9c3851016ae0d36376d32 SHA512 5cea5146ace93b525be97ce5f3d8bb037be2e43280b3893c5475b8b2f84265e61db72ef935b1a50c341577a22ce4c98ac6d052eb047868fa88fb2dd3fab6d86a
EBUILD imdbpy-2020.9.25.ebuild 635 BLAKE2B 721c0c852c21baf4df59e686e9208021227dcaf8f0093ffcf61e5b98112e4851ffbf059a87f753f558e7ad9fa9bca453df6eea16ac8ba2fa3a6f757b26ebba3a SHA512 5b72f2455eaddc4246ce09084196dd40e64c66cc303521483c0025019eb41db074e30f884c60485d540a129f893ddd4741f50db595bab11d9701515eb47d8300
EBUILD imdbpy-2020.9.25.ebuild 635 BLAKE2B fad63fdae8c2ca9feb59e675a3ed9dc3c3f2df45b5b49f1bbe1591234c31217cc6d43c3f14972f26a2055ddbce886ffadfd1e29df3ba6f445709a08d4fd7ebe0 SHA512 54d0404d108e0ef5ce579d33a50cf37533bacd97df4ca44d64aa9cccb8bfed21abd5767c64a3994cc150c73575954493e96b7a61fdaf3e99c94ffe03efe9ac11
MISC ChangeLog 245 BLAKE2B e09b5b71349aad6d93cf4cc658f802f96870db2162d6da6c9e83fd39af5951f1108743ecdca7f1a52a16ac84975d9b64b4f9f5fff6ef6f691567750cd3d3f418 SHA512 204ee60a21ac6eafb081abebcdda70a8f8e52ece22c8ca82aabe8f9ce4c8beedf6ac001eb1b10e9978951b7b46a86eccec575665d31937cbbca16e12ad960e5a
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@@ -4,7 +4,7 @@
EAPI=8
PYTHON_COMPAT=( python2+ pypy{,3} )
PYTHON_COMPAT=( python2_7 python3_{4..12} pypy{,3} )
PYTHON_COMPAT=( python2_7 python3_{4..13} pypy{,3} )
inherit distutils-r1

View File

@@ -1,6 +1,6 @@
AUX pastescript-setup.py-exclude-tests.patch 656 BLAKE2B 4570f85c9476528e19d548a3760fcf1ddb9d4f6cdc61ec7f6336d03ebaf92be0dae849bad044d7307a68be76a1b635a1764394fc7b409b4c5f9dfbdde83cd803 SHA512 231018ef54e937721efb84da42c238afc3903614c030d9966e05512e0a93a1717b8b20d668ab0ebea1c70202ade8d83de41edb85d2ae4665e0100abf1f75d963
DIST PasteScript-2.0.2.tar.gz 117521 BLAKE2B 2de72050ee7f5b7037b99f9661b5445e523607afc84a8846f0e5d9e89196e302627f552825ce0e4f821b7ed9ed2713c87d7b504a4e2abf092f1e8fa014c40c4b SHA512 2f093eb982972fed354219c75c2e008931cea553960cea8aaafbe57cde8556de5626e7eb9bb3b9b7328bad3b7d9899f11fc9773a65380396dae506e7531516de
EBUILD pastescript-2.0.2-r1.ebuild 1081 BLAKE2B c76912365f9c6189c32de419bcbba1d43d13ab2aa276007904db0db470c5b3c8bcc1906922145677faa6107ccb2a2c88f8835e8ea51766d9b5a86e82d6ddf4c4 SHA512 7fe741d757b8a1bca73b239138e1ac9a37c7ec8b1fbd97897080fc6ffae2137051445f54a2762a557aef2ac14c23be0932dfbfa02b585cfe5590edc43e044e09
EBUILD pastescript-2.0.2.ebuild 1213 BLAKE2B 82310668fb12c5c6816dd46f1365b9b806df3d45c4c29c6ea6d67186976bc8c1808db0a4814187ebf236c2065ed99a84461e84f3fa0ef2ec0fad7d43a8946865 SHA512 76e9a2413d2de33be50f2a838466d1111806c592c1ddb03569b104ae5b0cb755156f84e547b38c9e1f38ca9c74a6672677993326bb676356910bd46b9234b66f
EBUILD pastescript-2.0.2-r1.ebuild 1081 BLAKE2B 1022148f2b6dd2977652ab91e557636ba325dc825c2e916aef822883ad3e4c0eddab53f8906a359b1b5d705deae8ffa18dd43feed3df0766dcf2626a4e7efaed SHA512 b717e9e1381fa806c37e69ca877a1c9e97dab7cbcc6473012bd4d53aedd246d4053e4f75c411cee3d3dd890b64429acf7c5539d0fc35cd4c2560ae702da243a8
EBUILD pastescript-2.0.2.ebuild 1213 BLAKE2B b0e8c68b06118359a02e20d78d980f79d0ab9867ad157fb8840e87108d7adda8c1b472f80bf020cd3e049e91f7d88dd61aa178bdb13dccd718735d5d4bba12a5 SHA512 30d9b61ab73c3ab9b23af81a70f351d2a830fc30f9fa68c5041ffacc6245b80f3bba1cf3d0f978b175f3f10b07df6f732870f4d2ccdf9d7dfe517eb7d7e35faa
MISC ChangeLog 256 BLAKE2B e187fdda5ee06db51c3a9f123e38586deb29f152b0834c5d32f87345fafc4a0343d42f30c61d76310383a0a82524f1dcb560ef5b4482b8aaa902a04e7ebebb62 SHA512 df564905763b18c60a920017f09c7f98690001e4650179c0de0e8e3e1cebb29d4d2b72e0cb2b37ce5a1fba2d121c1692da27c4375c1e694e5b5459a7cc348ccd
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8..12} pypy3 )
PYTHON_COMPAT=( python3_{8..13} pypy3 )
inherit distutils-r1

View File

@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{8..12} pypy3 )
PYTHON_COMPAT=( python3_{8..13} pypy3 )
inherit distutils-r1

View File

@@ -1,2 +1,2 @@
DIST pypubsub-4.0.3.tar.gz 174033 BLAKE2B 65fcd960ce2f0548f152546faa7a98055a823414c453b475d6ade339f55e72a60dcb8d627f6272cc844d181f772b76dba4e53b2ecc521bb05420abc09f6c30d2 SHA512 cf9aca44e91a5d0e5ecf6739deabf2980f9464395c89e3c5335c5248e47c570701e0534bb660c5005325a994d9f8e7f261f36bc8bea74cfc7eb760b73c572652
EBUILD pypubsub-4.0.3.ebuild 575 BLAKE2B 75f69a645d9da77af57ab7af5abcfafc9c79380853861995d2d79545d01b2deeca5c65c9906cc1e806958794d5d6221cbf8944c83a332b5bf5077da478673927 SHA512 cc7c10e1400a15f0a6bb44e2f96b67e81aee69a750bf944fa5ab5817fb666b088f6b014e36dc77b7b3673f3ff58525b0d52183c218440aed58f222c1b14c2962
EBUILD pypubsub-4.0.3.ebuild 575 BLAKE2B a9de477cee6629ffb79c333f575552210c009008957c5083ccb7faee83effa4430a3b7bbeb0b425af4f740bc1891327c05536c56bea3ee5458e97a663627e515 SHA512 0adffda1b042acff76cec4986d67e9a1a962bbcda53c54d9f6c7a69e6b88304001c6d43bab05a9b62dead3c3ff13c6ae0e2c464176f126d509372d0b80d9205e

View File

@@ -3,7 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{6..12} )
PYTHON_COMPAT=( python3_{6..13} )
inherit distutils-r1

View File

@@ -1,3 +1,3 @@
AUX 0001-Import-abstract-base-classes-from-collections.abc.patch 1429 BLAKE2B 2f08c58ac13e5d921639bf1db40fb83987356edcd84c2455cf872f752357e531d217f5215a132f53c8afbf9b0793205f4295ef2ff4bdb2d7673c0ad7809bd61c SHA512 f9ab50f63a6ac75509311c5f142ee075a0a54ff8fb0045973c30d545333e877818bae9f8884ce4aa1d6f8bc5212ef3b2baf04c115308a2f6508c2ac182eadc0a
DIST twodict-1.2.tar.gz 7016 BLAKE2B dd396dd1a712474b6d07614190d69aee2cf47c46829d9bb9dec3e56e067a4f8289cd94aa9d2a7d9144a7b472fd13e4b1be8d229e3aff036bf65175be2b155027 SHA512 82fc49568d95fb742bb014789937e2c4fc54a1f680fd9743643bbfe50f580a62dc20e363974a3359586e6a47b72015e059f435f3b6470adcb567249a50cac434
EBUILD twodict-1.2.ebuild 547 BLAKE2B da772c614bdc087e2abb53020bcf8ccd6e0dae4ff2710160bdf09887da9949daf3dc9c87772b6e70fbb522d1df2632fbc4b8d4cc7e099dec305dc4b3c8cf17aa SHA512 3e1b084915ede262b603c02082be94a16168ac36d1d897d12af7a507e0956e876e88af81908c0ff0e1cadef2ce2385808418114025cbd04f732c3c00e897a534
EBUILD twodict-1.2.ebuild 547 BLAKE2B e528ab5f8fb05b0fb1a94ee8a9fab77dfcbdfe422f1d1ed9e33846ab085e814d46aaae598e550d934762090263a52dad1ac54e6d405a12cbc54e1a617d8e71a3 SHA512 46e39c83a2cbb982c57dcb54b9682dc0956aaa8c817b01acc245f367d1f25586eb720295a19f1422bb988bb13ff862fa75cb688c5ee8b91c0164ea0b2ea5bef2

View File

@@ -3,7 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python2_7 python3_{4..12} )
PYTHON_COMPAT=( python2_7 python3_{4..13} )
PATCHES=(
"${FILESDIR}/0001-Import-abstract-base-classes-from-collections.abc.patch"

View File

@@ -0,0 +1,5 @@
DIST qtlocation-5.15.11-patchset.tar.xz 4796 BLAKE2B dcfa75bd3fb2e9069e1a530c27e2b4e9ac921fcf0ccb712f0894375b575ba25103948c6e5b85b56a8f9c9f2d7edf7df8e38501e93356e69f060b577a04c2d221 SHA512 14bd2864abc6f446dc4fbac03548cb42305685b46db757d856360780144095a021130bc0ebf1d07a516dc7991dc0cfbf733bd0ef6be58237bc15822c21af1d0b
DIST qtlocation-everywhere-opensource-src-5.15.16.tar.xz 6548480 BLAKE2B 9f6d66d22f4ad45935e3e76e275866b236cd842b7a17a3a9e6553f75dcf3048cd70e0b046d5d08c57d4c9d7ea73f723b210d044f44bf494cafbbff590b0703e5 SHA512 321a8e68f731a97c7ef0209d6db0ff4891dd14dc43e14f5c4c5ac763069c7f17298fbc6410326df9265ccd631372cdba662fc82e26a324936d371c8572e19a48
DIST qtlocation-mapboxgl-5.15.16-35d56672.tar.gz 3726302 BLAKE2B f51c0589a06fab35ba85b3bf4ca8a1904cda5aec47b17fdf747da527d02be623a76b1af5883b33267fab825a4b5d0863ea0220f2907e98e286b40d4a0bbc82e5 SHA512 5c2ff6ab7e4382d87546a802c5603bdcec3deb7fbb836fc981292c67660514caaa6118e164d2e099d0304710035572706562ec84e4aba5ce36b01cade8b0993e
EBUILD qtlocation-5.15.16-r1.ebuild 1629 BLAKE2B 93af70522115073f42fcc8b073cd515c547f4be99a98bd8352fee740690fbbd0c5cba351f54ec0038dfc0c21bacd78f7bcba0a8d9cb02145a2748d4a5f371de6 SHA512 b21a9278eac1accf942ae82bb066991d5aacf59e43412a47e68b88a6b9bb0abf59347c310ca8988e248242b701a496862108e489da00ad7b537b6e6459aa61d3
MISC metadata.xml 535 BLAKE2B 061ed9abebe579a38a262451a5e72d112adbcf4693078042f3b55be8d16b7bd430198edb732cd127deccf8c67d444b9951dd7ac8e2d0fef7de02913a3a8ba644 SHA512 823b03655b8bbb923d38d4f8358898beb2e2fa34d36e2d8d843e164027d58eb044a3e661b8dfc12cda123f15fd07d0987874b81543c47e46c670c25fa35dde87

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
<remote-id type="github">qt/qtlocation</remote-id>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

@@ -0,0 +1,59 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PATCHSET="${PN}-5.15.11-patchset"
inherit qt5-build
DESCRIPTION="Location (places, maps, navigation) library for the Qt5 framework"
if [[ ${QT5_BUILD_TYPE} == release ]]; then
MAPBOXGL_COMMIT=35d566724c48180c9a372c2ed50a253871a51574
SRC_URI+=" https://invent.kde.org/qt/qt/${PN}-mapboxgl/-/archive/${MAPBOXGL_COMMIT}/${PN}-mapboxgl-${MAPBOXGL_COMMIT}.tar.gz -> ${PN}-mapboxgl-${PV}-${MAPBOXGL_COMMIT:0:8}.tar.gz
https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}.tar.xz"
KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv x86"
fi
RDEPEND="
dev-libs/icu:=
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtdeclarative-${QT5_PV}*
=dev-qt/qtgui-${QT5_PV}*
=dev-qt/qtnetwork-${QT5_PV}*
=dev-qt/qtpositioning-${QT5_PV}*[qml]
=dev-qt/qtsql-${QT5_PV}*
sys-libs/zlib
"
DEPEND="${RDEPEND}
=dev-qt/qtconcurrent-${QT5_PV}*
"
QT5_TARGET_SUBDIRS=(
src/3rdparty/clipper
src/3rdparty/poly2tri
src/3rdparty/clip2tri
src/3rdparty/mapbox-gl-native
src/location
src/imports/location
src/imports/locationlabs
src/plugins/geoservices
)
if [[ ${QT5_BUILD_TYPE} == release ]]; then
PATCHES=( "${WORKDIR}/${PATCHSET}" )
src_prepare() {
rm -rf src/3rdparty/mapbox-gl-native/* || die
mv "${WORKDIR}"/${PN}-mapboxgl-${MAPBOXGL_COMMIT}/* src/3rdparty/mapbox-gl-native || die
qt5-build_src_prepare
}
fi
src_configure() {
# src/plugins/geoservices requires files that are only generated when
# qmake is run in the root directory. Bug 633776.
qt5_configure_oos_quirk qtlocation-config.pri src/location
qt5-build_src_configure
}

View File

@@ -0,0 +1,3 @@
DIST qtsensors-everywhere-opensource-src-5.15.16.tar.xz 2051048 BLAKE2B 85fa8c67639751676ffa1ccd5ad1a89efbaed56f4bd39e99fd88bd25924d8cfc08d67a4f8f20878bac82a91f5768d60b5576e3799fc80221f2f6f7e7ac9994be SHA512 2bd63e07a996f5377bda885e7218fc218fc981bf2a637b3d939ae5913bbffe2a797716b0aaa63e61c7e1384f07712de8683787590649a8f01a424b7f4526502b
EBUILD qtsensors-5.15.16.ebuild 559 BLAKE2B 411fcb30161c3700e93390c31ebc2b030ed91cfea3980da4eb860867d82180b73beea77a09b2c17956dff0ddd63ae4ba86bab6ff7318fa301bb3a9fceaf8caf1 SHA512 285fe9deab6c60bc5c151478fcb8fce78b55dc88af04b5216015f1e24ae4a2d991bef97757f1301da625263af625fe06121048a4f41bf46baa2ba596c1a1de8e
MISC metadata.xml 594 BLAKE2B 93f6b9de5266ef5bba3342d149afd04d4fdb27cac760d91b7dfb866d81ff4d4e86a3de1a512815444aa825350dad45923437f5caa7fea7cf6066667f2328d00e SHA512 68d91bcb4c8904a65021a81b01474081565e55c6776d29b54a70318282ce604f8e29e75f3d7574aedf9397ec72b2c6bd1e81ed4e630a4ecf553e070baebd9d64

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
<name>Gentoo Qt Project</name>
</maintainer>
<use>
<flag name="qml">Build QML bindings</flag>
</use>
<upstream>
<bugs-to>https://bugreports.qt.io/</bugs-to>
<doc>https://doc.qt.io/</doc>
<remote-id type="github">qt/qtsensors</remote-id>
</upstream>
<slots>
<subslots>
Must only be used by packages that are known to use private parts of the Qt API.
</subslots>
</slots>
</pkgmetadata>

View File

@@ -0,0 +1,29 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit qt5-build
DESCRIPTION="Hardware sensor access library for the Qt5 framework"
if [[ ${QT5_BUILD_TYPE} == release ]]; then
KEYWORDS="amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv x86"
fi
# TODO: simulator
IUSE="qml"
RDEPEND="
=dev-qt/qtcore-${QT5_PV}*
=dev-qt/qtdbus-${QT5_PV}*
qml? ( =dev-qt/qtdeclarative-${QT5_PV}* )
"
DEPEND="${RDEPEND}"
src_prepare() {
qt_use_disable_mod qml quick \
src/src.pro
qt5-build_src_prepare
}

View File

@@ -0,0 +1,7 @@
AUX cuda-config.in 407 BLAKE2B 5f7a0d50d774db58c180b767f00bead7c7dbf5f6b3b4a2f960dfc3b8450f7abf5c2b67c6620c5318f1331646dd2003d61c70a4c31359efd16ff418ecc9d0b446 SHA512 363903b999c43a47a48c52e8898c6044fadcc66d259338ee22863e859c2bc9873a2f1392aa83c9182486d3aa4eaeb5f164cf8ccf29cc74fd8ad56245f76a039a
AUX nvidia-cuda-toolkit-glibc-2.41-r1.patch 3163 BLAKE2B a3d5dbc50898b1502a342c3c70997864bc0e49ccf035b32a76a4ca1b282d236609b5ebc5d094ac0489abcb835456231a90428a758471af59464198b0dcf79999 SHA512 e0fb0018273416df4c1c40e5f74f6d0261a93bb9c4471c12732306b40903c1df8a509a9fd9060d968ac5484b791b6dd86a6db80b6993b979b22a41f44d6bf456
AUX parse_manifest.py 8488 BLAKE2B fe4748e41727e717d99b3b7f294d7c8e67b44e3f352f27a76c386502870e6134217ead3d93714755f50b0393d514b9e317748aed89637c660e354d53354d1485 SHA512 ab90e614bfd729a0a90a7373d58fcf2f6e7ba3beb8a00841b87e8240c9386a678daf551f4fcc89040f10d46d159e316442978c60b1a8960070576cfb7a11d52c
DIST cuda_12.8.1_570.124.06_linux.run 5382238770 BLAKE2B 6dff4eb32e97f960bdb2bd57d0dbf0920a9f85c19c26199adcac64eb9d30d7b6f6e2691c7a7a0b5b8249c7860cc685931080a3775c804f6e4e3294c43380e94f SHA512 2ac14ba054bf01924e1953053850f679ebdbc2b9150715398365464eae9d686cde2b82abb8f385b74e4eafa8d68421a9ea216c7647c08956ccba8b2299b50a6e
DIST cuda_12.8.1_570.124.06_linux_sbsa.run 4606631442 BLAKE2B 142c3a231f2a621c4d6a74059b72125baca83d2653ba95c726e3e3c12cf8a0a6b75ced7c0bdaa98450c3d2c2224e88886598191b594ac69be52ba5765bb30592 SHA512 108a75e0ca098b0fd514b3380d42b4752669201dcd68c41f2c1ecf9f29c216ac5937fa33d60e11be06e8a2ad8ae73aa49e6685a363ea77af943e1a1b936b8349
EBUILD nvidia-cuda-toolkit-12.8.1.ebuild 10532 BLAKE2B c40be32d8ec1da1ead0394212e632dc690c729ad7b0e7703f5cc1308ea8608a3de9f2cc9927ec8d47b430a1b0c1f7c456c558853b6c2e302522dd7941a9ed210 SHA512 05e6fa35eb4041e7cafb1c20efe314e997d025ca811690ba8efbad0a33f5eca4e6d08599cd1542cf1ed26f2ff94d69a65c3bb400ba117fc8493736c82da00451
MISC metadata.xml 761 BLAKE2B a6ae653c6206cbc05349297499b6dde91bce6d543e10bd5ea915cfe9729dfa6f1eb954ae09c2e4d3997f51315ae090b38606c21b5099e750596ea66fdd93e817 SHA512 9133517d805201d25b651e48abed90394c88ef33a2571ab20b3b19d365f85a90478486c7c087c9150d7d9f6e4026873c5236c64ed649fd3bfc8f9b81479dcc59

View File

@@ -0,0 +1,28 @@
#!/bin/bash
SUPPORT_GCC_VERSIONS_BY_CUDA="CUDA_SUPPORTED_GCC"
_print_help() {
cat <<- EOF
Usage:
$(basename $0) [options]
-s | --supported Returns by current CUDA supported gcc versions
-h | --help Shows this help
EOF
}
case ${1} in
-s|--supported)
echo "${SUPPORT_GCC_VERSIONS_BY_CUDA}"
exit 0
;;
-h|--help)
_print_help
exit 255
;;
*)
_print_help
exit 1
;;
esac

View File

@@ -0,0 +1,72 @@
From cae8ab12c9f981f110bb2e1318d9c5306e3a2d81 Mon Sep 17 00:00:00 2001
From: Paul Zander <negril.nx@gmail.com>
Date: Sat, 8 Feb 2025 16:34:42 +0100
Subject: [PATCH] Updates headers for glibc-2.41
Match the extern definitions in cuda-crt headers with the changes in glibc-2.41.
/usr/include/bits/mathcalls.h(79): error: exception specification is
incompatible with that of previous function "cospi" (declared at line 2601
of
/opt/cuda-12.8.0/bin/../targets/x86_64-linux/include/crt/math_functions.h)
extern double cospi (double __x) noexcept (true); extern double __cospi (double __x) noexcept (true);
See-Also: https://sourceware.org/git/?p=glibc.git;a=commit;h=0ae0af68d8fa3bf6cbe1e4f1de5929ff71de67b3
Signed-off-by: Paul Zander <negril.nx@gmail.com>
diff --git a/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h b/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h
index d8201f9..a9b19d4 100644
--- a/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h
+++ b/builds/cuda_nvcc/targets/x86_64-linux/include/crt/math_functions.h
@@ -2553,7 +2553,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float rcbrt
*
* \note_accuracy_double
*/
+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41
+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double sinpi(double x) noexcept (true);
+#else
extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double sinpi(double x);
+#endif
/**
* \ingroup CUDA_MATH_SINGLE
* \brief Calculate the sine of the input argument
@@ -2576,7 +2580,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double sinpi
*
* \note_accuracy_single
*/
+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41
+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float sinpif(float x) noexcept (true);
+#else
extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float sinpif(float x);
+#endif
/**
* \ingroup CUDA_MATH_DOUBLE
* \brief Calculate the cosine of the input argument
@@ -2598,7 +2606,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float sinpi
*
* \note_accuracy_double
*/
+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41
+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double cospi(double x) noexcept (true);
+#else
extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double cospi(double x);
+#endif
/**
* \ingroup CUDA_MATH_SINGLE
* \brief Calculate the cosine of the input argument
@@ -2620,7 +2632,11 @@ extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ double cospi
*
* \note_accuracy_single
*/
+#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 41
+extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float cospif(float x) noexcept (true);
+#else
extern __DEVICE_FUNCTIONS_DECL__ __device_builtin__ float cospif(float x);
+#endif
/**
* \ingroup CUDA_MATH_DOUBLE
* \brief Calculate the sine and cosine of the first input argument
--
2.48.1

View File

@@ -0,0 +1,223 @@
#!/usr/bin/env python
# Copyright 2024-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
#
# Takes the manifests/*.xml file from the NVIDIA CUDA Toolkit as input.
# Those files contain a nested tree of package items.
#
# For each package node a if block is output that checks the package's
# name attribute against the environment provided array SKIP_COMPONENTS
# and skips that whole package if it's listed in it.
#
# Each item contains four nodes that reference things to install,
# `dir`, `file`, `desktopFile`, & `pcfile`, and metadata that further
# detail these. This script will output calls to do* calls that
# use the metadata.
# - dodir would create an empty file - we handle this in dofile
# - dofile copies a regex file glob
# - dodesktopFile creates a .desktop file
# - dopcfile creates a pkgconfig file
#
# The resulting bash code can be run inside src_install().
#
# Usage: python parse_manifest.py <cuda_aarch64.xml|cuda_x86_64.xml>
import argparse
import xml.etree.ElementTree
import defusedxml.ElementTree
from pathlib import Path
ind = "\t"
indent = 1
def main():
parser = argparse.ArgumentParser()
parser.add_argument('filename') # positional argument
args = parser.parse_args()
basedir = Path(args.filename).parents[1]
et = defusedxml.ElementTree.parse(args.filename)
# Find all packages under the package with the id main (i.e. under "CUDA Installer")
for e in et.findall("[@id='main']/package"):
def p_package(el: xml.etree.ElementTree.Element, level: int = 0):
skip = {
"Documentation", # obsolete
"Driver", # unused
# "Kernel Objects", # split
# "Demo Suite",
# "Visual Tools",
# old eclipse
# "nsight",
# old java
# "nvvp",
# "cuda-gdb-src"
}
name = el.get("name")
# trim leading CUDA and trailing version
if name.startswith("CUDA"):
name2 = ' '.join(name.split(" ")[1:-1])
else:
name2 = name
if name2 in skip:
return
# avoid having to deal with whitespaces in bash
name2 = name2.replace(" ", "_")
path = ""
print(f"{ind * (level + 0) * indent}if ! has {name2} \"${{SKIP_COMPONENTS[@]}}\"; then # \"{name}\"")
# output attributes from unhandled tags
for child in el:
if child.tag == "package":
continue
if child.tag == "file":
continue
if child.tag == "desktopFile":
continue
if child.tag == "pcfile":
continue
for attrib in child.attrib:
print(f"{child.tag} {attrib}={child.attrib[attrib]}")
# <name>CUDA Installer</name>
# only for CUDA Installer
# unused
for node in el.findall("./name"):
print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"")
# <type>compiler</type>
# category. We use the package name instead.
# unused
# for node in el.findall("./type"):
# print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"")
# <priority>1</priority>
# probably sorting for the tui installer
# unused
# for node in el.findall("./priority"):
# print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"")
# <single-selection/>
# proably for tui installer
# unused
# for node in el.findall("./single-selection"):
# print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"")
# <koversion>2.24.2</koversion>
# version of the installed kernel object (Kernel Objects only)
# unused
for node in el.findall("./koversion"):
print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"")
# <installPath>/usr/local/cuda-12.8</installPath>
# overrides the install location
# unused
# for node in el.findall("./installPath"):
# print(f"{ind * (level + 1) * indent}# {node.tag}: \"{node.text}\"")
# <buildPath>./builds/cuda_cccl/</buildPath>
# path where the package files are found
# we cd into it
for node in el.findall("./buildPath"):
path = node.text.removeprefix('./')
print(f"{ind * (level + 1) * indent}cd \"${{S}}/{path}\" || die \"cd ${{S}}/{path} failed\"")
print()
# <dir>bin</dir>
# would install empty dirs
# unused
# for node in el.findall("./dir"):
# pass
# <file dir="bin/">.*</file>
# <file>targets/x86_64-linux/lib/.*\.so</file>
# regex glob of files to install.
for node in el.findall("./file"):
# unescape '.*' -> '*' & '\.' -> '.'
file = (node.text
.replace(".*", "*")
.replace(r"\.", ".")
.replace("x86_64", "${narch}")
.replace("sbsa", "${narch}")
)
# optional dir offset, we merge it into path
dir = ""
if "dir" in node.attrib:
dir = f" \"{Path(node.attrib["dir"])}\""
filepath = basedir / path / file
# ignore existing symlinks ( include, lib* ) and the uninstallers
if not filepath.is_symlink() and not file.endswith("-uninstaller"):
print(f"{ind * (level + 1) * indent}dofile \"{file}\"{dir}")
# <pcfile description="CUDA Runtime Library">opencl-12.8.pc</pcfile>
# create a pkgconfig file for the given description and lib name/version
for node in el.findall("./pcfile"):
offset = node.text.rfind('-')
if offset == -1:
raise RuntimeError(f"failed to split pcfile {node.text}")
lib_name = node.text[:offset]
if not node.text.endswith('.pc'):
raise RuntimeError(f"pcfile does not end in '.pc' {node.text}")
lib_version = node.text[offset+1:-3]
if "description" not in node.attrib:
raise RuntimeError(f"no description for {node.text}")
subdir = ""
if "subdir" in node.attrib:
subdir = f" \"{node.attrib["subdir"]}\""
print(f"{ind * (level + 1) * indent}dopcfile "
f"\"{lib_name}\" "
f"\"{lib_version}\" "
f"\"{node.attrib["description"]}\"{subdir}")
# <desktopFile
# filename="nsight"
# name="Nsight Eclipse Edition"
# categories="Development;IDE;Debugger;ParallelComputing"
# keywords="cuda;gpu;nvidia;debugger;"
# iconPath="libnsight/icon.xpm"
# execPath="bin/nsight"
# tryExecPath="bin/nsight"
# />
# create a .desktop file
for node in el.findall("./desktopFile"):
print(f"{ind * (level + 1) * indent}dodesktopFile \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["filename"]}\" \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["name"]}\" \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["categories"]}\" \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["keywords"]}\" \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["iconPath"]}\" \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["execPath"]}\" \\")
print(f"{ind * (level + 2) * indent}\"{node.attrib["tryExecPath"]}\"")
# iterator over all nested packages
for node in el.findall("./package"):
p_package(node, level + 1)
print(f"{ind * (level + 0) * indent}fi")
p_package(e)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>sci@gentoo.org</email>
<name>Gentoo Science Project</name>
</maintainer>
<use>
<flag name="debugger">Install the CUDA debugger</flag>
<flag name="nsight">Install profiling and optimizing tools (nsight-compute, nsight-systems)</flag>
<flag name="profiler">Install the NVIDIA CUDA profiler (nvprof) and the related libraries</flag>
<flag name="rdma">Enable infiniband support via <pkg>sys-cluster/rdma-core</pkg></flag>
<flag name="sanitizer">Install compute-sanitizer tool</flag>
<flag name="vis-profiler">Install the NVIDIA CUDA visual profiler (nvvp)</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,372 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# shellcheck disable=SC2317
EAPI=8
PYTHON_COMPAT=( python3_{11..13} )
inherit check-reqs toolchain-funcs
inherit python-r1
DRIVER_PV="570.124.06"
GCC_MAX_VER="14"
CLANG_MAX_VER="19"
DESCRIPTION="NVIDIA CUDA Toolkit (compiler and friends)"
HOMEPAGE="https://developer.nvidia.com/cuda-zone"
SRC_URI="
amd64? (
https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux.run
)
arm64? (
https://developer.download.nvidia.com/compute/cuda/${PV}/local_installers/cuda_${PV}_${DRIVER_PV}_linux_sbsa.run
)
"
S="${WORKDIR}"
LICENSE="NVIDIA-CUDA"
SLOT="0/${PV}" # UNSLOTTED
# SLOT="${PV}" # SLOTTED
KEYWORDS="-* ~amd64 ~arm64 ~amd64-linux ~arm64-linux"
IUSE="debugger examples profiler rdma sanitizer"
RESTRICT="bindist mirror strip test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# since CUDA 11, the bundled toolkit driver (== ${DRIVER_PV}) and the
# actual required minimum driver version are different.
RDEPEND="
|| (
<sys-devel/gcc-$(( GCC_MAX_VER + 1 ))_pre[cxx]
<llvm-core/clang-$(( CLANG_MAX_VER + 1 ))_pre
)
sys-process/numactl
debugger? (
${PYTHON_DEPS}
)
examples? (
media-libs/freeglut
media-libs/glu
)
rdma? ( sys-cluster/rdma-core )
"
BDEPEND="
$(python_gen_any_dep '
dev-python/defusedxml[${PYTHON_USEDEP}]
')
"
# CUDA_PATH="/opt/cuda-${PV}" #950207
CUDA_PATH="/opt/cuda"
QA_PREBUILT="${CUDA_PATH#/}/*"
PATCHES=(
"${FILESDIR}/nvidia-cuda-toolkit-glibc-2.41-r1.patch"
)
python_check_deps() {
python_has_version "dev-python/defusedxml[${PYTHON_USEDEP}]"
}
cuda-toolkit_check_reqs() {
if use amd64; then
export CHECKREQS_DISK_BUILD="6645M"
elif use arm64; then
export CHECKREQS_DISK_BUILD="6412M"
fi
"check-reqs_pkg_${EBUILD_PHASE}"
}
cuda_verify() {
if has_version "sys-apps/grep[pcre]"; then
local DRIVER_PV_info
DRIVER_PV_info="$(bash "${DISTDIR}/${A}" --info | grep -oP "cuda_${PV}.*run" | cut -d '_' -f 3)"
if [[ "${DRIVER_PV}" != "${DRIVER_PV_info}" ]]; then
die "check DRIVER_PV is ${DRIVER_PV} and should be ${DRIVER_PV_info}"
fi
fi
# rest only works in with unpacked sources
[[ "${EBUILD_PHASE}" != prepare ]] && return
# run self checks
local compiler_versions GCC_HAS_VER CLANG_HAS_VER
compiler_versions="$(
grep -oP "unsupported (GNU|clang) version.*(gcc versions later than|clang version must be less than) [0-9]*" \
"${S}"/builds/cuda_nvcc/targets/*/include/crt/host_config.h
)"
GCC_HAS_VER="$( echo "${compiler_versions}" | grep gcc | grep -oP "(?<=than )[0-9]*")"
if [[ "${GCC_MAX_VER}" -ne "${GCC_HAS_VER}" ]]; then
eqawarn "check GCC_MAX_VER is ${GCC_MAX_VER} and should be ${GCC_HAS_VER}"
fi
CLANG_HAS_VER="$(( $(echo "${compiler_versions}" | grep clang | grep -oP "(?<=than )[0-9]*") - 1 ))"
if [[ "${CLANG_MAX_VER}" -ne "${CLANG_HAS_VER}" ]]; then
eqawarn "check CLANG_MAX_VER is ${CLANG_MAX_VER} and should be ${CLANG_HAS_VER}"
fi
}
pkg_pretend() {
cuda-toolkit_check_reqs
}
pkg_setup() {
cuda-toolkit_check_reqs
# we need python for manifest parsing and to determine the supported python versions for cuda-gdb
python_setup
if use amd64; then
narch=x86_64
elif use arm64; then
narch=sbsa
else
die "unknown arch ${ARCH}"
fi
export narch
}
src_unpack() {
cuda_verify
local exclude=(
"cuda-installer"
"*-uninstaller"
"NVIDIA-Linux-${narch}-${DRIVER_PV}.run"
"builds/cuda_documentation"
"builds/cuda_nsight"
"builds/cuda_nvvp"
"builds/nsight_compute"
"builds/nsight_systems"
"builds/nvidia_fs"
)
bash "${DISTDIR}/${A}" --tar xf -X <(printf "%s\n" "${exclude[@]}") || die "failed to extract ${A}"
}
src_configure() {
:
}
src_compile() {
:
}
src_install() {
local -x SKIP_COMPONENTS=(
"Kernel_Objects"
"Visual_Tools"
"Documentation" # obsolete
"cuda-gdb-src" # not used
)
! use debugger && SKIP_COMPONENTS+=( "cuda-gdb" )
! use examples && SKIP_COMPONENTS+=( "Demo_Suite" )
! use profiler && SKIP_COMPONENTS+=( "cuda-cupti" "cuda-profiler-api" "nvprof" )
! use sanitizer && SKIP_COMPONENTS+=( "compute-sanitizer" )
dodir "${CUDA_PATH}"
into "${CUDA_PATH}"
dofile() {
debug-print-function "${FUNCNAME[0]}" "$@"
if [[ $# -ne 1 ]] && [[ $# -ne 2 ]]; then
die "${FUNCNAME[0]} must receive one or two arguments"
fi
local _DESTDIR
_DESTDIR="$(dirname "${CUDA_PATH}/${1%/}")${2:+/${2%/}}"
mkdir -p "${ED}${_DESTDIR}" || die "mkdir ${_DESTDIR} failed"
local dir
dir="$(dirname "${1}")"
if test -z "$(find "${dir}" -maxdepth 1 -name "$(basename "$1")" -print -quit)"; then
if [[ -e "${ED}${_DESTDIR}/$(basename "${1}")" ]]; then
return
fi
if [[ "$1" == "targets/x86_64-linux/lib/stubs/libcusolverMg*" ]] ||
[[ "$1" == "targets/x86_64-linux/lib/libcusparse.so.*" ]]; then
return
fi
return
fi
if [[ -e "${ED}${_DESTDIR}/$(basename "${1}")" ]]; then
# skip noisy warnings
if [[ "$(basename "${1}")" == "include" ]] ||
[[ "$(basename "${1}")" == "lib64" ]]; then
return
fi
eqawarn "${ED}${_DESTDIR}/$(basename "${1}") exists"
return
fi
eval mv -i "${1}" "${ED}${_DESTDIR}" || die "mv failed ${PWD} / ${1} -> ${ED} ${_DESTDIR}"
}
dopcfile() {
[[ $# -eq 0 ]] && return
dodir "${CUDA_PATH}/pkgconfig"
cat > "${ED}${CUDA_PATH}/pkgconfig/${1}-${2}.pc" <<-EOF || die "dopcfile"
cudaroot=${EPREFIX}${CUDA_PATH}
libdir=\${cudaroot}/targets/${narch}-linux/lib${4}
includedir=\${cudaroot}/targets/${narch}-linux/include
Name: ${1}
Description: ${3}
Version: ${2}
Libs: -L\${libdir} -l${1}
Cflags: -I\${includedir}
EOF
}
pushd builds >/dev/null || die
fix_executable_bit=(
cuda_cupti/extras/CUPTI/samples/pc_sampling_utility/pc_sampling_utility_helper.h
cuda_cupti/extras/CUPTI/samples/pc_sampling_continuous/libpc_sampling_continuous.pl
libcufile/gds/tools/run_gdsio.cfg
)
if use amd64; then
fix_executable_bit+=(
cuda_opencl/targets/*/include/CL/cl.hpp
libcufile/targets/*/lib/libcufile_rdma_static.a
libcufile/targets/*/lib/libcufile_static.a
)
fi
chmod -x "${fix_executable_bit[@]}" || die "failed chmod"
popd >/dev/null || die
ebegin "parsing manifest" "${S}/manifests/cuda_"*.xml # {{{
"${EPYTHON}" "${FILESDIR}/parse_manifest.py" "${S}/manifests/cuda_"*".xml" &> "${T}/install.sh" \
|| die "failed to parse manifest"
# shellcheck disable=SC1091
source "${T}/install.sh" || die "failed to source install script"
eend $? # }}}
if use debugger; then
if [[ -d "${ED}/${CUDA_PATH}/extras/Debugger/lib64" ]]; then
rmdir "${ED}/${CUDA_PATH}/extras/Debugger/lib64" || die "remove debugger lib64"
fi
find "${ED}/${CUDA_PATH}/bin" -maxdepth 1 -name "cuda-gdb-*-tui" -print0 | while read -rd $'\0' tui_name; do
impl="$(basename "${tui_name}" | cut -d '-' -f 3 | tr '.' '_')"
if ! has "${impl}" "${PYTHON_COMPAT[@]}" || ! use "python_targets_${impl}"; then
rm "${tui_name}" || die "tui-name rm ${tui_name}"
sed -e "/$(basename "${tui_name}")\"/d" -i "${ED}/${CUDA_PATH}/bin/cuda-gdb" || die "tui_name sed"
fi
done
fi
# remove rdma libs (unless USE=rdma)
if ! use rdma; then
rm "${ED}/${CUDA_PATH}/targets/${narch}-linux/lib/libcufile_rdma"* || die "failed to remove rdma files"
fi
# Add include and lib symlinks
dosym "targets/${narch}-linux/include" "${CUDA_PATH}/include"
dosym "targets/${narch}-linux/lib" "${CUDA_PATH}/lib64"
find "${ED}/${CUDA_PATH}" -empty -delete || die
local ldpathextradirs pathextradirs
use debugger && ldpathextradirs+=":${EPREFIX}${CUDA_PATH}/extras/Debugger/lib64"
use profiler && ldpathextradirs+=":${EPREFIX}${CUDA_PATH}/extras/CUPTI/lib64"
local revord=$(( 999999 - $(printf "%02d%02d%02d" "$(ver_cut 1)" "$(ver_cut 2)" "$(ver_cut 3)") ))
newenvd - "99cuda${revord}" <<-EOF
PATH=${EPREFIX}${CUDA_PATH}/bin${pathextradirs}
PKG_CONFIG_PATH=${EPREFIX}${CUDA_PATH}/pkgconfig
LDPATH=${EPREFIX}${CUDA_PATH}/lib64:${EPREFIX}${CUDA_PATH}/nvvm/lib64${ldpathextradirs}
EOF
# CUDA prepackages libraries, don't revdep-build on them
insinto /etc/revdep-rebuild
newins - "80${PN}${revord}" <<-EOF
SEARCH_DIRS_MASK="${EPREFIX}${CUDA_PATH}"
EOF
# https://bugs.gentoo.org/926116
insinto /etc/sandbox.d
newins - "80${PN}" <<-EOF
SANDBOX_PREDICT="/proc/self/task"
EOF
# TODO drop and replace with runtime detection similar to what python does {{{
# ATTENTION: change requires revbump, see link below for supported GCC # versions
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements
local cuda_supported_gcc=( 8.5 9.5 10 11 12 13 "${GCC_MAX_VER}" )
sed \
-e "s:CUDA_SUPPORTED_GCC:${cuda_supported_gcc[*]}:g" \
"${FILESDIR}"/cuda-config.in > "${ED}/${CUDA_PATH}/bin/cuda-config" || die
fperms +x "${CUDA_PATH}/bin/cuda-config"
# }}}
# skip til cudnn has been changed #950207
# if [[ "${SLOT}" != "${PV}" ]]; then
# dosym "${CUDA_PATH}" "${CUDA_PATH%"-${PV}"}"
# fi
fowners -R root:root "${CUDA_PATH}"
}
pkg_postinst_check() {
if tc-is-gcc &&
ver_test "$(gcc-major-version)" -gt "${GCC_MAX_VER}"; then
ewarn
ewarn "gcc > ${GCC_MAX_VER} will not work with CUDA"
ewarn
ewarn "Append --ccbin= pointing to a gcc bindir to the nvcc compiler flags (NVCCFLAGS)"
ewarn "or set NVCC_CCBIN to the same bindir."
ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/*-linux-gnu/gcc-bin/${GCC_MAX_VER}")\""
ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/*-linux-gnu/gcc-bin/${GCC_MAX_VER}")"
ewarn
fi
if tc-is-clang &&
ver_test "$(clang-major-version)" -gt "${CLANG_MAX_VER}"; then
ewarn
ewarn "clang > ${CLANG_MAX_VER} will not work with CUDA"
ewarn
ewarn "Append --ccbin= pointing to a clang bindir to the nvcc compiler flags (NVCCFLAGS)"
ewarn "or set NVCC_CCBIN to the same bindir."
ewarn " NVCCFLAGS=\"--ccbin=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")\""
ewarn " NVCC_CCBIN=$(eval echo "${EPREFIX}/usr/lib/llvm/*/bin${CLANG_MAX_VER}")"
ewarn
fi
}
pkg_postinst() {
if [[ ${MERGE_TYPE} != binary ]]; then
pkg_postinst_check
fi
if use profiler; then
einfo
einfo "nvidia-drivers restricts access to performance counters."
einfo "You'll need to run profiling tools (nvprof) "
einfo "using sudo (needs cap SYS_ADMIN) or add the following line to "
einfo "a modprobe configuration file "
einfo "(e.g. /etc/modprobe.d/nvidia-prof.conf): "
einfo
einfo "options nvidia NVreg_RestrictProfilingToAdminUsers=0"
einfo
fi
}

View File

@@ -0,0 +1,3 @@
DIST smartgit-linux-24_1_3.tar.gz 114331319 BLAKE2B bd93a34d4a5a401876ee7eefed407b0ef85631caddaf4c3e016216b21a285c390bacb5e0932d10578354d4e9b0b014024459e8ba67ccfdf9ebae206472e15b9d SHA512 20eaf5e1a50930da98995388cd6b24e65c91fc150d16611a50382b28155d4a23f97cf49a6e14495ff574874c1f5e1c0dc53bc2ab0e000c8dcb2084e28c799ea3
EBUILD smartgit-24.1.3.ebuild 1828 BLAKE2B 27fa71b604b1e4ab81a9b89ae5fc095fc3c7787d29ab6360e1f0ecda240b1ff36ca65c5f013ae2189007dfe0fbc7a6ea71bf0a597cf587bc36ae52951989b86b SHA512 be19fa12af72025f36067f76e252ba745f0604e10f79c98c70ad8cf5cafd62ba71f630ccaf2aa317e949255994e2e1592d29036744e56140d7a4657f8bc971ec
MISC metadata.xml 349 BLAKE2B 03f788b099a1848be49f82e53cdbabde80b226276df7632eb4589660503ee06953f21251609e5444b9a593f97b102d4d1eab3c3cf38fe65c8cf92e6d1d537ee5 SHA512 2ec7de32f08bc98067071da34fb86cadfc57f6eb640d15ebbf8774bf874eb2849ef27af19c583c907135995da45beb0d669cf71d49a3a0fd9e80981a79d55553

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>waebbl-gentoo@posteo.net</email>
<name>Bernd Waibel</name>
</maintainer>
<longdescription>SmartSVN is a powerful GUI SVN client written in Java</longdescription>
</pkgmetadata>

View File

@@ -0,0 +1,67 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop java-pkg-2 optfeature xdg
MY_PV="$(ver_rs 1- '_')"
MY_P="${PN}-linux-${MY_PV}"
DESCRIPTION="Git client with support for GitHub Pull Requests+Comments, SVN and Mercurial"
HOMEPAGE="https://www.syntevo.com/smartgit"
SRC_URI="https://www.syntevo.com/downloads/smartgit/${MY_P}.tar.gz"
S="${WORKDIR}"/${PN}
SLOT="0"
LICENSE="smartgit"
KEYWORDS="~amd64 ~x86"
RESTRICT="bindist fetch mirror"
RDEPEND=">=virtual/jre-1.8:1.8"
DEPEND="${RDEPEND}"
QA_FLAGS_IGNORED='.*'
pkg_nofetch(){
einfo "Please download ${MY_P} from:"
einfo "http://www.syntevo.com/smartgit/download"
einfo "and move/copy it to your DISTDIR folder"
}
pkg_setup() {
java-pkg-2_pkg_setup
}
src_install() {
local rdir="/opt/${PN}" X
insinto ${rdir}
doins -r *
chmod +x "${ED}"${rdir}/bin/smartgit.sh || die
java-pkg_register-environment-variable SWT_GTK3 0
java-pkg_regjar "${ED}"/${rdir}/lib/*.jar
# java-pkg_dolauncher ${PN} --java_args "-Dsun.io.useCanonCaches=false -Xmx768m -Xverify:none -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:InitiatingHeapOccupancyPercent=25" --jar bootloader.jar
for X in 32 48 64 128 256; do
doicon -s ${X} "${ED}"${rdir}/bin/smartgit-${X}.png
done
doicon -s scalable "${ED}"${rdir}/bin/smartgit.svg
make_desktop_entry "bash ${rdir}/bin/${PN}.sh" "SmartGIT" "/usr/share/icons/hicolor/scalable/apps/${PN}.svg" "Development;RevisionControl"
# remove integrated git
rm -r "${ED}"${rdir}/git || die
}
pkg_postinst() {
xdg_pkg_postinst
elog "${PN} relies on external git executables to work."
elog "To run SmartGIT run /opt/${PN}/bin/${PN}.sh"
ewarn "Please note, the current version needs java-11 to work!"
optfeature "Git support" dev-vcs/git
}
pkg_postrm() {
xdg_pkg_postrm
}

View File

@@ -0,0 +1,7 @@
AUX freecad-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch 381 BLAKE2B 2fe05252a4e7846006c5f4e679eae5416ede589b9a6ad5fc30425933bedf933bf586b711c2c7d6a59c3881d454ea76ca39e0556a5a31c3769032694f0858e264 SHA512 731befc86267de4e5fa2caf619a8ae9692580d7025ebc26a80f6744a3104263622c38d87d0d8a263a1a15ef1c1d78c9ff3351aa463a9943941bd7d96d946e516
AUX freecad-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch 347 BLAKE2B 1c8119aec9408d77db8e09c34b86ba6a8da268509959ba5839b1ad0bb6c5b4023326055170836bf164d0d1e0a13a91ac601bde7eb6b184e4f9b1425e93ce9d38 SHA512 63bb73d0de1e12d3a34a2d055e3ddc2bdbdae5c1c67cd7c9a26047abfeda48943d793f30d190ae28f6f8e9ee7072f671badd4b8f3df29824b401bed0dbf90ed5
AUX freecad-9999-Gentoo-specific-don-t-check-vcs.patch 322 BLAKE2B 431b69d749c5639d2407207632ab48f1af36319290c1016985ed2431fe7a5314a5df8373a0a5235fcd08de5762dd090dd89b73846703348d5e2e0fac7c9c7048 SHA512 f67b3bfa013a497d0372649d9339665dd5c48b2dd00814e55ee6fcad6580a8219139f6c1931f2da5e210d181205af55e19b91a4d08b4d0dc7d45fcef358eb0ed
AUX freecad-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch 469 BLAKE2B 23e56fbc49b3c3d5ede85e6ec15d26c88c93590fce105e0b75e8b0bd3fee125c500cd59d8db0144c610edb371df318396e056333ec7a411f7647b38d18006efc SHA512 82737af95603ff1f667bf49ee43b85b411eeeb5fd9b577ad7fca6e02bcbfda5c3bbb6c70386e5f69d2181d6226574f82cb68b7e66dfe8f4bb14d946f594582cf
DIST freecad-1.0.0.tar.gz 91599325 BLAKE2B 65540eb42e7d508456c9edbf2122e0f288708c33e6d00d3c8c45550e7a614f658f91ba25978a66819bc094b7138aab72a89c0172d0841be1ff798ade5a8bdc64 SHA512 afc1079ea04fd5bb8135f8ad1012d9e4e05c8839dd0a4e00253eada58fe018f445c1200d1ca7ac9f268644c946cbf55b7b313dc3d6bd010f9da3a3334103b7db
EBUILD freecad-1.0.0-r3.ebuild 8822 BLAKE2B 4ffdcc7aa97922b7a52f30bc871ac751560b8b706fec978f05a7b9590913eea94347add1b950652db137dae43d99abad2bad9d93ca1ec2534eed964fc4c4200e SHA512 4f3de1aebd529b6ddd6b1e23c071355c567cf0e04b79c485537440cbde2bd6589f1befefbb87d05bb396c8aa0dfe594b305a5bef865ab7fd62f40892688d86f3
MISC metadata.xml 3060 BLAKE2B 7ad73261d4457110b7fbfa4a9304fe0e9fe7461bb01f49960b22c5a6c8433e8af8d416d0d28850b25c29158fd73847b2f0302cac73102c83019da00a13cc6786 SHA512 5b5e7b44f22b7fadc8ee79adb59308f1c5e398438f8304bb78829b73a65fea145a71a7d8cf1c5b0a9193455f1570fe57fdbd8aaa49bea6ee3a121faa23258515

View File

@@ -0,0 +1,11 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -16,7 +16,7 @@ else()
option(FREECAD_USE_CCACHE "Auto detect and use ccache during compilation" ON)
endif()
-if(FREECAD_USE_CCACHE)
+if(OFF)
find_program(CCACHE_PROGRAM ccache) #This check should occur before project()
if(CCACHE_PROGRAM)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")

View File

@@ -0,0 +1,15 @@
--- a/src/Tools/SubWCRev.py
+++ b/src/Tools/SubWCRev.py
@@ -510,12 +510,6 @@ def main():
bindir = a
vcs = [
- GitControl(),
- DebianGitHub(),
- BazaarControl(),
- Subversion(),
- MercurialControl(),
- DebianChangelog(),
UnknownControl(),
]
for i in vcs:

View File

@@ -0,0 +1,14 @@
--- a/src/Tools/SubWCRev.py
+++ b/src/Tools/SubWCRev.py
@@ -511,11 +511,6 @@ def main():
vcs = [
GitControl(),
- DebianGitHub(),
- BazaarControl(),
- Subversion(),
- MercurialControl(),
- DebianChangelog(),
UnknownControl(),
]
for i in vcs:

View File

@@ -0,0 +1,20 @@
--- a/tests/src/Base/CMakeLists.txt
+++ b/tests/src/Base/CMakeLists.txt
@@ -11,4 +11,6 @@ target_sources(
${CMAKE_CURRENT_SOURCE_DIR}/tst_Tools.cpp
)
-setup_qt_test(InventorBuilder)
+if(BUILD_GUI)
+ setup_qt_test(InventorBuilder)
+endif()
--- a/tests/src/Gui/CMakeLists.txt
+++ b/tests/src/Gui/CMakeLists.txt
@@ -6,4 +6,6 @@ target_sources(
)
# Qt tests
-setup_qt_test(QuantitySpinBox)
+if(BUILD_GUI)
+ setup_qt_test(QuantitySpinBox)
+endif()

View File

@@ -0,0 +1,305 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit check-reqs cmake flag-o-matic optfeature python-single-r1 qmake-utils xdg
DESCRIPTION="Qt based Computer Aided Design application"
HOMEPAGE="https://www.freecad.org/ https://github.com/FreeCAD/FreeCAD"
MY_PN=FreeCAD
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/${MY_PN}/${MY_PN}.git"
S="${WORKDIR}/freecad-${PV}"
else
SRC_URI="https://github.com/${MY_PN}/${MY_PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
S="${WORKDIR}/FreeCAD-${PV}"
fi
# code is licensed LGPL-2
# examples are licensed CC-BY-SA (without note of specific version)
LICENSE="LGPL-2 CC-BY-SA-4.0"
SLOT="0"
IUSE="debug designer +gui netgen pcl +smesh spacenav test X"
# Modules are found in src/Mod/ and their options defined in:
# cMake/FreeCAD_Helpers/InitializeFreeCADBuildOptions.cmake
# To get their dependencies:
# 'grep REQUIRES_MODS cMake/FreeCAD_Helpers/CheckInterModuleDependencies.cmake'
IUSE+=" addonmgr assembly +bim cam cloud fem idf inspection +mesh openscad points reverse robot surface +techdraw"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
bim? ( mesh )
cam? ( mesh )
gui? ( bim )
designer? ( gui )
fem? ( smesh )
inspection? ( points )
mesh? ( smesh )
openscad? ( mesh )
reverse? ( mesh points )
test? ( techdraw )
"
# Draft Workbench needs BIM
RESTRICT="!test? ( test )"
RDEPEND="
${PYTHON_DEPS}
dev-cpp/gtest
dev-cpp/yaml-cpp
dev-libs/boost:=
dev-libs/libfmt:=
dev-libs/xerces-c[icu]
dev-qt/qtbase:6[concurrent,network,xml]
media-libs/freetype
sci-libs/opencascade:=[json]
sys-libs/zlib
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/pybind11[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
')
assembly? ( sci-libs/ondselsolver )
cloud? (
dev-libs/openssl:=
net-misc/curl
)
fem? (
sci-libs/vtk:=
$(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]')
)
gui? (
>=media-libs/coin-4.0.0
dev-qt/qtbase:6[gui,opengl,widgets]
dev-qt/qtsvg:6
dev-qt/qttools:6[designer?,widgets]
$(python_gen_cond_dep '
dev-python/matplotlib[${PYTHON_USEDEP}]
>=dev-python/pivy-0.6.5[${PYTHON_USEDEP}]
dev-python/pyside:6=[uitools(-),gui,svg,${PYTHON_USEDEP}]
' )
virtual/glu
virtual/opengl
spacenav? ( dev-libs/libspnav[X?] )
)
netgen? ( media-gfx/netgen[opencascade] )
openscad? ( $(python_gen_cond_dep 'dev-python/ply[${PYTHON_USEDEP}]') )
pcl? ( sci-libs/pcl:= )
smesh? (
sci-libs/hdf5:=[zlib]
>=sci-libs/med-4.0.0-r1
sci-libs/vtk:=
)
"
DEPEND="${RDEPEND}
>=dev-cpp/eigen-3.3.1:3
dev-cpp/ms-gsl
"
BDEPEND="
dev-lang/swig
test? ( dev-cpp/gtest )
"
PATCHES=(
"${FILESDIR}"/${PN}-1.0.0-r1-Gentoo-specific-don-t-check-vcs.patch
"${FILESDIR}"/${PN}-0.21.0-0001-Gentoo-specific-disable-ccache-usage.patch
"${FILESDIR}"/${PN}-9999-tests-src-Qt-only-build-test-for-BUILD_GUI-ON.patch
)
DOCS=( CODE_OF_CONDUCT.md README.md )
CHECKREQS_DISK_BUILD="2G"
pkg_setup() {
check-reqs_pkg_setup
python-single-r1_pkg_setup
}
src_prepare() {
# Fix desktop file
sed -e 's/Exec=FreeCAD/Exec=freecad/' -i src/XDGData/org.freecad.FreeCAD.desktop || die
cmake_src_prepare
}
src_configure() {
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/875221
# https://github.com/FreeCAD/FreeCAD/issues/13173
filter-lto
# Fix building tests
append-ldflags -Wl,--copy-dt-needed-entries
local mycmakeargs=(
-DBUILD_DESIGNER_PLUGIN=$(usex designer)
-DBUILD_FORCE_DIRECTORY=ON # force building in a dedicated directory
-DBUILD_GUI=$(usex gui)
-DBUILD_SMESH=$(usex smesh)
-DBUILD_VR=OFF
-DBUILD_WITH_CONDA=OFF
# Modules
-DBUILD_ADDONMGR=$(usex addonmgr)
-DBUILD_ASSEMBLY=$(usex assembly)
-DBUILD_BIM=$(usex bim)
-DBUILD_CAM=$(usex cam)
-DBUILD_CLOUD=$(usex cloud)
-DBUILD_DRAFT=ON
# see below for DRAWING
-DBUILD_FEM=$(usex fem)
-DBUILD_FEM_NETGEN=$(usex fem $(usex netgen))
-DBUILD_FLAT_MESH=$(usex mesh) # a submodule of MeshPart
-DBUILD_HELP=ON
-DBUILD_IDF=$(usex idf)
-DBUILD_IMPORT=ON # import module for various file formats
-DBUILD_INSPECTION=$(usex inspection)
-DBUILD_JTREADER=OFF # uses an old proprietary library
-DBUILD_MATERIAL=ON
-DBUILD_MEASURE=ON
-DBUILD_MESH=$(usex mesh)
-DBUILD_MESH_PART=$(usex mesh)
-DBUILD_OPENSCAD=$(usex openscad)
-DBUILD_PART=ON
-DBUILD_PART_DESIGN=ON
-DBUILD_PLOT=ON
-DBUILD_POINTS=$(usex points)
-DBUILD_REVERSEENGINEERING=$(usex reverse)
-DBUILD_ROBOT=$(usex robot)
-DBUILD_SANDBOX=OFF
-DBUILD_SHOW=$(usex gui)
-DBUILD_SKETCHER=ON # needed by draft workspace
-DBUILD_SPREADSHEET=ON
-DBUILD_START=ON
-DBUILD_SURFACE=$(usex surface)
-DBUILD_TECHDRAW=$(usex techdraw)
-DBUILD_TEST=ON # always build test workbench for run-time testing
-DBUILD_TUX=$(usex gui)
-DBUILD_WEB=ON # needed by start workspace
-DCMAKE_INSTALL_DATADIR=/usr/share/${PN}/data
-DCMAKE_INSTALL_DOCDIR=/usr/share/doc/${PF}
-DCMAKE_INSTALL_INCLUDEDIR=/usr/include/${PN}
-DCMAKE_INSTALL_PREFIX=/usr/$(get_libdir)/${PN}
-DFREECAD_BUILD_DEBIAN=OFF
-DFREECAD_USE_EXTERNAL_ONDSELSOLVER=$(usex assembly)
-DFREECAD_USE_EXTERNAL_SMESH=OFF # no package in Gentoo
-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF # doesn't work yet, also no package in Gentoo tree
-DFREECAD_USE_FREETYPE=ON
-DFREECAD_USE_OCC_VARIANT:STRING="Official Version"
-DFREECAD_USE_PCL=$(usex pcl)
-DFREECAD_USE_PYBIND11=ON
-DFREECAD_USE_QT_FILEDIALOG=ON
# install python modules to site-packages' dir. True only for the main package,
# sub-packages will still be installed inside /usr/lib64/freecad
-DINSTALL_TO_SITEPACKAGES=ON
# Use the version of shiboken2 that matches the selected python version
-DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
-DPython3_EXECUTABLE=${PYTHON}
)
if use debug; then
# BUILD_SANDBOX currently broken, see
# https://forum.freecadweb.org/viewtopic.php?f=4&t=36071&start=30#p504595
mycmakeargs+=(
-DBUILD_SANDBOX=OFF
-DBUILD_TEMPLATE=ON
)
else
mycmakeargs+=(
-DBUILD_SANDBOX=OFF
-DBUILD_TEMPLATE=OFF
)
fi
if use gui; then
mycmakeargs+=(
-DFREECAD_QT_MAJOR_VERSION=6
-DFREECAD_QT_VERSION=6
-DQT_DEFAULT_MAJOR_VERSION=6
-DQt6Core_MOC_EXECUTABLE="$(qt6_get_bindir)/moc"
-DQt6Core_RCC_EXECUTABLE="$(qt6_get_bindir)/rcc"
-DBUILD_QT5=OFF
# Drawing module unmaintained and not ported to qt6
-DBUILD_DRAWING=OFF
)
fi
cmake_src_configure
}
# We use the FreeCADCmd binary instead of the FreeCAD binary here
# for two reasons:
# 1. It works out of the box with USE=-gui as well, not needing a guard
# 2. We don't need virtualx.eclass and its dependencies
# The environment variables are needed, so that FreeCAD knows
# where to save its temporary files, and where to look and write its
# configuration. Without those, there is a sandbox violation, when it
# tries to create /var/lib/portage/home/.FreeCAD directory.
src_test() {
cd "${BUILD_DIR}" || die
local -x FREECAD_USER_HOME="${HOME}"
local -x FREECAD_USER_DATA="${T}"
local -x FREECAD_USER_TEMP="${T}"
./bin/FreeCADCmd --run-test 0 --set-config AppHomePath="${BUILD_DIR}/" || die
}
src_install() {
cmake_src_install
dobin src/Tools/freecad-thumbnailer
if use gui; then
newbin - freecad <<- _EOF_
#!/bin/sh
# https://github.com/coin3d/coin/issues/451
: "\${QT_QPA_PLATFORM:=xcb}"
export QT_QPA_PLATFORM
exec /usr/$(get_libdir)/${PN}/bin/FreeCAD "\${@}"
_EOF_
mv "${ED}"/usr/$(get_libdir)/${PN}/share/* "${ED}"/usr/share || die "failed to move shared resources"
fi
dosym -r /usr/$(get_libdir)/${PN}/bin/FreeCADCmd /usr/bin/freecadcmd
rm -r "${ED}"/usr/$(get_libdir)/${PN}/include/E57Format || die "failed to drop unneeded include directory E57Format"
python_optimize "${ED}"/usr/share/${PN}/data/Mod/Start/StartPage "${ED}"/usr/$(get_libdir)/${PN}{/Ext,/Mod}/
# compile main package in python site-packages as well
python_optimize
}
pkg_postinst() {
xdg_pkg_postinst
einfo "You can load a lot of additional workbenches using the integrated"
einfo "AddonManager."
einfo "There are a lot of additional tools, for which FreeCAD has builtin"
einfo "support. Some of them are available in Gentoo. Take a look at"
einfo "https://wiki.freecad.org/Installing_additional_components"
optfeature_header "External programs used by FreeCAD"
optfeature "dependency graphs" media-gfx/graphviz
optfeature "importing and exporting 2D AutoCAD DWG files" media-gfx/libredwg
optfeature "importing OpenSCAD files, Mesh booleans" media-gfx/openscad
use bim && optfeature "working with COLLADA documents" dev-python/pycollada
if use fem || use mesh; then
optfeature "mesh generation" sci-libs/gmsh
fi
}
pkg_postrm() {
xdg_pkg_postrm
}

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>negril.nx+gentoo@gmail.com</email>
<name>Paul Zander</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Gentoo Proxy Maintainers</name>
</maintainer>
<use>
<flag name="addonmgr">
Build the addon manager module for automatic handling of 3rd
party addons
</flag>
<flag name="assembly">
Build the assembly module to create 3D models composed of several
distinguishable parts as a conformed machine.
</flag>
<flag name="bim">
Build the BIM module and workbench
</flag>
<flag name="cam">
Build the CAM module and workbench
</flag>
<flag name="cloud">
Build the Cloud workbench, to access cloud providers (mostly
Amazon S3).
</flag>
<flag name="designer">
Build and install the Qt designer plugin, so the FreeCAD widgets
can be used from within designer.
</flag>
<flag name="fem">
Build the FEM module and workbench which provides Finite Element
Analysis (FEA) workflows
</flag>
<flag name="gui">
Build FreeCAD with a Qt based GUI. If built without setting this
USE flag, FreeCAD can be used in a headless mode, for server-side
instances.
The Python modules are available, without their GUI parts though,
if this is unset.
</flag>
<flag name="idf">
Build the IDF module to provide file exchange capabilities with
IDF files
</flag>
<flag name="inspection">
Build the inspection workbench which gives you specific tools
for examination of shapes (experimental)
</flag>
<flag name="mesh">
Build the mesh module and workbench
</flag>
<flag name="netgen">
Build support for the netgen mesher through <pkg>media-gfx/netgen</pkg>.
</flag>
<flag name="openscad">
Build the OpenSCAD module for interoperability with OpenSCAD
and repairing Constructive Solid Geometry (CSG) history
</flag>
<flag name="pcl">
Use external <pkg>sci-libs/pcl</pkg> for point clouds support.
</flag>
<flag name="points">
Build the points module and workbench for working with point clouds
</flag>
<flag name="reverse">
Build the reverse engineering module and workbench
</flag>
<flag name="robot">
Build the robot module and workbench for studying robot movements
</flag>
<flag name="smesh">
Build Salome SMESH
</flag>
<flag name="spacenav">
Add support for space navigator devices through
<pkg>dev-libs/libspnav</pkg>
</flag>
<flag name="surface">
Build the surface module and workbench
</flag>
<flag name="techdraw">
Build the techdraw module and workbench, a more advanced and
feature-rich successor of the drawing workbench
</flag>
</use>
<upstream>
<bugs-to>https://github.com/FreeCAD/FreeCAD/issues</bugs-to>
<remote-id type="github">FreeCAD/FreeCAD</remote-id>
<doc lang="en">https://wiki.freecad.org/Main_Page</doc>
</upstream>
</pkgmetadata>

View File

@@ -2,6 +2,8 @@ AUX makeresolvedeb_gentoo_1.6.0.patch 3462 BLAKE2B 8072b571bc370b9f0c7b3b62504c9
AUX makeresolvedeb_gentoo_1.6.4.patch 3082 BLAKE2B 8745b0117c8882c5175e331a21bcc2603c189db85aaeb00e7c6d4b7e49bfcf58e4ab4ca364a7fd2e51b1078e6a5f7e7f09be794c5759250c05e4056e947ce071 SHA512 eabff75c6344aa8f1a8e2cb9c2310ded387425d11f57c814b1bd4db6a7d75613d3e8e6bc1e9585af2aca07eed23912e1187ff838059feb79d382d772e7e38267
AUX makeresolvedeb_gentoo_1.7.1.patch 4017 BLAKE2B afc88a452565f045b01d262874b3594923f25c18641f41c881344a82522ef86fe6d6e6defddcc117be29438ca02badb20e71a8605433405eb9f6987317ddcdf0 SHA512 19917afbc2e14b8f399e3005823f74df0d5d537b0dc195fc39e19ed8e429b88184409ffd27e8b026cd6baf783cd860ca290e7758bc8a10b6dfcaed16ba1292f3
AUX makeresolvedeb_gentoo_1.7.3.patch 4017 BLAKE2B afc88a452565f045b01d262874b3594923f25c18641f41c881344a82522ef86fe6d6e6defddcc117be29438ca02badb20e71a8605433405eb9f6987317ddcdf0 SHA512 19917afbc2e14b8f399e3005823f74df0d5d537b0dc195fc39e19ed8e429b88184409ffd27e8b026cd6baf783cd860ca290e7758bc8a10b6dfcaed16ba1292f3
AUX makeresolvedeb_gentoo_1.8.0.patch 6431 BLAKE2B 26e3fd74fa3e2232a652bba8b6ba3f07a51f8963404caed2e987d16d598217ee7e27c660441633831a3d3c186e6857c179a4b0a42048389a37118be6d73f46f3 SHA512 acf064b64d1d5232696ad679ba5c314edac5d8d186db07b090e947aee26a8ef9ab9cbc560bfdda2d836467e4c163c8bb4509303bf2d2f89659f9688c1e39b718
AUX makeresolvedeb_gentoo_1.8.1.patch 6431 BLAKE2B 26e3fd74fa3e2232a652bba8b6ba3f07a51f8963404caed2e987d16d598217ee7e27c660441633831a3d3c186e6857c179a4b0a42048389a37118be6d73f46f3 SHA512 acf064b64d1d5232696ad679ba5c314edac5d8d186db07b090e947aee26a8ef9ab9cbc560bfdda2d836467e4c163c8bb4509303bf2d2f89659f9688c1e39b718
DIST DaVinci_Resolve_17.4.6_Linux.zip 2340066824 BLAKE2B 6e87a65f6657a8e9bd5cbcecb62b6dd74b45e4a8d6ae0d6e2aca6643d669a8aa49736e21e9826518897adbbf2d7f36d26bec402424158e4cb232560ab0c7ecdf SHA512 5067737e66d355d28aed34a5ff810ce552c6e8f07b9fcf1935cc7b2bfc65054de67e1a53c68560f58a60e3d63078bc47cba2c4257d0afaa3d76bfc50840a1409
DIST DaVinci_Resolve_18.1.4_Linux.zip 3185181538 BLAKE2B d27e829c0e740ca9791029f387160592463133418c2ccf5b6bfaf485e7ec2bf45b1e17a5eb51955c067858d987879bc42325c25738ecf4c7b80ddd1701c336ea SHA512 bba889e818051fc22190f671468c48ebe8fe8a802af37ada0314c255510e5e2fc22dc69e409772e79b8e90f259274d298451f3a2df4f3048428f2022d4e8f6c4
DIST DaVinci_Resolve_18.5_Linux.zip 2565526748 BLAKE2B daaf338fdfc911a141f88657d66868835cc5028576e67d9b6f27f6dbd5efd10a0d3196440e6838113797e2e84f8a1f92aeb8b9d1e5837dfa542924d2a593cadf SHA512 eed54f8cd4cac06e17117c41bb8dff0185e51b3eb7050cad0a965c2d3dde023f0818c8d423da6bd0f1a2863dbf37095a7e3f127fddc1ba83a3f7bbdc997af13b
@@ -10,10 +12,13 @@ DIST DaVinci_Resolve_18.6.6_Linux.zip 2596581675 BLAKE2B d366b57810472811b2706b7
DIST DaVinci_Resolve_19.0b4_Linux.zip 2955282171 BLAKE2B 4e40f311789eff324ec107aa2e459af1da8a7a4548d2983935d557f408ba84d14f451bd18a6f1a7e330641a0e5b563328815858a780afd073c51794496284f3e SHA512 c60d830384ae9a085bce8c3b782aab3280a4bdf8b68d10982ad6f0c44ee071ee2a5b41424cf1c527770d9ad36ebf4154e82fb6a915ce9f4cc2c31133a4c7e4a8
DIST DaVinci_Resolve_19.1.1_Linux.zip 3034078545 BLAKE2B f2fe3e612d857f21c5bb08d9a717ed8d8d71b35bd870f920fdb50ff06157836a58a74c2c73b92dbea6c2ded87020c2717317a9e33c7286c8a67d19b8307c4246 SHA512 29924f6a57fa5d476ec09bd88a3f037e9b69b98466ee381cf2338b3c61270c48b4de054123bb924bb96bb63a36393de7b520114d435fe4296f9e7e2212104e9d
DIST DaVinci_Resolve_19.1.2_Linux.zip 3034084076 BLAKE2B 196cc04a3cab96bc4d0324563bec39b06ff90a024ccf71b6fd158559314c25a6ae153bdcc341c6f1dd4088427bc9ac127f422db495f1a7af85a605461ab2e9ba SHA512 c6b03bfa62adbceeb5fe827f4605e245f18ccb2b01a5cf31ba91a5aeb27aad5a16ad824491335564317cc7f8a7951336e00f074223e4e61401540d4f1b4c8f14
DIST DaVinci_Resolve_19.1.4_Linux.zip 3006240320 BLAKE2B f8c0b713031b57b9e6b49ac6c02166e7335dadb0e5780b02d740cca5a2cbdc453aff963e0361c04bc82f4f1ad4474ab8e6d4c9cdefd2107996f023af01e77239 SHA512 d2aebcdd95021f383c9e441d87acffdf75de1f641413146b6796bbe5eb4472c7ca973404060778c580e5fdde402162e1fdbc419958569468c90fe72263714c1a
DIST DaVinci_Resolve_20.0b2_Linux.zip 3405164918 BLAKE2B 9a061cd21616a49584d13b5f3cbcc9b11bafbc18783553e7067e3e68c116115ca3c5f9493775274d83572797523a8ec23245093e9fda220de50c34a828077b1f SHA512 9fd02bb4a2133e3ba1f12ac65d2703d9f88c5f0f826b415722e41dcc849701e5a33d639834d85ca8c65c75bcd60ebb30ed74ff57e71378a1da5f06d52292833e
DIST makeresolvedeb_1.6.0_multi.sh.tar.gz 4191 BLAKE2B ab2f09f339700ee31e011811152c6b97cc7e172698236efba0c0254cf69966c776dd222302e1da0266423f0af9c54ae426de4f5354d0d4550ae89b354f0a3d7a SHA512 02baae42c1e9d2163660b765ee6556660b337a3dfe25a60ee4bad9331d84700538ff9b339d045dd91cc0d89d1cd805e56437ae3a8d6ddf6502d0be0f0e5bc114
DIST makeresolvedeb_1.6.4_multi.sh.tar.gz 4338 BLAKE2B f3bab11a08432e765645e314e1906c677db5b4e321a477856d4bea6439af860c4037314d2f12200a8a227c6a36b940425688d556c312d165a77f04d6c4513cde SHA512 3e11bef55bce1947422b8f204987b5aabb645121f29f416050d73b569cb04105107ffc63a88443e795fca7eca5f022401a6c575ad1ae3311158483d6691398ce
DIST makeresolvedeb_1.7.1_multi.sh.tar.gz 4974 BLAKE2B dda1e77d88ec8c9065f4b26bc275f560ea147a3274540ae6ead10be35ce432904d4a4ef8ae69548bc88b44a628060f86cca5508477a100f1809a5f091ef0e137 SHA512 1cfcc1fc9b39dfb0424465453756c9f192d34bdfb046e4bad035bd1b516747bb04d1f2081d18d40da334a893d964e496cfab943f1262344a26926dffaf5f0a2a
DIST makeresolvedeb_1.7.3_multi.sh.tar.gz 5045 BLAKE2B 06571f207417c932c357a53ff47121727d1911032b516a2250b3555dc7cda48dfe9698403be052ee2e22f5ee9c6fc3a29fedc4afa0d80899d274b10ad033d0e4 SHA512 e5ddb6ce33d71461da07cccc59a20158b49f9958413b36262210ddb674a5a98548a6850e6e627085f3649056595d37bfdfb8728ded4507fb00a0380399c0724c
DIST makeresolvedeb_1.8.1_multi.sh.tar.gz 5174 BLAKE2B 2973cae15082e768dcda5f4c64a45ff7651b3f656f87afa39e3c96d80b789f29ed16ce659c9702d3642651b856f9cd8636509d818fe5c727730b6f694c997bc7 SHA512 4df385416774e22c684f1333714b32c9b6e9f9769e305bc3bc39929931536481a2fee7ead8e8023a3973b150aa91df539c33eee16b9bf6a5a5e955e4ccf1d096
EBUILD davinci-resolve-17.4.6.ebuild 2467 BLAKE2B fb9de7cd7a13482dcfe42f8e6823179daf144c72d4b8a8024b5aa5f502288862848dacc52bbe40f565f91c04dc991aaf02d5a0ef95e9ac626847f95ffbb16780 SHA512 dbc71120a6131aac4eeb7ab48a67ec153fb9a38316ce38a581fd99cae7f7479daa08b1afc3a88a208fc7c034b13df87fab0c7b104219f391e74fec2ab39781c7
EBUILD davinci-resolve-18.1.4.ebuild 2676 BLAKE2B 9e5d0fe3f172f4ac1a66f669fac95ce2c29803188eecc4b5e21e5044fb2403e48726d82d44440b64447aa7a3165a43984f1a1cc3836618d2aa93f631eb7a5c63 SHA512 04a11cf5f04926bfdf0446dfa0ce6223034d05e9ee8ffb63bbcc3ef37d2db5f50060acfd309c39aab6cebe5fe21c55d9d4f88c5a0d6eb80c1a3ffef812bde508
EBUILD davinci-resolve-18.5.ebuild 2704 BLAKE2B 55d5d8f34e7423acc8281aedb15b8210a0cc6246e061f8e4de3f7ecc5e35ccda2fc176fb0b4f4e74c62086108c55d6becf358a1c2db8e771052afb52a9269047 SHA512 b7def9977ed812b485d7dec598df4d673cc08ec1be39b5f488f167d86505fba12fd894170c26890614908ed36d1ae2c30a0a7bbd2091a3552182b538a8592695
@@ -22,5 +27,7 @@ EBUILD davinci-resolve-18.6.6.ebuild 2948 BLAKE2B 0a229f5f4b209286a89252ffe01535
EBUILD davinci-resolve-19.0_beta4.ebuild 2948 BLAKE2B c55d2e23c0915a80dcd2f7971e98d9153df1a3b9539a56be62c637a15aea75be5655bb229552c94beced4bf388dd2d2ee1076447267a01b1e93ebc611974d3e2 SHA512 04ed8a2f936ad8c8392bebdea34850568ce05e238b735018b3b3f37f5e19409ff338076d7152cee1dcd131b26cfe2937023466bd4dab3d1ac0bd3a6208ba2965
EBUILD davinci-resolve-19.1.1.ebuild 2973 BLAKE2B 2cb43ad48fb3cb684f647adf29871590cc73e66bb7152dd999b36cf94787e31203c7941da60e8df8951bd4091148133b5a654a3d64d6df2953381d7a0ed33529 SHA512 b25ffa9f1390ee64f8f3bdbe57c75cce62ea07de888edb25e209869cc5dabe7a6f407785b1816cf5fc72b77b1cb4bddc8ee91dd396b52cccb1ff66993ac6178d
EBUILD davinci-resolve-19.1.2.ebuild 2973 BLAKE2B 2cb43ad48fb3cb684f647adf29871590cc73e66bb7152dd999b36cf94787e31203c7941da60e8df8951bd4091148133b5a654a3d64d6df2953381d7a0ed33529 SHA512 b25ffa9f1390ee64f8f3bdbe57c75cce62ea07de888edb25e209869cc5dabe7a6f407785b1816cf5fc72b77b1cb4bddc8ee91dd396b52cccb1ff66993ac6178d
EBUILD davinci-resolve-19.1.4.ebuild 2973 BLAKE2B eb155b186dc807634a6a4b4850008e767ba4eef6666e47b72182f195c08908e0f7ce9f7fbbc27390d797d77a3985d60d2c886f8ee09d87c1c10746fc8eff0ad8 SHA512 9bda7b13f97ef550d438ebcb9aa86cfc15551394d0cf2b96b81c101bf29312c1e5dcaf4ed214ed8748651fe273f5076443c2c5758a2fa7bd462e6a3b7d90df15
EBUILD davinci-resolve-20.0_beta2.ebuild 2956 BLAKE2B a18c43fa3541493b0774dbfe6a647400e683e745295338685dc6d42827ebb1fd7069ea29068a0baa5d256d2f0cf50355cda8d8471c6ca27f5bb423bf6361396a SHA512 614f04bd0f83937c90443dfd7b5d85e6a9ce39d0fe61134ef6cad4c5faad7892fe55bc5606b897cdb5c790f3c4cd272911ea6a4f5d06c25248cc0f38b3ac4aeb
MISC ChangeLog 984 BLAKE2B 6b5afde0d34caa62f7a6e336c651652380e9144d8c3382dcca2ee680b85724d93deca09c903565ccd79987d39ed61c517f1a5e717f37d3b00d24ac95c038edf3 SHA512 8110c143fd18310b7f12b9eb575f5179a574f0941bf1d6978c96ff4887289ecabfc4c3ab5fb4a9125d9b9d5e65d9d430ebc349965b925ba0bd35cf86466badba
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@@ -0,0 +1,136 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MAJOR_VER="$(ver_cut 1-3)"
#MAJOR_VER="19.0b4"
if [[ "${PN}" == "davinci-resolve-studio" ]] ; then
BASE_NAME="DaVinci_Resolve_Studio_${MAJOR_VER}_Linux"
CONFLICT_PKG="!!media-video/davinci-resolve"
else
BASE_NAME="DaVinci_Resolve_${MAJOR_VER}_Linux"
CONFLICT_PKG="!!media-video/davinci-resolve-studio"
fi
ARC_NAME="${BASE_NAME}.zip"
MRD_VER=1.8.1
inherit udev xdg
DESCRIPTION="Professional A/V post-production software suite"
HOMEPAGE="
https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion
"
SRC_URI="${ARC_NAME}
https://www.danieltufvesson.com/download/?file=makeresolvedeb/makeresolvedeb_${MRD_VER}_multi.sh.tar.gz"
LICENSE="all-rights-reserved"
KEYWORDS="-* ~amd64"
SLOT="0"
IUSE="doc udev +system-glib"
RESTRICT="strip mirror bindist fetch userpriv"
RDEPEND="
virtual/glu
x11-libs/gtk+:=
virtual/libcrypt:=
${CONFLICT_PKG}
"
DEPEND="
dev-libs/apr-util
app-arch/libarchive
dev-libs/openssl-compat
sys-libs/ncurses-compat
dev-qt/qtcore:5
dev-qt/qtsvg:5
dev-qt/qtwebengine:5
dev-qt/qtwebsockets:5
dev-qt/qtvirtualkeyboard:5
media-libs/gstreamer
media-libs/libpng
sys-fs/fuse[suid]
udev? ( virtual/udev )
virtual/opencl
x11-misc/xdg-user-dirs
${RDEPEND}
"
BDEPEND="dev-util/patchelf"
S="${WORKDIR}"
DR="${WORKDIR}/davinci-resolve_${MAJOR_VER}-mrd${MRD_VER}_amd64"
QA_PREBUILT="*"
pkg_nofetch() {
einfo "Please download installation file"
einfo " - ${ARC_NAME}"
einfo "from ${HOMEPAGE} and place it in \$\{DISTDIR\}."
einfo "===="
einfo "Please download installation file"
einfo " - makeresolvedeb_${MRD_VER}_multi.sh.tar.gz"
einfo "from https://www.danieltufvesson.com/makeresolvedeb and place it in \$\{DISTDIR\}."
}
src_prepare() {
mv "${WORKDIR}"/makeresolvedeb*.sh "${WORKDIR}"/makeresolvedeb.sh
eapply -p0 "${FILESDIR}/makeresolvedeb_gentoo_${MRD_VER}.patch"
eapply_user
sed -i -e "s!#LIBDIR#!$(get_libdir)!" "${WORKDIR}"/makeresolvedeb.sh || die "Sed failed!"
}
_adjust_sandbox() {
addwrite /dev
addread /dev
addpredict /root
addpredict /etc
addpredict /lib
addpredict /usr
addpredict /sys
addpredict "/var/BlackmagicDesign"
addpredict "/var/BlackmagicDesign/DaVinci Resolve"
}
src_compile() {
_adjust_sandbox
cd "${WORKDIR}"
chmod u+x ${BASE_NAME}.run
CI_TEST="1" "${WORKDIR}"/makeresolvedeb.sh ${BASE_NAME}.run
}
src_install() {
cp -a ${DR}/lib "${ED}" || die
cp -a ${DR}/opt "${ED}" || die
cp -a ${DR}/usr "${ED}" || die
cp -a ${DR}/var "${ED}" || die
if use doc ; then
dodoc *.pdf
fi
# See bug 718070 for reason for the next line.
if use system-glib ; then
rm -f "${ED}"/opt/resolve/libs/libglib-*
rm -f "${ED}"/opt/resolve/libs/libgio-2.0.so*
rm -f "${ED}"/opt/resolve/libs/libgmodule-2.0.so*
fi
}
pkg_preinst() {
xdg_pkg_preinst
}
pkg_postinst() {
xdg_pkg_postinst
udev_reload
}
pkg_postrm() {
xdg_pkg_postrm
udev_reload
}

View File

@@ -0,0 +1,135 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# MAJOR_VER="$(ver_cut 1-3)"
MAJOR_VER="20.0b2"
if [[ "${PN}" == "davinci-resolve-studio" ]] ; then
BASE_NAME="DaVinci_Resolve_Studio_${MAJOR_VER}_Linux"
CONFLICT_PKG="!!media-video/davinci-resolve"
else
BASE_NAME="DaVinci_Resolve_${MAJOR_VER}_Linux"
CONFLICT_PKG="!!media-video/davinci-resolve-studio"
fi
ARC_NAME="${BASE_NAME}.zip"
MRD_VER=1.8.1
inherit udev xdg
DESCRIPTION="Professional A/V post-production software suite"
HOMEPAGE="
https://www.blackmagicdesign.com/support/family/davinci-resolve-and-fusion
"
SRC_URI="${ARC_NAME}
https://www.danieltufvesson.com/download/?file=makeresolvedeb/makeresolvedeb_${MRD_VER}_multi.sh.tar.gz"
LICENSE="all-rights-reserved"
KEYWORDS="-* ~amd64"
SLOT="0"
IUSE="doc udev +system-glib"
RESTRICT="strip mirror bindist fetch userpriv"
RDEPEND="
virtual/glu
x11-libs/gtk+:=
virtual/libcrypt:=
${CONFLICT_PKG}
"
# dev-qt/qtcore:5
# dev-qt/qtsvg:5
# dev-qt/qtwebengine:5
# dev-qt/qtwebsockets:5
# dev-qt/qtvirtualkeyboard:5
DEPEND="
dev-libs/apr-util
app-arch/libarchive
dev-libs/openssl-compat
media-libs/gstreamer
media-libs/libpng
sys-fs/fuse[suid]
udev? ( virtual/udev )
virtual/opencl
x11-misc/xdg-user-dirs
${RDEPEND}
"
BDEPEND="dev-util/patchelf"
S="${WORKDIR}"
DR="${WORKDIR}/davinci-resolve_${MAJOR_VER}-mrd${MRD_VER}_amd64"
QA_PREBUILT="*"
pkg_nofetch() {
einfo "Please download installation file"
einfo " - ${ARC_NAME}"
einfo "from ${HOMEPAGE} and place it in ${DISTDIR}."
einfo "===="
einfo "Please download installation file"
einfo " - makeresolvedeb_${MRD_VER}_multi.sh.tar.gz"
einfo "from https://www.danieltufvesson.com/makeresolvedeb and place it in \$\{DISTDIR\}."
}
src_prepare() {
mv "${WORKDIR}"/makeresolvedeb*.sh "${WORKDIR}"/makeresolvedeb.sh
eapply -p0 "${FILESDIR}/makeresolvedeb_gentoo_${MRD_VER}.patch"
eapply_user
sed -i -e "s!#LIBDIR#!$(get_libdir)!" "${WORKDIR}"/makeresolvedeb.sh || die "Sed failed!"
}
_adjust_sandbox() {
addwrite /dev
addread /dev
addpredict /root
addpredict /etc
addpredict /lib
addpredict /usr
addpredict /sys
addpredict "/var/BlackmagicDesign"
addpredict "/var/BlackmagicDesign/DaVinci Resolve"
}
src_compile() {
_adjust_sandbox
cd "${WORKDIR}"
chmod u+x ${BASE_NAME}.run
CI_TEST="1" "${WORKDIR}"/makeresolvedeb.sh ${BASE_NAME}.run
}
src_install() {
cp -a ${DR}/lib "${ED}" || die
cp -a ${DR}/opt "${ED}" || die
cp -a ${DR}/usr "${ED}" || die
cp -a ${DR}/var "${ED}" || die
if use doc ; then
dodoc *.pdf
fi
# See bug 718070 for reason for the next line.
if use system-glib ; then
rm -f "${ED}"/opt/resolve/libs/libglib-*
rm -f "${ED}"/opt/resolve/libs/libgio-2.0.so*
rm -f "${ED}"/opt/resolve/libs/libgmodule-2.0.so*
fi
}
pkg_preinst() {
xdg_pkg_preinst
}
pkg_postinst() {
xdg_pkg_postinst
udev_reload
}
pkg_postrm() {
xdg_pkg_postrm
udev_reload
}

View File

@@ -0,0 +1,141 @@
--- makeresolvedeb_1.8.0_multi.sh 2025-04-05 12:19:25.000000000 +0100
+++ makeresolvedeb.sh 2025-04-19 09:31:00.488534091 +0100
@@ -67,7 +67,7 @@
fi
if [[ -e "${1}" ]]; then
echo "[ERROR: UNABLE TO REPLACE DIRECTORY] $1"
- ERRORS=$((ERRORS+1))
+ ERRORS=$((ERRORS+1))
fi
create_directory "${1}"
}
@@ -164,8 +164,8 @@
copy_object "${UNPACK_DIR}"/libs/libBlackmagicRawAPI.so "${RESOLVE_BASE_DIR}"/bin/
# Install panel API library
- create_directory "${DEB_DIR}"/usr/lib/
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib/ libDaVinciPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#/
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR#/ libDaVinciPanelAPI.so
# Add postinst commands
cat >> "${DEB_DIR}"/DEBIAN/postinst <<EOF
@@ -221,8 +221,8 @@
copy_object "${UNPACK_DIR}"/share/default_cm_config.bin "${RESOLVE_BASE_DIR}"/share/
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
# BlackmagicRawAPI fixes
create_directory "${RESOLVE_BASE_DIR}"/bin/BlackmagicRawAPI/
@@ -240,7 +240,7 @@
chmod -R a+rw /opt/resolve/Fairlight
chmod -R a+rw /var/BlackmagicDesign/"DaVinci Resolve"
EOF
-
+
# libcudafix for Resolve 16.0 & 16.1
if [[ "$RESOLVE_VERSION" == 16.0* ]] || [[ "$RESOLVE_VERSION" == 16.1* ]];
then
@@ -284,9 +284,9 @@
copy_object "${UNPACK_DIR}"/share/default_cm_config.bin "${RESOLVE_BASE_DIR}"/share/
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# BlackmagicRawAPI fixes for 17.0 & 17.1
if [[ "$RESOLVE_VERSION" == 17.0* ]] || [[ "$RESOLVE_VERSION" == 17.1* ]];
@@ -344,11 +344,11 @@
if [[ -e "${UNPACK_DIR}"/share/remote-monitoring-log-conf.xml ]]; then
copy_object "${UNPACK_DIR}"/share/remote-monitoring-log-conf.xml "${RESOLVE_BASE_DIR}"/share/
fi
-
+
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# Create common data dir
create_directory "${DEB_DIR}"/var/BlackmagicDesign/DaVinci\ Resolve
@@ -406,9 +406,9 @@
done
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# Create common data dir
create_directory "${DEB_DIR}"/var/BlackmagicDesign/DaVinci\ Resolve
@@ -466,9 +466,9 @@
done
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# Create common data dir
create_directory "${DEB_DIR}"/var/BlackmagicDesign/DaVinci\ Resolve
@@ -489,9 +489,9 @@
fi
if [[ -e "${UNPACK_DIR}"/BlackmagicRAWPlayer ]]; then
echo "Adding BlackmagicRAWPlayer"
-
+
copy_object "${UNPACK_DIR}"/BlackmagicRAWPlayer "${RESOLVE_BASE_DIR}"
-
+
assert_object "${DEB_DIR}"/opt/resolve/graphics/blackmagicraw-player_256x256_apps.png
assert_object "${DEB_DIR}"/opt/resolve/BlackmagicRAWPlayer/BlackmagicRAWPlayer
cat > "${DEB_DIR}"/usr/share/applications/com.blackmagicdesign.rawplayer.desktop <<EOF
@@ -510,9 +510,9 @@
fi
if [[ -e "${UNPACK_DIR}"/BlackmagicRAWSpeedTest ]]; then
echo "Adding BlackmagicRAWSpeedTest"
-
+
copy_object "${UNPACK_DIR}"/BlackmagicRAWSpeedTest "${RESOLVE_BASE_DIR}"
-
+
assert_object "${DEB_DIR}"/opt/resolve/graphics/blackmagicraw-speedtest_256x256_apps.png
assert_object "${DEB_DIR}"/opt/resolve/BlackmagicRAWSpeedTest/BlackmagicRAWSpeedTest
cat > "${DEB_DIR}"/usr/share/applications/com.blackmagicdesign.rawspeedtest.desktop <<EOF
@@ -848,8 +848,8 @@
# Verify that we have the commands we need
check_command tar
-check_command fakeroot
-check_command dpkg-deb
+# check_command fakeroot
+# check_command dpkg-deb
echo
# Create destination directories
@@ -928,7 +928,7 @@
then
ERRORS=$((ERRORS+1))
fi
-
+
# Clean up
remove_directory "${UNPACK_DIR}"
remove_directory "${DEB_DIR}"

View File

@@ -0,0 +1,141 @@
--- makeresolvedeb_1.8.0_multi.sh 2025-04-05 12:19:25.000000000 +0100
+++ makeresolvedeb.sh 2025-04-19 09:31:00.488534091 +0100
@@ -67,7 +67,7 @@
fi
if [[ -e "${1}" ]]; then
echo "[ERROR: UNABLE TO REPLACE DIRECTORY] $1"
- ERRORS=$((ERRORS+1))
+ ERRORS=$((ERRORS+1))
fi
create_directory "${1}"
}
@@ -164,8 +164,8 @@
copy_object "${UNPACK_DIR}"/libs/libBlackmagicRawAPI.so "${RESOLVE_BASE_DIR}"/bin/
# Install panel API library
- create_directory "${DEB_DIR}"/usr/lib/
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib/ libDaVinciPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#/
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR#/ libDaVinciPanelAPI.so
# Add postinst commands
cat >> "${DEB_DIR}"/DEBIAN/postinst <<EOF
@@ -221,8 +221,8 @@
copy_object "${UNPACK_DIR}"/share/default_cm_config.bin "${RESOLVE_BASE_DIR}"/share/
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
# BlackmagicRawAPI fixes
create_directory "${RESOLVE_BASE_DIR}"/bin/BlackmagicRawAPI/
@@ -240,7 +240,7 @@
chmod -R a+rw /opt/resolve/Fairlight
chmod -R a+rw /var/BlackmagicDesign/"DaVinci Resolve"
EOF
-
+
# libcudafix for Resolve 16.0 & 16.1
if [[ "$RESOLVE_VERSION" == 16.0* ]] || [[ "$RESOLVE_VERSION" == 16.1* ]];
then
@@ -284,9 +284,9 @@
copy_object "${UNPACK_DIR}"/share/default_cm_config.bin "${RESOLVE_BASE_DIR}"/share/
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# BlackmagicRawAPI fixes for 17.0 & 17.1
if [[ "$RESOLVE_VERSION" == 17.0* ]] || [[ "$RESOLVE_VERSION" == 17.1* ]];
@@ -344,11 +344,11 @@
if [[ -e "${UNPACK_DIR}"/share/remote-monitoring-log-conf.xml ]]; then
copy_object "${UNPACK_DIR}"/share/remote-monitoring-log-conf.xml "${RESOLVE_BASE_DIR}"/share/
fi
-
+
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# Create common data dir
create_directory "${DEB_DIR}"/var/BlackmagicDesign/DaVinci\ Resolve
@@ -406,9 +406,9 @@
done
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# Create common data dir
create_directory "${DEB_DIR}"/var/BlackmagicDesign/DaVinci\ Resolve
@@ -466,9 +466,9 @@
done
# Extract panel API library
- create_directory "${DEB_DIR}"/usr/lib
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libDaVinciPanelAPI.so
- extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/lib libFairlightPanelAPI.so
+ create_directory "${DEB_DIR}"/usr/#LIBDIR#
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libDaVinciPanelAPI.so
+ extract_tgz "${UNPACK_DIR}"/share/panels/dvpanel-framework-linux-x86_64.tgz "${DEB_DIR}"/usr/#LIBDIR# libFairlightPanelAPI.so
# Create common data dir
create_directory "${DEB_DIR}"/var/BlackmagicDesign/DaVinci\ Resolve
@@ -489,9 +489,9 @@
fi
if [[ -e "${UNPACK_DIR}"/BlackmagicRAWPlayer ]]; then
echo "Adding BlackmagicRAWPlayer"
-
+
copy_object "${UNPACK_DIR}"/BlackmagicRAWPlayer "${RESOLVE_BASE_DIR}"
-
+
assert_object "${DEB_DIR}"/opt/resolve/graphics/blackmagicraw-player_256x256_apps.png
assert_object "${DEB_DIR}"/opt/resolve/BlackmagicRAWPlayer/BlackmagicRAWPlayer
cat > "${DEB_DIR}"/usr/share/applications/com.blackmagicdesign.rawplayer.desktop <<EOF
@@ -510,9 +510,9 @@
fi
if [[ -e "${UNPACK_DIR}"/BlackmagicRAWSpeedTest ]]; then
echo "Adding BlackmagicRAWSpeedTest"
-
+
copy_object "${UNPACK_DIR}"/BlackmagicRAWSpeedTest "${RESOLVE_BASE_DIR}"
-
+
assert_object "${DEB_DIR}"/opt/resolve/graphics/blackmagicraw-speedtest_256x256_apps.png
assert_object "${DEB_DIR}"/opt/resolve/BlackmagicRAWSpeedTest/BlackmagicRAWSpeedTest
cat > "${DEB_DIR}"/usr/share/applications/com.blackmagicdesign.rawspeedtest.desktop <<EOF
@@ -848,8 +848,8 @@
# Verify that we have the commands we need
check_command tar
-check_command fakeroot
-check_command dpkg-deb
+# check_command fakeroot
+# check_command dpkg-deb
echo
# Create destination directories
@@ -928,7 +928,7 @@
then
ERRORS=$((ERRORS+1))
fi
-
+
# Clean up
remove_directory "${UNPACK_DIR}"
remove_directory "${DEB_DIR}"

View File

@@ -1,10 +0,0 @@
AUX skypeforlinux.sh 648 BLAKE2B a4f64e21dff7db50bb2d9a774dd1265f9bcfeee75f63b34295f621dcaa1a6a36fa9852bf5137e0986bc9ddd064ee6586e83a2793cfcda0a266fff0be44f81d5e SHA512 e320df17eb89d6a4a748b56b70576d7904fa9b4c999bf26263aef3bd8ac536cd5db318c14ccd9981d2aa0ec15dd73f4b3f56b9317abae54264475a2eb6901eb2
AUX skypeforlinux.svg 4771 BLAKE2B 21b00b4722d0c25ef7f0d02ad2898f9551ec36eee9f01d460904d60381832f3422674d8ec05d469ad29e8ea5e42757d2724544a757e6d47cea62f1ffef566b17 SHA512 6f6d2cb70ed115baf5465ef8ad4b5e5df5c35bb598e79f1457b6d304015e67f83d30e37094c542854f9bdeb5333cad287bd3e1dd14e839e702ab4e3b8b118559
DIST skypeforlinux-8.119.0.201_p348.snap 185835520 BLAKE2B e6576a93228ff5db1e745a90e2c1554d7cd0e2b5394f83ff73dcb64ad5b5ac296dcf8f1ee780bc41473bb28210c1096286fececad1550815042aec0e5d97870e SHA512 b076cb9a917ee6a68a4d402b1dc7aabfdd4d2713697e5404da88cef6c7a940185769c9faea196e0bb7066fbb68427b5e60a52cc74d13058b3652093f0644f4b8
DIST skypeforlinux-8.120.76.101_p349.snap 185786368 BLAKE2B 9304701021f496b59e193bd24c59a7a3b3bcbcf05e656f64147f01022059b5ff0d6de0f83e27db486c96af574f2113988d44cfd744018d19d6e8a30995d728da SHA512 6365baa82ca9a2f45dd638e4c0aabd2b48744220560a8f9388fb2a63e8111ba62a199e81228ff83d98077551e3545256745a0fe6632cb419e03c364fdb144515
DIST skypeforlinux-8.134.0.202_p378.snap 190337024 BLAKE2B 92e14d5a7e7f244e84e69e21cb518e1fc8b5ff42ea406c7a5b00308a358dc08fa4e95dbda155824e49f94d4a5d29bbd37bc4b473e200cd97bc7f10b1e9e619a7 SHA512 009da43e2b620dc9e927026d44ed1873cca915dad5105002c02b76849335eb7a0a2ac404a9dca151d1018a04f8dc7ac53d6ef84fc9117284db46e3cb386c3415
DIST skypeforlinux-8.134.0.203_p382.snap 189882368 BLAKE2B 91bcaa1457a58e98a46f019c25a5b0208eaa9d1777311608d109464d40afc2e85d6a2ac2b4ee4918773a52c49e833d8d7d881b434e3c83ae60b445df6a1d2181 SHA512 cc486075efd474de6b9bcebabaa3c0a2e1eb7b10c2fefc6ab85c9fa796cbb560d45a11a1cd31d0968f8c9e489c8eed48698de3195878bb97d166b836e3ff4f07
EBUILD skypeforlinux-8.119.0.201_p348.ebuild 2722 BLAKE2B d39118a3fef5c3e0b120a4855c194ba156294f5ae61258271b83b23e0de9d115bb7e8b816358cec1e9a3725ed412e22cd96c8fce5179224d8f694223546bb6b4 SHA512 25ba9674b269b5f8ad1de4dd5297b38cb30e53cde1ad6c58a5bcfbbf44ef367ff93d61b4b62fea3d7325bc4f1920b81d3482128d9c93ad2db78d5fbe9aaccd61
EBUILD skypeforlinux-8.120.76.101_p349.ebuild 2722 BLAKE2B d39118a3fef5c3e0b120a4855c194ba156294f5ae61258271b83b23e0de9d115bb7e8b816358cec1e9a3725ed412e22cd96c8fce5179224d8f694223546bb6b4 SHA512 25ba9674b269b5f8ad1de4dd5297b38cb30e53cde1ad6c58a5bcfbbf44ef367ff93d61b4b62fea3d7325bc4f1920b81d3482128d9c93ad2db78d5fbe9aaccd61
EBUILD skypeforlinux-8.134.0.202_p378.ebuild 2722 BLAKE2B d39118a3fef5c3e0b120a4855c194ba156294f5ae61258271b83b23e0de9d115bb7e8b816358cec1e9a3725ed412e22cd96c8fce5179224d8f694223546bb6b4 SHA512 25ba9674b269b5f8ad1de4dd5297b38cb30e53cde1ad6c58a5bcfbbf44ef367ff93d61b4b62fea3d7325bc4f1920b81d3482128d9c93ad2db78d5fbe9aaccd61
EBUILD skypeforlinux-8.134.0.203_p382.ebuild 2722 BLAKE2B d39118a3fef5c3e0b120a4855c194ba156294f5ae61258271b83b23e0de9d115bb7e8b816358cec1e9a3725ed412e22cd96c8fce5179224d8f694223546bb6b4 SHA512 25ba9674b269b5f8ad1de4dd5297b38cb30e53cde1ad6c58a5bcfbbf44ef367ff93d61b4b62fea3d7325bc4f1920b81d3482128d9c93ad2db78d5fbe9aaccd61

View File

@@ -1,19 +0,0 @@
#!/bin/bash
# Allow the user to override command-line flags, bug #357629.
# This is based on Debian's chromium-browser package, and is intended
# to be consistent with Debian.
for f in /etc/chromium/*; do
[[ -f ${f} ]] && source "${f}"
done
# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/chromium/default).
CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-"$CHROMIUM_FLAGS"}
# Let the wrapped binary know that it has been run through the wrapper.
export CHROME_WRAPPER="$(readlink -f "$0")"
HERE="$(dirname "$CHROME_WRAPPER")"
exec -a "skypeforlinux" "$HERE/skypeforlinux" ${CHROMIUM_FLAGS} "$@"

View File

@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="1000" width="990.833313">
<defs>
<linearGradient id="a" x1="8.392999649" y1="1.105999947" x2="11.125" y2="18.35400009" gradientUnits="userSpaceOnUse">
<stop offset=".012" stop-color="#00b7f0" />
<stop offset=".339" stop-color="#009de5" />
<stop offset=".755" stop-color="#0082d9" />
<stop offset="1" stop-color="#0078d4" />
</linearGradient>
<linearGradient id="b" x1="14.37899971" y1="26.64500046" x2="29.54599953" y2="17.88899994" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#0078d4" />
<stop offset=".37" stop-color="#007ad5" />
<stop offset=".573" stop-color="#0082d9" />
<stop offset=".735" stop-color="#0090df" />
<stop offset=".875" stop-color="#00a3e7" />
<stop offset="1" stop-color="#00bcf2" />
</linearGradient>
<linearGradient id="c" x1="10.44999981" y1="6.68900013" x2="24.29100037" y2="30.66200066" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#00b7f0" />
<stop offset="1" stop-color="#007cc1" />
</linearGradient>
</defs>
<g transform="translate(-381.7262001,-337.1428572)">
<path d="m 18.51799965,9.729999542 a 8.758999825,8.729999542 0 0 1 -8.758999825,8.729999538 8.758999825,8.729999542 0 0 1 -8.758999825,-8.729999538 8.758999825,8.729999542 0 0 1 8.758999825,-8.729999542 8.758999825,8.729999542 0 0 1 8.758999825,8.729999542" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" style="fill:url(#a)" />
<path d="m 30.72499943,22.2670002 a 8.762000084,8.732999802 0 0 1 -8.76200009,8.7329998 8.762000084,8.732999802 0 0 1 -8.76200008,-8.7329998 8.762000084,8.732999802 0 0 1 8.76200008,-8.7329998 8.762000084,8.732999802 0 0 1 8.76200009,8.7329998" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" style="fill:url(#b)" />
<path d="m 1.032,10.477 a 8.758,8.758 0 1 0 9.817,-9.41 15.915,15.915 0 0 0 -9.817,9.41 z" fill-rule="evenodd" opacity=".05" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
<path d="m 30.702,21.64 a 8.761,8.761 0 1 0 -9.533,9.324 15.915,15.915 0 0 0 9.533,-9.325 z" fill-rule="evenodd" opacity=".05" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
<path d="m 1.442,12.473 a 8.755,8.755 0 1 0 11.398,-10.917 14.893,14.893 0 0 0 -11.398,10.917 z" fill-rule="evenodd" opacity=".1" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
<path d="m 30.304,19.588 a 8.758,8.758 0 1 0 -11.192,10.939 14.893,14.893 0 0 0 11.192,-10.939 z" fill-rule="evenodd" opacity=".1" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
<path d="m 1.764,13.301 a 8.753,8.753 0 1 0 11.894,-11.39 14.387,14.387 0 0 0 -11.894,11.39 z" fill-rule="evenodd" opacity=".1" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
<path d="m 29.981,18.743 a 8.756,8.756 0 1 0 -11.713,11.444 14.386,14.386 0 0 0 11.713,-11.444 z" fill-rule="evenodd" opacity=".1" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
<path d="m 29.73700047,16.06500053 a 13.87300014,13.82699966 0 0 1 -13.87300015,13.82699967 13.87300014,13.82699966 0 0 1 -13.873000145,-13.82699967 13.87300014,13.82699966 0 0 1 13.873000145,-13.82699966 13.87300014,13.82699966 0 0 1 13.87300015,13.82699966" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" style="fill:url(#c)" />
<path d="m 11.963,15.585 a 4.358,4.358 0 0 1 -1.367,-1.442 3.986,3.986 0 0 1 -0.468,-1.993 3.582,3.582 0 0 1 0.844,-2.412 5.08,5.08 0 0 1 2.2,-1.47 8.495,8.495 0 0 1 2.88,-0.485 11.184,11.184 0 0 1 1.916,0.147 6.918,6.918 0 0 1 1.329,0.343 2.576,2.576 0 0 1 1.04,0.664 1.344,1.344 0 0 1 0.321,0.893 1.294,1.294 0 0 1 -0.338,0.931 1.124,1.124 0 0 1 -0.849,0.354 1.529,1.529 0 0 1 -0.631,-0.142 11.434,11.434 0 0 0 -1.503,-0.55 5.455,5.455 0 0 0 -1.448,-0.18 3.305,3.305 0 0 0 -1.814,0.464 1.509,1.509 0 0 0 -0.724,1.355 1.363,1.363 0 0 0 0.376,0.953 3.426,3.426 0 0 0 1.013,0.725 q 0.637,0.316 1.9,0.838 a 1.97,1.97 0 0 1 0.272,0.109 13.497,13.497 0 0 1 2.352,1.209 4.742,4.742 0 0 1 1.448,1.486 3.92,3.92 0 0 1 0.523,2.064 4.151,4.151 0 0 1 -0.724,2.488 4.304,4.304 0 0 1 -2.025,1.503 8.537,8.537 0 0 1 -3.044,0.496 9.59,9.59 0 0 1 -4.149,-0.785 2.258,2.258 0 0 1 -0.854,-0.664 1.493,1.493 0 0 1 -0.278,-0.904 1.181,1.181 0 0 1 0.365,-0.92 1.345,1.345 0 0 1 0.941,-0.332 2.407,2.407 0 0 1 1.1,0.283 q 0.632,0.316 0.997,0.474 a 5.008,5.008 0 0 0 0.86,0.272 4.92,4.92 0 0 0 1.105,0.114 2.95,2.95 0 0 0 1.857,-0.495 1.635,1.635 0 0 0 0.626,-1.356 1.44,1.44 0 0 0 -0.392,-0.99 4.167,4.167 0 0 0 -1.154,-0.84 q -0.763,-0.402 -2.146,-0.98 a 13.291,13.291 0 0 1 -2.357,-1.225" fill="#fff" fill-rule="evenodd" transform="matrix(33.33333333,0,0,33.33333333,348.3928668,303.8095239)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -1,80 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg multilib-build
DESCRIPTION="Skype extracted from snap package without using snap crap."
HOMEPAGE="https://snapcraft.io/skype"
# fetch snap dl url from:
# curl -H 'Snap-Device-Series: 16' http://api.snapcraft.io/v2/snaps/info/skype | jq
# "url": "https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_333.snap"
# },
# "revision": 333, => patch level (_p)
# "version": "8.114.0.214" => version
SRC_URI="https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_${PV/#*_p/}.snap -> ${P}.snap"
S="${WORKDIR}/squashfs-root/usr/share/${PN}/"
LICENSE="Skype-TOS MIT MIT-with-advertising BSD-1 BSD-2 BSD Apache-2.0 Boost-1.0 ISC CC-BY-SA-3.0 CC0-1.0 openssl ZLIB APSL-2 icu Artistic-2 LGPL-2.1"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="system-ffmpeg system-mesa"
QA_PREBUILT="*"
BDEPEND="sys-fs/squashfs-tools[lzo]"
DEPEND="
app-accessibility/at-spi2-core:2[${MULTILIB_USEDEP}]
dev-libs/nspr[${MULTILIB_USEDEP}]
dev-libs/nss[${MULTILIB_USEDEP}]
media-libs/alsa-lib[${MULTILIB_USEDEP}]
media-libs/freetype:2[${MULTILIB_USEDEP}]
media-gfx/graphite2[${MULTILIB_USEDEP}]
net-print/cups[${MULTILIB_USEDEP}]
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/pango[${MULTILIB_USEDEP}]
system-ffmpeg? ( >=media-video/ffmpeg-6[chromium] )
system-mesa? ( media-libs/mesa[vulkan] )
"
src_unpack() {
unsquashfs "${DISTDIR}"/${P}.snap
}
src_install() {
dodir /opt/${PN}
cp -a . "${ED}"/opt/${PN} || die
if use system-ffmpeg; then
rm "${ED}/opt/${PN}/libffmpeg.so" || die
dosym "../../usr/$(get_libdir)/chromium/libffmpeg.so" "opt/${PN}/libffmpeg.so" || die
elog "Using system ffmpeg. This is experimental and may lead to crashes."
fi
if use system-mesa; then
rm "${ED}/opt/${PN}/libEGL.so" || die
rm "${ED}/opt/${PN}/libGLESv2.so" || die
rm "${ED}/opt/${PN}/libvulkan.so.1" || die
rm "${ED}/opt/${PN}/libvk_swiftshader.so" || die
rm "${ED}/opt/${PN}/vk_swiftshader_icd.json" || die
elog "Using system mesa. This is experimental and may lead to crashes."
fi
# install wrapper reading /etc/chromium/* for CHROME_FLAGS
exeinto /opt/${PN}
doexe "${FILESDIR}/${PN}.sh"
# remove chrome-sandbox binary, users should use kernel namespaces
# https://bugs.gentoo.org/692692#c18
rm "${ED}"/opt/${PN}/chrome-sandbox || die
dosym ../../opt/${PN}/${PN}.sh /usr/bin/${PN}
newicon -s scalable "${FILESDIR}/${PN}.svg" ${PN}.svg
make_desktop_entry "${EPREFIX}"/opt/${PN}/${PN}.sh "Skype" \
${PN} "Network;Chat;InstantMessaging;" \
"MimeType=x-scheme-handler/skype;"
}

View File

@@ -1,80 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg multilib-build
DESCRIPTION="Skype extracted from snap package without using snap crap."
HOMEPAGE="https://snapcraft.io/skype"
# fetch snap dl url from:
# curl -H 'Snap-Device-Series: 16' http://api.snapcraft.io/v2/snaps/info/skype | jq
# "url": "https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_333.snap"
# },
# "revision": 333, => patch level (_p)
# "version": "8.114.0.214" => version
SRC_URI="https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_${PV/#*_p/}.snap -> ${P}.snap"
S="${WORKDIR}/squashfs-root/usr/share/${PN}/"
LICENSE="Skype-TOS MIT MIT-with-advertising BSD-1 BSD-2 BSD Apache-2.0 Boost-1.0 ISC CC-BY-SA-3.0 CC0-1.0 openssl ZLIB APSL-2 icu Artistic-2 LGPL-2.1"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="system-ffmpeg system-mesa"
QA_PREBUILT="*"
BDEPEND="sys-fs/squashfs-tools[lzo]"
DEPEND="
app-accessibility/at-spi2-core:2[${MULTILIB_USEDEP}]
dev-libs/nspr[${MULTILIB_USEDEP}]
dev-libs/nss[${MULTILIB_USEDEP}]
media-libs/alsa-lib[${MULTILIB_USEDEP}]
media-libs/freetype:2[${MULTILIB_USEDEP}]
media-gfx/graphite2[${MULTILIB_USEDEP}]
net-print/cups[${MULTILIB_USEDEP}]
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/pango[${MULTILIB_USEDEP}]
system-ffmpeg? ( >=media-video/ffmpeg-6[chromium] )
system-mesa? ( media-libs/mesa[vulkan] )
"
src_unpack() {
unsquashfs "${DISTDIR}"/${P}.snap
}
src_install() {
dodir /opt/${PN}
cp -a . "${ED}"/opt/${PN} || die
if use system-ffmpeg; then
rm "${ED}/opt/${PN}/libffmpeg.so" || die
dosym "../../usr/$(get_libdir)/chromium/libffmpeg.so" "opt/${PN}/libffmpeg.so" || die
elog "Using system ffmpeg. This is experimental and may lead to crashes."
fi
if use system-mesa; then
rm "${ED}/opt/${PN}/libEGL.so" || die
rm "${ED}/opt/${PN}/libGLESv2.so" || die
rm "${ED}/opt/${PN}/libvulkan.so.1" || die
rm "${ED}/opt/${PN}/libvk_swiftshader.so" || die
rm "${ED}/opt/${PN}/vk_swiftshader_icd.json" || die
elog "Using system mesa. This is experimental and may lead to crashes."
fi
# install wrapper reading /etc/chromium/* for CHROME_FLAGS
exeinto /opt/${PN}
doexe "${FILESDIR}/${PN}.sh"
# remove chrome-sandbox binary, users should use kernel namespaces
# https://bugs.gentoo.org/692692#c18
rm "${ED}"/opt/${PN}/chrome-sandbox || die
dosym ../../opt/${PN}/${PN}.sh /usr/bin/${PN}
newicon -s scalable "${FILESDIR}/${PN}.svg" ${PN}.svg
make_desktop_entry "${EPREFIX}"/opt/${PN}/${PN}.sh "Skype" \
${PN} "Network;Chat;InstantMessaging;" \
"MimeType=x-scheme-handler/skype;"
}

View File

@@ -1,80 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg multilib-build
DESCRIPTION="Skype extracted from snap package without using snap crap."
HOMEPAGE="https://snapcraft.io/skype"
# fetch snap dl url from:
# curl -H 'Snap-Device-Series: 16' http://api.snapcraft.io/v2/snaps/info/skype | jq
# "url": "https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_333.snap"
# },
# "revision": 333, => patch level (_p)
# "version": "8.114.0.214" => version
SRC_URI="https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_${PV/#*_p/}.snap -> ${P}.snap"
S="${WORKDIR}/squashfs-root/usr/share/${PN}/"
LICENSE="Skype-TOS MIT MIT-with-advertising BSD-1 BSD-2 BSD Apache-2.0 Boost-1.0 ISC CC-BY-SA-3.0 CC0-1.0 openssl ZLIB APSL-2 icu Artistic-2 LGPL-2.1"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="system-ffmpeg system-mesa"
QA_PREBUILT="*"
BDEPEND="sys-fs/squashfs-tools[lzo]"
DEPEND="
app-accessibility/at-spi2-core:2[${MULTILIB_USEDEP}]
dev-libs/nspr[${MULTILIB_USEDEP}]
dev-libs/nss[${MULTILIB_USEDEP}]
media-libs/alsa-lib[${MULTILIB_USEDEP}]
media-libs/freetype:2[${MULTILIB_USEDEP}]
media-gfx/graphite2[${MULTILIB_USEDEP}]
net-print/cups[${MULTILIB_USEDEP}]
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/pango[${MULTILIB_USEDEP}]
system-ffmpeg? ( >=media-video/ffmpeg-6[chromium] )
system-mesa? ( media-libs/mesa[vulkan] )
"
src_unpack() {
unsquashfs "${DISTDIR}"/${P}.snap
}
src_install() {
dodir /opt/${PN}
cp -a . "${ED}"/opt/${PN} || die
if use system-ffmpeg; then
rm "${ED}/opt/${PN}/libffmpeg.so" || die
dosym "../../usr/$(get_libdir)/chromium/libffmpeg.so" "opt/${PN}/libffmpeg.so" || die
elog "Using system ffmpeg. This is experimental and may lead to crashes."
fi
if use system-mesa; then
rm "${ED}/opt/${PN}/libEGL.so" || die
rm "${ED}/opt/${PN}/libGLESv2.so" || die
rm "${ED}/opt/${PN}/libvulkan.so.1" || die
rm "${ED}/opt/${PN}/libvk_swiftshader.so" || die
rm "${ED}/opt/${PN}/vk_swiftshader_icd.json" || die
elog "Using system mesa. This is experimental and may lead to crashes."
fi
# install wrapper reading /etc/chromium/* for CHROME_FLAGS
exeinto /opt/${PN}
doexe "${FILESDIR}/${PN}.sh"
# remove chrome-sandbox binary, users should use kernel namespaces
# https://bugs.gentoo.org/692692#c18
rm "${ED}"/opt/${PN}/chrome-sandbox || die
dosym ../../opt/${PN}/${PN}.sh /usr/bin/${PN}
newicon -s scalable "${FILESDIR}/${PN}.svg" ${PN}.svg
make_desktop_entry "${EPREFIX}"/opt/${PN}/${PN}.sh "Skype" \
${PN} "Network;Chat;InstantMessaging;" \
"MimeType=x-scheme-handler/skype;"
}

View File

@@ -1,80 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop xdg multilib-build
DESCRIPTION="Skype extracted from snap package without using snap crap."
HOMEPAGE="https://snapcraft.io/skype"
# fetch snap dl url from:
# curl -H 'Snap-Device-Series: 16' http://api.snapcraft.io/v2/snaps/info/skype | jq
# "url": "https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_333.snap"
# },
# "revision": 333, => patch level (_p)
# "version": "8.114.0.214" => version
SRC_URI="https://api.snapcraft.io/api/v1/snaps/download/QRDEfjn4WJYnm0FzDKwqqRZZI77awQEV_${PV/#*_p/}.snap -> ${P}.snap"
S="${WORKDIR}/squashfs-root/usr/share/${PN}/"
LICENSE="Skype-TOS MIT MIT-with-advertising BSD-1 BSD-2 BSD Apache-2.0 Boost-1.0 ISC CC-BY-SA-3.0 CC0-1.0 openssl ZLIB APSL-2 icu Artistic-2 LGPL-2.1"
SLOT="0"
KEYWORDS="-* ~amd64"
IUSE="system-ffmpeg system-mesa"
QA_PREBUILT="*"
BDEPEND="sys-fs/squashfs-tools[lzo]"
DEPEND="
app-accessibility/at-spi2-core:2[${MULTILIB_USEDEP}]
dev-libs/nspr[${MULTILIB_USEDEP}]
dev-libs/nss[${MULTILIB_USEDEP}]
media-libs/alsa-lib[${MULTILIB_USEDEP}]
media-libs/freetype:2[${MULTILIB_USEDEP}]
media-gfx/graphite2[${MULTILIB_USEDEP}]
net-print/cups[${MULTILIB_USEDEP}]
x11-libs/gtk+:3[${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/pango[${MULTILIB_USEDEP}]
system-ffmpeg? ( >=media-video/ffmpeg-6[chromium] )
system-mesa? ( media-libs/mesa[vulkan] )
"
src_unpack() {
unsquashfs "${DISTDIR}"/${P}.snap
}
src_install() {
dodir /opt/${PN}
cp -a . "${ED}"/opt/${PN} || die
if use system-ffmpeg; then
rm "${ED}/opt/${PN}/libffmpeg.so" || die
dosym "../../usr/$(get_libdir)/chromium/libffmpeg.so" "opt/${PN}/libffmpeg.so" || die
elog "Using system ffmpeg. This is experimental and may lead to crashes."
fi
if use system-mesa; then
rm "${ED}/opt/${PN}/libEGL.so" || die
rm "${ED}/opt/${PN}/libGLESv2.so" || die
rm "${ED}/opt/${PN}/libvulkan.so.1" || die
rm "${ED}/opt/${PN}/libvk_swiftshader.so" || die
rm "${ED}/opt/${PN}/vk_swiftshader_icd.json" || die
elog "Using system mesa. This is experimental and may lead to crashes."
fi
# install wrapper reading /etc/chromium/* for CHROME_FLAGS
exeinto /opt/${PN}
doexe "${FILESDIR}/${PN}.sh"
# remove chrome-sandbox binary, users should use kernel namespaces
# https://bugs.gentoo.org/692692#c18
rm "${ED}"/opt/${PN}/chrome-sandbox || die
dosym ../../opt/${PN}/${PN}.sh /usr/bin/${PN}
newicon -s scalable "${FILESDIR}/${PN}.svg" ${PN}.svg
make_desktop_entry "${EPREFIX}"/opt/${PN}/${PN}.sh "Skype" \
${PN} "Network;Chat;InstantMessaging;" \
"MimeType=x-scheme-handler/skype;"
}

View File

@@ -4,5 +4,5 @@ AUX chrome-remote-desktop.rc 1183 BLAKE2B d1d56ac91a2ced2c6f13019f9d5c7f1d554c2f
DIST chrome-remote-desktop_110.0.5481.14_amd64.deb 17742536 BLAKE2B 3a010b73f786e013aa4bf358811ab306e87681860c1db12b5e915c80b653da0a7e190ff36c78c91fa7a68a8873c7f66a23bb6bdb98630fd881b30c33f12559f7 SHA512 66a374f04664c26e15c5c42b2dbd942dd9cdbc23127733f2f1c136deff868509db80c17028b5f9cae48a460b22443f39af337313dfd865705134737d72372600
DIST chrome-remote-desktop_118.0.5993.9_amd64.deb 17677480 BLAKE2B 1f29d8a8d90f12515afbea857e5f4b7ec0ca56a3051e14e7f67c38c906d743c74ca274a00342a8a9745effeb0023a7e88615c886dcbdcbe68bbcafe317b8902d SHA512 ffa0fb28cb7842a13df3228b5ca6e83c2e9d3967c5013b3613cefec7f86f56e6df069f33e65c3a979ce15d971906cb4488b90a4dffc4b95cd5d65346b4a08f87
EBUILD chrome-remote-desktop-110.0.5481.14.ebuild 4808 BLAKE2B 99e6d5789bf9b1e3d9204580f1337d21c86a245766b0fc45898dce1e4770e408acf50cc8a4d4d11500b50c496dcb312ca6099729c685cf01b950819b71149884 SHA512 71b2d4f96ea426ae59547a708bec5fa76c0344daf23fa2d26a375c40159fdd73c95d065485e972be607f1dd598fd29114d102ca828d96b984b3da02ba059f702
EBUILD chrome-remote-desktop-118.0.5993.9.ebuild 4852 BLAKE2B 2441593dd7a8416acf33cdcc6e954e16498eb8f094325b4820d1688e3fac385aea376db6ea7caa1a3fd902819adf1a67b5f39a21d163da73c007f451d1632b6f SHA512 fa3689bfbd73bfbd657e890aa18df43dff7388ca5ce7e65ee97d21e0f5596a9cef093d7b1884bde72b7c29814e33ef34d6a2eb39d3823e8081784ad4d827a8d4
EBUILD chrome-remote-desktop-118.0.5993.9.ebuild 4851 BLAKE2B b94a132a7fe3f0cee06946d52f1a91d44c7ea08e33057617abe3002ab64c57da73e38064369b652b65476d081e1eacd797a9bf826baa78dee619286ffcface6d SHA512 2253f642f2bbf3a72c660de29f8a2daec3b5d18099417eb6b6b7f8ac50d46ff19623aa8b0138bf4d7a2123f0bb1afc27e04ad14dcf55d04919ba82ee35a546b8
MISC metadata.xml 248 BLAKE2B 2545c58c45b8fd57a236bab059e0bd3da47a3e0d3881d141a9b2dc2e275a2d8f0663d83366b45103b48fd257d62a4a2314a8dd6b79113f8b86c91a90524918c5 SHA512 1397e06cb2ad5941988872f37df6f54100aaa06bfc7ef30ba394f95191ddaa1e9f2180d8eb856eb10f9646d9cbc4a6f020805470633c492519e66e3de788439a

View File

@@ -1,4 +1,4 @@
# Copyright 1999-2023 Gentoo Authors
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Base URL: https://dl.google.com/linux/chrome-remote-desktop/deb/
@@ -13,9 +13,9 @@
# Use curl to find the answer:
# curl -q https://dl.google.com/linux/chrome-remote-desktop/deb/dists/stable/main/binary-amd64/Packages | grep ^Filename
EAPI="7"
EAPI=8
PYTHON_COMPAT=( python3_{9..12} )
PYTHON_COMPAT=( python3_{10..13} )
PLOCALES="am ar bg bn ca cs da de el en_GB en es_419 es et fa fil fi fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr sv sw ta te th tr uk vi zh_CN zh_TW"
inherit unpacker python-single-r1 optfeature plocale

View File

@@ -1,5 +1,5 @@
DIST RASClient-20.0.25390_x86_64.tar.bz2 33146232 BLAKE2B 008aabeb55e42ae07a640990c705bfb9e7cb84804e417443df9a6aaf2872c1d35bf80dac90ffd470b698ff48a8163c67013eaabf1de5cb15a29750d70065acad SHA512 2d8ded4c97e1f6a51b93d215b954e0d45fec13e084ff6d20776e047b9d04580bf97fc500c5cc513ce8c0fd613177055fce2cb3862c575a8082a8b1e042ae63e7
DIST RASClient-sso-20.0.25390_x86_64.tar.bz2 9302 BLAKE2B 56cc7d7316be20bc118d38a7a1642980cc45fc9d4a53acd52c7e8a8e5c3be03467343494e6bab7d7b4a9b74aa89c6483ea34302ebb0c88aaa8fc04f961dc5f16 SHA512 bccd9e11c2b674f47809f33ed22d803c9d70164892e419df09a6d2411c67468a3f022c922f810d33516de39098fe0ac2c5c8439b54bc70c026c08ec27f1c99ef
EBUILD rasclient-20.0.0.25390.ebuild 2002 BLAKE2B 83a3c776dd6bc7e24a351a4a0805b16c1d140996b03ccdd895d732b65e34a2f56e92746f8334d1497e7cf582b043a21325fb3b1b5adb09c9fc78432f408ee102 SHA512 c795faab8d827f210fbd3aa314fd08f8689ffed7f1c7033a66294dd366bc497ac3cedfee56bede47cd261805bcae9ba6391ebadbe9259996a85f117862790fb8
DIST RASClient-20.2.25889_x86_64.tar.bz2 33777916 BLAKE2B 6ccef1c6469c75cf89bd6b9247b1fbe945ad8d48d183a3e2be0fed396e1fd1ec8be75f461649db43d7454326e0d02f086ccbe84b12aeabcfaab2064ce5952a55 SHA512 94285ae84e1296e846f91c207ebb3daa48738e65b501fa780d8f1862073fc055aa5c7ea2365001d589bc39559848640692cd314f2efbbfaabd9a32b28994b027
DIST RASClient-sso-20.2.25889_x86_64.tar.bz2 9643 BLAKE2B 9334960baaba9312ca788bfe2d1779e327ab34d043825ae6081369e25da72624e3d76c97bfba1185183ae76bd375c5f8734762b41d23a4f284eb70050fba87d9 SHA512 d9a51a7b3ab6b9f73f69c6c09ddfd5bab98f0f9358a5203d9bc14de10223095d75e580f63cfcd8bce09c530b377569d0dd8d8b2bde5801932d3750e49d70e98a
EBUILD rasclient-20.2.0.25889.ebuild 2002 BLAKE2B 83a3c776dd6bc7e24a351a4a0805b16c1d140996b03ccdd895d732b65e34a2f56e92746f8334d1497e7cf582b043a21325fb3b1b5adb09c9fc78432f408ee102 SHA512 c795faab8d827f210fbd3aa314fd08f8689ffed7f1c7033a66294dd366bc497ac3cedfee56bede47cd261805bcae9ba6391ebadbe9259996a85f117862790fb8
MISC ChangeLog 385 BLAKE2B ebe7cc81e97a7c49bd6dc63e83c4701deb3fa3cc665ae2c0c231e7d4dc79ce3a490e325dd57f962fa74b097fa3fb076ebafd6b0a3fc57d985fe6e16fc4cfc7a5 SHA512 eefdb08d4f09532d35752696b1ac758520ae01f5dca8f44fc63dbd1c7cfb3d83f7f03a32db69c051517ac36b16b9298727fc95d85b188ea336760652fb92305f
MISC metadata.xml 408 BLAKE2B 66a3e2838d5c5f95c7463733cd13b1230ef3ca005ec0c5dac797561be30f950da98dfa41eeb4d43cf97500c9a2e0d04c57b0b084d60107072a988dd7c4d16ded SHA512 9cac3e4a07c425e87274de776e03d243e462341168235cd3991ef4706aa1a902cf6591ae8e965b9c4ed370fc2ebef3ca805a9c761d05c4b994ae8667198b267c

View File

@@ -1,4 +1,4 @@
DIST youtube-dl-gui-1.8.3.tar.gz 703377 BLAKE2B fc3bedfe3201e86c97eff6a52a325ce6bac1f9183c6fc98470a40b32ec53c0f6dccc04607ae288b4ae1baefea7bbd032e424c5f2cd5afcc96b66cb6ce7ac6f8f SHA512 f56adb25baea489f21a57a5513d95e656835429b4512e49d848076afaa60fa356d3468cd5460fcc6e6f311bf605d959a78b4277a0ab272903dde25c2cc87ca8e
EBUILD youtube-dl-gui-1.8.3.ebuild 1240 BLAKE2B 17f4c3e2521f193257d3bbdb9d257a1ebb8bcd2402b5471563afdbf0d3d4cfef2cdc5936b5978f2c5af7de4cf1ee4b84ca22bbca101fec7994665bcde62e9ccd SHA512 061b219427b54b2ade93cf3bb0e668d8f8c39caf624e991b71dd04406765fdf211ffee5010920b7c2f823ef402663f53389f95bc276533997c19968fcf6aa5da
EBUILD youtube-dl-gui-1.8.3.ebuild 1240 BLAKE2B 8614e20c2a06da1c54fb1e82eb9fe65c8e191da26c9765b5eb4b5cf88030ac469743e9e76b5fa9eb296359a0e7dbcfa6cd0857e667225acdd14b72dc4895ad62 SHA512 990974c479f4566a8599dcc594143f6784647bea13afb40522989c4793823e91e114127ba3ccfb8280838331288fddacdf9db5e61a5cbbe571b5017260911e0b
MISC ChangeLog 385 BLAKE2B d26a404024005320f18259719956d818bc18bb6908022d6f9ac1d75de3956e19e376c8a3d7c4d5a2b3ebd332c1cbf34b39bb6d1b2863db12d373a36c5b20c63e SHA512 f0c8175bac806497f36974575b3db65b22a326aa3b74225f60b96e36b2e591351e7d9d76194ad4c1991c4b982424a1c9b894b55ff30974e1fe9d581122dada4c
MISC metadata.xml 411 BLAKE2B 6bd76e3591b8a2d88277f9ebfbd5951a7458a266adf5818533a1d829a770db62e1de41a4cb4f29206ed5eb381c6f4bfdc04973c4c65bd72496b7e31b6c85880f SHA512 df1f54923628bff824dc8835c96902bd07d4462472b9b8f356abb0b9b81875d78fa96e511290739ecc5423eadc8b2579a65b2f31f9c2c6a73c8d3413c0603d98

View File

@@ -3,7 +3,7 @@
EAPI=8
PYTHON_COMPAT=( python3_{4..12} )
PYTHON_COMPAT=( python3_{4..13} )
inherit desktop distutils-r1 xdg-utils

View File

@@ -1,2 +1,2 @@
DIST ytdlp-servustv-2023.12.27.zip 25464 BLAKE2B bc6e96f9c144941c6ebcd61f7f59458df459da8ac5e6d7240c8df86c0eb86b554925c23a0398d47b5976ec118bb229d02fb2241a6c973d627cabb044f7d25ba6 SHA512 5c2515ad8dbddbadba9f1093f63de20e25377776c4678d88fac7dc1fbe21a6233f640b0dd026d43bc04a2de5ff0e3dae4c6ff1bb65acc1a79a06ecddb731a88a
EBUILD ytdlp-servustv-2023.12.27.ebuild 539 BLAKE2B b2def50f2010d605cb57cfa68b34606f8f6366c50af96cd8e06a723b24603dc7528deb5055585a0f5395a9233b2c563ac59217eda86475241e2fe71c84ddb8ba SHA512 91bfdca3898a054ca5648497a33a3e59cbdfb60b9723ded05787926b4e00b6634e42270d29b6f4c127457bf7dad9640be7bc586ea2fb42e3f937ee2309545a41
EBUILD ytdlp-servustv-2023.12.27.ebuild 539 BLAKE2B a1188382ee098ffa6c9fd3e7546d26027677d95c3e4ecc0aca64702ff285047bfcf6702f47ac5c2be3c21b45c805d9611ecb83a2993caea495206c990646a23a SHA512 db78759b4a7f2d45037135638c96775999115a8ae6e58dd7cfd3672bf34c2cc8045654f32aa9d1ee4e123ea0f779cfaef4521587d11e41dcdfb28955f64275b3

View File

@@ -3,7 +3,7 @@
# $Id$
EAPI=8
PYTHON_COMPAT=( python3_{7..12} )
PYTHON_COMPAT=( python3_{7..13} )
inherit distutils-r1

View File

@@ -1,5 +1,4 @@
AUX kicad-7.0.0-werror.patch 682 BLAKE2B 268cf848679ffb5b5aa2389a6392986f908c64861fb6908a864ae41d788f8ac10a21d30b7a20b98409cad7f57191958f9d95d448be7c8070806c585c03d7ce8a SHA512 c30b9a080cc74687b44fb5e547d746c4e3298096e9ffa1bf5a7a2b477efb8d05db8adad7255d6b92eb2c00f739e4fcd79b9c198b3122265d26edc1db5cb4ee5e
AUX kicad-8.0.1-libgit2.patch 1329 BLAKE2B 2e9b8f5d498b60feafdbf658b05350611e67b6449412c5e8b5b2d0a3b3bacc04ced8a6f5a7d3333221c36756b43ddfe95e41f6e98fca6fe010022bc8495d71c7 SHA512 1842a255ebfea314b6880ccd00f4a9693cf288e8dec09a51e8f9da42b14e602e4bf668deadcbf216c05a1f4650723db01e2df3033ed29c6df9a7c2c8a3a5f2eb
DIST kicad-8.0.2.tar.bz2 72713030 BLAKE2B ba47a16b5c435970a45aef9988a5f6d218df043a5ce3547a191991ef63620125989e6218e97266a62c76ece604248bdf0652a10d423346fe3648c8ba240651c4 SHA512 192bcd494f00eccc430ddf9e9034f252bae177f06da81e730fb82f000a58bac9201d49ecba93c3bd17608b6df6a944beea85849050e306e11c1abfbd0028ff4a
EBUILD kicad-8.0.2-r1.ebuild 4477 BLAKE2B e80525202782c7e7e58d976a0b495150e3d8ba9b4073c9dac854933ad22973927c6dea3fd39099928f675ce866979ef094e182334cd5e9c5e03c26a03f5ba5a5 SHA512 7c1b65eb3ef115346140cabea04ab4f64f791872bd999136e32bba2a1c2c172c70a3757b17412826f32c2793c80d7d60050f47630e50bcd7c032e592fef0c152
DIST kicad-9.0.0-protobuf-30.patch 1054 BLAKE2B 64d084b9ed97a283e3a9cb32721ce0c90fc13555a71c07dcfd0878a20f43660a00e17fd45d2250b1cf421acd43214de6b8c4906f90726652ebd46254e8db06b2 SHA512 0453efd6b94ba5dee94b3aed3d5108ed1bed342f549225caceb236de418f426f24784728c3c81eb46182bf8ff9e20e4dc7dd6c95b09cc7a199c51d383bde010d
DIST kicad-9.0.0.tar.bz2 128194997 BLAKE2B b5083fbe6bd219711c0ddf1204c283ac588829a24cc46c9e4e93300f046c6a3d890a2924cda803ae41920b74bbc5f16804317a8babc68d6c3b191b5d8cd23b42 SHA512 3b6d346d9a8d42c0ed9185427a99d78fbd9d789170aed6b9a7c6983eb58e69a1c20a7ea1b98769aa3d8121f641ca05cd8540e67f33448da2f6202f4abbc6de16
EBUILD kicad-9.0.0-r1.ebuild 6033 BLAKE2B b54d3add11cc68d7db3c74ba51b45438e19dbb7791876dfe1d2a17d207d6ad899ccde2460dc3316b1a01b8de2ec4c0c35dc4d63dca65d863c78fffd42b4a2e39 SHA512 21af63084bf24635456c8edf0a0c248700fef34915a9ead0ac41925857d8a6c242cc57c0015d70f9c46040a7fe9b917d30e687f0c447e593e29127fb3f0a8cbf
MISC metadata.xml 811 BLAKE2B 4f2150b49b1bebf73aa3440ae1ace1624ce02e022d361051e895a18d28f2ab802fed04c94552b36fc0265335a1eacd5d3a7c407fc88f0c4f7de9e4fa6afa6c5f SHA512 c09c2143516f361a8553ab5c44ffa47c77c7a8dbf53596dfe9ba81378c1a7e3aee8378353950cd8805b675d0a29444848fddd4acfe107a54e3f56e87183a1c6c

View File

@@ -1,21 +0,0 @@
From 04fc6081bd3d6575d00589f71150ab796778a9c9 Mon Sep 17 00:00:00 2001
From: Matthew Smith <matthew@gentoo.org>
Date: Mon, 20 Feb 2023 17:53:50 +0000
Subject: [PATCH] build: Remove Werror flag from clipper2
Bug: https://bugs.gentoo.org/895014
--- a/thirdparty/clipper2/CMakeLists.txt
+++ b/thirdparty/clipper2/CMakeLists.txt
@@ -27,7 +27,7 @@ target_compile_definitions(clipper2 PUBLIC USINGZ)
if (MSVC)
target_compile_options(clipper2 PRIVATE /W4 /WX)
else()
- target_compile_options(clipper2 PRIVATE -Wall -Wextra -Wpedantic -Werror)
+ target_compile_options(clipper2 PRIVATE -Wall -Wextra -Wpedantic)
target_link_libraries(clipper2 PUBLIC -lm)
endif()
--
2.39.2

View File

@@ -1,36 +0,0 @@
From: Huang Rui <vowstar@gmail.com>
Date: Fri, 22 Mar 2024 18:18:40 +0800
Subject: [PATCH] libgit2-1.8.0 compatibility: adjusted parent pointer type
- Adjusted parent pointer type in git_commit_create call for compatibility
with libgit2 1.8.0 and above.
- Included preprocessor checks to maintain support for versions older than
1.8.0.
- Ensures consistent function behavior across different libgit2 versions.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17536
Signed-off-by: Huang Rui <vowstar@gmail.com>
---
kicad/project_tree_pane.cpp | 7 +++++++
1 file changed, 7 insertions(+)
--- a/kicad/project_tree_pane.cpp
+++ b/kicad/project_tree_pane.cpp
@@ -2233,7 +2233,14 @@ void PROJECT_TREE_PANE::onGitCommit( wxCommandEvent& aEvent )
}
git_oid oid;
+ // Check if the libgit2 library version is 1.8.0 or higher
+#if ( LIBGIT2_VER_MAJOR > 1 ) || ( LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR >= 8 )
+ // For libgit2 version 1.8.0 and above
+ git_commit* const parents[1] = { parent };
+#else
+ // For libgit2 versions older than 1.8.0
const git_commit* parents[1] = { parent };
+#endif
if( git_commit_create( &oid, repo, "HEAD", author, author, nullptr, commit_msg.mb_str(), tree,
1, parents ) != 0 )
--
2.44.0

View File

@@ -1,9 +1,9 @@
# Copyright 1999-2024 Gentoo Authors
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_COMPAT=( python3_{10..13} )
WX_GTK_VER="3.2-gtk3"
inherit check-reqs cmake flag-o-matic optfeature python-single-r1 toolchain-funcs wxwidgets xdg-utils
@@ -11,22 +11,42 @@ inherit check-reqs cmake flag-o-matic optfeature python-single-r1 toolchain-func
DESCRIPTION="Electronic Schematic and PCB design tools"
HOMEPAGE="https://www.kicad.org"
if [[ ${PV} == 9999 ]]; then
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://gitlab.com/kicad/code/kicad.git"
inherit git-r3
else
MY_PV="${PV/_rc/-rc}"
MY_P="${PN}-${MY_PV}"
SRC_URI="https://gitlab.com/kicad/code/${PN}/-/archive/${MY_PV}/${MY_P}.tar.bz2 -> ${P}.tar.bz2"
S="${WORKDIR}/${PN}-${MY_PV}"
SRC_URI="https://gitlab.com/kicad/code/${PN}/-/archive/${MY_PV}/${MY_P}.tar.bz2"
SRC_URI+="
https://gitlab.com/kicad/code/kicad/-/commit/5774338af2e22e1ff541ad9ab368e459e2a2add2.patch -> ${PN}-9.0.0-protobuf-30.patch
"
S="${WORKDIR}/${MY_P}"
if [[ ${PV} != *_rc* ]] ; then
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
KEYWORDS="amd64"
fi
fi
# BSD for bundled pybind
LICENSE="GPL-2+ GPL-3+ Boost-1.0 BSD"
# KiCAD is licensed under GPLv3 or later
# As per LICENSES.README some components are under different, but GPL compatible license:
# Licensed under Apache License, Version 2.0: portions of code in libs/kimath/include/math/util.h
# Licensed under BOOSTv1: clipper, clipper2, libcontext, pegtl, picosha2, turtle
# Licensed under ISC: portions of code in include/geometry/polygon_triangulation.h
# Licensed under MIT: argparse, compoundfilereader, delaunator, fmt, json_schema_validator, magic_enum nanodbc,
# nlohmann/json, nlohmann/fifo_map, pboettch/json-schema-validator, picoSHA2, rectpack2d,
# sentry-native, thread-pool, tinyspline_lib
# Licensed under MIT and BSD: glew
# Licensed under BSD: pybind11
# Licensed under BSD2: gzip-hpp
# Licensed under GPLv2 (or later): dxflib, math_for_graphics, potrace,
# SutherlandHodgmanClipPoly in thirdparty/other_math
# Licensed under ZLib: nanosvg
# Licensed in the public domain: lemon
# Licensed under CC BY-SA 4.0: all the demo files provided in demos/*
# Licensed under clause-3 BSD: ibis/kibis files in eeschema/sim/kibis
# Licensed under CC0: uopamp.lib.spice in some directories in qa/data/eeschema/spice_netlists/
LICENSE="GPL-2+ GPL-3+ Boost-1.0 BSD BSD-2 Apache-2.0 ISC MIT ZLIB CC-BY-SA-4.0 CC0-1.0"
SLOT="0"
IUSE="doc examples nls openmp test"
@@ -43,6 +63,8 @@ COMMON_DEPEND="
dev-db/unixODBC
dev-libs/boost:=[context,nls]
dev-libs/libgit2:=
>=dev-libs/protobuf-27.2:=[protobuf,protoc]
>=dev-libs/nng-1.10.0:=
media-libs/freeglut
media-libs/glew:0=
>=media-libs/glm-0.9.9.1
@@ -66,6 +88,7 @@ COMMON_DEPEND="
media-gfx/cairosvg
)
"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}
sci-electronics/electronics-menu
@@ -80,6 +103,10 @@ fi
CHECKREQS_DISK_BUILD="1500M"
PATCHES=(
"${DISTDIR}/${P}-protobuf-30.patch" # drop in 9.0.1
)
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -141,7 +168,12 @@ src_compile() {
src_test() {
# Test cannot find library in Portage's sandbox. Let's create a link so test can run.
mkdir -p "${BUILD_DIR}/qa/eeschema/" || die
dosym "${BUILD_DIR}/eeschema/_eeschema.kiface" "${BUILD_DIR}/qa/eeschema/_eeschema.kiface" || die
ln -s "${BUILD_DIR}/eeschema/_eeschema.kiface" "${BUILD_DIR}/qa/eeschema/_eeschema.kiface" || die
export CMAKE_SKIP_TESTS=(
qa_pcbnew
qa_cli
)
# LD_LIBRARY_PATH is there to help it pick up the just-built libraries
LD_LIBRARY_PATH="${BUILD_DIR}/common:${BUILD_DIR}/common/gal:${BUILD_DIR}/3d-viewer/3d_cache/sg:${LD_LIBRARY_PATH}" \

View File

@@ -0,0 +1,6 @@
AUX libsigrok-0.5.2-py313.patch 1897 BLAKE2B b4221654e1a056e9e2bcf04b79685f231204984eb40e31eecd09d04774956fc6e9fd474c0070255a130dbd67e9b191b013da8fc6568b3673bae759ca7e6d253d SHA512 081674a2d92b4562efadf812b70fece9d9a2373ff31c34e42189ea3ba5a9f49ce10f4bed70a24efdee77834f0a105fa3f54231669ff7ba8216e8761472150fe7
AUX libsigrok-0.5.2-sipeed-slogic.patch 42177 BLAKE2B e2451273f22091c4c6c550f5ee729e5ae298684de680599bb403e44474d9471c408718403a11a679403a404c45f12fe2aea1be0897ac24fb6433f6610135a954 SHA512 c0fdcb6b39d1e76a928116e8b31cced8b63421f551fd89729f03188da1988b94b6349b35c5d9516faadec4d7ba4071380e0b58608e049e1878250ab294bf0568
AUX libsigrok-0.5.2-swig-4.1.patch 377 BLAKE2B f795f46bce213e9444ea3d8b362a4d82d3e34676a9aae49f45764679effa388afcc15bc04e14fdc89cb25fbd700ca3bf80234b291c3607b0454ecf997d20997d SHA512 0334cbb95fbba961d9f16b18978dd15dbf68b80b897af54d25660dd0bcb049d21ea681f39bae3884c4869ecce4efd2601bce7825fbd41160ddddbe92ad678740
DIST libsigrok-f6d0f7a.zip 1761945 BLAKE2B 719965bb29636232ca9cdf8ea61b8365e23a875ba300e75ff1662cb43217df2cb0eb9bac796ae1debc9236e17a7bff575442e0d42f70b22e94bd928e05d3f013 SHA512 b3d59cc60845bfc46c72c7a67145e5e0b9641793d590a0a814f60f22fdb02bf6e9373219c0dca4d1805fd47321b12c6dea4c40a31fc412571b70a37cec267642
EBUILD libsigrok-0.6.0.ebuild 3506 BLAKE2B 21f395a147c87a9f3c924fc137c773700d211d55dd8500dab3101d1d79fe9469f6d7d7f0b83477da096f28eb6f9394d1d0f141fce1f6a953f7925c73f608b33d SHA512 55a8a11ad36e8d8b04f95e53ad1afc51f2e3d7cf5d71c947d662defca8233f5e740363ea64ae505578344a8bd9252264a2eeef60000d808b21ae96e8d7e01a1d
MISC metadata.xml 886 BLAKE2B cb7cece1f79a4affb612e55f147eb93895a805e43aed6bbabfed2e3b925b0714d64651c00294da2742f8c09ce9984a58888b89025d73712400c8bd026296b2cb SHA512 79c9697b3fe6954108cb60ae79c06cee280ef6d73bcd9e35ab148750a4fa55c8e5118c21cdb4e3ae009d4c160a26c98132448476ef90ac6d7a19a79138c3b2f6

View File

@@ -0,0 +1,46 @@
http://sigrok.org/gitweb/?p=libsigrok.git;a=commit;h=5bc8174531df86991ba8aa6d12942923925d9e72
From: Gerhard Sittig <redacted>
Date: Mon, 2 Oct 2023 16:33:08 +0000 (+0200)
Subject: bindings/python: rephrase for Python 3.9 deprecation (call API)
X-Git-Url: http://sigrok.org/gitweb/?p=libsigrok.git;a=commitdiff_plain;h=5bc8174531df86991ba8aa6d12942923925d9e72;hp=1711287ee9e5e4d37cab1cf9fcda5c98f732a137
bindings/python: rephrase for Python 3.9 deprecation (call API)
The PyEval_CallObject() routine was deprecated in Python 3.9, use
PyObject_CallObject() instead which has existed since at least 3.0.
There are also PyEval_InitThreads() deprecation warnings, but these
originate from SWIG generated code and are outside of our control.
Requires SWIG version 4.1 to silence these.
Tested-By: Sascha Silbe <redacted>
--- a/bindings/python/sigrok/core/classes.i
+++ b/bindings/python/sigrok/core/classes.i
@@ -134,7 +134,7 @@ typedef guint pyg_flags_type;
auto arglist = Py_BuildValue("(OO)", log_obj, string_obj);
- auto result = PyEval_CallObject($input, arglist);
+ auto result = PyObject_CallObject($input, arglist);
Py_XDECREF(arglist);
Py_XDECREF(log_obj);
@@ -177,7 +177,7 @@ typedef guint pyg_flags_type;
$1 = [=] () {
const auto gstate = PyGILState_Ensure();
- const auto result = PyEval_CallObject($input, nullptr);
+ const auto result = PyObject_CallObject($input, nullptr);
const bool completed = !PyErr_Occurred();
const bool valid_result = (completed && result == Py_None);
@@ -221,7 +221,7 @@ typedef guint pyg_flags_type;
auto arglist = Py_BuildValue("(OO)", device_obj, packet_obj);
- auto result = PyEval_CallObject($input, arglist);
+ auto result = PyObject_CallObject($input, arglist);
Py_XDECREF(arglist);
Py_XDECREF(device_obj);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
https://bugs.gentoo.org/878395
--- a/bindings/cxx/enums.py
+++ b/bindings/cxx/enums.py
@@ -73,6 +73,8 @@
code = open(os.path.join(outdirname, 'cxx/enums.cpp'), 'w')
swig = open(os.path.join(outdirname, 'swig/enums.i'), 'w')
+print('%include "attribute.i" \n', file=swig)
+
for file in (header, code):
print("/* Generated file - edit enums.py instead! */", file=file)

View File

@@ -0,0 +1,156 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
PYTHON_COMPAT=( python3_{10..13} )
GIT_COMMIT="f6d0f7a"
inherit autotools python-r1 java-pkg-opt-2 udev xdg
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="git://sigrok.org/${PN}"
inherit git-r3
else
SRC_URI="http://sigrok.org/gitweb/?p=${PN}.git;a=snapshot;h=${GIT_COMMIT};sf=zip -> ${PN}-${GIT_COMMIT}.zip"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
S="${WORKDIR}/${PN}-${GIT_COMMIT}"
fi
DESCRIPTION="Basic hardware drivers for logic analyzers and input/output file format support"
HOMEPAGE="https://sigrok.org/wiki/Libsigrok"
LICENSE="GPL-3"
SLOT="0/4"
IUSE="bluetooth +cxx ftdi hidapi java nettle parport python serial static-libs test +udev usb"
REQUIRED_USE="java? ( cxx )
python? ( cxx ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
# We also support librevisa, but that isn't in the tree ...
LIB_DEPEND="
>=dev-libs/glib-2.32.0[static-libs(+)]
>=dev-libs/libzip-0.8:=[static-libs(+)]
bluetooth? ( >=net-wireless/bluez-4.0:= )
cxx? ( dev-cpp/glibmm:2[static-libs(+)] )
ftdi? ( dev-embedded/libftdi:1[static-libs(+)] )
hidapi? ( >=dev-libs/hidapi-0.8.0 )
nettle? ( dev-libs/nettle:=[static-libs(+)] )
parport? ( sys-libs/libieee1284[static-libs(+)] )
python? (
${PYTHON_DEPS}
>=dev-python/pygobject-3.0.0[${PYTHON_USEDEP}]
)
serial? ( >=dev-libs/libserialport-0.1.1[static-libs(+)] )
usb? ( virtual/libusb:1[static-libs(+)] )
"
RDEPEND="
java? ( >=virtual/jre-1.8:* )
!static-libs? ( ${LIB_DEPEND//\[static-libs(+)]} )
static-libs? ( ${LIB_DEPEND} )
"
DEPEND="${LIB_DEPEND//\[static-libs(+)]}
cxx? ( app-text/doxygen )
java? (
>=dev-lang/swig-3.0.6
>=virtual/jdk-1.8:*
)
python? (
>=dev-lang/swig-3.0.6
dev-python/numpy[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
)
test? ( >=dev-libs/check-0.9.4 )
virtual/pkgconfig
"
BDEPEND="app-arch/unzip"
PATCHES=(
# https://bugs.gentoo.org/878395
"${FILESDIR}/${PN}-0.5.2-swig-4.1.patch"
"${FILESDIR}/${PN}-0.5.2-sipeed-slogic.patch"
"${FILESDIR}/${PN}-0.5.2-py313.patch"
)
pkg_setup() {
use python && python_setup
java-pkg-opt-2_pkg_setup
}
src_unpack() {
[[ ${PV} == *9999* ]] && git-r3_src_unpack || default
}
sigrok_src_prepare() {
eautoreconf
}
src_prepare() {
default
sigrok_src_prepare
use python && python_copy_sources
}
sigrok_src_configure() {
econf \
$(use_with bluetooth libbluez) \
$(use_with ftdi libftdi) \
$(use_with hidapi libhidapi) \
$(use_with nettle libnettle) \
$(use_with parport libieee1284) \
$(use_with serial libserialport) \
$(use_with usb libusb) \
$(use_enable cxx) \
$(use_enable java) \
$(use_enable static-libs static) \
"${@}"
}
each_python_configure() {
cd "${BUILD_DIR}"
sigrok_src_configure --disable-ruby --enable-python
}
src_configure() {
sigrok_src_configure --disable-ruby --disable-python
use python && python_foreach_impl each_python_configure
}
each_python_compile() {
cd "${BUILD_DIR}"
emake python-build
}
src_compile() {
default
use python && python_foreach_impl each_python_compile
}
src_test() {
emake check
}
each_python_install() {
cd "${BUILD_DIR}"
emake python-install DESTDIR="${D}"
python_optimize
}
src_install() {
default
use python && python_foreach_impl each_python_install
use udev && udev_dorules contrib/*.rules
find "${D}" -name '*.la' -type f -delete || die
}
pkg_postinst() {
udev_reload
xdg_pkg_postinst
}
pkg_postrm() {
udev_reload
xdg_pkg_postrm
}

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>embedded@gentoo.org</email>
<name>Embedded Gentoo</name>
</maintainer>
<longdescription>
libsigrok is a shared library written in C, which provides the basic
hardware access drivers for logic analyzers and other supported devices,
as well as input/output file format support.
</longdescription>
<use>
<flag name="ftdi">Enable drivers that need <pkg>dev-embedded/libftdi</pkg></flag>
<flag name="hidapi">Enable drivers that need <pkg>dev-libs/hidapi</pkg></flag>
<flag name="nettle">Enable drivers that need <pkg>dev-libs/nettle</pkg></flag>
<flag name="parport">Enable drivers that are parallel (IEEE1284) based</flag>
<flag name="serial">Enable drivers that are serial (RS232) based</flag>
</use>
</pkgmetadata>

View File

@@ -0,0 +1,3 @@
DIST libsigrokdecode-782c35b.zip 837923 BLAKE2B 9c1fcbd3eb19a55f840aab53e79a7409e4508a6c47dfe384b94a8ca76be193a98b67d6b488bf7c9efa79899d9d96acb87a2a4b103ba13a26a5b8bc46727fc54e SHA512 beb954d793647e0756abfa3a54641b5db7dc566cb31d205796e4fdb38f3dcf97320046d88fb2d9ee55e0ec91864c021ded362ba7bc5a3ac1e4dfccc98bd2dd6b
EBUILD libsigrokdecode-0.6.0.ebuild 1229 BLAKE2B fc32c61a3720624c6d536400832f76ac2ecb28a497621c666c34654ae4e187e3073a0cb188ce4386501aa46698d4f6d82b5beba94716cf9fde1f908031d012f7 SHA512 18b0b338b1c07c7fd8932a60a9ff52a81ee3cd42c6ed5618dc7d74859cacc92259ef31b69cbb28cab8f245366b2fd5206b43f750e0c249f8aeda262b1bd94773
MISC metadata.xml 248 BLAKE2B 9858a97a2186d5b06e272fe28021e0e668897630d8b99023000e8e58e852e80e16b399d8f864b9dff6c9fda25e1519ac8b4331792a4b441be23922707c4ad6a9 SHA512 a1e8f757e473af3ab0ccf695f849dc91e1be877dd505d339bdd26e35a2cf7fb5ffd8f5bf34e933873a462023aecb0edbddefbbda455289279182059cd6c1b0e5

Some files were not shown because too many files have changed in this diff Show More