922 changed files with 9995 additions and 11342 deletions
-
BINManifest.files.gz
-
BINapp-admin/Manifest.gz
-
2app-admin/awscli/Manifest
-
58app-admin/awscli/awscli-1.20.45.ebuild
-
52app-admin/awscli/awscli-1.20.46.ebuild
-
2app-admin/exo/Manifest
-
0app-admin/exo/exo-1.44.0.ebuild
-
2app-admin/hddtemp/hddtemp-0.3_beta15-r29.ebuild
-
2app-admin/pwgen/pwgen-2.08.ebuild
-
BINapp-arch/Manifest.gz
-
2app-arch/dpkg/dpkg-1.20.7.1.ebuild
-
2app-arch/lzip/lzip-1.22.ebuild
-
BINapp-crypt/Manifest.gz
-
1app-crypt/johntheripper-jumbo/Manifest
-
24app-crypt/johntheripper-jumbo/files/johntheripper-jumbo-1.9.0-fix-bashism.patch
-
143app-crypt/johntheripper-jumbo/johntheripper-jumbo-1.9.0_p20210920.ebuild
-
BINapp-editors/Manifest.gz
-
2app-editors/emacs/emacs-27.2-r4.ebuild
-
2app-editors/vim-core/vim-core-8.2.0814.ebuild
-
2app-editors/vim/vim-8.2.0814-r100.ebuild
-
BINapp-emacs/Manifest.gz
-
2app-emacs/emacs-common/emacs-common-1.8.ebuild
-
BINapp-emulation/Manifest.gz
-
1app-emulation/qemu/Manifest
-
26app-emulation/qemu/files/qemu-6.1.0-strings.patch
-
909app-emulation/qemu/qemu-6.1.0.ebuild
-
21app-emulation/qemu/qemu-9999.ebuild
-
2app-emulation/xen-tools/xen-tools-4.14.3.ebuild
-
BINapp-eselect/Manifest.gz
-
2app-eselect/eselect-vi/eselect-vi-1.2.ebuild
-
BINapp-misc/Manifest.gz
-
57app-misc/beep/beep-1.4.9-r1.ebuild
-
2app-misc/livecd-tools/livecd-tools-2.10.ebuild
-
2app-misc/sphinx/sphinx-2.2.11-r5.ebuild
-
BINapp-portage/Manifest.gz
-
108app-portage/kuroo/files/kuroo-1.2.1-cmake.patch
-
2app-portage/kuroo/kuroo-1.2.1.ebuild
-
2app-portage/mirrorselect/mirrorselect-2.2.6-r2.ebuild
-
BINapp-text/Manifest.gz
-
2app-text/aiksaurus/aiksaurus-1.2.1-r2.ebuild
-
2app-text/ghostscript-gpl/ghostscript-gpl-9.54.0-r1.ebuild
-
1app-text/libmwaw/Manifest
-
52app-text/libmwaw/libmwaw-0.3.19.ebuild
-
BINapp-vim/Manifest.gz
-
2app-vim/gentoo-syntax/gentoo-syntax-20210716.ebuild
-
BINdev-cpp/Manifest.gz
-
4dev-cpp/rttr/metadata.xml
-
BINdev-db/Manifest.gz
-
24dev-db/mycli/mycli-1.24.1.ebuild
-
27dev-db/mycli/mycli-9999.ebuild
-
14dev-db/mysql/Manifest
-
1dev-db/mysql/metadata.xml
-
995dev-db/mysql/mysql-5.7.27-r2.ebuild
-
986dev-db/mysql/mysql-5.7.29-r1.ebuild
-
977dev-db/mysql/mysql-5.7.30-r1.ebuild
-
1227dev-db/mysql/mysql-5.7.31.ebuild
-
1160dev-db/mysql/mysql-8.0.19-r2.ebuild
-
1143dev-db/mysql/mysql-8.0.20-r1.ebuild
-
1166dev-db/mysql/mysql-8.0.21-r1.ebuild
-
BINdev-java/Manifest.gz
-
1dev-java/asm-analysis/Manifest
-
28dev-java/asm-analysis/asm-analysis-9.1.ebuild
-
1dev-java/asm-commons/Manifest
-
28dev-java/asm-commons/asm-commons-9.1.ebuild
-
1dev-java/asm-tree/Manifest
-
28dev-java/asm-tree/asm-tree-9.1.ebuild
-
1dev-java/asm-util/Manifest
-
28dev-java/asm-util/asm-util-9.1.ebuild
-
1dev-java/asm/Manifest
-
23dev-java/asm/asm-9.1.ebuild
-
2dev-java/maven-bin/maven-bin-3.8.2.ebuild
-
2dev-java/tomcat-servlet-api/tomcat-servlet-api-10.0.10.ebuild
-
2dev-java/tomcat-servlet-api/tomcat-servlet-api-8.5.70.ebuild
-
2dev-java/tomcat-servlet-api/tomcat-servlet-api-9.0.52.ebuild
-
BINdev-lang/Manifest.gz
-
2dev-lang/icon/icon-9.5.20i.ebuild
-
BINdev-libs/Manifest.gz
-
1dev-libs/gjs/Manifest
-
49dev-libs/gjs/gjs-1.68.4.ebuild
-
1dev-libs/librdkafka/Manifest
-
97dev-libs/librdkafka/librdkafka-1.8.0.ebuild
-
1dev-libs/pocl/Manifest
-
20dev-libs/pocl/files/vendor_opencl_libs_location.patch
-
21dev-libs/pocl/metadata.xml
-
120dev-libs/pocl/pocl-1.7-r2.ebuild
-
1dev-libs/yascreen/Manifest
-
22dev-libs/yascreen/files/yascreen-1.86-fix-install.patch
-
11dev-libs/yascreen/metadata.xml
-
36dev-libs/yascreen/yascreen-1.86-r1.ebuild
-
28dev-perl/Archive-Any-Lite/Archive-Any-Lite-0.110.0.ebuild
-
1dev-perl/Archive-Any-Lite/Manifest
-
8dev-perl/Archive-Any-Lite/metadata.xml
-
21dev-perl/Array-Diff/Array-Diff-0.90.0.ebuild
-
1dev-perl/Array-Diff/Manifest
-
8dev-perl/Array-Diff/metadata.xml
-
19dev-perl/Data-Binary/Data-Binary-0.10.0.ebuild
-
1dev-perl/Data-Binary/Manifest
-
8dev-perl/Data-Binary/metadata.xml
-
21dev-perl/ExtUtils-MakeMaker-CPANfile/ExtUtils-MakeMaker-CPANfile-0.90.0.ebuild
-
1dev-perl/ExtUtils-MakeMaker-CPANfile/Manifest
@ -0,0 +1,58 @@ |
|||
# Copyright 1999-2021 Gentoo Authors |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI="7" |
|||
|
|||
PYTHON_COMPAT=( python3_{8..10} ) |
|||
|
|||
inherit bash-completion-r1 distutils-r1 |
|||
|
|||
DESCRIPTION="Universal Command Line Environment for AWS" |
|||
HOMEPAGE="https://pypi.org/project/awscli/" |
|||
#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" |
|||
SRC_URI="https://github.com/aws/aws-cli/archive/${PV}.tar.gz -> ${P}.tar.gz" |
|||
S="${WORKDIR}/aws-cli-${PV}" |
|||
|
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64 ~arm64 ~x86" |
|||
|
|||
# botocore is x.(y+1).z |
|||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 1)).$(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.4.0[${PYTHON_USEDEP}] |
|||
dev-python/pyyaml[${PYTHON_USEDEP}] |
|||
" |
|||
BDEPEND=" |
|||
test? ( |
|||
dev-python/mock[${PYTHON_USEDEP}] |
|||
) |
|||
" |
|||
|
|||
distutils_enable_tests --install nose |
|||
|
|||
PATCHES=( |
|||
"${FILESDIR}"/awscli-1.19.47-py39.patch |
|||
) |
|||
|
|||
python_test() { |
|||
distutils_install_for_testing |
|||
# integration tests require AWS credentials and Internet access |
|||
nosetests -v tests/{functional,unit} || |
|||
die "Tests failed for ${EPYTHON}" |
|||
} |
|||
|
|||
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 |
|||
} |
@ -0,0 +1,52 @@ |
|||
# Copyright 1999-2021 Gentoo Authors |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=8 |
|||
|
|||
PYTHON_COMPAT=( python3_{8..10} ) |
|||
inherit bash-completion-r1 distutils-r1 |
|||
|
|||
DESCRIPTION="Universal Command Line Environment for AWS" |
|||
HOMEPAGE="https://pypi.org/project/awscli/" |
|||
#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz" |
|||
SRC_URI="https://github.com/aws/aws-cli/archive/${PV}.tar.gz -> ${P}.tar.gz" |
|||
S="${WORKDIR}/aws-cli-${PV}" |
|||
|
|||
LICENSE="Apache-2.0" |
|||
SLOT="0" |
|||
KEYWORDS="~amd64 ~arm64 ~x86" |
|||
|
|||
# botocore is x.(y+1).z |
|||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 1)).$(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.4.0[${PYTHON_USEDEP}] |
|||
dev-python/pyyaml[${PYTHON_USEDEP}] |
|||
" |
|||
|
|||
distutils_enable_tests --install nose |
|||
|
|||
PATCHES=( |
|||
"${FILESDIR}"/awscli-1.19.47-py39.patch |
|||
) |
|||
|
|||
python_test() { |
|||
distutils_install_for_testing |
|||
# integration tests require AWS credentials and Internet access |
|||
nosetests -v tests/{functional,unit} || |
|||
die "Tests failed for ${EPYTHON}" |
|||
} |
|||
|
|||
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 |
|||
} |
@ -1 +1 @@ |
|||
DIST exo-1.43.0.tar.gz 5504583 BLAKE2B ffd2d25e6eea77a99390aac9f725728b3f1515e9ed73b4181e794b60b7641b44fe29abc81da3231fa8e4932da81eb6ce30808ce6a56ae5c4a26a1e10372cb64a SHA512 08e5e38609eb21addc56966e672e9b84acb6b36b6bdb0eb977d8fecbf2bca9af19a46a5e6efd50cb92322da248767aa3af3b8f04b9d893fc704d6c08feb8f6d2 |
|||
DIST exo-1.44.0.tar.gz 5507722 BLAKE2B b42424a1327f0cb28b78f721f465b156eed6a223937e7d08f0f16a3829b497dd1c6a9d450d6d4d4cbf1db033729d91fa1566fa9c7871a07f32556cd2a153bfcd SHA512 8baaea5c727cdcf1b8b4272820d6f2b2740320e688c16b5efc7c9e51ce38c7951fd8252bf41d736ca0c3f7da605d751f56b79544af75f8d0ef0f671e867b6d59 |
@ -1 +1,2 @@ |
|||
DIST john-1.9.0-jumbo-1.tar.xz 33638768 BLAKE2B 2fd6813e234308408d42581705ee8b25f9217a3dfb43f05483156f7bb67d0ce0d6de9c3ce8c2e4a17bb99bb377119dae2897bc08c800e7bc80bc6cf245400df6 SHA512 c5cb5dc739ee4c666f8479cdf10511fddc391b590c59f90c060d3ccd8449b794ac7b831a6d1f7553883892499e709a66578cfa4d62caef9b7e0a831eb827e808 |
|||
DIST johntheripper-jumbo-1.9.0_p20210920.tar.gz 47758128 BLAKE2B e85255dc218c43e6358f76eac1e79af01d437a7a1fcddd608a390734fdc4070cbf949b8abc080b82decf4a1f5e32d2baa6d2a09d385a31913d8e988c8732e85e SHA512 5121434ad275921fe6288c51fd9dfd36ed3162387e70e8089bbc266d4a17ea461b72ce26b2004acfb62d95a9ee2d570ef3b3f00c1d031abd8cff2f20c3ab480a |
@ -0,0 +1,24 @@ |
|||
https://patch-diff.githubusercontent.com/raw/openwall/john/pull/4822.patch |
|||
|
|||
From dd9501341808fe19b9c5cd4f8f04edfc5f377077 Mon Sep 17 00:00:00 2001 |
|||
From: Sam James <sam@gentoo.org> |
|||
Date: Wed, 22 Sep 2021 19:34:38 +0100 |
|||
Subject: [PATCH] configure.ac: avoid bashism in pkg-config check |
|||
|
|||
== is a Bashism and configure scripts need to work
|
|||
with a POSIX shell, so let's change to = (like in |
|||
the other condition). |
|||
|
|||
Signed-off-by: Sam James <sam@gentoo.org> |
|||
--- a/src/configure.ac
|
|||
+++ b/src/configure.ac
|
|||
@@ -347,7 +347,7 @@ AS_IF([test -z "$STRIP"], [AC_CHECK_TOOL([STRIP], [strip])])
|
|||
dnl Check if we have this at all |
|||
PKG_PROG_PKG_CONFIG |
|||
AC_MSG_CHECKING([if pkg-config will be used]) |
|||
-if test "x$PKG_CONFIG" = x || test "x$enable_pkg_config" == xno ; then
|
|||
+if test "x$PKG_CONFIG" = x || test "x$enable_pkg_config" = xno ; then
|
|||
JTR_MSG_RESULT_FAILIF_FORCED([xno], [x$enable_pkg_config], [pkg-config is NOT available]) |
|||
PKG_CONFIG=no |
|||
else |
|||
|
@ -0,0 +1,143 @@ |
|||
# Copyright 1999-2021 Gentoo Authors |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=7 |
|||
|
|||
inherit autotools flag-o-matic toolchain-funcs pax-utils |
|||
|
|||
DESCRIPTION="Fast password cracker" |
|||
HOMEPAGE="http://www.openwall.com/john/" |
|||
|
|||
MY_PN="JohnTheRipper" |
|||
|
|||
if [[ ${PV} == "9999" ]] ; then |
|||
EGIT_REPO_URI="https://github.com/magnumripper/${MY_PN}.git" |
|||
inherit git-r3 |
|||
else |
|||
JUMBO="jumbo-1.1" |
|||
MY_PV="${PV}-${JUMBO}" |
|||
MY_P="john-${MY_PV}" |
|||
HASH_COMMIT="43c7f8850736d4ec68bf0a022ae9fb34c274a01d" |
|||
|
|||
SRC_URI="https://github.com/openwall/john/archive/${HASH_COMMIT}.tar.gz -> ${P}.tar.gz" |
|||
S="${WORKDIR}/john-${HASH_COMMIT}" |
|||
|
|||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos" |
|||
fi |
|||
|
|||
LICENSE="GPL-2" |
|||
SLOT="0" |
|||
IUSE="custom-cflags kerberos mpi opencl openmp pcap" |
|||
|
|||
DEPEND=">=dev-libs/openssl-1.0.1:= |
|||
virtual/libcrypt:= |
|||
mpi? ( virtual/mpi ) |
|||
opencl? ( virtual/opencl ) |
|||
kerberos? ( virtual/krb5 ) |
|||
pcap? ( net-libs/libpcap ) |
|||
dev-libs/gmp:= |
|||
sys-libs/zlib |
|||
app-arch/bzip2" |
|||
RDEPEND="${DEPEND} |
|||
!app-crypt/johntheripper" |
|||
|
|||
PATCHES=( |
|||
"${FILESDIR}"/${PN}-1.9.0-fix-bashism.patch |
|||
) |
|||
|
|||
pkg_setup() { |
|||
if use openmp && [[ ${MERGE_TYPE} != binary ]]; then |
|||
tc-has-openmp || die "Please switch to an OpenMP compatible compiler" |
|||
fi |
|||
} |
|||
|
|||
src_prepare() { |
|||
default |
|||
|
|||
cd src || die |
|||
eautoreconf |
|||
|
|||
sed -i 's#$prefix/share/john#/etc/john#' configure || die |
|||
} |
|||
|
|||
src_configure() { |
|||
cd src || die |
|||
|
|||
use custom-cflags || strip-flags |
|||
|
|||
econf \ |
|||
--enable-pkg-config \ |
|||
--disable-native-march \ |
|||
--disable-native-tests \ |
|||
--disable-rexgen \ |
|||
--with-openssl \ |
|||
--with-systemwide \ |
|||
$(use_enable mpi) \ |
|||
$(use_enable opencl) \ |
|||
$(use_enable openmp) \ |
|||
$(use_enable pcap) |
|||
} |
|||
|
|||
src_compile() { |
|||
emake -C src |
|||
} |
|||
|
|||
src_test() { |
|||
pax-mark -mr run/john |
|||
#if use opencl; then |
|||
#gpu tests fail in portage, so run cpu only tests |
|||
# ./run/john --device=cpu --test=0 --verbosity=2 || die |
|||
#else |
|||
#weak tests |
|||
# ./run/john --test=0 --verbosity=2 || die |
|||
#strong tests |
|||
#./run/john --test=1 --verbosity=2 || die |
|||
#fi |
|||
ewarn "When built systemwide, john can't run tests without reading files in /etc." |
|||
ewarn "Don't bother opening a bug for this unless you include a patch to fix it" |
|||
} |
|||
|
|||
src_install() { |
|||
# Executables |
|||
dosbin run/john |
|||
newsbin run/mailer john-mailer |
|||
|
|||
pax-mark -mr "${ED}/usr/sbin/john" |
|||
|
|||
# grep '$(LN)' Makefile.in | head -n-3 | tail -n+2 | cut -d' ' -f3 | cut -d/ -f3 |
|||
local s |
|||
for s in \ |
|||
unshadow unafs undrop unique ssh2john putty2john pfx2john keepass2john keyring2john \ |
|||
zip2john gpg2john rar2john racf2john keychain2john kwallet2john pwsafe2john dmg2john \ |
|||
hccap2john base64conv truecrypt_volume2john keystore2john |
|||
do |
|||
dosym john /usr/sbin/${s} |
|||
done |
|||
|
|||
# Scripts |
|||
exeinto /usr/share/john |
|||
doexe run/*.pl |
|||
doexe run/*.py |
|||
cd run || die |
|||
|
|||
local s |
|||
for s in *.pl *.py; do |
|||
dosym ../share/john/${s} /usr/bin/${s} |
|||
done |
|||
cd .. || die |
|||
|
|||
if use opencl; then |
|||
insinto /etc/john |
|||
doins -r run/opencl |
|||
fi |
|||
|
|||
# Config files |
|||
insinto /etc/john |
|||
doins run/*.chr run/password.lst |
|||
doins run/*.conf |
|||
doins -r run/rules run/ztex |
|||
|
|||
# dDocumentation |
|||
rm -f doc/README || die |
|||
dodoc -r README.md doc/* |
|||
} |
@ -1 +1,2 @@ |
|||
DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4 |
|||
DIST qemu-6.1.0.tar.xz 111258808 BLAKE2B 412eecf6d39debd6089b26d3b22e5d25c6c8c30d2eaf31b17c25cc2b3a1b10794a30218dfb151c78801aa295255aa974b297f1fe05b93f14334f203c2af5ccee SHA512 3378ae21c75b77ee6a759827f1fcf7b2a50a0fef07e3b0e89117108022a8d8655fa977e4d65596f4f24f7c735c6594d44b0c6f69732ea4465e88a7406b1d5d3c |
@ -0,0 +1,26 @@ |
|||
Forward-ported from original patch for 5.2.0. |
|||
|
|||
diff --git a/configure b/configure
|
|||
index da2501489f..4660ee3ee5 100755
|
|||
--- a/configure
|
|||
+++ b/configure
|
|||
@@ -516,6 +516,7 @@ ld="${LD-${cross_prefix}ld}"
|
|||
ranlib="${RANLIB-${cross_prefix}ranlib}" |
|||
nm="${NM-${cross_prefix}nm}" |
|||
strip="${STRIP-${cross_prefix}strip}" |
|||
+strings="${STRINGS-${cross_prefix}strings}"
|
|||
windres="${WINDRES-${cross_prefix}windres}" |
|||
pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}" |
|||
query_pkg_config() { |
|||
@@ -2380,9 +2381,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 |
@ -0,0 +1,909 @@ |
|||
# Copyright 1999-2021 Gentoo Authors |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI="7" |
|||
|
|||
PYTHON_COMPAT=( python3_{7,8,9,10} ) |
|||
PYTHON_REQ_USE="ncurses,readline" |
|||
|
|||
FIRMWARE_ABI_VERSION="6.1.0" |
|||
|
|||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ |
|||
pax-utils xdg-utils |
|||
|
|||
if [[ ${PV} = *9999* ]]; then |
|||
EGIT_REPO_URI="https://git.qemu.org/git/qemu.git" |
|||
EGIT_SUBMODULES=( |
|||
meson |
|||
tests/fp/berkeley-softfloat-3 |
|||
tests/fp/berkeley-testfloat-3 |
|||
ui/keycodemapdb |
|||
) |
|||
inherit git-r3 |
|||
SRC_URI="" |
|||
else |
|||
SRC_URI="https://download.qemu.org/${P}.tar.xz" |
|||
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86" |
|||
fi |
|||
|
|||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools" |
|||
HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org" |
|||
|
|||
LICENSE="GPL-2 LGPL-2 BSD-2" |
|||
SLOT="0" |
|||
|
|||
IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug +doc |
|||
+fdt fuse glusterfs gnutls gtk infiniband iscsi io-uring |
|||
jack jemalloc +jpeg kernel_linux |
|||
kernel_FreeBSD lzo multipath |
|||
ncurses nfs nls numa opengl +oss +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 |
|||
xfs zstd" |
|||
|
|||
COMMON_TARGETS=" |
|||
aarch64 |
|||
alpha |
|||
arm |
|||
cris |
|||
hppa |
|||
i386 |
|||
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 |
|||
ppc64abi32 |
|||
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 ) |
|||
sdl-image? ( sdl ) |
|||
static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy !udev ) |
|||
static-user? ( !plugins ) |
|||
vhost-user-fs? ( caps seccomp ) |
|||
virgl? ( opengl ) |
|||
virtfs? ( caps xattr ) |
|||
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=" |
|||
dev-libs/libxml2[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 ) |
|||
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.0[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-fabric/libibumad:=[static-libs(+)] |
|||
sys-fabric/libibverbs:=[static-libs(+)] |
|||
sys-fabric/librdmacm:=[static-libs(+)] |
|||
) |
|||
iscsi? ( net-libs/libiscsi ) |
|||
io-uring? ( sys-libs/liburing:=[static-libs(+)] ) |
|||
jack? ( virtual/jack ) |
|||
jemalloc? ( dev-libs/jemalloc ) |
|||
jpeg? ( virtual/jpeg:0=[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] |
|||
) |
|||
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:= ) |
|||
xfs? ( sys-fs/xfsprogs[static-libs(+)] ) |
|||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] ) |
|||
" |
|||
|
|||
EDK2_OVMF_VERSION="202105" |
|||
SEABIOS_VERSION="1.14.0" |
|||
|
|||
X86_FIRMWARE_DEPEND=" |
|||
pin-upstream-blobs? ( |
|||
~sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}[binary] |
|||
~sys-firmware/ipxe-1.21.1[binary,qemu] |
|||
~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios] |
|||
~sys-firmware/sgabios-0.1_pre10[binary] |
|||
) |
|||
!pin-upstream-blobs? ( |
|||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION} |
|||
sys-firmware/ipxe[qemu] |
|||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] |
|||
sys-firmware/sgabios |
|||
)" |
|||
PPC_FIRMWARE_DEPEND=" |
|||
pin-upstream-blobs? ( |
|||
~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios] |
|||
) |
|||
!pin-upstream-blobs? ( |
|||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] |
|||
) |
|||
" |
|||
|
|||
BDEPEND=" |
|||
$(python_gen_impl_dep) |
|||
dev-lang/perl |
|||
sys-apps/texinfo |
|||
virtual/pkgconfig |
|||
doc? ( |
|||
dev-python/sphinx |
|||
dev-python/sphinx_rtd_theme |
|||
) |
|||
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 )" |
|||
|
|||
PATCHES=( |
|||
"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch |
|||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch |
|||
"${FILESDIR}"/${PN}-6.0.0-make.patch |
|||
"${FILESDIR}"/${PN}-6.1.0-strings.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-ppc64abi32 |
|||
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" |
|||
|
|||
# Remove bundled copy of libfdt |
|||
rm -r dtc || 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}" |
|||
|
|||
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 |
|||
|
|||
# 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 |
|||
--python="${PYTHON}" |
|||
--cc="$(tc-getCC)" |
|||
--cxx="$(tc-getCXX)" |
|||
--host-cc="$(tc-getBUILD_CC)" |
|||
$(use_enable debug debug-info) |
|||
$(use_enable debug debug-tcg) |
|||
$(use_enable doc docs) |
|||
$(use_enable nls gettext) |
|||
$(use_enable plugins) |
|||
$(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 |
|||
} |
|||
conf_opts+=( |
|||
$(conf_notuser accessibility brlapi) |
|||
$(conf_notuser aio linux-aio) |
|||
$(conf_notuser bzip2) |
|||
$(conf_notuser capstone) |
|||
$(conf_notuser caps cap-ng) |
|||
$(conf_notuser curl) |
|||
$(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_notuser jemalloc 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 png vnc-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 vhost-user-fs) |
|||
$(conf_tools vhost-user-fs virtiofsd) |
|||
$(conf_notuser virgl virglrenderer) |
|||
$(conf_softmmu virtfs) |
|||
$(conf_notuser vnc) |
|||
$(conf_notuser vte) |
|||
$(conf_notuser xen) |
|||
$(conf_notuser xen xen-pci-passthrough) |
|||
$(conf_notuser xfs xfsctl) |
|||
# use prebuilt keymaps, bug #759604 |
|||
--disable-xkbcommon |
|||
$(conf_notuser zstd) |
|||
) |
|||
|
|||
if [[ ${buildtype} == "user" ]] ; then |
|||
conf_opts+=( --disable-libxml2 ) |
|||
else |
|||
conf_opts+=( --enable-libxml2 ) |
|||
fi |
|||
|
|||
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=$(printf "%s," "${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" |
|||
;; |
|||
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" |
|||
|
|||
# FreeBSD's kernel does not support QEMU assigning/grabbing |
|||
# host USB devices yet |
|||
use kernel_FreeBSD && \ |
|||
sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak |
|||
} |
|||
|
|||
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" |
|||
default |
|||
fi |
|||
|
|||
if [[ -n ${softmmu_targets} ]]; then |
|||
cd "${S}/softmmu-build" |
|||
default |
|||
fi |
|||
|
|||
cd "${S}/tools-build" |
|||
default |
|||
} |
|||
|
|||
src_test() { |
|||
if [[ -n ${softmmu_targets} ]]; then |
|||
cd "${S}/softmmu-build" |
|||
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" |
|||
emake DESTDIR="${ED}" install |
|||
|
|||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348 |
|||
pushd "${ED}"/usr/bin >/dev/null |
|||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 |
|||
popd >/dev/null |
|||
|
|||
# Install config file example for qemu-bridge-helper |
|||
insinto "/etc/qemu" |
|||
doins "${FILESDIR}/bridge.conf" |
|||
|
|||
cd "${S}" |
|||
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 |
|||
rm "${ED}/usr/share/qemu/bios.bin" |
|||
rm "${ED}/usr/share/qemu/bios-256k.bin" |
|||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then |
|||
dosym ../seabios/bios.bin /usr/share/qemu/bios.bin |
|||
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 |
|||
rm "${ED}/usr/share/qemu/sgabios.bin" |
|||
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 |
|||
rm "${ED}"/usr/share/qemu/pxe-*.rom |
|||
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:" |
|||
ewarn " $(best_version sys-firmware/edk2-ovmf)" |
|||
ewarn " $(best_version sys-firmware/ipxe)" |
|||
ewarn " $(best_version sys-firmware/seabios)" |
|||
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)" |
|||
echo " $(best_version sys-firmware/edk2-ovmf)" |
|||
if has_version 'sys-firmware/edk2-ovmf[binary]'; then |
|||
echo " USE=binary" |
|||
else |
|||
echo " USE=''" |
|||
fi |
|||
echo " $(best_version sys-firmware/ipxe)" |
|||
echo " $(best_version sys-firmware/seabios)" |
|||
if has_version 'sys-firmware/seabios[binary]'; then |
|||
echo " USE=binary" |
|||
else |
|||
echo " USE=''" |
|||
fi |
|||
echo " $(best_version sys-firmware/sgabios)" |
|||
} |
|||
|
|||
pkg_postrm() { |
|||
xdg_icon_cache_update |
|||
} |
@ -0,0 +1,57 @@ |
|||
# Copyright 1999-2021 Gentoo Authors |
|||
# Distributed under the terms of the GNU General Public License v2 |
|||
|
|||
EAPI=7 |
|||
|
|||
inherit fcaps toolchain-funcs |
|||
|
|||
DESCRIPTION="Advanced PC speaker beeper" |
|||
HOMEPAGE="https://github.com/spkr-beep" |
|||
SRC_URI="https://github.com/spkr-beep/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" |
|||
|
|||
LICENSE="GPL-2" |
|||
SLOT="0" |
|||
KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86" |
|||
|
|||
# Tests require a speaker |
|||
RESTRICT="test" |
|||
|
|||
src_prepare() { |
|||
default |
|||
|
|||
sed -i -e "s#-D_FORTIFY_SOURCE=2##g;" GNUmakefile || die |
|||
} |
|||
|
|||
src_compile() { |
|||
emake \ |
|||
COMPILERS=gcc \ |
|||
COMPILER_gcc="$(tc-getCC)" \ |
|||
LINKER_gcc="$(tc-getCC)" \ |
|||
CFLAGS_gcc="${CFLAGS}" \ |
|||
LDFLAGS="${LDFLAGS}" \ |
|||
CPPFLAGS_gcc="" \ |
|||
all |
|||
} |
|||
|
|||
src_test() { |
|||
emake \ |
|||
COMPILERS=gcc \ |
|||
COMPILER_gcc="$(tc-getCC)" \ |
|||
LINKER_gcc="$(tc-getCC)" \ |
|||
CFLAGS_gcc="${CFLAGS}" \ |
|||
LDFLAGS="${LDFLAGS}" \ |
|||
check |
|||
} |
|||
|
|||
src_install() { |
|||
dobin beep |
|||
doman "${PN}.1" |
|||
|
|||
fperms 0711 /usr/bin/beep |
|||
|
|||
einstalldocs |
|||
} |
|||
|
|||
pkg_postinst() { |
|||
fcaps cap_dac_override,cap_sys_tty_config "${EROOT}/usr/bin/beep" |
|||
} |
@ -0,0 +1,108 @@ |
|||
Drop bogus dependencies, add implicit. |
|||
|
|||
--- a/CMakeLists.txt
|
|||
+++ b/CMakeLists.txt
|
|||
@@ -11,25 +11,32 @@
|
|||
include(ECMInstallIcons) |
|||
include(ECMAddTests) |
|||
|
|||
-find_package(Qt5Widgets REQUIRED)
|
|||
+# Works without this explicit declaration but it ought to be here for correctness
|
|||
+find_package( SQLite3 REQUIRED )
|
|||
|
|||
-find_package( KF5 ${KF5_MIN_VERSION} REQUIRED
|
|||
- Auth
|
|||
- Config
|
|||
- ConfigWidgets
|
|||
- CoreAddons
|
|||
- I18n
|
|||
- IconThemes
|
|||
- ItemModels
|
|||
- ItemViews
|
|||
+# These are actually all deps of other things
|
|||
+find_package( Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
|
|||
+ Core
|
|||
+ Gui
|
|||
+ Widgets
|
|||
+)
|
|||
+
|
|||
+find_package( KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
|||
+ # These are all required directly and not provided by any dependencies. It "compiles and works" on the development system with just these
|
|||
KIO |
|||
Notifications |
|||
ThreadWeaver |
|||
TextWidgets |
|||
- Su
|
|||
- WidgetsAddons
|
|||
- WindowSystem
|
|||
- XmlGui
|
|||
+ # Required in link step
|
|||
+ XmlGui # MainWindow is XmlGuiWindow
|
|||
+ ItemViews # TreeWidgetSearchLine
|
|||
+ # These seem to be provided by deps, but should be direct deps too
|
|||
+ ConfigWidgets
|
|||
+ I18n # i18n(QStr)
|
|||
+ Config # Config dialogs
|
|||
+ Auth # KAuthExecuteJob &c.
|
|||
+ CoreAddons # AboutData? Job Process User?
|
|||
+ WidgetsAddons # Font(Chooser|Requester)? PageWidget? MessageBox ...
|
|||
) |
|||
|
|||
# |
|||
--- a/src/CMakeLists.txt
|
|||
+++ b/src/CMakeLists.txt
|
|||
@@ -102,25 +102,37 @@
|
|||
kde_enable_exceptions() |
|||
|
|||
target_link_libraries( kuroo |
|||
+ # These are all used directly and not provided by any other dependency. It "compiles and works" on the development system with just these
|
|||
+ KF5::KIOCore
|
|||
+ KF5::Notifications
|
|||
+ KF5::ThreadWeaver
|
|||
+ KF5::TextWidgets
|
|||
+ KF5::XmlGui
|
|||
+ sqlite3 # TODO: use some sort of ORM maybe find_package?
|
|||
+ KF5::ItemViews
|
|||
+ # Builds without these specified, but they should be necessary
|
|||
Qt5::Core |
|||
+ Qt5::Gui
|
|||
+ Qt5::Widgets
|
|||
KF5::Auth |
|||
+ KF5::AuthCore
|
|||
KF5::ConfigCore |
|||
KF5::ConfigGui |
|||
+ KF5::ConfigWidgets
|
|||
KF5::CoreAddons |
|||
KF5::I18n |
|||
- KF5::ItemViews
|
|||
- KF5::KIOCore
|
|||
- KF5::Notifications
|
|||
- KF5::ThreadWeaver
|
|||
- KF5::TextWidgets
|
|||
KF5::WidgetsAddons |
|||
- KF5::WindowSystem
|
|||
- KF5::XmlGui
|
|||
- sqlite3
|
|||
) |
|||
|
|||
add_executable( kuroo_helper auth/kuroohelper.cpp ) |
|||
-target_link_libraries( kuroo_helper Qt5::Core KF5::KIOCore KF5::Auth KF5::CoreAddons )
|
|||
+target_link_libraries( kuroo_helper
|
|||
+ # These are all used directly and not provided by any other dependency. It "compiles and works" on the development system with just these
|
|||
+ KF5::KIOCore
|
|||
+ KF5::Auth
|
|||
+ # Builds without explicit declaration, but these make sense
|
|||
+ Qt5::Core
|
|||
+ KF5::CoreAddons # KProcess
|
|||
+)
|
|||
install( TARGETS kuroo_helper DESTINATION ${KAUTH_HELPER_INSTALL_DIR} ) |
|||
kauth_install_helper_files( kuroo_helper org.gentoo.portage.kuroo root ) |
|||
kauth_install_actions( org.gentoo.portage.kuroo auth/org.gentoo.portage.kuroo.actions ) |
|||
@@ -139,6 +151,6 @@
|
|||