Sync with portage [Fri Jul 19 09:56:18 MSK 2024].

master 2604
root 2 months ago
parent 7595dae971
commit dd7eadbcc6

Binary file not shown.

Binary file not shown.

@ -1,2 +1,3 @@
DIST at-spi2-core-2.50.1.tar.xz 567836 BLAKE2B 88916f322efa547be2249388a5f7b698ff7fb9464bc98fa929524616d0d25237328c10678df800b9ce325a3050804e9b0044a43024d06b71381dfc32917700a3 SHA512 d0b342a1ff2a3dd91aa87663412289d1616906c14a37e81b8514882d44981092356dc8a5d5c66b6d980d2cdf22128fff74651a4af6cad73cb62fd3154c5bbeae
DIST at-spi2-core-2.50.2.tar.xz 569124 BLAKE2B 7a69dbeb68b674d5b4e458dc10ba0e266583216f6a45f1924dee28e848bc124802f5181b0b1cc969eae2dfbb13df56b0c87bb1f347f6e323f6474d02a3543664 SHA512 a1c9ca77d34801b421c13f66d72e6101b23896dd210efbd7931ac0778e30c51a20759796a8c121946f57c1683626fd3ef34f88e5ad6495c20f6ac79fd0a96aa4
DIST at-spi2-core-2.52.0.tar.xz 574684 BLAKE2B 642cf8a63700ed5d5e20eb356f60c5d5e771d34bb0a373e95c71898ea2318c41484faec736ec44b1162fac22a075ca5f7b4698b105972ea060d107f9afc7f5b9 SHA512 0482cae97cf5e2295ab56f6ae83db9e1047813a1c3c2b6cd6012f95dfabec1f7a93d0045a1a7c3fabb7a389f71dc43f797b2ad9242e97ddf565cf63948ae146b

@ -0,0 +1,76 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit gnome.org meson-multilib systemd virtualx xdg
DESCRIPTION="D-Bus accessibility specifications and registration daemon"
HOMEPAGE="https://gitlab.gnome.org/GNOME/at-spi2-core"
LICENSE="LGPL-2.1+"
SLOT="2"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
IUSE="X dbus-broker gtk-doc +introspection systemd"
REQUIRED_USE="
dbus-broker? ( systemd )
gtk-doc? ( X )
"
DEPEND="
>=sys-apps/dbus-1.5[${MULTILIB_USEDEP}]
>=dev-libs/glib-2.67.4:2[${MULTILIB_USEDEP}]
>=dev-libs/libxml2-2.9.1:2[${MULTILIB_USEDEP}]
introspection? ( >=dev-libs/gobject-introspection-1.54.0:= )
systemd? ( sys-apps/systemd[${MULTILIB_USEDEP}] )
X? (
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXtst[${MULTILIB_USEDEP}]
x11-libs/libXi[${MULTILIB_USEDEP}]
)
!<dev-libs/atk-2.46.0
!<app-accessibility/at-spi2-atk-2.46.0
"
RDEPEND="${DEPEND}
dbus-broker? ( sys-apps/dbus-broker )
"
BDEPEND="
dev-util/glib-utils
gtk-doc? (
dev-python/sphinx
dev-util/gdbus-codegen
>=dev-util/gi-docgen-2021.1
)
>=sys-devel/gettext-0.19.8
virtual/pkgconfig
"
multilib_src_configure() {
local emesonargs=(
-Ddefault_bus=$(usex dbus-broker dbus-broker dbus-daemon)
$(meson_use systemd use_systemd)
-Dgtk2_atk_adaptor=true
-Dsystemd_user_dir="$(systemd_get_userunitdir)"
$(meson_native_use_bool gtk-doc docs)
$(meson_native_use_feature introspection)
$(meson_feature X x11)
-Ddisable_p2p=false
-Datk_only=false
)
meson_src_configure
}
multilib_src_test() {
virtx dbus-run-session meson test -C "${BUILD_DIR}" || die
}
multilib_src_install_all() {
einstalldocs
if use gtk-doc; then
mkdir -p "${ED}"/usr/share/gtk-doc/{libatspi,atk} || die
mv "${ED}"/usr/share/doc/libatspi "${ED}"/usr/share/gtk-doc/libatspi/html || die
mv "${ED}"/usr/share/doc/atk "${ED}"/usr/share/gtk-doc/atk/html || die
fi
}

Binary file not shown.

@ -1,3 +1,4 @@
DIST aws-cli-1.33.18.gh.tar.gz 2752774 BLAKE2B 8f78ba78c3fac623f091344fb2710ac79440d3bf96e0c33168bdf5d6c6d705318c8ea82d769eef4fb82840e8e94998b65b81999831c75be9a1924fac7be37aa4 SHA512 e0444118ab02fcba91cc1f078db80176da97abee64d2cd38875281c8344930fa63b89d1b59f43ed7690c432fc0d36273e7f4d2e0c947ae56a13ec6f42dea6ec9
DIST aws-cli-1.33.22.gh.tar.gz 2754043 BLAKE2B 8645a55cc6f0570ce0e69599e010c98019e63f2616af25467eefc0911f09148b64cdb35ba48e488801afe6aaa105f7dc54e1111acb49ed954cc036f9aaf933db SHA512 1425e1fd3df1a3639838517282f3fc6b63019e25288b38e8f56cd2316c6edb695c24a5dfb4ecf572139222bb16006fd55a9912f287c24c1bc16939bcc0f3a48a
DIST aws-cli-1.33.26.gh.tar.gz 2757281 BLAKE2B 04d88160203ff9cfc0c0f22dd9d57c70e95289af769b4639708bc6a760d32b324fe4785def2cfdf17abadfbfd04a2ef974979dd3b9ac6342bea230a297b7c022 SHA512 e4ce9037042edfdeb36a8bfd74f7998664838598af066cf324245ddc04555037f0ff7b69f1e2dbf0cb727932ef9a6c0feef8acafaed00e5b0c94b1b9e59a6c2d
DIST aws-cli-1.33.27.gh.tar.gz 2758530 BLAKE2B c40db2483f0561078d1dc191e1d8c97bae0d0ab00f0ca11db796213567943f7dd816143340c6c9b9c28012d2881d860948138cc41b37555b7416a5289c7a5cd8 SHA512 3716ef6b5ab7db33496f31445d6ec404b89fc8a3fec564dd6644d43d4ea0db12aadcce545a481e955a166000386d8183e801780b6ac16e03bbea0f5ed9a495c5

@ -0,0 +1,90 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..13} )
inherit bash-completion-r1 distutils-r1
MY_P=aws-cli-${PV}
DESCRIPTION="Universal Command Line Environment for AWS"
HOMEPAGE="
https://github.com/aws/aws-cli/
https://pypi.org/project/awscli/
"
SRC_URI="
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
# botocore is x.(y+1).(z+118), sigh
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 1 )).$(( $(ver_cut 3-) + 118 ))"
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
dev-python/colorama[${PYTHON_USEDEP}]
dev-python/docutils[${PYTHON_USEDEP}]
dev-python/rsa[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.10.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/pytest-forked[${PYTHON_USEDEP}]
)
"
EPYTEST_XDIST=1
distutils_enable_tests pytest
src_prepare() {
# do not rely on bundled deps in botocore (sic!)
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
# strip overzealous upper bounds on requirements
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
distutils-r1_src_prepare
}
python_test() {
local serial_tests=(
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_{fails,success}
tests/functional/ssm/test_start_session.py::TestSessionManager::test_start_session_with_new_version_plugin_success
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
tests/unit/customizations/test_sessionmanager.py
tests/unit/test_compat.py::TestIgnoreUserSignals
tests/unit/test_help.py
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
EPYTEST_XDIST= epytest "${serial_tests[@]}"
local EPYTEST_DESELECT=( "${serial_tests[@]}" )
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit}
}
python_install_all() {
newbashcomp bin/aws_bash_completer aws
insinto /usr/share/zsh/site-functions
newins bin/aws_zsh_completer.sh _aws
distutils-r1_python_install_all
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
}

Binary file not shown.

@ -35,7 +35,7 @@ else
"
if [[ ${PV} != *_alpha* && ${PV} != *_beta* ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
S="${WORKDIR}/${MY_P}"

Binary file not shown.

@ -1 +1,2 @@
DIST containerd-1.7.15.tar.gz 10071827 BLAKE2B 91de9b7d777d53ecdab4af5bbb0d4ccbe755e4cf0fb7bc99a7bb15c66e0e11ad30aa2af685e0e8b0df80dbeef451704fa056a04b460d92adceebd290977febfc SHA512 84a94c7658a431cfd7a5321ac262d966f4291337ddff14211951b0d2025cd3af25a48175794d2b3a630ffc25ba03047579163546a4758a2fb5d1898cd233854f
DIST containerd-1.7.19.tar.gz 10157428 BLAKE2B 3f51d63d4280a11ffe308c3e65df2fefdd91f543169501cf361bb8c6d5085b6b606cc3425508246ce872c86a475e2d195dd2473fee89a47548cfdfbd810307c2 SHA512 cb58bf5148381f9f0eba096e159592f294f887c5b17f8aaf6de8fed80c515abf4f08c849bbbd266dd85ede09fe709bf7d15a61a749f1136456329c47508dbe34

@ -0,0 +1,86 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module systemd
GIT_REVISION=2bf793ef6dc9a18e00cb12efb64355c2c9d5eb41
DESCRIPTION="A daemon to control runC"
HOMEPAGE="https://containerd.io/"
SRC_URI="https://github.com/containerd/containerd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test"
DEPEND="
btrfs? ( sys-fs/btrfs-progs )
seccomp? ( sys-libs/libseccomp )
"
# recommended version of runc is found in script/setup/runc-version
RDEPEND="
${DEPEND}
~app-containers/runc-1.1.13[apparmor?,seccomp?]
"
BDEPEND="
dev-go/go-md2man
virtual/pkgconfig
"
# tests require root or docker
RESTRICT+="test"
src_prepare() {
default
sed -i \
-e "s/-s -w//" \
-e "s/-mod=readonly//" \
Makefile || die
sed -i \
-e "s:/usr/local:/usr:" \
containerd.service || die
}
src_compile() {
local options=(
$(usev apparmor)
$(usex btrfs "" "no_btrfs")
$(usex cri "" "no_cri")
$(usex device-mapper "" "no_devmapper")
$(usev seccomp)
$(usev selinux)
)
myemakeargs=(
BUILDTAGS="${options[*]}"
LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')"
REVISION="${GIT_REVISION}"
VERSION=v${PV}
)
# race condition in man target https://bugs.gentoo.org/765100
# we need to explicitly specify GOFLAGS for "go run" to use vendor source
emake "${myemakeargs[@]}" man -j1 #nowarn
emake "${myemakeargs[@]}" all
}
src_install() {
rm "${D}"/bin/gen-manpages
dobin bin/*
doman man/*
newconfd "${FILESDIR}"/${PN}.confd "${PN}"
newinitd "${FILESDIR}"/${PN}.initd "${PN}"
systemd_dounit containerd.service
keepdir /var/lib/containerd
# we already installed manpages, remove markdown source
# before installing docs directory
rm -r docs/man || die
local DOCS=( ADOPTERS.md README.md RELEASES.md ROADMAP.md SCOPE.md docs/. )
einstalldocs
}

@ -8,3 +8,5 @@ DIST cosign-2.2.1-deps.tar.xz 487130076 BLAKE2B a0adbfc4d6230f4ba1013dfc28638752
DIST cosign-2.2.1.tar.gz 853562 BLAKE2B 40894d00d6071206221010337cb517ee9559518764a0d991df3363cb4dc381a0af4cd31e60c0c1fc6cffce6086af08c908ccf503893356f224f95b1d4085b195 SHA512 84f2308bbb1968eaf6d0d95e2dcb8efa2c42cd2599298b37d576e5e87f0cf6c1153c330b034908c0c7557953e0a7d964eaa4a8768f7dc35900f5f427d8fe7713
DIST cosign-2.2.3-deps.tar.xz 429760040 BLAKE2B 47ee9a4f6305a670e1818ce74a9da351fc763d4196334d738ab48b9dcba06f4be43ce2ba77dc879aae59ada2fa2ea66168a223c9da1029e02e140590dd1733a5 SHA512 481f8593b80d91996f2b2d4de10acad8bf1c5db3cf099a9683fd7da307c1142c870166a9222e58f9449a060248c94fecf35343dccc07d5cbf2acbdc00c0aef29
DIST cosign-2.2.3.tar.gz 845096 BLAKE2B 2017cc1716899640cbfc10ce093280a1ee4789eb1e8a8077978ebe4efe38075efa73ccb1abecb41eaa64dc16e652dbb709be7f195a6542284d86b2d9fb5128f3 SHA512 fc488c80dab3d05e0eca714c6107fada01dfddc2b68747676665d20a3f229224bbe36bfc60625c581c2e80dd10ad1421e142cf7ef6e24eba0894a708f2d10f06
DIST cosign-2.2.4-deps.tar.xz 153098164 BLAKE2B 6e900386c307fc5bc19057ab62d87eb6ff597916d3cabf14372ce8cd4b39c0fd11ec787fcb96d3db297c7907584617307ab3a87b2e797de56ef6dee4cff3f50b SHA512 d0873fd15819c9c580a8f70a01859ac8e166ba79f9702fe757d95b482ee92914c66b13b9abe3093f79b9657612d9c7da8ce662aca7bc680ff533c7fcb1848e30
DIST cosign-2.2.4.tar.gz 840586 BLAKE2B 22522fc70ff6b01957af2e294b7fdad740d55cc9710f9023246855dd9383be0688934f27e5b32cde3383cdfe3c02cd2de5547a515a14c1442ac85afc9e566b8f SHA512 3a2e2e7ea3964428bc7c4adb9475fbb730cbe2b7dfa7a5eb5cf350d88a4f3a9aef64f00574c7f38bf0074cb3e386cd26e6cfe4558ce5989ea557b654aa82ef71

@ -0,0 +1,32 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
GIT_HASH=fb651b4ddd8176bd81756fca2d988dd8611f514d
SOURCE_DATE_EPOCH=1712786247
DESCRIPTION="container signing utility"
HOMEPAGE="https://sigstore.dev"
SRC_URI="https://github.com/sigstore/cosign/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="test"
src_compile() {
emake \
GIT_HASH=${GIT_HASH} \
GIT_VERSION=v${PV} \
GIT_TREESTATE=clean \
SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}
}
src_install() {
dobin cosign
einstalldocs
dodoc CHANGELOG.md
}

@ -6,3 +6,5 @@ DIST grype-0.72.0-deps.tar.xz 599210536 BLAKE2B 4912cf4278488e78c7a174654da20f64
DIST grype-0.72.0.tar.gz 1114440 BLAKE2B 931f4bdd883471e8b34b09dd1df53d4e67df96fc0d7be5224d1acfecc618cb068ee268f4b269e5a7f5e01a6605b9e01f8bb6a150819e8410a6b4f0daa12877ff SHA512 8335de5cba0b11500df1404afeee311be50c7e55d1a57c85cbebe830c9e8d9d21ff7b35ab6110200e57f464e999576f395814a56485115f8c7ed7b6e9f7dafb9
DIST grype-0.73.0-deps.tar.xz 627765660 BLAKE2B 3d3949922a635d0654120aaf05edef38e7ae998c7beab89a7f13de994ab5f34bd6ade6a67145f5a366a2956ffb124a94a952b426a71cb50a7a30f65a7d721784 SHA512 f2e0ba2da0c196e705a23efc9e989ed3525d3465d661a2d5ce832c0663b0226a885541d91a773922f32de4d849030b73c307487eec00d0498368925213b9444d
DIST grype-0.73.0.tar.gz 1124082 BLAKE2B 835b1833e6809510821f07906df06c55b418f7226dba190b4bf4f32ae603c006842496512d5e788eef8f2ce7e215a923bc338a1c55f089a3942476275663a6b2 SHA512 06be60104f23be38578660a79d3c593e988e2c5fce646b00dedec9af4d3442f204f81d063806944cfdaa04daffdff256ac71b52ed94d8ae07acde1e15c442f08
DIST grype-0.79.3-deps.tar.xz 219363916 BLAKE2B 7396b4f0bd734504b30c971c592dae49a7ebc118db6efdb668d412622708797b8ef0ebded3a1d0474e3fb2fc1d6a3ac078b11de9fb38f5d15cc5edcbd57276be SHA512 b037535208652b64dd424a2daf9caf5232e40e0dba344c62600c0065f342206edc2797b9e155a5830f013744c3aa1d6564e623261a0cd6c1c3124eaae3f80899
DIST grype-0.79.3.tar.gz 1165282 BLAKE2B 016e2a0ccad51757be83146fd6d187929e61f37531881bf811b6058daf935733f6a6ed23a9fac818a6a6ef815227fa045806c79ef2820a9ee78711cb417c0698 SHA512 0fbae679e8fd43efc2440d6db2f46a51ea4b6acd76f72a69d278b9eec85204b2b36d9077963fea2541bb4ada168802349fc066ffa260678e13429301cecac960

@ -0,0 +1,34 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
GIT_COMMIT=45b7236e948ef973a8a6ffbac52dff28be0fd70e
SYFT_VERSION=1.9.0
DESCRIPTION="A vulnerability scanner for container images and filesystems"
HOMEPAGE="https://www.anchore.com"
SRC_URI="https://github.com/anchore/grype/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64"
# tests require a running docker
RESTRICT="test"
src_compile() {
ego build -o bin/grype -ldflags "
-extldflags '-static'
-X github.com/anchore/grype/internal/version.version=${PV}
-X github.com/anchore/grype/internal/version.syftVersion=${SYFT_VERSION}
-X github.com/anchore/grype/internal/version.gitCommit=${GIT_COMMIT}
-X github.com/anchore/grype/internal/version.buildDate=${BUILD_DATE}
-X github.com/anchore/grype/internal/version.gitDescription=v${PV}
" ./cmd/grype
}
src_install() {
dobin bin/grype
}

@ -1 +1,2 @@
DIST runc-1.1.12.tar.gz 2522196 BLAKE2B 14fe8d5f82d5b4d7f6b4bb9111c5d258e74f6a44aeb51fc87c69104e95b9bf24a3d503f4cc5dedb40d542fbd4b6e27273f456bda4fcf3bc298eb93ae292d9663 SHA512 92e8ac54a77d7ebcc76b5a9cc08d9a064211f12e9d26f064070cc203a5afb11c3af28d8f556f297513f797a2933d50bf10a8f22e307724041d66aa8c5ca1d9d3
DIST runc-1.1.13.tar.gz 2532849 BLAKE2B f3d3171ffce2bb833bfb5cc21d0dc034fd7e38c47ee098cc1fc75c06fd4dfae21dfe25c2e69a1ca93b29d36e8799727ea41725eee8aca3a059c14dab6c8a435f SHA512 644bf9e6359bf49bbdec667c0f7c69ded78c7eacfc2d1b730d52fdcf7348571c6406b8e5790811fe3662a458c878e4225c3559885f0d95f8905273e7e40e55ad

@ -0,0 +1,77 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module linux-info
# update on bump, look for commit ID on release tag.
# https://github.com/opencontainers/runc
RUNC_COMMIT=58aa9203c123022138b22cf96540c284876a7910
CONFIG_CHECK="~USER_NS"
DESCRIPTION="runc container cli tools"
HOMEPAGE="https://github.com/opencontainers/runc/"
MY_PV="${PV/_/-}"
SRC_URI="https://github.com/opencontainers/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${MY_PV}"
LICENSE="Apache-2.0 BSD-2 BSD MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
IUSE="apparmor hardened +kmem +seccomp selinux test"
DEPEND="seccomp? ( sys-libs/libseccomp )"
RDEPEND="
${DEPEND}
!app-emulation/docker-runc
apparmor? ( sys-libs/libapparmor )
selinux? ( sec-policy/selinux-container )
"
BDEPEND="
dev-go/go-md2man
test? ( "${RDEPEND}" )
"
# tests need busybox binary, and portage namespace
# sandboxing disabled: mount-sandbox pid-sandbox ipc-sandbox
# majority of tests pass
RESTRICT+=" test"
src_compile() {
# Taken from app-containers/docker-1.7.0-r1
CGO_CFLAGS+=" -I${ESYSROOT}/usr/include"
CGO_LDFLAGS+=" $(usex hardened '-fno-PIC ' '')
-L${ESYSROOT}/usr/$(get_libdir)"
# build up optional flags
local options=(
$(usev apparmor)
$(usev seccomp)
$(usex kmem '' 'nokmem')
)
myemakeargs=(
BUILDTAGS="${options[*]}"
COMMIT="${RUNC_COMMIT}"
)
emake "${myemakeargs[@]}" runc man
}
src_install() {
myemakeargs+=(
PREFIX="${ED}/usr"
BINDIR="${ED}/usr/bin"
MANDIR="${ED}/usr/share/man"
)
emake "${myemakeargs[@]}" install install-man install-bash
local DOCS=( README.md PRINCIPLES.md docs/. )
einstalldocs
}
src_test() {
emake "${myemakeargs[@]}" localunittest
}

@ -6,3 +6,5 @@ DIST syft-0.94.0-deps.tar.xz 502576092 BLAKE2B 35c13d34a7a4b2afafb9b73502f4258b3
DIST syft-0.94.0.tar.gz 5266343 BLAKE2B 892c7bf90a1d15fd926207acd1a28e8bd907ae5869be763e48ccd8d3279975c2ec84d9ec5842e3799460a823b5aa611a028982d8d40d90248c1cfad25415c672 SHA512 171b23271f03e1e824dcac41a563f7947d004797a21e762eea883ea680e0de65a532e03e4b245a4021288fec60142da8c1c16d6520eadece65728728b9d15f91
DIST syft-0.95.0-deps.tar.xz 525784260 BLAKE2B 8aa9da529a605725ecbcc4ec98bef651218ee7b1ed08564fae0911fc83f78a13f7773c8c6e7c12f0ecb4b979477e1ea1a89354c11de932ef2e0a45b1fb80ec10 SHA512 0571b3586d27d1cf76a6bfd4c3fd5c06f796bd94feea63303c8464c602ce91f94e4bdc0002eb7241ff967e4146ec2a91cce428ad495d89dfda078a968e43d63f
DIST syft-0.95.0.tar.gz 5328311 BLAKE2B 555844c771dc57dd396f4016095a8e462b5088abf7d7dc2f77b14dcd98bd77fb58598c1011145ce001117ea3059cf93f2b4a1d2a7c01914cd1e5b855e79394cc SHA512 6509d7a505ff1adc37386bccfefb8ce106ff8c1ffe267ee768f731ef865c731dec3603c055d094363aae8b0ad6dd09547cb4b7e5a8d6993d7f8e09ef47f195c3
DIST syft-1.9.0-deps.tar.xz 207469280 BLAKE2B 38b428c8062f006586c0b7f1b8aeb2af09063d9f665a5a18c50dbe3848436cac80da2d2fd441a07d76787cb8e66d35fd322c7f9d1254662bf34fd29d05116e22 SHA512 34aa74de4befc2d097cb01e0ff3b37fd30cfca60b4d916f3fe7578848b6f2bb4ea263431adff7852b2b70dc9a4f7b50e75cfd58ee6ea3c604d03f7bde5ab10e6
DIST syft-1.9.0.tar.gz 5825322 BLAKE2B e6b0808de2179a8956a1ba30138bcf11b0fead1c154a8d432cd852d6be2753075491c43f238943883d1c8080f7c24fc9a617daff4457aba6731831c619ff9223 SHA512 0a116accd3762fa6c43475b52c85d9a103423aa5f747b86209f128a2484b54e20d17d0dce7ec88c412e95f6685f8a47032bbfe812e6fceb39451cf1faa9e7fbb

@ -0,0 +1,36 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit go-module
GIT_COMMIT=4e09908ba124dca7e6f1f6e7dc4f4663fae658ca
DESCRIPTION="Generate a Software Bill of Materials from container images and filesystems"
HOMEPAGE="https://www.anchore.com"
SRC_URI="https://github.com/anchore/syft/archive/v${PV}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
# tests require a running docker daemon
RESTRICT="test"
src_compile() {
local BUILD_DATE
BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ)
ego build -o bin/syft -ldflags "
-extldflags '-static'
-X github.com/anchore/syft/internal/version.version=${PV}
-X github.com/anchore/syft/internal/version.gitCommit=${GIT_COMMIT}
-X github.com/anchore/syft/internal/version.buildDate=${BUILD_DATE}
-X github.com/anchore/syft/internal/version.gitDescription=v${PV}
" ./cmd/syft
}
src_install() {
dobin bin/*
insinto /usr/share/"${PN}"
doins -r examples
}

Binary file not shown.

@ -267,7 +267,7 @@ LICENSE+="
|| ( GPL-2 GPL-3 LGPL-3 )
"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~sparc ~x86"
KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ~ppc64 ~sparc ~x86"
IUSE="nettle +openssl"
REQUIRED_USE="^^ ( nettle openssl )"

@ -1,2 +1,3 @@
DIST swtpm-0.8.1.tar.gz 364169 BLAKE2B 4b364ed581ea97d78c5c6248870503b1612d7d164b05b76c1f02644aade6fd09f204396f0a2d0db4e0ecec2792dc512f7c4393c44bf7ce447a3a7fbb8754594f SHA512 07276519b0e20c9c4167ce78e789d2072eb90172ed9bcba2a11eef46ee03a77860f7a2218f4dc013a2ddb8471079e3cbe43f8ab02174bd704a78aea8eee3d2fc
DIST swtpm-0.8.2.tar.gz 364432 BLAKE2B 1ffa6feed88a67a2eeea1fca1c034f6513347173d59ae0c0654696faa1e791529e7fa044c478e5fb7e016117ce5f3151b875014d85eac528e4b6d92d5cf9017b SHA512 3b63116b1ed56087e05b0b697462720a10fe384ea2b8ec7115b549df8f557f6a9cf4de8e7d65b8061a1c85e54e015e0249bfbb613d35c1b64453a98d23ce334f
DIST swtpm-0.9.0.tar.gz 370942 BLAKE2B bed63851dfdb94f463bbac962044114f75abd36f6558f173fd67be608f50c8954c6038d33bb6e3d2e88427238c7c06048beae23b84b2a1e186c0de98a9bd5ad8 SHA512 4f1723679b85218e80ea6aacdffa687e541ee309ddab9bcb8d8e5aa0b461ee431c880f2e300f1dcae112646f3636593005a342ee0cb762ec115aa599369e111c

@ -0,0 +1,74 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..12} )
inherit autotools python-any-r1
DESCRIPTION="Libtpms-based TPM emulator"
HOMEPAGE="https://github.com/stefanberger/swtpm"
SRC_URI="https://github.com/stefanberger/swtpm/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
IUSE="fuse seccomp test"
RESTRICT="!test? ( test )"
# net-libs/gnutls[pkcs11,tools] is required otherwsie it not possible to
# provision new vTPMs. swtpm_cert spawns certttool, and upstream expects
# pkcs11 in gnutls: https://github.com/stefanberger/swtpm/issues/477.
RDEPEND="fuse? (
dev-libs/glib:2
sys-fs/fuse:0
)
seccomp? ( sys-libs/libseccomp )
acct-group/tss
acct-user/tss
dev-libs/gmp:=
dev-libs/openssl:0=
dev-libs/json-glib
dev-libs/libtpms
dev-libs/libtasn1:=
net-libs/gnutls:=[pkcs11,tools]
"
DEPEND="${RDEPEND}
test? (
net-misc/socat
dev-tcltk/expect
)"
BDEPEND="${PYTHON_DEPS}"
PATCHES=(
"${FILESDIR}/${PN}-0.6.0-fix-localca-path.patch"
"${FILESDIR}/${PN}-0.5.0-build-sys-Remove-WError.patch"
"${FILESDIR}/${PN}-0.8.2-slibtool.patch"
)
src_prepare() {
default
eautoreconf
}
src_configure() {
econf \
--with-openssl \
--with-gnutls \
--without-selinux \
$(use_with fuse cuse) \
$(use_with seccomp) \
$(use_enable test tests)
}
src_install() {
default
fowners -R tss:root /var/lib/swtpm-localca
fperms 750 /var/lib/swtpm-localca
keepdir /var/lib/swtpm-localca
find "${D}" -name '*.la' -delete || die
}

Binary file not shown.

@ -16,7 +16,7 @@ S="${WORKDIR}/${MY_P}"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
KEYWORDS="~alpha amd64 ~arm64 ~ia64 ~ppc ~ppc64 ~riscv ~sparc x86"
IUSE="gucharmap nls python spell"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"

@ -1,47 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN="wxHexEditor"
WX_GTK_VER=3.0-gtk3
inherit flag-o-matic toolchain-funcs wxwidgets
DESCRIPTION="A cross-platform hex editor designed specially for large files"
HOMEPAGE="https://github.com/EUA/wxHexEditor"
SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_PN}-v${PV}-src.tar.xz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~riscv ~x86"
DEPEND="
app-crypt/mhash
dev-libs/udis86
x11-libs/wxGTK:${WX_GTK_VER}[X]"
RDEPEND="${DEPEND}"
S="${WORKDIR}/${MY_PN}"
PATCHES=(
"${FILESDIR}"/${P}-syslibs.patch
"${FILESDIR}"/${P}-desktop.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && tc-check-openmp
}
src_prepare() {
setup-wxwidgets
default
# -Werror=odr, -Werror=lto-type-mismatch
# https://bugs.gentoo.org/854414
# https://github.com/EUA/wxHexEditor/issues/222
filter-lto
}

@ -1,48 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
WX_GTK_VER="3.2-gtk3"
inherit autotools wxwidgets xdg
DESCRIPTION="XML Copy Editor is a fast, free, validating XML editor"
HOMEPAGE="https://xml-copy-editor.sourceforge.io"
SRC_URI="https://downloads.sourceforge.net/xml-copy-editor/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 -ppc ~x86 ~amd64-linux ~x86-linux" # -ppc due SSE2 requirement
IUSE="aqua nls"
RDEPEND="
app-text/enchant:2
dev-libs/libxml2
dev-libs/libxslt
dev-libs/xerces-c[cpu_flags_x86_sse2,icu]
dev-libs/libpcre
x11-libs/wxGTK:${WX_GTK_VER}[X]
"
DEPEND="${RDEPEND}
dev-libs/boost
"
BDEPEND="
dev-util/intltool
virtual/pkgconfig
"
src_prepare() {
default
# bug #440744
sed -i -e 's/ -Wall -g -fexceptions//g' configure.ac || die
eautoreconf
}
src_configure() {
setup-wxwidgets unicode
econf \
--with-gtk=3.0 \
--with-wx-config="${WX_CONFIG}" \
$(use_enable nls)
}

Binary file not shown.

@ -4,7 +4,7 @@ DIST keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6.tar.bz2 27971 BLAKE2B
DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
DIST qemu-7.2.11.tar.xz 121877020 BLAKE2B c546773b9ac7809b39a3afa51da5b1c06c3765fadb4df9d8529f8af65c26098676adf8e516620ca1b39201fa859878780edb56a445778e105cbe7db0f52b9f6a SHA512 c77ff1505128c05fe39eaa95cc11e4d2279bff06093acd613e54f71d4a13144f905551eec1d044c3a3fb751d3369c01d131d68c18b15d9a04bcc77370d93c217
DIST qemu-7.2.12.tar.xz 124399872 BLAKE2B df0afc8de23f3df7b0ada301584f1d96c7add69ec16755c5b75eced88827ec2719ba79c9191da5c77f00872bf2c492b24b08f310954e5ca97249debd5e520cda SHA512 239623f6f3c15b85ce8da27adb8123886a2b56971742d2a11cde58b0dfac40de1592e1e33591306b830c5cee051d11b00d1bdccf414cc7b111dab79b65b1cf92
DIST qemu-7.2.4.tar.xz 121849100 BLAKE2B a9c5ffce9ff0fac4e2d1fa4be1a1dcee2f5d7f793ddf726871c5ae9a68c22f7ba03692a8a5096de3051030d3c2f34e46697d5af2d66c34984b8161ae3bb07b42 SHA512 fa765673833a1f2cbecdb9d47dc7dc29d7613be5a5c8fc63925ae70e1f5aafb4f9f02e45b212a329f17b689351b8a9cdf5f5235ab6adb71bb40e41868898d95b
DIST qemu-7.2.13.tar.xz 124399088 BLAKE2B 7d0b86862e663b20e918a211f661aff0bf8eeb480cffef9eba51c819d817368db33989bcc4f1673dd278d1f0f91f7991e22a24fca828559d8da225fdb8a1836b SHA512 be6a1d2efb111c09456be97a431a8881667b0a1d356a9901e6582b9720143826d4719778c228eb342ec865b5a3dc21444ebe296be56e1edafd16ab1b3aef3ae2
DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
DIST qemu-8.0.5.tar.xz 126175064 BLAKE2B 1d1f78c185ab64b4ca946a44ad04d0bbb6ea48de058037e4ba18176abeb0f0528754c6e832f742f93227182bbce145544eca5b908a366006e7ee58876aca0bda SHA512 ec9679473dda84a2f56ae8ee0039ec4dafb056414bfc5a3a147b2b6bb45ae3b130dd80f6385e8567b5d18f4be94f3536bc8acc45c61eddf40c9678b46cb8bddc
DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9
@ -12,6 +12,7 @@ DIST qemu-8.1.5.tar.xz 124007248 BLAKE2B 0d5db3e18c4dc1035fed442116be98b7e7bbfae
DIST qemu-8.2.0-docs.tar.xz 2233352 BLAKE2B 22b9499fdf4ff93e72399dab3803f3171c855859dc7fe111612e2f9146db244ca6d2e0aad16aefdf29b231d2b3a2fbc22171fe6bac13b03445d54555ce798d16 SHA512 f57e78c28277c153fff00b25097d0df5c6ad36cb4e9f3acf30382bfb1c99508503c186c1bbecf266810ef24fd618428fdf3e0eee41c715a552918c9e6ef9e8e5
DIST qemu-8.2.3.tar.xz 130106716 BLAKE2B 2ec91b5111952434686064bd603880d87c4f56774d2478ee953eb0454e2b14235b1d1cca484e015b96bceae3182f90b856d222ca590059032b4989babf1dffe8 SHA512 28c789d84754b26cd86ded9db8464ec82f07cdc3b1025a988e74b8c5b05df8839a3e9990ff96cfba50e032dd967e9dc18cf75f3525baeadd0fa019cb69108d0a
DIST qemu-8.2.5.tar.xz 132743988 BLAKE2B 24da4350cfe5a46771ea257b7baba48f02465c87e819ad3cc0557c06814f24f442ba3b97661af74d5235e31e7883b7c62d108e3180f7ce9e4be524ec966d07d0 SHA512 b95de309d790033452687b488ba869940bc40862ebbc9d91edbeee840e4ffc0b4cae43e1bfcd00f5534da126c62072b7b5309da6d74d30ba537e4c7b430f4255
DIST qemu-8.2.6.tar.xz 132750000 BLAKE2B da5fdb03fcb44cf764d2ccaf9011b726e5c152d8659ca91550cd04b3e578e7f9bf2cc050b38a64055103775e64303ae949cf7e2cde5508f8a4b976d1311631c5 SHA512 ba702306df0c2a6744fff6fdca5f251ebc572230ee4674113433c74f74187ba33457ea9716d9023aa48cc1e6887af132a2877c30ea098da9ed23e95d4691b88b
DIST qemu-9.0.0-docs.tar.xz 2290196 BLAKE2B 82d22637ff2629bee372550e86651f12051ea6b4a57e314ef83f290425d4973ef01827eaf28a85b635788f22cb7cc1c747438b7525c92c99b90b234fb8f7655c SHA512 7c0ba1f3e7bbaa4e3feebc33a1946a5c190f2c14b9ed78b15c1f642668c8124960f8c85bcf36fe54a10d4edef47d2256e500f06d9173b92b03c599811a15a073
DIST qemu-9.0.0.tar.xz 129789856 BLAKE2B d92acb859d9ce5097fee27a4689c71869aa38f65eb0308547956d54bd8caf29efe5389d9009f334f109ad228e0ef1f1fd1444d26360f03fac4320b204b657081 SHA512 1603517cd4c93632ba60ad7261eb67374f12a744bf58f10b0e8686e46d3a02d8b6bf58a0c617f23a1868084aaba6386c24341894f75539e0b816091718721427
DIST qemu-9.0.1.tar.xz 132368412 BLAKE2B e96ae5cc3ee935dd31232d38d46bbdc74fd3a2a0dd8517c0e035757f3ded92712dfa68d0068cd8c37f314a92d237e2b4a725b509ba402b7a1ce92df63207a08d SHA512 6c120aaf52f15e79c32d883cc83df8fc83222d538ea6be9c19aaddfba0aef91479b5826bbc03e58688fba639cb24bc6f54e525ccc2404ed5d820766d11735210
DIST qemu-9.0.2.tar.xz 132387528 BLAKE2B 6b5301f985919ae53e056410be7486b8150a65016127568bd4d58f596e94960d08eb3fc57cff7ff6a3435d71274adee516f57375d856d61b4fc7a3f24cbf75c4 SHA512 58ed84f6fe6263d279356bc9193f96edf62cf3663fb151daa3f047d52329fe49cb91c2d45e09697e0469f4f5409be96403aec9572d4871ffa40848a786c21599

@ -41,7 +41,7 @@ else
fi
S="${WORKDIR}/${MY_P}"
[[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
@ -315,7 +315,6 @@ PATCHES=(
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
"${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
"${FILESDIR}"/${PN}-7.2.0-linux-headers-6.2-glibc-2.36.patch
)
QA_PREBUILT="

@ -0,0 +1,992 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
# Set to 1 if prebuilt, 0 if not
# (the construct below is to allow overriding from env for script)
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
QEMU_DOCS_PREBUILT_DEV=sam
QEMU_DOCS_VERSION=$(ver_cut 1-2).0
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# bug #830088
QEMU_DOC_USEFLAG="+doc"
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,readline"
FIRMWARE_ABI_VERSION="7.2.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
if [[ ${PV} == *9999* ]]; then
QEMU_DOCS_PREBUILT=0
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
EGIT_SUBMODULES=()
inherit git-r3
SRC_URI=""
declare -A SUBPROJECTS=(
[keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
[berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
[berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263"
)
for proj in "${!SUBPROJECTS[@]}"; do
c=${SUBPROJECTS[${proj}]}
SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
done
else
MY_P="${PN}-${PV/_rc/-rc}"
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
fi
S="${WORKDIR}/${MY_P}"
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
jack jemalloc +jpeg keyutils
lzo multipath
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
smartcard snappy spice ssh static-user systemtap test udev usb
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
zstd"
COMMON_TARGETS="
aarch64
alpha
arm
cris
hppa
i386
loongarch64
m68k
microblaze
microblazeel
mips
mips64
mips64el
mipsel
nios2
or1k
ppc
ppc64
riscv32
riscv64
s390x
sh4
sh4eb
sparc
sparc64
x86_64
xtensa
xtensaeb
"
IUSE_SOFTMMU_TARGETS="
${COMMON_TARGETS}
avr
rx
tricore
"
IUSE_USER_TARGETS="
${COMMON_TARGETS}
aarch64_be
armeb
hexagon
mipsn32
mipsn32el
ppc64le
sparc32plus
"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
RESTRICT="!test? ( test )"
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
qemu_softmmu_targets_ppc64? ( fdt )
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_riscv32? ( fdt )
qemu_softmmu_targets_riscv64? ( fdt )
qemu_softmmu_targets_x86_64? ( fdt )
sdl-image? ( sdl )
static-user? ( !plugins )
virgl? ( opengl )
virtfs? ( xattr )
vnc? ( gnutls )
vte? ( gtk )
multipath? ( udev )
plugins? ( !static-user )
"
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
done
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# and user/softmmu targets (qemu-*, qemu-system-*).
#
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
#
# The attr lib isn't always linked in (although the USE flag is always
# respected). This is because qemu supports using the C library's API
# when available rather than always using the external library.
ALL_DEPEND="
dev-libs/glib:2[static-libs(+)]
sys-libs/zlib[static-libs(+)]
python? ( ${PYTHON_DEPS} )
systemtap? ( dev-debug/systemtap )
xattr? ( sys-apps/attr[static-libs(+)] )
"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
app-accessibility/brltty[static-libs(+)]
)
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
bpf? ( dev-libs/libbpf:= )
bzip2? ( app-arch/bzip2[static-libs(+)] )
capstone? ( dev-libs/capstone:=[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gnutls? (
>=net-libs/gnutls-3.0:=[static-libs(+)]
dev-libs/nettle:=[static-libs(+)]
)
gtk? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.91 )
)
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
keyutils? ( sys-apps/keyutils[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (
sys-libs/ncurses:=[unicode(+)]
sys-libs/ncurses:=[static-libs(+)]
)
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
opengl? (
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
media-libs/mesa[egl(+),gbm(+)]
)
pam? ( sys-libs/pam )
pipewire? ( >=media-video/pipewire-0.3.60 )
png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
pulseaudio? ( media-libs/libpulse )
rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
media-libs/libsdl2[video]
media-libs/libsdl2[static-libs(+)]
)
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
slirp? ( net-libs/libslirp[static-libs(+)] )
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
snappy? ( app-arch/snappy:= )
spice? (
>=app-emulation/spice-protocol-0.14.0
>=app-emulation/spice-0.14.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
udev? ( virtual/libudev:= )
usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virgl? ( media-libs/virglrenderer[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools:= )
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
EDK2_OVMF_VERSION="202202"
SEABIOS_VERSION="1.16.0"
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
~sys-firmware/ipxe-1.21.1[binary,qemu]
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
~sys-firmware/sgabios-0.1_pre10[binary]
)
!pin-upstream-blobs? (
|| (
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
)
sys-firmware/ipxe[qemu]
|| (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
sys-firmware/sgabios
)
"
PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
!pin-upstream-blobs? (
|| (
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
)
"
# See bug #913084 for pip dep
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
>=dev-build/meson-0.63.0
app-alternatives/ninja
dev-python/pip[${PYTHON_USEDEP}]
virtual/pkgconfig
doc? (
>=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
)
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
app-alternatives/bc
)
"
CDEPEND="
${ALL_DEPEND//\[static-libs(+)]}
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
"
DEPEND="
${CDEPEND}
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
static-user? ( ${ALL_DEPEND} )
"
RDEPEND="
${CDEPEND}
acct-group/kvm
selinux? (
sec-policy/selinux-qemu
sys-libs/libselinux
)
"
PATCHES=(
"${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
"${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
"${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
"${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
)
QA_PREBUILT="
usr/share/qemu/hppa-firmware.img
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/s390-netboot.img
usr/share/qemu/u-boot.e500
"
QA_WX_LOAD="
usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
usr/bin/qemu-cris
usr/bin/qemu-m68k
usr/bin/qemu-microblaze
usr/bin/qemu-microblazeel
usr/bin/qemu-mips
usr/bin/qemu-mipsel
usr/bin/qemu-or1k
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
usr/bin/qemu-sparc64
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
usr/bin/qemu-unicore32
"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
kernel module loaded before running kvm. The easiest way to ensure that the
kernel module is loaded is to load it on boot.
For AMD CPUs the module is called 'kvm-amd'.
For Intel CPUs the module is called 'kvm-intel'.
Please review /etc/conf.d/modules for how to load these.
Make sure your user is in the 'kvm' group. Just run
$ gpasswd -a <USER> kvm
then have <USER> re-login.
For brand new installs, the default permissions on /dev/kvm might not let
you access it. You can tell udev to reset ownership/perms:
$ udevadm trigger -c add /dev/kvm
If you want to register binfmt handlers for qemu user targets:
For openrc:
# rc-update add qemu-binfmt
For systemd:
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
pkg_pretend() {
if use kernel_linux && kernel_is lt 2 6 25; then
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
elif use kernel_linux; then
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
ERROR_TUN+=" into your kernel or loaded as a module to use the"
ERROR_TUN+=" virtual network device if using -net tap."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
CONFIG_CHECK+=" ~KVM_AMD"
elif grep -q GenuineIntel /proc/cpuinfo; then
CONFIG_CHECK+=" ~KVM_INTEL"
fi
fi
use python && CONFIG_CHECK+=" ~DEBUG_FS"
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
# Now do the actual checks setup above
check_extra_config
fi
fi
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
eerror "instances are still pointing to it. Please update your"
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
eerror "and the right system binary (e.g. qemu-system-x86_64)."
die "update your virt configs to not use qemu-kvm"
fi
}
# Sanity check to make sure target lists are kept up-to-date.
check_targets() {
local var=$1 mak=$2
local detected sorted
pushd "${S}"/configs/targets/ >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
if [[ ${sorted} != "${detected}" ]] ; then
eerror "The ebuild needs to be kept in sync."
eerror "${var}: ${sorted}"
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
die "sync ${var} to the list of targets"
fi
popd >/dev/null
}
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
for file in ${A}; do
unpack "${file}"
done
cd "${WORKDIR}" || die
for proj in "${!SUBPROJECTS[@]}"; do
mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die
done
cd "${S}" || die
meson subprojects packagefiles --apply || die
else
default
fi
}
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
default
# Use correct toolchain to fix cross-compiling
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
export WINDRES=${CHOST}-windres
# Verbose builds
MAKEOPTS+=" V=1"
# Remove bundled modules
rm -r roms/*/ || die
}
##
# configures qemu based on the build directory and the build type
# we are using.
#
qemu_src_configure() {
debug-print-function ${FUNCNAME} "$@"
local buildtype=$1
local builddir="${S}/${buildtype}-build"
mkdir "${builddir}" || die
local conf_opts=(
--prefix=/usr
--sysconfdir=/etc
--bindir=/usr/bin
--libdir=/usr/$(get_libdir)
--datadir=/usr/share
--docdir=/usr/share/doc/${PF}/html
--mandir=/usr/share/man
--localstatedir=/var
--disable-bsd-user
--disable-containers # bug #732972
--disable-guest-agent
--disable-strip
--disable-download
# bug #746752: TCG interpreter has a few limitations:
# - it does not support FPU
# - it's generally slower on non-self-modifying code
# It's advantage is support for host architectures
# where native codegeneration is not implemented.
# Gentoo has qemu keyworded only on targets with
# native code generation available. Avoid the interpreter.
--disable-tcg-interpreter
--disable-werror
# We support gnutls/nettle for crypto operations. It is possible
# to use gcrypt when gnutls/nettle are disabled (but not when they
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--objcc="$(tc-getCC)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable alsa)
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
$(use_enable jack)
$(use_enable nls gettext)
$(use_enable oss)
$(use_enable pipewire)
$(use_enable plugins)
$(use_enable pulseaudio pa)
$(use_enable selinux)
$(use_enable xattr attr)
)
# Disable options not used by user targets. This simplifies building
# static user targets (USE=static-user) considerably.
conf_notuser() {
if [[ ${buildtype} == "user" ]] ; then
echo "--disable-${2:-$1}"
else
use_enable "$@"
fi
}
# Enable option only for softmmu build, but not 'user' or 'tools'
conf_softmmu() {
if [[ ${buildtype} == "softmmu" ]] ; then
use_enable "$@"
else
echo "--disable-${2:-$1}"
fi
}
# Enable option only for tools build, but not 'user' or 'softmmu'
conf_tools() {
if [[ ${buildtype} == "tools" ]] ; then
use_enable "$@"
else
echo "--disable-${2:-$1}"
fi
}
# Special case for the malloc flag, because the --disable flag does
# not exist and trying like above will break configuring.
conf_malloc() {
if [[ ! ${buildtype} == "user" ]] ; then
usex "${1}" "--enable-malloc=${1}" ""
fi
}
conf_opts+=(
$(conf_notuser accessibility brlapi)
$(conf_notuser aio linux-aio)
$(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
$(conf_notuser curl)
$(conf_tools doc docs)
$(conf_notuser fdt)
$(conf_notuser fuse)
$(conf_notuser glusterfs)
$(conf_notuser gnutls)
$(conf_notuser gnutls nettle)
$(conf_notuser gtk)
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
$(conf_notuser io-uring linux-io-uring)
$(conf_malloc jemalloc)
$(conf_notuser jpeg vnc-jpeg)
$(conf_notuser kernel_linux kvm)
$(conf_notuser keyutils libkeyutils)
$(conf_notuser lzo)
$(conf_notuser multipath mpath)
$(conf_notuser ncurses curses)
$(conf_notuser nfs libnfs)
$(conf_notuser numa)
$(conf_notuser opengl)
$(conf_notuser pam auth-pam)
$(conf_notuser png)
$(conf_notuser rbd)
$(conf_notuser sasl vnc-sasl)
$(conf_notuser sdl)
$(conf_softmmu sdl-image)
$(conf_notuser seccomp)
$(conf_notuser slirp)
$(conf_notuser smartcard)
$(conf_notuser snappy)
$(conf_notuser spice)
$(conf_notuser ssh libssh)
$(conf_notuser udev libudev)
$(conf_notuser usb libusb)
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
$(conf_notuser virgl virglrenderer)
$(conf_softmmu virtfs)
$(conf_notuser vnc)
$(conf_notuser vte)
$(conf_notuser xen)
$(conf_notuser xen xen-pci-passthrough)
# use prebuilt keymaps, bug #759604
--disable-xkbcommon
$(conf_notuser zstd)
)
if [[ ! ${buildtype} == "user" ]] ; then
# audio options
local audio_opts=(
# Note: backend order matters here: #716202
# We iterate from higher-level to lower level.
$(usex pulseaudio pa "")
$(usev pipewire)
$(usev jack)
$(usev sdl)
$(usev alsa)
$(usev oss)
)
conf_opts+=(
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
case ${buildtype} in
user)
conf_opts+=(
--enable-linux-user
--disable-system
--disable-tools
--disable-cap-ng
--disable-seccomp
)
local static_flag="static-user"
;;
softmmu)
conf_opts+=(
--disable-linux-user
--enable-system
--disable-tools
--enable-cap-ng
--enable-seccomp
)
local static_flag="none"
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--enable-tools
--enable-cap-ng
)
local static_flag="none"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
tc-enables-pie && conf_opts+=( --enable-pie )
fi
# Meson will not use a cross-file unless cross_prefix is set.
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
# Plumb through equivalent of EXTRA_ECONF to allow experiments
# like bug #747928.
conf_opts+=( ${EXTRA_CONF_QEMU} )
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
}
src_configure() {
local target
python_setup
softmmu_targets= softmmu_bins=()
user_targets= user_bins=()
for target in ${IUSE_SOFTMMU_TARGETS} ; do
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
fi
done
for target in ${IUSE_USER_TARGETS} ; do
if use "qemu_user_targets_${target}"; then
user_targets+=",${target}-linux-user"
user_bins+=( "qemu-${target}" )
fi
done
softmmu_targets=${softmmu_targets#,}
user_targets=${user_targets#,}
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
[[ -n ${user_targets} ]] && qemu_src_configure "user"
qemu_src_configure "tools"
}
src_compile() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build" || die
default
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build" || die
default
fi
cd "${S}/tools-build" || die
default
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build" || die
pax-mark m */qemu-system-* #515550
emake check
fi
}
qemu_python_install() {
python_domodule "${S}/python/qemu"
python_doscript "${S}/scripts/kvm/vmxcap"
python_doscript "${S}/scripts/qmp/qmp-shell"
python_doscript "${S}/scripts/qmp/qemu-ga-client"
}
# Generate binfmt support files.
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
generate_initd() {
local out="${T}/qemu-binfmt"
local out_systemd="${T}/qemu.conf"
local d="${T}/binfmt.d"
einfo "Generating qemu binfmt scripts and configuration files"
# Generate the debian fragments first.
mkdir -p "${d}"
"${S}"/scripts/qemu-binfmt-conf.sh \
--debian \
--exportdir "${d}" \
--qemu-path "${EPREFIX}/usr/bin" \
|| die
# Then turn the fragments into a shell script we can source.
sed -E -i \
-e 's:^([^ ]+) (.*)$:\1="\2":' \
"${d}"/* || die
# Generate the init.d script by assembling the fragments from above.
local f qcpu package interpreter magic mask
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
for f in "${d}"/qemu-* ; do
source "${f}"
# Normalize the cpu logic like we do in the init.d for the native cpu.
qcpu=${package#qemu-}
case ${qcpu} in
arm*) qcpu="arm";;
mips*) qcpu="mips";;
ppc*) qcpu="ppc";;
s390*) qcpu="s390";;
sh*) qcpu="sh";;
sparc*) qcpu="sparc";;
esac
# we use 'printf' here to be portable across 'sh'
# implementations: #679168
cat <<EOF >>"${out}"
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
fi
EOF
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
done
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
}
src_install() {
if [[ -n ${user_targets} ]]; then
cd "${S}/user-build"
emake DESTDIR="${ED}" install
# Install binfmt handler init script for user targets.
generate_initd
doinitd "${T}/qemu-binfmt"
# Install binfmt/qemu.conf.
insinto "/usr/share/qemu/binfmt.d"
doins "${T}/qemu.conf"
fi
if [[ -n ${softmmu_targets} ]]; then
cd "${S}/softmmu-build"
emake DESTDIR="${ED}" install
# This might not exist if the test failed. #512010
[[ -e check-report.html ]] && dodoc check-report.html
if use kernel_linux; then
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
fi
if use python; then
python_foreach_impl qemu_python_install
fi
fi
cd "${S}/tools-build" || die
emake DESTDIR="${ED}" install
# If USE=doc, there'll be newly generated docs which we install instead.
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
fi
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
pushd "${ED}"/usr/bin >/dev/null || die
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
popd >/dev/null || die
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
cd "${S}" || die
dodoc MAINTAINERS
newdoc pc-bios/README README.pc-bios
# Disallow stripping of prebuilt firmware files.
dostrip -x ${QA_PREBUILT}
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
# Remove vgabios since we're using the seavgabios packaged one
rm "${ED}/usr/share/qemu/vgabios.bin"
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
# PPC/PPC64 loads vgabios-stdvga
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
fi
# Remove sgabios since we're using the sgabios packaged one
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi
fi
DISABLE_AUTOFORMATTING=true
readme.gentoo_create_doc
}
firmware_abi_change() {
local pv
for pv in ${REPLACING_VERSIONS}; do
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
return 0
fi
done
return 1
}
pkg_postinst() {
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
udev_reload
fi
xdg_icon_cache_update
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
DISABLE_AUTOFORMATTING=true
readme.gentoo_print_elog
if use pin-upstream-blobs && firmware_abi_change; then
ewarn "This version of qemu pins new versions of firmware blobs:"
if has_version 'sys-firmware/edk2-ovmf-bin'; then
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
else
ewarn " $(best_version sys-firmware/edk2-ovmf)"
fi
if has_version 'sys-firmware/seabios-bin'; then
ewarn " $(best_version sys-firmware/seabios-bin)"
else
ewarn " $(best_version sys-firmware/seabios)"
fi
ewarn " $(best_version sys-firmware/ipxe)"
ewarn " $(best_version sys-firmware/sgabios)"
ewarn "This might break resume of hibernated guests (started with a different"
ewarn "firmware version) and live migration to/from qemu versions with different"
ewarn "firmware. Please (cold) restart all running guests. For functional"
ewarn "guest migration ensure that all"
ewarn "hosts run at least"
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
fi
}
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
if has_version 'sys-firmware/edk2-ovmf-bin'; then
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
else
echo " $(best_version sys-firmware/edk2-ovmf)"
fi
if has_version 'sys-firmware/seabios-bin'; then
echo " $(best_version sys-firmware/seabios-bin)"
else
echo " $(best_version sys-firmware/seabios)"
fi
echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
udev_reload
}

@ -8,7 +8,7 @@ EAPI=8
# (the construct below is to allow overriding from env for script)
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
QEMU_DOCS_PREBUILT_DEV=sam
QEMU_DOCS_VERSION=$(ver_cut 1-3)
QEMU_DOCS_VERSION=$(ver_cut 1-2).0
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# bug #830088
QEMU_DOC_USEFLAG="+doc"

@ -1,2 +1,3 @@
DIST VBoxGuestAdditions_6.1.50.iso 64051200 BLAKE2B 9eff4a3643579ee0426dbe2b62247b8c89321be495e61469628574445fedc06ff2fb9afa108705cbaf24a13db99b4e6e850c61e5c97343095549f444831fcf62 SHA512 d74ce912dbbcef7f644a9f3ba9917782336cbee8e0756727a8753ffc17486a75e833adaa869e205531bc3b81b9cb26aa9b50f44210e78dceece966687122f6c6
DIST VBoxGuestAdditions_7.0.18.iso 52887552 BLAKE2B 03c2b6a777f37286f97d5e2b3f90bf9592e72f5df45f05dd9ae532c092cc38120475795821a31b6106579e49f86ad0e598b15b63ff52107794d0403fdf617ed9 SHA512 21bac2c7c10b0900c0e29cebd546a31cfb058ce0567166c71d45f150824a8818f739284787181678076982dcf40a2e62578b7a5baf19eabcab4f7385e17d2b44
DIST VBoxGuestAdditions_7.0.20.iso 53504000 BLAKE2B c29824e0e35104051205b13ce11137c1900be7c24c0d1dd4ff7cb6d936e61a8413a4ee1713034f8a347adfaa9b0ce3b43ce2de5b41dd9e74202f2f97710a8009 SHA512 6b87812ad1d8230c4f8ab79b58b7095c8c56b0b2acd7dcf0ecf54248fff2d0f3c89cc590de32a3cbabf5853ffa55e1cad8500206512141f027919c37b01f84ad

@ -0,0 +1,25 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN=VBoxGuestAdditions
MY_P=${MY_PN}_${PV}
DESCRIPTION="CD image containing guest additions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
S="${WORKDIR}"
LICENSE="GPL-3 || ( GPL-3 CDDL )"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64"
src_unpack() {
return 0
}
src_install() {
insinto /usr/share/${PN/-additions}
newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
}

@ -1,2 +1,3 @@
DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.50.tar.gz 11175855 BLAKE2B 898ef92a91dbfb39079f8dfa5f4c1e6d91df66e92deb00849ba1da8a2278e3adcfd5754bf70acc6d8b6d7d6273923999860b71c01de3eaabf4d487d718aa14ef SHA512 818f0564a8ee1266f2d03d6e0d5df44278746067ae86279f6e884f519ad3e923382c7b987b3a58fe95e2aa4f0a53b98d553106b0250923e88989e5fdaa9dc3ae
DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.18.tar.gz 18264093 BLAKE2B 4cd3f87b02f0340e0b226a68a595fd947de490a0eae36471beedb7f154529bc8f095f7512486660c4373a612608f42cbf6764dc84407143a4db9b1b9e684f754 SHA512 c83bdb6de0c98d558b66eaacdcf07baf004559c436201105e97bbdf387743dcefad285528a7de15c75162b38cd3b13d95155304da744a205661adfb692c6d958
DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.20.tar.gz 18263914 BLAKE2B ca31eccf361e7ce865e838d6e819f3b9ecc0852d07660f14aa9fae200a0d04777256e3cd933ffc02992ed7b596779280176916e9d9f030d7aaf2319433fc63f3 SHA512 b0ba22299a9bb81f47fb4c7f4117b1b5210a72973da723185c6d87fe192f7ab0ea0eb9fae6671b84332a234ead8539375976c87c483628449812e617c42598c7

@ -0,0 +1,33 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PV="$(ver_cut 1-3)"
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
MY_P="${MY_PN}-${MY_PV}"
DESCRIPTION="PUEL extensions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
S="${WORKDIR}"
LICENSE="PUEL-11"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64"
RESTRICT="bindist mirror strip"
RDEPEND="
|| (
=app-emulation/virtualbox-${MY_PV}*
=app-emulation/virtualbox-kvm-${MY_PV}*
)
"
QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
src_install() {
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
doins -r linux.${ARCH}
doins ExtPack* PXE-Intel.rom
}

@ -1,4 +1,5 @@
DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9
DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992

@ -0,0 +1,287 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev
MY_PN="VirtualBox"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2"
S="${WORKDIR}/${MY_PN}-${PV}"
# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64 ~x86"
IUSE="+dbus gui"
RDEPEND="
acct-group/vboxguest
acct-group/vboxsf
acct-user/vboxguest
sys-libs/pam
sys-libs/zlib
dbus? ( sys-apps/dbus )
gui? (
x11-apps/xrandr
x11-apps/xrefresh
x11-libs/libX11
x11-libs/libXext
x11-libs/libXmu
x11-libs/libXt
)
"
# some libs here are indirect dependencies, and also needed at compile time.
# keeping them in DEPEND to avoid warnings from qa-vdb.
DEPEND="
${RDEPEND}
gui? (
x11-libs/libICE
x11-libs/libSM
x11-libs/libXau
x11-libs/libXdmcp
x11-base/xorg-proto
)
"
BDEPEND="
>=dev-lang/yasm-0.6.2
>=dev-build/kbuild-0.1.9998.3127
sys-devel/bin86
sys-power/iasl
"
DOCS=() # Don't install the default README file during einstalldocs
VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
DOC_CONTENTS="\n
Please add users to the \"vboxguest\" group so they can\n
benefit from seamless mode, auto-resize and clipboard.\n
\n
The vboxsf group has been added to make automount services work.\n
These services are part of the shared folders support.\n
\n
Please add:\n
/etc/init.d/virtualbox-guest-additions\n
to the default runlevel in order to start\n
needed services.\n
\n
An autostart .desktop file has been installed to start\n
VBoxClient in desktop sessions.\n
\n
You can mount shared folders with:\n
mount -t vboxsf <shared_folder_name> <mount_point>\n
\n
Warning:\n
this ebuild is only needed if you are running gentoo\n
inside a VirtualBox Virtual Machine, you don't need\n
it to run VirtualBox itself.\n
\n"
src_prepare() {
# Remove shipped binaries (kBuild,yasm), see bug #232775
rm -r kBuild/bin tools || die
# Provide kernel sources
pushd src/VBox/Additions &>/dev/null || die
ebegin "Extracting guest kernel module sources"
kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
eend $? || die
popd &>/dev/null || die
# PaX fixes (see bug #298988)
eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
# Disable things unused or splitted into separate ebuilds
cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
if ! use gui; then
echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
fi
# Remove pointless GCC version check
sed -e '/ check_gcc$/d' -i configure || die
# Respect LDFLAGS (bug #759100)
sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
eapply "${WORKDIR}/virtualbox-patches-7.0.16/patches"
eapply_user
}
src_configure() {
tc-export AR CC CXX LD RANLIB
# Build the user-space tools, warnings are harmless
local myconf=(
--with-gcc="$(tc-getCC)"
--with-g++="$(tc-getCXX)"
--nofatal
--disable-xpcom
--disable-sdl-ttf
--disable-pulse
--disable-alsa
$(usev !dbus --disable-dbus)
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
)
# bug #843437
# Respect LDFLAGS (bug #759100)
# Cannot use LDFLAGS here because they also get passed to $(LD)
cat >> LocalConfig.kmk <<-EOF || die
CFLAGS=${CFLAGS}
CXXFLAGS=${CXXFLAGS}
CCLDFLAGS=${LDFLAGS}
EOF
edo ./configure "${myconf[@]}"
}
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_ONLY_ADDITIONS=1
KBUILD_VERBOSE=2
AS="$(tc-getCC)"
CC="$(tc-getCC)"
CXX="$(tc-getCXX)"
LD="$(tc-getCC)"
TOOL_GCC3_CC="$(tc-getCC)"
TOOL_GCC3_CXX="$(tc-getCXX)"
TOOL_GCC3_LD="$(tc-getCC)"
TOOL_GCC3_AS="$(tc-getCC)"
TOOL_GCC3_AR="$(tc-getAR)"
TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
#TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
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_GXX3_LD_SYSMOD="$(tc-getCXX)"
TOOL_GCC3_CFLAGS="${CFLAGS}"
TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
VBOX_GCC_OPT="${CXXFLAGS}"
VBOX_NM="$(tc-getNM)"
TOOL_YASM_AS=yasm
)
MAKE="kmk" emake "${myemakeargs[@]}"
# Now creating the kernel modules. We must do this _after_
# we compiled the user-space tools as we need two of the
# automatically generated header files. (>=3.2.0)
# Move this here for bug 836037
local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
local modlist=( vboxguest vboxsf )
use gui && modlist+=( vboxvideo )
modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
linux-mod-r1_src_compile
}
src_install() {
linux-mod-r1_src_install
insinto /etc/modprobe.d # 485996
newins - vboxsf.conf <<-EOF
# modprobe.d configuration file for VBOXSF
# Internal Aliases - Do not edit
# ------------------------------
alias fs-vboxsf vboxsf
EOF
cd out/linux.${ARCH}/release/bin/additions || die
insinto /sbin
newins mount.vboxsf mount.vboxsf
fperms 4755 /sbin/mount.vboxsf
if use dbus; then
newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
else
newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
fi
insinto /usr/sbin/
newins VBoxService vboxguest-service
fperms 0755 /usr/sbin/vboxguest-service
insinto /usr/bin
doins VBoxControl
fperms 0755 /usr/bin/VBoxControl
# VBoxClient user service and xrandr wrapper
if use gui ; then
doins VBoxClient
fperms 0755 /usr/bin/VBoxClient
doins VBoxDRMClient
fperms 4755 /usr/bin/VBoxDRMClient
pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
newins 98vboxadd-xclient VBoxClient-all
fperms 0755 /usr/bin/VBoxClient-all
popd &>/dev/null || die
fi
# udev rule for vboxdrv
local udev_rules_dir="/lib/udev/rules.d"
dodir ${udev_rules_dir}
echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
>> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
|| die
echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
>> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
|| die
# VBoxClient autostart file
insinto /etc/xdg/autostart
doins "${FILESDIR}"/vboxclient.desktop
# sample xorg.conf
dodoc "${FILESDIR}"/xorg.conf.vbox
docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
systemd_dounit "${FILESDIR}/${PN}.service"
readme.gentoo_create_doc
}
pkg_postinst() {
linux-mod-r1_pkg_postinst
udev_reload
if ! use gui ; then
elog "The use flag \"gui\" is off, enable it to install the"
elog "X Window System drivers and integration."
fi
readme.gentoo_print_elog
}
pkg_postrm() {
udev_reload
}

@ -1,2 +1,3 @@
DIST vbox-kernel-module-src-6.1.50.tar.xz 680700 BLAKE2B c3a10ce8f3eb7e6c0c05f81cd3c072296557b9f9f6f501bb0aec3f04aabfe1fbb67b553510104139cef290c09ff9e67161085781b8d28c968dfafd15958a1b1a SHA512 7822e421b595263cbdaae08103255742360ca7ab0c385818ec895f10570c5b9ed5c7614742d8fa8bc2414cd426907cd1c49d735cde8caf9d2b7692898058f592
DIST vbox-kernel-module-src-7.0.18.tar.xz 719604 BLAKE2B 44e9d895791a7ff50681dd8860456a87078b41a4eb3005a6b249f9b34c37de709e190cbd6f352d21010ddcb9d8d1c35303bafd765e999664288df9e0ead94e6c SHA512 1cc17e302ef8251abd08a078abf11fede242154b0bb78d03f8d7c2821ba7cff410bd255802316a2f13100884b35a6f14fdf0b594304bd041521b66d264f51b77
DIST vbox-kernel-module-src-7.0.20.tar.xz 720160 BLAKE2B 833aa87af13a6c3e9426bd00e32b14c8b3958ab14425e8c02141d8579e987255b170662e00abb92f17234d4f03462d6d5b9fc1279d9da5449d344a328c905c8f SHA512 650bb6cf16ae42774524bf2e7ad2ee125d7a8d57de1e58d24b8b49bb9cf2829ea01dd32d2c1e0b2df556eab4a458cb0d84715b92d4085d03891f62a46aaf2916

@ -0,0 +1,34 @@
# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# XXX: the tarball here is just the kernel modules split out of the binary
# package that comes from VirtualBox-*.run
# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
EAPI=8
inherit linux-mod-r1
MY_P="vbox-kernel-module-src-${PV}"
DESCRIPTION="Kernel Modules for Virtualbox"
HOMEPAGE="https://www.virtualbox.org/"
SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
S="${WORKDIR}"
LICENSE="GPL-3"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64"
CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
src_compile() {
local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
linux-mod-r1_src_compile
}
src_install() {
linux-mod-r1_src_install
insinto /usr/lib/modules-load.d/
newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
}

@ -1,7 +1,9 @@
DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
DIST VirtualBox-7.0.20.tar.bz2 173300021 BLAKE2B 23a1553578c8b89c3bea65fd9a451ef5abf419ce8a05524f2afc15b8d9a378a22ffb01c0c792d258320aeddb330b74f8f769180863041e333512d0eed2f4449c SHA512 7682e24d60c1896c661f2689af6820ae67b6bd8d9faaf18c58e8159bc7694ef80722f8e9611d6272da5b46eb2f3a44fc637b277e6801b7a8bf53aad045a81fe9
DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
DIST virtualbox-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
DIST virtualbox-help-7.0.20.tar.xz 3949292 BLAKE2B c56f736606fdedfb59bd1f4446a457587dcbe018d1be3162d94eca780cacfa45b49ba5a9c6b25970d28e5a428904bdfd34d2f229c1e24b567fd1b1959cbdc9ea SHA512 e73e448b8aa875d0f6ae1fb398082fa7183e198191a9b509b63592b5df3a19069b805dcdc11d98da3971a14fd6670d8b0a777e5a6d6b63358f7a4f263ca8d31e
DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
DIST virtualbox-patches-7.1.0_pre20240419.tar.bz2 5316 BLAKE2B 1a890b7d19cb252c7801b68c299676e2cd7a209a57a03cb39025e1a969a1c73142eb96154dae8469405f93d61969154428ea0fe3950a00d8a0a69dc8aefb4fc9 SHA512 ce4f850ce87652ef4eab039332048333949c94f0627bec8eb00d9689d7f8edcce372e2185ef8bbda9aef97781a2008b7c6464468cc38f3454dee862efc0ecdc9

@ -0,0 +1,741 @@
# Copyright 2022-2024 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..11} )
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}
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}/${MY_P}.tar.bz2
https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2
gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
"
S="${WORKDIR}/${MY_PN}-${PV}"
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 +udev vboxwebsrv vde +vmmraw vnc"
unset WATCOM #856769
COMMON_DEPEND="
acct-group/vboxusers
~app-emulation/virtualbox-modules-${PV}
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/qtcore:5
dev-qt/qtdbus:5
dev-qt/qtgui:5
dev-qt/qthelp:5
dev-qt/qtprintsupport:5
dev-qt/qtwidgets:5
dev-qt/qtx11extras:5
dev-qt/qtxml:5
x11-libs/libX11
x11-libs/libXt
opengl? ( dev-qt/qtopengl:5 )
)
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/libXcursor
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:=
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/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-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/qthelp:5
)
gui? ( dev-qt/linguist-tools:5 )
nls? ( dev-qt/linguist-tools:5 )
java? ( virtual/jdk:1.8 )
python? ( ${PYTHON_DEPS} )
"
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.0.16/patches
)
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
# 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
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
#856811 #864274
# cannot filter out only one flag, some combinations of these flags produce buggy executables
for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
append-cflags $(test-flags-CC -mno-$i)
append-cxxflags $(test-flags-CXX -mno-$i)
done
# 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 assembler chokes on comments starting with /
sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
# clang does not support this extension
eapply "${FILESDIR}"/${PN}-7.0.8-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)"
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 --enable-webservice)
$(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
MAKE="kmk" emake "${myemakeargs[@]}" all
}
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,XPCOMIPCD} \
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
if use opengl; then
vbox_inst VBoxTestOGL
pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
fi
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-${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"
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
sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || die
python_doscript vboxshell.py
# do not install the installer
rm -r "${installer_dir}" || 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
}

Binary file not shown.

@ -10,6 +10,8 @@ DESCRIPTION="Genealogy software program with a Web interface"
HOMEPAGE="https://github.com/geneweb/geneweb"
SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/${TagId}.tar.gz"
S="${WORKDIR}"/${PN}-${TagId}
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 x86"
@ -28,6 +30,7 @@ DEPEND="
dev-ml/markup:=
dev-ml/jingoo:=
>=dev-ml/camlp5-8:=[ocamlopt?]
<dev-ml/camlp5-8.03
dev-ml/ppx_import:=
dev-ml/ppx_blob:=
acct-user/geneweb
@ -41,8 +44,6 @@ BDEPEND="
QA_FLAGS_IGNORED='.*'
S="${WORKDIR}"/${PN}-${TagId}
PATCHES=( "${FILESDIR}"/${P}-gentoo.patch )
src_prepare() {

@ -26,6 +26,7 @@ DEPEND="
acct-user/geneweb
dev-ml/calendars:=
>=dev-ml/camlp5-8:=[ocamlopt?]
<dev-ml/camlp5-8.03
dev-ml/camlp-streams:=
dev-ml/jingoo:=
dev-ml/markup:=

Binary file not shown.

@ -13,7 +13,7 @@ SRC_URI="https://calcurse.org/files/${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 x86"
KEYWORDS="amd64 ~arm64 ppc ppc64 x86"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
IUSE="caldav doc"

@ -1,2 +1,3 @@
DIST onlyoffice-bin-8.0.1_amd64.deb 208469572 BLAKE2B 95f2e9df7c5673aa6edbb682078a9c133f1a5925dd1a84d3342c34cbe6a07691f4f5f425c264cf7760ae063a828caf1792533da1eb59423c48c77119935c889a SHA512 a16c784f1c9f056a2ed09fecff2cf7a4e2206006e04a1f8d8e260aeddd6b2195b0bbadd9f3b71a454d55311978d16d945cd345938688cf7e37aa9f11967c572f
DIST onlyoffice-bin-8.1.0_amd64.deb 208372598 BLAKE2B 9483c652429a61a87a20f95352db34dc176c65d60f7aef45738e4f7175cb5c6a39c918133c488d6f7bae1bdf2677235f0053f53b11e890717670869e4742d088 SHA512 f755ca7b29cdce3c520cf0ccb386f8be2be229989f6c6baba51b5741d6969ba3f101463f1f4aeb9c7a4cfc8e6d592c3f90c3ad19277ea3e6218a3c87ce6ddd42
DIST onlyoffice-bin-8.1.1_amd64.deb 208387824 BLAKE2B 274cc27eb2a364fcc93c5363e38ac80db55e151ab3ff2e5f82fdd04dbab3f55f0facb7043ee67ab5324ac528811f723136498b8dae2390e2092af70ecb8be5d1 SHA512 883d87b1cb3936792bde01da018d838ada4e53796a7f2fdf07a21d592a1b8c190923b03a5c21408efceeba8665cfbe80c614a93e9d211a819780b6083583e5bd

@ -0,0 +1,85 @@
# Copyright 2020-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop unpacker xdg
MY_P="ONLYOFFICE-DesktopEditors-"${PV}""
DESCRIPTION="Onlyoffice is an office productivity suite (binary version)"
HOMEPAGE="https://www.onlyoffice.com/"
SRC_URI="
amd64? (
https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v"${PV}"/onlyoffice-desktopeditors_amd64.deb
-> "${P}"_amd64.deb
)
"
S="${WORKDIR}"
LICENSE="AGPL-3"
SLOT="0"
KEYWORDS="~amd64"
RESTRICT="mirror strip test"
RDEPEND="
>=app-accessibility/at-spi2-core-2.46.0:2
dev-libs/expat
dev-libs/glib:2
dev-libs/nspr
dev-libs/nss
dev-qt/qtdeclarative:5
dev-qt/qtgui:5[eglfs]
media-libs/alsa-lib
media-libs/fontconfig
media-libs/freetype
media-libs/gst-plugins-base:1.0
media-libs/gstreamer:1.0
media-libs/libglvnd
media-libs/mesa
net-print/cups
sys-apps/dbus
sys-devel/gcc
sys-libs/glibc
x11-libs/cairo
x11-libs/gtk+:3
x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libXrandr
x11-libs/libdrm
x11-libs/libxcb
x11-libs/libxkbcommon
x11-libs/pango
|| (
media-libs/libpulse
media-sound/apulse
)
"
QA_PREBUILT="*"
src_prepare() {
default
# Allow launching the ONLYOFFICE on ALSA systems via
# media-sound/apulse
sed -i -e 's|\(export LD_LIBRARY_PATH=$DIR$LDLPATH\)|\1:'"${EPREFIX}"'/usr/'$(get_libdir)'/apulse|' \
"${S}"/usr/bin/onlyoffice-desktopeditors || die
}
src_install() {
domenu usr/share/applications/onlyoffice-desktopeditors.desktop
for size in {16,24,32,48,64,128,256}; do
newicon -s "${size}" opt/onlyoffice/desktopeditors/asc-de-"${size}".png onlyoffice-desktopeditors.png
done
dobin usr/bin/desktopeditors usr/bin/onlyoffice-desktopeditors
doins -r opt
fperms +x /opt/onlyoffice/desktopeditors/{DesktopEditors,editors_helper,converter/x2t}
}

@ -1,2 +1 @@
DIST scribus-1.6.1.tar.xz 73266900 BLAKE2B b8120823cf98201ed197748cffe3f12019acfbd4831b497585ad7d04fa6d6e470bf4bc85dac15700483dfc977c56136cb49bcee20106f482cd9b0022d75d28d5 SHA512 ffde5628ea314dab8f212f78e7dd96cd258ceaebccc5b8de2c21e338a433f82d7fbbb047d05882abb07b4dceac031141b77fef933c9a3ed0e26f29bb94377e7e
DIST scribus-1.6.2.tar.xz 73129400 BLAKE2B 2da98dc322319db18a157f66aef024b7392dbbfaf22adba14f719b48c644d1cc1546cc4d0cccf6dfe479571cf84de6f5645e5d452154f96ddc886e390702d547 SHA512 2f691c1f6b7beada89be410a2936b23641913bf26bd2152974bbaa747aeafb05aa797356a85bd55c14f60f0031ce1addedc9a3ce3e92546ebbb45f96a5ff3e62

@ -1,27 +0,0 @@
From 3116328e804c7366ec64c4224cbf20b0f14e52c8 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Sun, 31 Mar 2024 21:40:42 +0000
Subject: [PATCH] Fix C++20 related warning "template-id is not allowed for
constructor in C++20"
git-svn-id: svn://scribus.net/trunk/Scribus@26079 11d20701-8431-0410-a711-e3c959e3b870
--- a/scribus/third_party/lib2geom/rect.h
+++ b/scribus/third_party/lib2geom/rect.h
@@ -56,14 +56,14 @@ class D2<Interval> {
private:
Interval f[2];
public:
- D2<Interval>() { f[X] = f[Y] = Interval(0, 0); }
+ D2() { f[X] = f[Y] = Interval(0, 0); }
- D2<Interval>(Interval const &a, Interval const &b) {
+ D2(Interval const &a, Interval const &b) {
f[X] = a;
f[Y] = b;
}
- D2<Interval>(Point const & a, Point const & b) {
+ D2(Point const & a, Point const & b) {
f[X] = Interval(a[X], b[X]);
f[Y] = Interval(a[Y], b[Y]);
}

@ -1,39 +0,0 @@
From 3e80b387a226f1abac2bcce6e4300467c189d264 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Sat, 1 Jun 2024 22:04:13 +0000
Subject: [PATCH] #17229: scribus fails to compile with boost 1.85.0
git-svn-id: svn://scribus.net/branches/Version16x/Scribus@26170 11d20701-8431-0410-a711-e3c959e3b870
--- a/scribus/third_party/lib2geom/point.h
+++ b/scribus/third_party/lib2geom/point.h
@@ -121,10 +121,14 @@ class Point {
Point &operator*=(Matrix const &m);
- inline int operator == (const Point &in_pnt) {
+ inline bool operator==(const Point &in_pnt) const {
return ((_pt[X] == in_pnt[X]) && (_pt[Y] == in_pnt[Y]));
}
+ inline bool operator!=(const Point &in_pnt) const {
+ return ((_pt[X] != in_pnt[X]) || (_pt[Y] != in_pnt[Y]));
+ }
+
friend inline std::ostream &operator<< (std::ostream &out_file, const Geom::Point &in_pnt);
};
@@ -144,14 +148,6 @@ inline Point operator^(Point const &a, Point const &b) {
return ret;
}
-//IMPL: boost::EqualityComparableConcept
-inline bool operator==(Point const &a, Point const &b) {
- return (a[X] == b[X]) && (a[Y] == b[Y]);
-}
-inline bool operator!=(Point const &a, Point const &b) {
- return (a[X] != b[X]) || (a[Y] != b[Y]);
-}
-
/** This is a lexicographical ordering for points. It is remarkably useful for sweepline algorithms*/
inline bool operator<=(Point const &a, Point const &b) {
return ( ( a[Y] < b[Y] ) ||

@ -1,64 +0,0 @@
From dc2470990ab73c87fdd60068c99518ced01a3edd Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <asturm@gentoo.org>
Date: Mon, 4 Mar 2024 17:35:11 +0100
Subject: [PATCH] Fix build with >=poppler-24.03.0
Fixes build errors caused by:
"Use an enum for Function getType"
Upstream commit 6e3824d45d42cb806a28a2df84e4ab6bb3587083
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
--- a/scribus/plugins/import/pdf/slaoutput.cpp
+++ b/scribus/plugins/import/pdf/slaoutput.cpp
@@ -1731,7 +1731,11 @@ bool SlaOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, do
VGradient FillGradient = VGradient(VGradient::linear);
FillGradient.clearStops();
GfxColorSpace *color_space = shading->getColorSpace();
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 3, 0)
+ if (func->getType() == Function::Type::Stitching)
+#else
if (func->getType() == 3)
+#endif
{
StitchingFunction *stitchingFunc = (StitchingFunction*)func;
const double *bounds = stitchingFunc->getBounds();
@@ -1753,7 +1757,11 @@ bool SlaOutputDev::axialShadedFill(GfxState *state, GfxAxialShading *shading, do
FillGradient.addStop( ScColorEngine::getShadeColor(m_doc->PageColors[stopColor], m_doc, shade), stopPoint, 0.5, 1.0, stopColor, shade );
}
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 3, 0)
+ else if ((func->getType() == Function::Type::Exponential) || (func->getType() == Function::Type::Sampled))
+#else
else if ((func->getType() == 2) || (func->getType() == 0))
+#endif
{
GfxColor stop1;
shading->getColor(0.0, &stop1);
@@ -1865,7 +1873,11 @@ bool SlaOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading,
VGradient FillGradient = VGradient(VGradient::linear);
FillGradient.clearStops();
GfxColorSpace *color_space = shading->getColorSpace();
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 3, 0)
+ if (func->getType() == Function::Type::Stitching)
+#else
if (func->getType() == 3)
+#endif
{
StitchingFunction *stitchingFunc = (StitchingFunction*)func;
const double *bounds = stitchingFunc->getBounds();
@@ -1887,7 +1899,11 @@ bool SlaOutputDev::radialShadedFill(GfxState *state, GfxRadialShading *shading,
FillGradient.addStop( ScColorEngine::getShadeColor(m_doc->PageColors[stopColor], m_doc, shade), stopPoint, 0.5, 1.0, stopColor, shade );
}
}
+#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(24, 3, 0)
+ else if ((func->getType() == Function::Type::Exponential) || (func->getType() == Function::Type::Sampled))
+#else
else if ((func->getType() == 2) || (func->getType() == 0))
+#endif
{
GfxColor stop1;
shading->getColor(0.0, &stop1);
--
2.44.0

@ -1,24 +0,0 @@
From 985b7944e50b23f4558ba4ca539659f37b4b7ba4 Mon Sep 17 00:00:00 2001
From: Jean Ghali <jghali@libertysurf.fr>
Date: Thu, 2 May 2024 22:26:03 +0000
Subject: [PATCH] Enforce C++20 when building with poppler >= 24.05.0
git-svn-id: svn://scribus.net/trunk/Scribus@26125 11d20701-8431-0410-a711-e3c959e3b870
--- a/CMakeLists_Dependencies.cmake
+++ b/CMakeLists_Dependencies.cmake
@@ -28,7 +28,14 @@ if (poppler_FOUND)
message(STATUS "Found poppler")
message(STATUS "Found poppler libs: ${poppler_LIBRARY}")
message(STATUS "Found poppler includes: ${poppler_INCLUDE_DIR}")
- if (poppler_VERSION VERSION_GREATER_EQUAL 22.01.0)
+ if (poppler_VERSION VERSION_GREATER_EQUAL 24.05.0)
+ message(STATUS "Poppler Version:" ${poppler_VERSION})
+ if (CMAKE_CXX_STANDARD LESS 20)
+ message(STATUS "C++20 is the minimum C++ standard since poppler 24.05.0")
+ message(STATUS "Enabling C++20 compiler features")
+ set(CMAKE_CXX_STANDARD 20)
+ endif()
+ elseif (poppler_VERSION VERSION_GREATER_EQUAL 22.01.0)
message(STATUS "Poppler Version:" ${poppler_VERSION})
if (CMAKE_CXX_STANDARD LESS 17)
message(STATUS "C++17 is the minimum C++ standard since poppler 22.01.0")

@ -1,154 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
PYTHON_REQ_USE="tk?"
inherit cmake desktop flag-o-matic optfeature python-single-r1 xdg
DESCRIPTION="Desktop publishing (DTP) and layout program"
HOMEPAGE="https://www.scribus.net/"
SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}.tar.xz"
S="${WORKDIR}/${P}"
LICENSE="GPL-2"
SLOT="$(ver_cut 1-2)"
KEYWORDS="amd64 ppc ppc64 x86"
IUSE="+boost debug examples graphicsmagick hunspell +minimal osg +pdf scripts +templates tk"
REQUIRED_USE="${PYTHON_REQUIRED_USE}
tk? ( scripts )"
# osg
# couple of third_party libs bundled
DEPEND="${PYTHON_DEPS}
app-text/libmspub
app-text/libqxp
app-text/poppler:=
dev-libs/hyphen
dev-libs/icu:0=
dev-libs/librevenge
dev-libs/libxml2
dev-qt/qtcore:5
dev-qt/qtgui:5[-gles2-only,X]
dev-qt/qtnetwork:5
dev-qt/qtopengl:5
dev-qt/qtprintsupport:5
dev-qt/qtwidgets:5
dev-qt/qtxml:5
media-libs/fontconfig
media-libs/freetype:2
media-libs/harfbuzz:0=[icu]
media-libs/lcms:2
media-libs/libcdr
media-libs/libfreehand
media-libs/libjpeg-turbo:=
media-libs/libpagemaker
media-libs/libpng:0=
media-libs/libvisio
media-libs/libzmf
media-libs/tiff:=
net-print/cups
sys-libs/zlib[minizip]
x11-libs/cairo[X,svg(+)]
boost? ( dev-libs/boost:= )
graphicsmagick? ( media-gfx/graphicsmagick:= )
hunspell? ( app-text/hunspell:= )
osg? ( dev-games/openscenegraph:= )
pdf? ( app-text/podofo:0= )
scripts? (
$(python_gen_cond_dep '
dev-python/pillow[tk?,${PYTHON_USEDEP}]
')
)
"
RDEPEND="${DEPEND}
app-text/ghostscript-gpl
"
BDEPEND="
dev-qt/linguist-tools:5
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-1.5.8-cmake.patch # bug 886251
"${FILESDIR}"/${PN}-1.5.3-fpic.patch
"${FILESDIR}"/${PN}-1.6.1-findhyphen.patch
"${FILESDIR}"/${PN}-1.7.0-fix-icon-version.patch
"${FILESDIR}"/${PN}-1.6.1-poppler-24.03.patch
"${FILESDIR}"/${PN}-1.6.1-poppler-24.05.patch
"${FILESDIR}"/${PN}-1.6.1-boost-1.85.patch
"${FILESDIR}"/${PN}-1.6.1-boost-1.85-2.patch
)
src_prepare() {
cmake_src_prepare
cmake_run_in scribus cmake_comment_add_subdirectory ui/qml
# for safety remove files that we patched out
rm -r scribus/third_party/hyphen || die
}
src_configure() {
# bug #550818
append-cppflags -DHAVE_MEMRCHR
local mycmakeargs=(
-DTAG_VERSION="-${SLOT}"
-DHAVE_PYTHON=ON
-DWANT_DISTROBUILD=ON
-DWANT_CPP17=ON
-DDOCDIR="${EPREFIX}"/usr/share/doc/${PF}/
-DPython3_EXECUTABLE="${PYTHON}"
-DWITH_BOOST=$(usex boost)
-DWANT_DEBUG=$(usex debug)
-DWANT_NOEXAMPLES=$(usex !examples)
-DWANT_GRAPHICSMAGICK=$(usex graphicsmagick)
-DWANT_HUNSPELL=$(usex hunspell)
-DWANT_HEADERINSTALL=$(usex !minimal)
-DWANT_NOOSG=$(usex !osg)
-DWITH_PODOFO=$(usex pdf)
-DWANT_NOTEMPLATES=$(usex !templates)
)
cmake_src_configure
}
src_install() {
cmake_src_install
if ! use tk; then
rm "${ED}"/usr/share/scribus-${SLOT}/scripts/{FontSample,CalendarWizard}.py || die
fi
if use scripts; then
python_fix_shebang "${ED}"/usr/share/scribus-${SLOT}/scripts
python_optimize "${ED}"/usr/share/scribus-${SLOT}/scripts
else
rm "${ED}"/usr/share/scribus-${SLOT}/scripts/*.py || die
fi
mv "${ED}"/usr/share/doc/${PF}/{en,html} || die
ln -sf html "${ED}"/usr/share/doc/${PF}/en || die
# These files are parsed to populate the help/about window.
cat >> "${T}"/COPYING <<- EOF || die
${PN} is licensed under the "${LICENSE}".
Please visit https://www.gnu.org/licenses/gpl-2.0.html for the complete license text.
EOF
dodoc "${T}"/COPYING
docompress -x /usr/share/doc/${PF}/en /usr/share/doc/${PF}/{AUTHORS,TRANSLATION,LINKS,COPYING}
local size
for size in 16 32 128 256 512; do
newicon -s $size resources/iconsets/artwork/icon_${size}x${size}.png scribus-${SLOT}.png
done
newicon -s 64 resources/iconsets/artwork/icon_32x32@2x.png scribus-${SLOT}.png
newicon resources/iconsets/1_5_1/scribus.png scribus-${SLOT}.png
newmenu scribus.desktop scribus-${SLOT}.desktop
}
pkg_postinst() {
xdg_pkg_postinst
optfeature "MS Word .doc file import filter support" app-text/antiword
}

@ -17,7 +17,7 @@ if [[ "${PV}" == *9999* ]] ; then
else
SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PN}/${PV}/${P}.tar.xz"
S="${WORKDIR}/${P}"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
KEYWORDS="amd64 ppc ppc64 x86"
fi
LICENSE="GPL-2"

Binary file not shown.

@ -28,6 +28,7 @@ DIST bash-5.3-alpha.tar.gz.sig 95 BLAKE2B 69c8b33fe2a40498662ef084967701cff19260
DIST bash-5.3_alpha_p20240628-5e28a1813ce7d08628c8df584ea36515091c6d9b.tar.xz 8528432 BLAKE2B d920640b0ba0ae38dbb98b48a9e4dd6635a05d7f86fcf26a4f2c79f6a4338e4f25ff20119f9a1df451d23d9cc381862963dcf9c135050102e8159eccbe5f7314 SHA512 cc60f94083b378ac51fda973f834f10477ac6ebcfc682f934426db3fd6ca4506e5ed1c64311c67d5d9d70b62ab2bf9900ee66f1aa96a7bce7198d69edf9131ca
DIST bash-5.3_alpha_p20240706-a91b8b077300b0a2a7daefe02f0363f9116e00d5.tar.xz 8525768 BLAKE2B 07b1b92b15bbd1c4bd01e3c2fbdf65d7dab14976442a2c4ea751c0d6e729d937886495af5402cd4669e84f68e952f3e79a375c649bbda1b4cc948172e3ea2948 SHA512 dfd19e6a4786ff066cb7e13ae328fbc909847fd7f987b59d9c646ab0bbf5abdc8c570bbc75810fe9eb6c9171acb3256b4e3278f565a1f526d9ce030fd423c0f8
DIST bash-5.3_alpha_p20240711-d3e86e66ce857a8dc02e3116fd98b6e5b34d6364.tar.xz 8532476 BLAKE2B bae60589e733f29f4dab827c1c68899f4770c4cb2ca58af19e10bb833820644d336ada480be60b4dabb82441ae68f64494074387057d8b56efe8d5b9befd2a13 SHA512 ef677d2641607b75a000bef4b6eb9b359553ae6c3f930285989b97c036bfd1f7ecfa9240af1873af11dda42d1eca68da9c4b7567876e0bca878e8469dde0d0af
DIST bash-5.3_alpha_p20240718-6c703092759ace29263ea96374e18412c59acc7f.tar.xz 8535120 BLAKE2B 7dd47829ca71689c138af9acd2657cee732f43abc82506ad76e65eb038e39acd31e208e985714460d76fbfb354517c3597fd85d459969541af950382ae7796c9 SHA512 41e07ed4fa90f8b645faf6c26766048fa51a3e3bd420dc875898fc9a1d674c05fe35f12b1c4d6ac6e6374736e6052e17e235a94c205c4bda80183f8065035182
DIST bash205b-001 1132 BLAKE2B 0c5eef29777d54ef05957ea3d63b1556fb380bd20c238dc28993d822b37bc4e78ff4048ad069f6b8cd25da77ccdeb7aecd86c4349cb9d81e5e94c7001eeae5e6 SHA512 5ce4357468821b05e747201f3aa57225ad8f540c9e2c87051720490e039c30b478b9b662a68f14a0800fefe40184e4495e2645665200f9d75e9a115b2ac08071
DIST bash205b-002 755 BLAKE2B 6a6ed5679d451f02f8104b345c1722d11718ce3b4043b581c17786d40d8da69a34786fb56d0c363dba277b8e9dd33f12f70c9cc73a9fc39ba4a8319406f0458d SHA512 46947b0229478d5c2cfeff68b8ebc00e4ef0c8b94e336ca12f72b4490ba3622c0240c01c17c1641c3b07adc2c64ec94d6d780365e8990768ec8888f3a9526883
DIST bash205b-003 2356 BLAKE2B b7887d00d92fd298cd07a15e1c73b516dabd22ecd74c97091636dd97a0cd55024ed698e5cc924c4311d994dd326b1ad074bea35e7650cf9cf4e25c60d2713fa7 SHA512 74528ca5d165b812d299f1c69b47757bd677c0b22ce4217e155cd641708b02364a93c6709fb57b546b376b36da74429a61493921c7c199563da40ddcf1c1f399

@ -0,0 +1,411 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/chetramey.asc
inherit flag-o-matic toolchain-funcs prefix verify-sig
# Uncomment if we have a patchset.
#GENTOO_PATCH_DEV="sam"
#GENTOO_PATCH_VER="${PV}"
MY_PV=${PV/_p*}
MY_PV=${MY_PV/_/-}
MY_P=${PN}-${MY_PV}
MY_PATCHES=()
# Determine the patchlevel.
case ${PV} in
9999|*_alpha*|*_beta*|*_rc*)
# Set a negative patchlevel to indicate that it's a pre-release.
PLEVEL=-1
;;
*_p*)
PLEVEL=${PV##*_p}
;;
*)
PLEVEL=0
esac
# The version of readline this bash normally ships with. Note that we only use
# the bundled copy of readline for pre-releases.
READLINE_VER="8.3_alpha"
DESCRIPTION="The standard GNU Bourne again shell"
HOMEPAGE="https://tiswww.case.edu/php/chet/bash/bashtop.html https://git.savannah.gnu.org/cgit/bash.git"
if [[ ${PV} == 9999 ]]; then
EGIT_REPO_URI="https://git.savannah.gnu.org/git/bash.git"
EGIT_BRANCH=devel
inherit git-r3
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
# It can be useful to have snapshots in the pre-release period once
# the first alpha is out, as various bugs get reported and fixed from
# the alpha, and the next pre-release is usually quite far away.
#
# i.e. if it's worth packaging the alpha, it's worth packaging a followup.
BASH_COMMIT="6c703092759ace29263ea96374e18412c59acc7f"
SRC_URI="https://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-${BASH_COMMIT}.tar.xz -> ${P}-${BASH_COMMIT}.tar.xz"
S=${WORKDIR}/${PN}-${BASH_COMMIT}
else
my_urls=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}.tar.gz" )
# bash-5.1 -> bash51
my_p=${PN}$(ver_cut 1-2) my_p=${my_p/.}
for (( my_patch_idx = 1; my_patch_idx <= PLEVEL; my_patch_idx++ )); do
printf -v my_patch_ver %s-%03d "${my_p}" "${my_patch_idx}"
my_urls+=( {'mirror://gnu/bash','ftp://ftp.cwru.edu/pub/bash'}/"${MY_P}-patches/${my_patch_ver}" )
MY_PATCHES+=( "${DISTDIR}/${my_patch_ver}" )
done
SRC_URI="${my_urls[*]} verify-sig? ( ${my_urls[*]/%/.sig} )"
S=${WORKDIR}/${MY_P}
unset -v my_urls my_p my_patch_idx my_patch_ver
fi
if [[ ${GENTOO_PATCH_VER} ]]; then
SRC_URI+=" https://dev.gentoo.org/~${GENTOO_PATCH_DEV:?}/distfiles/${CATEGORY}/${PN}/${PN}-${GENTOO_PATCH_VER:?}-patches.tar.xz"
fi
LICENSE="GPL-3+"
SLOT="0"
if (( PLEVEL >= 0 )); then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
IUSE="afs bashlogger examples mem-scramble +net nls plugins pgo +readline"
DEPEND="
>=sys-libs/ncurses-5.2-r2:=
nls? ( virtual/libintl )
"
if (( PLEVEL >= 0 )); then
DEPEND+=" readline? ( >=sys-libs/readline-${READLINE_VER}:= )"
fi
RDEPEND="
${DEPEND}
"
# We only need bison (yacc) when the .y files get patched (bash42-005, bash51-011).
BDEPEND="
pgo? ( dev-util/gperf )
verify-sig? ( sec-keys/openpgp-keys-chetramey )
"
# EAPI 8 tries to append it but it doesn't exist here.
QA_CONFIGURE_OPTIONS="--disable-static"
PATCHES=(
#"${WORKDIR}"/${PN}-${GENTOO_PATCH_VER}/
# Patches to or from Chet, posted to the bug-bash mailing list.
"${FILESDIR}/${PN}-5.0-syslog-history-extern.patch"
)
pkg_setup() {
# bug #7332
if is-flag -malign-double; then
eerror "Detected bad CFLAGS '-malign-double'. Do not use this"
eerror "as it breaks LFS (struct stat64) on x86."
die "remove -malign-double from your CFLAGS mr ricer"
fi
if use bashlogger; then
ewarn "The logging patch should ONLY be used in restricted (i.e. honeypot) envs."
ewarn "This will log ALL output you enter into the shell, you have been warned."
fi
}
src_unpack() {
local patch
if [[ ${PV} == 9999 ]]; then
git-r3_src_unpack
elif (( PLEVEL < 0 )) && [[ ${PV} == *_p* ]] ; then
default
else
if use verify-sig; then
verify-sig_verify_detached "${DISTDIR}/${MY_P}.tar.gz"{,.sig}
for patch in "${MY_PATCHES[@]}"; do
verify-sig_verify_detached "${patch}"{,.sig}
done
fi
unpack "${MY_P}.tar.gz"
if [[ ${GENTOO_PATCH_VER} ]]; then
unpack "${PN}-${GENTOO_PATCH_VER}-patches.tar.xz"
fi
fi
}
src_prepare() {
# Include official patches.
(( PLEVEL > 0 )) && eapply -p0 "${MY_PATCHES[@]}"
# Clean out local libs so we know we use system ones w/releases. The
# touch utility is invoked for the benefit of config.status.
if (( PLEVEL >= 0 )); then
rm -rf lib/{readline,termcap}/* \
&& touch lib/{readline,termcap}/Makefile.in \
&& sed -i -E 's:\$[{(](RL|HIST)_LIBSRC[)}]/[[:alpha:]_-]*\.h::g' Makefile.in \
|| die
fi
# Prefixify hardcoded path names. No-op for non-prefix.
hprefixify pathnames.h.in
# Avoid regenerating docs after patches, bug #407985.
sed -i -E '/^(HS|RL)USER/s:=.*:=:' doc/Makefile.in \
&& touch -r . doc/* \
|| die
# Sometimes hangs (more noticeable w/ pgo), bug #907403.
rm tests/run-jobs || die
eapply -p0 "${PATCHES[@]}"
eapply_user
}
src_configure() {
local -a myconf
# Upstream only test with Bison and require GNUisms like YYEOF and
# YYERRCODE. The former at least may be in POSIX soon:
# https://www.austingroupbugs.net/view.php?id=1269.
# configure warns on use of non-Bison but doesn't abort. The result
# may misbehave at runtime.
unset -v YACC
# wcsnwidth(), substring() issues with -Wlto-type-mismatch, reported
# upstream to Chet by email.
filter-lto
myconf=(
--disable-profiling
# Force linking with system curses ... the bundled termcap lib
# sucks bad compared to ncurses. For the most part, ncurses
# is here because readline needs it. But bash itself calls
# ncurses in one or two small places :(.
--with-curses
$(use_enable mem-scramble)
$(use_enable net net-redirections)
$(use_enable readline)
$(use_enable readline bang-history)
$(use_enable readline history)
$(use_with afs)
$(use_with mem-scramble bash-malloc)
)
# For descriptions of these, see config-top.h.
# bashrc/#26952 bash_logout/#90488 ssh/#24762 mktemp/#574426
append-cppflags \
-DDEFAULT_PATH_VALUE=\'\""${EPREFIX}"/usr/local/sbin:"${EPREFIX}"/usr/local/bin:"${EPREFIX}"/usr/sbin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/bin\"\' \
-DSTANDARD_UTILS_PATH=\'\""${EPREFIX}"/bin:"${EPREFIX}"/usr/bin:"${EPREFIX}"/sbin:"${EPREFIX}"/usr/sbin\"\' \
-DSYS_BASHRC=\'\""${EPREFIX}"/etc/bash/bashrc\"\' \
-DSYS_BASH_LOGOUT=\'\""${EPREFIX}"/etc/bash/bash_logout\"\' \
-DNON_INTERACTIVE_LOGIN_SHELLS \
-DSSH_SOURCE_BASHRC \
$(use bashlogger && echo -DSYSLOG_HISTORY)
use nls || myconf+=( --disable-nls )
if (( PLEVEL >= 0 )); then
# Historically, we always used the builtin readline, but since
# our handling of SONAME upgrades has gotten much more stable
# in the PM (and the readline ebuild itself preserves the old
# libs during upgrades), linking against the system copy should
# be safe.
# Exact cached version here doesn't really matter as long as it
# is at least what's in the DEPEND up above.
export ac_cv_rl_version=${READLINE_VER%%_*}
# Use system readline only with released versions.
myconf+=( --with-installed-readline=. )
fi
if use plugins; then
append-ldflags "-Wl,-rpath,${EPREFIX}/usr/$(get_libdir)/bash"
else
# Disable the plugins logic by hand since bash doesn't provide
# a way of doing it.
export ac_cv_func_dl{close,open,sym}=no \
ac_cv_lib_dl_dlopen=no ac_cv_header_dlfcn_h=no
sed -i -e '/LOCAL_LDFLAGS=/s:-rdynamic::' configure || die
fi
# bug #444070
tc-export AR
econf "${myconf[@]}"
}
src_compile() {
local -a pgo_generate_flags pgo_use_flags
local flag
# -fprofile-partial-training because upstream notes the test suite isn't
# super comprehensive.
# https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html#sec-gcc10-pgo
if use pgo; then
pgo_generate_flags=(
-fprofile-update=atomic
-fprofile-dir="${T}"/pgo
-fprofile-generate="${T}"/pgo
)
pgo_use_flags=(
-fprofile-use="${T}"/pgo
-fprofile-dir="${T}"/pgo
)
if flag=$(test-flags-CC -fprofile-partial-training); then
pgo_generate_flags+=( "${flag}" )
pgo_use_flags+=( "${flag}" )
fi
fi
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}"
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" all others
# Build Bash and run its tests to generate profiles.
if (( ${#pgo_generate_flags[@]} )); then
# Used in test suite.
unset -v A
emake CFLAGS="${CFLAGS} ${pgo_generate_flags[*]}" -k check
if tc-is-clang; then
llvm-profdata merge "${T}"/pgo --output="${T}"/pgo/default.profdata || die
fi
# Rebuild Bash using the profiling data we just generated.
emake clean
emake CFLAGS="${CFLAGS} ${pgo_use_flags[*]}"
use plugins && emake -C examples/loadables CFLAGS="${CFLAGS} ${pgo_use_flags[*]}" all others
fi
}
src_test() {
# Used in test suite.
unset -v A
default
}
src_install() {
local d f
default
my_prefixify() {
while read -r; do
if [[ $REPLY == *$1* ]]; then
REPLY=${REPLY/"/etc/"/"${EPREFIX}/etc/"}
fi
printf '%s\n' "${REPLY}" || ! break
done < "$2" || die
}
dodir /bin
mv -- "${ED}"/usr/bin/bash "${ED}"/bin/ || die
dosym bash /bin/rbash
insinto /etc/bash
doins "${FILESDIR}"/bash_logout
my_prefixify bashrc.d "${FILESDIR}"/bashrc-r1 | newins - bashrc
insinto /etc/bash/bashrc.d
my_prefixify DIR_COLORS "${FILESDIR}"/bashrc.d/10-gentoo-color.bash | newins - 10-gentoo-color.bash
newins "${FILESDIR}"/bashrc.d/10-gentoo-title-r1.bash 10-gentoo-title.bash
if [[ ! ${EPREFIX} ]]; then
doins "${FILESDIR}"/bashrc.d/15-gentoo-bashrc-check.bash
fi
insinto /etc/skel
for f in bash{_logout,_profile,rc}; do
newins "${FILESDIR}/dot-${f}" ".${f}"
done
if use plugins; then
exeinto "/usr/$(get_libdir)/bash"
set -- examples/loadables/*.o
doexe "${@%.o}"
insinto /usr/include/bash-plugins
doins *.h builtins/*.h include/*.h lib/{glob/glob.h,tilde/tilde.h}
fi
if use examples; then
for d in examples/{functions,misc,scripts,startup-files}; do
exeinto "/usr/share/doc/${PF}/${d}"
docinto "${d}"
for f in "${d}"/*; do
if [[ ${f##*/} != @(PERMISSION|*README) ]]; then
doexe "${f}"
else
dodoc "${f}"
fi
done
done
fi
# Install bash_builtins.1 and rbash.1.
emake -C doc DESTDIR="${D}" install_builtins
sed 's:bash\.1:man1/&:' doc/rbash.1 > "${T}"/rbash.1 || die
doman "${T}"/rbash.1
newdoc CWRU/changelog ChangeLog
dosym bash.info /usr/share/info/bashref.info
}
pkg_preinst() {
if [[ -e ${EROOT}/etc/bashrc ]] && [[ ! -d ${EROOT}/etc/bash ]]; then
mkdir -p -- "${EROOT}"/etc/bash \
&& mv -f -- "${EROOT}"/etc/bashrc "${EROOT}"/etc/bash/ \
|| die
fi
}
pkg_postinst() {
local old_ver
# If /bin/sh does not exist, provide it.
if [[ ! -e ${EROOT}/bin/sh ]]; then
ln -sf -- bash "${EROOT}"/bin/sh || die
fi
read -r old_ver <<<"${REPLACING_VERSIONS}"
if [[ ! $old_ver ]]; then
:
elif ver_test "$old_ver" -ge "5.2" && ver_test "$old_ver" -ge "5.2_p26-r8"; then
return
fi
while read -r; do ewarn "${REPLY}"; done <<'EOF'
Files under /etc/bash/bashrc.d must now have a suffix of .sh or .bash.
Gentoo now defaults to defining PROMPT_COMMAND as an array. Depending on the
characteristics of the operating environment, it may contain a command to set
the terminal's window title. Those who were already choosing to customise the
PROMPT_COMMAND variable are now advised to append their commands like so:
PROMPT_COMMAND+=('custom command goes here')
Gentoo no longer defaults to having bash set the window title in the case
that the terminal is controlled by sshd(8), unless screen is launched on the
remote side or the terminal reliably supports saving and restoring the title
(as alacritty, foot and tmux do). Those wanting for the title to be set
regardless may adjust ~/.bashrc - or create a custom /etc/bash/bashrc.d
drop-in - to set PROMPT_COMMMAND like so:
PROMPT_COMMAND=(genfun_set_win_title)
Those who would prefer for bash never to interfere with the window title may
now opt out of the default title setting behaviour, either with the "unset -v
PROMPT_COMMAND" command or by re-defining PROMPT_COMMAND as desired.
EOF
}

Binary file not shown.

@ -1,2 +1,2 @@
DIST zathura-pdf-mupdf-0.4.0.tar.gz 9323 BLAKE2B e633e2d52080dc017cd59be184fc52f52b21f9bfa1cecb48c83b4383366226f8e65fcd92503493e8df568847f84a39f2f7d8e4a87df44c66ec121c246557e10a SHA512 44a8d72f54adf29cc853c636f2387edb52e253522c82175533a2f80a6afc45ca88a785785bb840bf81e368ef8f35e31f5e9bf7648ee6a13d394eb4133585c060
DIST zathura-pdf-mupdf-0.4.1.tar.gz 9346 BLAKE2B f1998acf00696fd40577f6e53b597258e519d3862c5b6b29bec292aaa732acf0b7a80ddf1b2f62d95d9462fe811a73cd912009106394bf1aadfa76be9c6d1adc SHA512 bf3360cdf6195af3cace4c769536a49f1cf2167c70a65b560410db1a0098119d726e73baeea98ca7100653c17248056c484fc436558e52a8dc12e7b83ce789b1
DIST zathura-pdf-mupdf-0.4.3.tar.gz 10146 BLAKE2B ca4edc56256d04e5ba42dd756976a3e444f37dfb5c1fff569329478c3053f7d48fa689d61b8769a73bac50e1244e74855705a9cd1cd25ed37a6927bd6c2ccf75 SHA512 ffab536d1cea26dd08fbb3808e0ff5d4b5b126bfdbd19a79101ac519ee9951d916b75c5b1b1e459f453087c936d84fa3839b4b84dd7f92398ba5cca87e186795

@ -0,0 +1,42 @@
# The dependencies mupdfthird, leptonica and tesseract seem to not be actually used
# anymore, hence exclude them.
# Upstream issue: https://github.com/pwmt/zathura-pdf-mupdf/issues/73
--- a/meson.build
+++ b/meson.build
@@ -23,7 +23,6 @@ girara = dependency('girara-gtk3')
glib = dependency('glib-2.0')
cairo = dependency('cairo')
mupdf = dependency('mupdf', required: false, version: '>=@0@.@1@'.format(mupdf_required_version_major, mupdf_required_version_minor))
-mupdfthird = cc.find_library('mupdf-third')
build_dependencies = [
zathura,
@@ -46,17 +45,15 @@ if not mupdf.found()
error('mupdf @0@.@1@ or newer is required'.format(mupdf_required_version_major, mupdf_required_version_minor))
endif
- build_dependencies += [mupdf, mupdfthird]
+ build_dependencies += [mupdf]
else
# build from Debian's libmupdf-dev
- build_dependencies += [mupdf, mupdfthird]
+ build_dependencies += [mupdf]
libjpeg = dependency('libjpeg')
libjbig2dec = cc.find_library('jbig2dec')
libopenjp2 = dependency('libopenjp2')
gumbo = dependency('gumbo')
- tesseract = dependency('tesseract')
- leptonica = dependency('lept')
mujs = dependency('mujs')
build_dependencies += [
@@ -64,8 +61,6 @@ else
libjbig2dec,
libopenjp2,
gumbo,
- tesseract,
- leptonica,
mujs
]
endif

@ -18,7 +18,8 @@
<email>sebastian+dev@ramacher.at</email>
<name>Sebastian Ramacher</name>
</maintainer>
<doc lang="en">https://git.pwmt.org/pwmt/zathura-pdf-mupdf/-/blob/master/README.md</doc>
<bugs-to>https://git.pwmt.org/pwmt/zathura-pdf-mupdf/-/issues</bugs-to>
<doc lang="en">https://github.com/pwmt/zathura-pdf-mupdf/blob/develop/README.md</doc>
<bugs-to>https://github.com/pwmt/zathura-pdf-mupdf/issues</bugs-to>
<remote-id type="github">pwmt/zathura-pdf-mupdf</remote-id>
</upstream>
</pkgmetadata>

@ -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
EAPI=8
@ -7,23 +7,23 @@ inherit meson xdg
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git"
EGIT_REPO_URI="https://github.com/pwmt/zathura-pdf-mupdf.git"
EGIT_BRANCH="develop"
else
KEYWORDS="amd64 arm x86"
SRC_URI="https://git.pwmt.org/pwmt/${PN}/-/archive/${PV}/${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~x86"
SRC_URI="https://github.com/pwmt/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
fi
DESCRIPTION="PDF plug-in for zathura"
HOMEPAGE="https://git.pwmt.org/pwmt/zathura-pdf-mupdf"
DESCRIPTION="PDF support for zathura using the mupdf PDF rendering library"
HOMEPAGE="https://pwmt.org/projects/zathura-pdf-mupdf/"
LICENSE="ZLIB"
SLOT="0"
IUSE="+javascript"
DEPEND="
>=app-text/mupdf-1.20.0:=[javascript?]
>=app-text/zathura-0.5.2:=
>=app-text/mupdf-1.24.0:=[javascript?]
>=app-text/zathura-0.2.0:=
dev-libs/girara
dev-libs/glib:2
x11-libs/cairo

@ -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
EAPI=8
@ -7,15 +7,15 @@ inherit meson xdg
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git"
EGIT_REPO_URI="https://github.com/pwmt/zathura-pdf-mupdf.git"
EGIT_BRANCH="develop"
else
KEYWORDS="~amd64 ~arm ~x86"
SRC_URI="https://git.pwmt.org/pwmt/${PN}/-/archive/${PV}/${P}.tar.gz"
SRC_URI="https://github.com/pwmt/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
fi
DESCRIPTION="PDF plug-in for zathura"
HOMEPAGE="https://git.pwmt.org/pwmt/zathura-pdf-mupdf"
DESCRIPTION="PDF support for zathura using the mupdf PDF rendering library"
HOMEPAGE="https://pwmt.org/projects/zathura-pdf-mupdf/"
LICENSE="ZLIB"
SLOT="0"
@ -34,7 +34,7 @@ RDEPEND="${DEPEND}"
BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}/${PN}-0.4.0-meson-mupdfthird.patch"
"${FILESDIR}/${PN}-0.4.3-meson-mupdfthird.patch"
)
src_prepare() (

Binary file not shown.

@ -20,7 +20,7 @@ else
SRC_URI="https://gitweb.gentoo.org/proj/autotools-wrappers.git/snapshot/${MY_P}.tar.gz"
S="${WORKDIR}"/${MY_P}
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
fi
LICENSE="GPL-2"

@ -12,7 +12,13 @@ DIST cmake-3.29.3.tar.gz 11247199 BLAKE2B 8d18aca8871a615a4dca8eeb380ad79fdf41a2
DIST cmake-3.29.6-SHA-256.txt 1646 BLAKE2B 8d2e11fe0e7ba89e394e51920657deb793e5f45026ebb86c39748410f110568c68021099286901f05fea47bf641d583b4f3715fe315e795cc8041a1fb66d5107 SHA512 1df0e791c3f42e5f96a967b385155b1f2e5214d78df639c81d2632455748f68423ab5de580f7f3e64c06387fd25247660da4b4bda0c9881f7ca25a317b62556f
DIST cmake-3.29.6-SHA-256.txt.asc 833 BLAKE2B 25e2588375d353cc3d56480dae7aa3d2376c11cb1d830167f57544429fb0b455aeaceb121ac0fdd3f6f2b235c418bc4f52eafacc436472d9a2f3e80b97b08b18 SHA512 f01fff8b188ddd5aa7501acba3d68f3ba2a6b94d402af1afd716be66fa8f76c2d373cd6851a7fe308761171e2206c60f4f785209c86170037afcf3f416f080de
DIST cmake-3.29.6.tar.gz 11248411 BLAKE2B cfd639ce975a4a13221d1fffea97c3bf0599c9af1c8de28e340013ea918bd0fc1eff1d97ca07b2cdd9c34f790950246530ebf1282d400f658fb2d1f4f89a089c SHA512 ecb7b62d2ed133da5c03932d78cc218deddd3c5d7d1116a5ded80b07f6e5f8145928fc15a5c22265995a2b451b1e20aa4dcaa1918060d025485fe8fa7730f3ec
DIST cmake-3.29.7-SHA-256.txt 1646 BLAKE2B 8de09802b055a05fe3cddae74f3952173a63dcbfdd2aef36f31c2c362bbd942a37cd2b7dae4cb56e46501be5c0963c21f2273eba55da026887ab0d2b37039958 SHA512 21c6c186a20ec986d6e4df528f68b9946d051e63feb7f94cfe80c9a7b686b933b4bd26242c391475bf3cb52ed2a7bb02fff06fda42688fe4129f05e54945fc0d
DIST cmake-3.29.7-SHA-256.txt.asc 833 BLAKE2B 73cb2182d7b10d1e36e08494a2c97607550ddab0048f62362ecc0ec37e08967d0968982d2beb606fc099cea99dec9f1c57f0e84128cbea4b09dcf62b87156bea SHA512 783ea23764ac41a487fd58075eec529ae2b1e1ea5057d61c933245474b84e3a866715c81255ac353578bd272d2a17e54f925aa2238c516f6a4c00ba58336174b
DIST cmake-3.29.7.tar.gz 11249246 BLAKE2B ffc1c67e310632d58353c361b0f7a7c3624ab54662829e982adb1ebf3c4ab0479b6ae96d10c3d2273ea460a9836b2f0a43cd769154e2f1a30b77eb3a9f96dad3 SHA512 96e963cd2b5bccd34ed8ec3d2a7f19bd798611cd946adce8ebe142015562b20cb3bae0aa832e8ccb60bb3dc290e41218b4f3ca0361f3e11afecbccf7a182f7d2
DIST cmake-3.30.0-SHA-256.txt 1646 BLAKE2B 9ef563e1b7a49a34bd08547483e628de469edf64889e4a82975441eba6ec77f1ae3cafec4bfcc641699f9c5a60a9998960a6a3e0fd2b955678dc3c40729248ed SHA512 7236dba187dcd5c92b5221116fe31931324ffd09f3371eb3d06b10cdcdb45c6822d95646cf4f8a44926210485f68f34c09f78cc4e3939b5f176f84aa818e82cd
DIST cmake-3.30.0-SHA-256.txt.asc 833 BLAKE2B 2c2657afba4b9d2b176d82789d634505e1eb9a1f46969a0993aadf52da34a242dc104988bc2d5d24cecbab7f32266aa22ac57c09986e20871321bbab11d2aa92 SHA512 de86b2b88c78bc5db905f0d8cbbb7f3ce736c1905375de93d68a2eea3927a02bc4d93d2f3a49c6cb5b0afbc61f6520c9cb1e8b4a33897670d16caff60aa4cdb3
DIST cmake-3.30.0-docs.tar.xz 572276 BLAKE2B 0c258f8dd0a518bb7bf97d35a778d8e406c986e123fc8acafb174a750ad0883d346254d12e8134dd9d030faefddc13b8260e7b43e405272157ada742c75b5fc2 SHA512 9d534b0efc30829f1144fb32c4f10ba25749e238c8ceeb4399b6d1eb8421b9fb1363972a497757ef84689bb987840619cbb4333ae95fd2397eea07eebed112c1
DIST cmake-3.30.0.tar.gz 11500060 BLAKE2B 62b3f3d5ed92f7f118991f36ba7098ff20c202dd924ecd1e7af3fedc54345c5db26ce6fa782fe1acb490857b478067c17383f0453dece579482c2e962bd9de12 SHA512 1dd872a3f93cfadb7ac0f93177e7d4d7ded67cf09c71b1b776dc3bc8b7d4e44dd81533a8a4bf2c9eaaed56443060aa27a11250a5e47de316c89db7e146929782
DIST cmake-3.30.1-SHA-256.txt 1646 BLAKE2B 39c8a32acb873f3b2b35af543006ef4ebc976f1939f4a857e55048654c60c23ee79cde0f1c625a7388f612d5ad594fa4ddfc89e4bb6e13764ffc78ce2e70f0e4 SHA512 bf3ba7218d504c75474b048b7c8b5db3928994fa269ea3762e68a751905403f87946c3dfdfbf63836d87f5180c905ed57b0d287bec97b04ee0e81f1f420a8c5f
DIST cmake-3.30.1-SHA-256.txt.asc 833 BLAKE2B 5232626cc85bbcf0f44a9df4904ede8935c4d028b9604c9749a04b6eb2d51f648c817412b7870ae7f3e635dd88a44143568985d4ed2322d5239c5935e073a92b SHA512 b2a7b344a2d6350e55721860e7579a70c767b94b04a88b73a9fb1e9830658689561f9467d09eed87b2dce00106917543cf69ede5c7ed66a529359a1f6427dbc5
DIST cmake-3.30.1.tar.gz 11500521 BLAKE2B 0e604ecc6b7da1c1c1baa81488a033aef6fa39cbddaaf43364193dda3e30d02a072f58a75573723e71653a2d1b34d09a7e1d0cc98280d76801d262bf54ffe77d SHA512 e3b38d309554a4239b8048434d770d3ac4533280a82c1bec65c37c9b0996cdf1753185e38deb4fb5da890ddc3d39c1d5c075e2ab0f7e0c52d61f5d556851fd20

@ -0,0 +1,284 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
# Set to 1 if prebuilt, 0 if not
# (the construct below is to allow overriding from env for script)
: ${CMAKE_DOCS_PREBUILT:=1}
CMAKE_DOCS_PREBUILT_DEV=sam
CMAKE_DOCS_VERSION=3.28.0
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# See bug #784815
CMAKE_DOCS_USEFLAG="+doc"
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
# ... but seems fine as of 3.22.3?
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
CMAKE_MAKEFILE_GENERATOR="emake"
CMAKE_REMOVE_MODULES_LIST=( none )
inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
toolchain-funcs xdg-utils
MY_P="${P/_/-}"
DESCRIPTION="Cross platform Make"
HOMEPAGE="https://cmake.org/"
if [[ ${PV} == 9999 ]] ; then
CMAKE_DOCS_PREBUILT=0
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
inherit git-r3
else
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
fi
if [[ ${PV} != *_rc* ]] ; then
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
inherit verify-sig
SRC_URI+=" verify-sig? (
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
fi
fi
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
S="${WORKDIR}/${MY_P}"
LICENSE="BSD"
SLOT="0"
IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-arch/libarchive-3.3.3:=
app-crypt/rhash:0=
>=dev-libs/expat-2.0.1
>=dev-libs/jsoncpp-1.9.2-r2:0=
>=dev-libs/libuv-1.10.0:=
>=net-misc/curl-7.21.5[ssl]
sys-libs/zlib
virtual/pkgconfig
dap? ( dev-cpp/cppdap )
gui? (
!qt6? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
qt6? ( dev-qt/qtbase:6[gui,widgets] )
)
ncurses? ( sys-libs/ncurses:= )
"
DEPEND="${RDEPEND}"
BDEPEND+="
doc? (
dev-python/requests
dev-python/sphinx
)
test? ( app-arch/libarchive[zstd] )
"
SITEFILE="50${PN}-gentoo.el"
PATCHES=(
# Prefix
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
# Misc
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0006-Filter-out-distcc-warnings-to-avoid-confusing-CMake.patch
# Upstream fixes (can usually be removed with a version bump)
)
cmake_src_bootstrap() {
# disable running of cmake in bootstrap command
sed -i \
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
bootstrap || die "sed failed"
# execinfo.h on Solaris isn't quite what it is on Darwin
if [[ ${CHOST} == *-solaris* ]] ; then
sed -i -e 's/execinfo\.h/blablabla.h/' \
Source/kwsys/CMakeLists.txt || die
fi
# bootstrap script isn't exactly /bin/sh compatible
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
--prefix="${T}/cmakestrap/" \
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|| die "Bootstrap failed"
}
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
default
else
cd "${DISTDIR}" || die
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
cd "${WORKDIR}" || die
default
fi
}
src_prepare() {
cmake_src_prepare
if [[ ${CHOST} == *-darwin* ]] ; then
# Disable Xcode hooks, bug #652134
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
Source/CMakeLists.txt || die
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
-e '/cmGlobalXCodeGenerator.h/d' \
Source/cmake.cxx || die
# Disable isysroot usage with GCC, we've properly instructed
# where things are via GCC configuration and ldwrapper
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
Modules/Platform/Apple-GNU-*.cmake || die
# Disable isysroot usage with clang as well
sed -i -e '/_SYSROOT_FLAG/d' \
Modules/Platform/Apple-Clang.cmake || die
# Don't set a POSIX standard, system headers don't like that, #757426
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
Source/cmLoadCommandCommand.cxx \
Source/cmStandardLexer.h \
Source/cmSystemTools.cxx \
Source/cmTimestamp.cxx
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
Source/cmStandardLexer.h
fi
# Add gcc libs to the default link paths
sed -i \
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
## handle them as part of bootstrapping, sadly.
# Fix linking on Solaris
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
# ODR warnings, bug #858335
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
filter-lto
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
cmake_src_bootstrap
fi
}
src_configure() {
local mycmakeargs=(
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
-DCMake_ENABLE_DEBUGGER=$(usex dap)
-DCMAKE_DOC_DIR=/share/doc/${PF}
-DCMAKE_MAN_DIR=/share/man
-DCMAKE_DATA_DIR=/share/${PN}
-DSPHINX_MAN=$(usex doc)
-DSPHINX_HTML=$(usex doc)
-DBUILD_CursesDialog="$(usex ncurses)"
-DBUILD_TESTING=$(usex test)
-DBUILD_QtDialog=$(usex gui)
)
use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) )
cmake_src_configure
}
src_test() {
# Fix OutDir and SelectLibraryConfigurations tests
# these are altered thanks to our eclass
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|| die
unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
pushd "${BUILD_DIR}" > /dev/null || die
# Excluded tests:
# BootstrapTest: we actualy bootstrap it every time so why test it.
# BundleUtilities: bundle creation broken
# CMakeOnly.AllFindModules: pthread issues
# CTest.updatecvs: which fails to commit as root
# Fortran: requires fortran
# RunCMake.CompilerLauncher: also requires fortran
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
# debugedit binary is not in the expected location
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
# it can't find a deb package that owns libc
# TestUpload, which requires network access
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
local myctestargs=(
--output-on-failure
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
)
local -x QT_QPA_PLATFORM=offscreen
cmake_src_test
}
src_install() {
cmake_src_install
# If USE=doc, there'll be newly generated docs which we install instead.
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
fi
insinto /usr/share/vim/vimfiles/syntax
doins Auxiliary/vim/syntax/cmake.vim
insinto /usr/share/vim/vimfiles/indent
doins Auxiliary/vim/indent/cmake.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/${PN}.vim"
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
}
pkg_postinst() {
if use gui; then
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
fi
}
pkg_postrm() {
if use gui; then
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
fi
}

