parent
f6cdc5b171
commit
a4ad08fb16
Binary file not shown.
Binary file not shown.
@ -1,3 +1,4 @@
|
||||
DIST aws-cli-1.27.54.gh.tar.gz 2349811 BLAKE2B 08cb317ea4621273644c39c1152e1a3f8bd9f52ed8c30d7c37dfea9e986ca1597fda1dfbdea8c4043fa783f061609d6f24895997e9f9a3f27d5677c0f9e6c3de SHA512 af4783eef3c1c666b8b3c6d20f1c0177db6d4ce01645b092770cba535dad95609b4bece366355ce6d6a505ac7ab5a2e390d64fb84d6c00e402f9f8ab88db91d9
|
||||
DIST aws-cli-1.27.59.gh.tar.gz 2360458 BLAKE2B e60117e41cf95d442db333cf49c146e4ed02247007b8f46228799c5dee8c486aec34b236c9a0a6d152d690ff86c34fd797a6f35227a6e443805cdfe1b1b30f00 SHA512 87b9aebe812415223285c09ab5a36de2b9c0da49775d1162a5b5d7489ad61c16ca5361b721bc9e4ec4ccc09306be24513f42d7263b315d6856be20fdf0779686
|
||||
DIST aws-cli-1.27.63.gh.tar.gz 2363224 BLAKE2B 4fe7971271d4359f9d29cdf4c028bd8d06a1a8188e6aef108c33d6b137bb2aee84f3655f3666381fdbf8166dd5ea071c564faac32fb0c06a461249385dbc503d SHA512 01c578f13c0f316c41bdf3bbc5e8532f01d0bfa108207899b8c56b990acdbf5b80d0ffbf1be944088f34e623494b1a1f6d52823d654c192b07133291e4bd7deb
|
||||
DIST aws-cli-1.27.64.gh.tar.gz 2363382 BLAKE2B fd0879e793aa5ee449ee535425976d11edb6f844f0385a630df82b62aa6db593c76ccab2b59b960b951859b88e2fd1d2db98f5f9f423b1de4dfed65c22eb131b SHA512 8966543936133e98a7ed27897b3978dbc71fde0728dff18e778cb17cf18b834c6abdc4cae13375f72280b1c3f4b43b33c3a08d4f3b99a2cefb74f27d1dd480a3
|
||||
|
@ -0,0 +1,80 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1 multiprocessing
|
||||
|
||||
MY_P=aws-cli-${PV}
|
||||
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||
HOMEPAGE="
|
||||
https://github.com/aws/aws-cli/
|
||||
https://pypi.org/project/awscli/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
# botocore is x.(y+2).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
dev-python/colorama[${PYTHON_USEDEP}]
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/rsa[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
!app-admin/awscli-bin
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# do not rely on bundled deps in botocore (sic!)
|
||||
find -name '*.py' -exec sed -i \
|
||||
-e 's:from botocore[.]vendored import:import:' \
|
||||
-e 's:from botocore[.]vendored[.]:from :' \
|
||||
{} + || die
|
||||
# strip overzealous upper bounds on requirements
|
||||
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=(
|
||||
# TODO
|
||||
tests/functional/eks/test_kubeconfig.py::TestKubeconfigLoader::test_load_simple
|
||||
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_env_only
|
||||
tests/unit/customizations/eks/test_update_kubeconfig.py::TestKubeconfigSelector::test_choose_existing
|
||||
tests/unit/customizations/eks/test_kubeconfig.py::TestKubeconfigValidator::test_valid
|
||||
)
|
||||
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit} -n "$(makeopts_jobs)" --forked
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp bin/aws_bash_completer aws
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins bin/aws_zsh_completer.sh _aws
|
||||
|
||||
distutils-r1_python_install_all
|
||||
|
||||
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,3 +1,6 @@
|
||||
DIST vscode-1.74.3-amd64.tar.gz 138260370 BLAKE2B 30bd34a17bb31326454db8844c48bc9f554374cdfc3032504be64f2493735864fbc3d0002ffa7c7a3c545329d198ead62df5931119cb95a261f2d4a9f058ac8a SHA512 46067ec45a383df7c766629c96fa320869e63e0f5ebc8d9c5738bde0799b934840fb912de7abcf6490378f70f1784664898341edfd755225d77bd62d8b058caf
|
||||
DIST vscode-1.74.3-arm.tar.gz 117870912 BLAKE2B 8d6fe12ca6b18db2709570df2e0ec943474fdf1878b30eae0b69c27ac018dbb4cd1fa724deb505ca0fc96096442296a0e201bc032544828320c05c799a39cca9 SHA512 41cbef791679cbd67c5844d5d545ed196d0374c9292050cc954f30549cd30c9612e3ef7e29c04b009718c93994ba285c9cf08d240723ae1420fa3be75e2630c0
|
||||
DIST vscode-1.74.3-arm64.tar.gz 127492465 BLAKE2B 095b6a11e5a4b029e9a3facb8728ede939d674b1c975027d9ece8eb6002b5dca8d665c95b231f3b96644e64952f76f40eb3fcab0ce71e59e1ae30837e7b7f272 SHA512 e0fe9d950aeef9744bdf1ed8c78de1a40fadc52d7ce68797334463d6c84ffb5e5ef8fa6a3a1dbf3593e423d9e43a39e85f46559ccd4054ea776be2c17aa88480
|
||||
DIST vscode-1.75.0-amd64.tar.gz 138952948 BLAKE2B 892c2ece1bfb1d2dc4fea2c3a6c062688add04f3ceca344988d240edbc4f358100bb4caa17eadc9568dbd1c3581595eb3fadd527727c02d57b63e5fd7a88533b SHA512 f4f26d5fc9c4cf8faf631ff5a0a48d446013faf33a1e932d3e8023b967dd078c370c57dff1791d97bfdeda0e92993d1aa94dce9cfeda4745bdc9c0a1cfb7aed2
|
||||
DIST vscode-1.75.0-arm.tar.gz 118400806 BLAKE2B d1c930bb871c7bbf7dccd8e3a0da9fc903dfad2066c5d8cbceb9ad3adfeb4d59089b35c75c4d5650efeaf7bb7fa9f2c84b2a499610fab3d09dc18d59122b5a47 SHA512 cdfa12e8dffdef50d3e17f58b0d516318d0e5e114b0556285d92ec81ceb2b78cea9affe9719416f7f60eea385cb49caf6879e3fd9c8d2fbf0849a1d1d9ccd704
|
||||
DIST vscode-1.75.0-arm64.tar.gz 128013515 BLAKE2B 77c2663e01397086e3917dae8e0ec3663969cf5e36135fbc7bc264f21ffc31197e5dc3dda49b3e4c2d9daf1f39d110b5c467590157ebd4d87986771bca3268c5 SHA512 0e4b4a2b2b273e590bd210d186b255a3e48ec0851c38ff27063f115088f7cf5375b14fd075b45f5d4ceb525f04c2d3fabbdd0d6b7bc192b8f6da269311b3634d
|
||||
|
@ -0,0 +1,127 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop pax-utils xdg optfeature
|
||||
|
||||
DESCRIPTION="Multiplatform Visual Studio Code from Microsoft"
|
||||
HOMEPAGE="https://code.visualstudio.com"
|
||||
SRC_URI="
|
||||
amd64? ( https://update.code.visualstudio.com/${PV}/linux-x64/stable -> ${P}-amd64.tar.gz )
|
||||
arm? ( https://update.code.visualstudio.com/${PV}/linux-armhf/stable -> ${P}-arm.tar.gz )
|
||||
arm64? ( https://update.code.visualstudio.com/${PV}/linux-arm64/stable -> ${P}-arm64.tar.gz )
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
RESTRICT="mirror strip bindist"
|
||||
|
||||
LICENSE="
|
||||
Apache-2.0
|
||||
BSD
|
||||
BSD-1
|
||||
BSD-2
|
||||
BSD-4
|
||||
CC-BY-4.0
|
||||
ISC
|
||||
LGPL-2.1+
|
||||
Microsoft-vscode
|
||||
MIT
|
||||
MPL-2.0
|
||||
openssl
|
||||
PYTHON
|
||||
TextMate-bundle
|
||||
Unlicense
|
||||
UoI-NCSA
|
||||
W3C
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64"
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret[crypt]
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
media-libs/alsa-lib
|
||||
media-libs/mesa
|
||||
net-print/cups
|
||||
sys-apps/util-linux
|
||||
sys-apps/dbus
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libxshmfence
|
||||
x11-libs/pango
|
||||
"
|
||||
|
||||
QA_PREBUILT="
|
||||
/opt/vscode/bin/code-tunnel
|
||||
/opt/vscode/chrome_crashpad_handler
|
||||
/opt/vscode/chrome-sandbox
|
||||
/opt/vscode/code
|
||||
/opt/vscode/libEGL.so
|
||||
/opt/vscode/libffmpeg.so
|
||||
/opt/vscode/libGLESv2.so
|
||||
/opt/vscode/libvk_swiftshader.so
|
||||
/opt/vscode/libvulkan.so*
|
||||
/opt/vscode/resources/app/extensions/*
|
||||
/opt/vscode/resources/app/node_modules.asar.unpacked/*
|
||||
/opt/vscode/swiftshader/libEGL.so
|
||||
/opt/vscode/swiftshader/libGLESv2.so
|
||||
"
|
||||
|
||||
src_install() {
|
||||
if use amd64; then
|
||||
cd "${WORKDIR}/VSCode-linux-x64" || die
|
||||
elif use arm; then
|
||||
cd "${WORKDIR}/VSCode-linux-armhf" || die
|
||||
elif use arm64; then
|
||||
cd "${WORKDIR}/VSCode-linux-arm64" || die
|
||||
else
|
||||
die "Visual Studio Code only supports amd64, arm and arm64"
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
rm -r ./resources/app/LICENSES.chromium.html ./resources/app/LICENSE.rtf ./resources/app/licenses || die
|
||||
|
||||
# Disable update server
|
||||
sed -e "/updateUrl/d" -i ./resources/app/product.json || die
|
||||
|
||||
# Install
|
||||
pax-mark m code
|
||||
insinto "/opt/${PN}"
|
||||
doins -r *
|
||||
fperms +x /opt/${PN}/{,bin/}code
|
||||
fperms +x /opt/${PN}/chrome_crashpad_handler
|
||||
fperms 4711 /opt/${PN}/chrome-sandbox
|
||||
fperms 755 /opt/${PN}/resources/app/extensions/git/dist/{askpass,git-editor}{,-empty}.sh
|
||||
fperms -R +x /opt/${PN}/resources/app/out/vs/base/node
|
||||
fperms +x /opt/${PN}/resources/app/node_modules.asar.unpacked/@vscode/ripgrep/bin/rg
|
||||
dosym "../../opt/${PN}/bin/code" "usr/bin/vscode"
|
||||
dosym "../../opt/${PN}/bin/code" "usr/bin/code"
|
||||
domenu "${FILESDIR}/vscode.desktop"
|
||||
domenu "${FILESDIR}/vscode-url-handler.desktop"
|
||||
domenu "${FILESDIR}/vscode-wayland.desktop"
|
||||
domenu "${FILESDIR}/vscode-url-handler-wayland.desktop"
|
||||
newicon "resources/app/resources/linux/code.png" "vscode.png"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
elog "You may want to install some additional utils, check in:"
|
||||
elog "https://code.visualstudio.com/Docs/setup#_additional-tools"
|
||||
optfeature "keyring support inside vscode" "gnome-base/gnome-keyring"
|
||||
}
|
@ -1,3 +1,6 @@
|
||||
DIST vscodium-1.74.3.23010-amd64.tar.gz 121396318 BLAKE2B 457aa7135d85340cc46b8bf06cc18bf9a575510c445c25c2102aa9f95099e7472f953c1770c7ff567bb53a2532db2c21849b06e922ef11a5d8699f8ed3cd283b SHA512 4d6f9494c2112c6de60dde67eab6127c8bbb7fae4574e6fa85e4438e02ccf61f0954e79157e0466dd7aa2cead828d394b6b8f669be4ff52050b2cafb3e3e7f6b
|
||||
DIST vscodium-1.74.3.23010-arm.tar.gz 103438321 BLAKE2B e6294cdaaed7862b7a64ff9cfdb675ccba1bca25c23ba66c93aaadb2e231447de7baba4815ee910a1b84965ffdee06c1b6a45a48294872a0c872ed10e049a05a SHA512 52f481e5a7e9f53c176702b134729f6fff0a8fe4eb993d07350476250bb324ef88fc22e3263c018affc5f791bf65583946da8119dc657fec372741a81798fa81
|
||||
DIST vscodium-1.74.3.23010-arm64.tar.gz 114464176 BLAKE2B a6682c4c26fa2bb628aced21cfabe0ee03cc3bb285b857973753cb9c5798763d6c43d8968f089a2be064a84ce71fc09ea938f5305c30c0a8920968c75812c845 SHA512 a2d563fc69aad4e3c05afe88c6326a2a9e2e67c7022e6068f416348445d421a0c1a676ecb405acca1f9b2892e1cdbbc7f38e6292570deaa5bc4574506deb272d
|
||||
DIST vscodium-1.75.0.23033-amd64.tar.gz 121848371 BLAKE2B 412e945fd98f3ca6fd690593d09d64ec32e2a1450c117f41b99a276f6992f38de8e315af2273e659023a9acd8101a594c5e50bb7c29c7b9d688c902fca875b50 SHA512 58a3e58c9350359538841349271794e738f4734e84af7ec83a44b11fa09517dcaa6c373bb20ae271c4646f8766f405d12e7011d0398750facd9c4aa47402976c
|
||||
DIST vscodium-1.75.0.23033-arm.tar.gz 103889757 BLAKE2B ad910df8a5b245c725dcdb3d2bf4fdb602de2703a629563f6b71bad3e8ebc09a5ecf6ab1272261b7abb6aa35ea7a15ea9a8c1ee5ca52bee8deaf5b13221edf15 SHA512 9dd9b4bdc6e98c53c39ee5bde3f2001d3345de0398e848b26cca0e54cf8edd3712e4489cf3f11e7f67b9742c8dd3e9bafbf09ae5c4704a090147cfcae542e89d
|
||||
DIST vscodium-1.75.0.23033-arm64.tar.gz 114924184 BLAKE2B 47d979df3eadee60e5ea6dcbf15b58518ded7086516cb9c1444ef22c3b05eef3d3b7b733a8be889fd0a08fa5e9fc4a0e5171a573b95defc951f526b95e624b0b SHA512 506ccf023fe0f1c9c18c23ab3e77b64ba64e769226e43c577764b1ca85c940c53bdef69095bb3b2d09886a02506847a5884543191e2aead12884ffcadb7b22ae
|
||||
|
@ -0,0 +1,118 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit desktop pax-utils xdg optfeature
|
||||
|
||||
DESCRIPTION="A community-driven, freely-licensed binary distribution of Microsoft's VSCode"
|
||||
HOMEPAGE="https://vscodium.com/"
|
||||
SRC_URI="
|
||||
amd64? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-x64-${PV}.tar.gz -> ${P}-amd64.tar.gz )
|
||||
arm? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-armhf-${PV}.tar.gz -> ${P}-arm.tar.gz )
|
||||
arm64? ( https://github.com/VSCodium/${PN}/releases/download/${PV}/VSCodium-linux-arm64-${PV}.tar.gz -> ${P}-arm64.tar.gz )
|
||||
"
|
||||
|
||||
RESTRICT="strip bindist"
|
||||
|
||||
LICENSE="
|
||||
Apache-2.0
|
||||
BSD
|
||||
BSD-1
|
||||
BSD-2
|
||||
BSD-4
|
||||
CC-BY-4.0
|
||||
ISC
|
||||
LGPL-2.1+
|
||||
MIT
|
||||
MPL-2.0
|
||||
openssl
|
||||
PYTHON
|
||||
TextMate-bundle
|
||||
Unlicense
|
||||
UoI-NCSA
|
||||
W3C
|
||||
"
|
||||
SLOT="0"
|
||||
KEYWORDS="-* ~amd64 ~arm ~arm64"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="
|
||||
>=app-accessibility/at-spi2-core-2.46.0:2
|
||||
app-crypt/libsecret[crypt]
|
||||
dev-libs/expat
|
||||
dev-libs/glib:2
|
||||
dev-libs/nspr
|
||||
dev-libs/nss
|
||||
media-libs/alsa-lib
|
||||
media-libs/mesa
|
||||
net-print/cups
|
||||
sys-apps/util-linux
|
||||
sys-apps/dbus
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libdrm
|
||||
x11-libs/libX11
|
||||
x11-libs/libxcb
|
||||
x11-libs/libXcomposite
|
||||
x11-libs/libXdamage
|
||||
x11-libs/libXext
|
||||
x11-libs/libXfixes
|
||||
x11-libs/libxkbcommon
|
||||
x11-libs/libxkbfile
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libxshmfence
|
||||
x11-libs/pango
|
||||
"
|
||||
|
||||
QA_PREBUILT="
|
||||
/opt/vscode/bin/code-tunnel
|
||||
/opt/vscodium/chrome_crashpad_handler
|
||||
/opt/vscodium/chrome-sandbox
|
||||
/opt/vscodium/codium
|
||||
/opt/vscodium/libEGL.so
|
||||
/opt/vscodium/libffmpeg.so
|
||||
/opt/vscodium/libGLESv2.so
|
||||
/opt/vscodium/libvk_swiftshader.so
|
||||
/opt/vscodium/libvulkan.so*
|
||||
/opt/vscodium/resources/app/extensions/*
|
||||
/opt/vscodium/resources/app/node_modules.asar.unpacked/*
|
||||
/opt/vscodium/swiftshader/libEGL.so
|
||||
/opt/vscodium/swiftshader/libGLESv2.so
|
||||
"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
src_install() {
|
||||
# Cleanup
|
||||
rm "${S}/resources/app/LICENSE.txt" || die
|
||||
|
||||
# Disable update server
|
||||
sed -i "/updateUrl/d" "${S}"/resources/app/product.json || die
|
||||
|
||||
# Install
|
||||
pax-mark m codium
|
||||
insinto "/opt/${PN}"
|
||||
doins -r *
|
||||
fperms +x /opt/${PN}/{,bin/}codium
|
||||
fperms +x /opt/${PN}/chrome_crashpad_handler
|
||||
fperms 4711 /opt/${PN}/chrome-sandbox
|
||||
fperms 755 /opt/${PN}/resources/app/extensions/git/dist/{askpass,git-editor}{,-empty}.sh
|
||||
fperms -R +x /opt/${PN}/resources/app/out/vs/base/node
|
||||
fperms +x /opt/${PN}/resources/app/node_modules.asar.unpacked/@vscode/ripgrep/bin/rg
|
||||
dosym "../../opt/${PN}/bin/codium" "usr/bin/vscodium"
|
||||
dosym "../../opt/${PN}/bin/codium" "usr/bin/codium"
|
||||
domenu "${FILESDIR}/vscodium.desktop"
|
||||
domenu "${FILESDIR}/vscodium-url-handler.desktop"
|
||||
domenu "${FILESDIR}/vscodium-wayland.desktop"
|
||||
domenu "${FILESDIR}/vscodium-url-handler-wayland.desktop"
|
||||
newicon "resources/app/resources/linux/code.png" "vscodium.png"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
elog "When compared to the regular VSCode, VSCodium has a few quirks"
|
||||
elog "More information at: https://github.com/VSCodium/vscodium/blob/master/DOCS.md"
|
||||
optfeature "keyring support inside vscode" "gnome-base/gnome-keyring"
|
||||
}
|
Binary file not shown.
@ -1,4 +1,2 @@
|
||||
DIST qemu-7.1.0-docs.tar.xz 2016780 BLAKE2B 1b84361fe58d504ab740a0b805a25d02f497ca776e7251a99f0e98e3720d1a2029b7a171f9d79dd128ba17a82c72d497e09baa1a4b2f192ba390f0f3b1950792 SHA512 7a328303b8af0ab63aa1f0fe07a121d3ca459d00fca817412e645416af795930dbea0a3e60f4ca006a74d1672e84fa4e626e4d83918e0b685b601043d0d8159e
|
||||
DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
|
||||
DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
|
||||
DIST qemu-7.2.0.tar.xz 122408576 BLAKE2B 415ff621356c59f88b29cfe3ef5db1e282b26bbafbee3d535477c6125ccb060ec9762d9e3ab9f70ce5478804dca0a46a59bcf12c112a2462029a93e578e61530 SHA512 f3cfa00da739ba819a218d7e6e95c77fb79a8e0f487b024ddd281602e785249b81144595e3f8c746c32a4f5c4d1a88c6aebae3c162603edfbb50ae3722d7ed13
|
||||
|
@ -1,78 +0,0 @@
|
||||
From 35a2c85f7d691db7aa2c47181902ac87478eef7a Mon Sep 17 00:00:00 2001
|
||||
From: WANG Xuerui <xen0n@gentoo.org>
|
||||
Date: Sun, 9 Oct 2022 14:08:13 +0800
|
||||
Subject: [PATCH] linux-user: Implement faccessat2
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
User space has been preferring this syscall for a while, due to its
|
||||
closer match with C semantics, and newer platforms such as LoongArch
|
||||
apparently have libc implementations that don't fallback to faccessat
|
||||
so normal access checks are failing without the emulation in place.
|
||||
|
||||
Tested by successfully emerging several packages within a Gentoo loong
|
||||
stage3 chroot, emulated on amd64 with help of static qemu-loongarch64.
|
||||
|
||||
Reported-by: Andreas K. Hüttel <dilfridge@gentoo.org>
|
||||
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
|
||||
Message-Id: <20221009060813.2289077-1-xen0n@gentoo.org>
|
||||
[lv: removing defined(__NR_faccessat2) in syscall.c,
|
||||
adding defined(TARGET_NR_faccessat2) on print_faccessat()]
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
---
|
||||
linux-user/strace.c | 2 +-
|
||||
linux-user/strace.list | 3 +++
|
||||
linux-user/syscall.c | 9 +++++++++
|
||||
3 files changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/linux-user/strace.c b/linux-user/strace.c
|
||||
index 86c081c83f..9ae5a812cd 100644
|
||||
--- a/linux-user/strace.c
|
||||
+++ b/linux-user/strace.c
|
||||
@@ -1969,7 +1969,7 @@ print_execv(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
}
|
||||
#endif
|
||||
|
||||
-#ifdef TARGET_NR_faccessat
|
||||
+#if defined(TARGET_NR_faccessat) || defined(TARGET_NR_faccessat2)
|
||||
static void
|
||||
print_faccessat(CPUArchState *cpu_env, const struct syscallname *name,
|
||||
abi_long arg0, abi_long arg1, abi_long arg2,
|
||||
diff --git a/linux-user/strace.list b/linux-user/strace.list
|
||||
index a87415bf3d..3df2184580 100644
|
||||
--- a/linux-user/strace.list
|
||||
+++ b/linux-user/strace.list
|
||||
@@ -178,6 +178,9 @@
|
||||
#ifdef TARGET_NR_faccessat
|
||||
{ TARGET_NR_faccessat, "faccessat" , NULL, print_faccessat, NULL },
|
||||
#endif
|
||||
+#ifdef TARGET_NR_faccessat2
|
||||
+{ TARGET_NR_faccessat2, "faccessat2" , NULL, print_faccessat, NULL },
|
||||
+#endif
|
||||
#ifdef TARGET_NR_fadvise64
|
||||
{ TARGET_NR_fadvise64, "fadvise64" , NULL, NULL, NULL },
|
||||
#endif
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index d499cac1d5..e985ad167f 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -9143,6 +9143,15 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
unlock_user(p, arg2, 0);
|
||||
return ret;
|
||||
#endif
|
||||
+#if defined(TARGET_NR_faccessat2)
|
||||
+ case TARGET_NR_faccessat2:
|
||||
+ if (!(p = lock_user_string(arg2))) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ ret = get_errno(faccessat(arg1, p, arg3, arg4));
|
||||
+ unlock_user(p, arg2, 0);
|
||||
+ return ret;
|
||||
+#endif
|
||||
#ifdef TARGET_NR_nice /* not on alpha */
|
||||
case TARGET_NR_nice:
|
||||
return get_errno(nice(arg1));
|
||||
--
|
||||
2.37.4
|
||||
|
@ -1,98 +0,0 @@
|
||||
From xen0n@gentoo.org Thu Oct 06 10:07:10 2022
|
||||
Return-Path: <xen0n@gentoo.org>
|
||||
X-Original-To: dilfridge@gentoo.org
|
||||
Delivered-To: dilfridge@gentoo.org
|
||||
From: WANG Xuerui <xen0n@gentoo.org>
|
||||
To: qemu-devel@nongnu.org
|
||||
Cc: Richard Henderson <richard.henderson@linaro.org>,
|
||||
=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>,
|
||||
WANG Xuerui <xen0n@gentoo.org>,
|
||||
Song Gao <gaosong@loongson.cn>,
|
||||
Xiaojuan Yang <yangxiaojuan@loongson.cn>,
|
||||
=?UTF-8?q?Andreas=20K=20=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
|
||||
Subject: [PATCH RESEND] linux-user: Fix struct statfs ABI on loongarch64
|
||||
Date: Thu, 6 Oct 2022 18:07:10 +0800
|
||||
Message-Id: <20221006100710.427252-1-xen0n@gentoo.org>
|
||||
X-Mailer: git-send-email 2.38.0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Previously the 32-bit version was incorrectly chosen, leading to funny
|
||||
but incorrect output from e.g. df(1). Simply select the version
|
||||
corresponding to the 64-bit asm-generic definition.
|
||||
|
||||
For reference, this program should produce the same output no matter
|
||||
natively compiled or not, for loongarch64 or not:
|
||||
|
||||
```c
|
||||
#include <stdio.h>
|
||||
#include <sys/statfs.h>
|
||||
|
||||
int main(int argc, const char *argv[])
|
||||
{
|
||||
struct statfs b;
|
||||
if (statfs(argv[0], &b))
|
||||
return 1;
|
||||
|
||||
printf("f_type = 0x%lx\n", b.f_type);
|
||||
printf("f_bsize = %ld\n", b.f_bsize);
|
||||
printf("f_blocks = %ld\n", b.f_blocks);
|
||||
printf("f_bfree = %ld\n", b.f_bfree);
|
||||
printf("f_bavail = %ld\n", b.f_bavail);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Example output on my amd64 box, with the test binary residing on a
|
||||
// btrfs partition.
|
||||
|
||||
// Native and emulated output after the fix:
|
||||
//
|
||||
// f_type = 0x9123683e
|
||||
// f_bsize = 4096
|
||||
// f_blocks = 268435456
|
||||
// f_bfree = 168406890
|
||||
// f_bavail = 168355058
|
||||
|
||||
// Output before the fix, note the messed layout:
|
||||
//
|
||||
// f_type = 0x10009123683e
|
||||
// f_bsize = 723302085239504896
|
||||
// f_blocks = 168355058
|
||||
// f_bfree = 2250817541779750912
|
||||
// f_bavail = 1099229433104
|
||||
```
|
||||
|
||||
Fixes: 1f63019632 ("linux-user: Add LoongArch syscall support")
|
||||
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
|
||||
Cc: Song Gao <gaosong@loongson.cn>
|
||||
Cc: Xiaojuan Yang <yangxiaojuan@loongson.cn>
|
||||
Cc: Andreas K. Hüttel <dilfridge@gentoo.org>
|
||||
---
|
||||
|
||||
Resend with amended commit message to 100% clarify the example output
|
||||
are generated on my box and will differ for everyone else. Sorry for
|
||||
the noise.
|
||||
|
||||
linux-user/syscall_defs.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
|
||||
index 01ee10a88f..77864de57f 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -2262,7 +2262,8 @@ struct target_statfs64 {
|
||||
};
|
||||
#elif (defined(TARGET_PPC64) || defined(TARGET_X86_64) || \
|
||||
defined(TARGET_SPARC64) || defined(TARGET_AARCH64) || \
|
||||
- defined(TARGET_RISCV)) && !defined(TARGET_ABI32)
|
||||
+ defined(TARGET_RISCV) || defined(TARGET_LOONGARCH64)) && \
|
||||
+ !defined(TARGET_ABI32)
|
||||
struct target_statfs {
|
||||
abi_long f_type;
|
||||
abi_long f_bsize;
|
||||
--
|
||||
2.38.0
|
||||
|
||||
|
@ -1,94 +0,0 @@
|
||||
From xen0n@gentoo.org Thu Oct 06 08:55:00 2022
|
||||
Return-Path: <xen0n@gentoo.org>
|
||||
X-Original-To: dilfridge@gentoo.org
|
||||
Delivered-To: dilfridge@gentoo.org
|
||||
From: WANG Xuerui <xen0n@gentoo.org>
|
||||
To: qemu-devel@nongnu.org
|
||||
Cc: WANG Xuerui <xen0n@gentoo.org>,
|
||||
=?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <f4bug@amsat.org>,
|
||||
Jiaxun Yang <jiaxun.yang@flygoat.com>,
|
||||
=?UTF-8?q?Andreas=20K=20=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>,
|
||||
Joshua Kinard <kumba@gentoo.org>
|
||||
Subject: [PATCH] linux-user: Fix more MIPS n32 syscall ABI issues
|
||||
Date: Thu, 6 Oct 2022 16:55:00 +0800
|
||||
Message-Id: <20221006085500.290341-1-xen0n@gentoo.org>
|
||||
X-Mailer: git-send-email 2.38.0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
In commit 80f0fe3a85 ("linux-user: Fix syscall parameter handling for
|
||||
MIPS n32") the ABI problem regarding offset64 on MIPS n32 was fixed,
|
||||
but still some cases remain where the n32 is incorrectly treated as any
|
||||
other 32-bit ABI that passes 64-bit arguments in pairs of GPRs. Fix by
|
||||
excluding TARGET_ABI_MIPSN32 from various TARGET_ABI_BITS == 32 checks.
|
||||
|
||||
Closes: https://gitlab.com/qemu-project/qemu/-/issues/1238
|
||||
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
|
||||
Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
|
||||
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
|
||||
Cc: Andreas K. Hüttel <dilfridge@gentoo.org>
|
||||
Cc: Joshua Kinard <kumba@gentoo.org>
|
||||
---
|
||||
|
||||
Note: I can't reproduce the crash with neither MIPS n32 sysroot at my hand
|
||||
(a self-built one for Loongson-2F, and stage3-mips64_n32-openrc-20221001T170527Z),
|
||||
so I can only verify by looking at the (host and qemu) strace outputs, and
|
||||
would have to ask you to review/test this harder. Thanks.
|
||||
|
||||
linux-user/syscall.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 2e954d8dbd..8b2d39fe73 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -11793,7 +11793,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
return -host_to_target_errno(ret);
|
||||
#endif
|
||||
|
||||
-#if TARGET_ABI_BITS == 32
|
||||
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
|
||||
|
||||
#ifdef TARGET_NR_fadvise64_64
|
||||
case TARGET_NR_fadvise64_64:
|
||||
@@ -11920,7 +11920,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
return get_errno(sys_gettid());
|
||||
#ifdef TARGET_NR_readahead
|
||||
case TARGET_NR_readahead:
|
||||
-#if TARGET_ABI_BITS == 32
|
||||
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
|
||||
if (regpairs_aligned(cpu_env, num)) {
|
||||
arg2 = arg3;
|
||||
arg3 = arg4;
|
||||
@@ -12612,7 +12612,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
#endif /* CONFIG_EVENTFD */
|
||||
#if defined(CONFIG_FALLOCATE) && defined(TARGET_NR_fallocate)
|
||||
case TARGET_NR_fallocate:
|
||||
-#if TARGET_ABI_BITS == 32
|
||||
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
|
||||
ret = get_errno(fallocate(arg1, arg2, target_offset64(arg3, arg4),
|
||||
target_offset64(arg5, arg6)));
|
||||
#else
|
||||
@@ -12623,7 +12623,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
#if defined(CONFIG_SYNC_FILE_RANGE)
|
||||
#if defined(TARGET_NR_sync_file_range)
|
||||
case TARGET_NR_sync_file_range:
|
||||
-#if TARGET_ABI_BITS == 32
|
||||
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
|
||||
#if defined(TARGET_MIPS)
|
||||
ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4),
|
||||
target_offset64(arg5, arg6), arg7));
|
||||
@@ -12645,7 +12645,7 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1,
|
||||
case TARGET_NR_arm_sync_file_range:
|
||||
#endif
|
||||
/* This is like sync_file_range but the arguments are reordered */
|
||||
-#if TARGET_ABI_BITS == 32
|
||||
+#if TARGET_ABI_BITS == 32 && !defined(TARGET_ABI_MIPSN32)
|
||||
ret = get_errno(sync_file_range(arg1, target_offset64(arg3, arg4),
|
||||
target_offset64(arg5, arg6), arg2));
|
||||
#else
|
||||
--
|
||||
2.38.0
|
||||
|
||||
|
@ -1,26 +0,0 @@
|
||||
Forward-ported from original patch for 5.2.0.
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index da2501489f..4660ee3ee5 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -400,6 +400,7 @@ ld="${LD-${cross_prefix}ld}"
|
||||
nm="${NM-${cross_prefix}nm}"
|
||||
smbd="$SMBD"
|
||||
strip="${STRIP-${cross_prefix}strip}"
|
||||
+strings="${STRINGS-${cross_prefix}strings}"
|
||||
widl="${WIDL-${cross_prefix}widl}"
|
||||
windres="${WINDRES-${cross_prefix}windres}"
|
||||
pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
|
||||
@@ -1466,9 +1467,9 @@ int main(int argc, char *argv[])
|
||||
EOF
|
||||
|
||||
if compile_prog ; then
|
||||
- if strings -a $TMPE | grep -q BiGeNdIaN ; then
|
||||
+ if $strings -a $TMPE | grep -q BiGeNdIaN ; then
|
||||
bigendian="yes"
|
||||
- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
|
||||
+ elif $strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
|
||||
bigendian="no"
|
||||
else
|
||||
echo big/little test failed
|
@ -1,967 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=ajak
|
||||
QEMU_DOCS_VERSION="${PV}"
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{9,10,11} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.1.0"
|
||||
|
||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||
pax-utils xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
QEMU_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||
EGIT_SUBMODULES=(
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
ui/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_rc/-rc}"
|
||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||
|
||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||
|
||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||
jack jemalloc +jpeg
|
||||
lzo multipath
|
||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
|
||||
plugins +png pulseaudio python rbd sasl sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
aarch64
|
||||
alpha
|
||||
arm
|
||||
cris
|
||||
hppa
|
||||
i386
|
||||
loongarch64
|
||||
m68k
|
||||
microblaze
|
||||
microblazeel
|
||||
mips
|
||||
mips64
|
||||
mips64el
|
||||
mipsel
|
||||
nios2
|
||||
or1k
|
||||
ppc
|
||||
ppc64
|
||||
riscv32
|
||||
riscv64
|
||||
s390x
|
||||
sh4
|
||||
sh4eb
|
||||
sparc
|
||||
sparc64
|
||||
x86_64
|
||||
xtensa
|
||||
xtensaeb
|
||||
"
|
||||
IUSE_SOFTMMU_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
avr
|
||||
rx
|
||||
tricore
|
||||
"
|
||||
IUSE_USER_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
aarch64_be
|
||||
armeb
|
||||
hexagon
|
||||
mipsn32
|
||||
mipsn32el
|
||||
ppc64le
|
||||
sparc32plus
|
||||
"
|
||||
|
||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
# Allow no targets to be built so that people can get a tools-only build.
|
||||
# Block USE flag configurations known to not work.
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_arm? ( fdt )
|
||||
qemu_softmmu_targets_microblaze? ( fdt )
|
||||
qemu_softmmu_targets_mips64el? ( fdt )
|
||||
qemu_softmmu_targets_ppc64? ( fdt )
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
qemu_softmmu_targets_x86_64? ( fdt )
|
||||
sdl-image? ( sdl )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
|
||||
static-user? ( !plugins )
|
||||
virgl? ( opengl )
|
||||
virtfs? ( xattr )
|
||||
vnc? ( gnutls )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static !static-user )
|
||||
"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# and user/softmmu targets (qemu-*, qemu-system-*).
|
||||
#
|
||||
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
|
||||
#
|
||||
# The attr lib isn't always linked in (although the USE flag is always
|
||||
# respected). This is because qemu supports using the C library's API
|
||||
# when available rather than always using the external library.
|
||||
ALL_DEPEND="
|
||||
>=dev-libs/glib-2.0[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
systemtap? ( dev-util/systemtap )
|
||||
xattr? ( sys-apps/attr[static-libs(+)] )"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
sys-libs/libcap-ng[static-libs(+)]
|
||||
>=sys-libs/libseccomp-2.1.0[static-libs(+)]
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
app-accessibility/brltty[static-libs(+)]
|
||||
)
|
||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
bpf? ( dev-libs/libbpf:= )
|
||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||
capstone? ( dev-libs/capstone:= )
|
||||
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||
gnutls? (
|
||||
dev-libs/nettle:=[static-libs(+)]
|
||||
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/gtk+:3
|
||||
vte? ( x11-libs/vte:2.91 )
|
||||
)
|
||||
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)]
|
||||
sys-libs/ncurses:=[static-libs(+)]
|
||||
)
|
||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||
numa? ( sys-process/numactl[static-libs(+)] )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
media-libs/libepoxy[static-libs(+)]
|
||||
media-libs/mesa[static-libs(+)]
|
||||
media-libs/mesa[egl(+),gbm(+)]
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
png? ( media-libs/libpng:0=[static-libs(+)] )
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
rbd? ( sys-cluster/ceph )
|
||||
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
|
||||
sdl? (
|
||||
media-libs/libsdl2[video]
|
||||
media-libs/libsdl2[static-libs(+)]
|
||||
)
|
||||
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
|
||||
slirp? ( net-libs/libslirp[static-libs(+)] )
|
||||
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
||||
snappy? ( app-arch/snappy:= )
|
||||
spice? (
|
||||
>=app-emulation/spice-protocol-0.12.3
|
||||
>=app-emulation/spice-0.12.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev:= )
|
||||
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
|
||||
EDK2_OVMF_VERSION="202202"
|
||||
SEABIOS_VERSION="1.16.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
)
|
||||
sys-firmware/ipxe[qemu]
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
dev-util/meson
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
gtk? ( nls? ( sys-devel/gettext ) )
|
||||
test? (
|
||||
dev-libs/glib[utils]
|
||||
sys-devel/bc
|
||||
)
|
||||
"
|
||||
CDEPEND="
|
||||
!static? (
|
||||
${ALL_DEPEND//\[static-libs(+)]}
|
||||
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
|
||||
)
|
||||
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
"
|
||||
DEPEND="${CDEPEND}
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
||||
static? (
|
||||
${ALL_DEPEND}
|
||||
${SOFTMMU_TOOLS_DEPEND}
|
||||
)
|
||||
static-user? ( ${ALL_DEPEND} )"
|
||||
RDEPEND="${CDEPEND}
|
||||
acct-group/kvm
|
||||
selinux? (
|
||||
sec-policy/selinux-qemu
|
||||
sys-libs/libselinux
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-6.0.0-make.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-strings.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-mips-n32-syscalls.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-loong-stat.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-faccessat2.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
usr/share/qemu/hppa-firmware.img
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
usr/bin/qemu-alpha
|
||||
usr/bin/qemu-arm
|
||||
usr/bin/qemu-cris
|
||||
usr/bin/qemu-m68k
|
||||
usr/bin/qemu-microblaze
|
||||
usr/bin/qemu-microblazeel
|
||||
usr/bin/qemu-mips
|
||||
usr/bin/qemu-mipsel
|
||||
usr/bin/qemu-or1k
|
||||
usr/bin/qemu-ppc
|
||||
usr/bin/qemu-ppc64
|
||||
usr/bin/qemu-sh4
|
||||
usr/bin/qemu-sh4eb
|
||||
usr/bin/qemu-sparc
|
||||
usr/bin/qemu-sparc64
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
kernel module is loaded is to load it on boot.
|
||||
For AMD CPUs the module is called 'kvm-amd'.
|
||||
For Intel CPUs the module is called 'kvm-intel'.
|
||||
Please review /etc/conf.d/modules for how to load these.
|
||||
|
||||
Make sure your user is in the 'kvm' group. Just run
|
||||
$ gpasswd -a <USER> kvm
|
||||
then have <USER> re-login.
|
||||
|
||||
For brand new installs, the default permissions on /dev/kvm might not let
|
||||
you access it. You can tell udev to reset ownership/perms:
|
||||
$ udevadm trigger -c add /dev/kvm
|
||||
|
||||
If you want to register binfmt handlers for qemu user targets:
|
||||
For openrc:
|
||||
# rc-update add qemu-binfmt
|
||||
For systemd:
|
||||
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
else
|
||||
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||
ERROR_KVM_AMD+=" your kernel configuration."
|
||||
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_TUN+=" virtual network device if using -net tap."
|
||||
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||
ERROR_VHOST_NET+=" support"
|
||||
|
||||
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_AMD"
|
||||
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||
fi
|
||||
fi
|
||||
|
||||
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||
|
||||
# Now do the actual checks setup above
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||
eerror "instances are still pointing to it. Please update your"
|
||||
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||
die "update your virt configs to not use qemu-kvm"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check to make sure target lists are kept up-to-date.
|
||||
check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "${var}: ${sorted}"
|
||||
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||
die "sync ${var} to the list of targets"
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
||||
|
||||
# Remove bundled modules
|
||||
rm -r dtc meson roms/*/ slirp || die
|
||||
}
|
||||
|
||||
##
|
||||
# configures qemu based on the build directory and the build type
|
||||
# we are using.
|
||||
#
|
||||
qemu_src_configure() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
local buildtype=$1
|
||||
local builddir="${S}/${buildtype}-build"
|
||||
|
||||
mkdir "${builddir}" || die
|
||||
|
||||
local conf_opts=(
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--bindir=/usr/bin
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
--with-git-submodules=ignore
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
# are enabled), but it's not really worth the hassle. Disable it
|
||||
# all the time to avoid automatically detecting it. #568856
|
||||
--disable-gcrypt
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
|
||||
$(use_enable alsa)
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable jack)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable oss)
|
||||
$(use_enable plugins)
|
||||
$(use_enable pulseaudio pa)
|
||||
$(use_enable selinux)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
# Disable options not used by user targets. This simplifies building
|
||||
# static user targets (USE=static-user) considerably.
|
||||
conf_notuser() {
|
||||
if [[ ${buildtype} == "user" ]] ; then
|
||||
echo "--disable-${2:-$1}"
|
||||
else
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Special case for the malloc flag, because the --disable flag does
|
||||
# not exist and trying like above will break configuring.
|
||||
conf_malloc() {
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
usex "${1}" "--enable-malloc=${1}" ""
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
$(conf_softmmu bpf)
|
||||
$(conf_notuser bzip2)
|
||||
$(conf_notuser capstone)
|
||||
$(conf_notuser curl)
|
||||
$(conf_tools doc docs)
|
||||
$(conf_notuser fdt)
|
||||
$(conf_notuser fuse)
|
||||
$(conf_notuser glusterfs)
|
||||
$(conf_notuser gnutls)
|
||||
$(conf_notuser gnutls nettle)
|
||||
$(conf_notuser gtk)
|
||||
$(conf_notuser infiniband rdma)
|
||||
$(conf_notuser iscsi libiscsi)
|
||||
$(conf_notuser io-uring linux-io-uring)
|
||||
$(conf_malloc jemalloc)
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
$(conf_notuser opengl)
|
||||
$(conf_notuser pam auth-pam)
|
||||
$(conf_notuser png)
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser slirp slirp system)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
# audio options
|
||||
local audio_opts=(
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
)
|
||||
conf_opts+=(
|
||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||
)
|
||||
fi
|
||||
|
||||
case ${buildtype} in
|
||||
user)
|
||||
conf_opts+=(
|
||||
--enable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--disable-tools
|
||||
--disable-cap-ng
|
||||
--disable-seccomp
|
||||
)
|
||||
local static_flag="static-user"
|
||||
;;
|
||||
softmmu)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--enable-system
|
||||
--disable-tools
|
||||
--enable-cap-ng
|
||||
--enable-seccomp
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
tools)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--enable-cap-ng
|
||||
--enable-seccomp
|
||||
--enable-tools
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
esac
|
||||
|
||||
local targets="${buildtype}_targets"
|
||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||
|
||||
# Add support for SystemTAP
|
||||
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
|
||||
|
||||
# We always want to attempt to build with PIE support as it results
|
||||
# in a more secure binary. But it doesn't work with static or if
|
||||
# the current GCC doesn't have PIE support.
|
||||
if use ${static_flag}; then
|
||||
conf_opts+=( --static --disable-pie )
|
||||
else
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Meson will not use a cross-file unless cross_prefix is set.
|
||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local target
|
||||
|
||||
python_setup
|
||||
|
||||
softmmu_targets= softmmu_bins=()
|
||||
user_targets= user_bins=()
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
softmmu_targets+=",${target}-softmmu"
|
||||
softmmu_bins+=( "qemu-system-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
for target in ${IUSE_USER_TARGETS} ; do
|
||||
if use "qemu_user_targets_${target}"; then
|
||||
user_targets+=",${target}-linux-user"
|
||||
user_bins+=( "qemu-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
softmmu_targets=${softmmu_targets#,}
|
||||
user_targets=${user_targets#,}
|
||||
|
||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||
qemu_src_configure "tools"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
pax-mark m */qemu-system-* #515550
|
||||
emake check
|
||||
fi
|
||||
}
|
||||
|
||||
qemu_python_install() {
|
||||
python_domodule "${S}/python/qemu"
|
||||
|
||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||
}
|
||||
|
||||
# Generate binfmt support files.
|
||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||
generate_initd() {
|
||||
local out="${T}/qemu-binfmt"
|
||||
local out_systemd="${T}/qemu.conf"
|
||||
local d="${T}/binfmt.d"
|
||||
|
||||
einfo "Generating qemu binfmt scripts and configuration files"
|
||||
|
||||
# Generate the debian fragments first.
|
||||
mkdir -p "${d}"
|
||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||
--debian \
|
||||
--exportdir "${d}" \
|
||||
--qemu-path "${EPREFIX}/usr/bin" \
|
||||
|| die
|
||||
# Then turn the fragments into a shell script we can source.
|
||||
sed -E -i \
|
||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||
"${d}"/* || die
|
||||
|
||||
# Generate the init.d script by assembling the fragments from above.
|
||||
local f qcpu package interpreter magic mask
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||
for f in "${d}"/qemu-* ; do
|
||||
source "${f}"
|
||||
|
||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||
qcpu=${package#qemu-}
|
||||
case ${qcpu} in
|
||||
arm*) qcpu="arm";;
|
||||
mips*) qcpu="mips";;
|
||||
ppc*) qcpu="ppc";;
|
||||
s390*) qcpu="s390";;
|
||||
sh*) qcpu="sh";;
|
||||
sparc*) qcpu="sparc";;
|
||||
esac
|
||||
|
||||
# we use 'printf' here to be portable across 'sh'
|
||||
# implementations: #679168
|
||||
cat <<EOF >>"${out}"
|
||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||
|
||||
done
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# Install binfmt handler init script for user targets.
|
||||
generate_initd
|
||||
doinitd "${T}/qemu-binfmt"
|
||||
|
||||
# Install binfmt/qemu.conf.
|
||||
insinto "/usr/share/qemu/binfmt.d"
|
||||
doins "${T}/qemu.conf"
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# This might not exist if the test failed. #512010
|
||||
[[ -e check-report.html ]] && dodoc check-report.html
|
||||
|
||||
if use kernel_linux; then
|
||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
python_foreach_impl qemu_python_install
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||
fi
|
||||
|
||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||
pushd "${ED}"/usr/bin >/dev/null || die
|
||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||
popd >/dev/null || die
|
||||
|
||||
# Install config file example for qemu-bridge-helper
|
||||
insinto "/etc/qemu"
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}" || die
|
||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
dostrip -x ${QA_PREBUILT}
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||
fi
|
||||
|
||||
# Remove vgabios since we're using the seavgabios packaged one
|
||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||
fi
|
||||
|
||||
# Remove sgabios since we're using the sgabios packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||
fi
|
||||
|
||||
# Remove iPXE since we're using the iPXE packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||
fi
|
||||
fi
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
firmware_abi_change() {
|
||||
local pv
|
||||
for pv in ${REPLACING_VERSIONS}; do
|
||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||
udev_reload
|
||||
fi
|
||||
|
||||
xdg_icon_cache_update
|
||||
|
||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use pin-upstream-blobs && firmware_abi_change; then
|
||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
ewarn " $(best_version sys-firmware/ipxe)"
|
||||
ewarn " $(best_version sys-firmware/sgabios)"
|
||||
ewarn "This might break resume of hibernated guests (started with a different"
|
||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||
ewarn "guest migration ensure that all"
|
||||
ewarn "hosts run at least"
|
||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_info() {
|
||||
echo "Using:"
|
||||
echo " $(best_version app-emulation/spice-protocol)"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
echo " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
echo " $(best_version sys-firmware/ipxe)"
|
||||
echo " $(best_version sys-firmware/sgabios)"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
udev_reload
|
||||
}
|
@ -1,985 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=ajak
|
||||
QEMU_DOCS_VERSION="${PV}"
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{9,10,11} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.1.0"
|
||||
|
||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||
pax-utils xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
QEMU_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||
EGIT_SUBMODULES=(
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
ui/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_rc/-rc}"
|
||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||
|
||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||
|
||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG}
|
||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||
jack jemalloc +jpeg
|
||||
lzo multipath
|
||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
aarch64
|
||||
alpha
|
||||
arm
|
||||
cris
|
||||
hppa
|
||||
i386
|
||||
loongarch64
|
||||
m68k
|
||||
microblaze
|
||||
microblazeel
|
||||
mips
|
||||
mips64
|
||||
mips64el
|
||||
mipsel
|
||||
nios2
|
||||
or1k
|
||||
ppc
|
||||
ppc64
|
||||
riscv32
|
||||
riscv64
|
||||
s390x
|
||||
sh4
|
||||
sh4eb
|
||||
sparc
|
||||
sparc64
|
||||
x86_64
|
||||
xtensa
|
||||
xtensaeb
|
||||
"
|
||||
IUSE_SOFTMMU_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
avr
|
||||
rx
|
||||
tricore
|
||||
"
|
||||
IUSE_USER_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
aarch64_be
|
||||
armeb
|
||||
hexagon
|
||||
mipsn32
|
||||
mipsn32el
|
||||
ppc64le
|
||||
sparc32plus
|
||||
"
|
||||
|
||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
# Allow no targets to be built so that people can get a tools-only build.
|
||||
# Block USE flag configurations known to not work.
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_arm? ( fdt )
|
||||
qemu_softmmu_targets_microblaze? ( fdt )
|
||||
qemu_softmmu_targets_mips64el? ( fdt )
|
||||
qemu_softmmu_targets_ppc64? ( fdt )
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
qemu_softmmu_targets_x86_64? ( fdt )
|
||||
sdl-image? ( sdl )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
|
||||
static-user? ( !plugins )
|
||||
vhost-user-fs? ( caps seccomp )
|
||||
virgl? ( opengl )
|
||||
virtfs? ( caps xattr )
|
||||
vnc? ( gnutls )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static !static-user )
|
||||
"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# and user/softmmu targets (qemu-*, qemu-system-*).
|
||||
#
|
||||
# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
|
||||
#
|
||||
# The attr lib isn't always linked in (although the USE flag is always
|
||||
# respected). This is because qemu supports using the C library's API
|
||||
# when available rather than always using the external library.
|
||||
ALL_DEPEND="
|
||||
>=dev-libs/glib-2.0[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
systemtap? ( dev-util/systemtap )
|
||||
xattr? ( sys-apps/attr[static-libs(+)] )"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
app-accessibility/brltty[static-libs(+)]
|
||||
)
|
||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
bpf? ( dev-libs/libbpf:= )
|
||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||
capstone? ( dev-libs/capstone:= )
|
||||
caps? ( sys-libs/libcap-ng[static-libs(+)] )
|
||||
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||
gnutls? (
|
||||
dev-libs/nettle:=[static-libs(+)]
|
||||
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/gtk+:3
|
||||
vte? ( x11-libs/vte:2.91 )
|
||||
)
|
||||
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)]
|
||||
sys-libs/ncurses:=[static-libs(+)]
|
||||
)
|
||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||
numa? ( sys-process/numactl[static-libs(+)] )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
media-libs/libepoxy[static-libs(+)]
|
||||
media-libs/mesa[static-libs(+)]
|
||||
media-libs/mesa[egl(+),gbm(+)]
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
png? ( media-libs/libpng:0=[static-libs(+)] )
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
rbd? ( sys-cluster/ceph )
|
||||
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
|
||||
sdl? (
|
||||
media-libs/libsdl2[video]
|
||||
media-libs/libsdl2[static-libs(+)]
|
||||
)
|
||||
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
|
||||
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
|
||||
slirp? ( net-libs/libslirp[static-libs(+)] )
|
||||
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
||||
snappy? ( app-arch/snappy:= )
|
||||
spice? (
|
||||
>=app-emulation/spice-protocol-0.12.3
|
||||
>=app-emulation/spice-0.12.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev:= )
|
||||
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
|
||||
EDK2_OVMF_VERSION="202202"
|
||||
SEABIOS_VERSION="1.16.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
)
|
||||
sys-firmware/ipxe[qemu]
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
dev-util/meson
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
gtk? ( nls? ( sys-devel/gettext ) )
|
||||
test? (
|
||||
dev-libs/glib[utils]
|
||||
sys-devel/bc
|
||||
)
|
||||
"
|
||||
CDEPEND="
|
||||
!static? (
|
||||
${ALL_DEPEND//\[static-libs(+)]}
|
||||
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
|
||||
)
|
||||
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
"
|
||||
DEPEND="${CDEPEND}
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
||||
static? (
|
||||
${ALL_DEPEND}
|
||||
${SOFTMMU_TOOLS_DEPEND}
|
||||
)
|
||||
static-user? ( ${ALL_DEPEND} )"
|
||||
RDEPEND="${CDEPEND}
|
||||
acct-group/kvm
|
||||
selinux? (
|
||||
sec-policy/selinux-qemu
|
||||
sys-libs/libselinux
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-6.0.0-make.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-strings.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
usr/share/qemu/hppa-firmware.img
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
usr/bin/qemu-alpha
|
||||
usr/bin/qemu-arm
|
||||
usr/bin/qemu-cris
|
||||
usr/bin/qemu-m68k
|
||||
usr/bin/qemu-microblaze
|
||||
usr/bin/qemu-microblazeel
|
||||
usr/bin/qemu-mips
|
||||
usr/bin/qemu-mipsel
|
||||
usr/bin/qemu-or1k
|
||||
usr/bin/qemu-ppc
|
||||
usr/bin/qemu-ppc64
|
||||
usr/bin/qemu-sh4
|
||||
usr/bin/qemu-sh4eb
|
||||
usr/bin/qemu-sparc
|
||||
usr/bin/qemu-sparc64
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
kernel module is loaded is to load it on boot.
|
||||
For AMD CPUs the module is called 'kvm-amd'.
|
||||
For Intel CPUs the module is called 'kvm-intel'.
|
||||
Please review /etc/conf.d/modules for how to load these.
|
||||
|
||||
Make sure your user is in the 'kvm' group. Just run
|
||||
$ gpasswd -a <USER> kvm
|
||||
then have <USER> re-login.
|
||||
|
||||
For brand new installs, the default permissions on /dev/kvm might not let
|
||||
you access it. You can tell udev to reset ownership/perms:
|
||||
$ udevadm trigger -c add /dev/kvm
|
||||
|
||||
If you want to register binfmt handlers for qemu user targets:
|
||||
For openrc:
|
||||
# rc-update add qemu-binfmt
|
||||
For systemd:
|
||||
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
else
|
||||
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||
ERROR_KVM_AMD+=" your kernel configuration."
|
||||
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_TUN+=" virtual network device if using -net tap."
|
||||
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||
ERROR_VHOST_NET+=" support"
|
||||
|
||||
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_AMD"
|
||||
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||
fi
|
||||
fi
|
||||
|
||||
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||
|
||||
# Now do the actual checks setup above
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||
eerror "instances are still pointing to it. Please update your"
|
||||
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||
die "update your virt configs to not use qemu-kvm"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check to make sure target lists are kept up-to-date.
|
||||
check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "${var}: ${sorted}"
|
||||
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||
die "sync ${var} to the list of targets"
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
||||
|
||||
# Remove bundled modules
|
||||
rm -r dtc meson roms/*/ slirp || die
|
||||
}
|
||||
|
||||
##
|
||||
# configures qemu based on the build directory and the build type
|
||||
# we are using.
|
||||
#
|
||||
qemu_src_configure() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
local buildtype=$1
|
||||
local builddir="${S}/${buildtype}-build"
|
||||
|
||||
mkdir "${builddir}" || die
|
||||
|
||||
local conf_opts=(
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--bindir=/usr/bin
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
--with-git-submodules=ignore
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
# are enabled), but it's not really worth the hassle. Disable it
|
||||
# all the time to avoid automatically detecting it. #568856
|
||||
--disable-gcrypt
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
|
||||
$(use_enable alsa)
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable jack)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable oss)
|
||||
$(use_enable plugins)
|
||||
$(use_enable pulseaudio pa)
|
||||
$(use_enable selinux)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
# Disable options not used by user targets. This simplifies building
|
||||
# static user targets (USE=static-user) considerably.
|
||||
conf_notuser() {
|
||||
if [[ ${buildtype} == "user" ]] ; then
|
||||
echo "--disable-${2:-$1}"
|
||||
else
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Special case for the malloc flag, because the --disable flag does
|
||||
# not exist and trying like above will break configuring.
|
||||
conf_malloc() {
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
usex "${1}" "--enable-malloc=${1}" ""
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
$(conf_softmmu bpf)
|
||||
$(conf_notuser bzip2)
|
||||
$(conf_notuser capstone)
|
||||
$(conf_notuser caps cap-ng)
|
||||
$(conf_notuser curl)
|
||||
$(conf_tools doc docs)
|
||||
$(conf_notuser fdt)
|
||||
$(conf_notuser fuse)
|
||||
$(conf_notuser glusterfs)
|
||||
$(conf_notuser gnutls)
|
||||
$(conf_notuser gnutls nettle)
|
||||
$(conf_notuser gtk)
|
||||
$(conf_notuser infiniband rdma)
|
||||
$(conf_notuser iscsi libiscsi)
|
||||
$(conf_notuser io-uring linux-io-uring)
|
||||
$(conf_malloc jemalloc)
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
$(conf_notuser opengl)
|
||||
$(conf_notuser pam auth-pam)
|
||||
$(conf_notuser png)
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser seccomp)
|
||||
$(conf_notuser slirp slirp system)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
# audio options
|
||||
local audio_opts=(
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
)
|
||||
conf_opts+=(
|
||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||
)
|
||||
fi
|
||||
|
||||
case ${buildtype} in
|
||||
user)
|
||||
conf_opts+=(
|
||||
--enable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--disable-tools
|
||||
)
|
||||
local static_flag="static-user"
|
||||
;;
|
||||
softmmu)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--enable-system
|
||||
--disable-tools
|
||||
)
|
||||
local static_flag="static"
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS}; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
conf_opts+=(
|
||||
# For some reason, adding this with the setting set
|
||||
# to on *or* off makes the build always fail.
|
||||
# --with-devices-${target}=gentoo
|
||||
)
|
||||
fi
|
||||
done
|
||||
;;
|
||||
tools)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--enable-tools
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
esac
|
||||
|
||||
local targets="${buildtype}_targets"
|
||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||
|
||||
# Add support for SystemTAP
|
||||
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
|
||||
|
||||
# We always want to attempt to build with PIE support as it results
|
||||
# in a more secure binary. But it doesn't work with static or if
|
||||
# the current GCC doesn't have PIE support.
|
||||
if use ${static_flag}; then
|
||||
conf_opts+=( --static --disable-pie )
|
||||
else
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Meson will not use a cross-file unless cross_prefix is set.
|
||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local target
|
||||
|
||||
python_setup
|
||||
|
||||
softmmu_targets= softmmu_bins=()
|
||||
user_targets= user_bins=()
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
softmmu_targets+=",${target}-softmmu"
|
||||
softmmu_bins+=( "qemu-system-${target}" )
|
||||
|
||||
# Needed to rework vhost-user-fs handling thanks to https://gitlab.com/qemu-project/qemu/-/commit/5166dab
|
||||
# The option was converted into being configurable by
|
||||
# Kconfig's. So, to enable it, we insert the necessary
|
||||
# options into each arch's softmmu target gentoo.mak file,
|
||||
# then configure with --with-devices-${target}=gentoo.
|
||||
if use vhost-user-fs; then
|
||||
echo "CONFIG_VHOST_USER_FS=y for ${target}-softmmu" || die
|
||||
echo "CONFIG_VIRTIO=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
|
||||
echo "CONFIG_VHOST_USER_FS=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
|
||||
else
|
||||
echo "CONFIG_VHOST_USER_FS=n for ${target}-softmmu" || die
|
||||
echo "CONFIG_VIRTIO=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
|
||||
echo "CONFIG_VHOST_USER_FS=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
for target in ${IUSE_USER_TARGETS} ; do
|
||||
if use "qemu_user_targets_${target}"; then
|
||||
user_targets+=",${target}-linux-user"
|
||||
user_bins+=( "qemu-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
softmmu_targets=${softmmu_targets#,}
|
||||
user_targets=${user_targets#,}
|
||||
|
||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||
qemu_src_configure "tools"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
pax-mark m */qemu-system-* #515550
|
||||
emake check
|
||||
fi
|
||||
}
|
||||
|
||||
qemu_python_install() {
|
||||
python_domodule "${S}/python/qemu"
|
||||
|
||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||
}
|
||||
|
||||
# Generate binfmt support files.
|
||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||
generate_initd() {
|
||||
local out="${T}/qemu-binfmt"
|
||||
local out_systemd="${T}/qemu.conf"
|
||||
local d="${T}/binfmt.d"
|
||||
|
||||
einfo "Generating qemu binfmt scripts and configuration files"
|
||||
|
||||
# Generate the debian fragments first.
|
||||
mkdir -p "${d}"
|
||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||
--debian \
|
||||
--exportdir "${d}" \
|
||||
--qemu-path "${EPREFIX}/usr/bin" \
|
||||
|| die
|
||||
# Then turn the fragments into a shell script we can source.
|
||||
sed -E -i \
|
||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||
"${d}"/* || die
|
||||
|
||||
# Generate the init.d script by assembling the fragments from above.
|
||||
local f qcpu package interpreter magic mask
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||
for f in "${d}"/qemu-* ; do
|
||||
source "${f}"
|
||||
|
||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||
qcpu=${package#qemu-}
|
||||
case ${qcpu} in
|
||||
arm*) qcpu="arm";;
|
||||
mips*) qcpu="mips";;
|
||||
ppc*) qcpu="ppc";;
|
||||
s390*) qcpu="s390";;
|
||||
sh*) qcpu="sh";;
|
||||
sparc*) qcpu="sparc";;
|
||||
esac
|
||||
|
||||
# we use 'printf' here to be portable across 'sh'
|
||||
# implementations: #679168
|
||||
cat <<EOF >>"${out}"
|
||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||
|
||||
done
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# Install binfmt handler init script for user targets.
|
||||
generate_initd
|
||||
doinitd "${T}/qemu-binfmt"
|
||||
|
||||
# Install binfmt/qemu.conf.
|
||||
insinto "/usr/share/qemu/binfmt.d"
|
||||
doins "${T}/qemu.conf"
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# This might not exist if the test failed. #512010
|
||||
[[ -e check-report.html ]] && dodoc check-report.html
|
||||
|
||||
if use kernel_linux; then
|
||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
python_foreach_impl qemu_python_install
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||
fi
|
||||
|
||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||
pushd "${ED}"/usr/bin >/dev/null || die
|
||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||
popd >/dev/null || die
|
||||
|
||||
# Install config file example for qemu-bridge-helper
|
||||
insinto "/etc/qemu"
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}" || die
|
||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
dostrip -x ${QA_PREBUILT}
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||
fi
|
||||
|
||||
# Remove vgabios since we're using the seavgabios packaged one
|
||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||
fi
|
||||
|
||||
# Remove sgabios since we're using the sgabios packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||
fi
|
||||
|
||||
# Remove iPXE since we're using the iPXE packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||
fi
|
||||
fi
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
firmware_abi_change() {
|
||||
local pv
|
||||
for pv in ${REPLACING_VERSIONS}; do
|
||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||
udev_reload
|
||||
fi
|
||||
|
||||
xdg_icon_cache_update
|
||||
|
||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use pin-upstream-blobs && firmware_abi_change; then
|
||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
ewarn " $(best_version sys-firmware/ipxe)"
|
||||
ewarn " $(best_version sys-firmware/sgabios)"
|
||||
ewarn "This might break resume of hibernated guests (started with a different"
|
||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||
ewarn "guest migration ensure that all"
|
||||
ewarn "hosts run at least"
|
||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_info() {
|
||||
echo "Using:"
|
||||
echo " $(best_version app-emulation/spice-protocol)"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
echo " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
echo " $(best_version sys-firmware/ipxe)"
|
||||
echo " $(best_version sys-firmware/sgabios)"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
udev_reload
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST proton-wine-7.0-5.tar.gz 45724439 BLAKE2B d5ad4f00ca658b31c562c2ff4eb5ae33707126eee44ccfd9f33084ab5d184743034541efe3f9d18eb2a6941111da4c5134555f93769e8370b118b6f04e00ae1e SHA512 b16ace9c0bfa6d2685ea53617be2bba7e82c5c8da604f9e188bf782219785cfaed4317578c4314f2bde89d363a2e115f3bceeaa69d4a85f078a5fdb1ec64d33b
|
||||
DIST proton-wine-7.0-6.tar.gz 45780326 BLAKE2B f140fcfdd1a47904c34a49d0795fa3326d7cf0d3fac8d6c2ef2a4926181a46223f43a2d1ca96c543e800c8c46b2a3cc51ae306a029d68a42608876e869e177d5 SHA512 793bbe2b23042301a1b518717d78cfff01eaffa0388883d010659a45779b9136d33cfac63f0c3fbb1e458953a954b423eb70ac4fa87633352267db890ceb2fef
|
||||
|
@ -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
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
DIST wine-7.19.tar.xz 28502612 BLAKE2B b7b270656955c7a1e1d84e8bbc7e3e8abff5aedadb5e8a458f0b1109d746875a359f3d2f53b1c9c6caae65d17fd1d205466cd3a884034a8bad6afe9456f13b5d SHA512 f76dbda97cccad4c0f249b5dd4e8d48afa832134f1704ae228650bb73ee82823e628b23bd53a3f8729e06a8933597ff2fffa5551f156fc9c9181b67c066747d5
|
||||
DIST wine-7.22.tar.xz 28974052 BLAKE2B c86466964817b916ee8f7b687f193eda8bdd3fb17152ab1565971e36f43b12b540033ac1c5fa5d15576041febd32cf1ea2955732c5386debcbda46fb3acca0f1 SHA512 bf58a5b98bef5b291aff1eca3f94c28da95990e4c8da9af5e9e28b9480d57163d088b501b0c1bca5b568bf586dd9933cdc1ea1f371b78d95c94e2d25d0a65efc
|
||||
DIST wine-8.0.tar.xz 29054044 BLAKE2B baf8f96b665119c9f38a148a2472dbe8f6ca8d4641d9d09d48cb72cb4de2585c274b8b7981c2fa622ead6da2f087c57652e9b48edc8a17c0cfd6be9a36732f02 SHA512 53ba813b260a65a271ec575822725b97631f60038fb026dcc0fe66862711eedcc29a8feb29ff54ae4f64458f85c290d8f3838eff5e4c77a5420a7d2b951fef77
|
||||
DIST wine-8.1.tar.xz 29083080 BLAKE2B 6eed2128627f15159ad80588ebe839de76cb9a536797d7da136b61f56033ece60c60208702b7928cdb297c1d8730baae0d6bb0ac7a0473c34ed44b5c5edaaec5 SHA512 3f0477c26f293cf928acbdae2ffb98740ac227a605ec90f3ab3d35c0dbca2037529ff4e4de0b69cc975579ad14dc2fb8b52e050cfd99cffcc627418cf8cb4346
|
||||
DIST wine-staging-7.19.tar.gz 9523048 BLAKE2B e53fd47af493cbdc4542f908a39557324d70ad67ff2e06c80296c006a63518e43988750cab2f4d3d9197fc9c8a1e61ed4d96bcc310b82b6cfc8ec12b941f1c5c SHA512 c51cb18c4ae00eccf414f5edda18ebf363674ba7cfa95da135b3a43b7c012c086d454d6ac32b22d98e611bb87e55c3e1ee95571a4a0c9713028b5ac38e8aed3f
|
||||
DIST wine-staging-7.22.tar.gz 9528424 BLAKE2B e41f24f924117259715505f4f9998ef23a657bca5b0e285feb7f9fd732e6b566a495f48ec59af09b1d4d51db522b051028f6cbba748256e939929fbf978f0e44 SHA512 5fdac19ec290c67767fac71abe07d9350ec431919c67a0f2d2df18ced20f1d3dddb921b3d5586d03add187c6281e1a691cc220e8d2d5ad4eeb94015721479d65
|
||||
DIST wine-staging-8.0.tar.gz 9529620 BLAKE2B c9540195ea885d9f1e980232b0af471e92c61eb079cae35fdb3af5c13d4660b3466f751772440e38f15874082db296d16d1f1d68827a505b2dd949617eda0203 SHA512 76a729d7ced1ff634ddb455ddfaa66ca103b652f43cd152b57ada7431bb5fbb74f5e92bf2f4f329b6df6f5908130afad84e609cbce6df645d6cf8131e9b949f9
|
||||
DIST wine-staging-8.1.tar.gz 9527176 BLAKE2B 363243a4a04bc767099b74f3b7613463d99da82996c176e68b9233cbf51c87ecd143840f7729a3edc31ac004b771b89ec3d57a0276b26e30d475feb273d09257 SHA512 c5c3111b27de7d3bf1d7a3a53f33e8d78c5006f22ff0361f77392455fa69b0afd7c58406515ace04b2df7e1dfb20e3adf9d874e5e8be09c9032c1c1aa31fe696
|
||||
|
@ -0,0 +1,355 @@
|
||||
# Copyright 2022-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MULTILIB_COMPAT=( abi_x86_{32,64} )
|
||||
inherit autotools flag-o-matic multilib multilib-build toolchain-funcs wrapper
|
||||
|
||||
WINE_GECKO=2.47.3
|
||||
WINE_MONO=7.4.0
|
||||
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
|
||||
WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
|
||||
else
|
||||
(( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
|
||||
SRC_URI="
|
||||
https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz
|
||||
https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="-* ~amd64 ~x86"
|
||||
fi
|
||||
S="${WORKDIR}/wine-${PV}"
|
||||
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
|
||||
HOMEPAGE="https://wiki.winehq.org/Wine-Staging"
|
||||
|
||||
LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
|
||||
SLOT="${PV}"
|
||||
IUSE="
|
||||
+X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
|
||||
llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
|
||||
+gstreamer kerberos +mingw +mono netapi nls odbc opencl +opengl
|
||||
osmesa pcap perl pulseaudio samba scanner +sdl selinux +ssl
|
||||
+truetype udev udisks +unwind usb v4l +vulkan +xcomposite xinerama"
|
||||
REQUIRED_USE="
|
||||
X? ( truetype )
|
||||
crossdev-mingw? ( mingw )" # bug #551124 for truetype
|
||||
|
||||
# tests are non-trivial to run, can hang easily, don't play well with
|
||||
# sandbox, and several need real opengl/vulkan or network access
|
||||
RESTRICT="test"
|
||||
|
||||
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
|
||||
WINE_DLOPEN_DEPEND="
|
||||
X? (
|
||||
x11-libs/libXcursor[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXfixes[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrandr[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXrender[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
|
||||
opengl? (
|
||||
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
|
||||
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
|
||||
)
|
||||
xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
|
||||
xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
cups? ( net-print/cups[${MULTILIB_USEDEP}] )
|
||||
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
|
||||
kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
|
||||
netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
|
||||
odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
|
||||
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
|
||||
ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
|
||||
truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
|
||||
udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
|
||||
v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
|
||||
vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )"
|
||||
WINE_COMMON_DEPEND="
|
||||
${WINE_DLOPEN_DEPEND}
|
||||
X? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXext[${MULTILIB_USEDEP}]
|
||||
)
|
||||
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
|
||||
capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
|
||||
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
|
||||
gstreamer? (
|
||||
dev-libs/glib:2[${MULTILIB_USEDEP}]
|
||||
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
|
||||
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
|
||||
)
|
||||
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
|
||||
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
|
||||
pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
|
||||
scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
|
||||
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
|
||||
unwind? (
|
||||
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
|
||||
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
|
||||
)
|
||||
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
|
||||
RDEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
app-emulation/wine-desktop-common
|
||||
dos? ( games-emulation/dosbox )
|
||||
gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
|
||||
gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
|
||||
mono? ( app-emulation/wine-mono:${WINE_MONO} )
|
||||
perl? (
|
||||
dev-lang/perl
|
||||
dev-perl/XML-LibXML
|
||||
)
|
||||
samba? ( net-fs/samba[winbind] )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )"
|
||||
DEPEND="
|
||||
${WINE_COMMON_DEPEND}
|
||||
sys-kernel/linux-headers
|
||||
X? ( x11-base/xorg-proto )"
|
||||
BDEPEND="
|
||||
dev-lang/perl
|
||||
sys-devel/binutils
|
||||
sys-devel/bison
|
||||
sys-devel/flex
|
||||
virtual/pkgconfig
|
||||
mingw? ( !crossdev-mingw? (
|
||||
>=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
|
||||
) )
|
||||
nls? ( sys-devel/gettext )"
|
||||
IDEPEND=">=app-eselect/eselect-wine-2"
|
||||
|
||||
QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-7.17-noexecstack.patch
|
||||
"${FILESDIR}"/${PN}-7.20-unwind.patch
|
||||
)
|
||||
|
||||
pkg_pretend() {
|
||||
[[ ${MERGE_TYPE} == binary ]] && return
|
||||
|
||||
if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
|
||||
local mingw=-w64-mingw32
|
||||
for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
|
||||
if ! type -P ${mingw}-gcc >/dev/null; then
|
||||
eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
|
||||
eerror "yourself by installing sys-devel/crossdev then running:"
|
||||
eerror
|
||||
eerror " crossdev --target ${mingw}"
|
||||
eerror
|
||||
eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
|
||||
die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == *9999 ]]; then
|
||||
EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
|
||||
git-r3_src_unpack
|
||||
|
||||
EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
|
||||
EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
|
||||
EGIT_CHECKOUT_DIR=${S}
|
||||
einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
|
||||
git-r3_src_unpack
|
||||
else
|
||||
default
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local staging=(
|
||||
./patchinstall.sh DESTDIR="${S}"
|
||||
--all
|
||||
--backend=eapply
|
||||
--no-autoconf
|
||||
-W winemenubuilder-Desktop_Icon_Path #652176
|
||||
${MY_WINE_STAGING_CONF}
|
||||
)
|
||||
|
||||
# source patcher in a subshell so can use eapply as a backend
|
||||
ebegin "Running ${staging[*]}"
|
||||
( cd ../${P}/patches && . "${staging[@]}" )
|
||||
eend ${?} || die "Failed to apply the patchset"
|
||||
|
||||
# sanity check, bumping these has a history of oversights
|
||||
local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
|
||||
dlls/appwiz.cpl/addons.c || die)
|
||||
if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
|
||||
local gmfatal=
|
||||
[[ ${PV} == *9999 ]] && gmfatal=nonfatal
|
||||
${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
|
||||
fi
|
||||
|
||||
default
|
||||
|
||||
# ensure .desktop calls this variant + slot
|
||||
sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
|
||||
|
||||
# always update for patches (including user's wrt #432348)
|
||||
eautoreconf
|
||||
tools/make_requests || die # perl
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
WINE_PREFIX=/usr/lib/${P}
|
||||
WINE_DATADIR=/usr/share/${P}
|
||||
|
||||
local conf=(
|
||||
--prefix="${EPREFIX}"${WINE_PREFIX}
|
||||
--datadir="${EPREFIX}"${WINE_DATADIR}
|
||||
--includedir="${EPREFIX}"/usr/include/${P}
|
||||
--libdir="${EPREFIX}"${WINE_PREFIX}
|
||||
--mandir="${EPREFIX}"${WINE_DATADIR}/man
|
||||
$(use_enable gecko mshtml)
|
||||
$(use_enable mono mscoree)
|
||||
--disable-tests
|
||||
$(use_with X x)
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with cups)
|
||||
$(use_with fontconfig)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gstreamer)
|
||||
$(use_with kerberos gssapi)
|
||||
$(use_with kerberos krb5)
|
||||
$(use_with mingw)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
--without-oss # media-sound/oss is not packaged (OSSv4)
|
||||
$(use_with pcap)
|
||||
$(use_with pulseaudio pulse)
|
||||
$(use_with scanner sane)
|
||||
$(use_with sdl)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with udev)
|
||||
$(use_with udisks dbus) # dbus is only used for udisks
|
||||
$(use_with unwind)
|
||||
$(use_with usb)
|
||||
$(use_with v4l v4l2)
|
||||
$(use_with vulkan)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(usev !odbc ac_cv_lib_soname_odbc=)
|
||||
)
|
||||
|
||||
tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
|
||||
filter-lto # build failure
|
||||
use mingw || filter-flags -fno-plt # build failure
|
||||
use custom-cflags || strip-flags # can break in obscure ways at runtime
|
||||
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
|
||||
|
||||
# temporary workaround for tc-ld-force-bfd not yet enforcing with mold
|
||||
# https://github.com/gentoo/gentoo/pull/28355
|
||||
[[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
|
||||
append-ldflags -fuse-ld=bfd
|
||||
|
||||
# build using upstream's way (--with-wine64)
|
||||
# order matters: configure+compile 64->32, install 32->64
|
||||
local -i bits
|
||||
for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
|
||||
(
|
||||
einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
|
||||
|
||||
mkdir ../build${bits} || die
|
||||
cd ../build${bits} || die
|
||||
|
||||
pe_arch=i386
|
||||
if (( bits == 64 )); then
|
||||
pe_arch=x86_64
|
||||
: "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
|
||||
conf+=( --enable-win64 )
|
||||
elif use amd64; then
|
||||
conf+=(
|
||||
$(usev abi_x86_64 --with-wine64=../build64)
|
||||
TARGETFLAGS=-m32 # for widl
|
||||
)
|
||||
# _setup is optional, but use over Wine's auto-detect (+#472038)
|
||||
multilib_toolchain_setup x86
|
||||
fi
|
||||
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
|
||||
|
||||
if use mingw; then
|
||||
# CROSSCC is no longer recognized by Wine, but still use for now
|
||||
# (future handling for CROSS* variables is subject to changes)
|
||||
conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
|
||||
|
||||
# use *FLAGS for mingw, but strip unsupported
|
||||
: "${CROSSCFLAGS:=$(
|
||||
# >=wine-7.21 configure.ac no longer adds -fno-strict by mistake
|
||||
append-cflags '-fno-strict-aliasing'
|
||||
filter-flags '-fstack-clash-protection' #758914
|
||||
filter-flags '-fstack-protector*' #870136
|
||||
filter-flags '-mfunction-return=thunk*' #878849
|
||||
CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
|
||||
: "${CROSSLDFLAGS:=$(
|
||||
filter-flags '-fuse-ld=*'
|
||||
CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
|
||||
export CROSS{C,LD}FLAGS
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} econf "${conf[@]}"
|
||||
)
|
||||
done
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
use abi_x86_64 && emake -C ../build64 # do first
|
||||
use abi_x86_32 && emake -C ../build32
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
|
||||
use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
|
||||
|
||||
# symlink for plain 'wine' and install its man pages if 64bit-only #404331
|
||||
if use abi_x86_64 && use !abi_x86_32; then
|
||||
dosym wine64 ${WINE_PREFIX}/bin/wine
|
||||
dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
|
||||
local man
|
||||
for man in ../build64/loader/wine.*man; do
|
||||
: "${man##*/wine}"
|
||||
: "${_%.*}"
|
||||
insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
|
||||
newins ${man} wine.1
|
||||
done
|
||||
fi
|
||||
|
||||
use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
|
||||
"${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
|
||||
|
||||
# create variant wrappers for eselect-wine
|
||||
local bin
|
||||
for bin in "${ED}"${WINE_PREFIX}/bin/*; do
|
||||
make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
|
||||
done
|
||||
|
||||
# don't let portage try to strip PE files with the wrong
|
||||
# strip executable and instead handle it here (saves ~120MB)
|
||||
if use mingw; then
|
||||
dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
|
||||
use debug ||
|
||||
find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
|
||||
-exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
|
||||
fi
|
||||
|
||||
dodoc ANNOUNCE AUTHORS README* documentation/README*
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
eselect wine update --if-unset || die
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
eselect wine update --if-unset || die
|
||||
}
|
Binary file not shown.
@ -1,2 +1,2 @@
|
||||
DIST github-exporter-1.0.2-deps.tar.xz 6692672 BLAKE2B 7b0d32b116d7661c89271c674c01680e7cf5b4af83e7eebf4d069a34696fffdf21c57f376acce02922d8c02a8238d967115d561cca4dec1437efb561b5bb3661 SHA512 4c3c24ab3cdc8723f47226f90bdaeff2b5d92d38184bfdc230351db74a172c3dcb9fb4bd3c240a70a15e71eb0ad782c579f3fa3bb0aff105999aa3f4a6110c1e
|
||||
DIST github-exporter-1.0.2.tar.gz 20534 BLAKE2B 344e01adfca6afade30598305ba388878ddfb3a7e277dc95b87bb5a409bc269b4bfce7ba178ac155f3cd06f72fcf69cf8c38c898eaf391e85ce122618c707fcd SHA512 98326a8c33a7b1e3e7d4106bdd58d07ec34a9f56bce5e4caefe07ba31ac50e2c98bf849aa60cf9d5445afd02d3d9c899a3cb59eddf45635130853d740b3d6347
|
||||
DIST github-exporter-1.0.3-deps.tar.xz 7786648 BLAKE2B 1dd1876f144e95602131f6f0ec11f4189a88a56821f4ee812b906a1d6d8494651465e416c409a998b19b48081ec8c53d5f11a51f8292002cb9fc50fc13fc4e81 SHA512 247b80369efe54e838868b0c94075031a4430d03f1c8ffefb686d94a6de70f5f288f79459a14f9c1331d2f1a3f9e865e5f7cbd658dc6f01bc7c6e893b5305af2
|
||||
DIST github-exporter-1.0.3.tar.gz 22089 BLAKE2B 69ac6a71fa8872c08cb24b6fa3e0aa79a8d49fdc626606f5ae1265cb654f73a320d53c1f934f3b2a116c713412f0cb278e27ed892da19b54ff09405abba5bfc4 SHA512 9b3ab36dc8c76e844afdb7f36099dca86f358072fb0ccc134e4ba6754b2a84122b700bb92607014eb2e21e1e3f3889f842e82cd612e66d223e31aef60d123220
|
||||
|
@ -1,2 +1 @@
|
||||
DIST prom2json-0.1.0_p20170523.tar.gz 129179 BLAKE2B ef0e42e340d53894c31bff7018b668d8575fc3568584a43dc308955665ac6f59dbabf2d4605bc2a66957df57a29ebb7b3a4eef1f99537eefc2805a5ffd86904f SHA512 824f4c43f4a167dc7dde2f11e84cf482e5cdfa26ab11caf08a5461d525543c3491180f54694c4ae61fdd5dc9763ff16f6e29b332a64dc3ac52fdb7b9c0902571
|
||||
DIST prom2json-1.3.0.tar.gz 1646893 BLAKE2B 9b8fcfa4a3e45ee08a57016fa6a7611604cbb578f162f0bf7ff8338f345f98788b75c3ac047ffca95b62020e972c302bc1c44f2f7f00240cfd978f73b8d9c829 SHA512 8f02c7b2616d915e2b4ff5f195a8c2eff89d18417f7396dc02d2aa4cf34711358b0beef6effae9b42a3d6f4b0616c5d3ab995a73ab9e37a4a0ec230adff6f249
|
||||
|
@ -1,38 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit golang-build golang-vcs-snapshot
|
||||
|
||||
EGO_PN="github.com/prometheus/${PN}"
|
||||
EGIT_COMMIT="4a7436442837da72f9e211d99f0145dff3246b66"
|
||||
ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
DESCRIPTION="A tool to scrape a Prometheus client and dump the result as JSON"
|
||||
HOMEPAGE="https://github.com/prometheus/prom2json"
|
||||
SRC_URI="${ARCHIVE_URI}"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
DEPEND="dev-util/promu"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed -i -e "s/{{.Revision}}/${EGIT_COMMIT:0:7}/" src/${EGO_PN}/.promu.yml || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
pushd src/${EGO_PN} || die
|
||||
mkdir -p bin || die
|
||||
GOPATH="${S}" promu build -v --prefix ${PN} || die
|
||||
popd || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
pushd src/${EGO_PN} || die
|
||||
dobin ${PN}/${PN}
|
||||
dodoc {README,CONTRIBUTING}.md
|
||||
popd || die
|
||||
}
|
@ -1,2 +1,4 @@
|
||||
DIST snmp_exporter-0.20.0-deps.tar.xz 167938880 BLAKE2B 26db1effd4c74c1d8ad063e390e3ebc2f652bc901b679a70dfa2fda479ead9622eb3bf729f24a3a0088d9b154be108e472218a84109ef23d8413e0db2f8afc9e SHA512 f2b2e72967bd7255abf5f808d1dbb5691755d232b32e0c833ebc9b74a469b5c2b704afb7f32c1c591653a4ad6162efc5ec13345e9f5e2d08c7f01d24bdddf3a1
|
||||
DIST snmp_exporter-0.20.0.tar.gz 290899 BLAKE2B 81c2c6e8b1f61fe322cf040910744857f0628b61172774069675f5702d7e8dcc443a5567d5fe9d3e26139fee87c3cae8ed5fb7ce21c13b8a0f0cab1cd76384aa SHA512 fe09033e713f12b5a6ad79445def55c8d94c75cbee5e4e7c4683e853c1a8335005462d607e0c7306d2ee6e70178edeb9b6cff0c35aa6d36a4d0fa5ce45cedb51
|
||||
DIST snmp_exporter-0.21.0-deps.tar.xz 173870408 BLAKE2B 8bd9699a1ecefcfb90784892e1329919baa06349cde89106a4fa4f7543672aa4de907781183baf714aceb6b1dba5c748130e1b98577830011fed40833bedda20 SHA512 d267e596b2a5c11844aaae66d75bc40c7bcc0263bc04ad2359d29450f44c7a4be263bc453a35a75250424144b4afb4ae15afe9988f95c922d20ec975827fc88e
|
||||
DIST snmp_exporter-0.21.0.tar.gz 322098 BLAKE2B 5e28186dc5da1c38be0bc2a8801c56a2a32c835886b7a4d3a8a7add91960679d250bc91e5b75fdb92fb6237d53ca2b5114aa2d6b869c1db9cc371aad6841b153 SHA512 5ebb629ebc48f38035c031f2ebd7109ee681499556771792a3cddc671561b119d144a5fd9f4e51ceaccb58dc50e3852d185ee0c7f1ac57d6307d4936dc1a45b4
|
||||
|
@ -0,0 +1,52 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
SNMP_EXPORTER_COMMIT=0d8c3527
|
||||
inherit go-module
|
||||
|
||||
DESCRIPTION="Prometheus exporter for snmp metrics"
|
||||
HOMEPAGE="https://github.com/prometheus/snmp_exporter"
|
||||
SRC_URI="https://github.com/prometheus/${PN}/archive/v${PV/_rc/-rc.}.tar.gz -> ${P}.tar.gz"
|
||||
SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
|
||||
|
||||
LICENSE="Apache-2.0 BSD BSD-2 MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
COMMON_DEPEND="acct-group/snmp_exporter
|
||||
acct-user/snmp_exporter
|
||||
net-analyzer/net-snmp"
|
||||
DEPEND="${COMMON_DEPEND}"
|
||||
RDEPEND="${COMMON_DEPEND}"
|
||||
BDEPEND="dev-util/promu"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed -i -e "s/{{.Revision}}/${SNMP_EXPORTER_COMMIT}/" .promu.yml || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
promu build --prefix bin || die
|
||||
pushd generator || die
|
||||
ego build -o ../bin/generator
|
||||
popd || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test-flags= test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin bin/generator
|
||||
newbin bin/${PN}-${PV} ${PN}
|
||||
dodoc {README,CONTRIBUTING}.md generator/{FORMAT,README}.md generator/generator.yml
|
||||
insinto /etc/snmp_exporter
|
||||
newins snmp.yml snmp.yml.example
|
||||
newinitd "${FILESDIR}"/${PN}.initd ${PN}
|
||||
newconfd "${FILESDIR}"/${PN}.confd ${PN}
|
||||
insinto /etc/logrotate.d
|
||||
newins "${FILESDIR}/${PN}.logrotated" "${PN}"
|
||||
keepdir /var/lib/snmp_exporter /var/log/snmp_exporter
|
||||
fowners ${PN}:${PN} /var/lib/snmp_exporter /var/log/snmp_exporter
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,2 +1,4 @@
|
||||
DIST poppler-23.01.0.tar.xz 1847492 BLAKE2B 8dd85767a0c101b3d7166719374658a233aff491b0990917aacaa6fb3c5d8e51104b3ac45c78dcfb380286ea48067d1db57c2794d99a93cae9f4d64e9ca3dd07 SHA512 a44fd59cdb4dc1c04765990d9666f27538895883fe98a64e7bea30caebeab10875615282307fbd6eacecf83b7a7c8daa81afa1b13ae6c09b80673e3fb8563053
|
||||
DIST poppler-23.01.0.tar.xz.sig 833 BLAKE2B 46c3910627fd69930fd428397e739e3fe41c9b835379dfe7abbdf421049a77b33ce1cf6a44bd386278d3610ae2547d119ac6da4c3bfa7f348c51fbce7319a878 SHA512 0cebaac1846e6b3944175bcb28b49592d562738c009a97e048abe9f6677718c97bea2b470ea503b8dd083fc5f154e71d539cf1e3bce08363c6979d268dcdfd3b
|
||||
DIST poppler-23.02.0.tar.xz 1847612 BLAKE2B ca5187432c5088372f0b8f4fcd39a93998b28e505d214964de99cd03db555f8f80b05de19874264b1d732d2c45388562faead50b2b82116bb6031690419abd8c SHA512 0765319a1b106da740c7300172866e774ccbeec0bc0e938f009efd1a106b35ca2e5ab60a523e1d1dd5682b30499de4dffed0a1ca129c770263a096f781337a2c
|
||||
DIST poppler-23.02.0.tar.xz.sig 833 BLAKE2B 48b46b92d8d95f25a0619aaa50c29c652e91ba99c5f8d5f30cbb879a2145e3a21df0258585ee9e44d036f4a8c1d54023e1bb22aa0d90bf69403b37c601b37ef2 SHA512 68fe9d46ec6f7f1b6d0d7becf96675477454af9218ad20ad159d8a06def73f08db59915adbb77b520e3e43091aaf895e045c7ccaafb57d2b2b9390e84e70a963
|
||||
|
@ -0,0 +1,134 @@
|
||||
# Copyright 2005-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake toolchain-funcs xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://anongit.freedesktop.org/git/poppler/poppler.git"
|
||||
SLOT="0/9999"
|
||||
else
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/aacid.asc
|
||||
inherit verify-sig
|
||||
|
||||
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
|
||||
SRC_URI+=" verify-sig? ( https://poppler.freedesktop.org/${P}.tar.xz.sig )"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
SLOT="0/126" # CHECK THIS WHEN BUMPING!!! SUBSLOT IS libpoppler.so SOVERSION
|
||||
fi
|
||||
|
||||
DESCRIPTION="PDF rendering library based on the xpdf-3.0 code base"
|
||||
HOMEPAGE="https://poppler.freedesktop.org/"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
IUSE="boost cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
|
||||
|
||||
# No test data provided
|
||||
RESTRICT="test"
|
||||
|
||||
COMMON_DEPEND="
|
||||
>=media-libs/fontconfig-2.13
|
||||
>=media-libs/freetype-2.10
|
||||
sys-libs/zlib
|
||||
cairo? (
|
||||
>=dev-libs/glib-2.64:2
|
||||
>=x11-libs/cairo-1.16
|
||||
introspection? ( >=dev-libs/gobject-introspection-1.64:= )
|
||||
)
|
||||
curl? ( net-misc/curl )
|
||||
jpeg? ( >=media-libs/libjpeg-turbo-1.1.0:= )
|
||||
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
|
||||
lcms? ( media-libs/lcms:2 )
|
||||
nss? ( >=dev-libs/nss-3.49 )
|
||||
png? ( media-libs/libpng:0= )
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtxml:5
|
||||
)
|
||||
tiff? ( media-libs/tiff:= )
|
||||
"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
cjk? ( app-text/poppler-data )
|
||||
"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
boost? ( >=dev-libs/boost-1.71 )
|
||||
"
|
||||
BDEPEND="
|
||||
>=dev-util/glib-utils-2.64
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
if [[ ${PV} != *9999* ]] ; then
|
||||
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-aacid )"
|
||||
fi
|
||||
|
||||
DOCS=( AUTHORS NEWS README.md README-XPDF )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
|
||||
"${FILESDIR}/${PN}-21.09.0-respect-cflags.patch"
|
||||
"${FILESDIR}/${PN}-0.57.0-disable-internal-jpx.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
# Clang doesn't grok this flag, the configure nicely tests that, but
|
||||
# cmake just uses it, so remove it if we use clang
|
||||
if tc-is-clang ; then
|
||||
sed -e 's/-fno-check-new//' -i cmake/modules/PopplerMacros.cmake || die
|
||||
fi
|
||||
|
||||
if ! grep -Fq 'cmake_policy(SET CMP0002 OLD)' CMakeLists.txt ; then
|
||||
sed -e '/^cmake_minimum_required/acmake_policy(SET CMP0002 OLD)' \
|
||||
-i CMakeLists.txt || die
|
||||
else
|
||||
einfo "policy(SET CMP0002 OLD) - workaround can be removed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
xdg_environment_reset
|
||||
local mycmakeargs=(
|
||||
-DBUILD_GTK_TESTS=OFF
|
||||
-DBUILD_QT5_TESTS=OFF
|
||||
-DBUILD_CPP_TESTS=OFF
|
||||
-DBUILD_MANUAL_TESTS=OFF
|
||||
-DRUN_GPERF_IF_PRESENT=OFF
|
||||
-DENABLE_BOOST="$(usex boost)"
|
||||
-DENABLE_ZLIB=ON
|
||||
-DENABLE_ZLIB_UNCOMPRESS=OFF
|
||||
-DENABLE_UNSTABLE_API_ABI_HEADERS=ON
|
||||
-DUSE_FLOAT=OFF
|
||||
-DWITH_Cairo=$(usex cairo)
|
||||
-DENABLE_LIBCURL=$(usex curl)
|
||||
-DENABLE_CPP=$(usex cxx)
|
||||
-DWITH_JPEG=$(usex jpeg)
|
||||
-DENABLE_DCTDECODER=$(usex jpeg libjpeg none)
|
||||
-DENABLE_LIBOPENJPEG=$(usex jpeg2k openjpeg2 none)
|
||||
-DENABLE_CMS=$(usex lcms lcms2 none)
|
||||
-DWITH_NSS3=$(usex nss)
|
||||
-DWITH_PNG=$(usex png)
|
||||
$(cmake_use_find_package qt5 Qt5Core)
|
||||
-DWITH_TIFF=$(usex tiff)
|
||||
-DENABLE_UTILS=$(usex utils)
|
||||
-DENABLE_QT6=OFF
|
||||
)
|
||||
use cairo && mycmakeargs+=( -DWITH_GObjectIntrospection=$(usex introspection) )
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
# live version doesn't provide html documentation
|
||||
if use cairo && use doc && [[ ${PV} != *9999* ]]; then
|
||||
# For now install gtk-doc there
|
||||
insinto /usr/share/gtk-doc/html/poppler
|
||||
doins -r "${S}"/glib/reference/html/*
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -1,2 +1,2 @@
|
||||
DIST gtest-1.11.0.tar.gz 886330 BLAKE2B d11fdd485f292d96508cbc27a9a444ab69b86571cc594298fd3f0e6d4bd8d6ec20dea848fe11be165d34054b2251ad377f0930f852914feaa1416ff156986a9c SHA512 6fcc7827e4c4d95e3ae643dd65e6c4fc0e3d04e1778b84f6e06e390410fe3d18026c131d828d949d2f20dde6327d30ecee24dcd3ef919e21c91e010d149f3a28
|
||||
DIST gtest-1.12.1.tar.gz 854944 BLAKE2B 7b121fb95bb19efec1387a83da2201a139197225f79f7649ceac04695ff06fc4148319ae928d79ced413a9cfd42e68b56bfda1ee6bfdbf07fdd22795e9974388 SHA512 a9104dc6c53747e36e7dd7bb93dfce51a558bd31b487a9ef08def095518e1296da140e0db263e0644d9055dbd903c0cb69380cb2322941dbfb04780ef247df9c
|
||||
DIST gtest-1.13.0.tar.gz 862871 BLAKE2B d2768332c233d62f7a5f5332b63dc587c96c24765b2eeaa4f4caf5d421b175aa850d81cec4f50eeef9e06d4b86cb959555b4c2862a197ce3cb86d61fcb51f5d1 SHA512 70c0cfb1b4147bdecb467ecb22ae5b5529eec0abc085763213a796b7cdbd81d1761d12b342060539b936fa54f345d33f060601544874d6213fdde79111fa813e
|
||||
|
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 +1,2 @@
|
||||
DIST nss-pem-1.0.8.tar.xz 41840 BLAKE2B 6a210517b6f70a6a1a0351970811500c1364c6cbb0159dc4b7b3edeff7c01d3b643a5a4a4946a350a1a49898570141acda1e913fdc79d750339f5021445e61c7 SHA512 9fd1fa9203fd707668506752be6f99d26e53281b8b95d7c3020da33ab8cb287890b66c8a59f1ee952fe8d2a8a350d7c5b4214a523a2e1762e48989f02c408b33
|
||||
DIST nss-pem-1.0.9.tar.xz 41848 BLAKE2B 606c8db9f8f8b6f46dfcc1128903d7139ba7b9d0062b7137d78ab7ba8af1877d1a6f9e96c139715dcdaf76a6ef268031692395d80efc00db719a5984edfda9e4 SHA512 c656e2f6ab1a0ab9448ef9efd70168f17901f585b53237f3dae493a1a40f8c90dfeb25b81e46472e479bfa3f443994669b5614f124cd828224227b7b8326f6f3
|
||||
|
@ -0,0 +1,29 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake-multilib
|
||||
|
||||
DESCRIPTION="PEM file reader for Network Security Services (NSS)"
|
||||
HOMEPAGE="https://github.com/kdudka/nss-pem"
|
||||
SRC_URI="https://github.com/kdudka/${PN}/releases/download/${P}/${P}.tar.xz"
|
||||
|
||||
LICENSE="MPL-1.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-solaris"
|
||||
|
||||
DEPEND="dev-libs/nss
|
||||
dev-libs/nspr"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="dev-libs/nss
|
||||
virtual/pkgconfig"
|
||||
|
||||
S="${WORKDIR}/${P}/src"
|
||||
|
||||
multilib_src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DLIB_INSTALL_DIR="$(get_libdir)"
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
@ -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 +1,2 @@
|
||||
DIST trio-1.17.1.tar.gz 466909 BLAKE2B 1403c2534623b536de519cd428ac75480ecc0fcb9fbba693e329a923471947f068cae1e1fd453d10863255369e830ef5d8a75475d95f0f903e66936a9fa48e2b SHA512 574e360d88be838d13d7df5259c68809187a578d8d04981812ff768d3ab80215baf5595952994ec9fabbe3a6ce71512a7cd16d6a29b4f91dcd1b6f2ebcd3ed98
|
||||
DIST trio-1.17.tar.gz 452237 BLAKE2B 77ff673cc103b07b1424720d28c49d2e33a1402a98d8d21124fabb0cafd3498a99976d808cbbc5a90e1b3a063c6af68c3daf94768d533e4a762b730a253fa012 SHA512 19f4732b32c6a3754677d5766399fa70083c6a78c0d04b1dfa10a578b21405ba3e3d3af6543e4811f5fd305ec2727781a1b0f2888e59c574ca735f8406da7954
|
||||
|
@ -0,0 +1,27 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DOCS_BUILDER="doxygen"
|
||||
DOCS_DIR="doc"
|
||||
|
||||
inherit docs
|
||||
|
||||
DESCRIPTION="Portable string functions, focus on the *printf() and *scanf() clones"
|
||||
HOMEPAGE="https://daniel.haxx.se/projects/trio/"
|
||||
SRC_URI="https://github.com/orbea/trio/releases/download/v${PV}/${P}.tar.gz"
|
||||
|
||||
LICENSE="trio"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
|
||||
src_compile() {
|
||||
default
|
||||
docs_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
find "${ED}" -type f -name '*.la' -delete || die
|
||||
}
|
Binary file not shown.
@ -0,0 +1,112 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
inherit cmake llvm llvm.org python-any-r1
|
||||
|
||||
DESCRIPTION="OCaml bindings for LLVM"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS=""
|
||||
IUSE="debug test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-lang/ocaml-4.00.0:0=
|
||||
dev-ml/ocaml-ctypes:=
|
||||
~sys-devel/llvm-${PV}:=[debug?]
|
||||
!sys-devel/llvm[ocaml(-)]
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
dev-lang/perl
|
||||
dev-ml/findlib
|
||||
>=dev-util/cmake-3.16
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( llvm cmake third-party )
|
||||
LLVM_USE_TARGETS=llvm
|
||||
llvm.org_set_globals
|
||||
|
||||
pkg_setup() {
|
||||
LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local libdir=$(get_libdir)
|
||||
local mycmakeargs=(
|
||||
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
|
||||
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON
|
||||
-DLLVM_LINK_LLVM_DYLIB=ON
|
||||
-DLLVM_OCAML_OUT_OF_TREE=ON
|
||||
|
||||
# cheap hack: LLVM combines both anyway, and the only difference
|
||||
# is that the former list is explicitly verified at cmake time
|
||||
-DLLVM_TARGETS_TO_BUILD=""
|
||||
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
|
||||
-DLLVM_BUILD_TESTS=$(usex test)
|
||||
|
||||
# disable various irrelevant deps and settings
|
||||
-DLLVM_ENABLE_FFI=OFF
|
||||
-DLLVM_ENABLE_TERMINFO=OFF
|
||||
-DHAVE_HISTEDIT_H=NO
|
||||
-DLLVM_ENABLE_ASSERTIONS=$(usex debug)
|
||||
-DLLVM_ENABLE_EH=ON
|
||||
-DLLVM_ENABLE_RTTI=ON
|
||||
|
||||
-DLLVM_HOST_TRIPLE="${CHOST}"
|
||||
|
||||
-DPython3_EXECUTABLE="${PYTHON}"
|
||||
|
||||
# TODO: ocamldoc
|
||||
)
|
||||
|
||||
use test && mycmakeargs+=(
|
||||
-DLLVM_LIT_ARGS="$(get_lit_flags)"
|
||||
)
|
||||
|
||||
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
|
||||
# also: custom rules for OCaml do not work for CPPFLAGS
|
||||
use debug || local -x CFLAGS="${CFLAGS} -DNDEBUG"
|
||||
cmake_src_configure
|
||||
|
||||
local llvm_libdir=$(llvm-config --libdir)
|
||||
# an ugly hack; TODO: figure out a way to pass -L to ocaml...
|
||||
cd "${BUILD_DIR}/${libdir}" || die
|
||||
ln -s "${llvm_libdir}"/*.so . || die
|
||||
|
||||
if use test; then
|
||||
local llvm_bindir=$(llvm-config --bindir)
|
||||
# Force using system-installed tools.
|
||||
sed -i -e "/llvm_tools_dir/s@\".*\"@\"${llvm_bindir}\"@" \
|
||||
"${BUILD_DIR}"/test/lit.site.cfg.py || die
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_build ocaml_all
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# respect TMPDIR!
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
cmake_build check-llvm-bindings-ocaml
|
||||
}
|
||||
|
||||
src_install() {
|
||||
DESTDIR="${D}" \
|
||||
cmake -P "${BUILD_DIR}"/bindings/ocaml/cmake_install.cmake || die
|
||||
|
||||
dodoc bindings/ocaml/README.txt
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST blessed-1.19.1.tar.gz 6653802 BLAKE2B 5755efde3c203ab21a8994e29c55cdaace1cca772c9cdee4343562bb8ee4f9ffdee97d9131646d8385ef7e46664d23723ba46a3807d85623d9512ca40c7c4002 SHA512 0d899c42d7c6246362081bdc5d7dd2fcb13209fe0cee7e5a4fa342bdaf16a5cc21ab7e402bc5287ab1239f7e3afb02381e0e57e2d6111b80fe3c52b92cfa0f84
|
||||
DIST blessed-1.20.0.tar.gz 6655612 BLAKE2B 10523940ac2fe528487f2d1d68d9f38782ec260f1f42735940219d37d4b4dbaef2fd4ca63d753780123d54ae39ab04652d2c6ba8f3323c621a2206b0a706f6e0 SHA512 8567ff1c55f68ad99c6c524edbf8ee57813d23d885dcb372767debc76bc2d75642c2b0491e1ed05460f023c28403b5dabb13769dea101a1c6e3156c82e0d0355
|
||||
|
@ -0,0 +1,52 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( pypy3 python3_{9..11} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="Library for making terminal apps using colors, keyboard input and positioning"
|
||||
HOMEPAGE="
|
||||
https://github.com/jquast/blessed/
|
||||
https://pypi.org/project/blessed/
|
||||
"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
SLOT="0"
|
||||
LICENSE="MIT"
|
||||
KEYWORDS="~amd64 ~riscv ~x86"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
dev-python/wcwidth[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_sphinx docs dev-python/sphinx_rtd_theme
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_prepare_all() {
|
||||
# Skip those extensions as they don't have a Gentoo package
|
||||
# Remove calls to scripts that generate rst files because they
|
||||
# are not present in the tarball
|
||||
sed -e '/sphinxcontrib.manpage/d' -e '/sphinx_paramlinks/d' \
|
||||
-e '/^for script in/,/runpy.run_path/d' \
|
||||
-i docs/conf.py || die
|
||||
# Requires pytest-xdist and has no value for us
|
||||
sed -i '/^looponfailroots =/d' tox.ini || die
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
# COLORTERM must not be truecolor
|
||||
# See https://github.com/jquast/blessed/issues/162
|
||||
# Ignore coverage options
|
||||
COLORTERM= epytest --override-ini="addopts="
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST boto3-1.26.54.gh.tar.gz 592401 BLAKE2B 7fd5bb10cda2b27fc43a7efa65c4651d95c8ddb7c94b424847f21010f9d748398a9efc47118ed7d2d90369664dddd4903fb8c4e7bc3ba3f70643a565b426023f SHA512 86d315eba84d783d327d19b41a593f193d9b356a205f29a1589e43e43519aa6eedefc26e7b23234dade6ab0bbb309d8039b011d0ba766757be8eb7a57c22f49b
|
||||
DIST boto3-1.26.59.gh.tar.gz 594565 BLAKE2B 90c5fe950da7fabc46a4c34e0a77997cfc643273f6b3c1afed6caad3415486b25a6610c8fb9d3f3450b4f3b73e45cfec5d6b1f02666dbd2608944e2db81a955b SHA512 e4dff5978e41a9f4c29ef131d7b8c1f0ec625d9fc77a8cff9ce3c6d5a00d68e75b62da34b418252ddfeedf6302332edd8a30d88401ea393d0de3add64ab5cc40
|
||||
DIST boto3-1.26.63.gh.tar.gz 597618 BLAKE2B f48de0f51694efa0a4fa6afa25ad7475fb7e304cf9291d6dcd275d4dd64ee3f29665afd1fb64f5883513c4224e03240a8e225e41765409822d33e95078e1a9ac SHA512 5f781ce615202fa84e321982699877376b2cb3692cf52f2b157eea6800d160ccf6da38b3c545d62cbce029b59f492d5ef67a31d06dc33b6f6bffd1e1b40c5d85
|
||||
DIST boto3-1.26.64.gh.tar.gz 597913 BLAKE2B f3dc63388cf4055c58610eaf980c10ff4d297c6f00f89fe0b46e6b764fba502b7fd85b71421a9d21f1930b668f95aaf2fa174389e5067901d749babf582a8033 SHA512 17ed0e655706f29ed34e1d60a9913d74ab0098ba8085ea76bafb5fcd1bfde91c2efd95d2f3f3e6bcd1b6ef7bed85f9001ba484c01a0251219ea879543a8f2b47
|
||||
|
@ -0,0 +1,68 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit distutils-r1 multiprocessing
|
||||
|
||||
DESCRIPTION="The AWS SDK for Python"
|
||||
HOMEPAGE="
|
||||
https://github.com/boto/boto3/
|
||||
https://pypi.org/project/boto3/
|
||||
"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
EGIT_REPO_URI="https://github.com/boto/boto3"
|
||||
inherit git-r3
|
||||
BOTOCORE_PV=${PV}
|
||||
else
|
||||
SRC_URI="
|
||||
https://github.com/boto/boto3/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
# botocore is x.(y+3).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
|
||||
fi
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
>=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_sphinx docs/source \
|
||||
'dev-python/guzzle_sphinx_theme'
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_prepare_all() {
|
||||
# don't lock versions to narrow ranges
|
||||
sed -e '/botocore/ d' \
|
||||
-e '/jmespath/ d' \
|
||||
-e '/s3transfer/ d' \
|
||||
-i setup.py || die
|
||||
|
||||
# do not rely on bundled deps in botocore (sic!)
|
||||
find -name '*.py' -exec sed -i \
|
||||
-e 's:from botocore[.]vendored import:import:' \
|
||||
-e 's:from botocore[.]vendored[.]:from :' \
|
||||
{} + || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_test() {
|
||||
epytest tests/{functional,unit} -n "$(makeopts_jobs)"
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST botocore-1.29.54.gh.tar.gz 11127081 BLAKE2B 7c2d11d968ca6a4d3b23b12c44cb8f050ac1848f75280c44bbb2f3567860204ed8615bd1596e02b8d0222f4d54c22a8559114365ec6a69e4a01a166a821d8c8a SHA512 4ba58c9b881ff95149ba1a5805453885208cdb68f197cc9a6c13cc9ca075e988ae33e4809f2970d9c48fa426e26c06d83686b8bbf4ff69d4a7cfe26ef3f903bf
|
||||
DIST botocore-1.29.59.gh.tar.gz 11131182 BLAKE2B fa85e1f8dc3c366f7a7fb3e9b06dd298b1ad62be882891df3414289aa9e88bff72753690a1438e6040aefb7cafa1718a70c940e8cd2b4e743df44013b5748ef6 SHA512 9a4811b44c67652cacc899d1d84d4db1305cb60e73dd47d7f543b85ec37f921cab00a51d67b48ab6a215be8f7543e30c54585e0fb337085e1b75774b053c4bf3
|
||||
DIST botocore-1.29.63.gh.tar.gz 11139461 BLAKE2B b05f6d52f55df9e456e80e9b701e2498c5fcdd2c65720719095e2c44b87acf854712a6cbc19e20a53b58b8075c8f20952605f60ed58cb1f99a6a771c61dac4d1 SHA512 7005db01c04d0eb2d94760ff1b7b89d28d956b310736dc5601b9e0bfd4b7ffeac6042a596f4f731b600e669a3fc74a7eededbe2bc0ef70d7d3a68f1d14149f9c
|
||||
DIST botocore-1.29.64.gh.tar.gz 11141125 BLAKE2B 955c7ac0630bd8df8004a0a3d0ec64a7491aee7d68e63a65c62c9fe7a4362aed7bd74ca967cd8550ead458e42a858a428f0db8922a337c83cd680fcd1d1b62c3 SHA512 bb8e177f335e600389123f26788711f4a94c4943a4d80c6195db03bb3cf9489b2a8b0e42d429635c6c8c501df6c27b4177e9ef71e748b0c63874e6682bf2e8e9
|
||||
|
@ -0,0 +1,74 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit distutils-r1 multiprocessing
|
||||
|
||||
DESCRIPTION="Low-level, data-driven core of boto 3"
|
||||
HOMEPAGE="
|
||||
https://github.com/boto/botocore/
|
||||
https://pypi.org/project/botocore/
|
||||
"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
if [[ "${PV}" == "9999" ]]; then
|
||||
EGIT_REPO_URI="https://github.com/boto/botocore"
|
||||
inherit git-r3
|
||||
else
|
||||
SRC_URI="
|
||||
https://github.com/boto/botocore/archive/${PV}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
|
||||
fi
|
||||
|
||||
RDEPEND="
|
||||
dev-python/six[${PYTHON_USEDEP}]
|
||||
<dev-python/jmespath-2[${PYTHON_USEDEP}]
|
||||
dev-python/python-dateutil[${PYTHON_USEDEP}]
|
||||
>=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/jsonschema[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_sphinx docs/source \
|
||||
'dev-python/guzzle_sphinx_theme'
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# unpin deps
|
||||
sed -i -e "s:>=.*':':" setup.py || die
|
||||
|
||||
# unbundle deps
|
||||
rm -r botocore/vendored || die
|
||||
find -name '*.py' -exec sed -i \
|
||||
-e 's:from botocore[.]vendored import:import:' \
|
||||
-e 's:from botocore[.]vendored[.]:from :' \
|
||||
{} + || die
|
||||
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=(
|
||||
# rely on bundled six
|
||||
tests/functional/test_six_imports.py::test_no_bare_six_imports
|
||||
tests/functional/test_six_threading.py::test_six_thread_safety
|
||||
# fails on unrelated warnings
|
||||
tests/unit/test_client.py::TestAutoGeneratedClient::test_BOTO_DISABLE_COMMONNAME
|
||||
tests/unit/test_client.py::TestClientErrors::test_BOTO_DISABLE_COMMONNAME
|
||||
# TODO
|
||||
tests/functional/test_credentials.py::SSOSessionTest::test_token_chosen_from_provider
|
||||
)
|
||||
|
||||
epytest tests/{functional,unit} -n "$(makeopts_jobs)"
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
inherit llvm.org python-r1
|
||||
|
||||
DESCRIPTION="Python bindings for sys-devel/clang"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0"
|
||||
KEYWORDS=""
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
# The module is opening libclang.so directly, and doing some blasphemy
|
||||
# on top of it.
|
||||
DEPEND="
|
||||
>=sys-devel/clang-${PV}:*
|
||||
!sys-devel/llvm:0[clang(-),python(-)]
|
||||
!sys-devel/clang:0[python(-)]
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
BDEPEND="
|
||||
${PYTHON_DEPS}
|
||||
test? (
|
||||
sys-devel/clang:${LLVM_MAJOR}
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( clang/bindings/python )
|
||||
llvm.org_set_globals
|
||||
|
||||
python_test() {
|
||||
# tests rely on results from a specific clang version, so override
|
||||
# the search path
|
||||
local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
|
||||
local -x CLANG_NO_DEFAULT_CONFIG=1
|
||||
"${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
python_foreach_impl python_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
python_foreach_impl python_domodule clang
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST fakeredis-py-2.4.0.gh.tar.gz 132163 BLAKE2B fc3858eb364c63d776c81d715cbfb218dc0e763d568c97b0d1dafb0716aaf87e928f9b81bd49d28fcc235f4285277446945595d42ff1d440e5c8491b78abb6c3 SHA512 5fba3e84d0506b52e1561f750e045b6227ea21387ddb3a89b8a61e9698fc0e9ec80c4a7048d9426fb0d8e9f2acd808e7e07fcb11d14d6852d9b057fec86d6e6a
|
||||
DIST fakeredis-py-2.5.0.gh.tar.gz 139911 BLAKE2B 4e9c616b0066012e1ed681d06e73390fb670969c15fa57689244147a0175dbb14ff1c312066ffdc6eb2c647f884c351a98eebfb2c1ba0e6c1bbe1e6c3553808a SHA512 aff5a8679763d4cf1717f790c7c384aa8e5056e5f175c306626f3a1671fe27aa3caf24368831033c9cf5bffa2e3e6be1104b183f3912eadf34fd6f37ea0c63e8
|
||||
DIST fakeredis-py-2.6.0.gh.tar.gz 151925 BLAKE2B 60538efa5de93436177aa019908f02affb9df9b2aaf1349e933da6f066f98aaa255bbdb3297645ad1dc3b67a57a61bb8081e476f451799b512719f5779c1218d SHA512 19a23be7a182f962e66686f3c4ec3a5b9fbc847d97e48f19fde11ae268f4a70de567ff2ca302a9fe0e7080de2215698cf5b2ff2febda5eef6748f3ec8d601720
|
||||
DIST fakeredis-py-2.7.0.gh.tar.gz 162784 BLAKE2B acb218c375785ad4b8419f08f9c328f33f97eedb0f13ae09b760b6c87849b3f8a4b9210fe6aea59d763b27909bff8297a009757a1f5fd9b58c1936e6705e0833 SHA512 fc11f3b59971ae50f59e9d1684827a8f4d1127813f7d55641b43b1edbb1e4c75c76aa0734ad55c98cca404c7e343a02f72644f05aceb72849ef6f18dc2418890
|
||||
|
@ -0,0 +1,88 @@
|
||||
# Copyright 2020-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=poetry
|
||||
PYTHON_COMPAT=( pypy3 python3_{9..11} )
|
||||
|
||||
inherit distutils-r1
|
||||
|
||||
MY_P=fakeredis-py-${PV}
|
||||
DESCRIPTION="Fake implementation of redis API for testing purposes"
|
||||
HOMEPAGE="
|
||||
https://github.com/cunla/fakeredis-py/
|
||||
https://pypi.org/project/fakeredis/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/cunla/fakeredis-py/archive/v${PV}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/redis-py-4.2[${PYTHON_USEDEP}]
|
||||
<dev-python/redis-py-4.5[${PYTHON_USEDEP}]
|
||||
>=dev-python/sortedcontainers-2.4.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-db/redis
|
||||
dev-python/pytest-asyncio[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-mock[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# unpin redis
|
||||
sed -i -e '/redis/s:<[0-9.]*:*:' pyproject.toml || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=(
|
||||
# also lupa
|
||||
test/test_aioredis2.py::test_failed_script_error
|
||||
# TODO
|
||||
"test/test_fakeredis.py::test_set_get_nx[StrictRedis]"
|
||||
"test/test_fakeredis.py::test_lpop_count[StrictRedis]"
|
||||
"test/test_fakeredis.py::test_rpop_count[StrictRedis]"
|
||||
"test/test_fakeredis.py::test_zadd_minus_zero[StrictRedis]"
|
||||
"test/test_mixins/test_pubsub_commands.py::test_pubsub_channels[StrictRedis]"
|
||||
)
|
||||
local EPYTEST_IGNORE=(
|
||||
# these tests fail a lot...
|
||||
test/test_hypothesis.py
|
||||
)
|
||||
local args=(
|
||||
# tests requiring lupa (lua support)
|
||||
-k 'not test_eval and not test_lua and not test_script'
|
||||
)
|
||||
epytest "${args[@]}"
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local redis_pid="${T}"/redis.pid
|
||||
local redis_port=6379
|
||||
|
||||
einfo "Spawning Redis"
|
||||
einfo "NOTE: Port ${redis_port} must be free"
|
||||
"${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server"
|
||||
daemonize yes
|
||||
pidfile ${redis_pid}
|
||||
port ${redis_port}
|
||||
bind 127.0.0.1
|
||||
EOF
|
||||
|
||||
# Run the tests
|
||||
distutils-r1_src_test
|
||||
|
||||
# Clean up afterwards
|
||||
kill "$(<"${redis_pid}")" || die
|
||||
}
|
@ -0,0 +1,77 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
CLI_COMPAT=( python3_{9..10} )
|
||||
PYTHON_COMPAT=( "${CLI_COMPAT[@]}" python3_11 pypy3 )
|
||||
PYTHON_REQ_USE="threads(+),sqlite"
|
||||
|
||||
inherit distutils-r1 multiprocessing optfeature
|
||||
|
||||
TAG=hypothesis-python-${PV}
|
||||
MY_P=hypothesis-${TAG}
|
||||
DESCRIPTION="A library for property based testing"
|
||||
HOMEPAGE="
|
||||
https://github.com/HypothesisWorks/hypothesis/
|
||||
https://pypi.org/project/hypothesis/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz
|
||||
-> ${P}.gh.tar.gz
|
||||
"
|
||||
S="${WORKDIR}/${MY_P}/hypothesis-python"
|
||||
|
||||
LICENSE="MPL-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="cli"
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/attrs-19.2.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}]
|
||||
$(python_gen_cond_dep '
|
||||
>=dev-python/exceptiongroup-1.0.0_rc8[${PYTHON_USEDEP}]
|
||||
' 3.8 3.9 3.10)
|
||||
cli? (
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/black[${PYTHON_USEDEP}]
|
||||
dev-python/click[${PYTHON_USEDEP}]
|
||||
' "${CLI_COMPAT[@]}")
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/mock[${PYTHON_USEDEP}]
|
||||
dev-python/pexpect[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||
!!<dev-python/requests-toolbelt-0.10.1
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
python_test() {
|
||||
# subtests are broken by warnings from random plugins
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
local -x PYTEST_PLUGINS=xdist.plugin,pytest_forked,_hypothesis_pytestplugin
|
||||
|
||||
epytest tests/cover tests/pytest tests/quality -n "$(makeopts_jobs)"
|
||||
}
|
||||
|
||||
python_install() {
|
||||
distutils-r1_python_install
|
||||
if ! use cli || ! has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then
|
||||
rm -r "${ED}/usr/bin" "${D}$(python_get_scriptdir)" || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
optfeature "datetime support" dev-python/pytz
|
||||
optfeature "dateutil support" dev-python/python-dateutil
|
||||
optfeature "numpy support" dev-python/numpy
|
||||
optfeature "django support" dev-python/django dev-python/pytz
|
||||
optfeature "pandas support" dev-python/pandas
|
||||
optfeature "pytest support" dev-python/pytest
|
||||
}
|
@ -1,3 +1,2 @@
|
||||
DIST ipython-8.7.0.tar.gz 5329857 BLAKE2B 876ed4e16377f2a4d1c0aa83a7e2e0dfda64100de97ff349911d10b07acf351329b0bff75bcf6085f9fadf773fa6762ed88586e1132cabf6479790a38a0bc4e6 SHA512 4652d06d1a0cf33a2b55f640d6bcc3fd9f1f644c848e869bc3807da8f4166060798ea5629fa80cc98a4a79b8ea1cde6013507eae859354a5db270b7fb3cca6bf
|
||||
DIST ipython-8.8.0.tar.gz 5341086 BLAKE2B 6cab547c693494aed85c750ae566947c8035018213839c36ec906cf11c80e93269c4b861a5a4d72994bc4e5fc8f2787fd7674fdb836dad22c8c04c33d8f37de3 SHA512 18e8eaa285fe6278a27ffd2edcf4eccf629e05a8718faa721013d0433822ff8b850a2060135f26b5254a96b7ae0139e2ff4338676c08d3271a12c1b91532d7d1
|
||||
DIST ipython-8.9.0.tar.gz 5454595 BLAKE2B bb091bf9c2d9571ded5e1007d9fe60d34b9b0010747759ccceee3368822e3e190766439e3dd9b26df2dbb136ed2b81bc0d89d9b8857baae6e4d86a3524c07972 SHA512 2a9df79ff26bb34866dc523e75ba8e8d8de25d510fc273cbbf762b3011e53ff5331869f1d6fc8c44df6c9a8b5745a0545fe301a556b7f20e3a3dfca994316735
|
||||
|
@ -1,156 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
PYTHON_REQ_USE='readline,sqlite,threads(+)'
|
||||
|
||||
inherit distutils-r1 optfeature virtualx
|
||||
|
||||
DESCRIPTION="Advanced interactive shell for Python"
|
||||
HOMEPAGE="
|
||||
https://ipython.org/
|
||||
https://github.com/ipython/ipython/
|
||||
https://pypi.org/project/ipython/
|
||||
"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 arm arm64 hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
IUSE="doc examples matplotlib notebook nbconvert qt5 +smp test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
dev-python/backcall[${PYTHON_USEDEP}]
|
||||
dev-python/decorator[${PYTHON_USEDEP}]
|
||||
>=dev-python/jedi-0.16[${PYTHON_USEDEP}]
|
||||
dev-python/matplotlib[${PYTHON_USEDEP}]
|
||||
dev-python/matplotlib-inline[${PYTHON_USEDEP}]
|
||||
>=dev-python/pexpect-4.3[${PYTHON_USEDEP}]
|
||||
dev-python/pickleshare[${PYTHON_USEDEP}]
|
||||
>=dev-python/prompt_toolkit-2[${PYTHON_USEDEP}]
|
||||
<dev-python/prompt_toolkit-3.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/pygments-2.4.0[${PYTHON_USEDEP}]
|
||||
dev-python/setuptools[${PYTHON_USEDEP}]
|
||||
dev-python/stack_data[${PYTHON_USEDEP}]
|
||||
>=dev-python/traitlets-5.0[${PYTHON_USEDEP}]
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
test? (
|
||||
app-text/dvipng[truetype]
|
||||
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
|
||||
dev-python/matplotlib-inline[${PYTHON_USEDEP}]
|
||||
dev-python/nbformat[${PYTHON_USEDEP}]
|
||||
>=dev-python/numpy-1.20[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
dev-python/testpath[${PYTHON_USEDEP}]
|
||||
)
|
||||
doc? (
|
||||
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
|
||||
dev-python/matplotlib[${PYTHON_USEDEP}]
|
||||
>=dev-python/sphinx-2[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
RDEPEND+="
|
||||
nbconvert? (
|
||||
dev-python/nbconvert[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
PDEPEND="
|
||||
notebook? (
|
||||
dev-python/notebook[${PYTHON_USEDEP}]
|
||||
dev-python/ipywidgets[${PYTHON_USEDEP}]
|
||||
dev-python/widgetsnbextension[${PYTHON_USEDEP}]
|
||||
)
|
||||
qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] )
|
||||
smp? (
|
||||
>=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=( "${FILESDIR}"/2.1.0-substitute-files.patch )
|
||||
|
||||
python_prepare_all() {
|
||||
# Remove out of date insource files
|
||||
#rm IPython/extensions/cythonmagic.py || die
|
||||
#rm IPython/extensions/rmagic.py || die
|
||||
|
||||
# Prevent un-needed download during build
|
||||
if use doc; then
|
||||
sed -e "/^ 'sphinx.ext.intersphinx',/d" -i docs/source/conf.py || die
|
||||
fi
|
||||
|
||||
# Rename the test directory to reduce sys.path pollution
|
||||
# https://github.com/ipython/ipython/issues/12892
|
||||
mv IPython/extensions/{,ipython_}tests || die
|
||||
|
||||
distutils-r1_python_prepare_all
|
||||
}
|
||||
|
||||
python_compile_all() {
|
||||
if use doc; then
|
||||
emake -C docs html_noapi
|
||||
HTML_DOCS=( docs/build/html/. )
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
virtx distutils-r1_src_test
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local -x IPYTHON_TESTING_TIMEOUT_SCALE=20
|
||||
local EPYTEST_DESELECT=(
|
||||
# TODO: looks to be a regression due to a newer dep
|
||||
IPython/core/tests/test_oinspect.py::test_class_signature
|
||||
IPython/core/tests/test_oinspect.py::test_render_signature_long
|
||||
)
|
||||
# nonfatal implied by virtx
|
||||
nonfatal epytest || die "Tests failed with ${EPYTHON}"
|
||||
}
|
||||
|
||||
python_install() {
|
||||
distutils-r1_python_install
|
||||
|
||||
# Create ipythonX.Y symlinks.
|
||||
# TODO:
|
||||
# 1. do we want them for pypy? No. pypy has no numpy
|
||||
# 2. handle it in the eclass instead (use _python_ln_rel).
|
||||
# With pypy not an option the dosym becomes unconditional
|
||||
dosym ../lib/python-exec/${EPYTHON}/ipython \
|
||||
/usr/bin/ipython${EPYTHON#python}
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
if use examples; then
|
||||
dodoc -r examples
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
optfeature "code formatting" dev-python/black
|
||||
optfeature "sympyprinting" dev-python/sympy
|
||||
optfeature "cythonmagic" dev-python/cython
|
||||
optfeature "%lprun magic command" dev-python/line_profiler
|
||||
optfeature "%mprun magic command" dev-python/memory_profiler
|
||||
|
||||
if use nbconvert; then
|
||||
if ! has_version app-text/pandoc ; then
|
||||
einfo "Node.js will be used to convert notebooks to other formats"
|
||||
einfo "like HTML. Support for that is still experimental. If you"
|
||||
einfo "encounter any problems, please use app-text/pandoc instead."
|
||||
fi
|
||||
fi
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{9..11} )
|
||||
|
||||
inherit distutils-r1 llvm.org
|
||||
|
||||
DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
|
||||
HOMEPAGE="https://llvm.org/"
|
||||
|
||||
LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
|
||||
SLOT="0"
|
||||
KEYWORDS=""
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Tests require 'FileCheck' and 'not' utilities (from llvm)
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/psutil[${PYTHON_USEDEP}]
|
||||
sys-devel/llvm
|
||||
)
|
||||
"
|
||||
|
||||
LLVM_COMPONENTS=( llvm/utils/lit )
|
||||
llvm.org_set_globals
|
||||
|
||||
# TODO: move the manpage generation here (from sys-devel/llvm)
|
||||
|
||||
src_prepare() {
|
||||
cd "${WORKDIR}" || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local -x LIT_PRESERVES_TMP=1
|
||||
local litflags=$(get_lit_flags)
|
||||
./lit.py ${litflags//;/ } tests || die
|
||||
}
|
@ -1,2 +1 @@
|
||||
DIST python-neutronclient-8.2.0.tar.gz 305020 BLAKE2B dd09015fcc91028300c4185f208a7d532734c3b4ce1a616855eda6a25afb73be620548301ba7e42144a9ce33983c7966818f43f5cbbfbb8695b61c837d89831f SHA512 b8ff0b143bd4f8d99c5e8778e6669a80231f81dc353674a1d9964df53db9b49a0347d613f9d9c13b8e8ac355d2b50795cc27712cab2d798963ae0e8d5e4a5564
|
||||
DIST python-neutronclient-8.2.1.tar.gz 305119 BLAKE2B 75c75594a9050f7d78921eb72a85ab216862c2c00ce622c5392cc089b9611aa7ce48650eabfe71ea14a8329c10cc4922b8de982e79f238663d8f315c7b0e99cb SHA512 dc5e0e0a0d16ece56993b316db5fe93c8c5c9c50407229900fb4f21cd049e1d7d7ddd01f04b5a7b2e9d0c4623c94079a7fa8568068b30768ac3e2a51464a20a5
|
||||
|
@ -1,73 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{9..10} )
|
||||
inherit distutils-r1
|
||||
|
||||
DESCRIPTION="A client for the OpenStack Quantum API"
|
||||
HOMEPAGE="https://launchpad.net/neutron"
|
||||
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 ~arm ~arm64 ~riscv x86"
|
||||
|
||||
RDEPEND="
|
||||
>dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/cliff-3.4.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
|
||||
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
|
||||
>=dev-python/osc-lib-1.8.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
|
||||
>=dev-python/oslo-log-3.36.0[${PYTHON_USEDEP}]
|
||||
>dev-python/oslo-serialization-2.19.1[${PYTHON_USEDEP}]
|
||||
>=dev-python/oslo-utils-3.33.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/os-client-config-1.28.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/keystoneauth-3.8.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/python-keystoneclient-3.8.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/requests-2.14.2[${PYTHON_USEDEP}]
|
||||
>=dev-python/simplejson-3.5.1[${PYTHON_USEDEP}]
|
||||
"
|
||||
BDEPEND="
|
||||
>dev-python/pbr-2.1.0[${PYTHON_USEDEP}]
|
||||
test? (
|
||||
dev-python/bandit[${PYTHON_USEDEP}]
|
||||
dev-python/fixtures[${PYTHON_USEDEP}]
|
||||
dev-python/oslotest[${PYTHON_USEDEP}]
|
||||
dev-python/python-openstackclient[${PYTHON_USEDEP}]
|
||||
dev-python/subunit[${PYTHON_USEDEP}]
|
||||
dev-python/requests-mock[${PYTHON_USEDEP}]
|
||||
dev-python/testtools[${PYTHON_USEDEP}]
|
||||
dev-python/testscenarios[${PYTHON_USEDEP}]
|
||||
dev-python/tempest[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests unittest
|
||||
|
||||
src_prepare() {
|
||||
# Needs osprofile
|
||||
rm neutronclient/tests/unit/test_http.py || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
# functional tests require cloud instance access
|
||||
eunittest -b neutronclient.tests.unit
|
||||
}
|
||||
|
||||
python_install() {
|
||||
distutils-r1_python_install
|
||||
# stupid stupid stupid
|
||||
local SITEDIR="${D}$(python_get_sitedir)" || die
|
||||
cd "${SITEDIR}" || die
|
||||
local egg=( python_neutronclient*.dist-info )
|
||||
[[ -d ${egg[0]} ]] || die "python_quantumclient*.dist-info not found"
|
||||
ln -s "${egg[0]}" "${egg[0]/neutron/quantum}" || die
|
||||
ln -s neutronclient quantumclient || die
|
||||
ln -s neutron quantumclient/quantum || die
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST acts_as_list-1.0.4.gem 40448 BLAKE2B ac0d9e29006c052b1f421fc734d19390942fcb1eb68d33ed67944bf9bcf1dc8b73c813a2ee8ae6b358f74e019bf36d200e6fe44e01391dff68041d5263b907b1 SHA512 45cc3a2ddc3bdf245819bfe62c39cea5e9b96bf63b3e817adae2acadcf7b51f47379ae9bf1c2c1cfd6a1dc70d7279f44e0a932c838fa93fa4a0c3b9dcbcd46ea
|
||||
DIST acts_as_list-1.1.0.gem 41984 BLAKE2B abeb0325795276294451b4cb86e20dab6871003c72679ce28f9326cd844234ad56457a03d9b9ecd81b8c143deeefc25dd15df88a38ebdd1324a953b2399465e7 SHA512 bdcaf07bc4ad3854d68c8d95e666e86c2500474ffa212c315b6b4abd321341ac782c0e301f2c859c12b80ecfdd1cc743ccf8a7bdbdb36e30fafcd98d4928a00a
|
||||
|
@ -0,0 +1,38 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
USE_RUBY="ruby27 ruby30 ruby31"
|
||||
|
||||
inherit ruby-fakegem
|
||||
|
||||
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
|
||||
RUBY_FAKEGEM_EXTRAINSTALL="init.rb"
|
||||
|
||||
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
|
||||
|
||||
DESCRIPTION="Capabilities for sorting and reordering a number of objects in a list"
|
||||
HOMEPAGE="https://github.com/brendon/acts_as_list"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="3"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
ruby_add_rdepend ">=dev-ruby/activerecord-4.2:*"
|
||||
|
||||
ruby_add_bdepend "
|
||||
test? (
|
||||
dev-ruby/mocha
|
||||
dev-ruby/test-unit:2
|
||||
dev-ruby/timecop
|
||||
dev-ruby/activerecord[sqlite]
|
||||
)"
|
||||
|
||||
all_ruby_prepare() {
|
||||
rm Gemfile || die
|
||||
sed -i -e '/[Bb]undler/d' Rakefile || die
|
||||
sed -i -e '/bundler/,/^end/ s:^:#:' test/helper.rb || die
|
||||
sed -i -e '/git ls/d' ${RUBY_FAKEGEM_GEMSPEC} || die
|
||||
sed -i -e '/github_changelog/,$ s:^:#:' Rakefile || die
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
DIST commonmarker-0.23.5.tar.gz 165248 BLAKE2B 2d29a0ece01b5000bbb7192133e6abd0bf50281e90ae1d7036ffc49d8576bf378845c782d65b462274b4586b99ee3f46b7312cd0d0ac71456de9a4dacdccb8c3 SHA512 ccc76f0a2eb40d547e604cb4d10b922eceab40a0d0e07f00c60a5b307f3dcb74984274b231c38fe3ba97c892dea54fd325486ba20aa2b0087e99d6bca3e3845c
|
||||
DIST commonmarker-0.23.6.tar.gz 165548 BLAKE2B b580390211986e60cd682efb8fe39cea82fb50f76299675a068e37749635383a6d1d6391a093a9f399664ebeeff2e2b456f85752157c632e338ab52e64e18659 SHA512 540bb1831c19ea0924372c9f4be506828e057d4df1a2eb351e44437b45cd9cedd7df9014b09e34108663a31677ef14a4128b5ac9f8a34137bd1842e07654dedc
|
||||
DIST commonmarker-0.23.7.tar.gz 171255 BLAKE2B d6d5e90aeed955d4305bc2aef9a3db9e540a35690cf90e2ef1cd7ba1f829043e139cd3c8819858e56accda6de3088e9a38394676a6248bb1d9642d41282b61c9 SHA512 c15db5904c449a01d7e4a417d431a2f12722ca5524fad019d6bddb75dd59323174973d8d30920f4783163739570ddf81abb06246f3fed0635dea4ce4625a0679
|
||||
DIST commonmarker-0.23.8.tar.gz 171412 BLAKE2B 95f5fa8314af31dfe97bb8bad9eb6c57dc2e02f1b710c7f50e4500e3cad978b0b44e7a1104386d0cf0742e2d896208ced2a8f205c30ffbf4e444b991586b5ab8 SHA512 3e73ef5505804cbeb8190472f3ca8dc7f199de0ca410df35ab5e9948e94ade59670130f829218f6f2d39c3a6f41a9cb149f9aefc6c8f72443441ec66e642cd1e
|
||||
|
@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
USE_RUBY="ruby27 ruby30 ruby31"
|
||||
|
||||
RUBY_FAKEGEM_EXTENSIONS=(ext/commonmarker/extconf.rb)
|
||||
RUBY_FAKEGEM_EXTENSION_LIBDIR="lib/commonmarker"
|
||||
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
|
||||
|
||||
RUBY_FAKEGEM_GEMSPEC="commonmarker.gemspec"
|
||||
|
||||
inherit ruby-fakegem
|
||||
|
||||
DESCRIPTION="A fast, safe, extensible parser for CommonMark, wrapping the libcmark library"
|
||||
HOMEPAGE="https://github.com/gjtorikian/commonmarker"
|
||||
SRC_URI="https://github.com/gjtorikian/commonmarker/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="$(ver_cut 1)"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE=""
|
||||
|
||||
# app-text/cmark is bundled in a modified way and integrated with the gem code
|
||||
|
||||
all_ruby_prepare() {
|
||||
sed -i -e '/focus/ s:^:#:' test/test_helper.rb || die
|
||||
|
||||
# Avoid tests depending on unbundled cmark specification files
|
||||
rm -f test/test_{spec,smartpunct}.rb || die
|
||||
|
||||
}
|
||||
|
||||
each_ruby_prepare() {
|
||||
# Use current ruby version
|
||||
sed -i -e '/make_bin/,/end/ s:ruby:'${RUBY}':' test/test_helper.rb || die
|
||||
}
|
||||
|
||||
each_ruby_test() {
|
||||
${RUBY} -Ilib:test:. -e 'Dir["test/test_*.rb"].each {|f| require f}' || die
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST concurrent-ruby-1.1.10.tar.gz 6013684 BLAKE2B d271579a49ab52c9c41a7a0a31451775e1cba8ce19486b52a9eb3df7abbc66f7610d31284fc02747a8ee5f429983d8283b6fe92f22b911dcda5bc515da58b48f SHA512 cfb67ce806d1f2a5bae509806247bfefb05c56794741cedcaa7ab6ff708085e374d150e8f46ff8e04dcb0918fde8ab5a593c60550da9ff6dc00af116e123f064
|
||||
DIST concurrent-ruby-1.1.9.tar.gz 4923746 BLAKE2B 2bfea989db31f17c69ee479091135516e2aeef7ac74234ccea91b2e4b3626395683a7b2ebba1d13cb527903d3d83c51e873bdb859f0ff1983062fea4fa90a1e4 SHA512 243fc20795bcd7399bdf77a9b0db9b0bccb1b05edacf4fbc8f5515f59502300b4033a2a59bfb6adea9befdb20759c9f58bbf0e7744e934c85738085bef714ea6
|
||||
DIST concurrent-ruby-1.2.0.tar.gz 1160662 BLAKE2B e05df20596930d46781d718ebcd90c8326d78993ad15a7b7c804e0852bdfb66a955314769c8abdef9bc59c6fb249d81c6f48058751537a399da5846ded97dcbc SHA512 c6dc1a84ac4b176644481c2431d67b2b7e0a47fcb9e3fc3fa0b4ddd102ef65d1d02d5aff2784bb55a194f01a4a5294fc26944da16dea550934a6950caee54a31
|
||||
|
@ -0,0 +1,38 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
USE_RUBY="ruby27 ruby30 ruby31"
|
||||
|
||||
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
|
||||
|
||||
RUBY_FAKEGEM_RECIPE_DOC=""
|
||||
|
||||
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
|
||||
|
||||
inherit ruby-fakegem
|
||||
|
||||
DESCRIPTION="Modern concurrency tools including agents, futures, promises, thread pools, more"
|
||||
HOMEPAGE="https://github.com/ruby-concurrency/concurrent-ruby"
|
||||
SRC_URI="https://github.com/ruby-concurrency/concurrent-ruby/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="1"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE=""
|
||||
|
||||
ruby_add_bdepend "test? ( >=dev-ruby/timecop-0.7.4 )"
|
||||
|
||||
all_ruby_prepare() {
|
||||
# Remove edge files as defined in support/file_map.rb
|
||||
rm -rf spec/concurrent/{actor,cancellation,channel,edge,lazy_register,processing,promises,throttle}* || die
|
||||
rm -r spec/concurrent/executor/wrapping_executor_spec.rb || die
|
||||
sed -i -e '/concurrent-edge/ s:^:#:' spec/spec_helper.rb || die
|
||||
sed -i -e 's:lib-edge:lib/concurrent-ruby:' .rspec || die
|
||||
sed -i -e 's:../../../::' spec/concurrent/executor/executor_quits.rb || die
|
||||
|
||||
# Remove specs for the ext gem
|
||||
rm -rf spec/concurrent/atomic || die
|
||||
|
||||
sed -i 's/git ls-files/find * -print/' ${RUBY_FAKEGEM_GEMSPEC} || die
|
||||
}
|
@ -1,3 +1,2 @@
|
||||
DIST faker-2.22.0.tar.gz 1703265 BLAKE2B 931fa442d647186e7124c38afe4e6953f8dfea595140e2765ad86e9c98fc1ca02e6780cd01a49391614798a5862b4b69725bc5f5bbd1c6559f0831782dfe312b SHA512 9447b74d2403714de2bcbf4f3cfae8fc85c42a8a7dda413a06d6cdc8afa0acee620609af8a6ff8962db3b3bdaef27af7c08ab7ba71a23e939ce49638326e9807
|
||||
DIST faker-2.23.0.tar.gz 1709736 BLAKE2B e3524dbecbd1a4825ef8b38801ae1fa30a4392a7d2eb6fe1c94c3da0b0a4f18db621a42423510bf2f9c4bba175d66e10808252a923c9703aaa8de5d5ed54dd44 SHA512 b037833b3a6d07adaa70c665af66343d90389f282a2faf8ca55a5a81988163263e3b3069744e67ede206512bb67cf53a104eed34c39d92feb10a282f411bde41
|
||||
DIST faker-3.1.0.tar.gz 1726248 BLAKE2B 55e5ece86c262c91cc7b806f31fc852297158cbfa213e375173d6ed4956daf515f7b3e09273ed40c70b92c2de8e94fc8ff45f62d87b59a37ee097a2cb6bc6a9b SHA512 4fa1d1dc72ae0cb21cdf6fede999a6cbf43e20062306896cca5e2333da9423612ac11b5ecdfb033da46c1eb3141a0bcac47d25485666f126a35971acb4edfcb5
|
||||
|
@ -1,10 +1,11 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
USE_RUBY="ruby27 ruby30 ruby31"
|
||||
|
||||
RUBY_FAKEGEM_BINWRAP=""
|
||||
RUBY_FAKEGEM_RECIPE_DOC="none"
|
||||
|
||||
RUBY_FAKEGEM_GEMSPEC="faker.gemspec"
|
@ -1,3 +1,3 @@
|
||||
DIST git-1.12.0.tar.gz 218472 BLAKE2B f5e0465fd2f0f2f1eb1584da6757c012cf80457a15e61b9a974707c8f026f34940d86b25fdd708b9fa6071fc35e8e65c6c87bc83b94bb0daec61ef015a03184c SHA512 9967bf6c9f00e29442495fb24abfd1ea3b6ad0068829e9d86727d41ecf07be0b8fbdc6d05b3c245a23223b4e35e87e984e7a60a5883839e6de45f8bdac406b0d
|
||||
DIST git-1.13.0.tar.gz 219424 BLAKE2B 38d1821c59cbb743c50655e9426d77f76e77dda614a711b7d2185ed7f4caa853383ba85ecf05237da403061d002527c38a5c6e06cf5e6d482ac76bac49a0db56 SHA512 7920de37a3df67b743e91fb317bd0cba746d2343dfb77036398fc124d00eede7b9ade5dd2af5f26d65f1f24006608a29fca55d5be8a00557caaa31acd0b274d4
|
||||
DIST git-1.13.1.tar.gz 219640 BLAKE2B c87fce3f83130f7a75a10a21c4c980ec1d3594b20afa7b482f21077083076df7b4c462908a05c7b2fb3091e1fda00857ae40c4809e89f059f63ce12b119f307b SHA512 58cd7f38a5c1d5ab3d68cf2d4b026a80073f5dba3cb4895e220ecad5dbdf6a2df4e1e44570bde9256371c5089b81523aca4a5c686348bd04638f4dd09927e876
|
||||
DIST git-1.13.2.tar.gz 222112 BLAKE2B 13b2f8c67a27a147662fa019f6fac8f557e704fe1d0320188a097385f7692a190670ba375312e793d4d39fcf9ea7be8325394830c2c499b5132201f4a8f3f6ee SHA512 36425806c86e3c5d1a393ec657b60b8dafc88d92822270c299d3d1768c37d00e70b723d98a60127ab70de15809b27a49bcef5c8a972b88d7a516de093a643347
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue