parent
3b99164159
commit
2efe54d0a8
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29480 BLAKE2B e5d043b6794c0f73873617729b3c37ca0f0a7bbbde5250331a5ae86efcf4030d1f77e02b2f1d3fbd16f1e6db2e8c9eac0f08e3377fed96358db9cb9918f22308 SHA512 c245d7dd640db55377366fb3589bc3f04d4c6eaaae6e2b7dd0f282dd584682c46f8960e8d26c0d2ed85b65c01917dfff1462c2c1c40a75e6fb838c0021c83b79
|
||||
TIMESTAMP 2023-02-03T19:39:50Z
|
||||
MANIFEST Manifest.files.gz 29465 BLAKE2B 08989c20db1ea87511f84816e641a63cc452209374767aca3bc1e5b1b23c34e9493328043ca6d3e449dc8e72f084ce47897634db778193b17d6c42e162fa58ec SHA512 64b76aa612eac7106a53213e0ece5ec0fa5b69fdded1105f1219a7e65df7de9587ee3055641c16e9417b579507726927733f9a9ee9d4fe4a761db2634d633aba
|
||||
TIMESTAMP 2023-02-04T18:09:43Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmPdYwZfFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmPen2dfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klBC9hAAs8n+xtCYqVwoa2NxXngyovr+4CqwHrZJpjkvdCo5GyUmbD45BXAskY2I
|
||||
0DISFLAYwpN4nDCc0Cp3OVkXZwu+L2QFCkoq8OQb7SpRFNxWp2nshp2UTt4nZ0Hp
|
||||
JfT+JUJjoakDVUJgbdsMDBb/wIi05SXt3vImD/+Q8klPIcd84SkBDC/rp2lfeRwP
|
||||
5cnvOi55XDLOz5r31e4iH6qVsSQoB7P5qAtMNO1PYiN0UcxPMYV37RHFZXbizWhm
|
||||
QD2rcmebEyhty6QB37Eq9J3QfvBdVBEl3We5eoRkhwk9rxIiPDC9oNpBSBVTW1RJ
|
||||
BUkgMck+I8sCFGl6OrLV+AKEk002QJgkfpEaPbeapSKTRlivOt4z0cq6fkMW702y
|
||||
k54gDp4uqAdKPmf9oC1BS9SJxinanUHu7RN6+pscw0zxmOXnXf1OcacHyxFNK79T
|
||||
0SqZ3IemybLi8jsb1lQYDRQZ2QLicZsbOqUV8bjlr8eLn3dRt/M4MfjLZtd3QUk+
|
||||
GZn6kqzPjvPtBK3anIPo3CO1C4dG/Ba1N1NRhalVlrieGhULeJgTWvLPCjvZG8SO
|
||||
CX9PXLbFW7A4I+OT+UQXiXQ9kaws6ShkaVFG2duWsV+n7DDmp++iY7Tk7R3kfL4A
|
||||
xrQskPojMk3Gha5HJoyBdiZkVRiaX9yxNvfgHqdiSpplqkOfu/M=
|
||||
=bucT
|
||||
klC8pQ//bnIPqSRiENcpkeBSnzma72DHJz8eC7rvKf1YFz14RPHhC7Vjgz5adiyU
|
||||
1j05yOcMOLf7KEmIZvFGgYEgvmdZF4vjD/yUD2XgOtdrUzKzl9wBsPRxupR1zGBN
|
||||
lQjX1uZCQPiTrManUGRzsnb3o1xuEL+gaenAmFGpRLZEmJy8QYqdnsyYu2fpekDL
|
||||
4EiuU6BOMw86xuQL42QYtPbPEklkAe4C935ed1G1bJE2di2wNI6IDiPWv6fK2ylQ
|
||||
188ZszmVb5c2iwweREb+/voZlakmyBc6tAt8HVU4zOzSbhG3qVv6AzoRYTUekVyb
|
||||
as7dKTfANIVF7vcnWxU1WYwbP3HUTd4E8NADqFndrUEY6SRGOwcR5ZCUrSRVVfnx
|
||||
OPNgnfgRJi9eYcCb47VJcxgyAlQzVRFjYierJsE/qA4zxowyw6XDxFfNz0A4WzmI
|
||||
An27AZRgryR/B3U3ccynB0tnsS4SLZzDOrnjjaQAptaUxiuXdglUj+fDVhAf/uem
|
||||
X/auWRiL1URNmfJAPb7lBlQuOrOlh5qla9ZgDTBkyyHkWxbey8iWhLUHmuYuaKWa
|
||||
HKLXbJMTXtPc79fCs6N9sOnjKFnv7oq/1z+vSnoyWJzE+qN3iauPfNpaQc1OrYiN
|
||||
mWgYsJZmV6K7j7M1e5ohhC+vBOjSFzotMWjrSSdVjmlg6tpUTtQ=
|
||||
=Po2A
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,7 +1,9 @@
|
||||
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
|
||||
EBUILD awscli-1.27.54.ebuild 2278 BLAKE2B a074ad11e996c7c4e5c0366e5e5d3856cb1bdd7984b8eaf9ac959108e0c5737b064be5d7a579f46669403efb0c3111e8814570f041106e920102cf2a6ddf3687 SHA512 060c06ae5d2295b74940bc86eabf279eeb7a81f7cafa4a9d89e9af8076feff5a23cc3f9bad5a631e75155af64b948abe4c0de7283883a53d4b1ee5791765176b
|
||||
EBUILD awscli-1.27.59.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
EBUILD awscli-1.27.63.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
EBUILD awscli-1.27.64.ebuild 2285 BLAKE2B ab176af730bcb3713594ac424ab29325c2cb24b8136e12ac6e18cf1648c8fa81e256eab0c708077e2c5423d1592594bb842383614e9114e728703e8cc8964252 SHA512 423fc2ef82036643a93eebded5fde267beb70f6278f06faa7e4c5ea221351aefe5bdf7c6469e57c49caab603ae1aa58fb514339c65891995cef614e698e9d997
|
||||
MISC metadata.xml 385 BLAKE2B 5accfb180a91179cc6df539d42d1de06be3ebfec73f3edb719f5d59576103b9a8cb0c7c524c1042630e0cf99f068939a19f04c7b1b4a2acf9e072369df80d913 SHA512 ccb3d516326c5dbdf53068372ce25baecc137d21a04516374362212b969cc928dacbf743b4953da33f28482905798f069d09d19c88d9913f2b32648db25115ab
|
||||
|
@ -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.
Binary file not shown.
@ -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"
|
||||
}
|
@ -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,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
|
@ -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
|
||||
}
|
@ -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
|
||||
}
|
@ -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,6 +1,6 @@
|
||||
AUX github-exporter.confd 507 BLAKE2B 46ace5b98c0ec60c7a93c50524258e44537e1a4ed13d77c3b4f6651ce56f5323f2342d967b145515a544edb3203b71052edb12019f9105b8e6b4bce9da0d14aa SHA512 10430a3d1fcb6a7e125fcddfb27a610843f6646091efb8e53fa9eca7bd434c528562857267b59f75452eb78c78821e8856716d417145a9e930861e4340382d1a
|
||||
AUX github-exporter.initd 1512 BLAKE2B ab1f34d3084655da8b7f5345e7001f968d0f7361d8c0eb45070e8a7c1bb6216b65ccfec754897c2472b91fa457a50b363d51939ccc772ae64e153abe97b10cba SHA512 d0ebac39a04d94a10f6d38cbad660b7c8f4bf570bbda334d7e7eb6c2d635f6ac4425f462e2ed9b68bd4f8ac56842deaa6ab15b6c883cf4fd17078115feaaa9be
|
||||
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
|
||||
EBUILD github-exporter-1.0.2.ebuild 846 BLAKE2B 6ae50bbaacae7066b2d32485d442fed91f8c2e974af7346be579b58e2dd6796db1feefe6a4c93bb072e1685589c4dc65d22bddbbae1de8e3db555c707ea2d061 SHA512 0f68bb844d0e991d0d024f3a979cdc92448a5923c939c0e034545da8aed8540cc643f05bd82aaf743279db5823178af93bfd955f2cc006f2e2530dd0b7893e26
|
||||
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
|
||||
EBUILD github-exporter-1.0.3.ebuild 930 BLAKE2B 7f91f9502d134f983b9cc54ad9304fa1b66a7a46d6a83ee6c8b2fa98c3b2a6dc4eadf93b8b5637a246abb73581e12009b1269ab847fb01aef4543d406cc85e0e SHA512 af755726d38a7f1ac684a3a9a78ca0e390bdb7fb352d87ed8abaa6c4242f98a3724bb30be57a0f948532dabda0b91a67d9e1a5fa3b5b7028f2402a6aefa0993b
|
||||
MISC metadata.xml 249 BLAKE2B 08603bf9d754b59bae12620988552abc7f76b87a1390d02038789eba034c22412a3593d10f443794a5171ff3905c2b5c822368b2eb9f53a528097b7b6c80ffe9 SHA512 338d72efbd040697be98aad4229b81c9694eb27ecbc39f3a18332f4cc766a46b4a0a92f32612203259bf58f5838d0aff7f0b1abec7766f6cd2394c73f7f0b251
|
||||
|
@ -1,5 +1,3 @@
|
||||
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
|
||||
EBUILD prom2json-0.1.0_p20170523.ebuild 906 BLAKE2B 0eaea8f0f93222b4c05b4d7d8e95102ae6a3abd8fdc19665e7a0250f424f4270aa25766cd520cc22a363e347b4440e10039de6362eec62ca12f3b5ac4a444008 SHA512 0b92b64e914e6e8bc2779a5955bf77ad7848ecbff6427a6de61621f1c960f70f591720694c7d7951649208bc94746e69140891abfb188a2c7f3b6f2fb01e7ac0
|
||||
EBUILD prom2json-1.3.0.ebuild 746 BLAKE2B 9657a9b4d63a06b7877654e12dd8d5210a515a189c916a4df23c83d959d8ae2723cf656846854f1eeb720b480af83320caae7da17a7dd7b1ec7f3b4194204a27 SHA512 69e5756a85f26c226bc7f2899e68e807a9532c0782b8e7977fa64856127ceb6e53bc151d90d432576f7c61e5e669f529fb3fba01651f8f2a101491b24c21a9c3
|
||||
EBUILD prom2json-1.3.0.ebuild 793 BLAKE2B 7b417de377b221c5ffa1fc802e584a6bcf565950531b16828f8bc9c31682c5c2afa51f42d949ffa3c595d3b29f80533ced03f6b41271fb8414d2b921219c81e8 SHA512 5a8e2e89a8eb8000b8ca65428db640e93b10ca55cc01379774f53cd95a8d0a804c1aa3d19413c2218a001ed73413c2438e2b6a6a03e2c1a0003e741e82143f82
|
||||
MISC metadata.xml 338 BLAKE2B 323f1010d7bf975b53a7b9e6278425143c59c276af24a6c486a0e0c57524e25efc3d1bffa3652c6f5362b2a81f8a7656a17a81816a731a3073ab6f2d9b34093b SHA512 3ca80debc07302431da65641a6443c3192fb04d3b40fcd3503176fe450d08157b848d1f4c99a40d2d058d8061072116c21694a603c809d28203ad78288d58cca
|
||||
|
@ -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
|
||||
}
|
@ -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.
Binary file not shown.
Binary file not shown.
@ -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,7 +1,7 @@
|
||||
AUX gtest-1.10.0_p20200702-increase-clone-stack-size.patch 606 BLAKE2B dc5282aca513bcb82e7ed90e432ca1ee758953955a30f1dd17bc0c2f56a46e7ef846c209186e561dfa6d7e7f7541ee03db5b88dcacfac649e0ff2a3f41bd7870 SHA512 01ab820bf5a100905f24be2a9f866b98e9e6a90686ecd0b93a85d42d9290bc6cb74e6fd218e78a48c6dcc69d410fd2dc9ccf7aa50903fe86e7886af1b97c25fa
|
||||
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
|
||||
EBUILD gtest-1.11.0.ebuild 1878 BLAKE2B 2a405c3127bc5e88a794cffb39a9e2e674ed5a33a7bbf49096de2bd376e9cc45ebe88884a0f75d65a273feee141758103dc98340435834fd45f751c21a65678a SHA512 485f740e70809da946d007ee4e12679870baca20621822fc1c59297389e343c8234e6d79c3e7981be4b23a4c8a976ad1d5e8401ae601485dd967f4b18dc12019
|
||||
EBUILD gtest-1.12.1.ebuild 1938 BLAKE2B ac7a89c302ad36e59b5bbb91f82549b28ec0dc0070beaaf4c045f73ed0b03f184d7bf42e9a5ff42fc9d882c37aabd2f26ded9be27800eb10312d9881f0c3e650 SHA512 8cf4e91b248725bd04d8b3087eb69e632e80969bfc322f4a69b3ef6e5222f0858f1ed393de88277638fcf95022425966c14857e0309f6da957e3940c394aaed7
|
||||
EBUILD gtest-9999.ebuild 1931 BLAKE2B 9fdb3c9b3e396d131535f47de462a856419bee48badc32fc3023bd007ddb0f670e400f9f8c48fe517df36b213b0b301b1e72c9003e0112e4c9882e50a81a40f6 SHA512 de87f7b786f8ab026ed1f352ae674e7b899bcfa1f799e64fd883bade267dc2c2477ed50a6398de2aae4051b3256ca7ff7e53570a4295191d4abc15d7323f928a
|
||||
EBUILD gtest-1.13.0.ebuild 1923 BLAKE2B 4d6891526858679c538ae78bc0f5bdb2a3f04a3eea9de4f8c51bb9c8dbbf6be0857b0c16e3c3ed7b46cb212be30d38d44b9eb23456890a182b01644696d6cf37 SHA512 8b58672799febda7c6abfae62d55dfb5e390471e74aa03e90a5820236f197d3303b354ada9f28121a2034021752df70e802e856900b172321269afb0f1430834
|
||||
EBUILD gtest-9999.ebuild 1923 BLAKE2B 4d6891526858679c538ae78bc0f5bdb2a3f04a3eea9de4f8c51bb9c8dbbf6be0857b0c16e3c3ed7b46cb212be30d38d44b9eb23456890a182b01644696d6cf37 SHA512 8b58672799febda7c6abfae62d55dfb5e390471e74aa03e90a5820236f197d3303b354ada9f28121a2034021752df70e802e856900b172321269afb0f1430834
|
||||
MISC metadata.xml 553 BLAKE2B a6d63b3f65e8cc9bf95fb0197c48f6adcca359f118797b0bb6c624d09dd586efe066c990e6cb709d42f8cbf32f67feeccf74b9662d13ddfd57f6b13f199585d3 SHA512 e1edf26c4cf978203c3c6e3fda887923dbf76101860dc8e6a81a7218f88fae0f28d4b78ce6cf34b5d3a61c550e1042d5fb3d3530f88b5277a5b46c8943dc0677
|
||||
|
Binary file not shown.
@ -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,3 +1,5 @@
|
||||
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
|
||||
EBUILD nss-pem-1.0.8.ebuild 708 BLAKE2B 5bd516bb9d221609ae907e65eafbb224136e07e476900e2cf99c66f6a19bad2a9afb3fd9633d4a27db302793ede010a7deccb40d34e3f48489333197d98e0d20 SHA512 195bca3a6fd4b66a39589745ec28d22652725e4b7172d30ebf9874af3a36bb2df6aa637f127a1656cdae2490645fe9263b985dd772423e71275235e199fb90fb
|
||||
EBUILD nss-pem-1.0.9.ebuild 707 BLAKE2B aecf87d8f38223d22bdd64969b8912f94c5405eeac06b9180a4c4bb0721a1991f188cc158b9a055ec182deee7b2048729e2dddfc029f25bdf5c55170ef37c796 SHA512 3a1550af716d360b70efea8c0745ed0088e268c81d741540510b3b5592afeddeb1b9c8911a16ea0b964ea09a1761c7fc7b739ed446bc5c8cf629aff2b6e81082
|
||||
MISC metadata.xml 334 BLAKE2B 7d88d82ca4bedbacb87ab53bc2a30e77ab13b062c439dacd1521f68a5677bad460310abf9f1e69826c44eaee4cade54bdb0d30923a7d2dfef9eaa4554288498e SHA512 c1a58a0c5e2401a1b75e4223f2cc6e0a25e8a3ead8c5c3f86cf96675ecf3dd813d0db4652fb6c68e0acbffa62ca6e4123dc74a4f565345cb1bba79e033b41922
|
||||
|
@ -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
|
||||
}
|
@ -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,3 +1,5 @@
|
||||
DIST trio-1.17.1.tar.gz 466909 BLAKE2B 1403c2534623b536de519cd428ac75480ecc0fcb9fbba693e329a923471947f068cae1e1fd453d10863255369e830ef5d8a75475d95f0f903e66936a9fa48e2b SHA512 574e360d88be838d13d7df5259c68809187a578d8d04981812ff768d3ab80215baf5595952994ec9fabbe3a6ce71512a7cd16d6a29b4f91dcd1b6f2ebcd3ed98
|
||||
DIST trio-1.17.tar.gz 452237 BLAKE2B 77ff673cc103b07b1424720d28c49d2e33a1402a98d8d21124fabb0cafd3498a99976d808cbbc5a90e1b3a063c6af68c3daf94768d533e4a762b730a253fa012 SHA512 19f4732b32c6a3754677d5766399fa70083c6a78c0d04b1dfa10a578b21405ba3e3d3af6543e4811f5fd305ec2727781a1b0f2888e59c574ca735f8406da7954
|
||||
EBUILD trio-1.17.1.ebuild 544 BLAKE2B d69633957b1b5d4386170c5d8430a296f155425e67f845dc2fec5efe7c527b6557b0a0ecb8733edf5b322635f41c5908a78c72d7016db3e0de58db465d8e779b SHA512 66ff15c4c4686fff64b4c14484b4c27680f4846cc5e51cd3a3b231614865d242e2bbf2b27ba0775cfdcc4fb3aa51345434f7e203d1f87af4f1403ce14feac75c
|
||||
EBUILD trio-1.17.ebuild 656 BLAKE2B 79dbc4cd7ee9bec4253781dcb4156251a60bc5d2223cda002f51850069a1e9b164790e9ad7ee6e47805f2589644ff01d79615f9803183d7fbbe60a49b9943599 SHA512 84e9aef3d5ce582852a6fcef7771761e230aec472c056a456c9aec12ea1b5d1b5857a4a99dcdf94b5ae51f750194481ba728c6a0dfddcf3b34ddf572ecec5805
|
||||
MISC metadata.xml 329 BLAKE2B 5863c898baa0c23c810edcdc6ae637b0a391579d1fee8db773c899bb936e36c76fb847e2d6de1410d9b6b286154459fb7d515f0a7f270c16a762274f4c19457f SHA512 5ee6ecb624bca2b159b5a6ebd0605d5ccef265c21f37e5f440317032a4144851b0b2eeaabf5fa89f710b9b18b85ad6812827cf9d32f4cfefc4d44e6592c98de2
|
||||
|
@ -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.
@ -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,3 +1,5 @@
|
||||
DIST blessed-1.19.1.tar.gz 6653802 BLAKE2B 5755efde3c203ab21a8994e29c55cdaace1cca772c9cdee4343562bb8ee4f9ffdee97d9131646d8385ef7e46664d23723ba46a3807d85623d9512ca40c7c4002 SHA512 0d899c42d7c6246362081bdc5d7dd2fcb13209fe0cee7e5a4fa342bdaf16a5cc21ab7e402bc5287ab1239f7e3afb02381e0e57e2d6111b80fe3c52b92cfa0f84
|
||||
DIST blessed-1.20.0.tar.gz 6655612 BLAKE2B 10523940ac2fe528487f2d1d68d9f38782ec260f1f42735940219d37d4b4dbaef2fd4ca63d753780123d54ae39ab04652d2c6ba8f3323c621a2206b0a706f6e0 SHA512 8567ff1c55f68ad99c6c524edbf8ee57813d23d885dcb372767debc76bc2d75642c2b0491e1ed05460f023c28403b5dabb13769dea101a1c6e3156c82e0d0355
|
||||
EBUILD blessed-1.19.1.ebuild 1306 BLAKE2B afa6520d17474b9b2cb582879764c6ec2fa33e747d48d5a645c00a0b855ebebc10e4f06611cf7b67aac06aae151f84ced234bb4e75e33c6e0fbaa3c22fb38a2c SHA512 08fac719a626e9bbf3ea306f9983946e18ffd9cc0a13586523244ff54ae7248837efd1837028a52519ab2fba2287e643aef87163089d9c71ab4215bff2f1ab1c
|
||||
EBUILD blessed-1.20.0.ebuild 1348 BLAKE2B c3724c4e808a8fd60d41dbc2054de29fcabace4dfe599a11669b0ac1a68b3b37831d2b120555957e74cf46db5e33e708eed00e589fdbba30ef1968873367f056 SHA512 c89b8ad0cc1d9094c468f24569b502d66dd049f6aeef672d5e068bd0cca2f580858ce87665599c8663a10922c40383684ae3eabc49bb41f3482ee146d26d85a0
|
||||
MISC metadata.xml 557 BLAKE2B dbfca7b52ee79a095475d591fb6fd4c151309e5e9c0c9e1e4dd031b66dc3128f9e0057eab3fa85d9fc875ba14b1229e81b8101626e341dccf597f0a6db97c42f SHA512 b0c74de041336d52276075ffc75f58827812a672016c30411888cd9ffc1e468120ef9a847ae16cf7eddd892e7176aafc4d9b635c1826d8ab98d7259d642cb6e3
|
||||
|
@ -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,8 +1,10 @@
|
||||
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
|
||||
EBUILD boto3-1.26.54.ebuild 1580 BLAKE2B 6c2b0aa540898e7461c165b8cb755ceec1cf0b94ba8cf4e2183bcd3a7a242b1e78f4c9a61bcb0c01230f625735a59ce3cd437098b19620d87c76fa022327af45 SHA512 f792df64912dbb7af89eac9c95518624a26c37387e16b96f46db928912c01ce20503cf8f9685de1b314ca7120e353c5fb26c900962f8c05e2c275b3bcd297555
|
||||
EBUILD boto3-1.26.59.ebuild 1587 BLAKE2B db535a9938316c0564a32f4e05e74349251daef0db47afee54fe6907409d11ba1d660027cf059e2d4889c580ab8fe2fd6b252dd25a9c1906c878df6cb52e49d2 SHA512 8f2d0fdfbe2fa3916821a5d884cf579d55f97c21853c2f0990402e9ebbe4f1b0d21fda262f6e0ed997890b0cfe1e7ac42b1b6832a683c6b27f4aa2b6d4697469
|
||||
EBUILD boto3-1.26.63.ebuild 1587 BLAKE2B db535a9938316c0564a32f4e05e74349251daef0db47afee54fe6907409d11ba1d660027cf059e2d4889c580ab8fe2fd6b252dd25a9c1906c878df6cb52e49d2 SHA512 8f2d0fdfbe2fa3916821a5d884cf579d55f97c21853c2f0990402e9ebbe4f1b0d21fda262f6e0ed997890b0cfe1e7ac42b1b6832a683c6b27f4aa2b6d4697469
|
||||
EBUILD boto3-1.26.64.ebuild 1587 BLAKE2B db535a9938316c0564a32f4e05e74349251daef0db47afee54fe6907409d11ba1d660027cf059e2d4889c580ab8fe2fd6b252dd25a9c1906c878df6cb52e49d2 SHA512 8f2d0fdfbe2fa3916821a5d884cf579d55f97c21853c2f0990402e9ebbe4f1b0d21fda262f6e0ed997890b0cfe1e7ac42b1b6832a683c6b27f4aa2b6d4697469
|
||||
EBUILD boto3-9999.ebuild 1586 BLAKE2B 44b7d2804e4a484ed5fb864ca2c60348f4e4eb2265c1ba946adf27b31052dd9041f148c1ec935af0bdcabc66109ad3b479dac167613c679a2d9e42f689182734 SHA512 bf11d1114aaff8762b6162a7ba94223e2eb180868e8395aafd1f466c48683514a3ae755baac40d7e0e1afb26ab49e14d30f39266382661b01e8f7ec53d71f145
|
||||
MISC metadata.xml 493 BLAKE2B 7d6324fc877ffe1d20c5369c2af0b09a7028f94d28f1841188913d0d8be7ea699c9d3f92c624992c4c96bd69615d3a1211a2483c76c56b7d3082492e43512523 SHA512 44420d8c03d5986f990b76369edfa8dfd7659b4952db3ad946fd05392ec594628a28745ad888d055d4f074d5214f61fcffafe6c04c4ab54109d45ac0371582bd
|
||||
|
@ -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,8 +1,10 @@
|
||||
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
|
||||
EBUILD botocore-1.29.54.ebuild 1899 BLAKE2B 94938a1edb8da9279816e2302442deef5adc1edef43deb21369c8dfc62c569eb34d4198cf55dc6acdad0c718eba5ddce0040b6f269e866e6eff95bc36fd41be3 SHA512 a0d875a4dec85116eaae0a20182832dedeb84e6a8946093473b99a1746ed5ff8b49ef7e7a4ad5b70afdfbb1098fabc5ddbbc40b895c2b7e0559e3d10cd02e0bd
|
||||
EBUILD botocore-1.29.59.ebuild 1906 BLAKE2B 0502a7409355212185525e104ab8763d13886570efdb9cbdc01425e1cd36e81b0381d7eccd4de0ade28ab9ddce3d39e24760157a3544602969369e98bcf1ffcd SHA512 eee3fbf350bf335637a962a1cd061141b4b2db43d3cd19c95cc9d6e29bc44092c26477994c260f6df56ad626a537758c177567d38feadbb0b0be4626ec63276a
|
||||
EBUILD botocore-1.29.63.ebuild 1906 BLAKE2B 0502a7409355212185525e104ab8763d13886570efdb9cbdc01425e1cd36e81b0381d7eccd4de0ade28ab9ddce3d39e24760157a3544602969369e98bcf1ffcd SHA512 eee3fbf350bf335637a962a1cd061141b4b2db43d3cd19c95cc9d6e29bc44092c26477994c260f6df56ad626a537758c177567d38feadbb0b0be4626ec63276a
|
||||
EBUILD botocore-1.29.64.ebuild 1906 BLAKE2B 0502a7409355212185525e104ab8763d13886570efdb9cbdc01425e1cd36e81b0381d7eccd4de0ade28ab9ddce3d39e24760157a3544602969369e98bcf1ffcd SHA512 eee3fbf350bf335637a962a1cd061141b4b2db43d3cd19c95cc9d6e29bc44092c26477994c260f6df56ad626a537758c177567d38feadbb0b0be4626ec63276a
|
||||
EBUILD botocore-9999.ebuild 1808 BLAKE2B c88307d04e9daf86db23c54e39fb14931a6e60ab83593db191859652e67c90cfac45263f60c0211f81bfa10fe755b9023924713f2855324c929322d557b4ec17 SHA512 16e3144cef752302fa7ad350f5bb86301d41c0223f9ea41ed784083f2475d48efae095d82da95f93f77fadc86dea96b6aad1f1bce96bd926be01ef2d519fe230
|
||||
MISC metadata.xml 499 BLAKE2B e5aaa7da26f200c09adfdf38b68f656bbccbec627cb5d966b280ac2165334e7eec659c89075bcace748f58e2ec3e7d2998e54a688d56ecea2d30653c67dfd35a SHA512 103c554d5dbd967bf9b6e418b3913d9235e7e910d012160909ce0715134ed2e37b06e6a345395f9d16ce08d1cf51f3ce458bce93c6a978fd3dca6610f2acdbd0
|
||||
|
@ -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)"
|
||||
}
|
@ -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,7 +1,9 @@
|
||||
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
|
||||
EBUILD fakeredis-2.4.0.ebuild 2080 BLAKE2B 8a72bc144e8edf9b1f8d55b65776364084f319b5522935665739984552f1e7622f34e15f9c1e0f9d3b7387d8f1408120bdf616fc3175c9d136cdc89270a75e3f SHA512 6e2da686bf464f1c67cfa63888c233908b27bf2d6ce84d8e99d4de23c134d456b397aec24fb235673173fae0e48e6ef0d3f156f9f02aebf2647c58e02f61e167
|
||||
EBUILD fakeredis-2.5.0.ebuild 2084 BLAKE2B 4591f6e8d91b0327225bfc6a2c792eab83298682c4f713786204e570bdca3b166d37616e7729e15f8bcbaf46b2a241ebcf25ce4f3146bdba451750941d6c461f SHA512 fab3b715ef33a7ca5fed697032c74237e52c23e1ca741e03109849a992d397f58705d36f476f0d8873fe47138781d84e29a62d180b9e8715044c72f1b432303c
|
||||
EBUILD fakeredis-2.6.0.ebuild 2084 BLAKE2B 4591f6e8d91b0327225bfc6a2c792eab83298682c4f713786204e570bdca3b166d37616e7729e15f8bcbaf46b2a241ebcf25ce4f3146bdba451750941d6c461f SHA512 fab3b715ef33a7ca5fed697032c74237e52c23e1ca741e03109849a992d397f58705d36f476f0d8873fe47138781d84e29a62d180b9e8715044c72f1b432303c
|
||||
EBUILD fakeredis-2.7.0.ebuild 2084 BLAKE2B 4591f6e8d91b0327225bfc6a2c792eab83298682c4f713786204e570bdca3b166d37616e7729e15f8bcbaf46b2a241ebcf25ce4f3146bdba451750941d6c461f SHA512 fab3b715ef33a7ca5fed697032c74237e52c23e1ca741e03109849a992d397f58705d36f476f0d8873fe47138781d84e29a62d180b9e8715044c72f1b432303c
|
||||
MISC metadata.xml 373 BLAKE2B 1de33db59658e6190cd0346be58208cae6c9143a52f49dc289e68aaa0d860b5bd68dfb54f2e0b005f60a67f5caa430e2ce94fc69e64bd27e1bbebb07ad29e602 SHA512 24bfcf4919363fef45c182b6de66221e580ee0e9e99ce46e91b767655dc0b6f8a9fa6c3512ba84d1040698c43a0b6a853ad8d63c1ee5fbc00a1d192defb24db5
|
||||
|
@ -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
|
||||
}
|
@ -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,8 +1,6 @@
|
||||
AUX 2.1.0-substitute-files.patch 1017 BLAKE2B 70577eb950a18345804a2a4b750bd233dc6a0b6bbdb524dfc66e0f4a7c69b0eeb2d35efb9d1845d567a11d1afa7881068b4757e42b9baf24dc01ba3026608a38 SHA512 fc4c9e12267ac5f04a2e16ad27334a093638538b8149ff380099fcbeb674a276ab9eb624a508010e37f82c05d5f7ab527a80e386b3e7b61c123ecb8effd9d542
|
||||
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
|
||||
EBUILD ipython-8.7.0.ebuild 4297 BLAKE2B 3e9de4b15720ee409c5dddc301acf5163799d1ce195fceca087f196412d2ba94b80ba7ad776bdbaaf2843cf56c8295c45c979e9d88045243cc4dbcf05f3b6eb1 SHA512 392ba36343857fb5022517b8fd71f820721fe6da42b5a4a086595a9bee419134d490113f6a5387bc861cb07098eeeff54be60b3ad1d06ca2f6851dbafece8a4e
|
||||
EBUILD ipython-8.8.0.ebuild 4305 BLAKE2B 343245d9af78f3d203f40e896a80bf7fa5859159483e44ad169f5418081cf00cae295d499631aad39f3bfb0e248bc5a110619612272acc472f8dff4d6975b68d SHA512 01e55532a5bcfbf63d11258c683af12746ac577b6b122ae7f85347440ebd8e02745c0782604d98f92af2ae65785cc32b1785c9089ffc710c9cdc23908cea1ba9
|
||||
EBUILD ipython-8.8.0.ebuild 4297 BLAKE2B 3e9de4b15720ee409c5dddc301acf5163799d1ce195fceca087f196412d2ba94b80ba7ad776bdbaaf2843cf56c8295c45c979e9d88045243cc4dbcf05f3b6eb1 SHA512 392ba36343857fb5022517b8fd71f820721fe6da42b5a4a086595a9bee419134d490113f6a5387bc861cb07098eeeff54be60b3ad1d06ca2f6851dbafece8a4e
|
||||
EBUILD ipython-8.9.0.ebuild 4310 BLAKE2B 854d6548b6a63ffa85302141ec3aa6cf699253574854f1e27dc3e60b5f6d361cc05a20236927e4c0428c6b214fdc21d4fc504b7dd3b193aedda41666c052c680 SHA512 5761a8c5de0ec8076539753cfd7e06f1b65b9dca98b5d8393bd811d613fdc704af3b4137f4db17c67e84ecea6850a3b905be01fe4b584214d8d619d2640c4c58
|
||||
MISC metadata.xml 2886 BLAKE2B 88c80f5eef5c89c8939e60c1944be4c63a5a318e55a3490b38bf864e7919debf8e3c3a32f1fa0a43766ceec6462fb20fd4d943194fe2c08208f0839783c20916 SHA512 f4ed7c1898930ade11983fb0666dc25dce7907f017145e1ad903651dcd95ead2734893d55b4548c4ae23425388485a86bffc9d885eae17d12ae1ac2c0058aac2
|
||||
|
@ -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
|
||||
}
|
@ -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,5 +1,3 @@
|
||||
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
|
||||
EBUILD python-neutronclient-8.2.0.ebuild 2283 BLAKE2B 0f63e5309aefa60e3c95669bb9f6ae8a6aeb8e0b211b38a557aefd1be0956fd727970299a8d51452f5f87b07d7069a6a5e442ff25556f65c5ede6cbfe996b498 SHA512 ba23bcc2895d93f4a33ab7403d377bbf565632aefb6e55aefb1e1dff647ea394237c62081f967298b5f2eec0ad5f358f2100e8df85bfeee2e4a6778276d1cd85
|
||||
EBUILD python-neutronclient-8.2.1.ebuild 2285 BLAKE2B c8d963f90d64a2a31c5270f2072f515b111fe95f53ace5c84dd07ae46683b37b272645fb1acdcf65f19e423a123564550d4ad63958bed1d49bc9a84f775d1882 SHA512 4819c1f57bd7a65062a7c7055558a66d2a53712b93fa3374d791ff98ec2bc07d5db05c34ccfd6e8f5d6e1af42be215c569163abd385d6b31178ccb46da2b1151
|
||||
EBUILD python-neutronclient-8.2.1.ebuild 2283 BLAKE2B 0f63e5309aefa60e3c95669bb9f6ae8a6aeb8e0b211b38a557aefd1be0956fd727970299a8d51452f5f87b07d7069a6a5e442ff25556f65c5ede6cbfe996b498 SHA512 ba23bcc2895d93f4a33ab7403d377bbf565632aefb6e55aefb1e1dff647ea394237c62081f967298b5f2eec0ad5f358f2100e8df85bfeee2e4a6778276d1cd85
|
||||
MISC metadata.xml 645 BLAKE2B 7c6f6fa18789cbd9334a7d611b47f5d2b9b0110a2c15cfcd50b95a4be593e8d5c7fa5d53a2db8a82c68c6e9f75db668cef4b4dfa7aa446f4cada0db80a669acb SHA512 035c9734f11c8b8d1edad8991c527d51060f58a171dbacd26c62a37cf8b061df318fad31ca352c17116e77e7e2338a85cfd8ee8550b10a2f93eb7ca3be3fd192
|
||||
|
@ -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
|
||||
}
|
Binary file not shown.
@ -1,3 +1,5 @@
|
||||
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
|
||||
EBUILD acts_as_list-1.0.4.ebuild 905 BLAKE2B 87aaed0b79f37ca049380f15e133c811741efb65d51a16512a8ff71043139b6ba69b1276ee4d895bafe6f8bf8b902eaf5501791a3f5e58638590e80cf82e5be7 SHA512 bf0af82c1ca30cfe0e473a68e92ab9056ed21a1833fc9adee8a912a97340ace545ec2a147fc54cd2fe6963617608406e0cffae4c2e47156d0b91fa8c2da605e0
|
||||
MISC metadata.xml 348 BLAKE2B 25ff642ea63d5e8510ab121b0ca9a8fde0fd03d2281238dc4ed2b95111fa370e42ca59c43a64aeb8d1e3fee08e6305c71dce2a874d0d6fdab34ac5aae3572cc0 SHA512 755674a197b6b9a21683586098d059e82e3640b03ab5f0d11322c9bee68e2b2a2b843c8136638f36f2f4a8e98ab4594e1e8e9390b975fb6f7b17134a1fdf960f
|
||||
EBUILD acts_as_list-1.1.0.ebuild 904 BLAKE2B 20e22824ff06f1a3f9ca37ab8330c31dcd62a1eaa1bdc4a870cdc6bef68b84e0160f1a82cc580c54cf792bc0132a7c41d10ebdf063257e2114f7707cfc38a073 SHA512 a3f18da56beff465dbb3970e7c59d1a113a8c88ffcd965c0a73710ca87fd7fe5ae9e8de6e7a68f1855ee98c4533cbf3c5a77db6775867667fe0dfe13960530fa
|
||||
MISC metadata.xml 347 BLAKE2B 2d2ba105cf2f5b444977deadbfe99bc236c4a5a2ee227ebc72215161b9cd9dc0decb036f71205ced7560adffcb55c7bba220163d4a24b6113f8e54241615d7d3 SHA512 64a245beb42b2c7e87ba21faa689a45ea32b2222f675b0b3e72cf666bec981a74d62e60cd1090a304309bbc6d516cc4170b70dd71137bf0fa4b0e59211d60665
|
||||
|
@ -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
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
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
|
||||
EBUILD commonmarker-0.23.5.ebuild 1157 BLAKE2B de1de03bd0529b0cc93391aeb1add65200ba98c2fbec468fd13d86c2758c8f8e0e3e6fc51381b12317d56980969b1a0d349917319f8cb98e2d2ee93a4d88ad50 SHA512 239dcb336b78f5ec1ffb4c9af908cb7b07fc8e1ac17d0b39500e78625a93e31717f619a89947035a59baa717661a43b524f8ce7553fb5df0380b4630ea12bad9
|
||||
EBUILD commonmarker-0.23.6.ebuild 1157 BLAKE2B de1de03bd0529b0cc93391aeb1add65200ba98c2fbec468fd13d86c2758c8f8e0e3e6fc51381b12317d56980969b1a0d349917319f8cb98e2d2ee93a4d88ad50 SHA512 239dcb336b78f5ec1ffb4c9af908cb7b07fc8e1ac17d0b39500e78625a93e31717f619a89947035a59baa717661a43b524f8ce7553fb5df0380b4630ea12bad9
|
||||
EBUILD commonmarker-0.23.7.ebuild 1157 BLAKE2B 2f5de5ded7e6b72f687595ad4a0cbda63832f592a9c8a6c82949442571a77ebe13cab399b5e80c53af1989b0ce9374140d568ccfd0e8ce0198b7b0bec3b4ad71 SHA512 256d6501847d8c80be32e1a75b91856bade8e72b22cad8cfbc8e5083fcdd7ed9fdd8425f3e24071f8c8ce0d9468d3d4256c84ea6fee8b361f9185b1b416e75cb
|
||||
EBUILD commonmarker-0.23.8.ebuild 1157 BLAKE2B 2f5de5ded7e6b72f687595ad4a0cbda63832f592a9c8a6c82949442571a77ebe13cab399b5e80c53af1989b0ce9374140d568ccfd0e8ce0198b7b0bec3b4ad71 SHA512 256d6501847d8c80be32e1a75b91856bade8e72b22cad8cfbc8e5083fcdd7ed9fdd8425f3e24071f8c8ce0d9468d3d4256c84ea6fee8b361f9185b1b416e75cb
|
||||
MISC metadata.xml 340 BLAKE2B 3536acbd013ad07c27f5c6ccdada3ffffb5f259aedaeb4ee5a89ec1921f49939177a7162165c2b90336a87393d08f49cb62857cfa3ab551d12a37843863b56e0 SHA512 5f5eab450ffbdbee075545d8a97a2b3bcc6ed997aad9bf7e1b3c31e6368a7c5383704bdce32eea086b027b7c3e27accd3e2d3329977f357570e8eb767a043526
|
||||
|
@ -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,5 +1,7 @@
|
||||
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
|
||||
EBUILD concurrent-ruby-1.1.10.ebuild 1396 BLAKE2B 15974663f6284c0f4e430be9b3e87cfdc9b77b8edf8a0f1a4e163a774ad2f343f8a8b2d62067fe34ee34c0172be70b3cc6881574c1c09ebadd05ea37be6ee034 SHA512 9d67ecbbc1a06dbbfd3c68cefb87a002182fdb2e242c07f999d8043dcf3e990a1488c0640e544a03676cd3ab5308f3b35e3f5547cbdfc7d0e5982cf915bda18c
|
||||
EBUILD concurrent-ruby-1.1.9.ebuild 1369 BLAKE2B d8cf99b8b1d9111d543188ebd016aa609ade7127cff9fa5ff09d3d4937d3fd49a1b0a3b512199c8b8e855b0a003072283bf58bd2e22c3520ac1b4ec9433ee2c4 SHA512 57b2a1eaf4ac68757cde40e68cb445dcdd56c6ecdac76cfc4174a063565ac91366568a7e9b38d8904a0caf922ae638d6c66bddfac24479a9816e95e4eb3d40d6
|
||||
EBUILD concurrent-ruby-1.2.0.ebuild 1400 BLAKE2B aaeb752d5eb915a31daf1f25e332efbadc63ec439a1a0960eea2be438adf33966cdf1c36a305f14c99d522c92175954a3de1fcea1e19fd72c6b0fcee2d999bb3 SHA512 7f4053e5f869f80caf23ae909e27f715ec98ef31a05a8a0ef90cbdbb05816d98b710f9c59bb195a2ba56be85eeaf3c8532780fec0d78bb102ba4491be8367c00
|
||||
MISC metadata.xml 359 BLAKE2B 2db8e9c1e575575ead6e6f86d5c883e356dbd84d3def08d6d2b9473e8cb10951268bd85208f56b14047b6bf57388e025f4ad626555d001d266bb0a87db954f45 SHA512 39f31f985f90fb6514f2c282c01a0d38e325371ec18671dda808372891caa83eb28a6eaf0a3090999a0427e5ca6cf3ba5f75b59e86b0e8713dc85ff3a6eacb68
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue