Browse Source

Sync with portage [Sat Jun 12 15:49:49 MSK 2021].

tags/1988
root 1 month ago
parent
commit
23a06e9379
100 changed files with 1627 additions and 3073 deletions
  1. BIN
      Manifest.files.gz
  2. BIN
      app-admin/Manifest.gz
  3. +1
    -1
      app-admin/apache-tools/apache-tools-2.4.48.ebuild
  4. +1
    -0
      app-admin/awscli/Manifest
  5. +58
    -0
      app-admin/awscli/awscli-1.19.93.ebuild
  6. +1
    -0
      app-admin/keepassxc/Manifest
  7. +99
    -0
      app-admin/keepassxc/keepassxc-2.6.6.ebuild
  8. +1
    -1
      app-admin/pass/Manifest
  9. +3
    -16
      app-admin/pass/pass-1.7.4.ebuild
  10. +1
    -0
      app-admin/rex/rex-1.13.3.ebuild
  11. +1
    -0
      app-admin/rex/rex-9999.ebuild
  12. +1
    -0
      app-admin/sudo/Manifest
  13. +254
    -0
      app-admin/sudo/sudo-1.9.7_p1.ebuild
  14. +1
    -0
      app-admin/sysstat/Manifest
  15. +87
    -0
      app-admin/sysstat/sysstat-12.5.4.ebuild
  16. BIN
      app-benchmarks/Manifest.gz
  17. +1
    -0
      app-benchmarks/ioping/Manifest
  18. +30
    -0
      app-benchmarks/ioping/ioping-1.2.ebuild
  19. BIN
      app-editors/Manifest.gz
  20. +1
    -0
      app-editors/vim/metadata.xml
  21. +7
    -1
      app-editors/vim/vim-8.2.0814-r100.ebuild
  22. BIN
      app-emulation/Manifest.gz
  23. +1
    -0
      app-emulation/buildah/Manifest
  24. +50
    -0
      app-emulation/buildah/buildah-1.21.1.ebuild
  25. +1
    -1
      app-emulation/containerd/containerd-1.4.6.ebuild
  26. +1
    -1
      app-emulation/docker-cli/docker-cli-20.10.7.ebuild
  27. +1
    -1
      app-emulation/docker-proxy/docker-proxy-0.8.0_p20210525.ebuild
  28. +1
    -1
      app-emulation/docker/docker-20.10.7.ebuild
  29. +0
    -71
      app-emulation/nemu/nemu-9999.ebuild
  30. +0
    -1
      app-emulation/qemu/Manifest
  31. +0
    -863
      app-emulation/qemu/qemu-5.2.0-r2.ebuild
  32. +0
    -868
      app-emulation/qemu/qemu-5.2.0-r3.ebuild
  33. +0
    -871
      app-emulation/qemu/qemu-5.2.0-r50.ebuild
  34. +1
    -1
      app-emulation/runc/runc-1.0.0_rc95.ebuild
  35. +2
    -1
      app-emulation/xen-tools/Manifest
  36. +1
    -1
      app-emulation/xen-tools/xen-tools-4.14.2-r1.ebuild
  37. +1
    -1
      app-emulation/xen-tools/xen-tools-4.15.0-r1.ebuild
  38. +2
    -1
      app-emulation/xen/Manifest
  39. +1
    -1
      app-emulation/xen/xen-4.14.2-r1.ebuild
  40. +1
    -1
      app-emulation/xen/xen-4.15.0-r1.ebuild
  41. BIN
      app-forensics/Manifest.gz
  42. +2
    -0
      app-forensics/chkrootkit/Manifest
  43. +58
    -0
      app-forensics/chkrootkit/chkrootkit-0.55.ebuild
  44. BIN
      app-misc/Manifest.gz
  45. +1
    -0
      app-misc/anki/anki-2.1.15-r1.ebuild
  46. +13
    -0
      app-misc/anki/files/anki-2.1.15-unescape.patch
  47. +1
    -1
      app-misc/pax-utils/pax-utils-1.3.1.ebuild
  48. +1
    -1
      app-misc/pax-utils/pax-utils-1.3.2.ebuild
  49. +1
    -1
      app-misc/supercat/supercat-0.5.6.ebuild
  50. +0
    -1
      app-misc/tmux-xpanes/Manifest
  51. +0
    -36
      app-misc/tmux-xpanes/tmux-xpanes-4.1.1.ebuild
  52. +1
    -1
      app-misc/tmux-xpanes/tmux-xpanes-4.1.2.ebuild
  53. BIN
      app-office/Manifest.gz
  54. +2
    -0
      app-office/lyx/lyx-2.3.6.1-r1.ebuild
  55. BIN
      app-portage/Manifest.gz
  56. +1
    -0
      app-portage/portpeek/Manifest
  57. +30
    -0
      app-portage/portpeek/portpeek-3.2.1.ebuild
  58. BIN
      app-text/Manifest.gz
  59. +1
    -0
      app-text/poppler/Manifest
  60. +123
    -0
      app-text/poppler/poppler-21.06.1.ebuild
  61. +1
    -1
      app-text/poppler/poppler-9999.ebuild
  62. BIN
      dev-cpp/Manifest.gz
  63. +1
    -1
      dev-cpp/abseil-cpp/abseil-cpp-20210324.1.ebuild
  64. +1
    -0
      dev-cpp/asio/Manifest
  65. +51
    -0
      dev-cpp/asio/asio-1.18.2.ebuild
  66. BIN
      dev-java/Manifest.gz
  67. +2
    -0
      dev-java/gwt/Manifest
  68. +20
    -0
      dev-java/gwt/files/gwt-2.9.0-jsinterop-classpath.patch
  69. +26
    -0
      dev-java/gwt/files/gwt-2.9.0-remove-git-usage.patch
  70. +96
    -0
      dev-java/gwt/gwt-2.9.0.ebuild
  71. +87
    -0
      dev-java/jna/jna-4.2.2-r2.ebuild
  72. +0
    -2
      dev-java/lucene/Manifest
  73. +0
    -52
      dev-java/lucene/lucene-1.4.3-r4.ebuild
  74. +0
    -136
      dev-java/lucene/lucene-3.5.0-r2.ebuild
  75. +43
    -0
      dev-java/mockito/mockito-1.9.5-r2.ebuild
  76. +1
    -1
      dev-java/stringtemplate/stringtemplate-3.2.1-r2.ebuild
  77. BIN
      dev-lang/Manifest.gz
  78. +0
    -1
      dev-lang/elixir/Manifest
  79. +0
    -37
      dev-lang/elixir/elixir-1.12.0.ebuild
  80. +1
    -1
      dev-lang/go/go-1.15.13.ebuild
  81. +1
    -1
      dev-lang/go/go-1.16.5.ebuild
  82. +0
    -13
      dev-lang/ispc/files/ispc-9999-werror.patch
  83. +0
    -1
      dev-lang/ispc/ispc-9999.ebuild
  84. +1
    -0
      dev-lang/lfe/Manifest
  85. +74
    -0
      dev-lang/lfe/lfe-2.0.ebuild
  86. +1
    -1
      dev-lang/python/python-2.7.18_p10.ebuild
  87. +1
    -1
      dev-lang/python/python-3.6.13_p5.ebuild
  88. +1
    -1
      dev-lang/python/python-3.7.10_p6.ebuild
  89. +1
    -1
      dev-lang/python/python-3.8.10_p2.ebuild
  90. +1
    -1
      dev-lang/python/python-3.9.5_p2.ebuild
  91. BIN
      dev-libs/Manifest.gz
  92. +1
    -1
      dev-libs/ell/ell-0.40.ebuild
  93. +0
    -1
      dev-libs/isl/Manifest
  94. +0
    -70
      dev-libs/isl/isl-0.23-r1.ebuild
  95. +5
    -0
      dev-libs/libappindicator/libappindicator-12.10.1_p20200706.ebuild
  96. +1
    -1
      dev-libs/libksba/libksba-1.5.1.ebuild
  97. +4
    -3
      dev-libs/nanomsg/nanomsg-1.1.5.ebuild
  98. +1
    -0
      dev-libs/nss/Manifest
  99. +357
    -0
      dev-libs/nss/nss-3.67.ebuild
  100. BIN
      dev-ml/Manifest.gz

BIN
Manifest.files.gz View File


BIN
app-admin/Manifest.gz View File


+ 1
- 1
app-admin/apache-tools/apache-tools-2.4.48.ebuild View File

@@ -10,7 +10,7 @@ SRC_URI="mirror://apache/httpd/httpd-${PV}.tar.bz2"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc64-solaris ~x64-solaris"
KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ppc ~ppc64 ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc64-solaris ~x64-solaris"
IUSE="ssl"
RESTRICT="test"



+ 1
- 0
app-admin/awscli/Manifest View File

@@ -13,3 +13,4 @@ DIST awscli-1.19.89.tar.gz 2016580 BLAKE2B d58c490383750df0ec9482dd0adbd119f0db0
DIST awscli-1.19.90.tar.gz 2017068 BLAKE2B 7e08ee937c90ab82318479d960aa7c8f8274ba46b1267692f93e7756bccd50e35d12174b5e58a3ae3dc540cea7e57e311ca6edc4b43ea7a46475395d7f74ee49 SHA512 502d5a30022c8113d5ff7be3fd33e835e963b9bbe01da0b75892794df7cbc6a08b7bfd948c1b3e3d96e726e0d1d537bf79baf3ca77192e46fabc0ba341e0af26
DIST awscli-1.19.91.tar.gz 2017336 BLAKE2B e74079f8bda95cec8998f85436f5fcc6ec1f3a6a475909c3c8068b876651640c6a0635b22a098812e3b31bc5ae6b7c202f287eb36870c923ddc2cd3376e6ec68 SHA512 ae547b7c5cebea25d63861500f8195e1ea640cbf6b93391d3b3128ad0cc13393441fcd70932cd93ca0bba39b0b1ed98720a063e4ef28d06b7dcb09464b17fdeb
DIST awscli-1.19.92.tar.gz 2018201 BLAKE2B 3e7988878772b978efe1a9043a3d55c129e4ff35b6d3450e65f9bd9fb92effb3d7e0cef389880f4d34726ed72d3249778a50a0b716420c369abe04a2a097685e SHA512 42f91c73c974ab20698259d98b6f31694317cb01127a20d346695b4e73ae45cfdcee0ef241d40e648f5d538d93a2303ba74759508873dbe5071b43ae4f4c80bd
DIST awscli-1.19.93.tar.gz 2018769 BLAKE2B 95aadfbf6b54e679aee97a1f9194aa8d1667d73b4397e60c00b96bf45ef3e8cfde607b574e0a4017c7660fff7fbf150b9dfb5d2c37f9a12fa86987cadf8c2143 SHA512 2f2ba19659f0c385b629124741218a541024c45d95960069cf362f6e17fa78fd7f2a69042cd9a4e64af540bd4ceac9b451f415c589504fda662e491dec082828

+ 58
- 0
app-admin/awscli/awscli-1.19.93.ebuild View File

@@ -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
- 0
app-admin/keepassxc/Manifest View File

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

+ 99
- 0
app-admin/keepassxc/keepassxc-2.6.6.ebuild View File

@@ -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
- 1
app-admin/pass/Manifest View File

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

app-admin/pass/pass-1.7.4_pre20210216.ebuild → app-admin/pass/pass-1.7.4.ebuild View File

@@ -5,21 +5,13 @@ EAPI=7

inherit bash-completion-r1 elisp-common

if [[ ${PV} = 9999* ]]; then
EGIT_REPO_URI="https://git.zx2c4.com/password-store"
inherit git-r3
else
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~x64-macos"
COMMIT_ID="918992c19231b33b3d4a3288a7288a620e608cb4"
SRC_URI="https://git.zx2c4.com/password-store/snapshot/password-store-${COMMIT_ID}.tar.xz"
S="${WORKDIR}/${PN}"
fi

DESCRIPTION="Stores, retrieves, generates, and synchronizes passwords securely"
HOMEPAGE="https://www.passwordstore.org/"
SRC_URI="https://git.zx2c4.com/password-store/snapshot/password-store-${PV}.tar.xz"

SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~x64-macos"
IUSE="+git wayland X zsh-completion fish-completion emacs dmenu importers elibc_Darwin"

RDEPEND="
@@ -36,12 +28,7 @@ RDEPEND="
emacs? ( >=app-editors/emacs-23.1:* >=app-emacs/f-0.11.0 >=app-emacs/s-1.9.0 >=app-emacs/with-editor-2.5.11 )
"

src_unpack() {
default

# Hack: Tests fail if the path length is too long
mv "${WORKDIR}/password-store-${COMMIT_ID}" "${WORKDIR}/${PN}"
}
S="${WORKDIR}/password-store-${PV}"

