Sync with portage [Tue Jul 4 12:27:28 MSK 2023].

master 2447
root 10 months ago
parent 1c24a9ab74
commit a269a5e360

Binary file not shown.

Binary file not shown.

@ -10,7 +10,7 @@ HOMEPAGE="https://wiki.gnome.org/Accessibility https://gitlab.gnome.org/GNOME/at
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"
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 )

Binary file not shown.

@ -4,3 +4,4 @@ DIST aws-cli-1.27.162.gh.tar.gz 2440126 BLAKE2B dd2abeb835e52bdd3c164bc475fde491
DIST aws-cli-1.27.163.gh.tar.gz 2440844 BLAKE2B 2e89c9c5ef595f299314fa7018eb23e55f4af624789371f51c245c574c61e7d274f56356056ecc1607500f201127666358fc750521ed3342c3e2abea60f65220 SHA512 475f8c3b8e975e5c9bbd2b9f4c1ce0f0e26d4c3f063edb5427a4fb89b11eb2b37e7e468a191be0debf03781e7716b08ec4a9970baddbffc0d7110af6fb4b80aa
DIST aws-cli-1.27.164.gh.tar.gz 2441955 BLAKE2B 51a4e88eed1196baa92110c6ad671534404da05825f7dbaa8f97aa9340fb7bf6494441f02b69d354045f8abf8f3ce71605235e79bb7bbee2ac38813469b08fd0 SHA512 fb0ead9338bda6b7e64dfe86ce132f72c39df3b6e47db181b2813730d2df11938f28becc007f8a675616754ba204083f7f17a6516bf47dcd13f0f795ce4aa925
DIST aws-cli-1.27.165.gh.tar.gz 2445911 BLAKE2B 72496a0b5695c78631349b7b6efb4aee7a3681c3683cd567fe904d02d5198366e79146bfd2db373738936c88e2cd97b2e858e45de1e44ec863f386aef865367d SHA512 cde5e9bf6aa2783a0b8c90ae78686bb6a8d5e625e15826f735bcf6e138b112a56df25f4429192ed44fb7cc58e9ea736f7e7fd8ffe8ad0092ead763e3f801a7a0
DIST aws-cli-1.28.0.gh.tar.gz 2445988 BLAKE2B 5c56f908d72cdc10c3e256dd1cc279a202d302cfee0ce860dbefec33ec78aea7afcae37aa699bab6a8644503c9ff0648d0efd60a168f180847f4392e3440658f SHA512 cc3239b7609de0dfa0bb15fea044a9f51151e6c1873c07dc1f0893b0418721eef9b28d1757bc59f7d9e603b865eec406fbe3865e0f31de2f58142ca6768bd1a3

