parent
b5c085cdc9
commit
23a06e9379
Binary file not shown.
Binary file not shown.
@ -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
|
||||
}
|
@ -1,2 +1,3 @@
|
||||
DIST keepassxc-2.6.4-src.tar.xz 7575164 BLAKE2B ca02e59c7355f7f7e14bb4fa318fab66d354e84d1025847b413b7e838dc5a42024b963dea1e3ba2060c51da7daed2ee5b220e5dab72b5813d39c04b49c6ba9ba SHA512 3bde0c8670ba14be80c6f3676bd447b0855a2af2915a395ee236c2d4c6e4b859936351643d679480aae1fcf55ed4315447ae927ac9bdedeb0332593cb4e9fedb
|
||||
DIST keepassxc-2.6.5.tar.gz 9809372 BLAKE2B d51782c65fffc4499d85cfa893a908b1f5964fc018a8b878ee61896684e55c8f3d935f7c14d38ba75f26fda3b59b6e408b77b68e11504b9fb95d82fdcc02bf5a SHA512 a5993170ff7e28cb56fc14fbbb7e93a5821b2edefd6d8cd6ce798f810c8045595913a8508c9a256363028be93aaad6ff2f13904ebc19229309d356e119ed0dce
|
||||
DIST keepassxc-2.6.6.tar.gz 9809433 BLAKE2B cfaadae509ff2a4fb4190dde8672201af128c2ae17950b7a4effa694ed3dc00f0a7d275d5031175191ce0f4bd7e323d29cfb3fa586653f3d3cd31f1747ef8c2f SHA512 fb41d25b9b4ac97feddf9632e7a26140d7a9fbba4256ac0394814fd9097d0d30f810cb48939325b4b858cac1378747aadd1987eb468657c929e0008b736eddd7
|
||||
|
@ -0,0 +1,99 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit cmake flag-o-matic xdg
|
||||
|
||||
DESCRIPTION="KeePassXC - KeePass Cross-platform Community Edition"
|
||||
HOMEPAGE="https://keepassxc.org"
|
||||
|
||||
if [[ "${PV}" != 9999 ]] ; then
|
||||
if [[ "${PV}" == *_beta* ]] ; then
|
||||
SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV/_/-}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P/_/-}"
|
||||
else
|
||||
SRC_URI="https://github.com/keepassxreboot/keepassxc/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
#SRC_URI="https://github.com/keepassxreboot/keepassxc/releases/download/${PV}/${P}-src.tar.xz"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
||||
fi
|
||||
else
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/keepassxreboot/${PN}"
|
||||
fi
|
||||
|
||||
LICENSE="LGPL-2.1 GPL-2 GPL-3"
|
||||
SLOT="0"
|
||||
IUSE="autotype browser ccache doc keeshare +network test yubikey"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
RDEPEND="
|
||||
app-crypt/argon2:=
|
||||
dev-libs/libgcrypt:=
|
||||
>=dev-libs/libsodium-1.0.12:=
|
||||
dev-qt/qtconcurrent:5
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtdbus:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtnetwork:5
|
||||
dev-qt/qtsvg:5
|
||||
dev-qt/qtwidgets:5
|
||||
media-gfx/qrencode:=
|
||||
sys-libs/readline:0=
|
||||
sys-libs/zlib:=
|
||||
autotype? (
|
||||
dev-qt/qtx11extras:5
|
||||
x11-libs/libX11
|
||||
x11-libs/libXi
|
||||
x11-libs/libXtst
|
||||
)
|
||||
keeshare? ( dev-libs/quazip:0= )
|
||||
yubikey? ( sys-auth/ykpers )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
dev-qt/linguist-tools:5
|
||||
dev-qt/qttest:5
|
||||
"
|
||||
BDEPEND="
|
||||
ccache? ( dev-util/ccache )
|
||||
doc? ( dev-ruby/asciidoctor )
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
use test || \
|
||||
sed -e "/^find_package(Qt5Test/d" -i CMakeLists.txt || die
|
||||
|
||||
if [[ "${PV}" != *_beta* ]] && [[ "${PV}" != 9999 ]] && [[ ! -f .version ]] ; then
|
||||
printf '%s' "${PV}" > .version || die
|
||||
fi
|
||||
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# https://github.com/keepassxreboot/keepassxc/issues/5801
|
||||
filter-flags -flto*
|
||||
|
||||
local mycmakeargs=(
|
||||
-DWITH_CCACHE="$(usex ccache)"
|
||||
-DWITH_GUI_TESTS=OFF
|
||||
-DWITH_TESTS="$(usex test)"
|
||||
-DWITH_XC_AUTOTYPE="$(usex autotype)"
|
||||
-DWITH_XC_DOCS="$(usex doc)"
|
||||
-DWITH_XC_BROWSER="$(usex browser)"
|
||||
-DWITH_XC_FDOSECRETS=ON
|
||||
-DWITH_XC_KEESHARE="$(usex keeshare)"
|
||||
-DWITH_XC_KEESHARE_SECURE="$(usex keeshare)"
|
||||
-DWITH_XC_NETWORKING="$(usex network)"
|
||||
-DWITH_XC_SSHAGENT=ON
|
||||
-DWITH_XC_UPDATECHECK=OFF
|
||||
-DWITH_XC_YUBIKEY="$(usex yubikey)"
|
||||
)
|
||||
if [[ "${PV}" == *_beta* ]] ; then
|
||||
mycmakeargs+=( -DOVERRIDE_VERSION="${PV/_/-}" )
|
||||
fi
|
||||
cmake_src_configure
|
||||
}
|
@ -1,2 +1,2 @@
|
||||
DIST password-store-1.7.3.tar.xz 63416 BLAKE2B 5931608e0208dfe6965b79f586c153a4930d1c3d3b74433d026ee0bc5889fcc29334c637ca4fb68308d0169bad7c8235b6632e9f80eda1e24f0f5721353f88e3 SHA512 89755a7b02f05d75055a9fc14fd3f456c0a49ec31bdffd097a027f91228c64a98b18c1e80017aeda811773ae3287ff1b9737532da8ded06799d8fe3979ca06f7
|
||||
DIST password-store-918992c19231b33b3d4a3288a7288a620e608cb4.tar.xz 65000 BLAKE2B 2bd7768fe1a93ce55b0daf15088bde7ce75dbe33f44b1890e27ca6efe70fadb07610b830bd9926f6c88b33c4d3ae208b0035f13e81f28978cb26454332a19b13 SHA512 63a448e4da3da60d3dfe02b02eb11417e179c4f0b973c822bfbb485262076ae7458c3e35e95b2ad9997a2ddfa8bbe91a822c86d7ad5d2f7a6e6cb90d11774aa9
|
||||
DIST password-store-1.7.4.tar.xz 65272 BLAKE2B db1a34b5900802731deaf09d3ade1d3f00022fd21eb0b21140dca3d399c89183dc901e5bce15d7bb6041e62017e2b8b6df61c6ec3eadb1df6c0278dbc6c2bc11 SHA512 1fe108895b224451b54e545d399b6a97040e094049448509f92ae33164a5cf9044a91f52edfc705fcf333f6526df1a478deeebc4df109764d58100f9e3e22681
|
||||
|
@ -1,2 +1,3 @@
|
||||
DIST sudo-1.9.6p1.tar.gz 4119888 BLAKE2B 02bdb551c46cff11ac56e64937c64e6a29ccd8e0af34ea2f6b33c223bee8f7ad958d0fc3d7ef8ef12bf5bc82565769b923ff112a3f3d6bf6999fa4f6ea55e38e SHA512 632dfe72f04ce9a7a5a7236fcd5c09ce4535e695ced49d24dd848e3a7b1bea7380df44188b9e475af4271069539b5a5816948a98fbb0649ebebaba8b4c4b7745
|
||||
DIST sudo-1.9.7.tar.gz 4194242 BLAKE2B 5addf9fc0a8fea8ada89f240f827dcec973277f120ad98f7942f8e46e2869c676eaca044b9c46e43dab120efea3413c71e19c30ef5b0d9cc4d9ad8f0413dbffe SHA512 53e9f18f6c0acd4f80c0cd695cd23781310e9edd305d1b3ea19653efa3fd7faba149daef0ba4953615b140a8816bc980c9bd8d28545dd8db98075abf11b63e61
|
||||
DIST sudo-1.9.7p1.tar.gz 4197591 BLAKE2B fff3eab8b4de6276135229c5fe12e7eced98af988b7686600e6a63b8615f6357ab2c5f95ef6f1872534476c4398a28c4f468ffc316e0cff7d4b32e6068aa97d4 SHA512 bc85d9de1566de24883375edd1c4cd24b1f24437bb16d181bfa3c9c94cead220c69ad00d6727560ca195765ced970e95d69b9ce01dbea448de39afac9a902fb4
|
||||
|
@ -0,0 +1,254 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit pam multilib libtool systemd tmpfiles toolchain-funcs
|
||||
|
||||
MY_P="${P/_/}"
|
||||
MY_P="${MY_P/beta/b}"
|
||||
|
||||
DESCRIPTION="Allows users or groups to run commands as other users"
|
||||
HOMEPAGE="https://www.sudo.ws/"
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
inherit mercurial
|
||||
EHG_REPO_URI="https://www.sudo.ws/repos/sudo"
|
||||
else
|
||||
uri_prefix=
|
||||
case ${P} in
|
||||
*_beta*|*_rc*) uri_prefix=beta/ ;;
|
||||
esac
|
||||
|
||||
SRC_URI="https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz
|
||||
ftp://ftp.sudo.ws/pub/sudo/${uri_prefix}${MY_P}.tar.gz"
|
||||
if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~sparc-solaris"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Basic license is ISC-style as-is, some files are released under
|
||||
# 3-clause BSD license
|
||||
LICENSE="ISC BSD"
|
||||
SLOT="0"
|
||||
IUSE="gcrypt ldap nls offensive pam sasl +secure-path selinux +sendmail skey ssl sssd"
|
||||
|
||||
DEPEND="
|
||||
sys-libs/zlib:=
|
||||
gcrypt? ( dev-libs/libgcrypt:= )
|
||||
ldap? (
|
||||
>=net-nds/openldap-2.1.30-r1
|
||||
sasl? (
|
||||
dev-libs/cyrus-sasl
|
||||
net-nds/openldap[sasl]
|
||||
)
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
sasl? ( dev-libs/cyrus-sasl )
|
||||
skey? ( >=sys-auth/skey-1.1.5-r1 )
|
||||
ssl? ( dev-libs/openssl:0= )
|
||||
sssd? ( sys-auth/sssd[sudo] )
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
>=app-misc/editor-wrapper-3
|
||||
virtual/editor
|
||||
ldap? ( dev-lang/perl )
|
||||
pam? ( sys-auth/pambase )
|
||||
selinux? ( sec-policy/selinux-sudo )
|
||||
sendmail? ( virtual/mta )
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/bison
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
|
||||
REQUIRED_USE="
|
||||
?? ( pam skey )
|
||||
?? ( gcrypt ssl )
|
||||
"
|
||||
|
||||
MAKEOPTS+=" SAMPLES="
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
elibtoolize
|
||||
}
|
||||
|
||||
set_secure_path() {
|
||||
# first extract the default ROOTPATH from build env
|
||||
SECURE_PATH=$(unset ROOTPATH; . "${EPREFIX}"/etc/profile.env;
|
||||
echo "${ROOTPATH}")
|
||||
case "${SECURE_PATH}" in
|
||||
*/usr/sbin*) ;;
|
||||
*) SECURE_PATH=$(unset PATH;
|
||||
. "${EPREFIX}"/etc/profile.env; echo "${PATH}")
|
||||
;;
|
||||
esac
|
||||
if [[ -z ${SECURE_PATH} ]] ; then
|
||||
ewarn " Failed to detect SECURE_PATH, please report this"
|
||||
fi
|
||||
|
||||
# then remove duplicate path entries
|
||||
cleanpath() {
|
||||
local newpath thisp IFS=:
|
||||
for thisp in $1 ; do
|
||||
if [[ :${newpath}: != *:${thisp}:* ]] ; then
|
||||
newpath+=:${thisp}
|
||||
else
|
||||
einfo " Duplicate entry ${thisp} removed..."
|
||||
fi
|
||||
done
|
||||
SECURE_PATH=${newpath#:}
|
||||
}
|
||||
cleanpath /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin${SECURE_PATH:+:${SECURE_PATH}}
|
||||
|
||||
# finally, strip gcc paths #136027
|
||||
rmpath() {
|
||||
local e newpath thisp IFS=:
|
||||
for thisp in ${SECURE_PATH} ; do
|
||||
for e ; do [[ ${thisp} == ${e} ]] && continue 2 ; done
|
||||
newpath+=:${thisp}
|
||||
done
|
||||
SECURE_PATH=${newpath#:}
|
||||
}
|
||||
rmpath '*/gcc-bin/*' '*/gnat-gcc-bin/*' '*/gnat-gcc/*'
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local SECURE_PATH
|
||||
set_secure_path
|
||||
tc-export PKG_CONFIG #767712
|
||||
|
||||
# audit: somebody got to explain me how I can test this before I
|
||||
# enable it.. - Diego
|
||||
# plugindir: autoconf code is crappy and does not delay evaluation
|
||||
# until `make` time, so we have to use a full path here rather than
|
||||
# basing off other values.
|
||||
myeconfargs=(
|
||||
# requires some python eclass
|
||||
--disable-python
|
||||
--enable-tmpfiles.d="${EPREFIX}"/usr/lib/tmpfiles.d
|
||||
--enable-zlib=system
|
||||
--with-editor="${EPREFIX}"/usr/libexec/editor
|
||||
--with-env-editor
|
||||
--with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sudo
|
||||
--with-rundir="${EPREFIX}"/run/sudo
|
||||
--with-vardir="${EPREFIX}"/var/db/sudo
|
||||
--without-linux-audit
|
||||
--without-opie
|
||||
$(use_enable gcrypt)
|
||||
$(use_enable nls)
|
||||
$(use_enable sasl)
|
||||
$(use_enable ssl openssl)
|
||||
$(use_with ldap)
|
||||
$(use_with ldap ldap_conf_file /etc/ldap.conf.sudo)
|
||||
$(use_with offensive insults)
|
||||
$(use_with offensive all-insults)
|
||||
$(use_with pam)
|
||||
$(use_with pam pam-login)
|
||||
$(use_with secure-path secure-path "${SECURE_PATH}")
|
||||
$(use_with selinux)
|
||||
$(use_with sendmail)
|
||||
$(use_with skey)
|
||||
$(use_with sssd)
|
||||
)
|
||||
|
||||
econf "${myeconfargs[@]}"
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
|
||||
if use ldap ; then
|
||||
dodoc README.LDAP
|
||||
|
||||
cat <<-EOF > "${T}"/ldap.conf.sudo
|
||||
# See ldap.conf(5) and README.LDAP for details
|
||||
# This file should only be readable by root
|
||||
|
||||
# supported directives: host, port, ssl, ldap_version
|
||||
# uri, binddn, bindpw, sudoers_base, sudoers_debug
|
||||
# tls_{checkpeer,cacertfile,cacertdir,randfile,ciphers,cert,key}
|
||||
EOF
|
||||
|
||||
if use sasl ; then
|
||||
cat <<-EOF >> "${T}"/ldap.conf.sudo
|
||||
|
||||
# SASL directives: use_sasl, sasl_mech, sasl_auth_id
|
||||
# sasl_secprops, rootuse_sasl, rootsasl_auth_id, krb5_ccname
|
||||
EOF
|
||||
fi
|
||||
|
||||
insinto /etc
|
||||
doins "${T}"/ldap.conf.sudo
|
||||
fperms 0440 /etc/ldap.conf.sudo
|
||||
|
||||
insinto /etc/openldap/schema
|
||||
newins doc/schema.OpenLDAP sudo.schema
|
||||
fi
|
||||
|
||||
if use pam; then
|
||||
pamd_mimic system-auth sudo auth account session
|
||||
pamd_mimic system-auth sudo-i auth account session
|
||||
fi
|
||||
|
||||
keepdir /var/db/sudo/lectured
|
||||
fperms 0700 /var/db/sudo/lectured
|
||||
fperms 0711 /var/db/sudo #652958
|
||||
|
||||
# Don't install into /run as that is a tmpfs most of the time
|
||||
# (bug #504854)
|
||||
rm -rf "${ED}"/run || die
|
||||
|
||||
find "${ED}" -type f -name "*.la" -delete || die #697812
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
tmpfiles_process sudo.conf
|
||||
|
||||
#652958
|
||||
local sudo_db="${EROOT}/var/db/sudo"
|
||||
if [[ "$(stat -c %a "${sudo_db}")" -ne 711 ]] ; then
|
||||
chmod 711 "${sudo_db}" || die
|
||||
fi
|
||||
|
||||
if use ldap ; then
|
||||
ewarn
|
||||
ewarn "sudo uses the /etc/ldap.conf.sudo file for ldap configuration."
|
||||
ewarn
|
||||
if grep -qs '^[[:space:]]*sudoers:' "${ROOT}"/etc/nsswitch.conf ; then
|
||||
ewarn "In 1.7 series, LDAP is no more consulted, unless explicitly"
|
||||
ewarn "configured in /etc/nsswitch.conf."
|
||||
ewarn
|
||||
ewarn "To make use of LDAP, add this line to your /etc/nsswitch.conf:"
|
||||
ewarn " sudoers: ldap files"
|
||||
ewarn
|
||||
fi
|
||||
fi
|
||||
if use prefix ; then
|
||||
ewarn
|
||||
ewarn "To use sudo, you need to change file ownership and permissions"
|
||||
ewarn "with root privileges, as follows:"
|
||||
ewarn
|
||||
ewarn " # chown root:root ${EPREFIX}/usr/bin/sudo"
|
||||
ewarn " # chown root:root ${EPREFIX}/usr/lib/sudo/sudoers.so"
|
||||
ewarn " # chown root:root ${EPREFIX}/etc/sudoers"
|
||||
ewarn " # chown root:root ${EPREFIX}/etc/sudoers.d"
|
||||
ewarn " # chown root:root ${EPREFIX}/var/db/sudo"
|
||||
ewarn " # chmod 4111 ${EPREFIX}/usr/bin/sudo"
|
||||
ewarn
|
||||
fi
|
||||
|
||||
elog "To use the -A (askpass) option, you need to install a compatible"
|
||||
elog "password program from the following list. Starred packages will"
|
||||
elog "automatically register for the use with sudo (but will not force"
|
||||
elog "the -A option):"
|
||||
elog ""
|
||||
elog " [*] net-misc/ssh-askpass-fullscreen"
|
||||
elog " net-misc/x11-ssh-askpass"
|
||||
elog ""
|
||||
elog "You can override the choice by setting the SUDO_ASKPASS environmnent"
|
||||
elog "variable to the program you want to use."
|
||||
}
|
@ -1 +1,2 @@
|
||||
DIST sysstat-12.5.3.tar.gz 1504415 BLAKE2B a3dc267182939190441b6cfebff938881fe4a06a8c7d1c406c014ddc28c0ecb33af5f480b77cce56bfcd4c7af81c4fec09eccb989561dd979f03a94ea6521f5b SHA512 3f09ff2e7ca38497eb07dcd8770c0b7fe5cfa1140537b215a1648446f65d933852b97dd5a1a9596afa57b04f20da64385e3b2e384be8d7b5902f228dc01230a5
|
||||
DIST sysstat-12.5.4.tar.gz 1474379 BLAKE2B 73bd4ebc44cc57cd3dba4fecbcd45026929bdbeab6b99c5b13db7d37252dff8da987ee5ac00d545aebdc72f924d0100166e9e876f6684e064f7020f3fa7a7cb5 SHA512 c051f136d404684a21b11e968968e34f0f114b4568369c6449c64b7745269065a3dc492039ded7c415fe39970aca54cc81646589b0959ade43e9be6f6cd4c0dc
|
||||
|
@ -0,0 +1,87 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit eutils flag-o-matic systemd toolchain-funcs
|
||||
|
||||
DESCRIPTION="System performance tools for Linux"
|
||||
HOMEPAGE="http://pagesperso-orange.fr/sebastien.godard/"
|
||||
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
|
||||
IUSE="dcron debug nls lm-sensors selinux static systemd"
|
||||
|
||||
CDEPEND="
|
||||
nls? ( virtual/libintl )
|
||||
lm-sensors? ( sys-apps/lm-sensors:= )
|
||||
"
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
nls? ( sys-devel/gettext )
|
||||
"
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
!dcron? ( !sys-process/dcron )
|
||||
selinux? ( sec-policy/selinux-sysstat )
|
||||
"
|
||||
|
||||
REQUIRED_USE="dcron? ( !systemd )"
|
||||
|
||||
src_prepare() {
|
||||
if use nls; then
|
||||
strip-linguas -i nls/
|
||||
local lingua pofile
|
||||
for pofile in nls/*.po; do
|
||||
lingua=${pofile/nls\/}
|
||||
lingua=${lingua/.po}
|
||||
if ! has ${lingua} ${LINGUAS}; then
|
||||
rm "nls/${lingua}.po" || die
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
use dcron && { sed -i 's/@CRON_OWNER@ //g' cron/sysstat.crond.in || die ; }
|
||||
default
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export AR
|
||||
use static && append-ldflags -static
|
||||
|
||||
sa_lib_dir=/usr/lib/sa \
|
||||
conf_dir=/etc \
|
||||
econf \
|
||||
$(use_enable !systemd use-crond) \
|
||||
$(use_enable lm-sensors sensors) \
|
||||
$(use_enable nls) \
|
||||
$(usex debug --enable-debuginfo '') \
|
||||
--disable-compress-manpg \
|
||||
--enable-copy-only \
|
||||
--enable-documentation \
|
||||
--enable-install-cron \
|
||||
--with-systemdsystemunitdir=$(systemd_get_systemunitdir)
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
LFLAGS="${LDFLAGS}" default
|
||||
}
|
||||
|
||||
src_install() {
|
||||
keepdir /var/log/sa
|
||||
|
||||
emake \
|
||||
CHOWN=true \
|
||||
DESTDIR="${D}" \
|
||||
DOC_DIR=/usr/share/doc/${PF} \
|
||||
MANGRPARG='' \
|
||||
install
|
||||
|
||||
dodoc -r contrib/
|
||||
|
||||
newinitd "${FILESDIR}"/${PN}.init.d ${PN}
|
||||
systemd_dounit ${PN}.service
|
||||
|
||||
rm "${D}"/usr/share/doc/${PF}/COPYING || die
|
||||
}
|
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST ioping-1.1.tar.gz 29251 BLAKE2B 2f0ec642c3545b8e603f90187f48bf44e1ef665a99bc04af4d5e6441016c9509875e8e05c1cc8715fd080c8a498c7374cf5db562a3203d7075edbe85683ccdbb SHA512 67802a6ab552ad1fdb8894f4d814601c2f66154f4bfc50fa0001d881694864c1a70882b4ba2d0f50cbd484472dc649a22b312f802a3bacc3317671971bdc0201
|
||||
DIST ioping-1.2.tar.gz 30819 BLAKE2B 5f46ee783d51e4bea88a6036fba97c053e507f53183344d17fbfa6dd304d6cb76737ccff23c46ccce1fff8107d94e4e192264a3bf22062a7ea96b2a4475fb311 SHA512 4029f1b50dc292734088dc741e594c56021610aad16a0b9f42875b5fe91fbdf8d566a41dab0384aa739350f74e62688efdaf88168ab0d838b9c848ddd1c5dd96
|
||||
|
@ -0,0 +1,30 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
DESCRIPTION="Simple disk I/0 latency measuring tool"
|
||||
HOMEPAGE="https://github.com/koct9i/ioping"
|
||||
SRC_URI="https://github.com/koct9i/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="netdata"
|
||||
|
||||
src_prepare() {
|
||||
use netdata && eapply "${FILESDIR}/${P}-netdata.patch"
|
||||
eapply_user
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CC
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
|
||||
|
||||
dodoc changelog README.md
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST buildah-1.20.1.tar.gz 11522195 BLAKE2B 2fe2aa9ad5c2212b98be5bced24b6aee39a43ab2c1b28c2c1729cce2b8cfe5920ecb64f013c28d870c6b8c9b369630f83e27dc7698eb66b3e368ef0bff4cb3ed SHA512 22495d9f0da1d6061ddb41e4cecfdb2108c152262798d6c959fc524870160f15ee486bcc37e262e571c64dc732e852f05e6c4b9331bbdef4150bd56997fefa83
|
||||
DIST buildah-1.21.0.tar.gz 11693220 BLAKE2B 1f281830ca348e55e9cc2e55dd92e8372174f736c6e8a7ae4de1f5c3279bc272036cf65a2946a143df6e1f282461d347f26c361894b83399854cf900e9f2cc71 SHA512 2ce6afceadec37f54f7f80562969cc382267dabc4fa5a89a09a211326e403376d209d89162333337af8602cb5c551eb446d3c9fac26f516fb8d354a7b5b77472
|
||||
DIST buildah-1.21.1.tar.gz 11693142 BLAKE2B 513f75d8f2831130759f3bcb77fad311c28862b82df8866608bd909eea38468a6b576dfad2598725caa9c4e413108ea6ec3557c8a777017cc8a37b5cb16b70a1 SHA512 8fb30ed0948f898aef9a32c34d4b2a2e04a376257a73184ec01b67c770be1c3c87e46987ad001ececf2235cb5e17f9d0ff9e9f34be61ddd0935859c4e5b37d1f
|
||||
|
@ -0,0 +1,50 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
inherit bash-completion-r1 go-module
|
||||
GIT_COMMIT=d70e8ae3
|
||||
|
||||
DESCRIPTION="A tool that facilitates building OCI images"
|
||||
HOMEPAGE="https://github.com/containers/buildah"
|
||||
SRC_URI="https://github.com/containers/buildah/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64"
|
||||
IUSE="selinux"
|
||||
|
||||
RDEPEND="app-crypt/gpgme:=
|
||||
app-emulation/skopeo
|
||||
dev-libs/libgpg-error:=
|
||||
dev-libs/libassuan:=
|
||||
sys-fs/lvm2:=
|
||||
sys-libs/libseccomp:=
|
||||
selinux? ( sys-libs/libselinux:= )"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
RESTRICT+=" test"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
[[ -f selinux_tag.sh ]] || die
|
||||
use selinux || { echo -e "#!/bin/sh\ntrue" > \
|
||||
selinux_tag.sh || die; }
|
||||
sed -i -e 's/make -C/$(MAKE) -C/' Makefile || die 'sed failed'
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake GIT_COMMIT=${GIT_COMMIT} all
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md
|
||||
doman docs/*.1
|
||||
dodoc -r docs/tutorials
|
||||
dobin bin/{${PN},imgtype}
|
||||
dobashcomp contrib/completions/bash/buildah
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake test-unit
|
||||
}
|
@ -1,71 +0,0 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit cmake-utils linux-info git-r3
|
||||
|
||||
DESCRIPTION="ncurses interface for QEMU"
|
||||
HOMEPAGE="https://github.com/nemuTUI/nemu"
|
||||
EGIT_REPO_URI="https://github.com/nemuTUI/nemu"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
IUSE="+vnc-client +ovf +spice savevm svg debug"
|
||||
|
||||
RDEPEND="
|
||||
sys-libs/ncurses:0=[unicode]
|
||||
dev-db/sqlite:3=
|
||||
virtual/libusb:1
|
||||
|| ( sys-fs/eudev sys-fs/udev sys-apps/systemd )
|
||||
>=app-emulation/qemu-2.12.0[vnc,virtfs,spice?]
|
||||
ovf? (
|
||||
dev-libs/libxml2
|
||||
app-arch/libarchive
|
||||
)
|
||||
svg? ( media-gfx/graphviz[svg] )"
|
||||
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
sys-devel/gettext"
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DNM_WITH_VNC_CLIENT=$(usex vnc-client)
|
||||
-DNM_DEBUG=$(usex debug)
|
||||
-DNM_SAVEVM_SNAPSHOTS=$(usex savevm)
|
||||
-DNM_WITH_OVF_SUPPORT=$(usex ovf)
|
||||
-DNM_WITH_NETWORK_MAP=$(usex svg)
|
||||
-DNM_WITH_SPICE=$(usex spice)
|
||||
)
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel"
|
||||
else
|
||||
CONFIG_CHECK="~VETH ~MACVTAP"
|
||||
ERROR_VETH="You will need the Virtual ethernet pair device driver compiled"
|
||||
ERROR_VETH+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_VETH+=" local network settings feature."
|
||||
ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver."
|
||||
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "For non-root usage execute script:"
|
||||
elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>"
|
||||
elog "and add udev rule:"
|
||||
elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /lib/udev/rules.d"
|
||||
if use savevm; then
|
||||
elog ""
|
||||
elog "QEMU must be patched with qemu-qmp-savevm-VERSION.patch"
|
||||
elog "Get this patch from nEMU repository"
|
||||
fi
|
||||
}
|
@ -1,2 +1 @@
|
||||
DIST qemu-5.2.0.tar.xz 106902800 BLAKE2B 4413d5591cbabf80faba5b0b7347ee7749ff0a71af44bdf7f64b1995e17ecf1f3df539fa8e63959e0d50cd0502a41a2921e60cc6d078ed8ab5b09ab4b86d4ed7 SHA512 bddd633ce111471ebc651e03080251515178808556b49a308a724909e55dac0be0cc0c79c536ac12d239678ae94c60100dc124be9b9d9538340c03a2f27177f3
|
||||
DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4
|
||||
|
@ -1,863 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="4.0.0-r50"
|
||||
|
||||
inherit eutils linux-info toolchain-funcs multilib python-r1 \
|
||||
udev fcaps readme.gentoo-r1 pax-utils l10n 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 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 lm32 moxie rx tricore unicore32"
|
||||
IUSE_USER_TARGETS="${COMMON_TARGETS}
|
||||
aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
|
||||
tilegx"
|
||||
|
||||
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 )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
|
||||
static-user? ( !plugins )
|
||||
vhost-user-fs? ( caps seccomp )
|
||||
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(+)] )
|
||||
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:0=[unicode]
|
||||
sys-libs/ncurses:0=[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[static-libs(+)] )
|
||||
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(+)] )
|
||||
"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-201905[binary]
|
||||
~sys-firmware/ipxe-1.0.0_p20190728[binary,qemu]
|
||||
~sys-firmware/seabios-1.12.0[binary,seavgabios]
|
||||
~sys-firmware/sgabios-0.1_pre8[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
sys-firmware/edk2-ovmf
|
||||
sys-firmware/ipxe[qemu]
|
||||
>=sys-firmware/seabios-1.10.2[seavgabios]
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-1.12.0[binary,seavgabios]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
>=sys-firmware/seabios-1.10.2[seavgabios]
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? ( dev-python/sphinx )
|
||||
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-cleaner-werror.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-strings.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-fix-firmware-path.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-no-pie-ld.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}"/default-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 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_notuser 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-r1 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
|
||||
}
|
@ -1,868 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="4.0.0-r50"
|
||||
|
||||
inherit eutils linux-info toolchain-funcs multilib python-r1
|
||||
inherit udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils
|
||||
inherit flag-o-matic
|
||||
|
||||
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 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 lm32 moxie rx tricore unicore32"
|
||||
IUSE_USER_TARGETS="${COMMON_TARGETS}
|
||||
aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
|
||||
tilegx"
|
||||
|
||||
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 )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
|
||||
static-user? ( !plugins )
|
||||
vhost-user-fs? ( caps seccomp )
|
||||
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(+)] )
|
||||
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:0=[unicode]
|
||||
sys-libs/ncurses:0=[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[static-libs(+)] )
|
||||
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(+)] )
|
||||
"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-201905[binary]
|
||||
~sys-firmware/ipxe-1.0.0_p20190728[binary,qemu]
|
||||
~sys-firmware/seabios-1.12.0[binary,seavgabios]
|
||||
~sys-firmware/sgabios-0.1_pre8[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
sys-firmware/edk2-ovmf
|
||||
sys-firmware/ipxe[qemu]
|
||||
>=sys-firmware/seabios-1.10.2[seavgabios]
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-1.12.0[binary,seavgabios]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
>=sys-firmware/seabios-1.10.2[seavgabios]
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? ( dev-python/sphinx )
|
||||
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-cleaner-werror.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-strings.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-fix-firmware-path.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-no-pie-ld.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}"/default-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() {
|
||||
# workaround -fcommon breakage: bug #726560
|
||||
[[ ${PV} == 5.2.0 ]] || die "Check if -fcommon hack is needed"
|
||||
filter-flags -fcommon
|
||||
|
||||
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 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_notuser 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
|
||||
}
|
@ -1,871 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="5.2.0-r50"
|
||||
|
||||
inherit eutils linux-info toolchain-funcs multilib python-r1
|
||||
inherit udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils
|
||||
inherit flag-o-matic
|
||||
|
||||
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 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 lm32 moxie rx tricore unicore32"
|
||||
IUSE_USER_TARGETS="${COMMON_TARGETS}
|
||||
aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
|
||||
tilegx"
|
||||
|
||||
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 )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
|
||||
static-user? ( !plugins )
|
||||
vhost-user-fs? ( caps seccomp )
|
||||
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(+)] )
|
||||
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:0=[unicode]
|
||||
sys-libs/ncurses:0=[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[static-libs(+)] )
|
||||
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(+)] )
|
||||
"
|
||||
|
||||
SEABIOS_VERSION="1.14.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-202008[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
|
||||
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 )
|
||||
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-cleaner-werror.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-strings.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-fix-firmware-path.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-no-pie-ld.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-dce-locks.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}"/default-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() {
|
||||
# workaround -fcommon breakage: bug #726560
|
||||
[[ ${PV} == 5.2.0 ]] || die "Check if -fcommon hack is needed"
|
||||
filter-flags -fcommon
|
||||
|
||||
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 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_notuser 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
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
DIST xen-4.13.3.tar.gz 39044539 BLAKE2B 5d0e57c76e12e1b86b78bbf561e947d70b9569a24412617a640346d2358b141a2741e7a3be454df52d198ad63e58b1519288de62330417c70e72445703f3fac2 SHA512 622127d824b9c49b57282a887fb404e0bad05ff60bccade82e4e0e9b5ad975ff9aa1fba83392e6d8379e9a15340e8ae9785c0913eb11027816e4600432eea6b6
|
||||
DIST xen-4.14.2-upstream-patches-0.tar.xz 23304 BLAKE2B 954e0a49e5c3ec122aefe52afe328f440b8a4c8db966e0fa91e0b6d6cb3c0462b75fb99b3e7392811bd2e680cd7945e8a4d68317245fd42fdf0ad6cab33fbc68 SHA512 64d243f0c8acfec87812e4d78e3d8b24a86315824853f4f3b17122b7119425d180650695bc12e1a30f5b30c6ef684be7c08b2bc677ca2f0668d0335d92e2bf78
|
||||
DIST xen-4.14.2.tar.gz 39973157 BLAKE2B db5d3570f79e0fd97872f5e5dd57a4eb39e005728387bfef3b51fabe1c693cfd8108d09b1026f5a5a7eb79de71be6f4af36d252f7e0b35a65a1567b7949e3e29 SHA512 83c9333b70dbee3e29c6bf08e5ad030676e6c4a32b976f3f5e6a8f8d0dd9e4898bac88dd8e1c9d2ad3509cebb5d212e1745f9392a469d7afeb841d79801ccf39
|
||||
DIST xen-4.15.0-upstream-patches-0.tar.xz 15744 BLAKE2B e2abb68524a7c190db8d91beb79731aea5290e82f54fb21218739dab666f6f5ea85c203575ec248b46830f1862408d50d3ceea1104fcd9325babfccf3574c515 SHA512 f1a2800d15a61f08eda4d6bafaead95a9d72cc9e4d90a19278d89c696b7e2d5d6353b28dba7ed0eb0c9aeb8604d3697db6a8f4ac38047e2510279d88181752f9
|
||||
DIST xen-4.15.0-upstream-patches-1.tar.xz 35180 BLAKE2B eb3b2a44b717a04daa4a2f158040cce78b42cba5a72c437d7b2f8f1237b808f6f13c2140d82e95056818db6c0eb706ebd7dead822a6a4e689e5d5e7c83523fdb SHA512 a7cfe2dbc82b15c48fa781a77b3ca1622fc2feac3874bf17cf56e82be46e9817913f94992e0e1a1cd2be2e719d4abb9a15744c8a1017e30c0d5c01d7db64dbb5
|
||||
DIST xen-4.15.0.tar.gz 40785399 BLAKE2B 8b0530f5516c39656506f4bb705952da0555a8ab7f47323473b171caeb7692f3107e9d94f13171d40576600064589eed35f4d210af02db4cc4706dd4fc202100 SHA512 93683b8a97387ca5f003c635a11d163e61c87dbdc9a03081f9155fe87b49f1dfa74ce243fcd5e04dc009353a36e2375b786f1ebde828b5951a094cd64197b4c7
|
||||
|
Binary file not shown.
@ -1,2 +1,4 @@
|
||||
DIST chkrootkit-0.54-gentoo.diff.xz 4848 BLAKE2B 25d1736bb839533fae36550518b311e52bb38f8a562a63d40629789dc9497b6e71dbc306d1f845b6a5cd586468afa6a7ac4ce8b6f1bfb40d7ac9b0331a55def9 SHA512 6c972b081794681b61b7c67f9a5762ba5d2c0c731c9a2bf9f75e715984edf7022ddcd44d34803eacb58a59e8b21932ffb586cc9fb7998a43393367c2530e353e
|
||||
DIST chkrootkit-0.54.tar.gz 41461 BLAKE2B 61384fda7db08ca2a52ab060ee4ea3edb7311cb9908599a511459dac22340f28e75d732b10d827aaeed89a1ecb6fc7f69ab8fef970aae5a73bae8c7949944831 SHA512 fe8955ac33abaabf304f5580b6f12929f8bf02329ab442380eaa6298440cf1cb0eee2db8e5667ea7d78b89ee2bceb82c10ebb732a71d6bcdda9400569cd587fd
|
||||
DIST chkrootkit-0.55-gentoo.patch.bz2 5028 BLAKE2B f8f809252d89b9195601953c6741c9a653b658d86669f149380dc94da91085921f58fef7e6f232cc421cf62f7321630120a85ec4dfdf369d6e92c0a7ae81e0f1 SHA512 bdae4fed6f8c61337e855235bf84b20faa363a3dfad9b2f22a017bd232aaf7f4bc0680f2b5567d6545ef3cb6ce7d41cc2287f4f0a2baf68ce3c56c68df8c77b8
|
||||
DIST chkrootkit-0.55.tar.gz 42630 BLAKE2B 0e6bc4d411a7836cd8ab72782027e5bd80b5c8845d8de1f48ff57bc0617a368cff2471835a66c30d007f4cfc243639110e0c39e02eecc3ec9c5c0a66a4b7891b SHA512 742dca90a761ecff149d8704cb3a252adfe8f9d5e15dd060e9db4d5f6dcd3820933ae13cbee99ea5a8c6144932cf97c0616a177af3ba5a1726b51bb304e7d63e
|
||||
|
@ -0,0 +1,58 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit toolchain-funcs
|
||||
|
||||
GENTOO_PATCH="${PN}-0.55-gentoo.patch"
|
||||
|
||||
DESCRIPTION="Tool to locally check for signs of a rootkit"
|
||||
HOMEPAGE="http://www.chkrootkit.org/"
|
||||
SRC_URI="ftp://ftp.pangeia.com.br/pub/seg/pac/${P}.tar.gz"
|
||||
SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${GENTOO_PATCH}.bz2"
|
||||
|
||||
LICENSE="BSD-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
|
||||
IUSE="+cron"
|
||||
|
||||
RDEPEND="cron? ( virtual/cron )"
|
||||
|
||||
PATCHES=(
|
||||
"${WORKDIR}/${GENTOO_PATCH}"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
sed -e 's:/var/adm/:/var/log/:g' \
|
||||
-i chklastlog.c || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake CC="$(tc-getCC)" STRIP=true sense
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dosbin chkdirs chklastlog chkproc chkrootkit chkwtmp chkutmp ifpromisc strings-static
|
||||
dodoc ACKNOWLEDGMENTS README*
|
||||
|
||||
if use cron ; then
|
||||
exeinto /etc/cron.weekly
|
||||
newexe "${FILESDIR}"/${PN}.cron ${PN}
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use cron ; then
|
||||
elog
|
||||
elog "Edit /etc/cron.weekly/chkrootkit to activate chkrootkit!"
|
||||
elog
|
||||
fi
|
||||
|
||||
elog
|
||||
elog "Some applications, such as portsentry, will cause chkrootkit"
|
||||
elog "to produce false positives. Read the chkrootkit FAQ at"
|
||||
elog "http://www.chkrootkit.org/ for more information."
|
||||
elog
|
||||
}
|
Binary file not shown.
@ -0,0 +1,13 @@
|
||||
diff --git a/aqt/reviewer.py b/aqt/reviewer.py
|
||||
index f01fcbd9f..5aaf26669 100644
|
||||
--- a/aqt/reviewer.py
|
||||
+++ b/aqt/reviewer.py
|
||||
@@ -359,7 +359,7 @@ Please run Tools>Empty Cards""")
|
||||
cor = stripHTML(cor)
|
||||
# ensure we don't chomp multiple whitespace
|
||||
cor = cor.replace(" ", " ")
|
||||
- cor = parser.unescape(cor)
|
||||
+ cor = html.unescape(cor)
|
||||
cor = cor.replace("\xa0", " ")
|
||||
cor = cor.strip()
|
||||
given = self.typedAnswer
|
@ -1,3 +1,2 @@
|
||||
DIST tmux-xpanes-4.1.1.tar.gz 62564 BLAKE2B 195221c5f069048ab42a57a00c4c8b79f0c2acf1b0cdd7096e553c9a5ed0b3e3b3e9dfacb8f2eb141861b34ef52ad0a675fb501e314d7e4bfe4a41ff4bfd9f35 SHA512 789e19136faa939670cf8e91e7e7979fae8e536aeffdad7d39e1861e279214985d40807dc07afcd8b28cc4de140a944c9b2f5fe051a6b53e12b7903baefcb251
|
||||
DIST tmux-xpanes-4.1.2.tar.gz 63337 BLAKE2B 1ddc0c0422eec64697aea7eb97c8bbbbd4005f4c470d5d0bf1fae4eab01d8ced50503180f76d0ed5aa9d29e854b54aab8f8216ac945e6c1c2e4b4833c5661ceb SHA512 b18445940052a6af848286b901bfd81abfbdf83356cd1b39ac592e1509c9d63b81440978a8c2632672bfb7a2429a7fcc57b7c55c91a00d751b43aa9f368a5c57
|
||||
DIST tmux-xpanes-4.1.3.tar.gz 64101 BLAKE2B ec7e025adcfb2436b416a37de87cbf335bdc92d7653a65be9299c10993d273746a0678ee3e418df483697f1f2dd556063e98d984006e2137e2cdeb6f8634f75c SHA512 6545ec75a522b05eb8079c93830c81ac3c6a9ac338a3cc51c491f69a4602bef5b9f19c9f18b2975d0470c4af0a83ebf2357a4461024508ff0f6ac61d1099b22e
|
||||
|
@ -1,36 +0,0 @@
|
||||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
DESCRIPTION="tmux-based terminal divider"
|
||||
HOMEPAGE="https://github.com/greymd/tmux-xpanes"
|
||||
SRC_URI="https://github.com/greymd/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
KEYWORDS="amd64 x86"
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="zsh-completion"
|
||||
|
||||
RDEPEND="
|
||||
app-misc/tmux
|
||||
dev-lang/perl
|
||||
dev-libs/openssl:0=
|
||||
zsh-completion? ( app-shells/zsh )"
|
||||
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
DOCS=( CONTRIBUTING.md LICENSE README.md )
|
||||
|
||||
src_install() {
|
||||
dobin bin/*
|
||||
doman man/*.1
|
||||
einstalldocs
|
||||
if use zsh-completion; then
|
||||
insinto /usr/share/zsh/site-functions
|
||||
doins completion/zsh/*
|
||||
fi
|
||||
}
|
Binary file not shown.
Binary file not shown.
@ -1 +1,2 @@
|
||||
DIST portpeek-3.2.0.tar.gz 13793 BLAKE2B 224ffff46090ee8c6ddc338623a5a1b4323ad2104514f0be8962b5af9070ab8217d76e3b19fdeac148b13cee77531ddb0261b89e563bb9a999b895b2a2475c69 SHA512 2b0592b92ce122c53c687e1897e1a51319527dca70c16ca38564dde870a05ccd0f4a00de88b53194046c9b2a4fef3a3ccf1a5fb84777de8437f66bb6cc25da94
|
||||
DIST portpeek-3.2.1.tar.gz 13538 BLAKE2B efd8566b0fd54cc9f76eb05d330a566999c2e301c2e62e38b12d6fa7063d57cf4803db0e1ca5fe3067a31075294e4c4e5f794acc914f2ed2abfc340c6bbf8278 SHA512 f5888f63c5683e48d601c6560800566586c1558541f928aacb0476cb7534e8e6910517d96c083519747d6074e1ee2739780f050fdffa6e5a1913399e2b2d108a
|
||||
|
@ -0,0 +1,30 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
PYTHON_COMPAT=( python3_{8,9} )
|
||||
|
||||
inherit python-r1
|
||||
|
||||
DESCRIPTION="A helper program for maintaining the package.keyword and package.unmask files"
|
||||
HOMEPAGE="https://www.mpagano.com/blog/?page_id=3"
|
||||
SRC_URI="https://www.mpagano.com/downloads/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~sparc ~x86"
|
||||
IUSE=""
|
||||
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DEPEND="${PYTHON_DEPS}"
|
||||
RDEPEND="${DEPEND}
|
||||
>=app-portage/gentoolkit-0.5.1
|
||||
|| (
|
||||
>=sys-apps/portage-3.0.18[${PYTHON_USEDEP}]
|
||||
)"
|
||||
|
||||
src_install() {
|
||||
python_foreach_impl python_doscript ${PN}
|
||||
doman *.[0-9]
|
||||
}
|
Binary file not shown.
@ -1,2 +1,3 @@
|
||||
DIST poppler-21.02.0.tar.xz 1684496 BLAKE2B f62399a70baa0af36abd9bf7f5bc69003fcdc9b668a64475a6373dbdd9885092a8beb42f887eafdafac5ee17e9aac5b610bad1c9a64af8112e72c82f47e6a304 SHA512 3964990749f38f4468b244c579ff1f2dab7357dfddecb3035d14d3aaeac6ee4be42e76b4a1cc1a8cf53715518def9e92cc59d08c1e22592ced00a9c948989035
|
||||
DIST poppler-21.05.0.tar.xz 1700632 BLAKE2B 5e277f3d9d6fafbd39b395d7730182ec028c0ccdbb59e0b9d6ea93e079eb6dc8ff6e46a2b378ec4502055e8748973d353e1f947d734cdee4c5abb9f1bb6dba2c SHA512 428f63a85fc8a227efebcd64ca7e89fec487fea07c93f9dd990fae343532547bcfec29a3288dd9ffce698cf994ccc2ce5055e4fa677ebceb216c1caaa3e0cdae
|
||||
DIST poppler-21.06.1.tar.xz 1708344 BLAKE2B 424888e16c72e9ad37fcb0aa3ecc7bef8c6150f3ca51b205407f9db51a5800bf76c703ad7a7e642e5ce60edc0ab3506d29bd18c8424425da7d4270bb2adb3025 SHA512 6e447d09421b7729d83a59a24deaaaea15103240cac0eaf41ddcdd64ac2c8f08a6902b95d56bbbcfd9e229054bd0a4f1769ea05c7e20691bc8f995e3f959f0e9
|
||||
|
@ -0,0 +1,123 @@
|
||||
# Copyright 2005-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
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
|
||||
SRC_URI="https://poppler.freedesktop.org/${P}.tar.xz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
SLOT="0/111" # 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="cairo cjk curl +cxx debug doc +introspection +jpeg +jpeg2k +lcms nss png qt5 tiff +utils"
|
||||
|
||||
# No test data provided
|
||||
RESTRICT="test"
|
||||
|
||||
BDEPEND="
|
||||
dev-util/glib-utils
|
||||
virtual/pkgconfig
|
||||
"
|
||||
DEPEND="
|
||||
media-libs/fontconfig
|
||||
media-libs/freetype
|
||||
sys-libs/zlib
|
||||
cairo? (
|
||||
dev-libs/glib:2
|
||||
x11-libs/cairo
|
||||
introspection? ( dev-libs/gobject-introspection:= )
|
||||
)
|
||||
curl? ( net-misc/curl )
|
||||
jpeg? ( virtual/jpeg:0 )
|
||||
jpeg2k? ( >=media-libs/openjpeg-2.3.0-r1:2= )
|
||||
lcms? ( media-libs/lcms:2 )
|
||||
nss? ( >=dev-libs/nss-3.19:0 )
|
||||
png? ( media-libs/libpng:0= )
|
||||
qt5? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtxml:5
|
||||
)
|
||||
tiff? ( media-libs/tiff:0 )
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
cjk? ( app-text/poppler-data )
|
||||
"
|
||||
|
||||
DOCS=( AUTHORS NEWS README.md README-XPDF )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-20.12.1-qt5-deps.patch"
|
||||
"${FILESDIR}/${PN}-21.04.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 [[ ${CC} == 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_SPLASH=ON
|
||||
-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,3 +1,4 @@
|
||||
DIST asio-1.10.8.tar.bz2 1270332 BLAKE2B 97e4a6a7c8b4562f10af1d122e9b08c12d567fd0447d1951a907f47f77832dcd42df4cb9b5b392feaaa2ea7c79d8bedfcf12e3052957ec012d8bb6b4d1347eb5 SHA512 d870686d2b19bec9925c311f2f0fd370e9797bbad252176a80a998f9c322ecd502b5081826105712e7caf87c03c3e6b70a0e219019e5bff46077d6e8c3c6db09
|
||||
DIST asio-1.17.0.tar.bz2 1694631 BLAKE2B 0463355eef1714604290be43247139ea0220c5614c3c280ccf6049b64a2bb920c9eb885cf5f00c7e007caf3b049fe5cd6589dad0cb23cda4994fd31c7ecd8102 SHA512 5978cbf452aff07d6d19a2e641824628f409ab74e2e1a964776dae4c586386149acea56e4c8aa1075b247d2ce566daad640c3bbd15e211df1f73fc7b02964353
|
||||
DIST asio-1.18.1.tar.bz2 1729219 BLAKE2B 3f020407403175ffb6777b855a38e708241499e0fc8f1389b367bac4faf1e14b94cdf45f3b5ba64e12303237c8a3f817f7b7c320e7a58d72be6b19e04022c681 SHA512 06b41869858b69bc523564d5b219f8ebc995ca862e989f65233778c7596143075662880b6c5dd2eb24c21ba6e68a450888ab07a6bc8585bb6ede9a738e1e27c0
|
||||
DIST asio-1.18.2.tar.bz2 1743146 BLAKE2B 8db47419180095e4f05a63e4f414f33399e44f1dfb36299c70fef8bfef347f25df67ae78abf6b6b051e350b10099ec49e751b129bb1913dadf792e24048233a2 SHA512 ebe659f958b1813c4a843dce94a8f51d3a3b9f8e0237aa0f032009adaf85400b63b04ac8d664c9424397927d34d78206cbc646d921a520ed415c505f086628b1
|
||||
|
@ -0,0 +1,51 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Asynchronous Network Library"
|
||||
HOMEPAGE="https://think-async.com https://github.com/chriskohlhoff/asio"
|
||||
SRC_URI="mirror://sourceforge/${PN}/${PN}/${P}.tar.bz2"
|
||||
|
||||
LICENSE="Boost-1.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
|
||||
IUSE="doc examples ssl test"
|
||||
RESTRICT="!test? ( test )"
|
||||
# test searches for libssl during ./configure, and REQUIRED_USE is easier than
|
||||
# patching configure to not search for it with USE=-ssl
|
||||
REQUIRED_USE="test? ( ssl )"
|
||||
|
||||
RDEPEND="dev-libs/boost:=
|
||||
ssl? (
|
||||
dev-libs/openssl:0=
|
||||
)"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if ! use test; then
|
||||
# Don't build nor install any examples or unittests
|
||||
# since we don't have a script to run them
|
||||
cat > src/Makefile.in <<-EOF || die
|
||||
all:
|
||||
|
||||
install:
|
||||
|
||||
clean:
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
use doc && local HTML_DOCS=( doc/. )
|
||||
default
|
||||
|
||||
if use examples; then
|
||||
# Get rid of the object files
|
||||
emake clean
|
||||
dodoc -r src/examples
|
||||
docompress -x /usr/share/doc/${PF}/examples
|
||||
fi
|
||||
}
|
Binary file not shown.
@ -1,2 +1,4 @@
|
||||
DIST gwt-2.8.2.zip 22017212 BLAKE2B b112df08885e607c975f9585d6b83e2a12894e974850ada052918e4b946b11bfc8d9cf9d71f4e684121d9d16714885be549eed44d77a119e695c2b50cd6bc6c3 SHA512 ac16311c3b00b36d421eef914e73ad8dea01f022c87fc7ed722fdfee8eed391f1987cc1c34522978afc542cdb90eee791efcdcc725d9a395ab468e458b708074
|
||||
DIST gwt-2.9.0.tar.gz 13081965 BLAKE2B 8b18e4cad6df9b1a2336bdf537a26def021ccd950299a6064e9a7328d0161c093f56284cce7b8a0e0a0c72b0dc9604e5e5527332d1878afd19a3c95eed5129a7 SHA512 424484a42f28387734a89a3a12b48716031e194e3a712a5e7cbdb66f77ab68e72ff8751f70a4048f4b9f35d92948c285490fd8e23c34d5c5e5558fee33952bf5
|
||||
DIST gwt-tools-194772ed94078802d8030136796de344eb1fdbe1.tar.gz 575902138 BLAKE2B 518ed1752cc82a527521525e181db712a641d36db203f511bdcc5206de314aa1eb693415b690fc42f38c9beabaffc484ad6ec3444e3cd8b4f2a3fa2ab9505f11 SHA512 0365d664b4b14ec833c922c8fab5df269e69ac8f1526315810f4922132439b880ee15e7e8b80e8b505469a374ba4a47998c7ed07b5f53227d50100247fade82b
|
||||
DIST gwt-tools-f42d2729a3a8e6ba9b9aec069957bce5dc0f6f6d.zip 577453206 BLAKE2B 83a3824d6418727876b4708ed44ab1f58513a5b39d4e48f9bf21290ca358f76ec2ccd98ce2aee76afe7f621fb1f703bf459b8c3d6a3d4f32d4be807bc723513e SHA512 f4f033c972d955da40258020a9fb84ae90f30b7afeb1ae8044cf00f4f5f45200129bf84e2f69660a4eb80bb60f3a5a1d3c5af69fe9e07e0b985de0e708ca933f
|
||||
|
@ -0,0 +1,20 @@
|
||||
# It's unclear how upstream gets their "dev.compile.test" target to compile
|
||||
# without this - it could be that their testing is done with the local tools/
|
||||
# dir, and that some assumptions are made somewhere in the bulid system that
|
||||
# don't apply when the tools dir is elsewhere. Either way, this fixes it.
|
||||
#
|
||||
# a Pull Request (of sorts) has been issued with upstream to incorporate this
|
||||
# change. I would list the PR link here, but they use gerrit, and i don't
|
||||
# understand what happened to my submission after I issued
|
||||
# `git push upstream HEAD:refs/for/master`
|
||||
|
||||
--- a/dev/build.xml
|
||||
+++ b/dev/build.xml
|
||||
@@ -60,6 +60,7 @@
|
||||
<pathelement
|
||||
location="${gwt.tools.lib}/streamhtmlparser/streamhtmlparser-jsilver-r10/streamhtmlparser-jsilver-r10-1.5-rebased.jar"/>
|
||||
<pathelement location="${gwt.build.lib}/gwt-dev-${build.host.platform}.jar"/>
|
||||
+ <pathelement location="${gwt.tools.lib}/jsinterop/jsinterop-annotations-2.0.0.jar"/>
|
||||
<pathelement location="${alldeps.jar}"/>
|
||||
</classpath>
|
||||
</gwt.javac>
|
@ -0,0 +1,26 @@
|
||||
# This git stuff in the ant configs is useful during development, since it does
|
||||
# something or other withe git revision and sets some sort of sentinel file.
|
||||
# Since this package is for a release, we don't need it.
|
||||
--- a/common.ant.xml
|
||||
+++ b/common.ant.xml
|
||||
@@ -277,16 +277,16 @@
|
||||
|
||||
<macrodef name="gwt.getgitinfo" description="Identifies the GIT info of a workspace">
|
||||
<sequential>
|
||||
- <exec executable="git" searchpath="true" outputproperty="gwt.gitrev">
|
||||
- <arg line="rev-parse --short HEAD"/>
|
||||
- </exec>
|
||||
+ <!-- <exec executable="git" searchpath="true" outputproperty="gwt.gitrev"> -->
|
||||
+ <!-- <arg line="rev-parse - -short HEAD"/> -->
|
||||
+ <!-- </exec> -->
|
||||
<!-- Generally, filtering requires a sentinel file so that changes to git rev will
|
||||
be noticed as invalidating the previously-generated filter output. This property
|
||||
names where such a sentinel lives; it is tested with <available/> and created
|
||||
with <touch/> -->
|
||||
<mkdir dir="${project.build}/sentinels"/>
|
||||
<property name="filter.sentinel"
|
||||
- location="${project.build}/sentinels/gwt-${gwt.version}-git-${gwt.gitrev}"/>
|
||||
+ location="${project.build}/sentinels/gwt-${gwt.version}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
@ -0,0 +1,96 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
JAVA_PKG_IUSE="source"
|
||||
|
||||
inherit java-pkg-2 java-ant-2 java-utils-2
|
||||
|
||||
GWT_TOOLS_COMMIT="194772ed94078802d8030136796de344eb1fdbe1"
|
||||
GWT_TOOLS_PN="tools"
|
||||
|
||||
DESCRIPTION="Google Web Toolkit library"
|
||||
HOMEPAGE="http://www.gwtproject.org/"
|
||||
SRC_URI="https://github.com/gwtproject/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
|
||||
https://github.com/gwtproject/${GWT_TOOLS_PN}/archive/${GWT_TOOLS_COMMIT}.tar.gz -> ${PN}-${GWT_TOOLS_PN}-${GWT_TOOLS_COMMIT}.tar.gz"
|
||||
# While the test suite does compile and does execute with an exit status of 0,
|
||||
# there are many tests that end with FAILED status. It is unclear if this is
|
||||
# expected from upstream or not, but in order to keep things honest, the test
|
||||
# suite is being restricted
|
||||
RESTRICT="mirror test"
|
||||
SLOT="2.8"
|
||||
LICENSE="Apache-2.0"
|
||||
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
|
||||
|
||||
CDEPEND="
|
||||
dev-java/json:0
|
||||
dev-java/guava:20
|
||||
dev-java/rhino:1.6
|
||||
dev-java/asm:9
|
||||
dev-java/eclipse-ecj:4.5
|
||||
dev-java/validation-api:1.0
|
||||
"
|
||||
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
>=virtual/jre-1.8:*"
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
virtual/jdk:1.8
|
||||
"
|
||||
|
||||
JAVA_ANT_REWRITE_CLASSPATH="yes"
|
||||
EANT_BUILD_TARGET="build"
|
||||
EANT_GENTOO_CLASSPATH="
|
||||
json
|
||||
asm-9
|
||||
guava-20
|
||||
rhino-1.6
|
||||
eclipse-ecj-4.5
|
||||
validation-api-1.0
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-2.9.0-jsinterop-classpath.patch"
|
||||
"${FILESDIR}/${PN}-2.9.0-remove-git-usage.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
java-pkg-2_src_prepare
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# the default setup assumes that you've placed these in ${S}/tools. We put
|
||||
# it in ${WORKDIR} though
|
||||
export GWT_TOOLS="${WORKDIR}/${GWT_TOOLS_PN}-${GWT_TOOLS_COMMIT}"
|
||||
export GWT_VERSION="${PV}"
|
||||
|
||||
java-pkg-2_src_compile
|
||||
}
|
||||
|
||||
src_test() {
|
||||
local -x ANT_OPTS=-Dfile.encoding=UTF-8
|
||||
local -x TZ=America/Los_Angeles
|
||||
|
||||
java-pkg-2_src_test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local i18nCreater_launcher_args=(
|
||||
i18nCreater
|
||||
--main com.google.gwt.i18n.tools.I18NCreater
|
||||
--jar gwt-dev.jar
|
||||
)
|
||||
local webAppCreator_launcher_args=(
|
||||
webAppCreator
|
||||
--main com.google.gwt.user.tools.WebAppCreator
|
||||
--jar gwt-dev.jar
|
||||
)
|
||||
|
||||
java-pkg_dojar build/lib/*.jar
|
||||
java-pkg_dolauncher ${i18nCreater_launcher_args[@]}
|
||||
java-pkg_dolauncher ${webAppCreator_launcher_args[@]}
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
JAVA_PKG_IUSE="doc source"
|
||||
MAVEN_ID="net.java.dev.jna:jna:4.2.2"
|
||||
|
||||
inherit java-pkg-2 java-ant-2 toolchain-funcs
|
||||
|
||||
DESCRIPTION="Java Native Access (JNA)"
|
||||
HOMEPAGE="https://github.com/java-native-access/jna"
|
||||
SRC_URI="https://github.com/java-native-access/jna/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="4"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE="+awt +nio-buffers test"
|
||||
|
||||
REQUIRED_USE="test? ( awt nio-buffers )"
|
||||
|
||||
# The tests stall immediately on some systems (not current stable?) when
|
||||
# the sandbox is active but pass successfully otherwise. Chewi has not
|
||||
# been able to determine why. This began in 4.2.0 as 4.1.0 worked
|
||||
# fine. Someone bisect it please. :)
|
||||
RESTRICT="test"
|
||||
|
||||
CDEPEND="dev-libs/libffi"
|
||||
DEPEND="${CDEPEND}
|
||||
virtual/jdk:1.8
|
||||
x11-libs/libXt
|
||||
test? (
|
||||
dev-java/ant-junit:0
|
||||
dev-java/guava:20
|
||||
dev-java/javassist:3
|
||||
dev-java/reflections:0
|
||||
)"
|
||||
RDEPEND="${CDEPEND}
|
||||
virtual/jre:1.8"
|
||||
BDEPEND="virtual/pkgconfig"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PV}-build.xml.patch
|
||||
"${FILESDIR}"/${PV}-makefile-flags.patch
|
||||
)
|
||||
|
||||
JAVA_ANT_REWRITE_CLASSPATH="true"
|
||||
EANT_BUILD_TARGET="native jar contrib-jars"
|
||||
EANT_EXTRA_ARGS="-Ddynlink.native=true"
|
||||
EANT_TEST_EXTRA_ARGS="-Dheadless=true -Djava.io.tmpdir=${T}"
|
||||
EANT_TEST_GENTOO_CLASSPATH="guava-20,javassist-3,reflections"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# delete bundled jars and copy of libffi
|
||||
# except native jars because build.xml needs them all
|
||||
find ! -path "./lib/native/*" -name "*.jar" -delete || die
|
||||
rm -r native/libffi || die
|
||||
|
||||
if ! use awt ; then
|
||||
sed -i -E "s/^(CDEFINES=.*)/\1 -DNO_JAWT/g" native/Makefile || die
|
||||
fi
|
||||
|
||||
if ! use nio-buffers ; then
|
||||
sed -i -E "s/^(CDEFINES=.*)/\1 -DNO_NIO_BUFFERS/g" native/Makefile || die
|
||||
fi
|
||||
|
||||
java-pkg-2_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
tc-export CC
|
||||
}
|
||||
|
||||
src_install() {
|
||||
java-pkg_newjar build/${PN}-min.jar
|
||||
java-pkg_dojar contrib/platform/dist/${PN}-platform.jar
|
||||
java-pkg_doso build/native-*/libjnidispatch.so
|
||||
|
||||
use source && java-pkg_dosrc src/*
|
||||
use doc && java-pkg_dojavadoc doc/javadoc
|
||||
}
|
||||
|
||||
src_test() {
|
||||
java-pkg-2_src_test
|
||||
}
|
@ -1,4 +1,2 @@
|
||||
DIST lucene-1.4.3-src.tar.gz 768320 BLAKE2B 8017b672b0104be007582a67cff5cb130187afcf9608bec0cb2b6bae9b3ea8c67486b324740c99e4db8f23879dd614a098f778f6b52b429d3dd1906387e9b61e SHA512 426539a4b4a8887485c4301b2127ad4815646d1a81bca877ed2b0e68d886fcaf844449532a080754b79696c0f9e9c5f304be28487e0f9aa11178565a20f29911
|
||||
DIST lucene-2.4.1.tar.gz 5057003 BLAKE2B 3e2a29cfa94b367f1e62f60a2f7b7e195c788048564fb061ade4b1babcb2fd71e36b282049d3816c3faaaa3dacc07f4a7dbdb0504a659ea3ab8e06e247debcba SHA512 cf227eea4aeee904ccf5316ee7f2399864bf28b9c01e044ef27232dd483c3a5f0ecc8836633f44acfa41ffee6bf1c530e756ef45fa77ac1d15e1f83129b7aa5e
|
||||
DIST lucene-3.5.0-src.tgz 39564076 BLAKE2B 5018f0e07a9df3f2f55c540e94e349e64e2c02c99acf14946e4471e16ace4f17a18e306aca6187028cde4434f0d6b38090442baaddaa79ef12ff34a8461f9e98 SHA512 58846190ed0e8c0747e14cb46bf27255d0e4ee93aa0969cf16140713ce20c8fc3f451353437313f14416c92b7b6825d4ce3416d9c7ce4cb1854f31877c2af275
|
||||
DIST lucene-3.6.2-src.tgz 32139784 BLAKE2B 48fe88efeae8396e084f827aa66530480f40aee3a2e59c8524420059f004a73be4c1e50c98345ad0ad4808ff8a0a996f9406523bf5c124616657ec91f9797f70 SHA512 e9a08a1b5303c44e4feecc0bb6e7013e4a9420517ae4e98999bd318ec25b5b2ff3b6de8b51db8f68afc0fdc3149829297023a95b103d4f99e7db68deee4c3965
|
||||
|
@ -1,52 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
JAVA_PKG_IUSE="doc examples source test"
|
||||
|
||||
inherit java-pkg-2 java-ant-2
|
||||
|
||||
DESCRIPTION="High-performance, full-featured Java text search engine"
|
||||
HOMEPAGE="https://lucene.apache.org"
|
||||
SRC_URI="mirror://apache/lucene/java/archive/${P}-src.tar.gz"
|
||||
|
||||
KEYWORDS="amd64 x86"
|
||||
LICENSE="Apache-1.1"
|
||||
SLOT="1"
|
||||
|
||||
DEPEND="
|
||||
>=virtual/jdk-1.6
|
||||
test? ( dev-java/ant-junit:0 )"
|
||||
|
||||
RDEPEND="
|
||||
>=virtual/jre-1.6"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
java-pkg_clean
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
eant jar-core $(use_doc javadocs)
|
||||
}
|
||||
|
||||
src_test() {
|
||||
java-ant_rewrite-classpath build.xml
|
||||
EANT_GENTOO_CLASSPATH="junit ant-core" \
|
||||
ANT_TASKS="ant-junit" \
|
||||
eant test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
einstalldocs
|
||||
java-pkg_newjar build/lucene-1.5-rc1-dev.jar
|
||||
|
||||
if use doc; then
|
||||
dodoc -r docs/*
|
||||
java-pkg_dojavadoc build/docs/api
|
||||
fi
|
||||
|
||||
use examples && java-pkg_doexamples src/demo
|
||||
use source && java-pkg_dosrc src/java/org
|
||||
}
|
@ -1,136 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
JAVA_PKG_IUSE="doc source test contrib"
|
||||
JAVA_PKG_BSFIX_ALL="no"
|
||||
JAVA_PKG_BSFIX_NAME="build.xml common-build.xml contrib-build.xml"
|
||||
|
||||
inherit java-pkg-2 java-ant-2
|
||||
|
||||
DESCRIPTION="High-performance, full-featured text search engine written entirely in Java"
|
||||
HOMEPAGE="https://lucene.apache.org"
|
||||
SRC_URI="mirror://apache/lucene/java/${PV}/${P}-src.tgz"
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="3.5"
|
||||
KEYWORDS="amd64 x86"
|
||||
|
||||
CDEPEND="
|
||||
dev-java/junit:4
|
||||
dev-java/ant-junit:0
|
||||
dev-java/ant-core:0
|
||||
contrib? (
|
||||
dev-java/jakarta-regexp:1.4
|
||||
dev-java/commons-compress:0
|
||||
dev-java/commons-collections:0
|
||||
dev-java/commons-digester:0
|
||||
dev-java/commons-logging:0
|
||||
dev-java/commons-beanutils:1.7
|
||||
)"
|
||||
|
||||
DEPEND="
|
||||
${CDEPEND}
|
||||
>=virtual/jdk-1.6
|
||||
test? (
|
||||
dev-java/junit:4
|
||||
dev-java/ant-core:0
|
||||
)"
|
||||
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
>=virtual/jre-1.6"
|
||||
|
||||
DOCS=(
|
||||
CHANGES.txt README.txt
|
||||
NOTICE.txt CHANGES.txt
|
||||
JRE_VERSION_MIGRATION.txt
|
||||
)
|
||||
|
||||
# All tests fail with the following error:
|
||||
# junit.framework.AssertionFailedError: ensure your setUp() calls super.setUp()!!!
|
||||
RESTRICT="test"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
java-pkg_clean
|
||||
sed -i \
|
||||
-e '/-Xmax/ d' \
|
||||
common-build.xml || die
|
||||
|
||||
# FIXME: contrib builds do not work if junit not included
|
||||
#java-pkg_jar-from --build-only --into lib \
|
||||
# junit-4 junit.jar junit-4.7.jar
|
||||
java-pkg_jar-from --build-only --into lib \
|
||||
ant-core ant.jar ant-1.7.1.jar
|
||||
java-pkg_jar-from --build-only --into lib \
|
||||
ant-junit ant-junit.jar ant-junit-1.7.1.jar
|
||||
|
||||
if use contrib; then
|
||||
cd contrib/ || die
|
||||
java-pkg_jar-from --build-only --into queries/lib \
|
||||
jakarta-regexp:1.4 jakarta-regexp.jar jakarta-regexpt-1.4.jar
|
||||
java-pkg_jar-from --build-only --into benchmark/lib \
|
||||
commons-compress commons-compress.jar commons-compress-1.1.jar
|
||||
java-pkg_jar-from --build-only --into benchmark/lib \
|
||||
commons-collections commons-collections.jar commons-collections-3.1.jar
|
||||
java-pkg_jar-from --build-only --into benchmark/lib \
|
||||
commons-digester commons-digester.jar commons-digester-1.7.jar
|
||||
java-pkg_jar-from --build-only --into benchmark/lib \
|
||||
commons-logging commons-logging.jar commons-logging-1.0.4.jar
|
||||
java-pkg_jar-from --build-only --into benchmark/lib \
|
||||
commons-beanutils:1.7 commons-beanutils.jar commons-beanutils-1.7.0.jar
|
||||
fi
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
# FIXME: docs do not build if behind a proxy, -autoproxy does not work
|
||||
java-ant_xml-rewrite -f common-build.xml \
|
||||
-c -e javadoc \
|
||||
-a failonerror \
|
||||
-v "false"
|
||||
|
||||
ANT_TASKS="none" \
|
||||
eant -Dversion=${PV} \
|
||||
-Dfailonjavadocwarning=false \
|
||||
jar-core \
|
||||
$(use_doc javadocs-core)
|
||||
|
||||
if use contrib; then
|
||||
ANT_TASKS="none" \
|
||||
eant -Dversion=${PV} \
|
||||
-Dfailonjavadocwarning=false \
|
||||
build-contrib \
|
||||
$(use_doc javadocs-all)
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
# FIXME: test does not get run, even when selected
|
||||
java-ant_rewrite-classpath common-build.xml
|
||||
EANT_GENTOO_CLASSPATH="junit-4 ant-core ant-junit" \
|
||||
ANT_TASKS="ant-junit" \
|
||||
eant test-core
|
||||
}
|
||||
|
||||
src_install() {
|
||||
einstalldocs
|
||||
java-pkg_newjar build/${PN}-core-${PV}.jar ${PN}-core.jar
|
||||
|
||||
if use contrib; then
|
||||
local i j
|
||||
for i in $(find build/contrib -name \*-${PV}.jar); do
|
||||
j=${i##*/}
|
||||
java-pkg_newjar $i ${j%%-${PV}.jar}.jar
|
||||
done
|
||||
fi
|
||||
if use doc; then
|
||||
dodoc -r docs
|
||||
java-pkg_dohtml -r build/docs/api
|
||||
fi
|
||||
if use source; then
|
||||
java-pkg_dosrc src/java/org
|
||||
use contrib && java-pkg_dosrc contrib
|
||||
fi
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
JAVA_PKG_IUSE="doc source"
|
||||
|
||||
inherit java-pkg-2 java-pkg-simple
|
||||
|
||||
DESCRIPTION="A mocking framework for Java"
|
||||
HOMEPAGE="https://github.com/mockito/mockito"
|
||||
SRC_URI="https://${PN}.googlecode.com/files/${P}.zip"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
|
||||
|
||||
CDEPEND="
|
||||
dev-java/ant-core:0
|
||||
dev-java/hamcrest-core:0
|
||||
dev-java/junit:4
|
||||
dev-java/objenesis:0
|
||||
"
|
||||
RDEPEND="${CDEPEND}
|
||||
virtual/jre:1.8"
|
||||
DEPEND="${CDEPEND}
|
||||
virtual/jdk:1.8"
|
||||
BDEPEND="app-arch/unzip"
|
||||
|
||||
S="${WORKDIR}"
|
||||
|
||||
JAVA_SRC_DIR="src"
|
||||
JAVA_GENTOO_CLASSPATH="junit-4,objenesis,hamcrest-core,ant-core"
|
||||
|
||||
src_unpack() {
|
||||
unpack ${A}
|
||||
unzip "${S}"/sources/${PN}-core-${PV}-sources.jar -d src/ || die
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
find "${S}" -name "*.jar" -delete || die
|
||||
}
|
Binary file not shown.
@ -1,3 +1,2 @@
|
||||
DIST elixir-1.11.4.tar.gz 2396885 BLAKE2B f63e835991420bce8cacd38a920637aa5656c0372bd09e8c0a357a24bcca9a06350973f1453f482d3854a48712471c55389c3bd530df46a19c20a359376b779d SHA512 5dc940a31a31ae1c1537f874c15e58311cc0b0452f61e923bdfde0a5cfef3d8003eb3e85be320eb0acfb7bc0c0c0dc8ac965dec6727257c244048268fbf38ceb
|
||||
DIST elixir-1.12.0.tar.gz 2457567 BLAKE2B 9adc3d54e2200cddaab0323a8e1c8affae6ad0fbee2c48da87249db0f29d31158ef0a74edf95128302183ba3ee714f502df6d30048c49b42c190d1a43e4e8308 SHA512 6ae99c0307d2adaa51cc8b569329592509b1e19bf9f78d4230507c11229da674476c0be65bc9ce5e3b0d78082182755a76abc8beff59af1f84672dd73e5b912f
|
||||
DIST elixir-1.12.1.tar.gz 2458060 BLAKE2B 512f016cb7f064f2b90a4d2dae4ffaf957422f049322b5fbed1eef155687b1111de89df838c254cf123b904e64f746fc19175372166526c739d8a1d66f9abb0c SHA512 ecea8a95d05e85431c324c7e15fdd08639a52fa6031fb8ec671825debecd892d2258b3914fdd8417728be1a18202d211eeb19869797ad0fd022c6ec91cd05880
|
||||
|
@ -1,37 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Elixir programming language"
|
||||
HOMEPAGE="https://elixir-lang.org"
|
||||
SRC_URI="https://github.com/elixir-lang/elixir/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="Apache-2.0 ErlPL-1.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~sparc ~x86"
|
||||
IUSE="test"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
DEPEND="
|
||||
>=dev-lang/erlang-22:0=[ssl]
|
||||
"
|
||||
# 'mix' tool collides with sci-biology/phylip, bug #537514
|
||||
RDEPEND="${DEPEND}
|
||||
!!sci-biology/phylip
|
||||
"
|
||||
DEPEND+="
|
||||
test? ( dev-vcs/git )
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.9.1-disable-network-tests.patch
|
||||
"${FILESDIR}"/${PN}-1.10.3-no-Q.patch
|
||||
"${FILESDIR}"/${PN}-1.10.3-epmd-daemon.patch
|
||||
)
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" LIBDIR="$(get_libdir)" PREFIX="${EPREFIX}/usr" install
|
||||
dodoc README.md CHANGELOG.md CODE_OF_CONDUCT.md
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 13e66268..27ff8364 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -352,7 +352,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
set_source_files_properties(${FLEX_OUTPUT} PROPERTIES COMPILE_FLAGS "/wd4005 /wd4003")
|
||||
set_source_files_properties(${BISON_OUTPUT} PROPERTIES COMPILE_FLAGS "/wd4005 /wd4065")
|
||||
else()
|
||||
- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function -Werror ${LLVM_CPP_FLAGS})
|
||||
+ target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-sign-compare -Wno-unused-function ${LLVM_CPP_FLAGS})
|
||||
# The change implementing -Wno-unused-but-set-variable in clang was reverted, so commenting out for now.
|
||||
#if (${LLVM_VERSION_NUMBER} VERSION_GREATER_EQUAL "13.0.0")
|
||||
# set_source_files_properties(${BISON_CPP_OUTPUT} PROPERTIES COMPILE_FLAGS "-Wno-unused-but-set-variable")
|
@ -1,2 +1,3 @@
|
||||
DIST lfe-1.1.1.zip 386864 BLAKE2B d966e483c0490d7c6e48ae53819a0f1f30ea0edd7dcc6c7c3fe82c79ed0e4013d66dde4e74d4369e72fc46076723612f00ccb8d33d912d46dfdbf8e38940f72b SHA512 8660716a73126615bd0cde161a780cc49ba57718afd820dbe891da5e1d9ec2f52cc1864159dcedba1c674ccfef42b9662ec8e0bbfe82c10798527ae0979b8f8e
|
||||
DIST lfe-1.3.0_p20210112.zip 447903 BLAKE2B bc63fd7f988abba77e7f4baef906c2fd4370e1aeb2bc04b019d429586cbcb91792ac0f65a3d29a904997d2488a2540411c38e904c0208e2183a8f0f8362f7c36 SHA512 ee178436ca8aea1f1001e5f679a366414229f584cc0e0a38d9749b7cb49d7378a3f8681dcb8c1d5c61e4f498aa31c575a791fe21337b3079a11b623ada363de9
|
||||
DIST lfe-2.0.tar.gz 351324 BLAKE2B 811bd310cf917f3e1dc456c9e7c5cd09f5099a2ab20d2bde60e2057eb94ee9125298866b01ef9b483fdaef8572cb487c0a760407c79774e915fdd2c7c129d796 SHA512 b615f28947febe034b1bd155e6c357211ebbdb63aef67645a9681a4a30b799c2019a79ab8f33cd5d3003ad5da83e10af6b3e5c1abe810def92c88812d58c0d04
|
||||
|
@ -0,0 +1,74 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit elisp-common toolchain-funcs
|
||||
|
||||
DESCRIPTION="Lisp-flavoured Erlang"
|
||||
HOMEPAGE="http://lfe.github.io/"
|
||||
SRC_URI="https://github.com/rvirding/lfe/archive/v${PV}.zip -> ${P}.zip"
|
||||
|
||||
if [[ "${PV}" == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_BRANCH="develop"
|
||||
EGIT_REPO_URI="https://github.com/rvirding/${PN}.git"
|
||||
else
|
||||
SRC_URI="https://github.com/rvirding/${PN}/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
fi
|
||||
|
||||
RESTRICT="mirror test"
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
IUSE="doc emacs"
|
||||
|
||||
BDEPEND="app-arch/unzip"
|
||||
RDEPEND="
|
||||
dev-lang/erlang
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
doc? ( app-text/pandoc )
|
||||
"
|
||||
|
||||
SITEFILE="70${PN}-gentoo.el"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -i "s|cc |$(tc-getCC) ${CFLAGS} |g" ./Makefile \
|
||||
|| die "Failed to fix the makefile"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake compile
|
||||
|
||||
use doc && emake docs
|
||||
use emacs && emake emacs
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dodir "/usr/$(get_libdir)/erlang/lib/lfe/ebin/"
|
||||
cp -R ./ebin "${D}/usr/$(get_libdir)/erlang/lib/lfe/"
|
||||
dobin ./bin/*
|
||||
|
||||
if use doc; then
|
||||
dodoc ./doc/*.txt
|
||||
doman ./doc/man/*
|
||||
fi
|
||||
|
||||
if use emacs; then
|
||||
elisp-install lfe emacs/* \
|
||||
|| die "elisp-install failed"
|
||||
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use emacs && elisp-site-regen
|
||||
}
|
Binary file not shown.
@ -1,2 +1 @@
|
||||
DIST isl-0.23.tar.xz 1729656 BLAKE2B ce026eaa1d6c814f4067c555d97a453bdf01d5fa240aa9b6ccd22c9a0e7f19b0c30cd834f976a29b10a5d57eaa747a3f45cf55717f05d98ae405ec93dd42f27b SHA512 da4e7cbd5045d074581d4e1c212acb074a8b2345a96515151b0543cbe2601db6ac2bbd93f9ad6643e98f845b68f438f3882c05b8b90969ae542802a3c78fea20
|
||||
DIST isl-0.24.tar.xz 1930956 BLAKE2B 39cbfd18ad05778e3a5a44429261b45e4abc3efe7730ee890674d968890fe5e52c73bc1f8d271c7c3bc72d5754e3f7fcb209bd139e823d19cb9ea4ce1440164d SHA512 ff6bdcff839e1cd473f2a0c1e4dd4a3612ec6fee4544ccbc62b530a7248db2cf93b4b99bf493a86ddf2aba00e768927265d5d411f92061ea85fd7929073428e8
|
||||
|
@ -1,70 +0,0 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
inherit multilib-minimal preserve-libs toolchain-funcs
|
||||
|
||||
DESCRIPTION="A library for manipulating integer points bounded by linear constraints"
|
||||
HOMEPAGE="http://isl.gforge.inria.fr/"
|
||||
SRC_URI="http://isl.gforge.inria.fr/${P}.tar.xz"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0/23"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="static-libs"
|
||||
|
||||
RDEPEND=">=dev-libs/gmp-5.1.3-r1[${MULTILIB_USEDEP}]"
|
||||
DEPEND="${RDEPEND}"
|
||||
BDEPEND="
|
||||
app-arch/xz-utils
|
||||
virtual/pkgconfig"
|
||||
|
||||
DOCS=( ChangeLog AUTHORS doc/manual.pdf )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.19-gdb-autoload-dir.patch
|
||||
)
|
||||
|
||||
multilib_src_configure() {
|
||||
local econf_opts=(
|
||||
$(use_enable static-libs static)
|
||||
|
||||
# AX_PROG_CC_FOR_BUILD deficiency:
|
||||
# https://wiki.gentoo.org/wiki/Project:Toolchain/use_native_symlinks
|
||||
CC_FOR_BUILD="$(tc-getBUILD_CC)"
|
||||
)
|
||||
if ! tc-is-cross-compiler; then
|
||||
# Incorrect CFLAGS handling as CFLAGS_FOR_BUILD
|
||||
# even for native builds. As a result -O3 is being used
|
||||
# regardless of user's CFLAGS.
|
||||
econf_opts+=(
|
||||
CFLAGS_FOR_BUILD="${CFLAGS}"
|
||||
)
|
||||
fi
|
||||
|
||||
ECONF_SOURCE="${S}" econf "${econf_opts[@]}"
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
einstalldocs
|
||||
find "${ED}" -type f -name '*.la' -delete
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
preserve_old_lib \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 14) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 15) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 19) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 21) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 22)
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
preserve_old_lib_notify \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 14) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 15) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 19) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 21) \
|
||||
/usr/$(get_libdir)/libisl$(get_libname 22)
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
DIST nss-3.63.1.tar.gz 82166899 BLAKE2B a3c1939d16dcb083fae819659c0a61ff1d4dab70c8a7fc4b176a391bf7cd22eae1c93c85533b6af15e1c1cd9fb6b007380741e0b1670f3891f298ffa1b309284 SHA512 62d1bc161fc8eea6be191dc23ec42042a2626e119b7329f6449cf78729775776fd8e9faebd0457c2413684c15be6e10722ee4a7087c7c3e103fe993f3acec730
|
||||
DIST nss-3.65.tar.gz 82386222 BLAKE2B 4e1876a12d042b67c6654a8396611ca33d5257b07c75b55201de229f0a6860577886f38d640837d6512b30a074d05b917bae4e34263d9c0f6f4606c80b369a04 SHA512 6f980f44056c69c74754124ce16d4880fb47440146d55906584f70d1be8e74885570308914d4482b3ee676a1f5b1e529616eae8ccd6906d678394dd929dd0825
|
||||
DIST nss-3.66.tar.gz 82401896 BLAKE2B ae369899af681e1c6ea8046098c83da08c2112b16d85a0eaee46e9d4f97dfb3f7c3e97eb681ec947b5648446c6db51e8f1396ec9bb6c731c9678ecf925e7f743 SHA512 327129cb065a8c19246e081e3cbc4798c81dc52eab6ee366eade151e9d308990592075c52a7c672165725fd855a0c539d56a803c26ef066561c584d693e0e467
|
||||
DIST nss-3.67.tar.gz 82402188 BLAKE2B 00733c3f3b47e9dd5d5492ecc67baf2507b2bb446a7245422065f1ff28fcfdca25b6e93854ab5b1bd8b2706821a143b5d1d33273008982416148a8ced8e5117e SHA512 1d3fa3fafbf3e54c9c3b54b0b3c291aebb48542380a1b704fa07359d3cefab93f166b31928c9db190ed58118e289e67ce8aa1619e4219d69b2c098484a22bc9d
|
||||
DIST nss-cacert-class1-class3-r2.patch 21925 BLAKE2B 7627ff9a09f084c19d72d0490676865e3cab3ca7c920ae1ce4bea2db664f37fd0aa84fcda919809a516891ab2a62e2e7a43a9d6ada4c231adfe4c216525fac7d SHA512 1ce6ff9ab310aaca9005eafb461338b291df8523cc7044e096cd75774ce746c26eed19ec6bb2643c6c67f94650f2f309463492d80a90568f38ce2557f8ada2f4
|
||||
|
@ -0,0 +1,357 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit flag-o-matic multilib toolchain-funcs multilib-minimal
|
||||
|
||||
NSPR_VER="4.29"
|
||||
RTM_NAME="NSS_${PV//./_}_RTM"
|
||||
|
||||
DESCRIPTION="Mozilla's Network Security Services library that implements PKI support"
|
||||
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"
|
||||
SRC_URI="https://archive.mozilla.org/pub/security/nss/releases/${RTM_NAME}/src/${P}.tar.gz
|
||||
cacert? ( https://dev.gentoo.org/~whissi/dist/ca-certificates/nss-cacert-class1-class3-r2.patch )"
|
||||
|
||||
LICENSE="|| ( MPL-2.0 GPL-2 LGPL-2.1 )"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-solaris ~x86-solaris"
|
||||
IUSE="cacert utils"
|
||||
# pkg-config called by nss-config -> virtual/pkgconfig in RDEPEND
|
||||
RDEPEND="
|
||||
>=dev-libs/nspr-${NSPR_VER}[${MULTILIB_USEDEP}]
|
||||
>=dev-db/sqlite-3.8.2[${MULTILIB_USEDEP}]
|
||||
>=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}]
|
||||
virtual/pkgconfig
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
RESTRICT="test"
|
||||
|
||||
S="${WORKDIR}/${P}/${PN}"
|
||||
|
||||
MULTILIB_CHOST_TOOLS=(
|
||||
/usr/bin/nss-config
|
||||
)
|
||||
|
||||
PATCHES=(
|
||||
# Custom changes for gentoo
|
||||
"${FILESDIR}/${PN}-3.53-gentoo-fixups.patch"
|
||||
"${FILESDIR}/${PN}-3.21-gentoo-fixup-warnings.patch"
|
||||
"${FILESDIR}/${PN}-3.23-hppa-byte_order.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if use cacert ; then
|
||||
eapply -p2 "${DISTDIR}"/nss-cacert-class1-class3-r2.patch
|
||||
fi
|
||||
|
||||
pushd coreconf >/dev/null || die
|
||||
# hack nspr paths
|
||||
echo 'INCLUDES += -I$(DIST)/include/dbm' \
|
||||
>> headers.mk || die "failed to append include"
|
||||
|
||||
# modify install path
|
||||
sed -e '/CORE_DEPTH/s:SOURCE_PREFIX.*$:SOURCE_PREFIX = $(CORE_DEPTH)/dist:' \
|
||||
-i source.mk || die
|
||||
|
||||
# Respect LDFLAGS
|
||||
sed -i -e 's/\$(MKSHLIB) -o/\$(MKSHLIB) \$(LDFLAGS) -o/g' rules.mk
|
||||
popd >/dev/null || die
|
||||
|
||||
# Fix pkgconfig file for Prefix
|
||||
sed -i -e "/^PREFIX =/s:= /usr:= ${EPREFIX}/usr:" \
|
||||
config/Makefile || die
|
||||
|
||||
# use host shlibsign if need be #436216
|
||||
if tc-is-cross-compiler ; then
|
||||
sed -i \
|
||||
-e 's:"${2}"/shlibsign:shlibsign:' \
|
||||
cmd/shlibsign/sign.sh || die
|
||||
fi
|
||||
|
||||
# dirty hack
|
||||
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../freebl/\$(OBJDIR):" \
|
||||
lib/ssl/config.mk || die
|
||||
sed -i -e "/CRYPTOLIB/s:\$(SOFTOKEN_LIB_DIR):../../lib/freebl/\$(OBJDIR):" \
|
||||
cmd/platlibs.mk || die
|
||||
|
||||
multilib_copy_sources
|
||||
|
||||
strip-flags
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# Ensure we stay multilib aware
|
||||
sed -i -e "/@libdir@/ s:lib64:$(get_libdir):" config/Makefile || die
|
||||
}
|
||||
|
||||
nssarch() {
|
||||
# Most of the arches are the same as $ARCH
|
||||
local t=${1:-${CHOST}}
|
||||
case ${t} in
|
||||
*86*-pc-solaris2*) echo "i86pc" ;;
|
||||
aarch64*) echo "aarch64" ;;
|
||||
hppa*) echo "parisc" ;;
|
||||
i?86*) echo "i686" ;;
|
||||
x86_64*) echo "x86_64" ;;
|
||||
*) tc-arch ${t} ;;
|
||||
esac
|
||||
}
|
||||
|
||||
nssbits() {
|
||||
local cc cppflags="${1}CPPFLAGS" cflags="${1}CFLAGS"
|
||||
if [[ ${1} == BUILD_ ]]; then
|
||||
cc=$(tc-getBUILD_CC)
|
||||
else
|
||||
cc=$(tc-getCC)
|
||||
fi
|
||||
echo > "${T}"/test.c || die
|
||||
${cc} ${!cppflags} ${!cflags} -c "${T}"/test.c -o "${T}/${1}test.o" || die
|
||||
case $(file "${T}/${1}test.o") in
|
||||
*32-bit*x86-64*) echo USE_X32=1;;
|
||||
*64-bit*|*ppc64*|*x86_64*) echo USE_64=1;;
|
||||
*32-bit*|*ppc*|*i386*) ;;
|
||||
*) die "Failed to detect whether ${cc} builds 64bits or 32bits, disable distcc if you're using it, please";;
|
||||
esac
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
# use ABI to determine bit'ness, or fallback if unset
|
||||
local buildbits mybits
|
||||
case "${ABI}" in
|
||||
n32) mybits="USE_N32=1";;
|
||||
x32) mybits="USE_X32=1";;
|
||||
s390x|*64) mybits="USE_64=1";;
|
||||
${DEFAULT_ABI})
|
||||
einfo "Running compilation test to determine bit'ness"
|
||||
mybits=$(nssbits)
|
||||
;;
|
||||
esac
|
||||
# bitness of host may differ from target
|
||||
if tc-is-cross-compiler; then
|
||||
buildbits=$(nssbits BUILD_)
|
||||
fi
|
||||
|
||||
local makeargs=(
|
||||
CC="$(tc-getCC)"
|
||||
CCC="$(tc-getCXX)"
|
||||
AR="$(tc-getAR) rc \$@"
|
||||
RANLIB="$(tc-getRANLIB)"
|
||||
OPTIMIZER=
|
||||
${mybits}
|
||||
)
|
||||
|
||||
# Take care of nspr settings #436216
|
||||
local myCPPFLAGS="${CPPFLAGS} $($(tc-getPKG_CONFIG) nspr --cflags)"
|
||||
unset NSPR_INCLUDE_DIR
|
||||
|
||||
export NSS_ALLOW_SSLKEYLOGFILE=1
|
||||
export NSS_ENABLE_WERROR=0 #567158
|
||||
export BUILD_OPT=1
|
||||
export NSS_USE_SYSTEM_SQLITE=1
|
||||
export NSDISTMODE=copy
|
||||
export FREEBL_NO_DEPEND=1
|
||||
export FREEBL_LOWHASH=1
|
||||
export NSS_SEED_ONLY_DEV_URANDOM=1
|
||||
export USE_SYSTEM_ZLIB=1
|
||||
export ZLIB_LIBS=-lz
|
||||
export ASFLAGS=""
|
||||
# Fix build failure on arm64
|
||||
export NS_USE_GCC=1
|
||||
# Detect compiler type and set proper environment value
|
||||
if tc-is-gcc; then
|
||||
export CC_IS_GCC=1
|
||||
elif tc-is-clang; then
|
||||
export CC_IS_CLANG=1
|
||||
fi
|
||||
|
||||
local d
|
||||
|
||||
# Build the host tools first.
|
||||
LDFLAGS="${BUILD_LDFLAGS}" \
|
||||
XCFLAGS="${BUILD_CFLAGS}" \
|
||||
NSPR_LIB_DIR="${T}/fakedir" \
|
||||
emake -j1 -C coreconf \
|
||||
CC="$(tc-getBUILD_CC)" \
|
||||
${buildbits-${mybits}}
|
||||
makeargs+=( NSINSTALL="${PWD}/$(find -type f -name nsinstall)" )
|
||||
|
||||
# Then build the target tools.
|
||||
for d in . lib/dbm ; do
|
||||
CPPFLAGS="${myCPPFLAGS}" \
|
||||
XCFLAGS="${CFLAGS} ${CPPFLAGS}" \
|
||||
NSPR_LIB_DIR="${T}/fakedir" \
|
||||
emake -j1 "${makeargs[@]}" -C ${d} OS_TEST="$(nssarch)"
|
||||
done
|
||||
}
|
||||
|
||||
# Altering these 3 libraries breaks the CHK verification.
|
||||
# All of the following cause it to break:
|
||||
# - stripping
|
||||
# - prelink
|
||||
# - ELF signing
|
||||
# http://www.mozilla.org/projects/security/pki/nss/tech-notes/tn6.html
|
||||
# Either we have to NOT strip them, or we have to forcibly resign after
|
||||
# stripping.
|
||||
#local_libdir="$(get_libdir)"
|
||||
#export STRIP_MASK="
|
||||
# */${local_libdir}/libfreebl3.so*
|
||||
# */${local_libdir}/libnssdbm3.so*
|
||||
# */${local_libdir}/libsoftokn3.so*"
|
||||
|
||||
export NSS_CHK_SIGN_LIBS="freebl3 nssdbm3 softokn3"
|
||||
|
||||
generate_chk() {
|
||||
local shlibsign="$1"
|
||||
local libdir="$2"
|
||||
einfo "Resigning core NSS libraries for FIPS validation"
|
||||
shift 2
|
||||
local i
|
||||
for i in ${NSS_CHK_SIGN_LIBS} ; do
|
||||
local libname=lib${i}.so
|
||||
local chkname=lib${i}.chk
|
||||
"${shlibsign}" \
|
||||
-i "${libdir}"/${libname} \
|
||||
-o "${libdir}"/${chkname}.tmp \
|
||||
&& mv -f \
|
||||
"${libdir}"/${chkname}.tmp \
|
||||
"${libdir}"/${chkname} \
|
||||
|| die "Failed to sign ${libname}"
|
||||
done
|
||||
}
|
||||
|
||||
cleanup_chk() {
|
||||
local libdir="$1"
|
||||
shift 1
|
||||
local i
|
||||
for i in ${NSS_CHK_SIGN_LIBS} ; do
|
||||
local libfname="${libdir}/lib${i}.so"
|
||||
# If the major version has changed, then we have old chk files.
|
||||
[ ! -f "${libfname}" -a -f "${libfname}.chk" ] \
|
||||
&& rm -f "${libfname}.chk"
|
||||
done
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
pushd dist >/dev/null || die
|
||||
|
||||
dodir /usr/$(get_libdir)
|
||||
cp -L */lib/*$(get_libname) "${ED}"/usr/$(get_libdir) || die "copying shared libs failed"
|
||||
local i
|
||||
for i in crmf freebl nssb nssckfw ; do
|
||||
cp -L */lib/lib${i}.a "${ED}"/usr/$(get_libdir) || die "copying libs failed"
|
||||
done
|
||||
|
||||
# Install nss-config and pkgconfig file
|
||||
dodir /usr/bin
|
||||
cp -L */bin/nss-config "${ED}"/usr/bin || die
|
||||
dodir /usr/$(get_libdir)/pkgconfig
|
||||
cp -L */lib/pkgconfig/nss.pc "${ED}"/usr/$(get_libdir)/pkgconfig || die
|
||||
|
||||
# create an nss-softokn.pc from nss.pc for libfreebl and some private headers
|
||||
# bug 517266
|
||||
sed -e 's#Libs:#Libs: -lfreebl#' \
|
||||
-e 's#Cflags:#Cflags: -I${includedir}/private#' \
|
||||
*/lib/pkgconfig/nss.pc >"${ED}"/usr/$(get_libdir)/pkgconfig/nss-softokn.pc \
|
||||
|| die "could not create nss-softokn.pc"
|
||||
|
||||
# all the include files
|
||||
insinto /usr/include/nss
|
||||
doins public/nss/*.{h,api}
|
||||
insinto /usr/include/nss/private
|
||||
doins private/nss/{blapi,alghmac,cmac}.h
|
||||
|
||||
popd >/dev/null || die
|
||||
|
||||
local f nssutils
|
||||
# Always enabled because we need it for chk generation.
|
||||
nssutils=( shlibsign )
|
||||
|
||||
if multilib_is_native_abi ; then
|
||||
if use utils; then
|
||||
# The tests we do not need to install.
|
||||
#nssutils_test="bltest crmftest dbtest dertimetest
|
||||
#fipstest remtest sdrtest"
|
||||
# checkcert utils has been removed in nss-3.22:
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1187545
|
||||
# https://hg.mozilla.org/projects/nss/rev/df1729d37870
|
||||
# certcgi has been removed in nss-3.36:
|
||||
# https://bugzilla.mozilla.org/show_bug.cgi?id=1426602
|
||||
nssutils+=(
|
||||
addbuiltin
|
||||
atob
|
||||
baddbdir
|
||||
btoa
|
||||
certutil
|
||||
cmsutil
|
||||
conflict
|
||||
crlutil
|
||||
derdump
|
||||
digest
|
||||
makepqg
|
||||
mangle
|
||||
modutil
|
||||
multinit
|
||||
nonspr10
|
||||
ocspclnt
|
||||
oidcalc
|
||||
p7content
|
||||
p7env
|
||||
p7sign
|
||||
p7verify
|
||||
pk11mode
|
||||
pk12util
|
||||
pp
|
||||
rsaperf
|
||||
selfserv
|
||||
signtool
|
||||
signver
|
||||
ssltap
|
||||
strsclnt
|
||||
symkeyutil
|
||||
tstclnt
|
||||
vfychain
|
||||
vfyserv
|
||||
)
|
||||
# install man-pages for utils (bug #516810)
|
||||
doman doc/nroff/*.1
|
||||
fi
|
||||
pushd dist/*/bin >/dev/null || die
|
||||
for f in ${nssutils[@]}; do
|
||||
dobin ${f}
|
||||
done
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
# Prelink breaks the CHK files. We don't have any reliable way to run
|
||||
# shlibsign after prelink.
|
||||
dodir /etc/prelink.conf.d
|
||||
printf -- "-b ${EPREFIX}/usr/$(get_libdir)/lib%s.so\n" ${NSS_CHK_SIGN_LIBS} \
|
||||
> "${ED}"/etc/prelink.conf.d/nss.conf
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
multilib_pkg_postinst() {
|
||||
# We must re-sign the libraries AFTER they are stripped.
|
||||
local shlibsign="${EROOT}/usr/bin/shlibsign"
|
||||
# See if we can execute it (cross-compiling & such). #436216
|
||||
"${shlibsign}" -h >&/dev/null
|
||||
if [[ $? -gt 1 ]] ; then
|
||||
shlibsign="shlibsign"
|
||||
fi
|
||||
generate_chk "${shlibsign}" "${EROOT}"/usr/$(get_libdir)
|
||||
}
|
||||
|
||||
multilib_foreach_abi multilib_pkg_postinst
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
multilib_pkg_postrm() {
|
||||
cleanup_chk "${EROOT}"/usr/$(get_libdir)
|
||||
}
|
||||
|
||||
multilib_foreach_abi multilib_pkg_postrm
|
||||
}
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue