Sync with portage [Sat Feb 4 21:53:47 MSK 2023].

master
root 1 year ago
parent f6cdc5b171
commit a4ad08fb16

Binary file not shown.

Binary file not shown.

@ -1,3 +1,4 @@
DIST aws-cli-1.27.54.gh.tar.gz 2349811 BLAKE2B 08cb317ea4621273644c39c1152e1a3f8bd9f52ed8c30d7c37dfea9e986ca1597fda1dfbdea8c4043fa783f061609d6f24895997e9f9a3f27d5677c0f9e6c3de SHA512 af4783eef3c1c666b8b3c6d20f1c0177db6d4ce01645b092770cba535dad95609b4bece366355ce6d6a505ac7ab5a2e390d64fb84d6c00e402f9f8ab88db91d9
DIST aws-cli-1.27.59.gh.tar.gz 2360458 BLAKE2B e60117e41cf95d442db333cf49c146e4ed02247007b8f46228799c5dee8c486aec34b236c9a0a6d152d690ff86c34fd797a6f35227a6e443805cdfe1b1b30f00 SHA512 87b9aebe812415223285c09ab5a36de2b9c0da49775d1162a5b5d7489ad61c16ca5361b721bc9e4ec4ccc09306be24513f42d7263b315d6856be20fdf0779686
DIST aws-cli-1.27.63.gh.tar.gz 2363224 BLAKE2B 4fe7971271d4359f9d29cdf4c028bd8d06a1a8188e6aef108c33d6b137bb2aee84f3655f3666381fdbf8166dd5ea071c564faac32fb0c06a461249385dbc503d SHA512 01c578f13c0f316c41bdf3bbc5e8532f01d0bfa108207899b8c56b990acdbf5b80d0ffbf1be944088f34e623494b1a1f6d52823d654c192b07133291e4bd7deb
DIST aws-cli-1.27.64.gh.tar.gz 2363382 BLAKE2B fd0879e793aa5ee449ee535425976d11edb6f844f0385a630df82b62aa6db593c76ccab2b59b960b951859b88e2fd1d2db98f5f9f423b1de4dfed65c22eb131b SHA512 8966543936133e98a7ed27897b3978dbc71fde0728dff18e778cb17cf18b834c6abdc4cae13375f72280b1c3f4b43b33c3a08d4f3b99a2cefb74f27d1dd480a3

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

@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/${PN}/${P}-src.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="debug nls ssl static-libs"
RDEPEND="

Binary file not shown.

@ -1,3 +1,6 @@
DIST vscode-1.74.3-amd64.tar.gz 138260370 BLAKE2B 30bd34a17bb31326454db8844c48bc9f554374cdfc3032504be64f2493735864fbc3d0002ffa7c7a3c545329d198ead62df5931119cb95a261f2d4a9f058ac8a SHA512 46067ec45a383df7c766629c96fa320869e63e0f5ebc8d9c5738bde0799b934840fb912de7abcf6490378f70f1784664898341edfd755225d77bd62d8b058caf
DIST vscode-1.74.3-arm.tar.gz 117870912 BLAKE2B 8d6fe12ca6b18db2709570df2e0ec943474fdf1878b30eae0b69c27ac018dbb4cd1fa724deb505ca0fc96096442296a0e201bc032544828320c05c799a39cca9 SHA512 41cbef791679cbd67c5844d5d545ed196d0374c9292050cc954f30549cd30c9612e3ef7e29c04b009718c93994ba285c9cf08d240723ae1420fa3be75e2630c0
DIST vscode-1.74.3-arm64.tar.gz 127492465 BLAKE2B 095b6a11e5a4b029e9a3facb8728ede939d674b1c975027d9ece8eb6002b5dca8d665c95b231f3b96644e64952f76f40eb3fcab0ce71e59e1ae30837e7b7f272 SHA512 e0fe9d950aeef9744bdf1ed8c78de1a40fadc52d7ce68797334463d6c84ffb5e5ef8fa6a3a1dbf3593e423d9e43a39e85f46559ccd4054ea776be2c17aa88480
DIST vscode-1.75.0-amd64.tar.gz 138952948 BLAKE2B 892c2ece1bfb1d2dc4fea2c3a6c062688add04f3ceca344988d240edbc4f358100bb4caa17eadc9568dbd1c3581595eb3fadd527727c02d57b63e5fd7a88533b SHA512 f4f26d5fc9c4cf8faf631ff5a0a48d446013faf33a1e932d3e8023b967dd078c370c57dff1791d97bfdeda0e92993d1aa94dce9cfeda4745bdc9c0a1cfb7aed2
DIST vscode-1.75.0-arm.tar.gz 118400806 BLAKE2B d1c930bb871c7bbf7dccd8e3a0da9fc903dfad2066c5d8cbceb9ad3adfeb4d59089b35c75c4d5650efeaf7bb7fa9f2c84b2a499610fab3d09dc18d59122b5a47 SHA512 cdfa12e8dffdef50d3e17f58b0d516318d0e5e114b0556285d92ec81ceb2b78cea9affe9719416f7f60eea385cb49caf6879e3fd9c8d2fbf0849a1d1d9ccd704
DIST vscode-1.75.0-arm64.tar.gz 128013515 BLAKE2B 77c2663e01397086e3917dae8e0ec3663969cf5e36135fbc7bc264f21ffc31197e5dc3dda49b3e4c2d9daf1f39d110b5c467590157ebd4d87986771bca3268c5 SHA512 0e4b4a2b2b273e590bd210d186b255a3e48ec0851c38ff27063f115088f7cf5375b14fd075b45f5d4ceb525f04c2d3fabbdd0d6b7bc192b8f6da269311b3634d

@ -0,0 +1,127 @@
# 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="Multiplatform Visual Studio Code from Microsoft"
HOMEPAGE="https://code.visualstudio.com"
SRC_URI="
amd64? ( https://update.code.visualstudio.com/${PV}/linux-x64/stable -> ${P}-amd64.tar.gz )
arm? ( https://update.code.visualstudio.com/${PV}/linux-armhf/stable -> ${P}-arm.tar.gz )
arm64? ( https://update.code.visualstudio.com/${PV}/linux-arm64/stable -> ${P}-arm64.tar.gz )
"
S="${WORKDIR}"
RESTRICT="mirror strip bindist"
LICENSE="
Apache-2.0
BSD
BSD-1
BSD-2
BSD-4
CC-BY-4.0
ISC
LGPL-2.1+
Microsoft-vscode
MIT
MPL-2.0
openssl
PYTHON
TextMate-bundle
Unlicense
UoI-NCSA
W3C
"
SLOT="0"
KEYWORDS="-* ~amd64 ~arm ~arm64"
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/vscode/chrome_crashpad_handler
/opt/vscode/chrome-sandbox
/opt/vscode/code
/opt/vscode/libEGL.so
/opt/vscode/libffmpeg.so
/opt/vscode/libGLESv2.so
/opt/vscode/libvk_swiftshader.so
/opt/vscode/libvulkan.so*
/opt/vscode/resources/app/extensions/*
/opt/vscode/resources/app/node_modules.asar.unpacked/*
/opt/vscode/swiftshader/libEGL.so
/opt/vscode/swiftshader/libGLESv2.so
"
src_install() {
if use amd64; then
cd "${WORKDIR}/VSCode-linux-x64" || die
elif use arm; then
cd "${WORKDIR}/VSCode-linux-armhf" || die
elif use arm64; then
cd "${WORKDIR}/VSCode-linux-arm64" || die
else
die "Visual Studio Code only supports amd64, arm and arm64"
fi
# Cleanup
rm -r ./resources/app/LICENSES.chromium.html ./resources/app/LICENSE.rtf ./resources/app/licenses || die
# Disable update server
sed -e "/updateUrl/d" -i ./resources/app/product.json || die
# Install
pax-mark m code
insinto "/opt/${PN}"
doins -r *
fperms +x /opt/${PN}/{,bin/}code
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}{,-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
dosym "../../opt/${PN}/bin/code" "usr/bin/vscode"
dosym "../../opt/${PN}/bin/code" "usr/bin/code"
domenu "${FILESDIR}/vscode.desktop"
domenu "${FILESDIR}/vscode-url-handler.desktop"
domenu "${FILESDIR}/vscode-wayland.desktop"
domenu "${FILESDIR}/vscode-url-handler-wayland.desktop"
newicon "resources/app/resources/linux/code.png" "vscode.png"
}
pkg_postinst() {
xdg_pkg_postinst
elog "You may want to install some additional utils, check in:"
elog "https://code.visualstudio.com/Docs/setup#_additional-tools"
optfeature "keyring support inside vscode" "gnome-base/gnome-keyring"
}

@ -1,3 +1,6 @@
DIST vscodium-1.74.3.23010-amd64.tar.gz 121396318 BLAKE2B 457aa7135d85340cc46b8bf06cc18bf9a575510c445c25c2102aa9f95099e7472f953c1770c7ff567bb53a2532db2c21849b06e922ef11a5d8699f8ed3cd283b SHA512 4d6f9494c2112c6de60dde67eab6127c8bbb7fae4574e6fa85e4438e02ccf61f0954e79157e0466dd7aa2cead828d394b6b8f669be4ff52050b2cafb3e3e7f6b
DIST vscodium-1.74.3.23010-arm.tar.gz 103438321 BLAKE2B e6294cdaaed7862b7a64ff9cfdb675ccba1bca25c23ba66c93aaadb2e231447de7baba4815ee910a1b84965ffdee06c1b6a45a48294872a0c872ed10e049a05a SHA512 52f481e5a7e9f53c176702b134729f6fff0a8fe4eb993d07350476250bb324ef88fc22e3263c018affc5f791bf65583946da8119dc657fec372741a81798fa81
DIST vscodium-1.74.3.23010-arm64.tar.gz 114464176 BLAKE2B a6682c4c26fa2bb628aced21cfabe0ee03cc3bb285b857973753cb9c5798763d6c43d8968f089a2be064a84ce71fc09ea938f5305c30c0a8920968c75812c845 SHA512 a2d563fc69aad4e3c05afe88c6326a2a9e2e67c7022e6068f416348445d421a0c1a676ecb405acca1f9b2892e1cdbbc7f38e6292570deaa5bc4574506deb272d
DIST vscodium-1.75.0.23033-amd64.tar.gz 121848371 BLAKE2B 412e945fd98f3ca6fd690593d09d64ec32e2a1450c117f41b99a276f6992f38de8e315af2273e659023a9acd8101a594c5e50bb7c29c7b9d688c902fca875b50 SHA512 58a3e58c9350359538841349271794e738f4734e84af7ec83a44b11fa09517dcaa6c373bb20ae271c4646f8766f405d12e7011d0398750facd9c4aa47402976c
DIST vscodium-1.75.0.23033-arm.tar.gz 103889757 BLAKE2B ad910df8a5b245c725dcdb3d2bf4fdb602de2703a629563f6b71bad3e8ebc09a5ecf6ab1272261b7abb6aa35ea7a15ea9a8c1ee5ca52bee8deaf5b13221edf15 SHA512 9dd9b4bdc6e98c53c39ee5bde3f2001d3345de0398e848b26cca0e54cf8edd3712e4489cf3f11e7f67b9742c8dd3e9bafbf09ae5c4704a090147cfcae542e89d
DIST vscodium-1.75.0.23033-arm64.tar.gz 114924184 BLAKE2B 47d979df3eadee60e5ea6dcbf15b58518ded7086516cb9c1444ef22c3b05eef3d3b7b733a8be889fd0a08fa5e9fc4a0e5171a573b95defc951f526b95e624b0b SHA512 506ccf023fe0f1c9c18c23ab3e77b64ba64e769226e43c577764b1ca85c940c53bdef69095bb3b2d09886a02506847a5884543191e2aead12884ffcadb7b22ae

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

Binary file not shown.

@ -1,4 +1,2 @@
DIST qemu-7.1.0-docs.tar.xz 2016780 BLAKE2B 1b84361fe58d504ab740a0b805a25d02f497ca776e7251a99f0e98e3720d1a2029b7a171f9d79dd128ba17a82c72d497e09baa1a4b2f192ba390f0f3b1950792 SHA512 7a328303b8af0ab63aa1f0fe07a121d3ca459d00fca817412e645416af795930dbea0a3e60f4ca006a74d1672e84fa4e626e4d83918e0b685b601043d0d8159e
DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
DIST qemu-7.2.0.tar.xz 122408576 BLAKE2B 415ff621356c59f88b29cfe3ef5db1e282b26bbafbee3d535477c6125ccb060ec9762d9e3ab9f70ce5478804dca0a46a59bcf12c112a2462029a93e578e61530 SHA512 f3cfa00da739ba819a218d7e6e95c77fb79a8e0f487b024ddd281602e785249b81144595e3f8c746c32a4f5c4d1a88c6aebae3c162603edfbb50ae3722d7ed13

@ -1,78 +0,0 @@
From 35a2c85f7d691db7aa2c47181902ac87478eef7a Mon Sep 17 00:00:00 2001
From: WANG Xuerui <xen0n@gentoo.org>
Date: Sun, 9 Oct 2022 14:08:13 +0800
Subject: [PATCH] linux-user: Implement faccessat2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
User space has been preferring this syscall for a while, due to its
closer match with C semantics, and newer platforms such as LoongArch
apparently have libc implementations that don't fallback to faccessat
so normal access checks are failing without the emulation in place.
Tested by successfully emerging several packages within a Gentoo loong
stage3 chroot, emulated on amd64 with help of static qemu-loongarch64.
Reported-by: Andreas K. Hüttel <dilfridge@gentoo.org>
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
Message-Id: <20221009060813.2289077-1-xen0n@gentoo.org>
[lv: removing defined(__NR_faccessat2) in syscall.c,
adding defined(TARGET_NR_faccessat2) on print_faccessat()]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/strace.c | 2 +-
linux-user/strace.list | 3 +++
linux-user/syscall.c | 9 +++++++++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/linux-user/strace.c b/linux-user/strace.c
index 86c081c83f..9ae5a812cd 100644
--- a/linux-user/strace.c
+++ b/linux-user/strace.c
@@ -1969,7 +1969,7 @@ print_execv(CPUArchState *cpu_env, const struct syscallname *name,
}
#endif
-#ifdef TARGET_NR_faccessat
+#if defined(TARGET_NR_faccessat) || defined(TARGET_NR_faccessat2)
static void
print_faccessat(CPUArchState *cpu_env, const struct syscallname *name,
abi_long arg0, abi_long arg1, abi_long arg2,
diff --git a/linux-user/strace.list b/linux-user/strace.list
index a87415bf3d..3df2184580 100644
--- a/linux-user/strace.list
+++ b/linux-user/strace.list
@@ -178,6 +178,9 @@
#ifdef TARGET_NR_faccessat
{ TARGET_NR_faccessat, "faccessat" , NULL, print_faccessat, NULL },
#endif
+#ifdef TARGET_NR_faccessat2
+{ TARGET_NR_faccessat2, "faccessat2" , NULL, print_faccessat, NULL },
+#endif
#ifdef TARGET_NR_fadvise64
{ TARGET_NR_fadvise64, "fadvise64" , NULL, NULL, NULL },
#endif
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index d499cac1d5..e985ad167f 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -9143,6 +9143,15 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
unlock_user(p, arg2, 0);
return ret;
#endif
+#if defined(TARGET_NR_faccessat2)
+ case TARGET_NR_faccessat2:
+ if (!(p = lock_user_string(arg2))) {
+ return -TARGET_EFAULT;
+ }
+ ret = get_errno(faccessat(arg1, p, arg3, arg4));
+ unlock_user(p, arg2, 0);
+ return ret;
+#endif
#ifdef TARGET_NR_nice /* not on alpha */
case TARGET_NR_nice:
return get_errno(nice(arg1));
--
2.37.4

@ -1,98 +0,0 @@
From xen0n@gentoo.org Thu Oct 06 10:07:10 2022
Return-Path: <xen0n@gentoo.org>
X-Original-To: dilfridge@gentoo.org
Delivered-To: dilfridge@gentoo.org
From: WANG Xuerui <xen0n@gentoo.org>
To: qemu-devel@nongnu.org
Cc: Richard Henderson <richard.henderson@linaro.org>,
=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>,
WANG Xuerui <xen0n@gentoo.org>,
Song Gao <gaosong@loongson.cn>,
Xiaojuan Yang <yangxiaojuan@loongson.cn>,
=?UTF-8?q?Andreas=20K=20=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
Subject: [PATCH RESEND] linux-user: Fix struct statfs ABI on loongarch64
Date: Thu, 6 Oct 2022 18:07:10 +0800
Message-Id: <20221006100710.427252-1-xen0n@gentoo.org>
X-Mailer: git-send-email 2.38.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Previously the 32-bit version was incorrectly chosen, leading to funny
but incorrect output from e.g. df(1). Simply select the version
corresponding to the 64-bit asm-generic definition.
For reference, this program should produce the same output no matter
natively compiled or not, for loongarch64 or not:
```c
#include <stdio.h>
#include <sys/statfs.h>
int main(int argc, const char *argv[])
{
struct statfs b;
if (statfs(argv[0], &b))
return 1;
printf("f_type = 0x%lx\n", b.f_type);
printf("f_bsize = %ld\n", b.f_bsize);
printf("f_blocks = %ld\n", b.f_blocks);
printf("f_bfree = %ld\n", b.f_bfree);
printf("f_bavail = %ld\n", b.f_bavail);
return 0;
}
// Example output on my amd64 box, with the test binary residing on a
// btrfs partition.
// Native and emulated output after the fix:
//
// f_type = 0x9123683e
// f_bsize = 4096
// f_blocks = 268435456
// f_bfree = 168406890
// f_bavail = 168355058
// Output before the fix, note the messed layout:
//
// f_type = 0x10009123683e
// f_bsize = 723302085239504896
// f_blocks = 168355058
// f_bfree = 2250817541779750912
// f_bavail = 1099229433104
```
Fixes: 1f63019632 ("linux-user: Add LoongArch syscall support")
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
Cc: Song Gao <gaosong@loongson.cn>
Cc: Xiaojuan Yang <yangxiaojuan@loongson.cn>
Cc: Andreas K. Hüttel <dilfridge@gentoo.org>
---
Resend with amended commit message to 100% clarify the example output
are generated on my box and will differ for everyone else. Sorry for
the noise.
linux-user/syscall_defs.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 01ee10a88f..77864de57f 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -2262,7 +2262,8 @@ struct target_statfs64 {
};
#elif (defined(TARGET_PPC64) || defined(TARGET_X86_64) || \
defined(TARGET_SPARC64) || defined(TARGET_AARCH64) || \
- defined(TARGET_RISCV)) && !defined(TARGET_ABI32)
+ defined(TARGET_RISCV) || defined(TARGET_LOONGARCH64)) && \
+ !defined(TARGET_ABI32)
struct target_statfs {
abi_long f_type;
abi_long f_bsize;
--
2.38.0

@ -1,94 +0,0 @@
From xen0n@gentoo.org Thu Oct 06 08:55:00 2022
Return-Path: <xen0n@gentoo.org>
X-Original-To: dilfridge@gentoo.org
Delivered-To: dilfridge@gentoo.org
From: WANG Xuerui <xen0n@gentoo.org>
To: qemu-devel@nongnu.org
Cc: WANG Xuerui <xen0n@gentoo.org>,
=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
=?UTF-8?q?Andreas=20K=20=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>,
Joshua Kinard <kumba@gentoo.org>
Subject: [PATCH] linux-user: Fix more MIPS n32 syscall ABI issues
Date: Thu, 6 Oct 2022 16:55:00 +0800
Message-Id: <20221006085500.290341-1-xen0n@gentoo.org>
X-Mailer: git-send-email 2.38.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
In commit 80f0fe3a85 ("linux-user: Fix syscall parameter handling for
MIPS n32") the ABI problem regarding offset64 on MIPS n32 was fixed,
but still some cases remain where the n32 is incorrectly treated as any
other 32-bit ABI that passes 64-bit arguments in pairs of GPRs. Fix by
excluding TARGET_ABI_MIPSN32 from various TARGET_ABI_BITS == 32 checks.
Closes: https://gitlab.com/qemu-project/qemu/-/issues/1238
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
Cc: Andreas K. Hüttel <dilfridge@gentoo.org>
Cc: Joshua Kinard <kumba@gentoo.org>
---
Note: I can't reproduce the crash with neither MIPS n32 sysroot at my hand
(a self-built one for Loongson-2F, and stage3-mips64_n32-openrc-20221001T170527Z),
so I can only verify by looking at the (host and qemu) strace outputs, and
would have to ask you to review/test this harder. Thanks.
linux-user/syscall.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 2e954d8dbd..8b2d39fe73 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -11793,7 +11793,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
return -host_to_target_errno(ret);
#endif
-#if TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
#ifdef TARGET_NR_fadvise64_64
case TARGET_NR_fadvise64_64:
@@ -11920,7 +11920,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
return get_errno(sys_gettid());
#ifdef TARGET_NR_readahead
case TARGET_NR_readahead:
-#if TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
if (regpairs_aligned(cpu_env, num)) {
arg2 = arg3;
arg3 = arg4;
@@ -12612,7 +12612,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
#endif /* CONFIG_EVENTFD */
#if defined(CONFIG_FALLOCATE) && defined(TARGET_NR_fallocate)
case TARGET_NR_fallocate:
-#if TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
ret = get_errno(fallocate(arg1, arg2, target_offset64(arg3, arg4),
target_offset64(arg5, arg6)));
#else
@@ -12623,7 +12623,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
#if defined(CONFIG_SYNC_FILE_RANGE)
#if defined(TARGET_NR_sync_file_range)
case TARGET_NR_sync_file_range:
-#if TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
#if defined(TARGET_MIPS)
ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4),
target_offset64(arg5, arg6), arg7));
@@ -12645,7 +12645,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
case TARGET_NR_arm_sync_file_range:
#endif
/* This is like sync_file_range but the arguments are reordered */
-#if TARGET_ABI_BITS == 32
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4),
target_offset64(arg5, arg6), arg2));
#else
--
2.38.0

@ -1,26 +0,0 @@
Forward-ported from original patch for 5.2.0.
diff --git a/configure b/configure
index da2501489f..4660ee3ee5 100755
--- a/configure
+++ b/configure
@@ -400,6 +400,7 @@ ld="${LD-${cross_prefix}ld}"
nm="${NM-${cross_prefix}nm}"
smbd="$SMBD"
strip="${STRIP-${cross_prefix}strip}"
+strings="${STRINGS-${cross_prefix}strings}"
widl="${WIDL-${cross_prefix}widl}"
windres="${WINDRES-${cross_prefix}windres}"
pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
@@ -1466,9 +1467,9 @@ int main(int argc, char *argv[])
EOF
if compile_prog ; then
- if strings -a $TMPE | grep -q BiGeNdIaN ; then
+ if $strings -a $TMPE | grep -q BiGeNdIaN ; then
bigendian="yes"
- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
+ elif $strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
bigendian="no"
else
echo big/little test failed

@ -53,7 +53,6 @@
<flag name="usbredir">Use <pkg>sys-apps/usbredir</pkg> to redirect USB devices to another machine over TCP</flag>
<flag name="vde">Enable VDE-based networking</flag>
<flag name="vhost-net">Enable accelerated networking using vhost-net, see https://www.linux-kvm.org/page/VhostNet</flag>
<flag name="vhost-user-fs">Enable shared file system access using the FUSE protocol carried over virtio.</flag>
<flag name="virgl">Enable experimental Virgil 3d (virtual software GPU)</flag>
<flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See https://wiki.qemu.org/Documentation/9psetup</flag>
<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>

@ -1,967 +0,0 @@
# 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="${PV}"
# 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.1.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}"
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 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 )
"
# 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.0[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(+)]
>=sys-libs/libseccomp-2.1.0[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:= )
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? (
dev-libs/nettle:=[static-libs(+)]
>=net-libs/gnutls-3.0:=[static-libs(+)]
)
gtk? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.91 )
)
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
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-sound/pulseaudio )
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(+)] )
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[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-strings.patch
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
"${FILESDIR}"/${PN}-7.1.0-mips-n32-syscalls.patch
"${FILESDIR}"/${PN}-7.1.0-loong-stat.patch
"${FILESDIR}"/${PN}-7.1.0-faccessat2.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/*/ slirp || 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 slirp slirp system)
$(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-cap-ng
--enable-seccomp
--enable-tools
)
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
}

@ -1,985 +0,0 @@
# 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="${PV}"
# 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.1.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}"
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 +caps +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 vhost-user-fs 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 )
vhost-user-fs? ( caps seccomp )
virgl? ( opengl )
virtfs? ( caps xattr )
vnc? ( gnutls )
vte? ( gtk )
multipath? ( udev )
plugins? ( !static !static-user )
"
# 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.0[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:= )
caps? ( sys-libs/libcap-ng[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? (
dev-libs/nettle:=[static-libs(+)]
>=net-libs/gnutls-3.0:=[static-libs(+)]
)
gtk? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.91 )
)
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
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-sound/pulseaudio )
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[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-strings.patch
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.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/*/ slirp || 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 caps cap-ng)
$(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 slirp system)
$(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
)
local static_flag="static-user"
;;
softmmu)
conf_opts+=(
--disable-linux-user
--enable-system
--disable-tools
)
local static_flag="static"
for target in ${IUSE_SOFTMMU_TARGETS}; do
if use "qemu_softmmu_targets_${target}"; then
conf_opts+=(
# For some reason, adding this with the setting set
# to on *or* off makes the build always fail.
# --with-devices-${target}=gentoo
)
fi
done
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
--disable-blobs
--enable-tools
)
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}" )
# Needed to rework vhost-user-fs handling thanks to https://gitlab.com/qemu-project/qemu/-/commit/5166dab
# The option was converted into being configurable by
# Kconfig's. So, to enable it, we insert the necessary
# options into each arch's softmmu target gentoo.mak file,
# then configure with --with-devices-${target}=gentoo.
if use vhost-user-fs; then
echo "CONFIG_VHOST_USER_FS=y for ${target}-softmmu" || die
echo "CONFIG_VIRTIO=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
echo "CONFIG_VHOST_USER_FS=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
else
echo "CONFIG_VHOST_USER_FS=n for ${target}-softmmu" || die
echo "CONFIG_VIRTIO=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
echo "CONFIG_VHOST_USER_FS=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
fi
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
}

@ -1 +1,2 @@
DIST proton-wine-7.0-5.tar.gz 45724439 BLAKE2B d5ad4f00ca658b31c562c2ff4eb5ae33707126eee44ccfd9f33084ab5d184743034541efe3f9d18eb2a6941111da4c5134555f93769e8370b118b6f04e00ae1e SHA512 b16ace9c0bfa6d2685ea53617be2bba7e82c5c8da604f9e188bf782219785cfaed4317578c4314f2bde89d363a2e115f3bceeaa69d4a85f078a5fdb1ec64d33b
DIST proton-wine-7.0-6.tar.gz 45780326 BLAKE2B f140fcfdd1a47904c34a49d0795fa3326d7cf0d3fac8d6c2ef2a4926181a46223f43a2d1ca96c543e800c8c46b2a3cc51ae306a029d68a42608876e869e177d5 SHA512 793bbe2b23042301a1b518717d78cfff01eaffa0388883d010659a45779b9136d33cfac63f0c3fbb1e458953a954b423eb70ac4fa87633352267db890ceb2fef

@ -5,8 +5,8 @@ EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
PYTHON_COMPAT=( python3_{9..11} )
inherit autotools flag-o-matic multilib multilib-build \
python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
inherit autotools flag-o-matic multilib multilib-build python-any-r1
inherit readme.gentoo-r1 toolchain-funcs wrapper
WINE_GECKO=2.47.3
WINE_MONO=7.3.1

@ -0,0 +1,321 @@
# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
PYTHON_COMPAT=( python3_{9..11} )
inherit autotools flag-o-matic multilib multilib-build python-any-r1
inherit readme.gentoo-r1 toolchain-funcs wrapper
WINE_GECKO=2.47.3
WINE_MONO=7.4.0
WINE_PV=$(ver_rs 2 -)
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
EGIT_BRANCH="experimental_$(ver_cut 1-2)"
else
SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
S="${WORKDIR}/${PN}-wine-${WINE_PV}"
KEYWORDS="-* ~amd64 ~x86"
fi
DESCRIPTION="Valve Software's fork of Wine"
HOMEPAGE="https://github.com/ValveSoftware/wine/"
LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
SLOT="${PV}"
IUSE="
+abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug
+fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal
osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb
v4l +vkd3d +xcomposite xinerama"
# tests are non-trivial to run, can hang easily, don't play well with
# sandbox, and several need real opengl/vulkan or network access
RESTRICT="test"
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
WINE_DLOPEN_DEPEND="
dev-libs/gmp:=[${MULTILIB_USEDEP}]
dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
media-libs/freetype[${MULTILIB_USEDEP}]
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
media-libs/vulkan-loader[${MULTILIB_USEDEP}]
x11-libs/libXcursor[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
x11-libs/libXi[${MULTILIB_USEDEP}]
x11-libs/libXrandr[${MULTILIB_USEDEP}]
x11-libs/libXrender[${MULTILIB_USEDEP}]
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXext[${MULTILIB_USEDEP}]
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
gstreamer? (
dev-libs/glib:2[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
)
openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
unwind? (
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
)
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )"
RDEPEND="
${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
mono? ( app-emulation/wine-mono:${WINE_MONO} )
perl? (
dev-lang/perl
dev-perl/XML-LibXML
)
selinux? ( sec-policy/selinux-wine )
udisks? ( sys-fs/udisks:2 )"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
x11-base/xorg-proto"
BDEPEND="
${PYTHON_DEPS}
dev-lang/perl
sys-devel/binutils
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
nls? ( sys-devel/gettext )
!crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
IDEPEND=">=app-eselect/eselect-wine-2"
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
PATCHES=(
"${FILESDIR}"/${PN}-7.0.4-musl.patch
"${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
"${FILESDIR}"/${PN}-7.0.4-restore-menubuilder.patch
"${FILESDIR}"/${PN}-7.0.4-unwind.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} == binary ]] && return
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
local mingw=-w64-mingw32
for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
if ! type -P ${mingw}-gcc >/dev/null; then
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
eerror "yourself by installing sys-devel/crossdev then running:"
eerror
eerror " crossdev --target ${mingw}"
eerror
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
eerror "--> Note that mingw builds are default for ${PN} even without this USE."
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
fi
done
fi
}
src_prepare() {
# sanity check, bumping these has a history of oversights
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
dlls/appwiz.cpl/addons.c || die)
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
local gmfatal=
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
fi
default
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
# similarly to staging, append to `wine --version` for identification
sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's
}
src_configure() {
WINE_PREFIX=/usr/lib/${P}
WINE_DATADIR=/usr/share/${P}
local conf=(
--prefix="${EPREFIX}"${WINE_PREFIX}
--datadir="${EPREFIX}"${WINE_DATADIR}
--includedir="${EPREFIX}"/usr/include/${P}
--libdir="${EPREFIX}"${WINE_PREFIX}
--mandir="${EPREFIX}"${WINE_DATADIR}/man
# upstream (Valve) doesn't really support misc configurations (e.g.
# adds vulkan code not always guarded by --with-vulkan), so force
# some major options that are typically needed by games either way
--with-freetype
--with-mingw # needed by many, notably Blizzard titles
--with-opengl
--with-vulkan
--with-x
# ...and disable most options unimportant for games and unused by
# Proton rather than expose as volatile USEs with little support
--without-capi
--without-cups
--without-gphoto
--without-gssapi
--without-krb5
--without-ldap
--without-netapi
--without-opencl
--without-pcap
--without-sane
ac_cv_lib_soname_odbc=
$(use_enable gecko mshtml)
$(use_enable mono mscoree)
--disable-tests
$(use_with alsa)
$(use_with fontconfig)
$(use_with gstreamer)
$(use_with nls gettext)
$(use_with openal)
$(use_with osmesa)
--without-oss # media-sound/oss is not packaged (OSSv4)
$(use_with pulseaudio pulse)
$(use_with sdl)
$(use_with ssl gnutls)
$(use_with udev)
$(use_with udisks dbus) # dbus is only used for udisks
$(use_with unwind)
$(use_with usb)
$(use_with v4l v4l2)
$(use_with vkd3d)
$(use_with xcomposite)
$(use_with xinerama)
)
tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
filter-lto # build failure
use custom-cflags || strip-flags # can break in obscure ways at runtime
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
# https://github.com/gentoo/gentoo/pull/28355
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
append-ldflags -fuse-ld=bfd
# build using upstream's way (--with-wine64)
# order matters: configure+compile 64->32, install 32->64
local -i bits
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
(
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
mkdir ../build${bits} || die
cd ../build${bits} || die
# CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
if (( bits == 64 )); then
: "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
conf+=( --enable-win64 )
elif use amd64; then
conf+=(
$(usev abi_x86_64 --with-wine64=../build64)
TARGETFLAGS=-m32 # for widl
)
# _setup is optional, but use over Wine's auto-detect (+#472038)
multilib_toolchain_setup x86
fi
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
# use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
: "${CROSSCFLAGS:=$(
filter-flags '-fstack-clash-protection' #758914
filter-flags '-fstack-protector*' #870136
filter-flags '-mfunction-return=thunk*' #878849
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
export CROSS{CC,{C,LD}FLAGS}
ECONF_SOURCE=${S} econf "${conf[@]}"
)
done
}
src_compile() {
use abi_x86_64 && emake -C ../build64 # do first
use abi_x86_32 && emake -C ../build32
}
src_install() {
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
# symlink for plain 'wine' and install its man pages if 64bit-only #404331
if use abi_x86_64 && use !abi_x86_32; then
dosym wine64 ${WINE_PREFIX}/bin/wine
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
local man
for man in ../build64/loader/wine.*man; do
: "${man##*/wine}"
: "${_%.*}"
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
newins ${man} wine.1
done
fi
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
# create variant wrappers for eselect-wine
local bin
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
done
# don't let portage try to strip PE files with the wrong
# strip executable and instead handle it here (saves ~120MB)
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
use debug ||
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
dodoc ANNOUNCE AUTHORS README* documentation/README*
readme.gentoo_create_doc
}
pkg_preinst() {
has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
}
pkg_postinst() {
[[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog
eselect wine update --if-unset || die
}
pkg_postrm() {
eselect wine update --if-unset || die
}

@ -5,8 +5,8 @@ EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
PYTHON_COMPAT=( python3_{9..11} )
inherit autotools flag-o-matic multilib multilib-build \
python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
inherit autotools flag-o-matic multilib multilib-build python-any-r1
inherit readme.gentoo-r1 toolchain-funcs wrapper
WINE_GECKO=2.47.3
WINE_MONO=7.4.0

@ -1,6 +1,8 @@
DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
DIST wine-8.0.tar.xz 29054044 BLAKE2B baf8f96b665119c9f38a148a2472dbe8f6ca8d4641d9d09d48cb72cb4de2585c274b8b7981c2fa622ead6da2f087c57652e9b48edc8a17c0cfd6be9a36732f02 SHA512 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77
DIST wine-8.1.tar.xz 29083080 BLAKE2B 6eed2128627f15159ad80588ebe839de76cb9a536797d7da136b61f56033ece60c60208702b7928cdb297c1d8730baae0d6bb0ac7a0473c34ed44b5c5edaaec5 SHA512 3f0477c26f293cf928acbdae2ffb98740ac227a605ec90f3ab3d35c0dbca2037529ff4e4de0b69cc975579ad14dc2fb8b52e050cfd99cffcc627418cf8cb4346
DIST wine-staging-7.19.tar.gz 9523048 BLAKE2B e53fd47af493cbdc4542f908a39557324d70ad67ff2e06c80296c006a63518e43988750cab2f4d3d9197fc9c8a1e61ed4d96bcc310b82b6cfc8ec12b941f1c5c SHA512 c51cb18c4ae00eccf414f5edda18ebf363674ba7cfa95da135b3a43b7c012c086d454d6ac32b22d98e611bb87e55c3e1ee95571a4a0c9713028b5ac38e8aed3f
DIST wine-staging-7.22.tar.gz 9528424 BLAKE2B e41f24f924117259715505f4f9998ef23a657bca5b0e285feb7f9fd732e6b566a495f48ec59af09b1d4d51db522b051028f6cbba748256e939929fbf978f0e44 SHA512 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65
DIST wine-staging-8.0.tar.gz 9529620 BLAKE2B c9540195ea885d9f1e980232b0af471e92c61eb079cae35fdb3af5c13d4660b3466f751772440e38f15874082db296d16d1f1d68827a505b2dd949617eda0203 SHA512 76a729d7ced1ff634ddb455ddfaa66ca103b652f43cd152b57ada7431bb5fbb74f5e92bf2f4f329b6df6f5908130afad84e609cbce6df645d6cf8131e9b949f9
DIST wine-staging-8.1.tar.gz 9527176 BLAKE2B 363243a4a04bc767099b74f3b7613463d99da82996c176e68b9233cbf51c87ecd143840f7729a3edc31ac004b771b89ec3d57a0276b26e30d475feb273d09257 SHA512 c5c3111b27de7d3bf1d7a3a53f33e8d78c5006f22ff0361f77392455fa69b0afd7c58406515ace04b2df7e1dfb20e3adf9d874e5e8be09c9032c1c1aa31fe696

@ -0,0 +1,355 @@
# Copyright 2022-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MULTILIB_COMPAT=( abi_x86_{32,64} )
inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
WINE_GECKO=2.47.3
WINE_MONO=7.4.0
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
else
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
SRC_URI="
https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz
https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="-* ~amd64 ~x86"
fi
S="${WORKDIR}/wine-${PV}"
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
HOMEPAGE="https://wiki.winehq.org/Wine-Staging"
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
SLOT="${PV}"
IUSE="
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
+gstreamer kerberos +mingw +mono netapi nls odbc opencl +opengl
osmesa pcap perl pulseaudio samba scanner +sdl selinux +ssl
+truetype udev udisks +unwind usb v4l +vulkan +xcomposite xinerama"
REQUIRED_USE="
X? ( truetype )
crossdev-mingw? ( mingw )" # bug #551124 for truetype
# tests are non-trivial to run, can hang easily, don't play well with
# sandbox, and several need real opengl/vulkan or network access
RESTRICT="test"
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
WINE_DLOPEN_DEPEND="
X? (
x11-libs/libXcursor[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
x11-libs/libXi[${MULTILIB_USEDEP}]
x11-libs/libXrandr[${MULTILIB_USEDEP}]
x11-libs/libXrender[${MULTILIB_USEDEP}]
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
opengl? (
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
)
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
)
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libXext[${MULTILIB_USEDEP}]
)
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
gstreamer? (
dev-libs/glib:2[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
)
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
unwind? (
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
)
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
RDEPEND="
${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
dos? ( games-emulation/dosbox )
gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
mono? ( app-emulation/wine-mono:${WINE_MONO} )
perl? (
dev-lang/perl
dev-perl/XML-LibXML
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
udisks? ( sys-fs/udisks:2 )"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
X? ( x11-base/xorg-proto )"
BDEPEND="
dev-lang/perl
sys-devel/binutils
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
mingw? ( !crossdev-mingw? (
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
) )
nls? ( sys-devel/gettext )"
IDEPEND=">=app-eselect/eselect-wine-2"
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
PATCHES=(
"${FILESDIR}"/${PN}-7.17-noexecstack.patch
"${FILESDIR}"/${PN}-7.20-unwind.patch
)
pkg_pretend() {
[[ ${MERGE_TYPE} == binary ]] && return
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
local mingw=-w64-mingw32
for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
if ! type -P ${mingw}-gcc >/dev/null; then
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
eerror "yourself by installing sys-devel/crossdev then running:"
eerror
eerror " crossdev --target ${mingw}"
eerror
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
fi
done
fi
}
src_unpack() {
if [[ ${PV} == *9999 ]]; then
EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
git-r3_src_unpack
EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
EGIT_CHECKOUT_DIR=${S}
einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
git-r3_src_unpack
else
default
fi
}
src_prepare() {
local staging=(
./patchinstall.sh DESTDIR="${S}"
--all
--backend=eapply
--no-autoconf
-W winemenubuilder-Desktop_Icon_Path #652176
${MY_WINE_STAGING_CONF}
)
# source patcher in a subshell so can use eapply as a backend
ebegin "Running ${staging[*]}"
( cd ../${P}/patches && . "${staging[@]}" )
eend ${?} || die "Failed to apply the patchset"
# sanity check, bumping these has a history of oversights
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
dlls/appwiz.cpl/addons.c || die)
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
local gmfatal=
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
fi
default
# ensure .desktop calls this variant + slot
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
# always update for patches (including user's wrt #432348)
eautoreconf
tools/make_requests || die # perl
}
src_configure() {
WINE_PREFIX=/usr/lib/${P}
WINE_DATADIR=/usr/share/${P}
local conf=(
--prefix="${EPREFIX}"${WINE_PREFIX}
--datadir="${EPREFIX}"${WINE_DATADIR}
--includedir="${EPREFIX}"/usr/include/${P}
--libdir="${EPREFIX}"${WINE_PREFIX}
--mandir="${EPREFIX}"${WINE_DATADIR}/man
$(use_enable gecko mshtml)
$(use_enable mono mscoree)
--disable-tests
$(use_with X x)
$(use_with alsa)
$(use_with capi)
$(use_with cups)
$(use_with fontconfig)
$(use_with gphoto2 gphoto)
$(use_with gstreamer)
$(use_with kerberos gssapi)
$(use_with kerberos krb5)
$(use_with mingw)
$(use_with netapi)
$(use_with nls gettext)
$(use_with opencl)
$(use_with opengl)
$(use_with osmesa)
--without-oss # media-sound/oss is not packaged (OSSv4)
$(use_with pcap)
$(use_with pulseaudio pulse)
$(use_with scanner sane)
$(use_with sdl)
$(use_with ssl gnutls)
$(use_with truetype freetype)
$(use_with udev)
$(use_with udisks dbus) # dbus is only used for udisks
$(use_with unwind)
$(use_with usb)
$(use_with v4l v4l2)
$(use_with vulkan)
$(use_with xcomposite)
$(use_with xinerama)
$(usev !odbc ac_cv_lib_soname_odbc=)
)
tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
filter-lto # build failure
use mingw || filter-flags -fno-plt # build failure
use custom-cflags || strip-flags # can break in obscure ways at runtime
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
# https://github.com/gentoo/gentoo/pull/28355
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
append-ldflags -fuse-ld=bfd
# build using upstream's way (--with-wine64)
# order matters: configure+compile 64->32, install 32->64
local -i bits
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
(
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
mkdir ../build${bits} || die
cd ../build${bits} || die
pe_arch=i386
if (( bits == 64 )); then
pe_arch=x86_64
: "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
conf+=( --enable-win64 )
elif use amd64; then
conf+=(
$(usev abi_x86_64 --with-wine64=../build64)
TARGETFLAGS=-m32 # for widl
)
# _setup is optional, but use over Wine's auto-detect (+#472038)
multilib_toolchain_setup x86
fi
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
if use mingw; then
# CROSSCC is no longer recognized by Wine, but still use for now
# (future handling for CROSS* variables is subject to changes)
conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
# use *FLAGS for mingw, but strip unsupported
: "${CROSSCFLAGS:=$(
# >=wine-7.21 configure.ac no longer adds -fno-strict by mistake
append-cflags '-fno-strict-aliasing'
filter-flags '-fstack-clash-protection' #758914
filter-flags '-fstack-protector*' #870136
filter-flags '-mfunction-return=thunk*' #878849
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
: "${CROSSLDFLAGS:=$(
filter-flags '-fuse-ld=*'
CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
export CROSS{C,LD}FLAGS
fi
ECONF_SOURCE=${S} econf "${conf[@]}"
)
done
}
src_compile() {
use abi_x86_64 && emake -C ../build64 # do first
use abi_x86_32 && emake -C ../build32
}
src_install() {
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
# symlink for plain 'wine' and install its man pages if 64bit-only #404331
if use abi_x86_64 && use !abi_x86_32; then
dosym wine64 ${WINE_PREFIX}/bin/wine
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
local man
for man in ../build64/loader/wine.*man; do
: "${man##*/wine}"
: "${_%.*}"
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
newins ${man} wine.1
done
fi
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
# create variant wrappers for eselect-wine
local bin
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
done
# don't let portage try to strip PE files with the wrong
# strip executable and instead handle it here (saves ~120MB)
if use mingw; then
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
use debug ||
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
fi
dodoc ANNOUNCE AUTHORS README* documentation/README*
}
pkg_postinst() {
eselect wine update --if-unset || die
}
pkg_postrm() {
eselect wine update --if-unset || die
}

Binary file not shown.

@ -1,2 +1,2 @@
DIST github-exporter-1.0.2-deps.tar.xz 6692672 BLAKE2B 7b0d32b116d7661c89271c674c01680e7cf5b4af83e7eebf4d069a34696fffdf21c57f376acce02922d8c02a8238d967115d561cca4dec1437efb561b5bb3661 SHA512 4c3c24ab3cdc8723f47226f90bdaeff2b5d92d38184bfdc230351db74a172c3dcb9fb4bd3c240a70a15e71eb0ad782c579f3fa3bb0aff105999aa3f4a6110c1e
DIST github-exporter-1.0.2.tar.gz 20534 BLAKE2B 344e01adfca6afade30598305ba388878ddfb3a7e277dc95b87bb5a409bc269b4bfce7ba178ac155f3cd06f72fcf69cf8c38c898eaf391e85ce122618c707fcd SHA512 98326a8c33a7b1e3e7d4106bdd58d07ec34a9f56bce5e4caefe07ba31ac50e2c98bf849aa60cf9d5445afd02d3d9c899a3cb59eddf45635130853d740b3d6347
DIST github-exporter-1.0.3-deps.tar.xz 7786648 BLAKE2B 1dd1876f144e95602131f6f0ec11f4189a88a56821f4ee812b906a1d6d8494651465e416c409a998b19b48081ec8c53d5f11a51f8292002cb9fc50fc13fc4e81 SHA512 247b80369efe54e838868b0c94075031a4430d03f1c8ffefb686d94a6de70f5f288f79459a14f9c1331d2f1a3f9e865e5f7cbd658dc6f01bc7c6e893b5305af2
DIST github-exporter-1.0.3.tar.gz 22089 BLAKE2B 69ac6a71fa8872c08cb24b6fa3e0aa79a8d49fdc626606f5ae1265cb654f73a320d53c1f934f3b2a116c713412f0cb278e27ed892da19b54ff09405abba5bfc4 SHA512 9b3ab36dc8c76e844afdb7f36099dca86f358072fb0ccc134e4ba6754b2a84122b700bb92607014eb2e21e1e3f3889f842e82cd612e66d223e31aef60d123220

@ -1,7 +1,7 @@
# Copyright 2019-2022 Gentoo Authors
# Copyright 2019-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
EAPI=8
inherit go-module systemd
DESCRIPTION="Github statistics exporter for prometheus"
HOMEPAGE="https://github.com/infinityworks/github-exporter"
@ -15,6 +15,11 @@ KEYWORDS="~amd64"
RDEPEND="acct-group/github-exporter
acct-user/github-exporter"
src_prepare() {
default
sed -i -e 's/-race//' Makefile || die 'sed failed'
}
src_compile() {
ego build
}

@ -1,2 +1 @@
DIST prom2json-0.1.0_p20170523.tar.gz 129179 BLAKE2B ef0e42e340d53894c31bff7018b668d8575fc3568584a43dc308955665ac6f59dbabf2d4605bc2a66957df57a29ebb7b3a4eef1f99537eefc2805a5ffd86904f SHA512 824f4c43f4a167dc7dde2f11e84cf482e5cdfa26ab11caf08a5461d525543c3491180f54694c4ae61fdd5dc9763ff16f6e29b332a64dc3ac52fdb7b9c0902571
DIST prom2json-1.3.0.tar.gz 1646893 BLAKE2B 9b8fcfa4a3e45ee08a57016fa6a7611604cbb578f162f0bf7ff8338f345f98788b75c3ac047ffca95b62020e972c302bc1c44f2f7f00240cfd978f73b8d9c829 SHA512 8f02c7b2616d915e2b4ff5f195a8c2eff89d18417f7396dc02d2aa4cf34711358b0beef6effae9b42a3d6f4b0616c5d3ab995a73ab9e37a4a0ec230adff6f249

@ -1,38 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit golang-build golang-vcs-snapshot
EGO_PN="github.com/prometheus/${PN}"
EGIT_COMMIT="4a7436442837da72f9e211d99f0145dff3246b66"
ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
DESCRIPTION="A tool to scrape a Prometheus client and dump the result as JSON"
HOMEPAGE="https://github.com/prometheus/prom2json"
SRC_URI="${ARCHIVE_URI}"
LICENSE="Apache-2.0"
SLOT="0"
DEPEND="dev-util/promu"
src_prepare() {
default
sed -i -e "s/{{.Revision}}/${EGIT_COMMIT:0:7}/" src/${EGO_PN}/.promu.yml || die
}
src_compile() {
pushd src/${EGO_PN} || die
mkdir -p bin || die
GOPATH="${S}" promu build -v --prefix ${PN} || die
popd || die
}
src_install() {
pushd src/${EGO_PN} || die
dobin ${PN}/${PN}
dodoc {README,CONTRIBUTING}.md
popd || die
}

@ -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
@ -29,6 +29,10 @@ src_compile() {
promu build --prefix bin || die
}
src_test() {
emake test-flags= test || die
}
src_install() {
dobin bin/*
dodoc {README,CONTRIBUTING}.md

@ -1,2 +1,4 @@
DIST snmp_exporter-0.20.0-deps.tar.xz 167938880 BLAKE2B 26db1effd4c74c1d8ad063e390e3ebc2f652bc901b679a70dfa2fda479ead9622eb3bf729f24a3a0088d9b154be108e472218a84109ef23d8413e0db2f8afc9e SHA512 f2b2e72967bd7255abf5f808d1dbb5691755d232b32e0c833ebc9b74a469b5c2b704afb7f32c1c591653a4ad6162efc5ec13345e9f5e2d08c7f01d24bdddf3a1
DIST snmp_exporter-0.20.0.tar.gz 290899 BLAKE2B 81c2c6e8b1f61fe322cf040910744857f0628b61172774069675f5702d7e8dcc443a5567d5fe9d3e26139fee87c3cae8ed5fb7ce21c13b8a0f0cab1cd76384aa SHA512 fe09033e713f12b5a6ad79445def55c8d94c75cbee5e4e7c4683e853c1a8335005462d607e0c7306d2ee6e70178edeb9b6cff0c35aa6d36a4d0fa5ce45cedb51
DIST snmp_exporter-0.21.0-deps.tar.xz 173870408 BLAKE2B 8bd9699a1ecefcfb90784892e1329919baa06349cde89106a4fa4f7543672aa4de907781183baf714aceb6b1dba5c748130e1b98577830011fed40833bedda20 SHA512 d267e596b2a5c11844aaae66d75bc40c7bcc0263bc04ad2359d29450f44c7a4be263bc453a35a75250424144b4afb4ae15afe9988f95c922d20ec975827fc88e
DIST snmp_exporter-0.21.0.tar.gz 322098 BLAKE2B 5e28186dc5da1c38be0bc2a8801c56a2a32c835886b7a4d3a8a7add91960679d250bc91e5b75fdb92fb6237d53ca2b5114aa2d6b869c1db9cc371aad6841b153 SHA512 5ebb629ebc48f38035c031f2ebd7109ee681499556771792a3cddc671561b119d144a5fd9f4e51ceaccb58dc50e3852d185ee0c7f1ac57d6307d4936dc1a45b4

@ -0,0 +1,52 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
SNMP_EXPORTER_COMMIT=0d8c3527
inherit go-module
DESCRIPTION="Prometheus exporter for snmp metrics"
HOMEPAGE="https://github.com/prometheus/snmp_exporter"
SRC_URI="https://github.com/prometheus/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz"
SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
LICENSE="Apache-2.0 BSD BSD-2 MIT"
SLOT="0"
KEYWORDS="~amd64"
COMMON_DEPEND="acct-group/snmp_exporter
acct-user/snmp_exporter
net-analyzer/net-snmp"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}"
BDEPEND="dev-util/promu"
src_prepare() {
default
sed -i -e "s/{{.Revision}}/${SNMP_EXPORTER_COMMIT}/" .promu.yml || die
}
src_compile() {
promu build --prefix bin || die
pushd generator || die
ego build -o ../bin/generator
popd || die
}
src_test() {
emake test-flags= test
}
src_install() {
dobin bin/generator
newbin bin/${PN}-${PV} ${PN}
dodoc {README,CONTRIBUTING}.md generator/{FORMAT,README}.md generator/generator.yml
insinto /etc/snmp_exporter
newins snmp.yml snmp.yml.example
newinitd "${FILESDIR}"/${PN}.initd ${PN}
newconfd "${FILESDIR}"/${PN}.confd ${PN}
insinto /etc/logrotate.d
newins "${FILESDIR}/${PN}.logrotated" "${PN}"
keepdir /var/lib/snmp_exporter /var/log/snmp_exporter
fowners ${PN}:${PN} /var/lib/snmp_exporter /var/log/snmp_exporter
}

Binary file not shown.

@ -59,7 +59,7 @@ ${PRECOMPILED} || IUSE+=" cacert"
# c_rehash: we run `c_rehash`
# debianutils: we run `run-parts`
CDEPEND="app-misc/c_rehash
CDEPEND="
sys-apps/debianutils"
BDEPEND="${CDEPEND}"
@ -133,7 +133,6 @@ src_prepare() {
sed -i \
-e '/="$ROOT/s:ROOT:ROOT'"${EPREFIX}"':' \
-e '/RELPATH="\.\./s:"$:'"${relp}"'":' \
-e 's/openssl rehash/c_rehash/' \
usr/sbin/update-ca-certificates || die
}

Binary file not shown.

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@ -62,6 +62,7 @@ BIN_COMMON_DEPEND="
media-libs/libpng:0/16
media-libs/openjpeg:2/7
media-libs/zxing-cpp:0/1.4
sci-mathematics/lpsolve:0/0
>=sys-devel/gcc-11.3.0
>=sys-libs/glibc-2.35
"

@ -62,6 +62,7 @@ BIN_COMMON_DEPEND="
media-libs/libpng:0/16
media-libs/openjpeg:2/7
media-libs/zxing-cpp:0/3
sci-mathematics/lpsolve:0/0
>=sys-devel/gcc-11.3.0
>=sys-libs/glibc-2.36
"

@ -164,7 +164,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
media-libs/zxing-cpp:=
>=net-libs/neon-0.31.1:=
net-misc/curl
sci-mathematics/lpsolve
sci-mathematics/lpsolve:=
sys-libs/zlib
virtual/opengl
x11-libs/cairo[X]

@ -165,7 +165,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
media-libs/zxing-cpp:=
>=net-libs/neon-0.31.1:=
net-misc/curl
sci-mathematics/lpsolve
sci-mathematics/lpsolve:=
sys-libs/zlib
virtual/opengl
x11-libs/cairo[X]

@ -165,7 +165,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
media-libs/zxing-cpp:=
>=net-libs/neon-0.31.1:=
net-misc/curl
sci-mathematics/lpsolve
sci-mathematics/lpsolve:=
sys-libs/zlib
virtual/opengl
x11-libs/cairo[X]

@ -165,7 +165,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
media-libs/zxing-cpp:=
>=net-libs/neon-0.31.1:=
net-misc/curl
sci-mathematics/lpsolve
sci-mathematics/lpsolve:=
sys-libs/zlib
virtual/opengl
x11-libs/cairo[X]

@ -165,7 +165,7 @@ COMMON_DEPEND="${PYTHON_DEPS}
media-libs/zxing-cpp:=
>=net-libs/neon-0.31.1:=
net-misc/curl
sci-mathematics/lpsolve
sci-mathematics/lpsolve:=
sys-libs/zlib
virtual/opengl
x11-libs/cairo[X]

Binary file not shown.

@ -1,2 +1,4 @@
DIST poppler-23.01.0.tar.xz 1847492 BLAKE2B 8dd85767a0c101b3d7166719374658a233aff491b0990917aacaa6fb3c5d8e51104b3ac45c78dcfb380286ea48067d1db57c2794d99a93cae9f4d64e9ca3dd07 SHA512 a44fd59cdb4dc1c04765990d9666f27538895883fe98a64e7bea30caebeab10875615282307fbd6eacecf83b7a7c8daa81afa1b13ae6c09b80673e3fb8563053
DIST poppler-23.01.0.tar.xz.sig 833 BLAKE2B 46c3910627fd69930fd428397e739e3fe41c9b835379dfe7abbdf421049a77b33ce1cf6a44bd386278d3610ae2547d119ac6da4c3bfa7f348c51fbce7319a878 SHA512 0cebaac1846e6b3944175bcb28b49592d562738c009a97e048abe9f6677718c97bea2b470ea503b8dd083fc5f154e71d539cf1e3bce08363c6979d268dcdfd3b
DIST poppler-23.02.0.tar.xz 1847612 BLAKE2B ca5187432c5088372f0b8f4fcd39a93998b28e505d214964de99cd03db555f8f80b05de19874264b1d732d2c45388562faead50b2b82116bb6031690419abd8c SHA512 0765319a1b106da740c7300172866e774ccbeec0bc0e938f009efd1a106b35ca2e5ab60a523e1d1dd5682b30499de4dffed0a1ca129c770263a096f781337a2c
DIST poppler-23.02.0.tar.xz.sig 833 BLAKE2B 48b46b92d8d95f25a0619aaa50c29c652e91ba99c5f8d5f30cbb879a2145e3a21df0258585ee9e44d036f4a8c1d54023e1bb22aa0d90bf69403b37c601b37ef2 SHA512 68fe9d46ec6f7f1b6d0d7becf96675477454af9218ad20ad159d8a06def73f08db59915adbb77b520e3e43091aaf895e045c7ccaafb57d2b2b9390e84e70a963

@ -0,0 +1,134 @@
# Copyright 2005-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake toolchain-funcs xdg-utils
if [[ ${PV} == *9999* ]] ; then
inherit git-r3
EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
SLOT="0/9999"
else
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/aacid.asc
inherit verify-sig
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
SRC_URI+=" verify-sig? ( https://poppler.freedesktop.org/${P}.tar.xz.sig )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
SLOT="0/126" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
fi
DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
HOMEPAGE="https://poppler.freedesktop.org/"
LICENSE="GPL-2"
IUSE="boost cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
# No test data provided
RESTRICT="test"
COMMON_DEPEND="
>=media-libs/fontconfig-2.13
>=media-libs/freetype-2.10
sys-libs/zlib
cairo? (
>=dev-libs/glib-2.64:2
>=x11-libs/cairo-1.16
introspection? ( >=dev-libs/gobject-introspection-1.64:= )
)
curl? ( net-misc/curl )
jpeg? ( >=media-libs/libjpeg-turbo-1.1.0:= )
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
lcms? ( media-libs/lcms:2 )
nss? ( >=dev-libs/nss-3.49 )
png? ( media-libs/libpng:0= )
qt5? (
dev-qt/qtcore:5
dev-qt/qtgui:5
dev-qt/qtxml:5
)
tiff? ( media-libs/tiff:= )
"
RDEPEND="${COMMON_DEPEND}
cjk? ( app-text/poppler-data )
"
DEPEND="${COMMON_DEPEND}
boost? ( >=dev-libs/boost-1.71 )
"
BDEPEND="
>=dev-util/glib-utils-2.64
virtual/pkgconfig
"
if [[ ${PV} != *9999* ]] ; then
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-aacid )"
fi
DOCS=( AUTHORS NEWS README.md README-XPDF )
PATCHES=(
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
"${FILESDIR}/${PN}-21.09.0-respect-cflags.patch"
"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
)
src_prepare() {
cmake_src_prepare
# Clang doesn't grok this flag, the configure nicely tests that, but
# cmake just uses it, so remove it if we use clang
if tc-is-clang ; then
sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
fi
if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
-i CMakeLists.txt || die
else
einfo "policy(SET CMP0002 OLD) - workaround can be removed"
fi
}
src_configure() {
xdg_environment_reset
local mycmakeargs=(
-DBUILD_GTK_TESTS=OFF
-DBUILD_QT5_TESTS=OFF
-DBUILD_CPP_TESTS=OFF
-DBUILD_MANUAL_TESTS=OFF
-DRUN_GPERF_IF_PRESENT=OFF
-DENABLE_BOOST="$(usex boost)"
-DENABLE_ZLIB=ON
-DENABLE_ZLIB_UNCOMPRESS=OFF
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
-DUSE_FLOAT=OFF
-DWITH_Cairo=$(usex cairo)
-DENABLE_LIBCURL=$(usex curl)
-DENABLE_CPP=$(usex cxx)
-DWITH_JPEG=$(usex jpeg)
-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
-DENABLE_CMS=$(usex lcms lcms2 none)
-DWITH_NSS3=$(usex nss)
-DWITH_PNG=$(usex png)
$(cmake_use_find_package qt5 Qt5Core)
-DWITH_TIFF=$(usex tiff)
-DENABLE_UTILS=$(usex utils)
-DENABLE_QT6=OFF
)
use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
cmake_src_configure
}
src_install() {
cmake_src_install
# live version doesn't provide html documentation
if use cairo && use doc && [[ ${PV} != *9999* ]]; then
# For now install gtk-doc there
insinto /usr/share/gtk-doc/html/poppler
doins -r "${S}"/glib/reference/html/*
fi
}

Binary file not shown.

@ -1,2 +1,2 @@
DIST gtest-1.11.0.tar.gz 886330 BLAKE2B d11fdd485f292d96508cbc27a9a444ab69b86571cc594298fd3f0e6d4bd8d6ec20dea848fe11be165d34054b2251ad377f0930f852914feaa1416ff156986a9c SHA512 6fcc7827e4c4d95e3ae643dd65e6c4fc0e3d04e1778b84f6e06e390410fe3d18026c131d828d949d2f20dde6327d30ecee24dcd3ef919e21c91e010d149f3a28
DIST gtest-1.12.1.tar.gz 854944 BLAKE2B 7b121fb95bb19efec1387a83da2201a139197225f79f7649ceac04695ff06fc4148319ae928d79ced413a9cfd42e68b56bfda1ee6bfdbf07fdd22795e9974388 SHA512 a9104dc6c53747e36e7dd7bb93dfce51a558bd31b487a9ef08def095518e1296da140e0db263e0644d9055dbd903c0cb69380cb2322941dbfb04780ef247df9c
DIST gtest-1.13.0.tar.gz 862871 BLAKE2B d2768332c233d62f7a5f5332b63dc587c96c24765b2eeaa4f4caf5d421b175aa850d81cec4f50eeef9e06d4b86cb959555b4c2862a197ce3cb86d61fcb51f5d1 SHA512 70c0cfb1b4147bdecb467ecb22ae5b5529eec0abc085763213a796b7cdbd81d1761d12b342060539b936fa54f345d33f060601544874d6213fdde79111fa813e

@ -13,9 +13,9 @@ if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/google/googletest"
else
if [[ -z ${GOOGLETEST_COMMIT} ]]; then
SRC_URI="https://github.com/google/googletest/archive/refs/tags/release-${PV}.tar.gz
SRC_URI="https://github.com/google/googletest/archive/refs/tags/v${PV}.tar.gz
-> ${P}.tar.gz"
S="${WORKDIR}"/googletest-release-${PV}
S="${WORKDIR}"/googletest-${PV}
else
SRC_URI="https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz
-> ${P}.tar.gz"

@ -13,9 +13,9 @@ if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/google/googletest"
else
if [[ -z ${GOOGLETEST_COMMIT} ]]; then
SRC_URI="https://github.com/google/googletest/archive/refs/tags/release-${PV}.tar.gz
SRC_URI="https://github.com/google/googletest/archive/refs/tags/v${PV}.tar.gz
-> ${P}.tar.gz"
S="${WORKDIR}"/googletest-release-${PV}
S="${WORKDIR}"/googletest-${PV}
else
SRC_URI="https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz
-> ${P}.tar.gz"
@ -60,7 +60,7 @@ multilib_src_configure() {
multilib_src_test() {
# Exclude tests that fail with FEATURES="usersandbox"
cmake_src_test -E "googletest-death-test-test"
cmake_src_test -E "googletest-(death-test|port)-test"
}
multilib_src_install_all() {

Binary file not shown.

@ -1,3 +1,4 @@
DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

@ -0,0 +1,88 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake llvm llvm.org python-any-r1
DESCRIPTION="OpenCL C library"
HOMEPAGE="https://libclc.llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions || ( MIT BSD )"
SLOT="0"
KEYWORDS=""
IUSE="spirv video_cards_nvidia video_cards_r600 video_cards_radeonsi"
LLVM_MAX_SLOT=17
BDEPEND="
${PYTHON_DEPS}
|| (
(
sys-devel/clang:17
spirv? ( dev-util/spirv-llvm-translator:17 )
)
(
sys-devel/clang:16
spirv? ( dev-util/spirv-llvm-translator:16 )
)
(
sys-devel/clang:15
spirv? ( dev-util/spirv-llvm-translator:15 )
)
(
sys-devel/clang:14
spirv? ( dev-util/spirv-llvm-translator:14 )
)
(
sys-devel/clang:13
spirv? ( dev-util/spirv-llvm-translator:13 )
)
)
"
LLVM_COMPONENTS=( libclc )
llvm.org_set_globals
llvm_check_deps() {
if use spirv; then
has_version -b "dev-util/spirv-llvm-translator:${LLVM_SLOT}" ||
return 1
fi
has_version -b "sys-devel/clang:${LLVM_SLOT}"
}
pkg_setup() {
llvm_pkg_setup
python-any-r1_pkg_setup
}
src_configure() {
local libclc_targets=()
use spirv && libclc_targets+=(
"spirv-mesa3d-"
"spirv64-mesa3d-"
)
use video_cards_nvidia && libclc_targets+=(
"nvptx--"
"nvptx64--"
"nvptx--nvidiacl"
"nvptx64--nvidiacl"
)
use video_cards_r600 && libclc_targets+=(
"r600--"
)
use video_cards_radeonsi && libclc_targets+=(
"amdgcn--"
"amdgcn-mesa-mesa3d"
"amdgcn--amdhsa"
)
[[ ${#libclc_targets[@]} ]] || die "libclc target missing!"
libclc_targets=${libclc_targets[*]}
local mycmakeargs=(
-DLIBCLC_TARGETS_TO_BUILD="${libclc_targets// /;}"
)
cmake_src_configure
}

@ -1 +1,2 @@
DIST nss-pem-1.0.8.tar.xz 41840 BLAKE2B 6a210517b6f70a6a1a0351970811500c1364c6cbb0159dc4b7b3edeff7c01d3b643a5a4a4946a350a1a49898570141acda1e913fdc79d750339f5021445e61c7 SHA512 9fd1fa9203fd707668506752be6f99d26e53281b8b95d7c3020da33ab8cb287890b66c8a59f1ee952fe8d2a8a350d7c5b4214a523a2e1762e48989f02c408b33
DIST nss-pem-1.0.9.tar.xz 41848 BLAKE2B 606c8db9f8f8b6f46dfcc1128903d7139ba7b9d0062b7137d78ab7ba8af1877d1a6f9e96c139715dcdaf76a6ef268031692395d80efc00db719a5984edfda9e4 SHA512 c656e2f6ab1a0ab9448ef9efd70168f17901f585b53237f3dae493a1a40f8c90dfeb25b81e46472e479bfa3f443994669b5614f124cd828224227b7b8326f6f3

@ -0,0 +1,29 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake-multilib
DESCRIPTION="PEM file reader for Network Security Services (NSS)"
HOMEPAGE="https://github.com/kdudka/nss-pem"
SRC_URI="https://github.com/kdudka/${PN}/releases/download/${P}/${P}.tar.xz"
LICENSE="MPL-1.1"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris"
DEPEND="dev-libs/nss
dev-libs/nspr"
RDEPEND="${DEPEND}"
BDEPEND="dev-libs/nss
virtual/pkgconfig"
S="${WORKDIR}/${P}/src"
multilib_src_configure() {
local mycmakeargs=(
-DLIB_INSTALL_DIR="$(get_libdir)"
)
cmake_src_configure
}

@ -22,7 +22,7 @@ fi
IUSE="+asm rfc3779 sctp cpu_flags_x86_sse2 sslv3 static-libs test tls-compression tls-heartbeat vanilla verify-sig weak-ssl-ciphers"
RESTRICT="!test? ( test )"
RDEPEND=">=app-misc/c_rehash-1.7-r1
RDEPEND="
tls-compression? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
BDEPEND="
@ -334,7 +334,7 @@ multilib_src_install_all() {
}
pkg_postinst() {
ebegin "Running 'c_rehash ${EROOT}${SSL_CNF_DIR}/certs/' to rebuild hashes (bug #333069)"
c_rehash "${EROOT}${SSL_CNF_DIR}/certs" >/dev/null
ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)"
openssl rehash "${EROOT}${SSL_CNF_DIR}/certs"
eend $?
}

@ -30,7 +30,6 @@ IUSE="+asm cpu_flags_x86_sse2 fips ktls rfc3779 sctp static-libs test tls-compre
RESTRICT="!test? ( test )"
COMMON_DEPEND="
>=app-misc/c_rehash-1.7-r1
tls-compression? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
"
BDEPEND="
@ -320,7 +319,7 @@ multilib_src_install_all() {
}
pkg_postinst() {
ebegin "Running 'c_rehash ${EROOT}${SSL_CNF_DIR}/certs/' to rebuild hashes (bug #333069)"
c_rehash "${EROOT}${SSL_CNF_DIR}/certs" >/dev/null
ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)"
openssl rehash "${EROOT}${SSL_CNF_DIR}/certs"
eend $?
}

@ -0,0 +1,264 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/openssl.org.asc
inherit edo flag-o-matic linux-info toolchain-funcs multilib-minimal multiprocessing verify-sig
DESCRIPTION="Robust, full-featured Open Source Toolkit for the Transport Layer Security (TLS)"
HOMEPAGE="https://www.openssl.org/"
MY_P=${P/_/-}
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/openssl/openssl.git"
inherit git-r3
else
SRC_URI="mirror://openssl/source/${MY_P}.tar.gz
verify-sig? ( mirror://openssl/source/${MY_P}.tar.gz.asc )"
#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x86-linux"
KEYWORDS="~alpha ~amd64 ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~riscv ~s390 ~sparc ~x86"
fi
S="${WORKDIR}"/${MY_P}
LICENSE="Apache-2.0"
SLOT="0/3" # .so version of libssl/libcrypto
IUSE="+asm cpu_flags_x86_sse2 fips ktls rfc3779 sctp static-libs test tls-compression vanilla verify-sig weak-ssl-ciphers"
RESTRICT="!test? ( test )"
COMMON_DEPEND="
tls-compression? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
"
BDEPEND="
>=dev-lang/perl-5
sctp? ( >=net-misc/lksctp-tools-1.0.12 )
test? (
sys-apps/diffutils
sys-devel/bc
sys-process/procps
)
verify-sig? ( >=sec-keys/openpgp-keys-openssl-20221101 )"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}"
PDEPEND="app-misc/ca-certificates"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/openssl/configuration.h
)
PATCHES=(
"${FILESDIR}"/${P}-x509-CVE-2022-3996.patch
)
pkg_setup() {
if use ktls ; then
if kernel_is -lt 4 18 ; then
ewarn "Kernel implementation of TLS (USE=ktls) requires kernel >=4.18!"
else
CONFIG_CHECK="~TLS ~TLS_DEVICE"
ERROR_TLS="You will be unable to offload TLS to kernel because CONFIG_TLS is not set!"
ERROR_TLS_DEVICE="You will be unable to offload TLS to kernel because CONFIG_TLS_DEVICE is not set!"
use test && CONFIG_CHECK+=" ~CRYPTO_USER_API_SKCIPHER"
linux-info_pkg_setup
fi
fi
[[ ${MERGE_TYPE} == binary ]] && return
# must check in pkg_setup; sysctl doesn't work with userpriv!
if use test && use sctp ; then
# test_ssl_new will fail with "Ensure SCTP AUTH chunks are enabled in kernel"
# if sctp.auth_enable is not enabled.
local sctp_auth_status=$(sysctl -n net.sctp.auth_enable 2>/dev/null)
if [[ -z "${sctp_auth_status}" ]] || [[ ${sctp_auth_status} != 1 ]] ; then
die "FEATURES=test with USE=sctp requires net.sctp.auth_enable=1!"
fi
fi
}
src_unpack() {
# Can delete this once test fix patch is dropped
if use verify-sig ; then
# Needed for downloaded patch (which is unsigned, which is fine)
verify-sig_verify_detached "${DISTDIR}"/${P}.tar.gz{,.asc}
fi
default
}
src_prepare() {
# Allow openssl to be cross-compiled
cp "${FILESDIR}"/gentoo.config-1.0.4 gentoo.config || die
chmod a+rx gentoo.config || die
# Keep this in sync with app-misc/c_rehash
SSL_CNF_DIR="/etc/ssl"
# Make sure we only ever touch Makefile.org and avoid patching a file
# that gets blown away anyways by the Configure script in src_configure
rm -f Makefile
if ! use vanilla ; then
PATCHES+=(
# Add patches which are Gentoo-specific customisations here
)
fi
default
if use test && use sctp && has network-sandbox ${FEATURES} ; then
einfo "Disabling test '80-test_ssl_new.t' which is known to fail with FEATURES=network-sandbox ..."
rm test/recipes/80-test_ssl_new.t || die
fi
# Quiet out unknown driver argument warnings since openssl
# doesn't have well-split CFLAGS and we're making it even worse
# and 'make depend' uses -Werror for added fun (bug #417795 again)
tc-is-clang && append-flags -Qunused-arguments
# We really, really need to build OpenSSL w/ strict aliasing disabled.
# It's filled with violations and it *will* result in miscompiled
# code. This has been in the ebuild for > 10 years but even in 2022,
# it's still relevant:
# - https://github.com/llvm/llvm-project/issues/55255
# - https://github.com/openssl/openssl/issues/18225
# - https://github.com/openssl/openssl/issues/18663#issuecomment-1181478057
# Don't remove the no strict aliasing bits below!
filter-flags -fstrict-aliasing
append-flags -fno-strict-aliasing
append-flags $(test-flags-CC -Wa,--noexecstack)
local sslout=$(./gentoo.config)
einfo "Using configuration: ${sslout:-(openssl knows best)}"
edo perl Configure ${sslout} --test-sanity
multilib_copy_sources
}
multilib_src_configure() {
# bug #197996
unset APPS
# bug #312551
unset SCRIPTS
# bug #311473
unset CROSS_COMPILE
tc-export AR CC CXX RANLIB RC
use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
# See if our toolchain supports __uint128_t. If so, it's 64bit
# friendly and can use the nicely optimized code paths, bug #460790.
#local ec_nistp_64_gcc_128
#
# Disable it for now though (bug #469976)
# Do NOT re-enable without substantial discussion first!
#
#echo "__uint128_t i;" > "${T}"/128.c
#if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
# ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
#fi
local sslout=$(./gentoo.config)
einfo "Using configuration: ${sslout:-(openssl knows best)}"
# https://github.com/openssl/openssl/blob/master/INSTALL.md#enable-and-disable-features
local myeconfargs=(
${sslout}
$(use cpu_flags_x86_sse2 || echo "no-sse2")
enable-camellia
enable-ec
enable-ec2m
enable-sm2
enable-srp
$(use elibc_musl && echo "no-async")
enable-idea
enable-mdc2
enable-rc5
$(use fips && echo "enable-fips")
$(use_ssl asm)
$(use_ssl ktls)
$(use_ssl rfc3779)
$(use_ssl sctp)
$(use test || echo "no-tests")
$(use_ssl tls-compression zlib)
$(use_ssl weak-ssl-ciphers)
--prefix="${EPREFIX}"/usr
--openssldir="${EPREFIX}"${SSL_CNF_DIR}
--libdir=$(get_libdir)
shared
threads
)
edo perl Configure "${myeconfargs[@]}"
}
multilib_src_compile() {
emake build_sw
if multilib_is_native_abi; then
emake build_docs
fi
}
multilib_src_test() {
# VFP = show subtests verbosely and show failed tests verbosely
# Normal V=1 would show everything verbosely but this slows things down.
emake HARNESS_JOBS="$(makeopts_jobs)" VFP=1 test
}
multilib_src_install() {
emake DESTDIR="${D}" install_sw
if use fips; then
emake DESTDIR="${D}" install_fips
fi
if multilib_is_native_abi; then
emake DESTDIR="${D}" install_ssldirs
emake DESTDIR="${D}" DOCDIR='$(INSTALLTOP)'/share/doc/${PF} install_docs
fi
# This is crappy in that the static archives are still built even
# when USE=static-libs. But this is due to a failing in the openssl
# build system: the static archives are built as PIC all the time.
# Only way around this would be to manually configure+compile openssl
# twice; once with shared lib support enabled and once without.
if ! use static-libs ; then
rm "${ED}"/usr/$(get_libdir)/lib{crypto,ssl}.a || die
fi
}
multilib_src_install_all() {
# openssl installs perl version of c_rehash by default, but
# we provide a shell version via app-misc/c_rehash
rm "${ED}"/usr/bin/c_rehash || die
dodoc {AUTHORS,CHANGES,NEWS,README,README-PROVIDERS}.md doc/*.txt doc/${PN}-c-indent.el
# Create the certs directory
keepdir ${SSL_CNF_DIR}/certs
# bug #254521
dodir /etc/sandbox.d
echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
diropts -m0700
keepdir ${SSL_CNF_DIR}/private
}
pkg_postinst() {
ebegin "Running 'openssl rehash ${EROOT}${SSL_CNF_DIR}/certs' to rebuild hashes (bug #333069)"
openssl rehash "${EROOT}${SSL_CNF_DIR}/certs"
eend $?
}

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -41,7 +41,7 @@ unset i
LICENSE="NVIDIA-SDK"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
KEYWORDS="amd64 ~arm64"
RESTRICT="bindist mirror !headers-only? ( fetch )"
IUSE="+headers-only"

@ -1 +1,2 @@
DIST trio-1.17.1.tar.gz 466909 BLAKE2B 1403c2534623b536de519cd428ac75480ecc0fcb9fbba693e329a923471947f068cae1e1fd453d10863255369e830ef5d8a75475d95f0f903e66936a9fa48e2b SHA512 574e360d88be838d13d7df5259c68809187a578d8d04981812ff768d3ab80215baf5595952994ec9fabbe3a6ce71512a7cd16d6a29b4f91dcd1b6f2ebcd3ed98
DIST trio-1.17.tar.gz 452237 BLAKE2B 77ff673cc103b07b1424720d28c49d2e33a1402a98d8d21124fabb0cafd3498a99976d808cbbc5a90e1b3a063c6af68c3daf94768d533e4a762b730a253fa012 SHA512 19f4732b32c6a3754677d5766399fa70083c6a78c0d04b1dfa10a578b21405ba3e3d3af6543e4811f5fd305ec2727781a1b0f2888e59c574ca735f8406da7954

@ -0,0 +1,27 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DOCS_BUILDER="doxygen"
DOCS_DIR="doc"
inherit docs
DESCRIPTION="Portable string functions, focus on the *printf() and *scanf() clones"
HOMEPAGE="https://daniel.haxx.se/projects/trio/"
SRC_URI="https://github.com/orbea/trio/releases/download/v${PV}/${P}.tar.gz"
LICENSE="trio"
SLOT="0"
KEYWORDS="~amd64 ~x86"
src_compile() {
default
docs_compile
}
src_install() {
default
find "${ED}" -type f -name '*.la' -delete || die
}

Binary file not shown.

@ -1,3 +1,4 @@
DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

@ -0,0 +1,112 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit cmake llvm llvm.org python-any-r1
DESCRIPTION="OCaml bindings for LLVM"
HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0/${PV}"
KEYWORDS=""
IUSE="debug test"
RESTRICT="!test? ( test )"
RDEPEND="
>=dev-lang/ocaml-4.00.0:0=
dev-ml/ocaml-ctypes:=
~sys-devel/llvm-${PV}:=[debug?]
!sys-devel/llvm[ocaml(-)]
"
DEPEND="
${RDEPEND}
"
BDEPEND="
${PYTHON_DEPS}
dev-lang/perl
dev-ml/findlib
>=dev-util/cmake-3.16
"
LLVM_COMPONENTS=( llvm cmake third-party )
LLVM_USE_TARGETS=llvm
llvm.org_set_globals
pkg_setup() {
LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
python-any-r1_pkg_setup
}
src_configure() {
local libdir=$(get_libdir)
local mycmakeargs=(
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
-DBUILD_SHARED_LIBS=OFF
-DLLVM_BUILD_LLVM_DYLIB=ON
-DLLVM_LINK_LLVM_DYLIB=ON
-DLLVM_OCAML_OUT_OF_TREE=ON
# cheap hack: LLVM combines both anyway, and the only difference
# is that the former list is explicitly verified at cmake time
-DLLVM_TARGETS_TO_BUILD=""
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
-DLLVM_BUILD_TESTS=$(usex test)
# disable various irrelevant deps and settings
-DLLVM_ENABLE_FFI=OFF
-DLLVM_ENABLE_TERMINFO=OFF
-DHAVE_HISTEDIT_H=NO
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
-DLLVM_ENABLE_EH=ON
-DLLVM_ENABLE_RTTI=ON
-DLLVM_HOST_TRIPLE="${CHOST}"
-DPython3_EXECUTABLE="${PYTHON}"
# TODO: ocamldoc
)
use test && mycmakeargs+=(
-DLLVM_LIT_ARGS="$(get_lit_flags)"
)
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
# also: custom rules for OCaml do not work for CPPFLAGS
use debug || local -x CFLAGS="${CFLAGS} -DNDEBUG"
cmake_src_configure
local llvm_libdir=$(llvm-config --libdir)
# an ugly hack; TODO: figure out a way to pass -L to ocaml...
cd "${BUILD_DIR}/${libdir}" || die
ln -s "${llvm_libdir}"/*.so . || die
if use test; then
local llvm_bindir=$(llvm-config --bindir)
# Force using system-installed tools.
sed -i -e "/llvm_tools_dir/s@\".*\"@\"${llvm_bindir}\"@" \
"${BUILD_DIR}"/test/lit.site.cfg.py || die
fi
}
src_compile() {
cmake_build ocaml_all
}
src_test() {
# respect TMPDIR!
local -x LIT_PRESERVES_TMP=1
cmake_build check-llvm-bindings-ocaml
}
src_install() {
DESTDIR="${D}" \
cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die
dodoc bindings/ocaml/README.txt
}

Binary file not shown.

@ -1 +1,2 @@
DIST blessed-1.19.1.tar.gz 6653802 BLAKE2B 5755efde3c203ab21a8994e29c55cdaace1cca772c9cdee4343562bb8ee4f9ffdee97d9131646d8385ef7e46664d23723ba46a3807d85623d9512ca40c7c4002 SHA512 0d899c42d7c6246362081bdc5d7dd2fcb13209fe0cee7e5a4fa342bdaf16a5cc21ab7e402bc5287ab1239f7e3afb02381e0e57e2d6111b80fe3c52b92cfa0f84
DIST blessed-1.20.0.tar.gz 6655612 BLAKE2B 10523940ac2fe528487f2d1d68d9f38782ec260f1f42735940219d37d4b4dbaef2fd4ca63d753780123d54ae39ab04652d2c6ba8f3323c621a2206b0a706f6e0 SHA512 8567ff1c55f68ad99c6c524edbf8ee57813d23d885dcb372767debc76bc2d75642c2b0491e1ed05460f023c28403b5dabb13769dea101a1c6e3156c82e0d0355

@ -0,0 +1,52 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( pypy3 python3_{9..11} )
inherit distutils-r1
DESCRIPTION="Library for making terminal apps using colors, keyboard input and positioning"
HOMEPAGE="
https://github.com/jquast/blessed/
https://pypi.org/project/blessed/
"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
SLOT="0"
LICENSE="MIT"
KEYWORDS="~amd64 ~riscv ~x86"
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
dev-python/wcwidth[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/mock[${PYTHON_USEDEP}]
)
"
distutils_enable_sphinx docs dev-python/sphinx_rtd_theme
distutils_enable_tests pytest
python_prepare_all() {
# Skip those extensions as they don't have a Gentoo package
# Remove calls to scripts that generate rst files because they
# are not present in the tarball
sed -e '/sphinxcontrib.manpage/d' -e '/sphinx_paramlinks/d' \
-e '/^for script in/,/runpy.run_path/d' \
-i docs/conf.py || die
# Requires pytest-xdist and has no value for us
sed -i '/^looponfailroots =/d' tox.ini || die
distutils-r1_python_prepare_all
}
python_test() {
# COLORTERM must not be truecolor
# See https://github.com/jquast/blessed/issues/162
# Ignore coverage options
COLORTERM= epytest --override-ini="addopts="
}

@ -1,3 +1,4 @@
DIST boto3-1.26.54.gh.tar.gz 592401 BLAKE2B 7fd5bb10cda2b27fc43a7efa65c4651d95c8ddb7c94b424847f21010f9d748398a9efc47118ed7d2d90369664dddd4903fb8c4e7bc3ba3f70643a565b426023f SHA512 86d315eba84d783d327d19b41a593f193d9b356a205f29a1589e43e43519aa6eedefc26e7b23234dade6ab0bbb309d8039b011d0ba766757be8eb7a57c22f49b
DIST boto3-1.26.59.gh.tar.gz 594565 BLAKE2B 90c5fe950da7fabc46a4c34e0a77997cfc643273f6b3c1afed6caad3415486b25a6610c8fb9d3f3450b4f3b73e45cfec5d6b1f02666dbd2608944e2db81a955b SHA512 e4dff5978e41a9f4c29ef131d7b8c1f0ec625d9fc77a8cff9ce3c6d5a00d68e75b62da34b418252ddfeedf6302332edd8a30d88401ea393d0de3add64ab5cc40
DIST boto3-1.26.63.gh.tar.gz 597618 BLAKE2B f48de0f51694efa0a4fa6afa25ad7475fb7e304cf9291d6dcd275d4dd64ee3f29665afd1fb64f5883513c4224e03240a8e225e41765409822d33e95078e1a9ac SHA512 5f781ce615202fa84e321982699877376b2cb3692cf52f2b157eea6800d160ccf6da38b3c545d62cbce029b59f492d5ef67a31d06dc33b6f6bffd1e1b40c5d85
DIST boto3-1.26.64.gh.tar.gz 597913 BLAKE2B f3dc63388cf4055c58610eaf980c10ff4d297c6f00f89fe0b46e6b764fba502b7fd85b71421a9d21f1930b668f95aaf2fa174389e5067901d749babf582a8033 SHA512 17ed0e655706f29ed34e1d60a9913d74ab0098ba8085ea76bafb5fcd1bfde91c2efd95d2f3f3e6bcd1b6ef7bed85f9001ba484c01a0251219ea879543a8f2b47

@ -0,0 +1,68 @@
# 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 distutils-r1 multiprocessing
DESCRIPTION="The AWS SDK for Python"
HOMEPAGE="
https://github.com/boto/boto3/
https://pypi.org/project/boto3/
"
LICENSE="Apache-2.0"
SLOT="0"
if [[ "${PV}" == "9999" ]]; then
EGIT_REPO_URI="https://github.com/boto/boto3"
inherit git-r3
BOTOCORE_PV=${PV}
else
SRC_URI="
https://github.com/boto/boto3/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
# botocore is x.(y+3).z
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
fi
RDEPEND="
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
>=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_sphinx docs/source \
'dev-python/guzzle_sphinx_theme'
distutils_enable_tests pytest
python_prepare_all() {
# don't lock versions to narrow ranges
sed -e '/botocore/ d' \
-e '/jmespath/ d' \
-e '/s3transfer/ d' \
-i setup.py || die
# 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
distutils-r1_python_prepare_all
}
python_test() {
epytest tests/{functional,unit} -n "$(makeopts_jobs)"
}

@ -1,3 +1,4 @@
DIST botocore-1.29.54.gh.tar.gz 11127081 BLAKE2B 7c2d11d968ca6a4d3b23b12c44cb8f050ac1848f75280c44bbb2f3567860204ed8615bd1596e02b8d0222f4d54c22a8559114365ec6a69e4a01a166a821d8c8a SHA512 4ba58c9b881ff95149ba1a5805453885208cdb68f197cc9a6c13cc9ca075e988ae33e4809f2970d9c48fa426e26c06d83686b8bbf4ff69d4a7cfe26ef3f903bf
DIST botocore-1.29.59.gh.tar.gz 11131182 BLAKE2B fa85e1f8dc3c366f7a7fb3e9b06dd298b1ad62be882891df3414289aa9e88bff72753690a1438e6040aefb7cafa1718a70c940e8cd2b4e743df44013b5748ef6 SHA512 9a4811b44c67652cacc899d1d84d4db1305cb60e73dd47d7f543b85ec37f921cab00a51d67b48ab6a215be8f7543e30c54585e0fb337085e1b75774b053c4bf3
DIST botocore-1.29.63.gh.tar.gz 11139461 BLAKE2B b05f6d52f55df9e456e80e9b701e2498c5fcdd2c65720719095e2c44b87acf854712a6cbc19e20a53b58b8075c8f20952605f60ed58cb1f99a6a771c61dac4d1 SHA512 7005db01c04d0eb2d94760ff1b7b89d28d956b310736dc5601b9e0bfd4b7ffeac6042a596f4f731b600e669a3fc74a7eededbe2bc0ef70d7d3a68f1d14149f9c
DIST botocore-1.29.64.gh.tar.gz 11141125 BLAKE2B 955c7ac0630bd8df8004a0a3d0ec64a7491aee7d68e63a65c62c9fe7a4362aed7bd74ca967cd8550ead458e42a858a428f0db8922a337c83cd680fcd1d1b62c3 SHA512 bb8e177f335e600389123f26788711f4a94c4943a4d80c6195db03bb3cf9489b2a8b0e42d429635c6c8c501df6c27b4177e9ef71e748b0c63874e6682bf2e8e9

@ -0,0 +1,74 @@
# 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 distutils-r1 multiprocessing
DESCRIPTION="Low-level, data-driven core of boto 3"
HOMEPAGE="
https://github.com/boto/botocore/
https://pypi.org/project/botocore/
"
LICENSE="Apache-2.0"
SLOT="0"
if [[ "${PV}" == "9999" ]]; then
EGIT_REPO_URI="https://github.com/boto/botocore"
inherit git-r3
else
SRC_URI="
https://github.com/boto/botocore/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
fi
RDEPEND="
dev-python/six[${PYTHON_USEDEP}]
<dev-python/jmespath-2[${PYTHON_USEDEP}]
dev-python/python-dateutil[${PYTHON_USEDEP}]
>=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-python/jsonschema[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
)
"
distutils_enable_sphinx docs/source \
'dev-python/guzzle_sphinx_theme'
distutils_enable_tests pytest
src_prepare() {
# unpin deps
sed -i -e "s:>=.*':':" setup.py || die
# unbundle deps
rm -r botocore/vendored || die
find -name '*.py' -exec sed -i \
-e 's:from botocore[.]vendored import:import:' \
-e 's:from botocore[.]vendored[.]:from :' \
{} + || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_DESELECT=(
# rely on bundled six
tests/functional/test_six_imports.py::test_no_bare_six_imports
tests/functional/test_six_threading.py::test_six_thread_safety
# fails on unrelated warnings
tests/unit/test_client.py::TestAutoGeneratedClient::test_BOTO_DISABLE_COMMONNAME
tests/unit/test_client.py::TestClientErrors::test_BOTO_DISABLE_COMMONNAME
# TODO
tests/functional/test_credentials.py::SSOSessionTest::test_token_chosen_from_provider
)
epytest tests/{functional,unit} -n "$(makeopts_jobs)"
}

@ -1,3 +1,4 @@
DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

@ -0,0 +1,54 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..11} )
inherit llvm.org python-r1
DESCRIPTION="Python bindings for sys-devel/clang"
HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0"
KEYWORDS=""
IUSE="test"
RESTRICT="!test? ( test )"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
# The module is opening libclang.so directly, and doing some blasphemy
# on top of it.
DEPEND="
>=sys-devel/clang-${PV}:*
!sys-devel/llvm:0[clang(-),python(-)]
!sys-devel/clang:0[python(-)]
"
RDEPEND="
${DEPEND}
${PYTHON_DEPS}
"
BDEPEND="
${PYTHON_DEPS}
test? (
sys-devel/clang:${LLVM_MAJOR}
)
"
LLVM_COMPONENTS=( clang/bindings/python )
llvm.org_set_globals
python_test() {
# tests rely on results from a specific clang version, so override
# the search path
local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
local -x CLANG_NO_DEFAULT_CONFIG=1
"${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
}
src_test() {
python_foreach_impl python_test
}
src_install() {
python_foreach_impl python_domodule clang
}

@ -1,3 +1,4 @@
DIST fakeredis-py-2.4.0.gh.tar.gz 132163 BLAKE2B fc3858eb364c63d776c81d715cbfb218dc0e763d568c97b0d1dafb0716aaf87e928f9b81bd49d28fcc235f4285277446945595d42ff1d440e5c8491b78abb6c3 SHA512 5fba3e84d0506b52e1561f750e045b6227ea21387ddb3a89b8a61e9698fc0e9ec80c4a7048d9426fb0d8e9f2acd808e7e07fcb11d14d6852d9b057fec86d6e6a
DIST fakeredis-py-2.5.0.gh.tar.gz 139911 BLAKE2B 4e9c616b0066012e1ed681d06e73390fb670969c15fa57689244147a0175dbb14ff1c312066ffdc6eb2c647f884c351a98eebfb2c1ba0e6c1bbe1e6c3553808a SHA512 aff5a8679763d4cf1717f790c7c384aa8e5056e5f175c306626f3a1671fe27aa3caf24368831033c9cf5bffa2e3e6be1104b183f3912eadf34fd6f37ea0c63e8
DIST fakeredis-py-2.6.0.gh.tar.gz 151925 BLAKE2B 60538efa5de93436177aa019908f02affb9df9b2aaf1349e933da6f066f98aaa255bbdb3297645ad1dc3b67a57a61bb8081e476f451799b512719f5779c1218d SHA512 19a23be7a182f962e66686f3c4ec3a5b9fbc847d97e48f19fde11ae268f4a70de567ff2ca302a9fe0e7080de2215698cf5b2ff2febda5eef6748f3ec8d601720
DIST fakeredis-py-2.7.0.gh.tar.gz 162784 BLAKE2B acb218c375785ad4b8419f08f9c328f33f97eedb0f13ae09b760b6c87849b3f8a4b9210fe6aea59d763b27909bff8297a009757a1f5fd9b58c1936e6705e0833 SHA512 fc11f3b59971ae50f59e9d1684827a8f4d1127813f7d55641b43b1edbb1e4c75c76aa0734ad55c98cca404c7e343a02f72644f05aceb72849ef6f18dc2418890

@ -0,0 +1,88 @@
# Copyright 2020-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=poetry
PYTHON_COMPAT=( pypy3 python3_{9..11} )
inherit distutils-r1
MY_P=fakeredis-py-${PV}
DESCRIPTION="Fake implementation of redis API for testing purposes"
HOMEPAGE="
https://github.com/cunla/fakeredis-py/
https://pypi.org/project/fakeredis/
"
SRC_URI="
https://github.com/cunla/fakeredis-py/archive/v${PV}.tar.gz
-> ${MY_P}.gh.tar.gz
"
S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
RDEPEND="
>=dev-python/redis-py-4.2[${PYTHON_USEDEP}]
<dev-python/redis-py-4.5[${PYTHON_USEDEP}]
>=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
dev-db/redis
dev-python/pytest-asyncio[${PYTHON_USEDEP}]
dev-python/pytest-mock[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
src_prepare() {
# unpin redis
sed -i -e '/redis/s:<[0-9.]*:*:' pyproject.toml || die
distutils-r1_src_prepare
}
python_test() {
local EPYTEST_DESELECT=(
# also lupa
test/test_aioredis2.py::test_failed_script_error
# TODO
"test/test_fakeredis.py::test_set_get_nx[StrictRedis]"
"test/test_fakeredis.py::test_lpop_count[StrictRedis]"
"test/test_fakeredis.py::test_rpop_count[StrictRedis]"
"test/test_fakeredis.py::test_zadd_minus_zero[StrictRedis]"
"test/test_mixins/test_pubsub_commands.py::test_pubsub_channels[StrictRedis]"
)
local EPYTEST_IGNORE=(
# these tests fail a lot...
test/test_hypothesis.py
)
local args=(
# tests requiring lupa (lua support)
-k 'not test_eval and not test_lua and not test_script'
)
epytest "${args[@]}"
}
src_test() {
local redis_pid="${T}"/redis.pid
local redis_port=6379
einfo "Spawning Redis"
einfo "NOTE: Port ${redis_port} must be free"
"${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
daemonize yes
pidfile ${redis_pid}
port ${redis_port}
bind 127.0.0.1
EOF
# Run the tests
distutils-r1_src_test
# Clean up afterwards
kill "$(<"${redis_pid}")" || die
}

@ -5,3 +5,4 @@ DIST hypothesis-6.65.0.gh.tar.gz 9347619 BLAKE2B 5e67e4659d883209aefe3a459620a2d
DIST hypothesis-6.65.1.gh.tar.gz 9347804 BLAKE2B 555b8eb742b35cffbc0985394b7b830fbff0c601c031b270ffb50c8e1e8437b99c4f827b92cfc74f5239aac43b34e70520b3674129c70338ad010b289552b14b SHA512 faa1330477a5932b47af5c0b70742a81455aba85f5ba19e355a1678a23e62612a8972e510f3bd0f133491fdd5c2f293a4ea2f75e181dedaa3304d789e3bc90cc
DIST hypothesis-6.65.2.gh.tar.gz 9349189 BLAKE2B 4a36cde376a56c9eee7645c76606777e8c40144f0495a1a6f2d2d840262be26f52e077f932e90790214decfbc3fbb9b3f64add1830e451bb8e56b8c9c5ba5f34 SHA512 0955e95d9d97f44170dfc937c3ea6b43f6c4ac74dbb48e16a4998e735310f72448083382f6628b4bb9620ac0d21d6c749a5464c6a7caee24cdb7af8cd0c01dcb
DIST hypothesis-6.66.0.gh.tar.gz 9349578 BLAKE2B 3dcdd9bcca00849d68a4bf1368784099bf69e25634b7d1dae13b40be2ac67959151c1b9cdf233349197de1a0f100d57baebbeb9a691ce56ec2d81d21c9f48989 SHA512 a73648ba0b4e3a0621e843ad3ea32f3f692374b82881b096c86a9609f4f7d1a277dd5265a4104863c648c6d5ee4dbccdb1d80ffe62bcc303f837cea26f7d40f2
DIST hypothesis-6.66.1.gh.tar.gz 9349822 BLAKE2B 728b6e1cb2a28a07cae066bb2e2f8099f21f9a27dbbcc27db1c4f97f6541f60464d90344630df75eb5cea9a65e865a296dbd8b5e20bcbbc17840c92d8f269ac7 SHA512 58ddb6c2bb77064d25ace1740bc5a9ba4d4b6c311da065aa065854c19d4920ec9d70b83935e1b9d057eb10c96c4fdfb445d17c6f321578cbde449df3c5edf704

@ -0,0 +1,77 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
CLI_COMPAT=( python3_{9..10} )
PYTHON_COMPAT=( "${CLI_COMPAT[@]}" python3_11 pypy3 )
PYTHON_REQ_USE="threads(+),sqlite"
inherit distutils-r1 multiprocessing optfeature
TAG=hypothesis-python-${PV}
MY_P=hypothesis-${TAG}
DESCRIPTION="A library for property based testing"
HOMEPAGE="
https://github.com/HypothesisWorks/hypothesis/
https://pypi.org/project/hypothesis/
"
SRC_URI="
https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
-> ${P}.gh.tar.gz
"
S="${WORKDIR}/${MY_P}/hypothesis-python"
LICENSE="MPL-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
IUSE="cli"
RDEPEND="
>=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
>=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
$(python_gen_cond_dep '
>=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
' 3.8 3.9 3.10)
cli? (
$(python_gen_cond_dep '
dev-python/black[${PYTHON_USEDEP}]
dev-python/click[${PYTHON_USEDEP}]
' "${CLI_COMPAT[@]}")
)
"
BDEPEND="
test? (
dev-python/mock[${PYTHON_USEDEP}]
dev-python/pexpect[${PYTHON_USEDEP}]
dev-python/pytest-xdist[${PYTHON_USEDEP}]
!!<dev-python/requests-toolbelt-0.10.1
)
"
distutils_enable_tests pytest
python_test() {
# subtests are broken by warnings from random plugins
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
local -x PYTEST_PLUGINS=xdist.plugin,pytest_forked,_hypothesis_pytestplugin
epytest tests/cover tests/pytest tests/quality -n "$(makeopts_jobs)"
}
python_install() {
distutils-r1_python_install
if ! use cli || ! has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
rm -r "${ED}/usr/bin" "${D}$(python_get_scriptdir)" || die
fi
}
pkg_postinst() {
optfeature "datetime support" dev-python/pytz
optfeature "dateutil support" dev-python/python-dateutil
optfeature "numpy support" dev-python/numpy
optfeature "django support" dev-python/django dev-python/pytz
optfeature "pandas support" dev-python/pandas
optfeature "pytest support" dev-python/pytest
}

@ -1,3 +1,2 @@
DIST ipython-8.7.0.tar.gz 5329857 BLAKE2B 876ed4e16377f2a4d1c0aa83a7e2e0dfda64100de97ff349911d10b07acf351329b0bff75bcf6085f9fadf773fa6762ed88586e1132cabf6479790a38a0bc4e6 SHA512 4652d06d1a0cf33a2b55f640d6bcc3fd9f1f644c848e869bc3807da8f4166060798ea5629fa80cc98a4a79b8ea1cde6013507eae859354a5db270b7fb3cca6bf
DIST ipython-8.8.0.tar.gz 5341086 BLAKE2B 6cab547c693494aed85c750ae566947c8035018213839c36ec906cf11c80e93269c4b861a5a4d72994bc4e5fc8f2787fd7674fdb836dad22c8c04c33d8f37de3 SHA512 18e8eaa285fe6278a27ffd2edcf4eccf629e05a8718faa721013d0433822ff8b850a2060135f26b5254a96b7ae0139e2ff4338676c08d3271a12c1b91532d7d1
DIST ipython-8.9.0.tar.gz 5454595 BLAKE2B bb091bf9c2d9571ded5e1007d9fe60d34b9b0010747759ccceee3368822e3e190766439e3dd9b26df2dbb136ed2b81bc0d89d9b8857baae6e4d86a3524c07972 SHA512 2a9df79ff26bb34866dc523e75ba8e8d8de25d510fc273cbbf762b3011e53ff5331869f1d6fc8c44df6c9a8b5745a0545fe301a556b7f20e3a3dfca994316735

@ -1,156 +0,0 @@
# 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_{9..11} )
PYTHON_REQ_USE='readline,sqlite,threads(+)'
inherit distutils-r1 optfeature virtualx
DESCRIPTION="Advanced interactive shell for Python"
HOMEPAGE="
https://ipython.org/
https://github.com/ipython/ipython/
https://pypi.org/project/ipython/
"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="doc examples matplotlib notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"
RDEPEND="
dev-python/backcall[${PYTHON_USEDEP}]
dev-python/decorator[${PYTHON_USEDEP}]
>=dev-python/jedi-0.16[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
dev-python/matplotlib-inline[${PYTHON_USEDEP}]
>=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
dev-python/pickleshare[${PYTHON_USEDEP}]
>=dev-python/prompt_toolkit-2[${PYTHON_USEDEP}]
<dev-python/prompt_toolkit-3.1[${PYTHON_USEDEP}]
>=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/stack_data[${PYTHON_USEDEP}]
>=dev-python/traitlets-5.0[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
app-text/dvipng[truetype]
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
dev-python/matplotlib-inline[${PYTHON_USEDEP}]
dev-python/nbformat[${PYTHON_USEDEP}]
>=dev-python/numpy-1.20[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/testpath[${PYTHON_USEDEP}]
)
doc? (
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
dev-python/matplotlib[${PYTHON_USEDEP}]
>=dev-python/sphinx-2[${PYTHON_USEDEP}]
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
RDEPEND+="
nbconvert? (
dev-python/nbconvert[${PYTHON_USEDEP}]
)
"
PDEPEND="
notebook? (
dev-python/notebook[${PYTHON_USEDEP}]
dev-python/ipywidgets[${PYTHON_USEDEP}]
dev-python/widgetsnbextension[${PYTHON_USEDEP}]
)
qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
smp? (
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
>=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
)
"
PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
python_prepare_all() {
# Remove out of date insource files
#rm IPython/extensions/cythonmagic.py || die
#rm IPython/extensions/rmagic.py || die
# Prevent un-needed download during build
if use doc; then
sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
fi
# Rename the test directory to reduce sys.path pollution
# https://github.com/ipython/ipython/issues/12892
mv IPython/extensions/{,ipython_}tests || die
distutils-r1_python_prepare_all
}
python_compile_all() {
if use doc; then
emake -C docs html_noapi
HTML_DOCS=( docs/build/html/. )
fi
}
src_test() {
virtx distutils-r1_src_test
}
python_test() {
local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
local EPYTEST_DESELECT=(
# TODO: looks to be a regression due to a newer dep
IPython/core/tests/test_oinspect.py::test_class_signature
IPython/core/tests/test_oinspect.py::test_render_signature_long
)
# nonfatal implied by virtx
nonfatal epytest || die "Tests failed with ${EPYTHON}"
}
python_install() {
distutils-r1_python_install
# Create ipythonX.Y symlinks.
# TODO:
# 1. do we want them for pypy? No. pypy has no numpy
# 2. handle it in the eclass instead (use _python_ln_rel).
# With pypy not an option the dosym becomes unconditional
dosym ../lib/python-exec/${EPYTHON}/ipython \
/usr/bin/ipython${EPYTHON#python}
}
python_install_all() {
distutils-r1_python_install_all
if use examples; then
dodoc -r examples
docompress -x /usr/share/doc/${PF}/examples
fi
}
pkg_postinst() {
optfeature "code formatting" dev-python/black
optfeature "sympyprinting" dev-python/sympy
optfeature "cythonmagic" dev-python/cython
optfeature "%lprun magic command" dev-python/line_profiler
optfeature "%mprun magic command" dev-python/memory_profiler
if use nbconvert; then
if ! has_version app-text/pandoc ; then
einfo "Node.js will be used to convert notebooks to other formats"
einfo "like HTML. Support for that is still experimental. If you"
einfo "encounter any problems, please use app-text/pandoc instead."
fi
fi
}

@ -19,7 +19,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
KEYWORDS="amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="doc examples matplotlib notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"

@ -1,3 +1,4 @@
DIST llvm-project-08c915fa76ef91efa16df0676ed69e4fb360989f.tar.gz 179571827 BLAKE2B 856ea5787f5b3a0b3e8816ccc1a7016a5a7140da6a61544a9829625255dc7036b321b43421f4b3a21e4f0cd8a36745e5d26cb828a41c49a690ebefdff88a744c SHA512 a83121dfaad3e93bad072557715ff857eb8b912273e3a36ea13c2f6a706aa4a9233398ac56074f2cfb5de49982fb5df5e2893eddbe2fd580a51aa08a03c95e34
DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78af36b0826a1dfd9a337992499bf701e33149665bfc47d5e14978e38f342559629a559f8b2ce328705ba34fdf6830f5ae9721a5 SHA512 4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52

@ -0,0 +1,42 @@
# 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_{9..11} )
inherit distutils-r1 llvm.org
DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
HOMEPAGE="https://llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
SLOT="0"
KEYWORDS=""
IUSE="test"
RESTRICT="!test? ( test )"
# Tests require 'FileCheck' and 'not' utilities (from llvm)
BDEPEND="
test? (
dev-python/psutil[${PYTHON_USEDEP}]
sys-devel/llvm
)
"
LLVM_COMPONENTS=( llvm/utils/lit )
llvm.org_set_globals
# TODO: move the manpage generation here (from sys-devel/llvm)
src_prepare() {
cd "${WORKDIR}" || die
distutils-r1_src_prepare
}
python_test() {
local -x LIT_PRESERVES_TMP=1
local litflags=$(get_lit_flags)
./lit.py ${litflags//;/ } tests || die
}

@ -1,2 +1 @@
DIST python-neutronclient-8.2.0.tar.gz 305020 BLAKE2B dd09015fcc91028300c4185f208a7d532734c3b4ce1a616855eda6a25afb73be620548301ba7e42144a9ce33983c7966818f43f5cbbfbb8695b61c837d89831f SHA512 b8ff0b143bd4f8d99c5e8778e6669a80231f81dc353674a1d9964df53db9b49a0347d613f9d9c13b8e8ac355d2b50795cc27712cab2d798963ae0e8d5e4a5564
DIST python-neutronclient-8.2.1.tar.gz 305119 BLAKE2B 75c75594a9050f7d78921eb72a85ab216862c2c00ce622c5392cc089b9611aa7ce48650eabfe71ea14a8329c10cc4922b8de982e79f238663d8f315c7b0e99cb SHA512 dc5e0e0a0d16ece56993b316db5fe93c8c5c9c50407229900fb4f21cd049e1d7d7ddd01f04b5a7b2e9d0c4623c94079a7fa8568068b30768ac3e2a51464a20a5

@ -1,73 +0,0 @@
# 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_{9..10} )
inherit distutils-r1
DESCRIPTION="A client for the OpenStack Quantum API"
HOMEPAGE="https://launchpad.net/neutron"
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 ~arm ~arm64 ~riscv x86"
RDEPEND="
>dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
>=dev-python/cliff-3.4.0[${PYTHON_USEDEP}]
>=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
>=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/osc-lib-1.8.0[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
>=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
>dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
>=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
>=dev-python/os-client-config-1.28.0[${PYTHON_USEDEP}]
>=dev-python/keystoneauth-3.8.0[${PYTHON_USEDEP}]
>=dev-python/python-keystoneclient-3.8.0[${PYTHON_USEDEP}]
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
>=dev-python/simplejson-3.5.1[${PYTHON_USEDEP}]
"
BDEPEND="
>dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
test? (
dev-python/bandit[${PYTHON_USEDEP}]
dev-python/fixtures[${PYTHON_USEDEP}]
dev-python/oslotest[${PYTHON_USEDEP}]
dev-python/python-openstackclient[${PYTHON_USEDEP}]
dev-python/subunit[${PYTHON_USEDEP}]
dev-python/requests-mock[${PYTHON_USEDEP}]
dev-python/testtools[${PYTHON_USEDEP}]
dev-python/testscenarios[${PYTHON_USEDEP}]
dev-python/tempest[${PYTHON_USEDEP}]
)
"
distutils_enable_tests unittest
src_prepare() {
# Needs osprofile
rm neutronclient/tests/unit/test_http.py || die
distutils-r1_src_prepare
}
python_test() {
# functional tests require cloud instance access
eunittest -b neutronclient.tests.unit
}
python_install() {
distutils-r1_python_install
# stupid stupid stupid
local SITEDIR="${D}$(python_get_sitedir)" || die
cd "${SITEDIR}" || die
local egg=( python_neutronclient*.dist-info )
[[ -d ${egg[0]} ]] || die "python_quantumclient*.dist-info not found"
ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
ln -s neutronclient quantumclient || die
ln -s neutron quantumclient/quantum || die
}

@ -13,7 +13,7 @@ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
KEYWORDS="amd64 ~arm ~arm64 ~riscv x86"
RDEPEND="
>dev-python/pbr-2.1.0[${PYTHON_USEDEP}]

Binary file not shown.

@ -1 +1,2 @@
DIST acts_as_list-1.0.4.gem 40448 BLAKE2B ac0d9e29006c052b1f421fc734d19390942fcb1eb68d33ed67944bf9bcf1dc8b73c813a2ee8ae6b358f74e019bf36d200e6fe44e01391dff68041d5263b907b1 SHA512 45cc3a2ddc3bdf245819bfe62c39cea5e9b96bf63b3e817adae2acadcf7b51f47379ae9bf1c2c1cfd6a1dc70d7279f44e0a932c838fa93fa4a0c3b9dcbcd46ea
DIST acts_as_list-1.1.0.gem 41984 BLAKE2B abeb0325795276294451b4cb86e20dab6871003c72679ce28f9326cd844234ad56457a03d9b9ecd81b8c143deeefc25dd15df88a38ebdd1324a953b2399465e7 SHA512 bdcaf07bc4ad3854d68c8d95e666e86c2500474ffa212c315b6b4abd321341ac782c0e301f2c859c12b80ecfdd1cc743ccf8a7bdbdb36e30fafcd98d4928a00a

@ -0,0 +1,38 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby27 ruby30 ruby31"
inherit ruby-fakegem
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
RUBY_FAKEGEM_EXTRAINSTALL="init.rb"
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
DESCRIPTION="Capabilities for sorting and reordering a number of objects in a list"
HOMEPAGE="https://github.com/brendon/acts_as_list"
LICENSE="MIT"
SLOT="3"
KEYWORDS="~amd64"
IUSE=""
ruby_add_rdepend ">=dev-ruby/activerecord-4.2:*"
ruby_add_bdepend "
test? (
dev-ruby/mocha
dev-ruby/test-unit:2
dev-ruby/timecop
dev-ruby/activerecord[sqlite]
)"
all_ruby_prepare() {
rm Gemfile || die
sed -i -e '/[Bb]undler/d' Rakefile || die
sed -i -e '/bundler/,/^end/ s:^:#:' test/helper.rb || die
sed -i -e '/git ls/d' ${RUBY_FAKEGEM_GEMSPEC} || die
sed -i -e '/github_changelog/,$ s:^:#:' Rakefile || die
}

@ -6,6 +6,6 @@
<name>Gentoo Ruby Project</name>
</maintainer>
<upstream>
<remote-id type="github">swanandp/acts_as_list</remote-id>
<remote-id type="github">brendon/acts_as_list</remote-id>
</upstream>
</pkgmetadata>

@ -1,3 +1,4 @@
DIST commonmarker-0.23.5.tar.gz 165248 BLAKE2B 2d29a0ece01b5000bbb7192133e6abd0bf50281e90ae1d7036ffc49d8576bf378845c782d65b462274b4586b99ee3f46b7312cd0d0ac71456de9a4dacdccb8c3 SHA512 ccc76f0a2eb40d547e604cb4d10b922eceab40a0d0e07f00c60a5b307f3dcb74984274b231c38fe3ba97c892dea54fd325486ba20aa2b0087e99d6bca3e3845c
DIST commonmarker-0.23.6.tar.gz 165548 BLAKE2B b580390211986e60cd682efb8fe39cea82fb50f76299675a068e37749635383a6d1d6391a093a9f399664ebeeff2e2b456f85752157c632e338ab52e64e18659 SHA512 540bb1831c19ea0924372c9f4be506828e057d4df1a2eb351e44437b45cd9cedd7df9014b09e34108663a31677ef14a4128b5ac9f8a34137bd1842e07654dedc
DIST commonmarker-0.23.7.tar.gz 171255 BLAKE2B d6d5e90aeed955d4305bc2aef9a3db9e540a35690cf90e2ef1cd7ba1f829043e139cd3c8819858e56accda6de3088e9a38394676a6248bb1d9642d41282b61c9 SHA512 c15db5904c449a01d7e4a417d431a2f12722ca5524fad019d6bddb75dd59323174973d8d30920f4783163739570ddf81abb06246f3fed0635dea4ce4625a0679
DIST commonmarker-0.23.8.tar.gz 171412 BLAKE2B 95f5fa8314af31dfe97bb8bad9eb6c57dc2e02f1b710c7f50e4500e3cad978b0b44e7a1104386d0cf0742e2d896208ced2a8f205c30ffbf4e444b991586b5ab8 SHA512 3e73ef5505804cbeb8190472f3ca8dc7f199de0ca410df35ab5e9948e94ade59670130f829218f6f2d39c3a6f41a9cb149f9aefc6c8f72443441ec66e642cd1e

@ -0,0 +1,41 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby27 ruby30 ruby31"
RUBY_FAKEGEM_EXTENSIONS=(ext/commonmarker/extconf.rb)
RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/commonmarker"
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
RUBY_FAKEGEM_GEMSPEC="commonmarker.gemspec"
inherit ruby-fakegem
DESCRIPTION="A fast, safe, extensible parser for CommonMark, wrapping the libcmark library"
HOMEPAGE="https://github.com/gjtorikian/commonmarker"
SRC_URI="https://github.com/gjtorikian/commonmarker/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="$(ver_cut 1)"
KEYWORDS="~amd64"
IUSE=""
# app-text/cmark is bundled in a modified way and integrated with the gem code
all_ruby_prepare() {
sed -i -e '/focus/ s:^:#:' test/test_helper.rb || die
# Avoid tests depending on unbundled cmark specification files
rm -f test/test_{spec,smartpunct}.rb || die
}
each_ruby_prepare() {
# Use current ruby version
sed -i -e '/make_bin/,/end/ s:ruby:'${RUBY}':' test/test_helper.rb || die
}
each_ruby_test() {
${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each {|f| require f}' || die
}

@ -1,2 +1,3 @@
DIST concurrent-ruby-1.1.10.tar.gz 6013684 BLAKE2B d271579a49ab52c9c41a7a0a31451775e1cba8ce19486b52a9eb3df7abbc66f7610d31284fc02747a8ee5f429983d8283b6fe92f22b911dcda5bc515da58b48f SHA512 cfb67ce806d1f2a5bae509806247bfefb05c56794741cedcaa7ab6ff708085e374d150e8f46ff8e04dcb0918fde8ab5a593c60550da9ff6dc00af116e123f064
DIST concurrent-ruby-1.1.9.tar.gz 4923746 BLAKE2B 2bfea989db31f17c69ee479091135516e2aeef7ac74234ccea91b2e4b3626395683a7b2ebba1d13cb527903d3d83c51e873bdb859f0ff1983062fea4fa90a1e4 SHA512 243fc20795bcd7399bdf77a9b0db9b0bccb1b05edacf4fbc8f5515f59502300b4033a2a59bfb6adea9befdb20759c9f58bbf0e7744e934c85738085bef714ea6
DIST concurrent-ruby-1.2.0.tar.gz 1160662 BLAKE2B e05df20596930d46781d718ebcd90c8326d78993ad15a7b7c804e0852bdfb66a955314769c8abdef9bc59c6fb249d81c6f48058751537a399da5846ded97dcbc SHA512 c6dc1a84ac4b176644481c2431d67b2b7e0a47fcb9e3fc3fa0b4ddd102ef65d1d02d5aff2784bb55a194f01a4a5294fc26944da16dea550934a6950caee54a31

@ -0,0 +1,38 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby27 ruby30 ruby31"
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
RUBY_FAKEGEM_RECIPE_DOC=""
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
inherit ruby-fakegem
DESCRIPTION="Modern concurrency tools including agents, futures, promises, thread pools, more"
HOMEPAGE="https://github.com/ruby-concurrency/concurrent-ruby"
SRC_URI="https://github.com/ruby-concurrency/concurrent-ruby/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="MIT"
SLOT="1"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE=""
ruby_add_bdepend "test? ( >=dev-ruby/timecop-0.7.4 )"
all_ruby_prepare() {
# Remove edge files as defined in support/file_map.rb
rm -rf spec/concurrent/{actor,cancellation,channel,edge,lazy_register,processing,promises,throttle}* || die
rm -r spec/concurrent/executor/wrapping_executor_spec.rb || die
sed -i -e '/concurrent-edge/ s:^:#:' spec/spec_helper.rb || die
sed -i -e 's:lib-edge:lib/concurrent-ruby:' .rspec || die
sed -i -e 's:../../../::' spec/concurrent/executor/executor_quits.rb || die
# Remove specs for the ext gem
rm -rf spec/concurrent/atomic || die
sed -i 's/git ls-files/find * -print/' ${RUBY_FAKEGEM_GEMSPEC} || die
}

@ -1,3 +1,2 @@
DIST faker-2.22.0.tar.gz 1703265 BLAKE2B 931fa442d647186e7124c38afe4e6953f8dfea595140e2765ad86e9c98fc1ca02e6780cd01a49391614798a5862b4b69725bc5f5bbd1c6559f0831782dfe312b SHA512 9447b74d2403714de2bcbf4f3cfae8fc85c42a8a7dda413a06d6cdc8afa0acee620609af8a6ff8962db3b3bdaef27af7c08ab7ba71a23e939ce49638326e9807
DIST faker-2.23.0.tar.gz 1709736 BLAKE2B e3524dbecbd1a4825ef8b38801ae1fa30a4392a7d2eb6fe1c94c3da0b0a4f18db621a42423510bf2f9c4bba175d66e10808252a923c9703aaa8de5d5ed54dd44 SHA512 b037833b3a6d07adaa70c665af66343d90389f282a2faf8ca55a5a81988163263e3b3069744e67ede206512bb67cf53a104eed34c39d92feb10a282f411bde41
DIST faker-3.1.0.tar.gz 1726248 BLAKE2B 55e5ece86c262c91cc7b806f31fc852297158cbfa213e375173d6ed4956daf515f7b3e09273ed40c70b92c2de8e94fc8ff45f62d87b59a37ee097a2cb6bc6a9b SHA512 4fa1d1dc72ae0cb21cdf6fede999a6cbf43e20062306896cca5e2333da9423612ac11b5ecdfb033da46c1eb3141a0bcac47d25485666f126a35971acb4edfcb5

@ -1,10 +1,11 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
USE_RUBY="ruby27 ruby30 ruby31"
RUBY_FAKEGEM_BINWRAP=""
RUBY_FAKEGEM_RECIPE_DOC="none"
RUBY_FAKEGEM_GEMSPEC="faker.gemspec"

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -20,7 +20,7 @@ SLOT="$(ver_cut 1)"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="test"
ruby_add_rdepend ">=dev-ruby/i18n-1.8.11:1"
ruby_add_rdepend ">=dev-ruby/i18n-1.8.11:1 !<dev-ruby/faker-2.23.0-r1"
ruby_add_bdepend "test? ( dev-ruby/timecop )"

@ -1,3 +1,3 @@
DIST git-1.12.0.tar.gz 218472 BLAKE2B f5e0465fd2f0f2f1eb1584da6757c012cf80457a15e61b9a974707c8f026f34940d86b25fdd708b9fa6071fc35e8e65c6c87bc83b94bb0daec61ef015a03184c SHA512 9967bf6c9f00e29442495fb24abfd1ea3b6ad0068829e9d86727d41ecf07be0b8fbdc6d05b3c245a23223b4e35e87e984e7a60a5883839e6de45f8bdac406b0d
DIST git-1.13.0.tar.gz 219424 BLAKE2B 38d1821c59cbb743c50655e9426d77f76e77dda614a711b7d2185ed7f4caa853383ba85ecf05237da403061d002527c38a5c6e06cf5e6d482ac76bac49a0db56 SHA512 7920de37a3df67b743e91fb317bd0cba746d2343dfb77036398fc124d00eede7b9ade5dd2af5f26d65f1f24006608a29fca55d5be8a00557caaa31acd0b274d4
DIST git-1.13.1.tar.gz 219640 BLAKE2B c87fce3f83130f7a75a10a21c4c980ec1d3594b20afa7b482f21077083076df7b4c462908a05c7b2fb3091e1fda00857ae40c4809e89f059f63ce12b119f307b SHA512 58cd7f38a5c1d5ab3d68cf2d4b026a80073f5dba3cb4895e220ecad5dbdf6a2df4e1e44570bde9256371c5089b81523aca4a5c686348bd04638f4dd09927e876
DIST git-1.13.2.tar.gz 222112 BLAKE2B 13b2f8c67a27a147662fa019f6fac8f557e704fe1d0320188a097385f7692a190670ba375312e793d4d39fcf9ea7be8325394830c2c499b5132201f4a8f3f6ee SHA512 36425806c86e3c5d1a393ec657b60b8dafc88d92822270c299d3d1768c37d00e70b723d98a60127ab70de15809b27a49bcef5c8a972b88d7a516de093a643347

@ -1,4 +1,4 @@
# Copyright 1999-2022 Gentoo Authors
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@ -12,13 +12,13 @@ RUBY_FAKEGEM_GEMSPEC="git.gemspec"
inherit ruby-fakegem
DESCRIPTION="Library for using Git in Ruby"
HOMEPAGE="https://github.com/schacon/ruby-git"
SRC_URI="https://github.com/schacon/ruby-git/archive/v${PV}.tar.gz -> ${P}.tar.gz"
HOMEPAGE="https://github.com/ruby-git/ruby-git"
SRC_URI="https://github.com/ruby-git/ruby-git/archive/v${PV}.tar.gz -> ${P}.tar.gz"
RUBY_S="ruby-git-${PV}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="test"
DEPEND+="test? ( >=dev-vcs/git-1.6.0.0 app-arch/tar )"
@ -33,6 +33,8 @@ all_ruby_prepare() {
sed -i -e "s:/tmp:${TMPDIR}:" tests/units/test_archive.rb tests/test_helper.rb || die
sed -i -e 's/__dir__/"."/' -e 's/git ls-files -z/find * -print0/' ${RUBY_FAKEGEM_GEMSPEC} || die
sed -i -e 's/1.12.0/'${PV}'/' lib/git/version.rb || die
}
each_ruby_test() {

@ -6,6 +6,7 @@
<name>Gentoo Ruby Project</name>
</maintainer>
<upstream>
<remote-id type="github">schacon/ruby-git</remote-id>
<remote-id type="github">ruby-git/ruby-git</remote-id>
<remote-id type="rubygems">git</remote-id>
</upstream>
</pkgmetadata>

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

Loading…
Cancel
Save