@ -152,6 +152,14 @@ src_prepare() {
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
-e '/cmGlobalXCodeGenerator.h/d' \
Source/cmake.cxx || die
# Disable system integration, bug #933744
sed -i -e 's/__APPLE__/__DISABLED__/' \
Source/cmFindProgramCommand.cxx \
Source/CPack/cmCPackGeneratorFactory.cxx || die
sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
Source/cmMachO.cxx || die
sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
Source/CMakeLists.txt || die
# Disable isysroot usage with GCC, we've properly instructed
# where things are via GCC configuration and ldwrapper

@ -0,0 +1,291 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-cmake-docs
# Set to 1 if prebuilt, 0 if not
# (the construct below is to allow overriding from env for script)
: ${CMAKE_DOCS_PREBUILT:=1}
CMAKE_DOCS_PREBUILT_DEV=sam
CMAKE_DOCS_VERSION=$(ver_cut 1-2).0
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# See bug #784815
CMAKE_DOCS_USEFLAG="+doc"
# TODO RunCMake.LinkWhatYouUse fails consistently w/ ninja
# ... but seems fine as of 3.22.3?
# TODO ... but bootstrap sometimes(?) fails with ninja now. bug #834759.
CMAKE_MAKEFILE_GENERATOR="emake"
CMAKE_REMOVE_MODULES_LIST=( none )
inherit bash-completion-r1 cmake flag-o-matic multiprocessing \
toolchain-funcs xdg-utils
MY_P="${P/_/-}"
DESCRIPTION="Cross platform Make"
HOMEPAGE="https://cmake.org/"
if [[ ${PV} == 9999 ]] ; then
CMAKE_DOCS_PREBUILT=0
EGIT_REPO_URI="https://gitlab.kitware.com/cmake/cmake.git"
inherit git-r3
else
SRC_URI="https://cmake.org/files/v$(ver_cut 1-2)/${MY_P}.tar.gz"
if [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${CMAKE_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${CMAKE_DOCS_VERSION}-docs.tar.xz )"
fi
if [[ ${PV} != *_rc* ]] ; then
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/bradking.asc
inherit verify-sig
SRC_URI+=" verify-sig? (
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt
https://github.com/Kitware/CMake/releases/download/v$(ver_cut 1-3)/${MY_P}-SHA-256.txt.asc
)"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-bradking-20230817 )"
fi
fi
[[ ${CMAKE_DOCS_PREBUILT} == 1 ]] && CMAKE_DOCS_USEFLAG="doc"
S="${WORKDIR}/${MY_P}"
LICENSE="BSD"
SLOT="0"
IUSE="${CMAKE_DOCS_USEFLAG} dap gui ncurses qt6 test"
RESTRICT="!test? ( test )"
RDEPEND="
>=app-arch/libarchive-3.3.3:=
app-crypt/rhash:0=
>=dev-libs/expat-2.0.1
>=dev-libs/jsoncpp-1.9.2-r2:0=
>=dev-libs/libuv-1.10.0:=
>=net-misc/curl-7.21.5[ssl]
sys-libs/zlib
virtual/pkgconfig
dap? ( dev-cpp/cppdap )
gui? (
!qt6? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtwidgets:5
)
qt6? ( dev-qt/qtbase:6[gui,widgets] )
)
ncurses? ( sys-libs/ncurses:= )
"
DEPEND="${RDEPEND}"
BDEPEND+="
doc? (
dev-python/requests
dev-python/sphinx
)
test? ( app-arch/libarchive[zstd] )
"
SITEFILE="50${PN}-gentoo.el"
PATCHES=(
# Prefix
"${FILESDIR}"/${PN}-3.27.0_rc1-0001-Don-t-use-.so-for-modules-on-darwin-macos.-Use-.bund.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0002-Set-some-proper-paths-to-make-cmake-find-our-tools.patch
# Misc
"${FILESDIR}"/${PN}-3.27.0_rc1-0003-Prefer-pkgconfig-in-FindBLAS.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0004-Ensure-that-the-correct-version-of-Qt-is-always-used.patch
"${FILESDIR}"/${PN}-3.27.0_rc1-0005-Respect-Gentoo-s-Python-eclasses.patch
# Upstream fixes (can usually be removed with a version bump)
)
cmake_src_bootstrap() {
# disable running of cmake in bootstrap command
sed -i \
-e '/"${cmake_bootstrap_dir}\/cmake"/s/^/#DONOTRUN /' \
bootstrap || die "sed failed"
# execinfo.h on Solaris isn't quite what it is on Darwin
if [[ ${CHOST} == *-solaris* ]] ; then
sed -i -e 's/execinfo\.h/blablabla.h/' \
Source/kwsys/CMakeLists.txt || die
fi
# bootstrap script isn't exactly /bin/sh compatible
tc-env_build ${CONFIG_SHELL:-sh} ./bootstrap \
--prefix="${T}/cmakestrap/" \
--parallel=$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)") \
|| die "Bootstrap failed"
}
src_unpack() {
if [[ ${PV} == 9999 ]] ; then
git-r3_src_unpack
elif [[ ${PV} == *_rc* ]] || ! use verify-sig ; then
default
else
cd "${DISTDIR}" || die
# See https://mgorny.pl/articles/verify-sig-by-example.html#verifying-using-a-checksum-file-with-a-detached-signature
verify-sig_verify_detached ${MY_P}-SHA-256.txt{,.asc}
verify-sig_verify_unsigned_checksums ${MY_P}-SHA-256.txt sha256 ${MY_P}.tar.gz
cd "${WORKDIR}" || die
default
fi
}
src_prepare() {
cmake_src_prepare
if [[ ${CHOST} == *-darwin* ]] ; then
# Disable Xcode hooks, bug #652134
sed -i -e 's/cm\(\|Global\|Local\)XCode[^.]\+\.\(cxx\|h\)//' \
Source/CMakeLists.txt || die
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
-e '/cmGlobalXCodeGenerator.h/d' \
Source/cmake.cxx || die
# Disable system integration, bug #933744
sed -i -e 's/__APPLE__/__DISABLED__/' \
Source/cmFindProgramCommand.cxx \
Source/CPack/cmCPackGeneratorFactory.cxx || die
sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
Source/cmMachO.cxx || die
sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
Source/CMakeLists.txt || die
# Disable isysroot usage with GCC, we've properly instructed
# where things are via GCC configuration and ldwrapper
sed -i -e '/cmake_gnu_set_sysroot_flag/d' \
Modules/Platform/Apple-GNU-*.cmake || die
# Disable isysroot usage with clang as well
sed -i -e '/_SYSROOT_FLAG/d' \
Modules/Platform/Apple-Clang.cmake || die
# Don't set a POSIX standard, system headers don't like that, #757426
sed -i -e 's/^#if !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
Source/cmLoadCommandCommand.cxx \
Source/cmStandardLexer.h \
Source/cmSystemTools.cxx \
Source/cmTimestamp.cxx
sed -i -e 's/^#if !defined(_POSIX_C_SOURCE) && !defined(_WIN32) && !defined(__sun)/& \&\& !defined(__APPLE__)/' \
Source/cmStandardLexer.h
fi
# Add gcc libs to the default link paths
sed -i \
-e "s|@GENTOO_PORTAGE_GCCLIBDIR@|${EPREFIX}/usr/${CHOST}/lib/|g" \
-e "$(usex prefix-guest "s|@GENTOO_HOST@||" "/@GENTOO_HOST@/d")" \
-e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}/|g" \
Modules/Platform/{UnixPaths,Darwin}.cmake || die "sed failed"
## in theory we could handle these flags in src_configure, as we do in many other packages. But we *must*
## handle them as part of bootstrapping, sadly.
# Fix linking on Solaris
[[ ${CHOST} == *-solaris* ]] && append-ldflags -lsocket -lnsl
# ODR warnings, bug #858335
# https://gitlab.kitware.com/cmake/cmake/-/issues/20740
filter-lto
if ! has_version -b \>=${CATEGORY}/${PN}-3.13 || ! cmake --version &>/dev/null ; then
CMAKE_BINARY="${S}/Bootstrap.cmk/cmake"
cmake_src_bootstrap
fi
}
src_configure() {
local mycmakeargs=(
-DCMAKE_USE_SYSTEM_LIBRARIES=ON
-DCMake_ENABLE_DEBUGGER=$(usex dap)
-DCMAKE_DOC_DIR=/share/doc/${PF}
-DCMAKE_MAN_DIR=/share/man
-DCMAKE_DATA_DIR=/share/${PN}
-DSPHINX_MAN=$(usex doc)
-DSPHINX_HTML=$(usex doc)
-DBUILD_CursesDialog="$(usex ncurses)"
-DBUILD_TESTING=$(usex test)
-DBUILD_QtDialog=$(usex gui)
)
use gui && mycmakeargs+=( -DCMake_QT_MAJOR_VERSION=$(usex qt6 6 5) )
cmake_src_configure
}
src_test() {
# Fix OutDir and SelectLibraryConfigurations tests
# these are altered thanks to our eclass
sed -i -e 's:^#_cmake_modify_IGNORE ::g' \
"${S}"/Tests/{OutDir,CMakeOnly/SelectLibraryConfigurations}/CMakeLists.txt \
|| die
unset CLICOLOR CLICOLOR_FORCE CMAKE_COMPILER_COLOR_DIAGNOSTICS CMAKE_COLOR_DIAGNOSTICS
pushd "${BUILD_DIR}" > /dev/null || die
# Excluded tests:
# BootstrapTest: we actualy bootstrap it every time so why test it.
# BundleUtilities: bundle creation broken
# CMakeOnly.AllFindModules: pthread issues
# CTest.updatecvs: which fails to commit as root
# Fortran: requires fortran
# RunCMake.CompilerLauncher: also requires fortran
# RunCMake.CPack_RPM: breaks if app-arch/rpm is installed because
# debugedit binary is not in the expected location
# RunCMake.CPack_DEB: breaks if app-arch/dpkg is installed because
# it can't find a deb package that owns libc
# TestUpload, which requires network access
# RunCMake.CMP0125, known failure reported upstream (bug #829414)
local myctestargs=(
--output-on-failure
-E "(BootstrapTest|BundleUtilities|CMakeOnly.AllFindModules|CompileOptions|CTest.UpdateCVS|Fortran|RunCMake.CompilerLauncher|RunCMake.CPack_(DEB|RPM)|TestUpload|RunCMake.CMP0125)" \
)
local -x QT_QPA_PLATFORM=offscreen
cmake_src_test
}
src_install() {
cmake_src_install
# If USE=doc, there'll be newly generated docs which we install instead.
if ! use doc && [[ ${CMAKE_DOCS_PREBUILT} == 1 ]] ; then
doman "${WORKDIR}"/${PN}-${CMAKE_DOCS_VERSION}-docs/man*/*.[0-8]
fi
insinto /usr/share/vim/vimfiles/syntax
doins Auxiliary/vim/syntax/cmake.vim
insinto /usr/share/vim/vimfiles/indent
doins Auxiliary/vim/indent/cmake.vim
insinto /usr/share/vim/vimfiles/ftdetect
doins "${FILESDIR}/${PN}.vim"
dobashcomp Auxiliary/bash-completion/{${PN},ctest,cpack}
}
pkg_postinst() {
if use gui; then
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
fi
}
pkg_postrm() {
if use gui; then
xdg_icon_cache_update
xdg_desktop_database_update
xdg_mimeinfo_database_update
fi
}

@ -153,6 +153,14 @@ src_prepare() {
sed -i -e '/define CMAKE_USE_XCODE/s/XCODE/NO_XCODE/' \
-e '/cmGlobalXCodeGenerator.h/d' \
Source/cmake.cxx || die
# Disable system integration, bug #933744
sed -i -e 's/__APPLE__/__DISABLED__/' \
Source/cmFindProgramCommand.cxx \
Source/CPack/cmCPackGeneratorFactory.cxx || die
sed -i -e 's/__MAC_OS_X_VERSION_MIN_REQUIRED/__DISABLED__/' \
Source/cmMachO.cxx || die
sed -i -e 's:CPack/cmCPack\(Bundle\|DragNDrop\|PKG\|ProductBuild\)Generator.cxx::' \
Source/CMakeLists.txt || die
# Disable isysroot usage with GCC, we've properly instructed
# where things are via GCC configuration and ldwrapper

@ -6,10 +6,22 @@ import itertools
import shlex
import sys
def quote(s):
""" Surround a value with quotes, escape embedded quotes.
>>> quote("foo'bar")
"'foo\\\\'bar'"
"""
return "'" + s.replace("\\", "\\\\").replace("'", "\\'") + "'"
def main(args):
def format_array(args):
""" Format shell-compatible expressions as a meson array.
>>> format_array(['-O2 -pipe -DFOO="bar baz"'])
"['-O2', '-pipe', '-DFOO=bar baz']"
"""
# Split each argument according to shell rules
args = (shlex.split(x) for x in args)
@ -20,7 +32,12 @@ def main(args):
args = (quote(x) for x in args)
# Format the result
print("[" + ", ".join(args) + "]")
return "[" + ", ".join(args) + "]"
def main(args):
print(format_array(args))
if __name__ == "__main__":
main(sys.argv[1:])

@ -4,10 +4,11 @@
EAPI=8
PYTHON_COMPAT=( python3_{10..13} )
inherit python-r1
inherit edo python-r1
DESCRIPTION="Format shell expressions into a meson array"
HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
S="${WORKDIR}"
LICENSE="GPL-2"
SLOT="0"
@ -15,8 +16,14 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RDEPEND="${PYTHON_DEPS}"
S="${WORKDIR}"
src_test() {
run_doctest() {
edo ${EPYTHON} -B -m doctest "${FILESDIR}/meson-format-array.py"
}
python_foreach_impl run_doctest
}
src_install() {
python_foreach_impl python_doscript "${FILESDIR}"/meson-format-array
python_foreach_impl python_newscript "${FILESDIR}"/meson-format-array.py meson-format-array
}

Binary file not shown.

@ -0,0 +1,458 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
FORTRAN_NEEDED="test"
inherit cmake cuda fortran-2 llvm toolchain-funcs
DESCRIPTION="C++ template library for linear algebra"
HOMEPAGE="https://eigen.tuxfamily.org/index.php?title=Main_Page"
if [[ ${PV} = *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/lib${PN}/${PN}.git"
if [[ ${PV} = 3.4.9999* ]] ; then
EGIT_COMMIT="3.4"
fi
else
SRC_URI="
https://gitlab.com/lib${PN}/${PN}/-/archive/${PV}/${P}.tar.bz2
test? ( lapack? ( https://downloads.tuxfamily.org/${PN}/lapack_addons_3.4.1.tgz -> ${PN}-lapack_addons-3.4.1.tgz ) )
"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
fi
LICENSE="MPL-2.0"
SLOT="3"
# The following lines are shamelessly stolen from ffmpeg-9999.ebuild with modifications
ARM_CPU_FEATURES=(
neon:NEON
)
PPC_CPU_FEATURES=(
altivec:ALTIVEC
vsx:VSX
)
X86_CPU_FEATURES=(
avx:AVX
avx2:AVX2
avx512f:AVX512
avx512dq:AVX512DQ
f16c:FP16C
fma3:FMA
popcnt:POPCNT
sse:SSE
sse2:SSE2
sse3:SSE3
ssse3:SSSE3
sse4_1:SSE4_1
sse4_2:SSE4_2
)
# MIPS_CPU_FEATURES=(
# msa:MSA
# )
# S390_CPU_FEATURES=(
# z13:Z13
# z14:Z14
# )
CPU_FEATURES_MAP=(
"${ARM_CPU_FEATURES[@]/#/cpu_flags_arm_}"
"${PPC_CPU_FEATURES[@]/#/cpu_flags_ppc_}"
"${X86_CPU_FEATURES[@]/#/cpu_flags_x86_}"
# "${MIPS_CPU_FEATURES[@]/#/cpu_flags_mips_}"
# "${S390_CPU_FEATURES[@]/#/cpu_flags_s390_}"
)
IUSE_TEST_BACKENDS=(
"adolc"
"boost"
"cholmod"
"fftw"
"klu"
"opengl"
"openmp"
"pastix"
"sparsehash"
"spqr"
"superlu"
"umfpack"
)
IUSE="${CPU_FEATURES_MAP[*]%:*} clang cuda hip debug doc lapack mathjax test ${IUSE_TEST_BACKENDS[*]}" #zvector
# Tests failing again because of compiler issues
RESTRICT="!test? ( test )"
BDEPEND="
doc? (
app-text/doxygen[dot]
dev-texlive/texlive-bibtexextra
dev-texlive/texlive-fontsextra
dev-texlive/texlive-fontutils
dev-texlive/texlive-latex
dev-texlive/texlive-latexextra
mathjax? ( dev-libs/mathjax )
)
test? ( virtual/pkgconfig )
"
# METIS
# MPREAL
# dev-libs/mpfr:0
# dev-libs/gmp:0
TEST_BACKENDS="
boost? ( dev-libs/boost )
adolc? ( sci-libs/adolc[sparse] )
cholmod? ( sci-libs/cholmod:= )
fftw? ( sci-libs/fftw )
spqr? ( sci-libs/spqr )
klu? ( sci-libs/klu )
opengl? (
media-libs/freeglut
media-libs/glew
media-libs/libglvnd
)
pastix? ( sci-libs/pastix[-mpi] )
sparsehash? (
amd64? ( dev-cpp/sparsehash )
arm64? ( dev-cpp/sparsehash )
ppc64? ( dev-cpp/sparsehash )
x86? ( dev-cpp/sparsehash )
)
superlu? ( sci-libs/superlu )
umfpack? ( sci-libs/umfpack )
"
DEPEND="
test? (
cuda? (
!clang? (
dev-util/nvidia-cuda-toolkit
)
clang? (
sys-devel/clang[llvm_targets_NVPTX]
openmp? ( sys-libs/libomp[llvm_targets_NVPTX,offload] )
)
)
hip? ( dev-util/hip )
lapack? ( virtual/lapacke )
${TEST_BACKENDS}
)
"
REQUIRED_USE="
test? ( !lapack )
|| ( ${IUSE_TEST_BACKENDS[*]} )
"
PATCHES=(
"${FILESDIR}/${PN}-3.3.9-max-macro.patch"
"${FILESDIR}/${PN}-3.4.0-doc-nocompress.patch" # bug 830064
"${FILESDIR}/${PN}-3.4.0-buildstring.patch"
"${FILESDIR}/${PN}-3.4.0-noansi.patch"
"${FILESDIR}/${PN}-3.4.0-cxxstandard.patch"
"${FILESDIR}/${PN}-3.4.0-ppc-no-vsx.patch" # bug 936107
)
# TODO should be in cuda.eclass
cuda_set_CUDAHOSTCXX() {
local compiler
tc-is-gcc && compiler="gcc"
tc-is-clang && compiler="clang"
[[ -z "$compiler" ]] && die "no compiler specified"
local package="sys-devel/${compiler}"
local version="${package}"
local CUDAHOSTCXX_test
while
CUDAHOSTCXX="${CUDAHOSTCXX_test}"
version=$(best_version "${version}")
if [[ -z "${version}" ]]; then
if [[ -z "${CUDAHOSTCXX}" ]]; then
die "could not find supported version of ${package}"
fi
break
fi
CUDAHOSTCXX_test="$(
dirname "$(
realpath "$(
which "${compiler}-$(echo "${version}" | grep -oP "(?<=${package}-)[0-9]*")"
)"
)"
)"
version="<${version}"
do ! echo "int main(){}" | nvcc "-ccbin ${CUDAHOSTCXX_test}" - -x cu &>/dev/null; done
export CUDAHOSTCXX
}
pkg_setup() {
use test && use cuda && use clang && llvm_pkg_setup
}
src_unpack() {
if [[ ${PV} = *9999* ]] ; then
git-r3_src_unpack
else
unpack "${P}.tar.bz2"
if use test && use lapack; then
cd "${S}/lapack" || die
unpack "${PN}-lapack_addons-3.4.1.tgz"
fi
fi
}
src_prepare() {
cmake_src_prepare
sed \
-e "/add_subdirectory(bench\/spbench/s/^/#DONOTCOMPILE /g" \
-e "/add_subdirectory(demos/s/^/#DONOTCOMPILE /g" \
-i CMakeLists.txt || die
if ! use test; then
sed \
-e "/add_subdirectory(test/s/^/#DONOTCOMPILE /g" \
-e "/add_subdirectory(scripts/s/^/#DONOTCOMPILE /g" \
-e "/add_subdirectory(failtest/s/^/#DONOTCOMPILE /g" \
-e "/add_subdirectory(blas/s/^/#DONOTCOMPILE /g" \
-e "/add_subdirectory(lapack/s/^/#DONOTCOMPILE /g" \
-i CMakeLists.txt || die
fi
}
src_configure() {
local mycmakeargs=(
-DBUILD_SHARED_LIBS="yes"
-DBUILD_TESTING="$(usex test)"
-DEIGEN_BUILD_DOC="$(usex doc)" # Enable creation of Eigen documentation
-DEIGEN_BUILD_PKGCONFIG="yes" # Build pkg-config .pc file for Eigen
)
if use doc || use test; then
mycmakeargs+=(
# needs Qt4
-DEIGEN_TEST_NOQT="yes" # Disable Qt support in unit tests
)
fi
if use doc; then
mycmakeargs+=(
-DEIGEN_DOC_USE_MATHJAX="$(usex mathjax)" # Use MathJax for rendering math in HTML docs
-DEIGEN_INTERNAL_DOCUMENTATION=no # Build internal documentation
)
fi
if use test; then
mycmakeargs+=(
# the OpenGL testsuite is extremely brittle, bug #712808
-DOpenGL_GL_PREFERENCE="GLVND"
-DEIGEN_TEST_OPENGL="$(usex opengl)" # Enable OpenGL support in unit tests
-DEIGEN_TEST_OPENMP="$(usex openmp)" # Enable/Disable OpenMP in tests/examples
-DCMAKE_DISABLE_FIND_PACKAGE_MPREAL=ON
-DEIGEN_TEST_CXX11=yes
# -DEIGEN_TEST_CUSTOM_CXX_FLAGS= # Additional compiler flags when compiling unit tests.
# -DEIGEN_TEST_CUSTOM_LINKER_FLAGS= # Additional linker flags when linking unit tests.
# -DEIGEN_TEST_BUILD_FLAGS= # Options passed to the build command of unit tests
# -DEIGEN_BUILD_BTL=yes # Build benchmark suite
-DEIGEN_TEST_BUILD_DOCUMENTATION="$(usex doc)" # Test building the doxygen documentation
# -DEIGEN_COVERAGE_TESTING=no # Enable/disable gcov
# -DEIGEN_CTEST_ERROR_EXCEPTION= # Regular expression for build error messages to be filtered out
# -DEIGEN_DEBUG_ASSERTS=no # Enable advanced debugging of assertions
# -DEIGEN_NO_ASSERTION_CHECKING=no # Disable checking of assertions using exceptions
# -DEIGEN_TEST_NO_EXCEPTIONS=no # Disables C++ exceptions
# -DEIGEN_TEST_NO_EXPLICIT_ALIGNMENT=no # Disable explicit alignment (hence vectorization) in tests/examples
# -DEIGEN_TEST_NO_EXPLICIT_VECTORIZATION=no # Disable explicit vectorization in tests/examples
# -DEIGEN_DASHBOARD_BUILD_TARGET=buildtests # Target to be built in dashboard mode, default is buildtests
# -DEIGEN_DEFAULT_TO_ROW_MAJOR=no # Use row-major as default matrix storage order
# -DEIGEN_TEST_MATRIX_DIR=yes # Enable testing of realword sparse matrices contained in the specified path
# -DEIGEN_TEST_MAX_SIZE=320 # Maximal matrix/vector size, default is 320
# -DEIGEN_SPLIT_LARGE_TESTS=no # Split large tests into smaller executables
)
use !adolc && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Adolc="TRUE" )
use !boost && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_Boost="TRUE" )
use !cholmod && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_CHOLMOD="TRUE" )
use !fftw && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_FFTW="TRUE" )
use !sparsehash && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_GoogleHash="TRUE" )
use !klu && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_KLU="TRUE" )
use !opengl && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_OpenGL="TRUE" )
use !openmp && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_OpenMP="TRUE" )
use !pastix && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_PASTIX="TRUE" )
use !spqr && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_SPQR="TRUE" )
use !superlu && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU="TRUE" )
use !umfpack && mycmakeargs+=( -DCMAKE_DISABLE_FIND_PACKAGE_UMFPACK="TRUE" )
if use lapack; then
mycmakeargs+=(
-DEIGEN_ENABLE_LAPACK_TESTS=yes
-DEIGEN_TEST_EXTERNAL_BLAS=yes # Use external BLAS library for testsuite
-DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=ON
)
fi
if use arm; then
mycmakeargs+=(
-DEIGEN_TEST_NEON="$(usex cpu_flags_arm_neon)"
)
fi
if use arm64; then
mycmakeargs+=(
-DEIGEN_TEST_NEON64="$(usex cpu_flags_arm_neon)"
)
fi
if use ppc || use ppc64; then
mycmakeargs+=(
-DEIGEN_TEST_ALTIVEC="$(usex cpu_flags_ppc_altivec)"
-DEIGEN_TEST_VSX="$(usex cpu_flags_ppc_vsx)"
)
fi
if use amd64 || use x86; then
mycmakeargs+=(
# -DEIGEN_TEST_32BIT=no # Force generating 32bit code.
# -DEIGEN_TEST_X87=no # Force using X87 instructions. Implies no vectorization.
-DEIGEN_TEST_SSE2="$(usex cpu_flags_x86_sse2)"
-DEIGEN_TEST_SSE3="$(usex cpu_flags_x86_sse3)"
-DEIGEN_TEST_SSSE3="$(usex cpu_flags_x86_ssse3)"
-DEIGEN_TEST_FMA="$(usex cpu_flags_x86_fma3)"
-DEIGEN_TEST_SSE4_1="$(usex cpu_flags_x86_sse4_1)"
-DEIGEN_TEST_SSE4_2="$(usex cpu_flags_x86_sse4_2)"
-DEIGEN_TEST_AVX="$(usex cpu_flags_x86_avx)"
-DEIGEN_TEST_F16C="$(usex cpu_flags_x86_f16c)"
-DEIGEN_TEST_AVX2="$(usex cpu_flags_x86_avx2)"
-DEIGEN_TEST_AVX512="$(usex cpu_flags_x86_avx512f)"
-DEIGEN_TEST_AVX512DQ="$(usex cpu_flags_x86_avx512dq)"
)
fi
if use mips; then
mycmakeargs+=(
# -DEIGEN_TEST_MSA=no # Enable/Disable MSA in tests/examples
)
fi
if use s390; then
mycmakeargs+=(
# -DEIGEN_TEST_Z13=no # Enable/Disable S390X(zEC13) ZVECTOR in tests/examples
# -DEIGEN_TEST_Z14=no # Enable/Disable S390X(zEC14) ZVECTOR in tests/examples
)
fi
mycmakeargs+=(
-DEIGEN_TEST_CUDA="$(usex cuda)" # Enable CUDA support in unit tests
-DEIGEN_TEST_CUDA_CLANG="$(usex cuda "$(usex clang)")" # Use clang instead of nvcc to compile the CUDA tests
-DEIGEN_TEST_HIP="$(usex hip)" # Add HIP support.
# -DEIGEN_TEST_SYCL=no # Add Sycl support.
# -DEIGEN_SYCL_TRISYCL=no # Use the triSYCL Sycl implementation (ComputeCPP by default).
)
if use cuda; then
cuda_add_sandbox -w
if use clang; then
local llvm_prefix
llvm_prefix="$(get_llvm_prefix -b)"
export CC="${llvm_prefix}/bin/clang"
export CXX="${llvm_prefix}/bin/clang++"
export LIBRARY_PATH="${ESYSROOT}/usr/$(get_libdir)"
else
cuda_set_CUDAHOSTCXX
mycmakeargs+=(
-DCUDA_HOST_COMPILER="${CUDAHOSTCXX}"
)
fi
if [[ "${CUDA_VERBOSE}" == true ]]; then
mycmakeargs+=(
-DCUDA_VERBOSE_BUILD=yes
)
NVCCFLAGS+=" -v"
fi
export CUDAFLAGS="${NVCCFLAGS}"
[[ -z "${CUDAARCHS}" ]] && einfo "trying to determine host CUDAARCHS"
: "${CUDAARCHS:=$(__nvcc_device_query)}"
export CUDAARCHS
mycmakeargs+=(
-DEIGEN_CUDA_COMPUTE_ARCH="${CUDAARCHS}"
)
fi
fi
cmake_src_configure
}
src_compile() {
local targets=()
if use doc; then
targets+=( doc )
HTML_DOCS=( "${BUILD_DIR}"/doc/html/. )
fi
if use test; then
targets+=( buildtests )
if ! use lapack; then
targets+=( blas )
fi
# tests generate random data, which
# obviously fails for some seeds
export EIGEN_SEED=712808
fi
if use doc || use test; then
cmake_src_compile "${targets[@]}"
fi
}
src_test() {
CMAKE_SKIP_TESTS=(
product_small_32 # 143 (Subprocess aborted)
product_small_33 # 144 (Subprocess aborted)
eigensolver_selfadjoint_13 # 452 (Subprocess aborted)
cholmod_support_21 # 726 (Subprocess aborted)
cholmod_support_22 # 727 (Subprocess aborted)
NonLinearOptimization # 930 (Subprocess aborted)
openglsupport # 990 (Failed)
levenberg_marquardt # 1020 (Subprocess aborted)
)
if use cuda ; then
cuda_add_sandbox -w
CMAKE_SKIP_TESTS+=(
cxx11_tensor_cast_float16_gpu
cxx11_tensor_gpu_5
)
fi
if use lapack ; then
CMAKE_SKIP_TESTS+=(
"^LAPACK-.*$"
)
fi
local myctestargs=(
-j1 # otherwise breaks due to cmake reruns
)
cmake_src_test
}

@ -0,0 +1,195 @@
https://gitlab.com/libeigen/eigen/-/merge_requests/1028
https://bugs.gentoo.org/936107
--- a/Eigen/Core
+++ b/Eigen/Core
@@ -346,7 +346,7 @@
#include "src/Core/CoreIterators.h"
#include "src/Core/ConditionEstimator.h"
-#if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
+#if defined(EIGEN_VECTORIZE_VSX)
#include "src/Core/arch/AltiVec/MatrixProduct.h"
#elif defined EIGEN_VECTORIZE_NEON
#include "src/Core/arch/NEON/GeneralBlockPanelKernel.h"
--- a/Eigen/src/Core/arch/AltiVec/Complex.h
+++ b/Eigen/src/Core/arch/AltiVec/Complex.h
@@ -100,6 +100,7 @@
HasAbs2 = 0,
HasMin = 0,
HasMax = 0,
+ HasSqrt = 1,
#ifdef __VSX__
HasBlend = 1,
#endif
@@ -320,6 +321,7 @@
HasAbs2 = 0,
HasMin = 0,
HasMax = 0,
+ HasSqrt = 1,
HasSetLinear = 0
};
};
--- a/Eigen/src/Core/arch/AltiVec/MathFunctions.h
+++ b/Eigen/src/Core/arch/AltiVec/MathFunctions.h
@@ -40,16 +40,14 @@
return pcos_float(_x);
}
+#ifdef __VSX__
#ifndef EIGEN_COMP_CLANG
template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
Packet4f prsqrt<Packet4f>(const Packet4f& x)
{
return vec_rsqrt(x);
}
-#endif
-#ifdef __VSX__
-#ifndef EIGEN_COMP_CLANG
template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS EIGEN_UNUSED
Packet2d prsqrt<Packet2d>(const Packet2d& x)
{
@@ -74,6 +72,26 @@
{
return pexp_double(_x);
}
+
+template<> EIGEN_STRONG_INLINE Packet8bf psqrt<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(psqrt<Packet4f>, a);
+}
+
+#ifndef EIGEN_COMP_CLANG
+template<> EIGEN_STRONG_INLINE Packet8bf prsqrt<Packet8bf> (const Packet8bf& a){
+ BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt<Packet4f>, a);
+}
+#endif
+#else
+template<> EIGEN_DEFINE_FUNCTION_ALLOWING_MULTIPLE_DEFINITIONS
+Packet4f psqrt<Packet4f>(const Packet4f& x)
+{
+ Packet4f a;
+ for (Index i = 0; i < packet_traits<float>::size; i++) {
+ a[i] = numext::sqrt(x[i]);
+ }
+ return a;
+}
#endif
// Hyperbolic Tangent function.
--- a/Eigen/src/Core/arch/AltiVec/PacketMath.h
+++ b/Eigen/src/Core/arch/AltiVec/PacketMath.h
@@ -175,16 +175,19 @@
#else
HasRsqrt = 0,
#endif
+ HasTanh = EIGEN_FAST_MATH,
+ HasErf = EIGEN_FAST_MATH,
+ HasRint = 1,
#else
HasSqrt = 0,
HasRsqrt = 0,
- HasTanh = EIGEN_FAST_MATH,
- HasErf = EIGEN_FAST_MATH,
+ HasTanh = 0,
+ HasErf = 0,
+ HasRint = 0,
#endif
HasRound = 1,
HasFloor = 1,
HasCeil = 1,
- HasRint = 1,
HasNegate = 1,
HasBlend = 1
};
@@ -217,16 +220,17 @@
#else
HasRsqrt = 0,
#endif
+ HasRint = 1,
#else
HasSqrt = 0,
HasRsqrt = 0,
- HasTanh = EIGEN_FAST_MATH,
- HasErf = EIGEN_FAST_MATH,
+ HasRint = 0,
#endif
+ HasTanh = 0,
+ HasErf = 0,
HasRound = 1,
HasFloor = 1,
HasCeil = 1,
- HasRint = 1,
HasNegate = 1,
HasBlend = 1
};
@@ -872,19 +876,29 @@
return vec_nor(c,c);
}
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet4i pcmp_le(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet4i pcmp_lt(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet4i pcmp_eq(const Packet4i& a, const Packet4i& b) { return reinterpret_cast<Packet4i>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet8s pcmp_le(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet8s pcmp_lt(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet8s pcmp_eq(const Packet8s& a, const Packet8s& b) { return reinterpret_cast<Packet8s>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet8us pcmp_le(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet8us pcmp_lt(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet8us pcmp_eq(const Packet8us& a, const Packet8us& b) { return reinterpret_cast<Packet8us>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet16c pcmp_le(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet16c pcmp_lt(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet16c pcmp_eq(const Packet16c& a, const Packet16c& b) { return reinterpret_cast<Packet16c>(vec_cmpeq(a,b)); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet16uc pcmp_le(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmple(a,b)); }
+#endif
template<> EIGEN_STRONG_INLINE Packet16uc pcmp_lt(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmplt(a,b)); }
template<> EIGEN_STRONG_INLINE Packet16uc pcmp_eq(const Packet16uc& a, const Packet16uc& b) { return reinterpret_cast<Packet16uc>(vec_cmpeq(a,b)); }
@@ -937,6 +951,7 @@
}
template<> EIGEN_STRONG_INLINE Packet4f pceil<Packet4f>(const Packet4f& a) { return vec_ceil(a); }
template<> EIGEN_STRONG_INLINE Packet4f pfloor<Packet4f>(const Packet4f& a) { return vec_floor(a); }
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet4f print<Packet4f>(const Packet4f& a)
{
Packet4f res;
@@ -947,6 +962,7 @@
return res;
}
+#endif
template<typename Packet> EIGEN_STRONG_INLINE Packet ploadu_common(const __UNPACK_TYPE__(Packet)* from)
{
@@ -1341,12 +1357,6 @@
BF16_TO_F32_BINARY_OP_WRAPPER(psub<Packet4f>, a, b);
}
-template<> EIGEN_STRONG_INLINE Packet8bf psqrt<Packet8bf> (const Packet8bf& a){
- BF16_TO_F32_UNARY_OP_WRAPPER(vec_sqrt, a);
-}
-template<> EIGEN_STRONG_INLINE Packet8bf prsqrt<Packet8bf> (const Packet8bf& a){
- BF16_TO_F32_UNARY_OP_WRAPPER(prsqrt<Packet4f>, a);
-}
template<> EIGEN_STRONG_INLINE Packet8bf pexp<Packet8bf> (const Packet8bf& a){
BF16_TO_F32_UNARY_OP_WRAPPER(pexp_float, a);
}
@@ -1390,9 +1400,11 @@
template<> EIGEN_STRONG_INLINE Packet8bf pround<Packet8bf> (const Packet8bf& a){
BF16_TO_F32_UNARY_OP_WRAPPER(pround<Packet4f>, a);
}
+#ifdef __VSX__
template<> EIGEN_STRONG_INLINE Packet8bf print<Packet8bf> (const Packet8bf& a){
BF16_TO_F32_UNARY_OP_WRAPPER(print<Packet4f>, a);
}
+#endif
template<> EIGEN_STRONG_INLINE Packet8bf pmadd(const Packet8bf& a, const Packet8bf& b, const Packet8bf& c) {
Packet4f a_even = Bf16ToF32Even(a);
Packet4f a_odd = Bf16ToF32Odd(a);

Binary file not shown.

@ -1,4 +1,3 @@
DIST redis-6.2.14.tar.gz 2496149 BLAKE2B 689a0c3b558e07f43f8b1480fbf7a083184bbc0ccde0b184dc8a1d89ed22bec9694b7c8605ff729c9e9d582e8cf47c8f9cd9ee0794ea15e07cdb0b886e93c116 SHA512 140d4b23c20d459b65be8c61996e281222f978b51c52cb048039d741801e4027775ad89ed354dc0dce3d47703a08610adafaf6253fea2f973d5b9d20bc1e59ce
DIST redis-7.0.15.tar.gz 2994329 BLAKE2B fa1bc85c89cb6a6fb18710a4d29c20db44a80ce445d217f39a234a2aad1d79031e9d1fc45415af7b0eb1c169bd88f45f1fe60cab35de38c6fadc839e2a27676d SHA512 83d58f98085f91754f6d87810e7da0d6cf11ffbe11a0f5d3581d5b2c63d2a752ba6b4eda921a04031aedc56ecebe349cd468ab5ad837493f55d2cac0ab3d015a
DIST redis-7.2.4.tar.gz 3386861 BLAKE2B 852d55f875378248fa15e189308afbe36bca73c2aa2e5423a765a3d6f6895908ac1455148e032f6d1a1087f57af5869bccf8a932684817109f3fcf09b204e639 SHA512 78590fb6680f229905c240ed8ce7a9a7153e5f8563577dbbb26aebf9bfbdcd7495d687f452bd95e0a86c76d772e1c497b506cf8d29bc97b62c9267f7d1e76f72
DIST redis-7.2.5.tar.gz 3386454 BLAKE2B 5a0e5b0162f684ecd6db4a782a18a3c7bf272ec1ce38e2d2a4b5bc3966d968170f5b968e7f9946fd50d2b942c52298430eeccb386bbb443201eda6ac180c7f2b SHA512 e064a0f380e3a00ab8eb2f10ed7317fd6aa27d64cf00792fab80465036f92d17b166050e71b8a779fdf024528ac736cb54722316811f99951c4e386f4ab2245d

@ -1,200 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# N.B.: It is no clue in porting to Lua eclasses, as upstream have deviated
# too far from vanilla Lua, adding their own APIs like lua_enablereadonlytable
inherit autotools edo multiprocessing systemd tmpfiles toolchain-funcs
DESCRIPTION="A persistent caching system, key-value, and data structures database"
HOMEPAGE="
https://redis.io
https://github.com/redis/redis
"
SRC_URI="https://download.redis.io/releases/${P}.tar.gz"
LICENSE="BSD Boost-1.0"
SLOT="0/$(ver_cut 1-2)"
KEYWORDS="amd64 ~arm arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 ~sparc x86 ~amd64-linux ~x86-linux"
IUSE="+jemalloc selinux ssl systemd tcmalloc test"
RESTRICT="!test? ( test )"
COMMON_DEPEND="
jemalloc? ( >=dev-libs/jemalloc-5.1:= )
ssl? ( dev-libs/openssl:0= )
systemd? ( sys-apps/systemd:= )
tcmalloc? ( dev-util/google-perftools )
"
RDEPEND="
${COMMON_DEPEND}
acct-group/redis
acct-user/redis
selinux? ( sec-policy/selinux-redis )
"
BDEPEND="
${COMMON_DEPEND}
virtual/pkgconfig
"
# Tcl is only needed in the CHOST test env
DEPEND="
${COMMON_DEPEND}
test? (
dev-lang/tcl:0=
ssl? ( dev-tcltk/tls )
)"
REQUIRED_USE="?? ( jemalloc tcmalloc )"
PATCHES=(
"${FILESDIR}"/${PN}-6.2.1-config.patch
"${FILESDIR}"/${PN}-7.2.0-system-jemalloc.patch
"${FILESDIR}"/${PN}-6.2.3-ppc-atomic.patch
"${FILESDIR}"/${PN}-sentinel-7.2.0-config.patch
"${FILESDIR}"/${PN}-7.0.4-no-which.patch
)
src_prepare() {
default
# Respect user CFLAGS in bundled lua
sed -i '/LUA_CFLAGS/s: -O2::g' deps/Makefile || die
# now we will rewrite present Makefiles
local makefiles="" MKF
local mysedconf=(
-e 's:$(CC):@CC@:g'
-e 's:$(CFLAGS):@AM_CFLAGS@:g'
-e 's: $(DEBUG)::g'
-e 's:-Werror ::g'
-e 's:-Werror=deprecated-declarations ::g'
)
for MKF in $(find -name 'Makefile' | cut -b 3-); do
mv "${MKF}" "${MKF}.in"
sed -i "${mysedconf[@]}" "${MKF}.in" || die "Sed failed for ${MKF}"
makefiles+=" ${MKF}"
done
# autodetection of compiler and settings; generates the modified Makefiles
cp "${FILESDIR}"/configure.ac-7.0 configure.ac || die
sed -i \
-e "/^AC_INIT/s|, __PV__, |, $PV, |" \
-e "s:AC_CONFIG_FILES(\[Makefile\]):AC_CONFIG_FILES([${makefiles}]):g" \
configure.ac || die "Sed failed for configure.ac"
eautoreconf
}
src_configure() {
econf
# Linenoise can't be built with -std=c99, see https://bugs.gentoo.org/451164
# also, don't define ANSI/c99 for lua twice
sed -i -e "s:-std=c99::g" deps/linenoise/Makefile deps/Makefile || die
}
src_compile() {
tc-export AR CC RANLIB
local myconf=(
AR="${AR}"
CC="${CC}"
RANLIB="${RANLIB}"
V=1 # verbose
# OPTIMIZATION defaults to -O3. Let's respect user CFLAGS by setting it
# to empty value.
OPTIMIZATION=''
# Disable debug flags in bundled hiredis
DEBUG_FLAGS=''
BUILD_TLS=$(usex ssl)
USE_SYSTEMD=$(usex systemd)
)
if use jemalloc; then
myconf+=( MALLOC=jemalloc )
elif use tcmalloc; then
myconf+=( MALLOC=tcmalloc )
else
myconf+=( MALLOC=libc )
fi
emake "${myconf[@]}"
}
src_test() {
local runtestargs=(
--clients "$(makeopts_jobs)" # see bug #649868
--skiptest "Active defrag eval scripts" # see bug #851654
)
if has usersandbox ${FEATURES} || ! has userpriv ${FEATURES}; then
ewarn "oom-score-adj related tests will be skipped." \
"They are known to fail with FEATURES usersandbox or -userpriv. See bug #756382."
runtestargs+=(
# unit/oom-score-adj was introduced in version 6.2.0
--skipunit unit/oom-score-adj # see bug #756382
# Following test was added in version 7.0.0 to unit/introspection.
# It also tries to adjust OOM score.
--skiptest "CONFIG SET rollback on apply error"
)
fi
if use ssl; then
edo ./utils/gen-test-certs.sh
runtestargs+=( --tls )
fi
edo ./runtest "${runtestargs[@]}"
}
src_install() {
insinto /etc/redis
doins redis.conf sentinel.conf
use prefix || fowners -R redis:redis /etc/redis /etc/redis/{redis,sentinel}.conf
fperms 0750 /etc/redis
fperms 0644 /etc/redis/{redis,sentinel}.conf
newconfd "${FILESDIR}/redis.confd-r2" redis
newinitd "${FILESDIR}/redis.initd-6" redis
systemd_newunit "${FILESDIR}/redis.service-4" redis.service
newtmpfiles "${FILESDIR}/redis.tmpfiles-2" redis.conf
newconfd "${FILESDIR}/redis-sentinel.confd-r1" redis-sentinel
newinitd "${FILESDIR}/redis-sentinel.initd-r1" redis-sentinel
insinto /etc/logrotate.d/
newins "${FILESDIR}/${PN}.logrotate" ${PN}
dodoc 00-RELEASENOTES BUGS CONTRIBUTING.md MANIFESTO README.md
dobin src/redis-cli
dosbin src/redis-benchmark src/redis-server src/redis-check-aof src/redis-check-rdb
fperms 0750 /usr/sbin/redis-benchmark
dosym redis-server /usr/sbin/redis-sentinel
if use prefix; then
diropts -m0750
else
diropts -m0750 -o redis -g redis
fi
keepdir /var/{log,lib}/redis
}
pkg_postinst() {
tmpfiles_process redis.conf
ewarn "The default redis configuration file location changed to:"
ewarn " /etc/redis/{redis,sentinel}.conf"
ewarn "Please apply your changes to the new configuration files."
}

Binary file not shown.

@ -1,2 +1 @@
DIST cgdb-0.7.1.tar.gz 314768 BLAKE2B 767a57d071fa4e3c75d231a1ec879d871669fcda9c733d157d380fa525dd321f1deb68d7ef7f424b3f36a115043a0a0faae271f24746f934e288ba7d9a4e7fa1 SHA512 050c7bad963d51c1a2cb309530319ca77e9d236f419fb0abac4ab5030ff1068d799fa626959a8b3036321711de98bddf40d264bf9367ff5697075e30ca8168c6
DIST cgdb-0.8.0.tar.gz 328281 BLAKE2B 60e577dd5f8363b91da33136a9ffd911581e9cea4cdc1d0fcd338e0a761a26921e6edf6298c619b8d0eb1486449843457b2c5370a395a8c49fed5382a60e63a2 SHA512 e2b653db472de2014402dae6d13953ab811526a47ad5d7a05e34cfba09f44d6fea6b19304b9205ff0e2ac9549ffa5818f4282d7c03293b6c0ca9d563f9ae89e1

@ -1,72 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
if [[ ${PV} = *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="
https://github.com/cgdb/cgdb.git
git@github.com:cgdb/cgdb.git"
else
SRC_URI="https://github.com/cgdb/cgdb/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-linux ~x86-linux"
fi
inherit autotools multilib-minimal
DESCRIPTION="A curses front-end for GDB, the GNU debugger"
HOMEPAGE="https://cgdb.github.io/"
LICENSE="GPL-2"
SLOT="0"
IUSE="test"
RESTRICT="!test? ( test )"
DEPEND="
sys-libs/ncurses:0=
sys-libs/readline:0="
BDEPEND="
test? (
dev-util/dejagnu
app-misc/dtach
)"
RDEPEND="
${DEPEND}
dev-debug/gdb"
DOCS=( AUTHORS ChangeLog FAQ INSTALL NEWS README.md )
PATCHES=(
# Bugs: #730138, #678006, #630512
"${FILESDIR}/${PN}-test.patch"
# Bug: #724256
"${FILESDIR}/${P}-respect-AR.patch"
)
src_prepare() {
default
cp configure.{init,ac} || die "cp failed"
AT_M4DIR="config" eautoreconf
}
multilib_src_test() {
# Tests need an interactive shell, #654986
# real-time output of the log ;-)
touch "${T}/dtach-test.log" || die
tail -f "${T}/dtach-test.log" &
local tail_pid=${!}
nonfatal dtach -N "${T}/dtach.sock" \
bash -c 'emake check &> "${T}"/dtach-test.log; echo ${?} > "${T}"/dtach-test.out'
kill "${tail_pid}"
[[ -f ${T}/dtach-test.out ]] || die "Unable to run tests"
[[ $(<"${T}"/dtach-test.out) == 0 ]] || die "Tests failed"
}
multilib_src_configure() {
ECONF_SOURCE="${S}" econf
}

@ -24,23 +24,26 @@ IUSE="test"
RESTRICT="test"
DEPEND="
sys-libs/ncurses:0=
sys-libs/readline:0="
sys-libs/ncurses:=
sys-libs/readline:=
"
BDEPEND="
sys-devel/flex
test? (
dev-util/dejagnu
app-misc/dtach
)"
)
"
RDEPEND="
${DEPEND}
dev-debug/gdb"
dev-debug/gdb
"
DOCS=( AUTHORS ChangeLog FAQ INSTALL NEWS README.md )
PATCHES=(
"${FILESDIR}"/${P}-ar.patch
"${FILESDIR}"/${PN}-0.8.0-configure-c99.patch
)
src_prepare() {
@ -48,6 +51,11 @@ src_prepare() {
AT_M4DIR="config" eautoreconf
}
multilib_src_configure() {
unset LEX
ECONF_SOURCE="${S}" econf
}
multilib_src_test() {
# Tests need an interactive shell, #654986
@ -63,7 +71,3 @@ multilib_src_test() {
[[ -f ${T}/dtach-test.out ]] || die "Unable to run tests"
[[ $(<"${T}"/dtach-test.out) == 0 ]] || die "Tests failed"
}
multilib_src_configure() {
ECONF_SOURCE="${S}" econf
}

@ -0,0 +1,23 @@
https://bugs.gentoo.org/830222
https://github.com/cgdb/cgdb/pull/338
From 039dba0ec3ae2c4b2636418652a5c63f9ff86049 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Wed, 8 Mar 2023 11:29:06 +0100
Subject: [PATCH] configure: Avoid implicit int in readline check
Future compilers will not accept implicit ints by default, altering
the outcome of the check without this change.
Signed-off-by: Florian Weimer <fweimer@redhat.com>
--- a/config/readline_check_version.m4
+++ b/config/readline_check_version.m4
@@ -86,7 +86,7 @@ AC_CACHE_VAL(ac_cv_rl_version,
#include <stdlib.h>
#include <readline/readline.h>
-main()
+int main(void)
{
FILE *fp;
fp = fopen("conftest.rlv", "w");

@ -74,7 +74,7 @@ LICENSE="GPL-3+ LGPL-2.1+"
SLOT="0"
IUSE="cet debuginfod guile lzma multitarget nls +python +server sim source-highlight test vanilla xml xxhash zstd"
if [[ -n ${REGULAR_RELEASE} ]] ; then
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
fi
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"

@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]] ; then
inherit git-r3
else
SRC_URI="https://github.com/${PN}/${PN}/releases/download/v${PV}/${P}.tar.xz"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
fi
LICENSE="LGPL-2.1+ test? ( GPL-2+ )"

Binary file not shown.

@ -57,3 +57,4 @@ tar --owner 0 --group 0 --posix -acf "${1}"-deps.tar.xz go-mod
rm -fr go-mod
)
mv "${work}"/*xz .
rmdir "${work}"

@ -4,14 +4,14 @@
EAPI=8
DESCRIPTION="script to package go dependencies"
HOMEPAGE=""
HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
S="${WORKDIR}"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x64-solaris"
S="${WORKDIR}"
src_install() {
newbin "${FILESDIR}/go-dep-tarball-0" go-dep-tarball
newbin "${FILESDIR}/go-dep-tarball-${PV}" go-dep-tarball
}

@ -5,4 +5,5 @@
<email>williamh@gentoo.org</email>
<name>William Hubbs</name>
</maintainer>
<stabilize-allarches/>
</pkgmetadata>

Binary file not shown.

@ -1,37 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit java-pkg-2 java-ant-2
DESCRIPTION="Multimedia framework for Java written by Fluendo"
HOMEPAGE="https://www.theora.org/cortado/"
SRC_URI="https://downloads.xiph.org/releases/cortado/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2"
SLOT="0"
KEYWORDS="amd64 ppc64 x86"
# Package 'sun.audio' seems to have moved to 'javax.sound'.
# More work would be needed. Presently we restrict to jdk:1.8
DEPEND="virtual/jdk:1.8"
RDEPEND=">=virtual/jre-1.8:*"
EANT_BUILD_TARGET="stripped"
src_prepare() {
default
cat > scripts/get-revision <<-EOF || die
#!/bin/sh
echo ${PV}
EOF
# sed -e '/import/s/sun.audio/javax.sound/' \
# -i src/com/fluendo/plugin/AudioSinkSA.java || die
}
src_install() {
java-pkg_newjar "output/dist/applet/${PN}-ovt-stripped-${PV}.jar"
dodoc ChangeLog HACKING NEWS README RELEASE TODO
}

@ -16,7 +16,7 @@ S="${WORKDIR}/${P}"
LICENSE="GPL-2 LGPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc64 ~x86"
KEYWORDS="amd64 ppc64 x86"
DEPEND=">=virtual/jdk-1.8:*"
RDEPEND=">=virtual/jre-1.8:*"

@ -1,64 +0,0 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc examples source test"
inherit java-pkg-2 java-ant-2
DESCRIPTION="Ant-tasks to compile various source languages and produce executables"
HOMEPAGE="https://ant-contrib.sourceforge.net/"
SRC_URI="https://downloads.sourceforge.net/ant-contrib/ant-contrib/${P/_/-}/${P/_beta/b}.tar.gz"
S="${WORKDIR}/${P/_beta/b}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ppc64 x86"
CP_DEPEND="
>=dev-java/ant-1.10.14:0
dev-java/xerces:2
"
DEPEND="
>=virtual/jdk-1.8:*
${CP_DEPEND}
test? (
>=dev-java/ant-1.10.14:0[junit]
dev-java/junit:0
)
"
RDEPEND="
>=virtual/jre-1.8:*
${CP_DEPEND}
"
JAVA_ANT_REWRITE_CLASSPATH="yes"
JAVA_ANT_CLASSPATH_TAGS="javac javadoc"
EANT_BUILD_TARGET="jars"
EANT_TEST_TARGET="run-tests -Djunit-available=true"
EANT_DOC_TARGET="javadocs -Dbuild.javadocs=build/api"
src_prepare() {
java-pkg_clean
use test && eapply "${FILESDIR}/${P}-test-classpath.patch"
java-pkg-2_src_prepare
}
src_test() {
java-pkg-2_src_test
}
src_install() {
java-pkg_dojar target/lib/${PN}.jar
java-pkg_register-ant-task
dodoc NOTICE
use doc && java-pkg_dojavadoc build/api
use examples && java-pkg_doexamples src/samples/*
use source && java-pkg_dosrc src/main/java/*
}

@ -15,7 +15,7 @@ S="${WORKDIR}/${P/_beta/b}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
KEYWORDS="amd64 ~arm arm64 ppc64 x86"
CP_DEPEND="
>=dev-java/ant-1.10.14:0

@ -1,52 +0,0 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source"
inherit java-pkg-2 java-ant-2
DESCRIPTION="Java date chooser bean for graphically picking a date"
HOMEPAGE="https://www.toedter.com/en/jcalendar/"
SRC_URI="https://www.toedter.com/download/${P}.zip"
LICENSE="LGPL-2.1"
SLOT="1.2"
KEYWORDS="amd64 x86"
CDEPEND="dev-java/jgoodies-looks:2.6"
DEPEND="
${CDEPEND}
>=virtual/jdk-1.8:*"
RDEPEND="
${CDEPEND}
>=virtual/jre-1.8:*"
BDEPEND="app-arch/unzip"
S="${WORKDIR}"
RESTRICT="test"
JAVA_ANT_REWRITE_CLASSPATH="true"
EANT_GENTOO_CLASSPATH="jgoodies-looks-2.6"
EANT_BUILD_XML="src/build.xml"
EANT_BUILD_TARGET="jar"
EANT_DOC_TARGET=""
src_prepare() {
default
java-pkg_clean
}
src_install() {
java-pkg_newjar lib/${P}.jar
dodoc readme.txt
use doc && java-pkg_dohtml -r doc/*
use source && java-pkg_dosrc src/com
}

@ -13,7 +13,7 @@ SRC_URI="https://www.toedter.com/download/${P}.zip"
LICENSE="LGPL-2.1"
SLOT="1.2"
KEYWORDS="~amd64 ~x86"
KEYWORDS="amd64 x86"
BDEPEND="app-arch/unzip"

@ -1,51 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
JAVA_PKG_IUSE="doc examples source"
inherit java-pkg-2 java-ant-2
DESCRIPTION="Java API to manipulate XML data"
SRC_URI="http://www.jdom.org/dist/binary/archive/${P}.tar.gz"
HOMEPAGE="http://www.jdom.org"
LICENSE="JDOM"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ppc64 x86"
RDEPEND=">=virtual/jre-1.8:*"
DEPEND=">=virtual/jdk-1.8:*"
S="${WORKDIR}/${PN}"
src_prepare() {
default
java-pkg_clean
rm -r build/apidocs || die
rm -v src/java/org/jdom/xpath/JaxenXPath.java \
|| die "Unable to remove Jaxen Binding class."
sed -i -e 's|${name}-${version.impl}|${name}|g' \
-e 's|<jar jarfile="${build.dir}/${name}-sources|<!-- <jar jarfile="${build.dir}/${name}-sources|' \
-e 's|build.javadocs}" />|build.javadocs}" /> -->|' \
"${S}"/build.xml || die
if ! use doc; then
sed -i -e 's|depends="compile,javadoc"|depends="compile"|' \
"${S}"/build.xml || die
fi
}
EANT_BUILD_TARGET="package"
src_install() {
java-pkg_dojar build/*.jar
dodoc CHANGES.txt COMMITTERS.txt README.txt TODO.txt
use doc && java-pkg_dojavadoc build/apidocs
use examples && java-pkg_doexamples samples
use source && java-pkg_dosrc src/java/org
}

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

Loading…
Cancel
Save