src_prepare() {
default

+ 1
- 0
app-admin/rex/rex-1.13.3.ebuild View File

@@ -21,6 +21,7 @@ fi
inherit bash-completion-r1 perl-module ${VCS_ECLASS}

DESCRIPTION="(R)?ex, the friendly automation framework"
HOMEPAGE="https://metacpan.org/release/Rex https://www.rexify.org"

SLOT="0"
IUSE="minimal test"


+ 1
- 0
app-admin/rex/rex-9999.ebuild View File

@@ -21,6 +21,7 @@ fi
inherit bash-completion-r1 perl-module ${VCS_ECLASS}

DESCRIPTION="(R)?ex, the friendly automation framework"
HOMEPAGE="https://metacpan.org/release/Rex https://www.rexify.org"

SLOT="0"
IUSE="minimal test"


+ 1
- 0
app-admin/sudo/Manifest View File

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

+ 254
- 0
app-admin/sudo/sudo-1.9.7_p1.ebuild View File

@@ -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
- 0
app-admin/sysstat/Manifest View File

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

+ 87
- 0
app-admin/sysstat/sysstat-12.5.4.ebuild View File

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

BIN
app-benchmarks/Manifest.gz View File


+ 1
- 0
app-benchmarks/ioping/Manifest View File

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

+ 30
- 0
app-benchmarks/ioping/ioping-1.2.ebuild View File

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

BIN
app-editors/Manifest.gz View File


+ 1
- 0
app-editors/vim/metadata.xml View File

@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="cscope">Enable cscope interface</flag>
<flag name="ipv6">Enable IPv6 support in channel</flag>
<flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg></flag>
<flag name="terminal">Enable terminal emulation support</flag>
<flag name="vim-pager">Install vimpager and vimmanpager links</flag>


+ 7
- 1
app-editors/vim/vim-8.2.0814-r100.ebuild View File

@@ -24,7 +24,7 @@ HOMEPAGE="https://vim.sourceforge.io/ https://github.com/vim/vim"

SLOT="0"
LICENSE="vim"
IUSE="X acl cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager"
IUSE="X acl cscope debug gpm lua ipv6 minimal nls perl python racket ruby selinux sound tcl terminal vim-pager"
REQUIRED_USE="
lua? ( ${LUA_REQUIRED_USE} )
python? ( ${PYTHON_REQUIRED_USE} )
@@ -228,6 +228,12 @@ src_configure() {
)
fi

if ! use ipv6; then
myconf+=(
vim_cv_ipv6_networking=no
)
fi

# don't test USE=X here ... see bug #19115
# but need to provide a way to link against X ... see bug #20093
myconf+=(


BIN
app-emulation/Manifest.gz View File


+ 1
- 0
app-emulation/buildah/Manifest View File

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

+ 50
- 0
app-emulation/buildah/buildah-1.21.1.ebuild View File

@@ -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
- 1
app-emulation/containerd/containerd-1.4.6.ebuild View File

@@ -13,7 +13,7 @@ SRC_URI="https://github.com/containerd/containerd/archive/v${PV}.tar.gz -> ${P}.

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ppc64 ~x86"
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~x86"
IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test"

DEPEND="


+ 1
- 1
app-emulation/docker-cli/docker-cli-20.10.7.ebuild View File

@@ -13,7 +13,7 @@ SRC_URI="https://github.com/docker/cli/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ppc64 ~x86"
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~x86"
IUSE="hardened"

RDEPEND="!<app-emulation/docker-20.10.1"


+ 1
- 1
app-emulation/docker-proxy/docker-proxy-0.8.0_p20210525.ebuild View File

@@ -9,7 +9,7 @@ if [[ ${PV} == *9999 ]]; then
else
EGIT_COMMIT=64b7a4574d1426139437d20e81c0b6d391130ec8
SRC_URI="https://github.com/docker/libnetwork/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~arm64 ppc64 ~x86"
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~x86"
inherit golang-vcs-snapshot
fi



+ 1
- 1
app-emulation/docker/docker-20.10.7.ebuild View File

@@ -13,7 +13,7 @@ SRC_URI="https://github.com/moby/moby/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"

LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ppc64 ~x86"
KEYWORDS="amd64 ~arm ~arm64 ppc64 ~x86"
IUSE="apparmor aufs btrfs +cli +container-init device-mapper hardened overlay seccomp"

DEPEND="


+ 0
- 71
app-emulation/nemu/nemu-9999.ebuild View File

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

+ 0
- 1
app-emulation/qemu/Manifest View File

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

+ 0
- 863
app-emulation/qemu/qemu-5.2.0-r2.ebuild View File

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

+ 0
- 868
app-emulation/qemu/qemu-5.2.0-r3.ebuild View File

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