@ -0,0 +1,80 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..11} )
inherit bash-completion-r1 distutils-r1 multiprocessing
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+2).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
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.6.0[${PYTHON_USEDEP}]
dev-python/pyyaml[${PYTHON_USEDEP}]
!app-admin/awscli-bin
"
BDEPEND="
test? (
dev-python/pytest-forked[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
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 EPYTEST_DESELECT=(
# TODO
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
)
# integration tests require AWS credentials and Internet access
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
}
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.

@ -1,18 +0,0 @@
https://github.com/rpm-software-management/drpm/commit/0bde9b7711a2fa8b811830cadfc979365f9362c6
From: Florian Weimer <fweimer@redhat.com>
Date: Thu, 12 Jan 2023 08:17:19 +0100
Subject: [PATCH] C99 compatibility fix for drpm_write.c
Include <string.h> for various string functions. This avoids
implicit function declarations and resulting build failures with
future compilers.
--- a/src/drpm_write.c
+++ b/src/drpm_write.c
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <stdint.h>
+#include <string.h>
#include <fcntl.h>
#include <openssl/md5.h>
#include <rpm/rpmlib.h>

Binary file not shown.

@ -1,9 +1,6 @@
DIST vscodium-1.77.3.23102-amd64.tar.gz 110983055 BLAKE2B f8faa40cc6c9377e73dc06b1127b647de0f7ca06d5e8d1d25e376b130116e188fb90f59a55ce3f317a84db4e98552ec5fbdfb9c5a6ec87ea7041968994025b76 SHA512 da02f2fb7e3bb9b33d714091a7be6f7ffce0a28a74a1feee1e81010d1ab586caf70d3ec80d05bffcc892af5da69a352ec01fd2a9fbc12077d3501745022730bd
DIST vscodium-1.77.3.23102-arm.tar.gz 100620275 BLAKE2B be0807175b1b9b5d6c8e9d44121c38f6d1ed806aacf69e33c23e220d716bd545739e07d57898e0f5c73cf0a86f74d6b7021b064c6ed120e892ab4ba9f64689fc SHA512 d03600321a287a8b6ae1f739309011efc2480d414e7446547f9dc168db7077c521b2f8e58249f464bd31f2a0111cc869042283871620059a797888d5eb935a27
DIST vscodium-1.77.3.23102-arm64.tar.gz 111829469 BLAKE2B 1bd2e4f68db9c641a9313c88955568a28198a4629dae0b476ccd0927cb08fedc9e917dae57c8ac2ace5c1ba7b7cbcb3baccc70d25b9b9532a1652a5419b0aaa7 SHA512 f60838f98430fee6f814951e4ab5c2893f29f4ad21e7b7b9651929366fd438c4a34300e89d5059584820d07201e20467d9d64fd5c4bc5b4b61da393f19d06356
DIST vscodium-1.78.2.23132-amd64.tar.gz 119476104 BLAKE2B f1a007c72a377dd8f9c1d1cf9c3c38bbb32d28c94305e0445fa4a94f62bd3a32e5122d881f485ebf63958e8183cbc01df96efe1e98078d065b3e4205b1bf8025 SHA512 b4432b6a47be23af8b36359867de6b84b207c2d65817ba30cda33a3b983174bf9c5a06e44a628fbd4764ad054b441fae77a757b099ab808ca7090efad5a189ea
DIST vscodium-1.78.2.23132-arm.tar.gz 108208589 BLAKE2B 4f3ca84b8fe87907c21f0befa59969e9cb243f52ffc82ac323ae1a978e538cce31256dead42ce87cef0cbcefd09b106e6db7cc400d404468427c11fb15f8f728 SHA512 921255f6ff635f64753ec0d230bcc26f5ee69fe7160528fd077a6b8f4f6237a7e87bbe6a42b0a2463bfdc8fe466499ca15350e388477ebeaded7ab8335305c54
DIST vscodium-1.78.2.23132-arm64.tar.gz 119733620 BLAKE2B 95b6cdfa97a02fa18e5a053b5333bcd347b2f2ed4b4a3630c060606a3a79b44e0e12c90c7d98ca86c207963f8711556f58cbab81ff45fcc6c21c0ed3f3b46824 SHA512 aeaea958574b4ce760e9dffd400c0dd3c52eabc228b55d8e6539d3ca611741e81de8e0c86cbe3d72678c5459f70ebd682a9d69fc5857e3c433366c111094d5d9
DIST vscodium-1.79.0.23159-amd64.tar.gz 120597824 BLAKE2B 0219ea4bffcbc9353ac002037a820e9fd36d7af525c685ee92db63e9b8d8027712ecd892d1b8d4eeffe3d1782e6c794744c0ef6c576b001c4e798f2c5cd81c45 SHA512 0fbdaf930b6d2c13c87fb39bcfcfd77b086b31e9f11ffe19e223ebc72b9ff26e0563c00d143846bc589160f3839cc1245855b235f6af488fd3de0167a32f1487
DIST vscodium-1.79.0.23159-arm.tar.gz 109325368 BLAKE2B 0f322ba23926052e873ee58b8a8839ae2a8d5730915cbce20ede7e5e8809a0b0742600be96b1760c82debd1ac3a3663c8437020315efc6b667094d0927bf03ae SHA512 c329e7c323e87537951eed63a72401554f2e241ef15b971f44f8516fa9766a5ed335e074a797ad98548b30102dba827fa649f1479f072b68abb306c626ca16ee
DIST vscodium-1.79.0.23159-arm64.tar.gz 120850283 BLAKE2B ab8edcf8870fe1584c508a4943a86e5c327d2a309139ac86fed0d9f201c950a47f4966664495e2a8bef6727abd531acde5d78e014fc016da632391c45c25a162 SHA512 a8a7780ca0beb8e6784e3eaeb0a516c8b07f40e9bd1b785259df4ec6c64bf89d2eb6d4d6feaeb1106304ffa002d14c5b238d06d5dbd2455841372db9d0fc6234
DIST vscodium-1.79.2.23166-amd64.tar.gz 120602785 BLAKE2B d15fcdc0f1db850275ec8f2b8e0b0ddb66373eceba788028cd33ed6e2151ad4d33b98796bf6be00822f76436499521dbd9e1e5110f1df43d924d7e7f3d8f1972 SHA512 c2e007eef22e4027d252d2a9d578390499c4d07fe41b1f69d7cb6ba856ba51e864c46ec80a6bed8f37ab1cfe20954ce3878db78ce79ab0991635417cf627c9be
DIST vscodium-1.79.2.23166-arm.tar.gz 109328791 BLAKE2B 783c854c16be3eac8ea349eaa0ed9ff509eb27191606f245232e2b51ebbc2f338eb8e758677da2ac4ba1cfface487ea38c884b7ddec519e3409df9b066f1aa9c SHA512 6067ac88ef806e784bb8dda8eb2ecd377f52f71f60356384fde1cdca6a802568dba9abefeece2853c4e3961dd98636a66fd0fc4a98131cf4cd59300da2e67377
DIST vscodium-1.79.2.23166-arm64.tar.gz 120833812 BLAKE2B f8cb53aa5faede65b62b174a48a23f6e761a737dffe86e2a92625b745856e106fd1398f68fc3b62d3c2ea5164e7f997be88b0cef735e9e718721982ffd630f09 SHA512 79f3c7e1507c0db4d93a35b207aa850d31127196c846f6479b863589634e75da68b30b1c0c5f66ba2c63201a1c4540c910f569f3152ceff523a27889b47a9eb0

@ -1,119 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit desktop pax-utils xdg optfeature
DESCRIPTION="A community-driven, freely-licensed binary distribution of Microsoft's VSCode"
HOMEPAGE="https://vscodium.com/"
SRC_URI="
amd64? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-x64-${PV}.tar.gz -> ${P}-amd64.tar.gz )
arm? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-armhf-${PV}.tar.gz -> ${P}-arm.tar.gz )
arm64? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-arm64-${PV}.tar.gz -> ${P}-arm64.tar.gz )
"
RESTRICT="strip bindist"
LICENSE="
Apache-2.0
BSD
BSD-1
BSD-2
BSD-4
CC-BY-4.0
ISC
LGPL-2.1+
MIT
MPL-2.0
openssl
PYTHON
TextMate-bundle
Unlicense
UoI-NCSA
W3C
"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm ~arm64"
IUSE=""
RDEPEND="
>=app-accessibility/at-spi2-core-2.46.0:2
app-crypt/libsecret[crypt]
dev-libs/expat
dev-libs/glib:2
dev-libs/nspr
dev-libs/nss
media-libs/alsa-lib
media-libs/mesa
net-print/cups
sys-apps/util-linux
sys-apps/dbus
x11-libs/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/libdrm
x11-libs/libX11
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXext
x11-libs/libXfixes
x11-libs/libxkbcommon
x11-libs/libxkbfile
x11-libs/libXrandr
x11-libs/libxshmfence
x11-libs/pango
"
QA_PREBUILT="
/opt/vscode/bin/code-tunnel
/opt/vscodium/chrome_crashpad_handler
/opt/vscodium/chrome-sandbox
/opt/vscodium/codium
/opt/vscodium/libEGL.so
/opt/vscodium/libffmpeg.so
/opt/vscodium/libGLESv2.so
/opt/vscodium/libvk_swiftshader.so
/opt/vscodium/libvulkan.so*
/opt/vscodium/resources/app/extensions/*
/opt/vscodium/resources/app/node_modules.asar.unpacked/*
/opt/vscodium/swiftshader/libEGL.so
/opt/vscodium/swiftshader/libGLESv2.so
"
S="${WORKDIR}"
src_install() {
# Cleanup
rm "${S}/resources/app/LICENSE.txt" || die
# Disable update server
sed -i "/updateUrl/d" "${S}"/resources/app/product.json || die
# Install
pax-mark m codium
insinto "/opt/${PN}"
doins -r *
fperms +x /opt/${PN}/{,bin/}codium
fperms +x /opt/${PN}/chrome_crashpad_handler
fperms 4711 /opt/${PN}/chrome-sandbox
fperms 755 /opt/${PN}/resources/app/extensions/git/dist/{askpass,git-editor,ssh-askpass}{,-empty}.sh
fperms -R +x /opt/${PN}/resources/app/out/vs/base/node
fperms +x /opt/${PN}/resources/app/node_modules.asar.unpacked/@vscode/ripgrep/bin/rg
fperms +x /opt/${PN}/resources/app/node_modules.asar.unpacked/node-pty/build/Release/spawn-helper
dosym "../../opt/${PN}/bin/codium" "usr/bin/vscodium"
dosym "../../opt/${PN}/bin/codium" "usr/bin/codium"
domenu "${FILESDIR}/vscodium.desktop"
domenu "${FILESDIR}/vscodium-url-handler.desktop"
domenu "${FILESDIR}/vscodium-wayland.desktop"
domenu "${FILESDIR}/vscodium-url-handler-wayland.desktop"
newicon "resources/app/resources/linux/code.png" "vscodium.png"
}
pkg_postinst() {
xdg_pkg_postinst
elog "When compared to the regular VSCode, VSCodium has a few quirks"
elog "More information at: https://github.com/VSCodium/vscodium/blob/master/DOCS.md"
optfeature "keyring support inside vscode" "gnome-base/gnome-keyring"
}

@ -5,12 +5,20 @@ EAPI=8
inherit desktop pax-utils xdg optfeature
# Usage: arch_src_uri <gentoo arch> <upstream arch>
arch_src_uri() {
echo "${1}? (
https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-${2}-${PV}.tar.gz
-> ${P}-${1}.tar.gz
)"
}
DESCRIPTION="A community-driven, freely-licensed binary distribution of Microsoft's VSCode"
HOMEPAGE="https://vscodium.com/"
SRC_URI="
amd64? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-x64-${PV}.tar.gz -> ${P}-amd64.tar.gz )
arm? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-armhf-${PV}.tar.gz -> ${P}-arm.tar.gz )
arm64? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-arm64-${PV}.tar.gz -> ${P}-arm64.tar.gz )
$(arch_src_uri amd64 x64)
$(arch_src_uri arm armhf)
$(arch_src_uri arm64 arm64)
"
RESTRICT="strip bindist"

Binary file not shown.

@ -1 +1,2 @@
DIST cape-0.15.tar.xz 25848 BLAKE2B 44d72cd8de7597dad6f92c225995a5e1c02f42daf7a839c98e2b3d3ec0ff66dba5da64fc87d64b4913c5f9598cb00e3b46e22eaf98f65a759f4c04c9b373a3b2 SHA512 a2ea009f1f28868ac7c58f23e9212568545434588d89a2f15e5b1a0f4dba09a27a5620a9b9ac79cb88da3a9e83174f13a6122425581dd0aa43e25d12f1766396
DIST cape-0.16.tar.gz 36845 BLAKE2B 13a7e1b79cbfcb027dd10e475a928782acf1b835161bc508b92390aa8bd932474ec85cb59c752b732952d71261236db853d0e7fa2f7c005a42c4037ddc11be9d SHA512 d668d438dd400928cd55f08a041a7493674d3118da8d78f6968cd9d41f12d8d654525ee7c15d5edf68d93e16815f8a2dfc96e4d850bbf624339380158fd9625c

@ -0,0 +1,34 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Completion At Point Extensions"
HOMEPAGE="https://github.com/minad/cape/"
if [[ ${PV} == 9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/refs/tags/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64"
fi
LICENSE="GPL-3+"
SLOT="0"
RDEPEND=">=app-emacs/compat-29.1.4.0"
DEPEND="${RDEPEND}"
DOCS=( CHANGELOG.org README.org )
SITEFILE="50${PN}-gentoo.el"
src_install() {
elisp-make-autoload-file
elisp_src_install
}

@ -1,3 +1,3 @@
DIST consult-0.32.tar.gz 101692 BLAKE2B 01c574755345917ea109d4321a31b6720f88bb99d76a26cb5ef90acd7f637734d299708b630971a530ab97eb83d719c634eac6b3481699f4fc94f5a3ea479a72 SHA512 d33c33997542f545d64af9fe9261e1d22b32effaf75fce428903f5d4e50e98f0205976cb000aa0c4ce0218a382171d345d8d806184fbdd63d906fba91d58ab6e
DIST consult-0.33.tar.gz 102348 BLAKE2B 16419c7dfbee2d190dc4f534a69f835120779e6b44d0136963b830a56b49f890df6ac72f3dd229351bb1eb9e9b94a1a0fac1c14ee086a06d137b79e869f49d8c SHA512 64bf4a4833e66388465db44d97fd0a8492baf8a2d3c54638cb2438391ec0b5599e944d5eb56812ea3fb1f6b6bcaf4a27d014390d084b9a73b0340c3aa467603f
DIST consult-0.34.tar.gz 102922 BLAKE2B a3a748fd51a302d2c7e55158b1098d8d7d72c259a15b81d7441d82731f27ae673465d719f1adda933db97b0466fd1f9eaa96b60a3df4de57ccf26f64f0803b3c SHA512 62163d5b065cf5aba8887624fbf13339d667f7b250ce1777d0c417a2bba91419978852e2c12f6c78dbfab994c0f7a613bca318d19adf4ae1a3e59bb4f5217f71
DIST consult-0.35.tar.gz 103472 BLAKE2B 5e47d40bd67811f40ef27f67b508d0fabdbc3bd552ee990e9418b59eedcebfb69241dfeae4a9f084514fc4eb102e17ab7efa4c4e80020d2cd8cd1cd80447aa13 SHA512 a2ee01c970bddd8367c8fe3094483bd5710f1bdbfd3b278e26d443ec42e91dee64b583272ac37e52f198f75554c95f97cd774b7f85b1a1c0d28b9a3905c77721

@ -2,17 +2,25 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27
inherit elisp
DESCRIPTION="Consulting complete-read"
HOMEPAGE="https://github.com/minad/consult"
SRC_URI="https://github.com/minad/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
DESCRIPTION="Consulting complete-read for GNU Emacs"
HOMEPAGE="https://github.com/minad/consult/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=app-emacs/compat-28.1"
BDEPEND="${RDEPEND}"

@ -0,0 +1,33 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27
inherit elisp
DESCRIPTION="Consulting complete-read for GNU Emacs"
HOMEPAGE="https://github.com/minad/consult/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
RDEPEND=">=app-emacs/compat-28.1"
BDEPEND="${RDEPEND}"
SITEFILE="50${PN}-gentoo.el"
src_compile() {
elisp_src_compile
elisp-make-autoload-file
}

@ -1,3 +1,3 @@
DIST corfu-0.34.tar.gz 44586 BLAKE2B c2a056cdef8cc536f3512662c442504fd3c973649e58b382eb92fb749bc5b3de2dcdad9f13cbe929b33b001fe9fc1ee2b057620c321f32ad9aefc0b274b71983 SHA512 5a46af83eed319170687e91386d8363416682fb6017d465a2b86c8164903efc128122b9cae81482155d8c710f7b2eb1dc8ff0b636544a0a611bec574fdb188c9
DIST corfu-0.35.tar.gz 45540 BLAKE2B ae5649b3bc5b636887afdd1af7f8b36b9063bc863e72c844f24ad0ede5aacea9f9cab2fbcf0ee543b653f3763d2a0e34097eeadca46c947e483c93ed8cd6619e SHA512 9d749a7e513486b1f83e073083b3c5a35d101c2eb20e4424bc1fe1313ea36469f50eb4c9967b3bb2c9cf249805a57c17843758e8e473f1af5c22987ae47ec404
DIST corfu-0.36.tar.gz 45542 BLAKE2B 8841dd5ebb20c5609ddc7983a12e52c9194002da6a10c26f4f6934d03a6abeccb02a5e3896991ac22e9262ba46b0d00ed6608c740f4c02091c193d8e6e748260 SHA512 520f4c7821f0ba8e159055b142a25e7e94fd2285e50ff487c0b877d9079a4f277397cc999b127bb991defadc198d7e6f7853a6b66278f46eb9184265fabd6c8a
DIST corfu-0.37.tar.gz 46624 BLAKE2B 256412325253f9282b39981bb1402825b193cf12e13fc4dc33bcf946931b554dfa6b95b331c553889cb2105a670632051441f0d0434882ce4e69b51ce663460d SHA512 a7ba07083fa93785ca23ffe5f959a9178aed079e00b44a2dcc90f64c6763555e27b04906aa0dab63bce8f07b30b60e60b785572b53257f86b794c800835a58b3

@ -9,12 +9,18 @@ inherit elisp
DESCRIPTION="Completion Overlay Region FUnction"
HOMEPAGE="https://github.com/minad/corfu/"
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=app-emacs/compat-29.1.3.4"
BDEPEND="${RDEPEND}"

@ -0,0 +1,39 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Completion Overlay Region FUnction"
HOMEPAGE="https://github.com/minad/corfu/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
RDEPEND=">=app-emacs/compat-29.1.3.4"
BDEPEND="${RDEPEND}"
DOCS=( README.org )
SITEFILE="50${PN}-gentoo.el"
src_prepare() {
default
mv extensions/*.el . || die
}
src_compile() {
elisp_src_compile
elisp-make-autoload-file
}

@ -1,2 +1,3 @@
DIST jinx-0.7.tar.xz 17816 BLAKE2B d31ae1c35c5808237890c5c6ecaab915af7cc70260ae05de06c049a9bc250c3ff824a18256715fb7ed12e02df60b24aa957192b95fd3a0ab28e5102f5cf63718 SHA512 ed291b1d5eb5b799f629ed3d0d5bfca65e7f11d9349a672f09087a47ebe65a7bc8bef8fda6d344472dc8bc14c97c5d49c79365d45da5c9570e0cf84d51723928
DIST jinx-0.8.tar.xz 19064 BLAKE2B f5c2382e635b4266ac7ea4a500f3ca56f029c1104608ae12570a5983e971dff17bd2d4c7c721b080ac7ab136e7a7cc305cc96b2a5dc825caf17c5713d37702d8 SHA512 63ef5031252a98e3c4e22a331fbe99d6fb0465f965fbf7ce4e319514b2ddd8230db66d48c72bc5d957a77b2c8609f08636f1579fe4cefb44e2f56b654638fb52
DIST jinx-0.9.tar.xz 20852 BLAKE2B 09a6a765cf51c2efe3a90317cdaeff03c2bc35bd6202b71070a19d51189c2ee6fc7406881130986dcdcfd9a9f6cec4aee25e0e71924a38aca7708aa3b99eb550 SHA512 a61e377fdee84fc91c3714f12f1bfffd95d6618a78c48dbcda6ff134f2ce3b604f283ddc5e7040c125e406ec573e3f6e7bfcde681fe574b84d7736e114ea7c0b

@ -0,0 +1,42 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit edo elisp toolchain-funcs
DESCRIPTION="Enchanted Spell Checker for GNU Emacs"
HOMEPAGE="https://github.com/minad/jinx"
# Recompressed from ELPA.
SRC_URI="https://dev.gentoo.org/~arsen/${P}.tar.xz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64"
RDEPEND="
app-text/enchant:2
>=app-emacs/compat-29.1.4.0
"
DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
ELISP_REMOVE="${PN}-pkg.el"
SITEFILE="50${PN}-gentoo.el"
src_compile() {
edo $(tc-getCC) -fPIC -Wall -Wextra -shared \
$($(tc-getPKG_CONFIG) --cflags --libs enchant-2) \
${CPPFLAGS} ${CFLAGS} ${LDFLAGS} -o jinx-mod.so jinx-mod.c
elisp_src_compile
}
src_install() {
elisp-make-autoload-file
elisp_src_install
elisp-modules-install "${PN}" jinx-mod.so
doinfo jinx.info
}

@ -1,3 +1,2 @@
DIST marginalia-1.0.tar.gz 29142 BLAKE2B 99048ebca2156981aa77eb10bbd914648932bfc328f41abdda8196361542e7550895f5263b04a239fca3ef79a2cc87ff7e9a9d315ab46ef6d87846117a325cd5 SHA512 82b7220bce1d8804be9a4783518f4492d66e039a50c0fb064bbfe18acf119600a9f3c9cc2dede038b390c4522c1163ea1982e9f3f8a3f170c0f4f86ef1ec87d5
DIST marginalia-1.1.tar.gz 30058 BLAKE2B 9d2b792383ed3c67ce1611ce0eab31edfc0769ee2243a7d8e189a398076d977b0a5db60ecd28d3ea8483a91fd27088d6b4fbbe0d9c5e16a3348b7cd7e211f05c SHA512 83cf7a4dce4a4f0064ef2a7c51beb6ced73aa4f8951d2920fbaf6f879ec5ff9431890840f2afcc0741b3cccc6842a68461ccdf51450b6b4d2877477731796be2
DIST marginalia-1.2.tar.gz 30235 BLAKE2B 65027b482333086dc3a328741df772b5ab8435bc576c46602194c6373c812cc956a4936205b071e71453f5634b4481aa8ed8d3b08c3687788b6b92385a1cc54c SHA512 708effbeec74e0ef24f307d8a93f9d6e7b6936c343a79e72bc333520bbe0ec9d101fecf84793ef3f3b274b2c3bca88ee01d52ff37d154128a46eb774f9775c82
DIST marginalia-1.3.tar.gz 30893 BLAKE2B 4ab172939ef5c31f3d15c2e696cdbd2f8a4782f530332f6214b2634e6c9ec39c80a2798d2f75c6e52b830b91220c00a12ef30c6c717fd93631ab627854568eae SHA512 ea90c4682276247b0f914aab752a11cf074e38f73f8cdb5330f55387cd9930662918101ae3d0da552f4f2a2fe99d51f97093c32e984dedb102df0eadbf914cc3

@ -1,17 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Marginalia in the minibuffer"
HOMEPAGE="https://github.com/minad/marginalia"
SRC_URI="https://github.com/minad/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
SITEFILE="50${PN}-gentoo.el"

@ -2,6 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
@ -16,5 +17,5 @@ KEYWORDS="~amd64 ~x86"
SITEFILE="50${PN}-gentoo.el"
RDEPEND=">=app-emacs/compat-29.1.3.0"
RDEPEND=">=app-emacs/compat-29.1.4.0"
BDEPEND="${RDEPEND}"

@ -1,3 +1,3 @@
DIST org-modern-0.10.tar.gz 24181 BLAKE2B a905fe099c849d70f608643c058c5356ce8f027c1f4bb13a6954d44a069e75fe070579c168a19aa7bf6610cd3e08fee32f51efaf0d6fb947aa460df1f2aef5dd SHA512 5118f6285b11144df2f4c3b6f3beda2ac14ee6df2cb595cca08dec494772c5617993abf27f4689d08893c38c910eeb61ab552338fce1aad65ca24c5ab9e95b40
DIST org-modern-0.7.tar.gz 23199 BLAKE2B f9fea09f8be91c68b5e3b8c6371b3772d47c3738ebd301c15bbf1d5ed7f72daf177c66ac8a3cea322e70449d477ba73bb4bd48afcf6de23162d682b09b45de87 SHA512 e77a561376ed04fa7dd1034d5dd1c9217768ecf73e27c704d246261b60365712d5835c66b91cce1e91b368d004868a6fb5945b266e415276cab604f749cb9df2
DIST org-modern-0.8.tar.gz 23681 BLAKE2B 75ad25f43756327de5fefc49ba168a4b5e8d19352c1a08d394375ad4f33c808df51866c56d47bc5bb6d57e8b5f38d24acbb53f011dc2920c0747c4b884aa4a8a SHA512 c8d99576e80f783be05b543ad44fbfa9264d5a76a0b991bd46be2820bf703eb9fbb21c5c297b21bd8fc5f8ab0726be49f1bf1947a5f011898cd3b377fce02f68
DIST org-modern-0.9.tar.gz 24023 BLAKE2B 5f016f4e1a748cb33b139794864a3e40ce035c3ce616eef96c9f884dffeb27057523fdd3c2e179061ad3defef67e706d19157742eb503b927fdd07fde9b6b73f SHA512 618bd3ad94a8f6557519549d4918e98af0018e8ad60390843c6638fc245a20c4d304cbb30253238f356e496a4ba0d007ba65e777734b07fee61069410b85bbe9

@ -3,6 +3,8 @@
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Modern style for your GNU Emacs Org buffers"
@ -14,5 +16,8 @@ LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=app-emacs/compat-29.1.4.0"
BDEPEND="${RDEPEND}"
DOCS=( README.org example.org )
SITEFILE="50${PN}-gentoo.el"

@ -1,3 +1,2 @@
DIST osm-0.10.tar.gz 31628 BLAKE2B 6cb3d4fcee65b93787507fcdc15afce521e4d65c2fcea9f729e5292bfc57ec065604c8439bc5d0d744969c36fcba14204257a93546d1c67a9d3d8a816e26e9e7 SHA512 03ad03b9b64244c53c2b9a7329b9d741f33102e41684488385bdc60e5398b9cba7d3950cb0937b4bdecb93017cb2c1b5f99324195349b88ae7eed66431149ba6
DIST osm-0.11.tar.gz 31935 BLAKE2B d4cb18a9ab17d0d982db94a1dcfb37bdf3676b2b6bf367f249ccc2475783ce4f7eda8bb01beff8ac59e4a963e7800402f3fe9a99832f9072396d679a4fa0bd56 SHA512 02faba5200897b78b1e8d616d3f21a607645e401b80e13d016be8317cc92dcd7458d6b968066f088d9ee202d477e183c9d93bf1475710f6a6c249608cb68b0d6
DIST osm-0.12.tar.gz 32029 BLAKE2B 42a8f70acb01ac0b326ac0e345528f2181e5ab45a92bfcc796d2d8cab5b587e4b071c5d1235cc92f4362be3849cd454015de096314b2de0ebd02bdc631588e03 SHA512 ad21fe39c096250f8e5249ae67c399ccb976a48576ced9e9ed4accbd7cbeed4a30e3c347ca5b4ba2f8e2b7db5a161b3145b01121860b9ee3880d06241bec3edc
DIST osm-0.13.tar.gz 32400 BLAKE2B 0b97d1adb67510f393dc13b8f314e8b8cc089d1b5d4e440331a2c8ddf42799c5e04b6448eb35d3acd55c8fc363f82415d8b8cdf83e06fa3ccccceaa07ffd68e4 SHA512 4313ccb42c6c7a7fc582d5f2a476ff09890306c82bf0554654443906e593509692450d0db4b6ef4fde906aa750d925bd3156e74d8fcf6f780eb37a3761aa20e6

@ -9,12 +9,18 @@ inherit elisp
DESCRIPTION="OpenStreetMap tile-based viewer for GNU Emacs"
HOMEPAGE="https://github.com/minad/osm/"
SRC_URI="https://github.com/minad/osm/archive/${PV}.tar.gz
-> ${P}.tar.gz"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="amd64 ~x86"
BDEPEND="
>=app-editors/emacs-${NEED_EMACS}:*[jpeg,json,libxml2,png,svg]

@ -9,16 +9,22 @@ inherit elisp
DESCRIPTION="OpenStreetMap tile-based viewer for GNU Emacs"
HOMEPAGE="https://github.com/minad/osm/"
SRC_URI="https://github.com/minad/osm/archive/${PV}.tar.gz
-> ${P}.tar.gz"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="amd64 ~x86"
BDEPEND="
>=app-editors/emacs-${NEED_EMACS}:*[jpeg,json,libxml2,png,svg]
>=app-emacs/compat-29.1.3.4
>=app-emacs/compat-29.1.4.0
"
RDEPEND="
${BDEPEND}

@ -1,2 +1,3 @@
DIST tempel-0.6.tar.gz 25563 BLAKE2B 2edd522335f8faaa989b313b04f394f30f514cf7c40ec20f5f5fe0c1f1fe1b3ae05d15e9deb103e94d3d25b86a5725caa78904a25f22f806453a705dfc5e9c82 SHA512 49938758f5289fc9c77a78dc1559ce6a454d5969b256ba0e18239855ff0667afbb131c8e2214d4994fc342397903a293ad88bf26828c693ec5e197174d78ef50
DIST tempel-0.7.tar.gz 26541 BLAKE2B 81bd7cd734eba5fbe299c736133512c035439036e17dc032b865c29e30ad6837957af8ce9bde3d56bc3dccb12f2e6111e66605e72e0bb0eead982fb436d8e9e1 SHA512 3589962c3273e9a2fb8a3b2d59c8831e15b481b9e69ad7785ae5a30e4df133bb187da6e58c04d77fa37b217f2a7c68dd7825c8a20856320f824adf739e5629a3
DIST tempel-0.8.tar.gz 27043 BLAKE2B f4920a1c0d1d7ed21f2681031f846b07fcdabbd59b76f3ba2fcd1277c78b30e1c5e134deeb35410f7227d753256b9c16c6a4d641011b99d87b49f0fae0fd5a04 SHA512 7b832e151821f4c72a3d14663fb76a956e2b6730387e71e1aedb52c72a7798a5804ad2ca3d63185c52d39128d748394419c3708d8a6a7497014e573d277fa5d9

@ -0,0 +1,34 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Templates with in-buffer field editing for GNU Emacs"
HOMEPAGE="https://github.com/minad/tempel/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
RDEPEND=">=app-emacs/compat-29.1.3.4"
BDEPEND="${RDEPEND}"
DOCS=( README.org )
SITEFILE="50${PN}-gentoo.el"
src_compile() {
elisp_src_compile
elisp-make-autoload-file
}

@ -0,0 +1,34 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Templates with in-buffer field editing for GNU Emacs"
HOMEPAGE="https://github.com/minad/tempel/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
RDEPEND=">=app-emacs/compat-29.1.3.4"
BDEPEND="${RDEPEND}"
DOCS=( README.org )
SITEFILE="50${PN}-gentoo.el"
src_compile() {
elisp_src_compile
elisp-make-autoload-file
}

@ -1,3 +1,3 @@
DIST vertico-1.1.tar.gz 44320 BLAKE2B ca423d0a745cb0ed9c7f857f07595614264c8cf60056b696c31e26f85578278b1993c803556609fd444a1729f5380e314b39bd586073a6145b6b3e7f46462999 SHA512 e8df93ad4bd97d6313eefc3c2d88652841858a22db9be17b07e68095c158daf228f717524a6ba912541ce405afdfe5f696a3e5adf5d08c5e9e8b44694eb62294
DIST vertico-1.2.tar.gz 44501 BLAKE2B 46ff938c13b6dbdf3f952a887b5fe4d091dfe68da067620e3ca2c567c783af748ab921502b7f5f66cfd6ffa7457b10563e95ae5d7add32565a15643531f83da4 SHA512 f7deeeaeb4b78a857e354dab8d61b5062147be4fb7b87083b0fd16d88bf26ec7354df462d17f756f538b32fbcbbda0878ee48540d1e45c592a5f7c2533c10eb0
DIST vertico-1.3.tar.gz 45142 BLAKE2B a835e540ce271b5dc1cea13a9894a82c6adc6729cf45692a8e345389550ba4900649232b530b6293789bf8ee33447a149c525f167335fdcfa64150c9bddf3c85 SHA512 2cd6c6f13858c55dc0c182fdb7b5e9b8866e10e88554252e6f1c3a465b525e67517d4213d392e59f40f20956e9fba0f414490788f580c5ace5ffd29c29b87a9b
DIST vertico-1.4.tar.gz 45260 BLAKE2B 199472fd9126bdb940eeac811c19f4a9f8efe5c5a31ce580ab148db23bb69bb47c71ec9299339e768fd8662dd38fe39e469d4548cd8c15b761a1b282d5bcbf67 SHA512 2ff48178807e5bd32d8515bc3a1c435be191b1383ca749cdaca8e15140c86253b6b5073c883c080ded42f6ec511acd4292b1cce415a696911f5f932a0de167f3

@ -8,13 +8,19 @@ NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Vertical interactive completion"
HOMEPAGE="https://github.com/minad/vertico"
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
HOMEPAGE="https://github.com/minad/vertico/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND=">=app-emacs/compat-29.1.4.0"
BDEPEND="${RDEPEND}"

@ -0,0 +1,39 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
NEED_EMACS=27.1
inherit elisp
DESCRIPTION="Vertical interactive completion"
HOMEPAGE="https://github.com/minad/vertico/"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/minad/${PN}.git"
else
SRC_URI="https://github.com/minad/${PN}/archive/${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3+"
SLOT="0"
RDEPEND=">=app-emacs/compat-29.1.4.0"
BDEPEND="${RDEPEND}"
DOCS=( CHANGELOG.org README.org )
SITEFILE="50${PN}-gentoo.el"
src_prepare() {
default
mv extensions/*.el ./ || die
}
src_compile() {
elisp_src_compile
elisp-make-autoload-file
}

Binary file not shown.

@ -1,11 +1,11 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
COMMIT=07f67364e66b9f686a5b15d0c516310fcc3c7c9b
MY_PV=$COMMIT
DESCRIPTION="Ganeti OS provider for simple images "
DESCRIPTION="Ganeti OS provider for simple images"
HOMEPAGE="https://github.com/ganeti/instance-simpleimage"
SRC_URI="https://github.com/ganeti/instance-simpleimage/archive/${MY_PV}.tar.gz -> ${PN}-${MY_PV}.tar.gz"

@ -21,7 +21,7 @@ RDEPEND="app-arch/lz4
app-crypt/mit-krb5
app-emulation/virtualbox
|| (
dev-libs/openssl-compat:1.1.0
dev-libs/openssl-compat:1.1.1
=dev-libs/openssl-1.1*:0
)
dev-libs/glib:2

@ -24,7 +24,7 @@ RDEPEND="app-arch/lz4
app-emulation/virtualbox
)
|| (
dev-libs/openssl-compat:1.1.0
dev-libs/openssl-compat:1.1.1
=dev-libs/openssl-1.1*:0
)
dev-libs/glib:2

@ -0,0 +1,162 @@
https://bugs.gentoo.org/909542
https://gitlab.com/qemu-project/qemu/-/commit/10fad73a2bf1c76c8aa9d6322755e5f877d83ce5
From 10fad73a2bf1c76c8aa9d6322755e5f877d83ce5 Mon Sep 17 00:00:00 2001
From: Christian Schoenebeck <qemu_oss@crudebyte.com>
Date: Wed, 7 Jun 2023 18:29:33 +0200
Subject: [PATCH] 9pfs: prevent opening special files (CVE-2023-2861)
The 9p protocol does not specifically define how server shall behave when
client tries to open a special file, however from security POV it does
make sense for 9p server to prohibit opening any special file on host side
in general. A sane Linux 9p client for instance would never attempt to
open a special file on host side, it would always handle those exclusively
on its guest side. A malicious client however could potentially escape
from the exported 9p tree by creating and opening a device file on host
side.
With QEMU this could only be exploited in the following unsafe setups:
- Running QEMU binary as root AND 9p 'local' fs driver AND 'passthrough'
security model.
or
- Using 9p 'proxy' fs driver (which is running its helper daemon as
root).
These setups were already discouraged for safety reasons before,
however for obvious reasons we are now tightening behaviour on this.
Fixes: CVE-2023-2861
Reported-by: Yanwu Shen <ywsPlz@gmail.com>
Reported-by: Jietao Xiao <shawtao1125@gmail.com>
Reported-by: Jinku Li <jkli@xidian.edu.cn>
Reported-by: Wenbo Shen <shenwenbo@zju.edu.cn>
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Message-Id: <E1q6w7r-0000Q0-NM@lizzy.crudebyte.com>
(cherry picked from commit f6b0de53fb87ddefed348a39284c8e2f28dc4eda)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(Mjt: drop adding qemu_fstat wrapper for 7.2 where wrappers aren't used)
--- a/fsdev/virtfs-proxy-helper.c
+++ b/fsdev/virtfs-proxy-helper.c
@@ -26,6 +26,7 @@
#include "qemu/xattr.h"
#include "9p-iov-marshal.h"
#include "hw/9pfs/9p-proxy.h"
+#include "hw/9pfs/9p-util.h"
#include "fsdev/9p-iov-marshal.h"
#define PROGNAME "virtfs-proxy-helper"
@@ -338,6 +339,28 @@ static void resetugid(int suid, int sgid)
}
}
+/*
+ * Open regular file or directory. Attempts to open any special file are
+ * rejected.
+ *
+ * returns file descriptor or -1 on error
+ */
+static int open_regular(const char *pathname, int flags, mode_t mode)
+{
+ int fd;
+
+ fd = open(pathname, flags, mode);
+ if (fd < 0) {
+ return fd;
+ }
+
+ if (close_if_special_file(fd) < 0) {
+ return -1;
+ }
+
+ return fd;
+}
+
/*
* send response in two parts
* 1) ProxyHeader
@@ -682,7 +705,7 @@ static int do_create(struct iovec *iovec)
if (ret < 0) {
goto unmarshal_err_out;
}
- ret = open(path.data, flags, mode);
+ ret = open_regular(path.data, flags, mode);
if (ret < 0) {
ret = -errno;
}
@@ -707,7 +730,7 @@ static int do_open(struct iovec *iovec)
if (ret < 0) {
goto err_out;
}
- ret = open(path.data, flags);
+ ret = open_regular(path.data, flags, 0);
if (ret < 0) {
ret = -errno;
}
--- a/hw/9pfs/9p-util.h
+++ b/hw/9pfs/9p-util.h
@@ -13,6 +13,8 @@
#ifndef QEMU_9P_UTIL_H
#define QEMU_9P_UTIL_H
+#include "qemu/error-report.h"
+
#ifdef O_PATH
#define O_PATH_9P_UTIL O_PATH
#else
@@ -112,6 +114,38 @@ static inline void close_preserve_errno(int fd)
errno = serrno;
}
+/**
+ * close_if_special_file() - Close @fd if neither regular file nor directory.
+ *
+ * @fd: file descriptor of open file
+ * Return: 0 on regular file or directory, -1 otherwise
+ *
+ * CVE-2023-2861: Prohibit opening any special file directly on host
+ * (especially device files), as a compromised client could potentially gain
+ * access outside exported tree under certain, unsafe setups. We expect
+ * client to handle I/O on special files exclusively on guest side.
+ */
+static inline int close_if_special_file(int fd)
+{
+ struct stat stbuf;
+
+ if (fstat(fd, &stbuf) < 0) {
+ close_preserve_errno(fd);
+ return -1;
+ }
+ if (!S_ISREG(stbuf.st_mode) && !S_ISDIR(stbuf.st_mode)) {
+ error_report_once(
+ "9p: broken or compromised client detected; attempt to open "
+ "special file (i.e. neither regular file, nor directory)"
+ );
+ close(fd);
+ errno = ENXIO;
+ return -1;
+ }
+
+ return 0;
+}
+
static inline int openat_dir(int dirfd, const char *name)
{
return openat(dirfd, name,
@@ -146,6 +180,10 @@ again:
return -1;
}
+ if (close_if_special_file(fd) < 0) {
+ return -1;
+ }
+
serrno = errno;
/* O_NONBLOCK was only needed to open the file. Let's drop it. We don't
* do that with O_PATH since fcntl(F_SETFL) isn't supported, and openat()
--
GitLab

@ -0,0 +1,167 @@
https://bugs.gentoo.org/909542
https://gitlab.com/qemu-project/qemu/-/commit/b9d2887be4e616cdaeedd0b7456bfaa71ee798af
From b9d2887be4e616cdaeedd0b7456bfaa71ee798af Mon Sep 17 00:00:00 2001
From: Christian Schoenebeck <qemu_oss@crudebyte.com>
Date: Wed, 7 Jun 2023 18:29:33 +0200
Subject: [PATCH] 9pfs: prevent opening special files (CVE-2023-2861)
The 9p protocol does not specifically define how server shall behave when
client tries to open a special file, however from security POV it does
make sense for 9p server to prohibit opening any special file on host side
in general. A sane Linux 9p client for instance would never attempt to
open a special file on host side, it would always handle those exclusively
on its guest side. A malicious client however could potentially escape
from the exported 9p tree by creating and opening a device file on host
side.
With QEMU this could only be exploited in the following unsafe setups:
- Running QEMU binary as root AND 9p 'local' fs driver AND 'passthrough'
security model.
or
- Using 9p 'proxy' fs driver (which is running its helper daemon as
root).
These setups were already discouraged for safety reasons before,
however for obvious reasons we are now tightening behaviour on this.
Fixes: CVE-2023-2861
Reported-by: Yanwu Shen <ywsPlz@gmail.com>
Reported-by: Jietao Xiao <shawtao1125@gmail.com>
Reported-by: Jinku Li <jkli@xidian.edu.cn>
Reported-by: Wenbo Shen <shenwenbo@zju.edu.cn>
Signed-off-by: Christian Schoenebeck <qemu_oss@crudebyte.com>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Michael Tokarev <mjt@tls.msk.ru>
Message-Id: <E1q6w7r-0000Q0-NM@lizzy.crudebyte.com>
(cherry picked from commit f6b0de53fb87ddefed348a39284c8e2f28dc4eda)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
--- a/fsdev/virtfs-proxy-helper.c
+++ b/fsdev/virtfs-proxy-helper.c
@@ -26,6 +26,7 @@
#include "qemu/xattr.h"
#include "9p-iov-marshal.h"
#include "hw/9pfs/9p-proxy.h"
+#include "hw/9pfs/9p-util.h"
#include "fsdev/9p-iov-marshal.h"
#define PROGNAME "virtfs-proxy-helper"
@@ -338,6 +339,28 @@ static void resetugid(int suid, int sgid)
}
}
+/*
+ * Open regular file or directory. Attempts to open any special file are
+ * rejected.
+ *
+ * returns file descriptor or -1 on error
+ */
+static int open_regular(const char *pathname, int flags, mode_t mode)
+{
+ int fd;
+
+ fd = open(pathname, flags, mode);
+ if (fd < 0) {
+ return fd;
+ }
+
+ if (close_if_special_file(fd) < 0) {
+ return -1;
+ }
+
+ return fd;
+}
+
/*
* send response in two parts
* 1) ProxyHeader
@@ -682,7 +705,7 @@ static int do_create(struct iovec *iovec)
if (ret < 0) {
goto unmarshal_err_out;
}
- ret = open(path.data, flags, mode);
+ ret = open_regular(path.data, flags, mode);
if (ret < 0) {
ret = -errno;
}
@@ -707,7 +730,7 @@ static int do_open(struct iovec *iovec)
if (ret < 0) {
goto err_out;
}
- ret = open(path.data, flags);
+ ret = open_regular(path.data, flags, 0);
if (ret < 0) {
ret = -errno;
}
--- a/hw/9pfs/9p-util.h
+++ b/hw/9pfs/9p-util.h
@@ -13,6 +13,8 @@
#ifndef QEMU_9P_UTIL_H
#define QEMU_9P_UTIL_H
+#include "qemu/error-report.h"
+
#ifdef O_PATH
#define O_PATH_9P_UTIL O_PATH
#else
@@ -95,6 +97,7 @@ static inline int errno_to_dotl(int err) {
#endif
#define qemu_openat openat
+#define qemu_fstat fstat
#define qemu_fstatat fstatat
#define qemu_mkdirat mkdirat
#define qemu_renameat renameat
@@ -108,6 +111,38 @@ static inline void close_preserve_errno(int fd)
errno = serrno;
}
+/**
+ * close_if_special_file() - Close @fd if neither regular file nor directory.
+ *
+ * @fd: file descriptor of open file
+ * Return: 0 on regular file or directory, -1 otherwise
+ *
+ * CVE-2023-2861: Prohibit opening any special file directly on host
+ * (especially device files), as a compromised client could potentially gain
+ * access outside exported tree under certain, unsafe setups. We expect
+ * client to handle I/O on special files exclusively on guest side.
+ */
+static inline int close_if_special_file(int fd)
+{
+ struct stat stbuf;
+
+ if (qemu_fstat(fd, &stbuf) < 0) {
+ close_preserve_errno(fd);
+ return -1;
+ }
+ if (!S_ISREG(stbuf.st_mode) && !S_ISDIR(stbuf.st_mode)) {
+ error_report_once(
+ "9p: broken or compromised client detected; attempt to open "
+ "special file (i.e. neither regular file, nor directory)"
+ );
+ close(fd);
+ errno = ENXIO;
+ return -1;
+ }
+
+ return 0;
+}
+
static inline int openat_dir(int dirfd, const char *name)
{
return qemu_openat(dirfd, name,
@@ -142,6 +177,10 @@ again:
return -1;
}
+ if (close_if_special_file(fd) < 0) {
+ return -1;
+ }
+
serrno = errno;
/* O_NONBLOCK was only needed to open the file. Let's drop it. We don't
* do that with O_PATH since fcntl(F_SETFL) isn't supported, and openat()

@ -0,0 +1,973 @@
# Copyright 1999-2023 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=ajak
QEMU_DOCS_VERSION="7.2.0"
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# bug #830088
QEMU_DOC_USEFLAG="+doc"
PYTHON_COMPAT=( python3_{9,10,11} )
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=(
tests/fp/berkeley-softfloat-3
tests/fp/berkeley-testfloat-3
ui/keycodemapdb
)
inherit git-r3
SRC_URI=""
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
lzo multipath
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
smartcard snappy spice ssh static 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? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
static-user? ( !plugins )
virgl? ( opengl )
virtfs? ( xattr )
vnc? ( gnutls )
vte? ( gtk )
multipath? ( udev )
plugins? ( !static !static-user )
"
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( 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-util/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="
sys-libs/libcap-ng[static-libs(+)]
>=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/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/libX11
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(+)] )
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 )
png? ( media-libs/libpng:0=[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.12.3
>=app-emulation/spice-0.12.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}
)
)
"
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
dev-util/meson
sys-apps/texinfo
virtual/pkgconfig
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
)
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
sys-devel/bc
)
"
CDEPEND="
!static? (
${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? (
${ALL_DEPEND}
${SOFTMMU_TOOLS_DEPEND}
)
static-user? ( ${ALL_DEPEND} )"
RDEPEND="${CDEPEND}
acct-group/kvm
selinux? (
sec-policy/selinux-qemu
sys-libs/libselinux
)"
PATCHES=(
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
"${FILESDIR}"/${PN}-6.0.0-make.patch
"${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
"${FILESDIR}"/${P}-CVE-2023-2861.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_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"
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
# this setting (-U then -D..=2) will prevent us from trying out 3, so
# drop it. No change to level of protection b/c we patch our toolchain.
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
# Remove bundled modules
rm -r dtc meson 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
--with-git-submodules=ignore
# 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)"
--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 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 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 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-blobs
--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="static"
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
--enable-tools
--enable-cap-ng
)
local static_flag="static"
;;
esac
local targets="${buildtype}_targets"
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
use systemtap && conf_opts+=( --enable-trace-backend=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 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 docs/specs/pci-ids.txt
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
}

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

@ -0,0 +1,964 @@
# Copyright 1999-2023 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="8.0.0"
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
# bug #830088
QEMU_DOC_USEFLAG="+doc"
PYTHON_COMPAT=( python3_{9,10,11} )
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=(
tests/fp/berkeley-softfloat-3
tests/fp/berkeley-testfloat-3
ui/keycodemapdb
)
inherit git-r3
SRC_URI=""
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
lzo multipath
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
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-util/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/cairo
x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
x11-libs/libX11
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(+)] )
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 )
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}
)
)
"
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
dev-util/meson
sys-apps/texinfo
virtual/pkgconfig
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
)
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
sys-devel/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}-8.0.0-make.patch
"${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}-8.0.0-remove-python-meson-check.patch
"${FILESDIR}"/${P}-CVE-2023-2861.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_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"
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
# this setting (-U then -D..=2) will prevent us from trying out 3, so
# drop it. No change to level of protection b/c we patch our toolchain.
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
# Remove bundled modules
rm -r dtc meson 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
--with-git-submodules=ignore
# 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)"
--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 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 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 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 docs/specs/pci-ids.txt
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
}

@ -66,6 +66,7 @@ DIST vhost-user-backend-0.8.0.crate 17703 BLAKE2B 9a4c9ab7f5eb1433b70500972ee580
DIST virtio-bindings-0.1.0.crate 20293 BLAKE2B e511229ae22a53dd9cd1d2aeb235026c139d11ccd2e528eb78848e3586067c027d6f1b7d538276f74548d0949fe60a5d052caeb7f693b3d7d6d8baeb3ab550cd SHA512 ba27ff5790528942b1ed4a20851d426f0a66415970b98957b4bdfc5d3505897874ee9c0242be16d55964799b790f2acd76a1f0c38aa90aff3e3c337584d357ec
DIST virtio-queue-0.7.0.crate 146031 BLAKE2B 8fb2970e87051787e8891393edb345e3b0045681da5d07d5f75c6695580e57faf172c469a8f14b785c5d622e699613696e3544f8a4d06fa66e58a3546c4c191f SHA512 45891b3411915999d1758b0825699ea07912f83cca5802e56d33023378c268d29d77c3a7b52c0a0828b2256ead0ef6264753db2a78a8f571eb9787b879cc544a
DIST virtiofsd-v1.5.1.tar.gz 112534 BLAKE2B 52c86ab9d4842ecd496aed3f09a98be96d7ee0eda43a2519eb066be1f648963b155386f9eac1a1c878c12fd05d928f88700c6a7a840c0f34dfa6f86caab15fec SHA512 a50b3fac6d5eafc691ef4fc8808acb4dc03261f01623f6675a234d457231f96181e9cf6c8ac68b4fe1b1c97257faf56bc6d0c2776142c9dbfe82b4e9bde0e34a
DIST virtiofsd-v1.6.1.tar.bz2 91516 BLAKE2B d0281aec7ff7327a4ea0c36f8cd472fc34ff93516bd657943ee233addbc65f5b3b2c09556e8be215dbe6b0d885b2a9a49eac640958ae0f5c2e6c0908d694ae1f SHA512 62adb94b86ac473c13375d1e4fea037d0ef13ef47b149a831a7c5631cd0d9d7ad9e2f407131c0000caf231a59f6c30c274dfe06d9230979d7c4588c59a9657ca
DIST vm-memory-0.10.0.crate 68989 BLAKE2B 469a22ecf49d00b44c58b11856db46be02ec7abb783a451ed7f57080989d63d2ce1d66bec3ab8f2b92da8c2e8c685a6d5f652570cff9a48368eca037bc2ed6d9 SHA512 7bdeb565f4bdd6b0df39fb753c97addd18a51b5d788076f60f98cb8d532612a6d41c533f8d3bd3ffcb0304f045fe8b1f69762efdf29f957b27959b6be66420ea
DIST vmm-sys-util-0.11.1.crate 56848 BLAKE2B c5de8659cfe17914f008e5f74e45929421e2f8cfd9a801a8a5478e7934f94ce299aa91b9951374a6cb9f94a8311f76ae841b87170685e3d5250337da42d6629a SHA512 7395b730bf5e42ca75a73b2d75b2f624958474549c9ee63d4fc63a5a81c51b1e0c370e79d4290b4d6768499498a2941989845d5816c76e3eb1f5b43fdd0c8286
DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97

@ -124,3 +124,15 @@ src_unpack() {
cargo_src_unpack
fi
}
src_install() {
cargo_src_install
# Install 50-qemu-virtiofsd.json but to avoid conflicts with
# <app-emulation/qemu-8.0.0 install it under different name. In this case,
# smaller number means higher priority, but that's probably what users want
# anyway if they install this package on top of app-emulation/qemu.
# TODO: remove once old QEMUs are removed from the portage.
insinto "/usr/share/qemu/vhost-user"
newins "50-qemu-virtiofsd.json" "40-qemu-virtiofsd.json"
}

@ -0,0 +1,140 @@
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
CRATES="
aho-corasick@0.7.18
ansi_term@0.12.1
arc-swap@1.5.0
atty@0.2.14
autocfg@1.1.0
bitflags@1.3.2
capng@0.2.2
cc@1.0.78
cfg-if@1.0.0
clap@2.34.0
env_logger@0.10.0
errno-dragonfly@0.1.2
errno@0.2.8
error-chain@0.12.4
futures-channel@0.3.21
futures-core@0.3.21
futures-executor@0.3.21
futures-io@0.3.21
futures-macro@0.3.21
futures-sink@0.3.21
futures-task@0.3.21
futures-util@0.3.21
futures@0.3.21
heck@0.3.3
hermit-abi@0.1.19
hermit-abi@0.2.6
hostname@0.3.1
humantime@2.1.0
io-lifetimes@1.0.4
is-terminal@0.4.2
itoa@1.0.2
lazy_static@1.4.0
libc@0.2.139
libseccomp-sys@0.2.1
linux-raw-sys@0.1.4
log@0.4.17
match_cfg@0.1.0
memchr@2.5.0
num_cpus@1.13.1
num_threads@0.1.6
pin-project-lite@0.2.9
pin-utils@0.1.0
proc-macro-error-attr@1.0.4
proc-macro-error@1.0.4
proc-macro2@1.0.40
quote@1.0.20
regex-syntax@0.6.27
regex@1.6.0
rustix@0.36.7
slab@0.4.7
strsim@0.8.0
structopt-derive@0.4.18
structopt@0.3.26
syn@1.0.98
syslog@6.0.1
termcolor@1.1.3
textwrap@0.11.0
time@0.3.11
unicode-ident@1.0.2
unicode-segmentation@1.9.0
unicode-width@0.1.9
vec_map@0.8.2
version_check@0.9.4
vhost-user-backend@0.8.0
vhost@0.6.0
virtio-bindings@0.1.0
virtio-queue@0.7.0
vm-memory@0.10.0
vmm-sys-util@0.11.1
winapi-i686-pc-windows-gnu@0.4.0
winapi-util@0.1.5
winapi-x86_64-pc-windows-gnu@0.4.0
winapi@0.3.9
windows-sys@0.42.0
windows_aarch64_gnullvm@0.42.1
windows_aarch64_msvc@0.42.1
windows_i686_gnu@0.42.1
windows_i686_msvc@0.42.1
windows_x86_64_gnu@0.42.1
windows_x86_64_gnullvm@0.42.1
windows_x86_64_msvc@0.42.1
"
inherit cargo
DESCRIPTION="Shared file system for virtual machines"
HOMEPAGE="https://virtio-fs.gitlab.io/"
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git"
EGIT_BRANCH="main"
else
SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2"
SRC_URI+=" ${CARGO_CRATE_URIS}"
KEYWORDS="~amd64"
S="${WORKDIR}/${PN}-v${PV}"
fi
LICENSE="Apache-2.0 BSD"
# Dependent crate licenses
LICENSE+=" Apache-2.0 BSD MIT Unicode-DFS-2016"
SLOT="0"
DEPEND="
sys-libs/libcap-ng
sys-libs/libseccomp
"
RDEPEND="${DEPEND}"
# rust does not use *FLAGS from make.conf, silence portage warning
# update with proper path to binaries this crate installs, omit leading /
QA_FLAGS_IGNORED="usr/bin/${PN}"
src_unpack() {
if [[ "${PV}" == *9999* ]]; then
git-r3_src_unpack
cargo_live_src_unpack
else
cargo_src_unpack
fi
}
src_install() {
cargo_src_install
# Install 50-qemu-virtiofsd.json but to avoid conflicts with
# <app-emulation/qemu-8.0.0 install it under different name. In this case,
# smaller number means higher priority, but that's probably what users want
# anyway if they install this package on top of app-emulation/qemu.
# TODO: remove once old QEMUs are removed from the portage.
insinto "/usr/share/qemu/vhost-user"
newins "50-qemu-virtiofsd.json" "40-qemu-virtiofsd.json"
}

@ -4,87 +4,87 @@
EAPI=8
CRATES="
aho-corasick-0.7.18
ansi_term-0.12.1
arc-swap-1.5.0
atty-0.2.14
autocfg-1.1.0
bitflags-1.3.2
capng-0.2.2
cc-1.0.78
cfg-if-1.0.0
clap-2.34.0
env_logger-0.10.0
errno-0.2.8
errno-dragonfly-0.1.2
error-chain-0.12.4
futures-0.3.21
futures-channel-0.3.21
futures-core-0.3.21
futures-executor-0.3.21
futures-io-0.3.21
futures-macro-0.3.21
futures-sink-0.3.21
futures-task-0.3.21
futures-util-0.3.21
heck-0.3.3
hermit-abi-0.1.19
hermit-abi-0.2.6
hostname-0.3.1
humantime-2.1.0
io-lifetimes-1.0.4
is-terminal-0.4.2
itoa-1.0.2
lazy_static-1.4.0
libc-0.2.139
libseccomp-sys-0.2.1
linux-raw-sys-0.1.4
log-0.4.17
match_cfg-0.1.0
memchr-2.5.0
num_cpus-1.13.1
num_threads-0.1.6
pin-project-lite-0.2.9
pin-utils-0.1.0
proc-macro-error-1.0.4
proc-macro-error-attr-1.0.4
proc-macro2-1.0.40
quote-1.0.20
regex-1.6.0
regex-syntax-0.6.27
rustix-0.36.7
slab-0.4.7
strsim-0.8.0
structopt-0.3.26
structopt-derive-0.4.18
syn-1.0.98
syslog-6.0.1
termcolor-1.1.3
textwrap-0.11.0
time-0.3.11
unicode-ident-1.0.2
unicode-segmentation-1.9.0
unicode-width-0.1.9
vec_map-0.8.2
version_check-0.9.4
vhost-0.6.0
vhost-user-backend-0.8.0
virtio-bindings-0.1.0
virtio-queue-0.7.0
vm-memory-0.10.0
vmm-sys-util-0.11.1
winapi-0.3.9
winapi-i686-pc-windows-gnu-0.4.0
winapi-util-0.1.5
winapi-x86_64-pc-windows-gnu-0.4.0
windows-sys-0.42.0
windows_aarch64_gnullvm-0.42.1
windows_aarch64_msvc-0.42.1
windows_i686_gnu-0.42.1
windows_i686_msvc-0.42.1
windows_x86_64_gnu-0.42.1
windows_x86_64_gnullvm-0.42.1
windows_x86_64_msvc-0.42.1
aho-corasick@0.7.18
ansi_term@0.12.1
arc-swap@1.5.0
atty@0.2.14
autocfg@1.1.0
bitflags@1.3.2
capng@0.2.2
cc@1.0.78
cfg-if@1.0.0
clap@2.34.0
env_logger@0.10.0
errno-dragonfly@0.1.2
errno@0.2.8
error-chain@0.12.4
futures-channel@0.3.21
futures-core@0.3.21
futures-executor@0.3.21
futures-io@0.3.21
futures-macro@0.3.21
futures-sink@0.3.21
futures-task@0.3.21
futures-util@0.3.21
futures@0.3.21
heck@0.3.3
hermit-abi@0.1.19
hermit-abi@0.2.6
hostname@0.3.1
humantime@2.1.0
io-lifetimes@1.0.4
is-terminal@0.4.2
itoa@1.0.2
lazy_static@1.4.0
libc@0.2.139
libseccomp-sys@0.2.1
linux-raw-sys@0.1.4
log@0.4.17
match_cfg@0.1.0
memchr@2.5.0
num_cpus@1.13.1
num_threads@0.1.6
pin-project-lite@0.2.9
pin-utils@0.1.0
proc-macro-error-attr@1.0.4
proc-macro-error@1.0.4
proc-macro2@1.0.40
quote@1.0.20
regex-syntax@0.6.27
regex@1.6.0
rustix@0.36.7
slab@0.4.7
strsim@0.8.0
structopt-derive@0.4.18
structopt@0.3.26
syn@1.0.98
syslog@6.0.1
termcolor@1.1.3
textwrap@0.11.0
time@0.3.11
unicode-ident@1.0.2
unicode-segmentation@1.9.0
unicode-width@0.1.9
vec_map@0.8.2
version_check@0.9.4
vhost-user-backend@0.8.0
vhost@0.6.0
virtio-bindings@0.1.0
virtio-queue@0.7.0
vm-memory@0.10.0
vmm-sys-util@0.11.1
winapi-i686-pc-windows-gnu@0.4.0
winapi-util@0.1.5
winapi-x86_64-pc-windows-gnu@0.4.0
winapi@0.3.9
windows-sys@0.42.0
windows_aarch64_gnullvm@0.42.1
windows_aarch64_msvc@0.42.1
windows_i686_gnu@0.42.1
windows_i686_msvc@0.42.1
windows_x86_64_gnu@0.42.1
windows_x86_64_gnullvm@0.42.1
windows_x86_64_msvc@0.42.1
"
inherit cargo
@ -92,18 +92,20 @@ inherit cargo
DESCRIPTION="Shared file system for virtual machines"
HOMEPAGE="https://virtio-fs.gitlab.io/"
if [[ ${PV} = *9999* ]]; then
if [[ ${PV} == *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git"
EGIT_BRANCH="main"
else
SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.gz
$(cargo_crate_uris ${CRATES})"
SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2"
SRC_URI+=" ${CARGO_CRATE_URIS}"
KEYWORDS="~amd64"
S="${WORKDIR}/${PN}-v${PV}"
fi
LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD MIT Unicode-DFS-2016 Unlicense"
LICENSE="Apache-2.0 BSD"
# Dependent crate licenses
LICENSE+=" Apache-2.0 BSD MIT Unicode-DFS-2016"
SLOT="0"
DEPEND="
@ -124,3 +126,15 @@ src_unpack() {
cargo_src_unpack
fi
}
src_install() {
cargo_src_install
# Install 50-qemu-virtiofsd.json but to avoid conflicts with
# <app-emulation/qemu-8.0.0 install it under different name. In this case,
# smaller number means higher priority, but that's probably what users want
# anyway if they install this package on top of app-emulation/qemu.
# TODO: remove once old QEMUs are removed from the portage.
insinto "/usr/share/qemu/vhost-user"
newins "50-qemu-virtiofsd.json" "40-qemu-virtiofsd.json"
}

Binary file not shown.

@ -320,7 +320,7 @@ SRC_URI="https://github.com/Canop/broot/archive/v${PV}.tar.gz -> ${P}.tar.gz
LICENSE="Apache-2.0 BSD-2 BSD LGPL-3+ MIT ZLIB"
SLOT="0"
KEYWORDS="~amd64"
KEYWORDS="amd64"
IUSE="X"
RDEPEND="

@ -14,6 +14,10 @@ SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="doc gtk nls +pci static-libs"
# Upstream doesn't seem to care about tests: failures for lack of translations,
# and no real test targets.
RESTRICT='test'
RDEPEND="app-misc/ddccontrol-db
dev-libs/glib:2
dev-libs/libxml2:2

@ -14,6 +14,10 @@ SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
IUSE="doc gtk nls +pci static-libs"
# Upstream doesn't seem to care about tests: failures for lack of translations,
# and no real test targets.
RESTRICT='test'
RDEPEND="app-misc/ddccontrol-db
dev-libs/glib:2
dev-libs/libxml2:2

@ -12,3 +12,14 @@ index c12f15c..27d2124 100644
CLEANFILES = \
*expand
--- ddcutil-1.4.1/configure.ac.orig 2023-07-02 22:11:20.601695946 -0700
+++ ddcutil-1.4.1/configure.ac 2023-07-02 22:11:41.306685606 -0700
@@ -63,7 +63,7 @@
AC_ARG_VAR(DBG, [Turn on script debugging messages(0/1)])
dnl AC_MSG_NOTICE([DBG = |$DBG|])
-AM_CONDITIONAL(WARNINGS_ARE_ERRORS_COND, [test "x$ddcutil_version_suffix" != "x"] )
+AM_CONDITIONAL(WARNINGS_ARE_ERRORS_COND, 0)
AS_IF( [test 0$DBG -ne 0],
AC_MSG_NOTICE([debug messages enabled]),

@ -1 +1 @@
DIST fastfetch-1.12.0.tar.gz 537924 BLAKE2B f7d815890193c1ad30cd1d714b9d9a751124dd34a838c9b81e7ac05392082d54e7c658ea93ce2d7ca44d4b8bff9d4cb55ea1e958731eccf1db14a53bc04072b2 SHA512 8a9b63b7eda6002771fe3c5852b31acb337c1a78d382bee8f1caa13c02e24cff1728506af2295c231f02d6ffba8b3bf9772d4a7f7f70938e83d256e74cc14de1
DIST fastfetch-1.12.1.tar.gz 537953 BLAKE2B 1304cfaf02599dbaafe76ed514e675a2e7f684493c9fc4aeab4982b21a6fe6226b0563395ab5a3afa366494ae0c45174f73c79c0cb831434fe820e8a76936bb6 SHA512 04cc98aaf4d22bb064ba9ce7986c1fe4988659cff87a5eb9245907a00a03d95d3e27b589fc5da48743ed476988da98da27bc02fd7cdd5f7f04519a2a637547aa

@ -1,4 +1,4 @@
# Copyright 2021-2022 Gentoo Authors
# Copyright 2021-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -12,6 +12,7 @@ SRC_URI="https://github.com/rpodgorny/uptimed/archive/v${PV}.tar.gz -> ${P}.tar.
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~mips ppc ppc64 ~riscv sparc x86"
IUSE="selinux"
RDEPEND="
acct-group/uptimed
@ -19,6 +20,7 @@ RDEPEND="
"
DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}"
RDEPEND+=" selinux? ( sec-policy/selinux-uptime )"
src_prepare() {
default

Binary file not shown.

@ -1,2 +1 @@
DIST ledger-3.3.1.tar.gz 825005 BLAKE2B 72207dd53e8e8a201511cf9ca245c505e953fee4dc88e2be46753f4037be46dbd882ed94327f502622c1a23f332ddf9a94d2dfa60986fd82f192103612da6ca8 SHA512 6271f5beb0d0b9f157c06bf701f302b229bea1db5343f9d9239a8723039f248920d545bcc4fbea35646fdbcffb960f7830266b141a58ba88496ed34ee7d770a1
DIST ledger-3.3.2.tar.gz 825274 BLAKE2B ee0901eaba234688cc36e399bd86118269d8691162feacf25e70ffaf28e8d572f47a62fb014126f5dce65c73135f21ad4364a642637a80d2577bf20b657fc9a4 SHA512 d5d7058f0e9a02ad1d46e6780675d446070824b321f0f4c1ea6ac0c3dd4f11f259113bc36cbc796e4bb6d0a7898d6a68a25cce639e27a2b2434eec11a612ecb0

@ -1,113 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9,10,11} )
CMAKE_REMOVE_MODULES_LIST=( FindPython Support )
inherit bash-completion-r1 check-reqs cmake python-single-r1
DESCRIPTION="Double-entry accounting system with a command-line reporting interface"
HOMEPAGE="https://www.ledger-cli.org/"
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
IUSE="debug doc python"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="test"
CHECKREQS_MEMORY=8G
RDEPEND="
dev-libs/boost:=[python?]
dev-libs/gmp:0=
dev-libs/mpfr:0=
python? (
$(python_gen_cond_dep '
dev-libs/boost:=[${PYTHON_USEDEP}]
dev-python/cheetah3:=[${PYTHON_USEDEP}]
')
${PYTHON_DEPS}
)
"
DEPEND="${RDEPEND}
dev-libs/utfcpp
doc? (
app-text/texlive[extra]
sys-apps/texinfo
virtual/texi2dvi
)
"
pkg_pretend() {
if use python; then
check-reqs_pkg_pretend
fi
}
pkg_setup() {
if use python; then
check-reqs_pkg_setup
python-single-r1_pkg_setup
fi
}
src_prepare() {
cmake_src_prepare
# Want to type "info ledger" not "info ledger3"
sed -i -e 's/ledger3/ledger/g' \
doc/{CMakeLists.txt,ledger3.texi} test/CheckTexinfo.py \
tools/{cleanup.sh,gendocs.sh,prepare-commit-msg,spellcheck.sh} \
|| die "Failed to update info file name in file contents"
mv doc/ledger{3,}.texi || die "Failed to rename info file name"
rm -r lib/utfcpp || die
}
src_configure() {
local mycmakeargs=(
-DBUILD_DOCS="$(usex doc)"
-DBUILD_WEB_DOCS="$(usex doc)"
-DUSE_PYTHON="$(usex python)"
-DCMAKE_INSTALL_DOCDIR="/usr/share/doc/${PF}"
-DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON
-DBUILD_DEBUG="$(usex debug)"
-DUTFCPP_PATH="${ESYSROOT}/usr/include/utf8cpp"
)
if use python; then
mycmakeargs+=(
-DPython_EXECUTABLE="${PYTHON}"
-DPython_INCLUDE_DIR="$(python_get_includedir)"
)
fi
cmake_src_configure
}
src_compile() {
cmake_src_compile
use doc && cmake_src_compile doc
}
src_install() {
cmake_src_install
newbashcomp contrib/${PN}-completion.bash ${PN}
}
pkg_postinst() {
elog
elog "Since version 3, vim support is released separately."
elog "See https://github.com/ledger/vim-ledger"
elog
elog "For Emacs mode, emerge app-emacs/ledger-mode"
}
# rainy day TODO:
# - IUSE test

@ -13,7 +13,7 @@ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
KEYWORDS="amd64 arm arm64 ~ppc64 ~riscv x86"
IUSE="debug doc python"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"

Binary file not shown.

@ -312,7 +312,7 @@ CRATES="
inherit bash-completion-r1 cargo
DESCRIPTION="Magical shell history"
DESCRIPTION="Shell history manager supporting encrypted synchronisation"
HOMEPAGE="https://github.com/ellie/atuin"
SRC_URI="
https://github.com/ellie/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz

Binary file not shown.

@ -40,6 +40,10 @@ BDEPEND="
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${P}-gcc13.patch
)
src_configure() {
local myargs=(
--disable-bundled-libs

@ -0,0 +1,29 @@
https://bugs.gentoo.org/906250
https://github.com/mgieseki/dvisvgm/commit/b16a8d1c452d809118ceade4d2e8c6f9dfce48ac
From b16a8d1c452d809118ceade4d2e8c6f9dfce48ac Mon Sep 17 00:00:00 2001
From: Martin Gieseking <martin.gieseking@uos.de>
Date: Fri, 5 May 2023 22:22:00 +0200
Subject: [PATCH] added missing includes
--- a/src/DVIActions.hpp
+++ b/src/DVIActions.hpp
@@ -21,6 +21,7 @@
#ifndef DVIACTIONS_HPP
#define DVIACTIONS_HPP
+#include <cstdint>
#include <string>
#include <vector>
--- a/src/Pair.hpp
+++ b/src/Pair.hpp
@@ -22,6 +22,7 @@
#define PAIR_HPP
#include <cmath>
+#include <cstdint>
#include <ostream>
#include "macros.hpp"

@ -9,7 +9,7 @@ SRC_URI="https://github.com/AbiWord/enchant/releases/download/v${PV}/${P}.tar.gz
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 ~ppc-macos"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="aspell +hunspell nuspell test voikko"
RESTRICT="!test? ( test )"

@ -10,7 +10,7 @@ HOMEPAGE="https://gitlab.gnome.org/GNOME/libgepub"
LICENSE="LGPL-2+"
SLOT="0"
KEYWORDS="~amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
IUSE="+introspection webkit"
RDEPEND="

@ -6,7 +6,7 @@ EAPI=8
inherit toolchain-funcs
DESCRIPTION="True Type Font to Postscript Type 1 Converter"
HOMEPAGE="http://ttf2pt1.sourceforge.net/"
HOMEPAGE="https://ttf2pt1.sourceforge.net/"
SRC_URI="mirror://sourceforge/ttf2pt1/${P}.tgz"
LICENSE="ttf2pt1"

Binary file not shown.

@ -1,26 +1,20 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
SLOT="0"
DESCRIPTION=" Arch (tla) interface for XEmacs"
DESCRIPTION="Arch (tla) interface for XEmacs"
XEMACS_PKG_CAT="standard"
RDEPEND="app-xemacs/ediff
app-xemacs/xemacs-base
app-xemacs/jde
app-xemacs/mail-lib
app-xemacs/dired
app-xemacs/prog-modes
"
RDEPEND="app-xemacs/ediff
app-xemacs/xemacs-base
app-xemacs/jde
app-xemacs/mail-lib
app-xemacs/dired
app-xemacs/prog-modes
"
RDEPEND="
app-xemacs/ediff
app-xemacs/xemacs-base
app-xemacs/jde
app-xemacs/mail-lib
app-xemacs/dired
app-xemacs/prog-modes"
KEYWORDS="~alpha amd64 ppc ppc64 ~riscv sparc x86"
inherit xemacs-packages

Binary file not shown.

@ -13,7 +13,7 @@ else
KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION=" A C++ implementation of the SciTokens library with a C library interface"
DESCRIPTION="C++ implementation of the SciTokens library with a C library interface"
HOMEPAGE="https://scitokens.org/"
LICENSE="Apache-2.0"

@ -5,7 +5,7 @@ EAPI=8
inherit cmake
DESCRIPTION="A C++ implementation of the SciTokens library with a C library interface"
DESCRIPTION="C++ implementation of the SciTokens library with a C library interface"
HOMEPAGE="https://github.com/scitokens/scitokens-cpp"
SRC_URI="https://github.com/scitokens/scitokens-cpp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"

@ -13,7 +13,7 @@ else
KEYWORDS="~amd64 ~x86"
fi
DESCRIPTION=" A C++ implementation of the SciTokens library with a C library interface"
DESCRIPTION="C++ implementation of the SciTokens library with a C library interface"
HOMEPAGE="https://scitokens.org/"
LICENSE="Apache-2.0"

Binary file not shown.

@ -0,0 +1 @@
DIST pg-gvm-22.5.1.tar.gz 38657 BLAKE2B e4c29e67650c101762157229dce7fa390f456e37d52ebc0f9c05beda8d5da8c11342857c87377b7bedc5e9e2d33c24b7f8a24e75fbce7cc5a28015d9d9235075 SHA512 aff713d9adceb6dedd4857acd70562bac80d024125637d47883d96bcfd47aa5cd0669c65d69dd307805bd3199a67ca76569cc1a65e19ea391b2c61fe8d359a82

@ -0,0 +1,10 @@
To use the extension in a database create the extension using
CREATE EXTENSION "pg-gvm";
You can do this on the gvmd database running:
root ~ # sudo -u postgres psql gvmd
gvmd=> CREATE EXTENSION "pg-gvm";
gvmd=> \q
Please, read: https://github.com/greenbone/pg-gvm/#use-the-extension

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person" proxied="yes">
<email>foti.giuseppe@gmail.com</email>
<name>Giuseppe Foti</name>
</maintainer>
<maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
<longdescription lang="en">
Greenbone Library for ical functions. This library contains functionality for ical object manipulation.
This is a PostgreSQL server extension that adds several functions used by gvmd, e.g., iCalendar and host
range evaluation. In previous versions, of GVM these functions were managed directly by gvmd while
pg-gvm uses the extension management built into PostgreSQL.
</longdescription>
<upstream>
<remote-id type="github">greenbone/pg-gvm</remote-id>
</upstream>
</pkgmetadata>

@ -0,0 +1,38 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake readme.gentoo-r1
DESCRIPTION="Greenbone Library for helper functions in PostgreSQL"
HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/pg-gvm"
SRC_URI="https://github.com/greenbone/pg-gvm/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
SLOT="0"
LICENSE="GPL-3"
KEYWORDS="~amd64 ~x86"
# Tests requires a running database that match up with the current
# testing slot. Won't run from ${ED}, want's to install too early.
RESTRICT="test"
DEPEND="
>=dev-libs/glib-2.42:2
>=dev-libs/libical-1.0.0:=
>=net-analyzer/gvm-libs-22.6
"
RDEPEND="
${DEPEND}
>=dev-db/postgresql-9.6[uuid]
"
src_install() {
cmake_src_install
readme.gentoo_create_doc
}
pkg_postinst() {
readme.gentoo_print_elog
}

@ -1,12 +0,0 @@
diff -rupN a/src/backend/commands/collationcmds.c b/src/backend/commands/collationcmds.c
--- a/src/backend/commands/collationcmds.c 2020-11-07 08:03:24.122756440 +0300
+++ b/src/backend/commands/collationcmds.c 2020-11-07 08:04:18.168901199 +0300
@@ -464,7 +464,7 @@ get_icu_language_tag(const char *localen
UErrorCode status;
status = U_ZERO_ERROR;
- uloc_toLanguageTag(localename, buf, sizeof(buf), TRUE, &status);
+ uloc_toLanguageTag(localename, buf, sizeof(buf), true, &status);
if (U_FAILURE(status))
ereport(ERROR,
(errmsg("could not convert locale name \"%s\" to language tag: %s",

@ -1,143 +0,0 @@
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -5,57 +5,9 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- adminpack \
- amcheck \
- auth_delay \
- auto_explain \
- bloom \
- btree_gin \
- btree_gist \
- chkpass \
- citext \
- cube \
- dblink \
- dict_int \
- dict_xsyn \
- earthdistance \
- file_fdw \
- fuzzystrmatch \
- hstore \
- intagg \
- intarray \
- isn \
- lo \
- ltree \
oid2name \
- pageinspect \
- passwordcheck \
- pg_buffercache \
- pg_freespacemap \
- pg_prewarm \
- pg_standby \
- pg_stat_statements \
- pg_trgm \
- pgcrypto \
- pgrowlocks \
- pgstattuple \
- pg_visibility \
- postgres_fdw \
- seg \
- spi \
- tablefunc \
- tcn \
- test_decoding \
- tsm_system_rows \
- tsm_system_time \
- unaccent \
vacuumlo
-ifeq ($(with_openssl),yes)
-SUBDIRS += sslinfo
-else
-ALWAYS_SUBDIRS += sslinfo
-endif
ifneq ($(with_uuid),no)
SUBDIRS += uuid-ossp
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -51,7 +51,7 @@
##########################################################################
-all: submake-libpgport submake-schemapg postgres $(POSTGRES_IMP)
+all: generated-headers
ifneq ($(PORTNAME), cygwin)
ifneq ($(PORTNAME), win32)
@@ -226,23 +226,7 @@
##########################################################################
-install: all installdirs install-bin
-ifeq ($(PORTNAME), cygwin)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
-ifeq ($(PORTNAME), win32)
-ifeq ($(MAKE_DLL), true)
- $(INSTALL_DATA) libpostgres.a '$(DESTDIR)$(libdir)/libpostgres.a'
-endif
-endif
- $(MAKE) -C catalog install-data
- $(MAKE) -C tsearch install-data
- $(INSTALL_DATA) $(srcdir)/libpq/pg_hba.conf.sample '$(DESTDIR)$(datadir)/pg_hba.conf.sample'
- $(INSTALL_DATA) $(srcdir)/libpq/pg_ident.conf.sample '$(DESTDIR)$(datadir)/pg_ident.conf.sample'
- $(INSTALL_DATA) $(srcdir)/utils/misc/postgresql.conf.sample '$(DESTDIR)$(datadir)/postgresql.conf.sample'
- $(INSTALL_DATA) $(srcdir)/access/transam/recovery.conf.sample '$(DESTDIR)$(datadir)/recovery.conf.sample'
+install:
install-bin: postgres $(POSTGRES_IMP) installdirs
$(INSTALL_PROGRAM) postgres$(X) '$(DESTDIR)$(bindir)/postgres$(X)'
--- a/src/bin/Makefile
+++ b/src/bin/Makefile
@@ -14,19 +14,8 @@
include $(top_builddir)/src/Makefile.global
SUBDIRS = \
- initdb \
- pg_archivecleanup \
- pg_basebackup \
pg_config \
- pg_controldata \
- pg_ctl \
pg_dump \
- pg_resetwal \
- pg_rewind \
- pg_test_fsync \
- pg_test_timing \
- pg_upgrade \
- pg_waldump \
pgbench \
psql \
scripts
--- a/src/Makefile
+++ b/src/Makefile
@@ -15,21 +15,12 @@
SUBDIRS = \
common \
port \
- timezone \
backend \
- backend/utils/mb/conversion_procs \
- backend/snowball \
include \
interfaces \
- backend/replication/libpqwalreceiver \
- backend/replication/pgoutput \
fe_utils \
bin \
- pl \
- makefiles \
- test/regress \
- test/isolation \
- test/perl
+ makefiles
# There are too many interdependencies between the subdirectories, so
# don't attempt parallel make here.

Binary file not shown.

@ -1,4 +1,4 @@
# Copyright 1999-2021 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -6,7 +6,7 @@ EAPI=7
inherit autotools
DESCRIPTION="A portable C++ GUI library designed for games using Allegro, SDL and/or OpenGL"
HOMEPAGE="http://guichan.sourceforge.net/"
HOMEPAGE="https://guichan.sourceforge.net/oldsite/about.shtml"
SRC_URI="https://guichan.googlecode.com/files/${P}.tar.gz"
LICENSE="BSD"

@ -1,4 +1,4 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -6,7 +6,7 @@ EAPI=7
inherit toolchain-funcs
DESCRIPTION="Tools and libraries for NWN file manipulation"
HOMEPAGE="http://openknights.sourceforge.net/"
HOMEPAGE="https://sourceforge.net/projects/openknights"
SRC_URI="mirror://sourceforge/openknights/${P}.tar.gz"
LICENSE="openknights"

@ -1,4 +1,4 @@
# Copyright 1999-2020 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -8,7 +8,7 @@ MY_P=${MY_PN}-${PV}
inherit cmake
DESCRIPTION="Qt support for OpenSceneGraph"
HOMEPAGE="http://www.openscenegraph.org/"
HOMEPAGE="https://www.openscenegraph.org/"
SRC_URI="https://github.com/openscenegraph/${MY_PN}/archive/${PV}.tar.gz -> ${MY_P}.tar.gz"
LICENSE="wxWinLL-3 LGPL-2.1"

@ -12,7 +12,7 @@ MY_PN="OpenSceneGraph"
MY_P=${MY_PN}-${PV}
DESCRIPTION="Open source high performance 3D graphics toolkit"
HOMEPAGE="http://www.openscenegraph.org/"
HOMEPAGE="https://www.openscenegraph.org/"
SRC_URI="https://github.com/${PN}/${MY_PN}/archive/${MY_P}.tar.gz"
S="${WORKDIR}/${MY_PN}-${MY_P}"

Binary file not shown.

@ -1,3 +1,2 @@
DIST fuzion-0.080.tar.gz 659142 BLAKE2B b1889ea646ddcb49248db1aa65cfbd3971ddfcad28976e39f631d7f6e3bd7e78f4dbc08756711820e982bcee8aef7eaf8de69a01408457d371c00fad926386ac SHA512 6bae87090b613dc82cc08526c66a62b81e757dc686130553a6f35ef9ea11dacbd726ee52ccb63019bcec876d5531b6a7263f48538eb05c062482f7609cd229c8
DIST fuzion-0.081.tar.gz 710674 BLAKE2B ef58bb6b27640f6de4af3abe63b5ef6edbf82b6dc1914ba5dacf66ab2330e5eee884fbe08a3152353454474fd6226cdc5746b04bc791e4d26e81ae6fe8f47b3b SHA512 784823e5c1dc26cac2f61320b1c0aee232a8582e77fbb0d7a99d1ddc116232c436b0a1fc662fda025f93acee05c49e99a2cffdd6d0f1fa013c82d6475a194aeb
DIST fuzion-0.082.tar.gz 751728 BLAKE2B d876d8bc762e9f2bee25e93aee0b118721136398f9e6c98e70adc50ce684fdcaa15991448ca748b1ae1f348e5facc442277b600ab3b5a809284144aa2f9b4928 SHA512 17cd56186e0fd7e07d5f592b7f8edc47e2609d0a6df08877c1db773f9ac56d8fd8ce60a1b7cffd918e23e20fad29a4c05c49d95a07cc3bec492e67d749837c83
DIST fuzion-0.083.tar.gz 830470 BLAKE2B dcd320fbc8e4e426857f26004678e6e768d3baa987668db2c8b6e2b52c8dfffecd4e65f5d3930f7aa0726b0ae5be1a6266c6721fd4de7d0d277e2e779adaf3ff SHA512 1f727bb280d3de15f085093eac63810c6cadb6e8a5939d288abdbd5b79f4bb982e568dba484c5db087b3050635330f4b93d81c457ec50c7e2e9ceb21dc89dea5

@ -1,55 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit java-pkg-2
DESCRIPTION="A language with a focus on simplicity, safety and correctness"
HOMEPAGE="https://flang.dev/
https://github.com/tokiwa-software/fuzion/"
SRC_URI="https://github.com/tokiwa-software/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND=">=virtual/jre-17:*"
DEPEND=">=virtual/jdk-17:*"
BDEPEND="test? ( sys-devel/clang:* )"
DOCS=( README.md release_notes.md )
src_compile () {
emake -j1
}
src_test() {
emake -j1 run_tests_parallel
}
src_install() {
# Remove unnecessary files from build directory. bug #893450
local torm torm_path
for torm in tests run_tests.{failures,results} ; do
torm_path="${S}"/build/${torm}
if [[ -e "${torm_path}" ]] ; then
rm -r "${torm_path}" || die "failed to remove ${toremove_path}"
fi
done
insinto /usr/share/${PN}
doins -r build/.
insopts -m755
doins -r build/bin
local bin
for bin in fz fzjava ; do
dosym -r /usr/share/${PN}/bin/${bin} /usr/bin/${bin}
done
einstalldocs
}

@ -8,16 +8,25 @@ inherit java-pkg-2
DESCRIPTION="A language with a focus on simplicity, safety and correctness"
HOMEPAGE="https://flang.dev/
https://github.com/tokiwa-software/fuzion/"
SRC_URI="https://github.com/tokiwa-software/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://github.com/tokiwa-software/${PN}.git"
else
SRC_URI="https://github.com/tokiwa-software/${PN}/archive/v${PV}.tar.gz
-> ${P}.tar.gz"
KEYWORDS="~amd64 ~x86"
fi
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 ~x86"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND=">=virtual/jre-17:*"
RDEPEND="
>=virtual/jre-17:*
dev-libs/boehm-gc
"
DEPEND=">=virtual/jdk-17:*"
BDEPEND="test? ( sys-devel/clang:* )"
@ -33,9 +42,11 @@ src_test() {
src_install() {
# Remove unnecessary files from build directory. bug #893450
local torm torm_path
local torm
local torm_path
for torm in tests run_tests.{failures,results} ; do
torm_path="${S}"/build/${torm}
if [[ -e "${torm_path}" ]] ; then
rm -r "${torm_path}" || die "failed to remove ${toremove_path}"
fi

@ -5,9 +5,8 @@ DIST perl-5.34.1.tar.xz 12760168 BLAKE2B 3768e55f66551c83295153e91d25d568b7b8638
DIST perl-5.36.0-patches-1.tar.xz 20352 BLAKE2B f5413c75c5bbced230ad7fa692998caef8e4041f3394ae5212dc2aaee465de619b56cf07551be1bb36f2e06b9ed7d0ddda31ad4a7ec81d5c0c64b698ddd80379 SHA512 ab24577b6d71a13d9ccf272efa0881b29933b6a39532ca0d71d4c9a134f451bbe5f3d87c6c851f26114702ac3f92af5c5a72129a458ebee31e372106955eb157
DIST perl-5.36.0.tar.xz 13051500 BLAKE2B e4864a4c21e5242df4164c73db8af10f7b9c36b075e0c05777abec79716db7778ccbf2c0c9e7e749518ad310019d2a6b32bd8b5ab2af5a8b16b5d920f83d034f SHA512 6dd6ac2a77566c173c5ab9c238cf555f2c3e592e89abb5600bc23ce1cbd0c349e0233f6417cbbf1f6d0aefc6a734ba491285af0d3dc68a605b658b65c89f1dab
DIST perl-5.36.1.tar.xz 13053604 BLAKE2B baab610d16e444338ad7d529bad6a88e12010786bd25f2ab117ab4dd636859ff862cb925700095434f05a802bea5b89a9d41769f26bdbae439443020950882bd SHA512 8d1ec654c59d078bfc477f11c9526233199a85e4d4f6f5a55bf9eb7802cd355189c669cc6785d2d5e741c1de4d740b7a0cfd3c0198122586a07ac7f527fb14af
DIST perl-5.38.0-RC1.tar.xz 13570400 BLAKE2B a08f5ab6d1d8cf4572929b6e47834cf3e17dec33e8e41916f5a9f3524281493f369b75054ef7232b777b9b162635e4ee7864d8fd4f97de542b3d9704ba526af2 SHA512 1bd17db43e5b25fdcd8f0addd53820371f78173fe2bf6ca12de06589ecb296314e996cfa37357f656a694cf56504b85e7d7aef4f8cd367edb64653951b7a2efd
DIST perl-5.38.0-RC2.tar.xz 13557644 BLAKE2B 729b22329e39a23cbb80124e72fc9127ab800f03a9e53cbc868c6834e3e66577a36d53c0bec4fc2dae4e03caff1ad8dcc63a14d3dd038fc7cd75dcdc3ec875c5 SHA512 5273520c2d01b7f069e24fd3d7b05446bf0e44fe349e28dc08fc3c3e7043dc13c315f4ba41cd1a28973af98ea5bb280680e092fd63b005d0a83f64f4073a2dd3
DIST perl-5.38.0-patches-1.tar.gz 26047 BLAKE2B 809dd5242f9868e54525ae8056598d3252c889afc72ed6f122174f828947223399a5ba4dbc16dd43501f7138205991f8c102cbe0ed94175ae3353040c53a0162 SHA512 c66160e20095555aa21d3be70050dce934d62e55e01dcf0f716129b2faa390923958a48bc448b4fab6f55e5b097eb378f7a6409a92c024fe68c8b34fddcfc5e4
DIST perl-5.38.0.tar.xz 13565448 BLAKE2B 22fd334d911e8ebe16ad2a96522110ad2c14d09dcd04d5e64391c7ffffbb8ec92dd80d3a0f8eb105fb45aef8a2f78457174133503f7aeac4d90f762a44631478 SHA512 71beff7f6daa22a967972f5805daf2d4ff837a17e5ab808780f815d5914a67acf4f2e92acac0f2d8b24bdde4ceec0c2f7cb3029b5eadeeb30191f757e1bf0f9d
DIST perl-cross-1.3.7.tar.gz 118291 BLAKE2B dc9c060857d6905c817e91c3f5b1f546b76e02c6de02dc260185e0de8628a5ead3a557501da75549e2585cd30879190558740e697b1c78a69fa08ccb5649efcd SHA512 1111274f34f8b46e9f418883e9b1652ba4a5a9b4a5880a9a5b38bc8aeb5d75a9f4943233870f5ebf5fbcdc0c30b2983ace11ad051b55d3283327d8f2c15e172c
DIST perl-cross-1.4.1.tar.gz 117688 BLAKE2B e01103fb92764213dafb1ab92954fdc4bdcf1bd71a0064279ee75fed55a1c71850eaabdf667d6ab1c15eadccf7497668e5bb5ab13de33fef707fba14bfd52912 SHA512 5f403d3a52f724383d25c23b08e8001954300fa8f07a5b49df440ef4d06ef756404a6e448093c4f4d4f9a470b1c3f2b1b8b27d3d227ac1823552f6a377edd06a
DIST perl-cross-1.4.tar.gz 113861 BLAKE2B 7c7783afccc6a04ab122a7c60b1cff7f0a2725655b2b63325ca25d7b8acb0cf993b496e2a590db943054336337ad215550b6b2a565f1d91a5aa9cfe3a4c36db4 SHA512 bde73cac13c0b42c4c6783d7e30dea491d70b65131e1c8434ef75db1f39a8e15ef5857568b706e8456faa3822402676dd247a1f20f4bed983597fdd5a6b4faad

@ -1,817 +0,0 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
PATCH_VER=1
CROSS_VER=1.4.1
PATCH_BASE="perl-5.38.0-patches-${PATCH_VER}"
PATCH_DEV=dilfridge
DIST_AUTHOR=RJBS
# Greatest first, don't include yourself
# Devel point-releases are not ABI-intercompatible, but stable point releases are
# BIN_OLDVERSEN contains only C-ABI-intercompatible versions
PERL_BIN_OLDVERSEN=""
if [[ "${PV##*.}" == "9999" ]]; then
DIST_VERSION=5.30.0
else
DIST_VERSION="${PV/_rc/-RC}"
fi
SHORT_PV="${DIST_VERSION%.*}"
# Even numbered major versions are ABI intercompatible
# Odd numbered major versions are not
if [[ $(( ${SHORT_PV#*.} % 2 )) == 1 ]]; then
SUBSLOT="${DIST_VERSION%-RC*}"
else
SUBSLOT="${DIST_VERSION%.*}"
fi
# Used only in tar paths
MY_P="perl-${DIST_VERSION}"
# Used in library paths
MY_PV="${DIST_VERSION%-RC*}"
DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
SRC_URI="
mirror://cpan/src/5.0/${MY_P}.tar.xz
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
"
HOMEPAGE="https://www.perl.org/"
LICENSE="|| ( Artistic GPL-1+ )"
SLOT="0/${SUBSLOT}"
if [[ "${PV##*.}" != "9999" ]] && [[ "${PV/rc//}" == "${PV}" ]] ; 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="berkdb debug doc gdbm ithreads minimal quadmath"
RDEPEND="
berkdb? ( sys-libs/db:= )
gdbm? ( >=sys-libs/gdbm-1.8.3:= )
app-arch/bzip2
>=sys-libs/zlib-1.2.12
virtual/libcrypt:=
"
DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}"
PDEPEND="
!minimal? (
>=app-admin/perl-cleaner-2.5
>=virtual/perl-CPAN-2.290.0
>=virtual/perl-Encode-3.120.0
>=virtual/perl-File-Temp-0.230.400-r2
>=virtual/perl-Data-Dumper-2.154.0
virtual/perl-Test-Harness
)
"
# bug 390719, bug 523624
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
S="${WORKDIR}/${MY_P}"
dual_scripts() {
src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
src_remove_dual perl-core/CPAN 2.360.0 cpan
src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
src_remove_dual perl-core/Encode 3.190.0 enc2xs piconv
src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
src_remove_dual perl-core/IO-Compress 2.204.0 zipdetails
src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
src_remove_dual perl-core/Module-CoreList 5.202.305.200 corelist
src_remove_dual perl-core/Pod-Checker 1.750.0 podchecker
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
src_remove_dual perl-core/Test-Harness 3.440.0 prove
src_remove_dual perl-core/podlators 5.10.0 pod2man pod2text
src_remove_dual_man perl-core/podlators 5.10.0 /usr/share/man/man1/perlpodstyle.1
}
check_rebuild() {
# Fresh install
if [[ -z "${REPLACING_VERSIONS}" ]]; then
return 0;
# Major Upgrade
# doesn't matter if there's multiple copies, it still needs a rebuild
# if the string is anything other than "5.CURRENTMAJOR"
elif [[ "${REPLACING_VERSIONS%.*}" != "${PV%.*}" ]]; then
echo ""
ewarn "UPDATE THE PERL MODULES:"
ewarn "After updating dev-lang/perl the installed Perl modules"
ewarn "have to be re-installed. In most cases, this is done automatically"
ewarn "by the package manager, but subsequent steps are still recommended"
ewarn "to ensure system consistency."
ewarn
ewarn "You should start with a depclean to remove any unused perl dependencies"
ewarn "that may confuse portage in future. Regular depcleans are also encouraged"
ewarn "as part of your regular update cycle, as that will keep perl upgrades working."
ewarn "Recommended: emerge --depclean -va"
ewarn
ewarn "You should then call perl-cleaner to clean up any old files and trigger any"
ewarn "remaining rebuilds portage may have missed."
ewarn "Use: perl-cleaner --all"
return 0;
# Reinstall w/ USE Change
elif
( use ithreads && ! has_version dev-lang/perl[ithreads] ) || \
( ! use ithreads && has_version dev-lang/perl[ithreads] ) || \
( use quadmath && ! has_version dev-lang/perl[quadmath] ) || \
( ! use quadmath && has_version dev-lang/perl[quadmath] ) || \
( use debug && ! has_version dev-lang/perl[debug] ) || \
( ! use debug && has_version dev-lang/perl[debug] ) ; then
echo ""
ewarn "TOGGLED USE-FLAGS WARNING:"
ewarn "You changed one of the use-flags ithreads, quadmath, or debug."
ewarn "You must rebuild all perl-modules installed."
ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl"
fi
}
pkg_setup() {
case ${CHOST} in
*-darwin*) osname="darwin" ;;
*-solaris*) osname="solaris" ;;
*) osname="linux" ;;
esac
myarch="${CHOST%%-*}-${osname}"
if use debug ; then
myarch+="-debug"
fi
if use quadmath ; then
myarch+="-quadmath"
fi
if use ithreads ; then
mythreading="-multi"
myarch+="-thread"
fi
PRIV_BASE="/usr/$(get_libdir)/perl5"
SITE_BASE="/usr/local/$(get_libdir)/perl5"
VENDOR_BASE="/usr/$(get_libdir)/perl5/vendor_perl"
LIBPERL="libperl$(get_libname ${MY_PV} )"
PRIV_LIB="${PRIV_BASE}/${SUBSLOT}"
ARCH_LIB="${PRIV_BASE}/${SUBSLOT}/${myarch}${mythreading}"
SITE_LIB="${SITE_BASE}/${SUBSLOT}"
SITE_ARCH="${SITE_BASE}/${SUBSLOT}/${myarch}${mythreading}"
VENDOR_LIB="${VENDOR_BASE}/${SUBSLOT}"
VENDOR_ARCH="${VENDOR_BASE}/${SUBSLOT}/${myarch}${mythreading}"
dual_scripts
}
src_remove_dual_file() {
local i pkg ver
pkg="$1"
ver="$2"
shift 2
case "${EBUILD_PHASE:-none}" in
postinst|postrm)
for i in "$@" ; do
alternatives_auto_makesym "${i}" "${i}-[0-9]*"
done
;;
setup)
for i in "$@" ; do
if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]] ; then
has_version ${pkg} && ewarn "You must reinstall ${pkg} !"
break
fi
done
;;
install)
for i in "$@" ; do
if ! [[ -f "${ED}"${i} ]] ; then
ewarn "${i} does not exist!"
continue
fi
mv "${ED}"${i}{,-${ver}-${P}} || die
done
;;
esac
}
src_remove_dual_man() {
local i pkg ver ff
pkg="$1"
ver="$2"
shift 2
case "${EBUILD_PHASE:-none}" in
postinst|postrm)
for i in "$@" ; do
ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`
ff=${ff##*${i#${i%.[0-9]}}}
alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*"
done
;;
install)
for i in "$@" ; do
if ! [[ -f "${ED}"${i} ]] ; then
ewarn "${i} does not exist!"
continue
fi
mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die
done
;;
esac
}
src_remove_dual() {
local i pkg ver
pkg="$1"
ver="$2"
shift 2
for i in "$@" ; do
src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}"
src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1"
done
}
src_prepare_perlcross() {
cp -a ../perl-cross-${CROSS_VER}/* . || die
# bug 794463, needs further analysis what is exactly wrong here
eapply "${FILESDIR}/perl-5.34.0-crossfit.patch"
# bug 604072
MAKEOPTS+=" -j1"
export MAKEOPTS
}
src_prepare_dynamic() {
ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die
ln -s ${LIBPERL} libperl$(get_libname ) || die
}
# Copy a patch into the patch series
# add_patch SRC_PATH DEST_NAME ['description'] ['bug'] ['bug']
# - description is optional, but recommended
# - all arguments after descriptions are bug URLs
add_patch() {
local patchdir="${WORKDIR}/patches"
local infodir="${WORKDIR}/patch-info"
local src_name dest_name desc
src_name="$1"
dest_name="$2"
desc="$3"
shift; shift; shift;
einfo "Adding ${dest_name} to patch bundle"
cp "${src_name}" "${patchdir}/${dest_name}" || die "Couldn't copy ${src_name} to ${dest_name}"
if [[ -n "${desc}" ]]; then
printf "%s" "${desc}" > "${infodir}/${dest_name}.desc" || die "Couldn't write ${dest_name}.desc"
fi
if [[ $# -gt 0 ]]; then
# Note: when $@ is more than one element, this emits a
# line for each element
printf "%s\n" "$@" > "${infodir}/${dest_name}.bugs" || die "Couldn't write ${dest_name}.bugs"
fi
}
# Remove a patch using a glob expr
# eg:
# rm_patch *-darwin-Use-CC*
#
rm_patch() {
local patchdir="${WORKDIR}/patches"
local expr="$1"
local patch="$( cd "${patchdir}"; echo $expr )"
einfo "Removing $patch ($expr) from patch bundle"
if [[ -e "${patchdir}/${patch}" ]]; then
rm -f "${patchdir}/${patch}" || die "Can't remove ${patch} ( $expr )"
else
ewarn "No ${expr} found in ${patchdir} to remove"
fi
}
# Yes, this is a reasonable amount of code for something seemingly simple
# but this is far easier to debug when things go wrong, and things went wrong
# multiple times while I was getting the exact number of slashes right, which
# requires circumnavigating both bash and sed escape mechanisms.
c_escape_string() {
local slash dquote
slash='\'
dquote='"'
re_slash="${slash}${slash}"
re_dquote="${slash}${dquote}"
# Convert \ to \\,
# " to \"
echo "$1" |\
sed "s|${re_slash}|${re_slash}${re_slash}|g" |\
sed "s|${re_dquote}|${re_slash}${re_dquote}|g"
}
c_escape_file() {
c_escape_string "$(cat "$1")"
}
apply_patchdir() {
local patchdir="${WORKDIR}/patches"
local infodir="${WORKDIR}/patch-info"
local patchoutput="patchlevel-gentoo.h"
# Inject Patch-Level info into description for patchlevel.h patch
# to show in -V
local patch_expr="*List-packaged-patches*"
local patch="$( cd "${patchdir}"; echo $patch_expr )";
einfo "Injecting patch-level info into ${patch}.desc ( $patch_expr )"
if [[ -e "${patchdir}/${patch}" ]]; then
printf "List packaged patches for %s(%s) in patchlevel.h" "${PF}" "${PATCH_BASE}"\
>"${infodir}/${patch}.desc" || die "Can't rewrite ${patch}.desc"
else
eerror "No $patch_expr found in ${patchdir}"
fi
# Compute patch list to apply
# different name other than PATCHES to stop default
# reapplying it
# Single depth is currently only supported, as artifacts can reside
# from the old layout being multiple-directories, as well as it grossly
# simplifying the patchlevel_gentoo.h generation.
local PERL_PATCHES=($(
find "${patchdir}" -maxdepth 1 -mindepth 1 -type f -printf "%f\n" |\
grep -E '[.](diff|patch)$' |\
sort -n
))
for patch in "${PERL_PATCHES[@]}"; do
eapply "${WORKDIR}"/patches/${patch}
done
einfo "Generating $patchoutput"
# This code creates a header file, each iteration
# creates one-or-more-lines for each entry found in PERL_PATCHES
# and STDOUT is redirected to the .h file
for patch in "${PERL_PATCHES[@]}"; do
local desc_f="${infodir}/${patch}.desc"
local bugs_f="${infodir}/${patch}.bugs"
printf ',"%s"\n' "${patch}"
if [[ ! -e "${desc_f}" ]]; then
ewarn "No description provided for ${patch} (expected: ${desc_f} )"
else
local desc="$(c_escape_file "${desc_f}")"
printf ',"- %s"\n' "${desc}"
fi
if [[ -e "${bugs_f}" ]]; then
while read -d $'\n' -r line; do
local esc_line="$(c_escape_string "${line}")"
printf ',"- Bug: %s"\n' "${esc_line}"
done <"${bugs_f}"
fi
done > "${S}/${patchoutput}"
printf "%s\n" "${patchoutput}" >> "${S}/MANIFEST"
}
src_prepare() {
local patchdir="${WORKDIR}/patches"
mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
# Prepare Patch dir with additional patches / remove unwanted patches
# Inject bug/desc entries for perl -V
# Old example:
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
# "Fix broken miniperl on hppa"\
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
# when -lsocket is used e.g. to get h_errno
rm_patch "*-nsl-and-cl*"
fi
apply_patchdir
tc-is-cross-compiler && src_prepare_perlcross
tc-is-static-only || src_prepare_dynamic
if use gdbm; then
sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
ext/NDBM_File/Makefile.PL || die
fi
# Use errno.h from prefix rather than from host system, bug #645804
if use prefix && [[ -e "${EPREFIX}"/usr/include/errno.h ]] ; then
sed -i "/my..sysroot/s:'':'${EPREFIX}':" ext/Errno/Errno_pm.PL || die
fi
if [[ ${CHOST} == *-solaris* ]] ; then
# set a soname, fix linking against just built libperl
sed -i -e 's/netbsd\*/netbsd*|solaris*/' Makefile.SH || die
fi
if [[ ${CHOST} == *-darwin* ]] ; then
# fix install_name (soname) not to reference $D
sed -i -e '/install_name `pwd/s/`pwd`/\\$(shrpdir)/' Makefile.SH || die
# fix environ linkage absence (only a real issue on Darwin9)
if [[ ${CHOST##*-darwin} -le 9 ]] ; then
sed -i -e '/^PLDLFLAGS =/s/=/= -include crt_externs.h -Denviron="(*_NSGetEnviron())"/' \
Makefile.SH || die
fi
fi
default
}
myconf() {
# the myconf array is declared in src_configure
myconf=( "${myconf[@]}" "$@" )
}
# Outputs a list of versions which have been seen in any of the
# primary perl @INC prefix paths, such as:
# /usr/lib64/perl5/<NUMBER>
# /usr/local/lib64/perl5/<NUMBER>
# /usr/lib64/perl5/vendor_perl/<NUMBER>
#
# All values of NUMBER must be like "5.x.y" or like "5.x"
#
find_candidate_inc_versions() {
local regex='.*/5[.][0-9]+\([.][0-9]+\|\)$'
local dirs=(
"${EROOT}${PRIV_BASE}"
"${EROOT}${SITE_BASE}"
"${EROOT}${VENDOR_BASE}"
)
for dir in "${dirs[@]}"; do
if [[ ! -e "${dir}" ]]; then
continue
fi
# Without access to readdir() on these dirs, find will not be able
# to reveal any @INC directories inside them, and will subsequently prune
# them from the built perl's @INC support, breaking our compatiblity options
# entirely.
if [[ ! -r "${dir}" || ! -x "${dir}" ]]; then
eerror "Bad permissions on ${dir}, this will probably break things"
eerror "Ensure ${dir} is +rx for at least uid=$EUID"
eerror "Recommended permission is +rx for all"
eerror "> chmod o+rx ${dir}"
fi
done
einfo "Scanning for old @INC dirs matching '$regex' in: ${dirs[*]}"
find "${dirs[@]}" -maxdepth 1 -mindepth 1 -type d -regex "${regex}" -printf "%f " 2>/dev/null
}
# Sort versions passed versiony-ly, remove self-version if present
# dedup. Takes each version as an argument
sanitize_inc_versions() {
local vexclude="${SUBSLOT}"
einfo "Normalizing/Sorting candidate list: $*"
einfo " to remove '${vexclude}'"
# Note, general numeric sort has to be used
# for the last component, or unique will convert
# 5.30.0 + 5.30 into just 5.30
printf "%s\n" "$@" |\
grep -vxF "${vexclude}" |\
sort -u -nr -t'.' -k1,1rn -k2,2rn -k3,3rg
}
versions_to_inclist() {
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
for v; do
has "${v}" ${oldv} && echo -n "${v}/${myarch}${mythreading}/ ";
echo -n "${v}/ ";
done
}
versions_to_gentoolibdirs() {
local oldv="${DIST_VERSION%-RC} ${PERL_BIN_OLDVERSEN}"
local root
local v
for v; do
for root in "${PRIV_BASE}" "${VENDOR_BASE}" "${SITE_BASE}"; do
local fullpath="${EROOT}${root}/${v}"
if [[ -e "${fullpath}" ]]; then
has "${v}" ${oldv} && printf "%s:" "${fullpath}/${myarch}${mythreading}";
printf "%s:" "${fullpath}"
fi
done
done
}
src_configure() {
declare -a myconf
export LC_ALL="C"
[[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS # bug #394091
# Perl has problems compiling with -Os in your flags with glibc
replace-flags "-Os" "-O2"
# xlocale.h is going away in glibc-2.26, so it's counterproductive
# if we use it and include it in CORE/perl.h ... Perl builds just
# fine with glibc and locale.h only.
# However, the darwin prefix people have no locale.h ...
use elibc_glibc && myconf -Ui_xlocale
# This flag makes compiling crash in interesting ways
filter-flags "-malign-double"
# Generic LTO broken since 5.28, triggers EUMM failures
filter-flags "-flto"
use sparc && myconf -Ud_longdbl
export BUILD_BZIP2=0
export BZIP2_INCLUDE=${EROOT}/usr/include
export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
export BUILD_ZLIB=False
export ZLIB_INCLUDE=${EROOT}/usr/include
export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
myndbm='U'
mygdbm='U'
mydb='U'
if use gdbm ; then
mygdbm='D'
if use berkdb ; then
myndbm='D'
fi
fi
if use berkdb ; then
mydb='D'
has_version '=sys-libs/db-1*' && myndbm='D'
fi
myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db"
if use alpha && [[ "$(tc-getCC)" = "ccc" ]] ; then
ewarn "Perl will not be built with berkdb support, use gcc if you needed it..."
myconf -Ui_db -Ui_ndbm
fi
use ithreads && myconf -Dusethreads
use quadmath && myconf -Dusequadmath
if use debug ; then
append-cflags "-g"
myconf -DDEBUGGING
elif [[ ${CFLAGS} == *-g* ]] ; then
myconf -DDEBUGGING=-g
else
myconf -DDEBUGGING=none
fi
# modifying 'optimize' prevents cross configure script from appending required flags
if tc-is-cross-compiler; then
append-cflags "-fwrapv"
fi
# bug #877659, bug #821577
append-cflags -fno-strict-aliasing
# Autodiscover all old version directories, some of them will even be newer
# if you downgrade
if [[ -z ${PERL_OLDVERSEN} ]]; then
PERL_OLDVERSEN="$( find_candidate_inc_versions )"
fi
# Fixup versions, removing self match, fixing order and dupes
PERL_OLDVERSEN="$( sanitize_inc_versions ${PERL_OLDVERSEN} )"
# Experts who want a "Pure" install can set PERL_OLDVERSEN to an empty string
if [[ -n "${PERL_OLDVERSEN// }" ]]; then
local inclist="$( versions_to_inclist ${PERL_OLDVERSEN} )"
einfo "This version of perl may partially support modules previously"
einfo "installed in any of the following paths:"
for incpath in ${inclist}; do
[[ -e "${EROOT}${VENDOR_BASE}/${incpath}" ]] && einfo " ${EROOT}${VENDOR_BASE}/${incpath}"
[[ -e "${EROOT}${PRIV_BASE}/${incpath}" ]] && einfo " ${EROOT}${PRIV_BASE}/${incpath}"
[[ -e "${EROOT}${SITE_BASE}/${incpath}" ]] && einfo " ${EROOT}${SITE_BASE}/${incpath}"
done
einfo "This is a temporary measure and you should aim to cleanup these paths"
einfo "via world updates and perl-cleaner"
# myconf -Dinc_version_list="${inclist}"
myconf -Dgentoolibdirs="$( versions_to_gentoolibdirs ${PERL_OLDVERSEN} )"
fi
[[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a"
# Make sure we can do the final link #523730, need to set deployment
# target to override hardcoded 10.3 which breaks on modern OSX
[[ ${CHOST} == *-darwin* ]] && \
myconf "-Dld=env MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET} $(tc-getCC)"
# Older macOS with non-Apple GCC chokes on inline in system headers
# using c89 mode as injected by cflags.SH, in addition, we override
# cflags, so we loose PERL_DARWIN which enables compat code that
# apparently on more recent macOS releases is no longer necessary
[[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
append-cflags -Dinline=__inline__ -DPERL_DARWIN
# Prefix: the host system needs not to follow Gentoo multilib stuff, and in
# Prefix itself we don't do multilib either, so make sure perl can find
# something compatible.
if use prefix ; then
# Set a hook to check for each detected library whether it actually works.
export libscheck="
( echo 'main(){}' > '${T}'/conftest.c &&
$(tc-getCC) -o '${T}'/conftest '${T}'/conftest.c -l\$thislib >/dev/null 2>/dev/null
) || xxx=/dev/null"
# Use all host paths that might contain useful stuff, the hook above will filter out bad choices.
local paths="/lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib"
myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}"
elif [[ $(get_libdir) != "lib" ]] ; then
# We need to use " and not ', as the written config.sh use ' ...
myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)"
fi
# don't try building ODBM, bug #354453
disabled_extensions="ODBM_File"
if ! use gdbm ; then
# workaround for bug #157774: don't try building GDBM related stuff with USE="-gdbm"
disabled_extensions="${disabled_extensions} GDBM_File NDBM_File"
fi
myconf -Dnoextensions="${disabled_extensions}"
[[ "${PV##*.}" == "9999" ]] && myconf -Dusedevel -Uversiononly
[[ -n "${EXTRA_ECONF}" ]] && ewarn During Perl build, EXTRA_ECONF=${EXTRA_ECONF}
# allow fiddling via EXTRA_ECONF, bug 558070
eval "local -a EXTRA_ECONF=(${EXTRA_ECONF})"
# setting -Dld= to tc-getLD breaks perl and all perl things
# https://github.com/Perl/perl5/issues/17791#issuecomment-630145202
myconf \
-Duseshrplib \
-Darchname="${myarch}" \
-Dcc="$(tc-getCC)" \
-Dar="$(tc-getAR)" \
-Dnm="$(tc-getNM)" \
-Dcpp="$(tc-getCPP)" \
-Dranlib="$(tc-getRANLIB)" \
-Accflags="${CFLAGS} -DNO_PERL_RAND_SEED" \
-Doptimize="${CFLAGS}" \
-Dldflags="${LDFLAGS}" \
-Dprefix="${EPREFIX}"'/usr' \
-Dsiteprefix="${EPREFIX}"'/usr/local' \
-Dvendorprefix="${EPREFIX}"'/usr' \
-Dscriptdir="${EPREFIX}"'/usr/bin' \
-Dprivlib="${EPREFIX}${PRIV_LIB}" \
-Darchlib="${EPREFIX}${ARCH_LIB}" \
-Dsitelib="${EPREFIX}${SITE_LIB}" \
-Dsitearch="${EPREFIX}${SITE_ARCH}" \
-Dvendorlib="${EPREFIX}${VENDOR_LIB}" \
-Dvendorarch="${EPREFIX}${VENDOR_ARCH}" \
-Dman1dir="${EPREFIX}"/usr/share/man/man1 \
-Dman3dir="${EPREFIX}"/usr/share/man/man3 \
-Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 \
-Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 \
-Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 \
-Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 \
-Dman1ext='1' \
-Dman3ext='3pm' \
-Dlibperl="${LIBPERL}" \
-Dlocincpth="${EPREFIX}"'/usr/include ' \
-Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' \
-Duselargefiles \
-Dd_semctl_semun \
-Dcf_by='Gentoo' \
-Dmyhostname='localhost' \
-Dperladmin='root@localhost' \
-Ud_csh \
-Dsh="${EPREFIX}"/bin/sh \
-Dtargetsh="${EPREFIX}"/bin/sh \
-Uusenm \
"${EXTRA_ECONF[@]}"
if tc-is-cross-compiler; then
./configure \
--target="${CHOST}" \
--build="${CBUILD}" \
-Dinstallprefix='' \
-Dinstallusrbinperl='undef' \
-Dusevendorprefix='define' \
"${myconf[@]}" \
|| die "Unable to configure"
else
sh Configure \
-des \
-Dinstallprefix="${EPREFIX}"'/usr' \
-Dinstallusrbinperl='n' \
"${myconf[@]}" \
|| die "Unable to configure"
fi
}
src_test() {
export NO_GENTOO_NETWORK_TESTS=1;
export GENTOO_ASSUME_SANDBOXED="${GENTOO_ASSUME_SANDBOXED:-1}"
export GENTOO_NO_PORTING_TESTS="${GENTOO_NO_PORTING_TESTS:-1}"
if [[ ${EUID} == 0 ]] ; then
ewarn "Test fails with a sandbox error (#328793) if run as root. Skipping tests..."
return 0
fi
TEST_JOBS="$(makeopts_jobs)" make test_harness || die "test failed"
}
src_install() {
local i
local coredir="${ARCH_LIB}/CORE"
emake DESTDIR="${D}" install
rm -f "${ED}/usr/bin/perl${MY_PV}"
ln -s perl "${ED}"/usr/bin/perl${MY_PV} || die
if ! tc-is-static-only ; then
dolib.so "${ED}"${coredir}/${LIBPERL}
rm -f "${ED}"${coredir}/${LIBPERL}
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname ${SHORT_PV}) || die
ln -sf ${LIBPERL} "${ED}"/usr/$(get_libdir)/libperl$(get_libname) || die
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/${LIBPERL} || die
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname ${SHORT_PV}) || die
ln -sf ../../../../${LIBPERL} "${ED}"${coredir}/libperl$(get_libname) || die
fi
rm -rf "${ED}"/usr/share/man/man3 || die "Unable to remove module man pages"
# This removes ${D} from Config.pm
for i in $(find "${D}" -iname "Config.pm" ) ; do
einfo "Removing ${D} from ${i}..."
sed -i -e "s:${D}::" "${i}" || die "Sed failed"
done
dodoc Changes* README AUTHORS
if use doc ; then
# HTML Documentation
# We expect errors, warnings, and such with the following.
dodir /usr/share/doc/${PF}/html
LD_LIBRARY_PATH=. ./perl installhtml \
--podroot='.' \
--podpath='lib:ext:pod:vms' \
--recurse \
--htmldir="${ED}/usr/share/doc/${PF}/html"
fi
[[ -d ${ED}/usr/local ]] && rm -r "${ED}"/usr/local
dual_scripts
}
pkg_preinst() {
check_rebuild
}
pkg_postinst() {
dual_scripts
if [[ -z "${ROOT}" ]] ; then
local INC DIR file
INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }')
einfo "Removing old .ph files"
for DIR in ${INC} ; do
if [[ -d "${DIR}" ]] ; then
for file in $(find "${DIR}" -name "*.ph" -type f ) ; do
rm -f "${file}"
einfo "<< ${file}"
done
fi
done
# Silently remove the now empty dirs
for DIR in ${INC} ; do
if [[ -d "${DIR}" ]] ; then
find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &> /dev/null
fi
done
fi
}
pkg_postrm() {
dual_scripts
}

@ -92,7 +92,7 @@ DIST rust-1.67.1-riscv64gc-unknown-linux-gnu.tar.xz 199552128 BLAKE2B acfeb341ff
DIST rust-1.67.1-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 246adaf9b5980413ac32af57d2e089e765336e085bb45799aaeb80311a7a5d73545779c8b2e810b763520d9d5a5d475f764675191c12a2d4b2b313c11230d311 SHA512 bf447737b414839b126fe258bb5dd6d34bb9d47d57fdb68a4cd0b9296fda2c47aa267cc9722f7821bab365b95ee4a2c93631786f89c7cb5197c283897c413016
DIST rust-1.67.1-s390x-unknown-linux-gnu.tar.xz 235970856 BLAKE2B efbe49525e880b07de613be0d22bb87065e0d64f7006ae07c9deb020b65bcbb6dd20cdc250e740763480426baf9c64adfd06e005b616543f2ef9451e99b7d411 SHA512 308aa7bc5e32c50a0b5c2fdb5e9bae60d8c8ea32fcab72205aea9832f24df35d9331c63503e092ecfee18c1eedcb5a50138837e29bb50d74f526aafbad9e71aa
DIST rust-1.67.1-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 875b4168bf1458376ba31aa8b27d7bb331cb3bcfaf2645e65d0a2167cf55e6a6a2a0bf5f66438e7cca7c73f1cc02fddeea3be570e37ca80f5cc14fc5e0349423 SHA512 97a0e05fabc4755ffaf23ada6d77dde78b410ef530437a8700673ee986c1fc5015665948fb4c63f2e0716bc022ef7d6f061fee0a1516995a6a4d7ea100d234d2
DIST rust-1.67.1-sparc64-unknown-linux-gnu.tar.xz 64593768 BLAKE2B 17de4478cac7be3e30b2e6d5e9a5b9803d063186d9425a886832f6116883578bea300001d4f85c925edf9be8e8bab829106b15696e1eba7d6b9993c4f38f5eba SHA512 2d6a89ed15a96b5a8bc8f83bf84708fa37b627aaa0834f90f5442c807135c7e37a0680bebdb253f41efa45fb20b49b4304ddd9fea742fa4547da226a1b9ff9e1
DIST rust-1.67.1-sparc64-unknown-linux-gnu.sam.tar.xz 64782980 BLAKE2B 61bb8a434262d009f6ccd7f0df809fb01bc82ec04f8ab25993b644e27186969c096692122310d9523926e1607518a32e5db8f9a2025f77c7937bb41bf12940f0 SHA512 9ace8cc54245be47896a8a566b04f3bbd19d837d21b1a6a489b1396521c86b100b36b2034642dfe17e1f810a2f74e0035637b06c39fb6fe63540582e524376cd
DIST rust-1.67.1-x86_64-unknown-linux-gnu.tar.xz 186714164 BLAKE2B 648efbb30233335e31c9a90aed4958325258365cd4aef5e01312005606f23ea42cb6788eb82a11e61fb5111c4d32e052ed815e455c32ed3f6fcb18d963589669 SHA512 1a65ce569fb3262dfb805d0fa2c5c9f987c2c69e547fce366d9d371c8b19a90de279099a942919690aa6d58e2462cfd7bf54240f7ef51dc22ce12e292c46038d
DIST rust-1.67.1-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 669b7c4b0d5382a7d1d0fe49405f2798f67a9e745711dc2c8e7548ea6fdc8f0fefdab37d0594aec14b2745ce45e7c469e79c0cb1d86077ad9c7b6aafc2656827 SHA512 067681cb4140a29adfa5f4b141e2f3450dad34b95a1e549a6bc8d759e57da5d2ae69cc165efcdef9d83e2eee06edb6acd587d38c9b2f3d000d7a3f79daccc671
DIST rust-1.67.1-x86_64-unknown-linux-musl.tar.xz 269831452 BLAKE2B a36498528454f1bf0e1812eba005f27e3e281e4e2c117477785f5e48468c3fe316947b7e4360f573f0f4cd6f117e4102db8aeaa616be5bef09fb7518fd230b23 SHA512 9a3eb67239a88b875fe55846a2fffbbb1f2a4cc8eed18b5558f0f989d544a8ddfe0861d5b2b860a779833a1660ee622b30320ec9ef83e841724f7a32f08fda06
@ -125,7 +125,7 @@ DIST rust-1.68.2-riscv64gc-unknown-linux-gnu.tar.xz 207916672 BLAKE2B 81c09e028d
DIST rust-1.68.2-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 31bb980aa2a6b45e7a51cba0f14ed86674617f2cf8ee0583765d01502bf754f59a0cd960ad50a1e21ea8f6898e83e307d39be1eecc2b3344f5681c1908cfb436 SHA512 66c8a3efd1c579784321f24edcb4113c184516912ad490c9088d2141ac527af85acc64b6c67454661d1a991a710758cbebbfaaac7ae086b463fbdae7d1c89bb0
DIST rust-1.68.2-s390x-unknown-linux-gnu.tar.xz 234071260 BLAKE2B dbcd38a0503d3e131a7786e11874cf0e3dbca13c5ae7c9b605caec529aae5c498722d2685557be43387e2d2b855892720b6e84021765bebdfeea4a2dbe7502f1 SHA512 00614d53a4d34b4714febfc7c4eb2f92446ba928e8bfde0de537de51474704525456b628b60634f0220278c5d403da55c793a30d744362b181cacb1a9d8fac1b
DIST rust-1.68.2-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9eb99100e0e61ffa6f031b9f04fbcedccfbecd897e3232c8e192e52b3d5c103f8558de5e23e7eb19487eec890c0fef2c9be952edfdcd2f1a05b5b09d3a0fa82e SHA512 4d36bab880a386e6e70d23682435e1a960be3c88387ffcd955a55ce451acd3d49085b0db05230f874519aef12192eebbbbc26627807a6fa7021c89ff5d82f814
DIST rust-1.68.2-sparc64-unknown-linux-gnu.tar.xz 65355904 BLAKE2B e0318420255e1342f256988ccf9ba463424be3bdb4c35aa497292f02f9e9c3c7d2d2124ba8924341b05c455dd094255a9a51bf0d7e6f2bee2e067d9ba18f29fb SHA512 da54b8aa143dfbc3ff9c030a7ca7f08047bcf09904f245ed0d594e63bc052ad9d9ce3cc22e7184520b06dc4635bedf8b3e7ece3cc9d6cc27d97a9cf7cc182733
DIST rust-1.68.2-sparc64-unknown-linux-gnu.sam.tar.xz 65439252 BLAKE2B 4631588d586cfdc8da60d1d239cf0e716289568b65a3a24e1a7c76028848bb838c3525933ffa00bf29d55ef07d4da98fbe7ffc9056a803857328a5c2725f7bcd SHA512 8bedad64e968307f6d5ddf953f0f1a1463c93dc8d73c794d0ef7f784487f33d646cbde7c51b5ba81b231ee715dfee688e301ebfdce5fcd2bf91f431ff1fca392
DIST rust-1.68.2-x86_64-unknown-linux-gnu.tar.xz 185953856 BLAKE2B 11fc1f284c77261d69b2ba582843cbd15f3bde832cfa038764e68711de73c9a86f9e36f69a81606b4d5dcb0f9c0f413c88cb400e17511b980671a246ff63aa2a SHA512 7f3344591be014b86e55c21fab27587b00756aa46a366cde2149fafa36b5dfae29e126f70511b40bfad131a1d4d27c8cf82add3474b69e2c498c7380961a23e5
DIST rust-1.68.2-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 06f3d90126dfe5dcfb8147c8529f333bf635c5c669cc0b5d45156fed85e87aaaa67d8d9c4b250f77e1f0998e77e5635d3f3056447a032eac07bf847fc532a383 SHA512 1d826f0f8ed896d54139b4ae78205aee5cee3ce6f5449d94b8edb8fc19ab589bde6720eb1644502fc45fe0bd452e2e5209de83c99f7c4285a896cfaacbfdad36
DIST rust-1.68.2-x86_64-unknown-linux-musl.tar.xz 270073164 BLAKE2B 7d69a578e1d4a8fa75cfea6e630265f1c73cca08ed86ddc7858e7770755431dbf13ddaadcf8035fc2b7d2d7b7144a08b3e3a9fa20afcb5cfed7a31d82098fe5e SHA512 b0294141f1e51176664ae841ea55991826ccd15d0d36b03471831baa202ecb97434bf96479e167772bd62f05b80b49878f89a065a91e00026f0aabe7c02fe552
@ -158,6 +158,7 @@ DIST rust-1.69.0-riscv64gc-unknown-linux-gnu.tar.xz 162502700 BLAKE2B 1487885550
DIST rust-1.69.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e02800b42cdee6d7e78fc5ace9f4b8d7f50b6c02aa1107ef1e025bbd1bf91a2dbc200b7f5198e8fffe3b1f81192acd3b8e8eb8af60c0603f03d449ec17c4d4d9 SHA512 79fb21ef8e1049cbdab2f148b8b5ad5f81f93ed338dd76a69ff457200c32acfaef1ddc76bb462e3317aea55aeefe1593073c637c26ced417767f86ffb311e6e1
DIST rust-1.69.0-s390x-unknown-linux-gnu.tar.xz 192163756 BLAKE2B 9191b2276af1fd2872ae77f0a366b71a56efb4a7507d6a5c3fe301ed2a8165b417abf8a5c85f08b7e8a171318f9f27abb31a777e347f24e59272df95e1448959 SHA512 36fb7ea2b6bd61d0a05cf5dadbbfc4d623271baa3819ee3f6c91389e39da6c22c4a568eb78c4a3ab5e270bba163afd742d0d585f0d381c758709405c3292c5e9
DIST rust-1.69.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 5191016cf56b106230791dafa2baaaa9ee9c40009b304831eb81ba5f536588eca43840c66e927f80f677780c15ac19278f710b12a5753e063af6257cc2c1fb6b SHA512 10625fa96fcdc2f19abace688a7c5f6aa8078959d52e7f1a635bb5624d32eb71ba055fa14d89f8724813385d52f7e55f307a9b1b76236c999c2b36634acc14cc
DIST rust-1.69.0-sparc64-unknown-linux-gnu.sam.tar.xz 63207472 BLAKE2B 2c3266dbeb66d6f0ed75bff6aa3b6877482ff5a7839aa456f3ad54e1a86923cd70a8c73591f0d907fc9e2637a527808f3ff8f291d7a7bbb3175a13bcaea5c676 SHA512 376ee7a4e7a4b1df2acfec88ff221e3592c33063eda3ac971efe9ae1f84634357b3970c9917d87ba470cf103d49cf0102e7af8925e8c8ebcb92f5e7ade98f065
DIST rust-1.69.0-x86_64-unknown-linux-gnu.tar.xz 152594196 BLAKE2B f46e89bb76033bddaf8dd96d6abc5ad45965c4235bd97bef9d827d528bb385348c11a8916e9443d888dea6d6637a7460d2d0b61d3b1d642e5d908d0551ee64c6 SHA512 6031403e7009d758074e76a0aa9d4d90c236799439832e0b6fe1e481afb20a330952d92a3627efa28029958ee36f2b93e123a0f4e1e446bca2f1ede2e4bfc621
DIST rust-1.69.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B b12e73829cef5aed2f1fef7c51122d4f4db11622d53860013e3a396ea7a1bf945ce2142aed3d4720c89f0bda223d5fd8f1665da11be185faff949f45a4d65206 SHA512 79d5315ee87e2a02425671376d1a5ed0d947e85fd5bd5a09c6634ac4bc9baa31f1ae57380e3ed00f597f8594c67a319a86ed4f9bd34aafcca43aba388cd0ec39
DIST rust-1.69.0-x86_64-unknown-linux-musl.tar.xz 227932404 BLAKE2B d28f150fe1adc4ca4dc6d7fe74396d24bff699fd010cd05f4bdbc2c0061e3b10b0b1c6ca1a87bba9de8f8e45c5af20a339f01e96982f3aa77f90f879a54b482c SHA512 8879f9031a98169880433c18f71ec08ea1770e59e27279b0d96dcf8aafa67594b2c50f322a5d9b5eb766d6b4da00c969111142e9d4ddd000daf4b3b2ac0b848a
@ -190,7 +191,7 @@ DIST rust-1.70.0-riscv64gc-unknown-linux-gnu.tar.xz 167304092 BLAKE2B 977fdd1fd3
DIST rust-1.70.0-riscv64gc-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 26af74d00f9f7c53a15f9c39acef5364a1cbc7df2380ebf43cab3b02240b8fe446c200ef4652ea8684f0470035d8352accf5e0ab5b34dd9632b471458aad2516 SHA512 93ffd6214db7e04e2692f4e05bccb7140c81378da039317f2e04587f1403935abd57b8b9bd5e12b1befc5dec10898c06a508b1ebf83b845564b9b8a42d7041ac
DIST rust-1.70.0-s390x-unknown-linux-gnu.tar.xz 197741656 BLAKE2B 7d31b09ad69eba9ad1a2b7196679a439907ee80fa3ddee9014f0c78505ee9e1c93514e7f44f83b0ac5ad442c6e7f05568b0ea928a89c5a69601a1a935d2d253b SHA512 3fa31674a3ba33d41c7db2b33e176edac1bd67713b7b52dc51eca73d4ed1821a2a4ecfd2545734fecb57271828ae0bcc7e1c4d0883821b650bff99544484db07
DIST rust-1.70.0-s390x-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B 9dac941acb317914f4eac12df601b442e9d9c74f13048dd8120d23c3297e7f5bc77618fa8eb29d4401b141acd59d20e87e1b198f9997041d4113de9ad39b59cf SHA512 64b8658b275a53b52986aa967535ade73009e833fdc89c4e225f3139262fedbeef902702e8e71b18380a0826afbe7dfb1afdd5800bd5f810e66f2193c4de6501
DIST rust-1.70.0-sparc64-unknown-linux-gnu.tar.xz 58763440 BLAKE2B 2a8a04c723c26a86bf0717ccb01d4b51a2bf4d1ff0bb5b1fb6c8f037ce22647e526a0ffb1c982eea796192d0bd9e86ca23ddc64b59678425790343d579a9e293 SHA512 8d0bc5ff671ee1ef390c0e72179b9b0a69cd410f47174cda23df4230510edb68e65dec6347332fb0a5d853c6535e192e36b902b4c0aca2a86621a981133daa3b
DIST rust-1.70.0-sparc64-unknown-linux-gnu.sam.tar.xz 58806556 BLAKE2B 100bdce58de6098a74563b99e042a558afe272cf7a06f6133a14d906584271a459e8ce36b7a515c23559d7526a251feeda2c66798a35d9063ca065566547d881 SHA512 39962b47a180806491cc9078262989bb18518ad05cef31dbc5a5707ecac2199878c8107e706e2d4c99c0b00f277f928f71d5489b363012b5991a258eb3f8be1b
DIST rust-1.70.0-x86_64-unknown-linux-gnu.tar.xz 163456784 BLAKE2B 49a8397a7129aa70f5ab3876613c9c3f25abe2a48fcdfaeec0bf030529f558dd6ee221bef18ab135b95b2e8bdd61349e3357674a794bd08e4539c0fbbf51bb3e SHA512 8950c85f03f2e7af23c18e9be0ca1cdf7074b9be8d8c7b26102277c150c598bb7d5f1f74400bd70efcd42b38f68c96c7701239719f320311e8b131191ee77512
DIST rust-1.70.0-x86_64-unknown-linux-gnu.tar.xz.asc 801 BLAKE2B e5fae8b3c87f54b39d922fe0c7694e0ba115ae34a668cc873390fc9e4638baaff5b6d1b4c67228c6bfc57b4da9bf77d6a452ca12bf6653d5610895b8ba19d64d SHA512 352749df741287107b966fd603113c51e82a426a7151e224e3a8d1cc7bd4658ef86147f6fce62caccd7b5779d9961be72cbb618db79a2850e8a8c4b0bc229ad3
DIST rust-1.70.0-x86_64-unknown-linux-musl.tar.xz 233692884 BLAKE2B 295e815bbee6dc135ad17dd78801999afa7880a7a8f5ad4932a7580f1b03d50b850bcc3eb68e9d679e0a2d68392d446423ea752e47bb22d64823bf3222e0b377 SHA512 5e42224e109d525a321c107005660059ddcb0414392abc660b80fb09a55c936c79215989646be0aff6b0427b2f5d82a2a19ec3bd3235883a2037575808aeb69b

@ -8,7 +8,7 @@ inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minim
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-02-09/rust-src-${PV}.tar.xz"
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~gyakovlev/distfiles/${CATEGORY}/${PN}" # omit leading slash
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="https://www.rust-lang.org/"
@ -16,7 +16,7 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
rust-src? ( ${MY_SRC_URI} )
"
# Keep this separate to allow easy commenting out if not yet built
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"

@ -8,7 +8,7 @@ inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minim
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-03-28/rust-src-${PV}.tar.xz"
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~gyakovlev/distfiles/${CATEGORY}/${PN}" # omit leading slash
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="https://www.rust-lang.org/"
@ -16,7 +16,7 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
rust-src? ( ${MY_SRC_URI} )
"
# Keep this separate to allow easy commenting out if not yet built
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"

@ -16,7 +16,7 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
rust-src? ( ${MY_SRC_URI} )
"
# Keep this separate to allow easy commenting out if not yet built
#SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"

@ -8,7 +8,7 @@ inherit multilib prefix rust-toolchain toolchain-funcs verify-sig multilib-minim
MY_P="rust-${PV}"
# curl -L static.rust-lang.org/dist/channel-rust-${PV}.toml 2>/dev/null | grep "xz_url.*rust-src"
MY_SRC_URI="${RUST_TOOLCHAIN_BASEURL%/}/2023-06-01/rust-src-${PV}.tar.xz"
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~gyakovlev/distfiles/${CATEGORY}/${PN}" # omit leading slash
GENTOO_BIN_BASEURI="https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}" # omit leading slash
DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="https://www.rust-lang.org/"
@ -16,7 +16,7 @@ SRC_URI="$(rust_all_arch_uris ${MY_P})
rust-src? ( ${MY_SRC_URI} )
"
# Keep this separate to allow easy commenting out if not yet built
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz ) "
SRC_URI+=" sparc? ( ${GENTOO_BIN_BASEURI}/${MY_P}-sparc64-unknown-linux-gnu.tar.xz -> ${MY_P}-sparc64-unknown-linux-gnu.sam.tar.xz ) "
LICENSE="|| ( MIT Apache-2.0 ) BSD BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable"

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

Loading…
Cancel
Save