parent
ac9b0a77f9
commit
e5895b6f63
@ -1,23 +1,23 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA512
|
||||
|
||||
MANIFEST Manifest.files.gz 29265 BLAKE2B f6196e16a896f290ee7d436278826af9bbd49adfe9675af0c3b3690a352deba50318e940d3dac26d4c422094ea17ad343702e622ab7a00ff2d550552ccbd77a0 SHA512 b8403f3e8cf51b4f2623e4f118b189f8673f98aa124e0b3f8a032ea0ee7ce4ab51669e7d17b2ac215a79f980383b1a9a049d78bb2068d1ae71fa5a87b7d7ffad
|
||||
TIMESTAMP 2023-09-21T14:40:19Z
|
||||
MANIFEST Manifest.files.gz 29282 BLAKE2B 94af80384a2d3b66e7064f76a32cc6b4d7c0602d13160a1ae5485b8346953f5997bf48a29d6ad07936dcab2db79001e1b61fa0ba1422cc82505d340dbca1ef61 SHA512 411b5cb8c8b399e9a2c7ebf22ecb71011eec853fc6c6f7ba6b4df9a47f52f546cc7210e83381a5f0b7826b94220ea2639bb65b4ec1fffdb83739cef2b4e87e41
|
||||
TIMESTAMP 2023-09-24T11:10:24Z
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmUMVdNfFIAAAAAALgAo
|
||||
iQKTBAEBCgB9FiEE4dartjv8+0ugL98c7FkO6skYklAFAmUQGSBfFIAAAAAALgAo
|
||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEUx
|
||||
RDZBQkI2M0JGQ0ZCNEJBMDJGREYxQ0VDNTkwRUVBQzkxODkyNTAACgkQ7FkO6skY
|
||||
klABSA/9GHKPb2X/TqtD/NnVIjm9hKHDJ+bsv/BCwCL17cP41Geu7YAhOsSfZTq3
|
||||
zX7IHQIPcgsN5AwNI6CyLil4OI8H4/FI0X6d67v+lulnNeTJMV3lDOFHtl7T3kmi
|
||||
rk3y11NgUyc8urt+ENcXzsG7W66Q6uSfYASblVj1+EXcLolwX2fHSzniR00RBWdz
|
||||
U8YPnVamjXmdOEvlev8kBdxLYQLpgvqtWNPHJX1K/7UF+h5uiu3S0pLkhUKoOvHd
|
||||
CpGAsKb63DN4XTlPTb2W+2lIIxJk1rdgmxmEuxqMlw+DUJKFQmW2v/Q6EPwfqBCz
|
||||
jDmGuQIhwcBREIQbJGxxLvKmApNIZxgmdd0kBg9dZVu/uJ8IN0Ux0E29iNJghJ9s
|
||||
n2x1XSU787QgXMeSIoz+QxC70RZjvFT0HDEbnBRZTv/fMlJPpt8al3y1Gi4V+Mzh
|
||||
wfH3ZQjQn5qEwIfvI+utc88p3TvVeLRGcM4aeEdFEectpFGXylR/jOvf9fbd3eyj
|
||||
HYjufVs+CfUBy3SWnrk94a8NVOB1kXPA+tkgmwhueIDzM9BTOlfA1aQwt+GJ4P26
|
||||
yHxEwdMh/T++Wr4laf2qDFrOxOVdF0Blac1AoHB5rNEE2J8JEZ05qkiE9HyJiv96
|
||||
XAn04d4JM+xpORiZACZ0JN9O0PlYRAybVdWAMHfOYOnSCU6n2r8=
|
||||
=3++f
|
||||
klAQ6xAAjcZ2Xv2xN4D4XnUU2NluWBcNNRT+g6YUCsKAv0wyEg8QNr58FKoyAJp7
|
||||
xapcY/Id7j0UM/XS1cGdq4YHqnN0QXQZj9zjoxfn/HCqcA+j7bcwj3aB5V2+mkeF
|
||||
wozvGKdmlDNLYjq2Ow8t5mxtKo/jE04hbfFAZENTUjY3a+OwYqj2eqm5oCBOfL33
|
||||
HIz1i0mfAgiHO2sp8mWRI3JtTnUCm8tINyCrJXEtK2g/kQskrB80GYo/6satF+UK
|
||||
YyueawRlnq7qgI06F7OgKx1IUPhPjAb8zx9AOemVBdMCT4RBl4oQ26d8ALJTPU7J
|
||||
R78DJ8H2BExYq4f59KaqoXxfZuXzLe+D4r4hhdfD8m8Vv3ytidebG3IOyJlctgyd
|
||||
7254v6s/T9qyi5iCOafVkXVwmlWi4KJhBYb8tOaMU+U3eO32vECTLrvV8N7L8s2X
|
||||
98FpVmd5ebokVq66DKEsXAiK/jHhFzOY/T7MslXVsVfrJbUUJE4eGkJMqLqheNXp
|
||||
NPkTPikGa9MJmelc52FquF8efZ0WR4nsJTsyMrkXeFe10SAy09qDJkf9WMKAuCQl
|
||||
JH5YFqoUWRxxnagAMBJjn3tHG2xjFSI77R4DQwbCGVBJXqd4nEyYj6g3fNYbMbA+
|
||||
VRvP3EI6FadIp93BzHj7Ga4+j0G070OlyU9iy1XSqlDe8WIvsKU=
|
||||
=AQ1K
|
||||
-----END PGP SIGNATURE-----
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1,7 +1,5 @@
|
||||
DIST at-spi2-core-2.48.3.tar.xz 554388 BLAKE2B 9692df8cc0bc8de82f6e339b9358be7ab1bc598afdb39503f5f05ca772109b962a513fe2ef79d8f094ea732457225409f3c765784a54cbabf27b8fc72c893eb9 SHA512 e79ef0eb0f23241d61ba2a62f4024a5df5ff7125bc085590f9038b3397d255b88b8266deec14f3fe53bee4072ab85695a47d27d8be0529b18a103ad792fa0e54
|
||||
DIST at-spi2-core-2.48.4.tar.xz 554916 BLAKE2B 6329407e1e0d0a085189174ad31ac65d890e36a1b20179d68155fffa029b476a6b094765b6d3c300a8fa3cdeb01936a1b14cac34c530650287e711132c136ddc SHA512 fa85b680ad5254a8281197969f335c69b6c71d3ea4ec04efb8d70ba9feafd76330cd23a09169eef6f04abf0000e4823d2c2591999e8ed88bc035a26ed8bebdf0
|
||||
DIST at-spi2-core-2.50.0.tar.xz 567664 BLAKE2B 18b9c84542bffc13e762e770da08f289358b5987b27c0159818c6f1f09981be029a8f15ce2b7dd6ed99b049ad7e4a4cbbf2bc4d5e97a81d9096b247df218328f SHA512 7de02efa7e3cb9db4a7da8bb2e9350dc00458e2ba9bf9dafb68d2cab8512b525fc7dcecb45f5912de7459b86d901ab3a188f0a07f5bdc068a51433c900de2308
|
||||
EBUILD at-spi2-core-2.48.3.ebuild 2019 BLAKE2B 731470a156ebc12180cd3e7a5f31d54d0cefa14dcd12671ad8c17da4ff3ccc5ae091ff2bc1df768098cd483cf061d16f315de8c36bc1f44012a2187d056bc15f SHA512 08980d0705f714579f587eb8b550a24efd85e27aad0251e5b31f3b60aa4a411a8730d05819041bdf0dd7a0964f9d19c34f6681ec923a4f5cad974327764bc4c6
|
||||
EBUILD at-spi2-core-2.48.4.ebuild 2027 BLAKE2B 50acb89b25fcbc7665e8a944e20cd7f872f75e9d802a0e139c7060e1b85bb97700ea3863a0d9299ea8ac06fb88ef177e389da6da7007fc48fc626544674b8cb8 SHA512 37398307a0e03bb0bef7ba41cf45a81ed5849f2d2ab8e108f1e839e553635b763a3950b4f2588e1174685ebe74086943e45bcba0728979ca2c8e44aabe4bd515
|
||||
EBUILD at-spi2-core-2.50.0.ebuild 2053 BLAKE2B 48be7677577ee2be44d476fd885d3ccee00eab57d4fbc76bf42807d4ca9f00ab6a42147f2dd93dae412c0e426ad37420158c5376681e28c32bc4fe3d3a724eaa SHA512 4c2a54c59da534fb8913a254912ad71988f19535137313fe3c624aee47a2661f3baf41a4034a2569fe26ae3a6b33df3b7ae8059ac2063fa9f62a4167d5f6f7c5
|
||||
MISC metadata.xml 468 BLAKE2B f6b51c8c4da2bdff93f41f92cbe94687250f28d9c42c5cdb7de9eef0d1a6e208dd911d443298eb08fc83f8765d0b2c09e30e932d97b3fc1d28861ceae9b1ee6b SHA512 908b6e8c5929143a45cd108fed5b3375dc6f8f98b637a230c0eb0da4a261a8d9655954e1f98dc9967bd79a8c3aece79e1827097a5785494692f7655bcd73f331
|
||||
|
@ -1,75 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit gnome.org meson-multilib systemd virtualx xdg
|
||||
|
||||
DESCRIPTION="D-Bus accessibility specifications and registration daemon"
|
||||
HOMEPAGE="https://wiki.gnome.org/Accessibility https://gitlab.gnome.org/GNOME/at-spi2-core"
|
||||
|
||||
LICENSE="LGPL-2.1+"
|
||||
SLOT="2"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
|
||||
IUSE="X dbus-broker gtk-doc +introspection systemd"
|
||||
REQUIRED_USE="
|
||||
dbus-broker? ( systemd )
|
||||
gtk-doc? ( X )
|
||||
"
|
||||
|
||||
DEPEND="
|
||||
>=sys-apps/dbus-1.5[${MULTILIB_USEDEP}]
|
||||
>=dev-libs/glib-2.67.4:2[${MULTILIB_USEDEP}]
|
||||
>=dev-libs/libxml2-2.9.1:2[${MULTILIB_USEDEP}]
|
||||
introspection? ( >=dev-libs/gobject-introspection-1.54.0:= )
|
||||
systemd? ( sys-apps/systemd[${MULTILIB_USEDEP}] )
|
||||
X? (
|
||||
x11-libs/libX11[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXtst[${MULTILIB_USEDEP}]
|
||||
x11-libs/libXi[${MULTILIB_USEDEP}]
|
||||
)
|
||||
|
||||
!<dev-libs/atk-2.46.0
|
||||
!<app-accessibility/at-spi2-atk-2.46.0
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
dbus-broker? ( sys-apps/dbus-broker )
|
||||
"
|
||||
BDEPEND="
|
||||
dev-util/glib-utils
|
||||
gtk-doc? (
|
||||
dev-python/sphinx
|
||||
dev-util/gdbus-codegen
|
||||
>=dev-util/gi-docgen-2021.1
|
||||
)
|
||||
>=sys-devel/gettext-0.19.8
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
multilib_src_configure() {
|
||||
local emesonargs=(
|
||||
-Ddefault_bus=$(usex dbus-broker dbus-broker dbus-daemon)
|
||||
$(meson_use systemd use_systemd)
|
||||
-Dsystemd_user_dir="$(systemd_get_userunitdir)"
|
||||
$(meson_native_use_bool gtk-doc docs)
|
||||
$(meson_native_use_feature introspection)
|
||||
$(meson_feature X x11)
|
||||
-Ddisable_p2p=false
|
||||
-Datk_only=false
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
virtx dbus-run-session meson test -C "${BUILD_DIR}" || die
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
einstalldocs
|
||||
|
||||
if use gtk-doc; then
|
||||
mkdir -p "${ED}"/usr/share/gtk-doc/{libatspi,atk} || die
|
||||
mv "${ED}"/usr/share/doc/libatspi "${ED}"/usr/share/gtk-doc/libatspi/html || die
|
||||
mv "${ED}"/usr/share/doc/atk "${ED}"/usr/share/gtk-doc/atk/html || die
|
||||
fi
|
||||
}
|
@ -1,7 +1,5 @@
|
||||
DIST orca-44.1.tar.xz 3760772 BLAKE2B 1e2825e9183b86563d85f106f80b7fa84d7d0cc06c818cb72c2a307c9c85a421cbbfc581df7829afde558ddf468bc048382d059ae995661a5163d390585961b4 SHA512 951a60b7efd9b61762404c20b62d476c1ebc3fc2662c0be1feef307fa1761feb5195c89ce725db1585dde4c39d96e1aa74c2b5c934115a3c2669880c3c7ac200
|
||||
DIST orca-45.0.tar.xz 3949908 BLAKE2B 135dff79cda2a1a116256f2c1b68a40d29b17e5507fd3407d61dfc2478339aab1d7627c3aaac5f388a0140008e8a492820f0e56caac7ea83216c50f4f3fa32d8 SHA512 3213d5f0b8e0eacc5daad3df3e521548c5e6dd5ad8584e50d60a7fd054fee86793e956d3db3dcdc223d34d72bcfbfa0b436bc40f6e965528eafa2abf36259c83
|
||||
DIST orca-45.rc.tar.xz 3923500 BLAKE2B e7f919e0badf804612d2c778abab598437dca812507b2d5e5ba6b7fc34897ed8baaa739d3f72a1e56db13badf725675d468a525ab663db6e1eaa08191abd3654 SHA512 897e667b7c9fd98d01eafb79f1fcd02da078fa5d023a22301ba7ea2a84cd18c05684c4c297a1edd22232c5f72d64fa5fb78b35037ea4d8cfd3fdfa350c3500a7
|
||||
EBUILD orca-44.1.ebuild 1451 BLAKE2B 0c926436900096c9c07475c261432a9f48edf20e592f775a25e8bad00f8bfc35733c01b4a58baf72174319cf2129dfb3aa32486141befd97cbd70056726f7904 SHA512 415993a87a11b8d8da8dd0cfe4fdcd5187c2b19533b60d3db077582b5d4f01f63f36b883aa1c1ddc10eee7918f7edf14c3bb99f116518fdd48d66c73e14ecfe6
|
||||
EBUILD orca-45.0.ebuild 1455 BLAKE2B f9b6c14731b1bcd009ae627f0a75c87487eaca5992ed12c17bdbb1ec8b14e669b25bad7401c0a1ecd967c8229c5a4cd87915639c121192a04f6ba253139160ce SHA512 32b5a284d664739d80dcfcc968727bef2e2e4568d00e752fba707003c55dff117f1164f33940d7d560f44ff97933915e05e1301058a1a116a4b9f14635b9c4ed
|
||||
EBUILD orca-45_rc.ebuild 1455 BLAKE2B f9b6c14731b1bcd009ae627f0a75c87487eaca5992ed12c17bdbb1ec8b14e669b25bad7401c0a1ecd967c8229c5a4cd87915639c121192a04f6ba253139160ce SHA512 32b5a284d664739d80dcfcc968727bef2e2e4568d00e752fba707003c55dff117f1164f33940d7d560f44ff97933915e05e1301058a1a116a4b9f14635b9c4ed
|
||||
EBUILD orca-45.0.ebuild 1455 BLAKE2B 47471f74744ccb88266adacfcdf549abfa3fcf0f5c79ec1e5bcfbe4ad72a131f17c403aabdff0f60dafe317e329746741cdfcabeeb1e28c2f02b8ade8fc8a5de SHA512 6f880e0a9f12b056f2d78313f7496e448733feaf34a7348d8feba6915feb1f3d9b1502a4fc5fd97d57a8529a7f7c1c18885843a420126a0087dc5e12327a27f5
|
||||
MISC metadata.xml 762 BLAKE2B fca9ee6ac93d2e860f6791af78380e9d8d29ac10b254299946911a29b5893028e561a18320bc026dd7e9421f3c572e1c3ac63264276a1b292996db93e1cba4a3 SHA512 6bbe0cff5af52cb48adccbb61620fd75a0811cad313867b63cb09b5a7c259230019a54ad607ee46c986188ff11ac2f6878ef20381ef34965dfe918c88ec945d0
|
||||
|
@ -1,59 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
|
||||
inherit gnome2 python-single-r1
|
||||
|
||||
DESCRIPTION="Extensible screen reader that provides access to the desktop"
|
||||
HOMEPAGE="https://wiki.gnome.org/Projects/Orca"
|
||||
|
||||
LICENSE="LGPL-2.1+ CC-BY-SA-3.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
IUSE="+braille"
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
|
||||
|
||||
DEPEND="${PYTHON_DEPS}
|
||||
>=app-accessibility/at-spi2-core-2.48:2[introspection]
|
||||
>=dev-libs/glib-2.28:2
|
||||
media-libs/gstreamer:1.0[introspection]
|
||||
>=x11-libs/gtk+-3.6.2:3[introspection]
|
||||
$(python_gen_cond_dep '
|
||||
dev-python/gst-python:1.0[${PYTHON_USEDEP}]
|
||||
>=dev-python/pygobject-3.18:3[${PYTHON_USEDEP}]
|
||||
')
|
||||
braille? (
|
||||
$(python_gen_cond_dep '
|
||||
>=app-accessibility/brltty-5.0-r3[python,${PYTHON_USEDEP}]
|
||||
dev-libs/liblouis[python,${PYTHON_USEDEP}]
|
||||
')
|
||||
)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
$(python_gen_cond_dep '
|
||||
>=app-accessibility/speech-dispatcher-0.8[python,${PYTHON_USEDEP}]
|
||||
>=dev-python/pyatspi-2.46[${PYTHON_USEDEP}]
|
||||
dev-python/setproctitle[${PYTHON_USEDEP}]
|
||||
')
|
||||
x11-libs/libwnck:3[introspection]
|
||||
x11-libs/pango[introspection]
|
||||
"
|
||||
BDEPEND="
|
||||
dev-util/itstool
|
||||
>=sys-devel/gettext-0.19.8
|
||||
virtual/pkgconfig
|
||||
"
|
||||
# app-text/yelp-tools
|
||||
|
||||
src_configure() {
|
||||
gnome2_src_configure \
|
||||
$(use_with braille liblouis)
|
||||
}
|
||||
|
||||
src_install() {
|
||||
gnome2_src_install
|
||||
python_optimize
|
||||
}
|
Binary file not shown.
@ -0,0 +1,84 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{10..11} )
|
||||
|
||||
inherit bash-completion-r1 distutils-r1 multiprocessing
|
||||
|
||||
MY_P=aws-cli-${PV}
|
||||
DESCRIPTION="Universal Command Line Environment for AWS"
|
||||
HOMEPAGE="
|
||||
https://github.com/aws/aws-cli/
|
||||
https://pypi.org/project/awscli/
|
||||
"
|
||||
SRC_URI="
|
||||
https://github.com/aws/aws-cli/archive/${PV}.tar.gz
|
||||
-> ${MY_P}.gh.tar.gz
|
||||
"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
# botocore is x.(y+2).z
|
||||
BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 2)).$(ver_cut 3-)"
|
||||
RDEPEND="
|
||||
>=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
|
||||
dev-python/colorama[${PYTHON_USEDEP}]
|
||||
dev-python/docutils[${PYTHON_USEDEP}]
|
||||
dev-python/rsa[${PYTHON_USEDEP}]
|
||||
>=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
|
||||
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||
!app-admin/awscli-bin
|
||||
"
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-xdist[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_prepare() {
|
||||
# do not rely on bundled deps in botocore (sic!)
|
||||
find -name '*.py' -exec sed -i \
|
||||
-e 's:from botocore[.]vendored import:import:' \
|
||||
-e 's:from botocore[.]vendored[.]:from :' \
|
||||
{} + || die
|
||||
# strip overzealous upper bounds on requirements
|
||||
sed -i -e 's:,<[0-9.]*::' -e 's:==:>=:' setup.py || die
|
||||
distutils-r1_src_prepare
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=(
|
||||
# broken xdist (signal() works only in main thread)
|
||||
tests/functional/ecs/test_execute_command.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestDotNetLogin::test_login_dotnet_sources_listed_with_backtracking_windows
|
||||
tests/unit/customizations/codeartifact/test_adapter_login.py::TestNuGetLogin::test_login_nuget_sources_listed_with_backtracking
|
||||
tests/unit/customizations/ecs/test_executecommand_startsession.py::TestExecuteCommand::test_execute_command_success
|
||||
tests/unit/test_help.py::TestHelpPager::test_can_handle_ctrl_c
|
||||
tests/unit/test_help.py::TestHelpPager::test_can_render_contents
|
||||
tests/unit/test_utils.py::TestIgnoreCtrlC::test_ctrl_c_is_ignored
|
||||
)
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
# integration tests require AWS credentials and Internet access
|
||||
epytest tests/{functional,unit} -p xdist -n "$(makeopts_jobs)"
|
||||
}
|
||||
|
||||
python_install_all() {
|
||||
newbashcomp bin/aws_bash_completer aws
|
||||
|
||||
insinto /usr/share/zsh/site-functions
|
||||
newins bin/aws_zsh_completer.sh _aws
|
||||
|
||||
distutils-r1_python_install_all
|
||||
|
||||
rm "${ED}"/usr/bin/{aws.cmd,aws_bash_completer,aws_zsh_completer.sh} || die
|
||||
}
|
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
AUX 3.36-packages.match 664 BLAKE2B dfe72c4eb0b44b8ab589fa81c0ceaa31bc3516dee78fabe2eb48f8131b25ed75a11630ae620e70646539ef42a7c4d7d283f71ffa0fa13f64ccf164d672acd95a SHA512 154438583492c571e4c8e1c926c3cb04972255cc4d1b74f186dfbe50c9756f25e11034fe64d893fdd8f2698c8eaaebba76682a818bb6523656c7c412f8e8b614
|
||||
DIST file-roller-43.0.tar.xz 894308 BLAKE2B 85bf73947e153a3b40507e524c35f8be98a08a9ce5916e24ef44559400d7d44e4e0fbd94de8b5638fd1da967ff007894011624ccf9ad8c3481cac63aba3da6e5 SHA512 dff3d9ef5c96e5957fb4ca146072b5fdf0309299d0b1a4ab6db55e24a0652b52ba45915121db4d59d9b1ab60b4c3c64bbb56799a46a0eac5609236f4e1251837
|
||||
EBUILD file-roller-43.0.ebuild 2519 BLAKE2B 235a21fc1771ac0fa2772c565382f51b5fb6b5642a87d35a6fe41df04d989c32b1cf2aeb134e600e52994f814e18c2ae148b9d1bacf659457caf95be0d4a1135 SHA512 f0d0d1cbe19e61814e627f89acf68155165d8f60cf648702d98b9860a09bf68aa900dece08c30a11ea2313bf4e18ecf9ed239b5886b401a735986a4d2876f245
|
||||
EBUILD file-roller-43.0.ebuild 2506 BLAKE2B 97040806670732a3bdc8cd5e78ba66920c9e30e1b95c81215d6898217c600c729a996c312bd42e0b48ae73b63abe1801359f87d96ff514997f2761c2abff35f7 SHA512 7a9663eeb38c80f2eda6faabfb239817c3d3af7d5fec3bef40098b96a5ef16f3cfb019dedd31bbeae24215ed19797e968523d5b4ce66485bcd66975575d55348
|
||||
MISC metadata.xml 544 BLAKE2B 395aff0ef64dd1ae52ecf07df0a723454f648ae54468c611a3d3c10c2930bf25413f892a02dca15dad5930ad24baa45adb2df41e740c4d2dbdce9104f8f89e0d SHA512 3639aa10a6e40e9ea901842e40b9e33857254a00f84aa61403fc663e8ef1f356850d77ffa9ee61c7fb05a1152a9cd1ab0adb972edd3d1020308da06680a64410
|
||||
|
@ -1,3 +1,5 @@
|
||||
DIST tarlz-0.23.tar.lz 112276 BLAKE2B 87153b1e843ed74b5efd339d29e79ddef2bbd11ff951898383ae4c6c099f4e97ef58b8bd2f14ff5bff2cfd6baccb433ab55b9b9b78d0893caef5bd1f4d07a36e SHA512 623407142d03e0ddae3dbb057b8ef5f1aea850418dbb47c6278affa42c88bc1786cd3249d1e8c018643f41516787225cb2ed3aca2fc02ba8e65dfe4744f965d8
|
||||
DIST tarlz-0.24.tar.lz 113503 BLAKE2B 5d9f3a65c29ba5131faacaf0b519494e4ba659182a7dd30c49aa3d0b0a507ce699ba0539684f36a65dd30bc2bf58b59ebedf7906cc210944c98bf3f6cb765608 SHA512 8aa617ce016675b24c3286ca44afef2801f37b8f617f89665aedd20266fdde1bc8a0ad6293a70b788fb36ad1f5c761d3141c26ab7b4615c8625d72f11c680d5c
|
||||
EBUILD tarlz-0.23.ebuild 604 BLAKE2B 2c85673c45730ff37832e0543231ada768b747d9df453538f120f07c6d2ff7e3b3130a2b2691eb0dd64d2f5f1d6d96a5921620a4b2650f80bdb2504aac554166 SHA512 40f93fc0f73b51916d0718913150b09441644313eacab6389fba414badcb82cbe9ab6b4475724d51272f6f0af61f09c684535beacff872eac33300f3cd0ee0fe
|
||||
EBUILD tarlz-0.24.ebuild 605 BLAKE2B 3a131fe385c7f36c8e70139e1ea54c1c3980b6350bc20c13f7cdea855323d2e9b424ab2ff40c9ead5684c898452ed5aeebfa763be6d7d0828f71c76e04155aeb SHA512 0ccea1fcd7927a6fb1b8d005d5c7762c0427631597febd0e3ae130a80a436d3c7db0c5798b1ae33d68d68254d406c00b2bc08639dc67e3587c3c2b5930e869d0
|
||||
MISC metadata.xml 355 BLAKE2B 395fec08847b666d16f1b38e094844c5821076bb58688ce21277c2a798a7ffc1f029cb6e92a6dcd92f71f35715f7a55638c6d34224055df275970b1c06acd6e0 SHA512 8a88a29f6ed88692e554ef13820e1ab95f1da4854d13832cc839b29b3e3278cc479412fc22e021b4de696d92cf726181b8434eb19d479d9be36b621a69040ff6
|
||||
|
@ -0,0 +1,32 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit toolchain-funcs unpacker
|
||||
|
||||
DESCRIPTION="A parallel archiver combining tar and lzip"
|
||||
HOMEPAGE="https://www.nongnu.org/lzip/tarlz.html"
|
||||
SRC_URI="https://download.savannah.gnu.org/releases/lzip/${PN}/${P}.tar.lz"
|
||||
|
||||
LICENSE="GPL-2+"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64"
|
||||
|
||||
RDEPEND="
|
||||
>=app-arch/lzlib-1.12
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
"
|
||||
BDEPEND="
|
||||
$(unpacker_src_uri_depends)
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
CXX="$(tc-getCXX)" \
|
||||
CXXFLAGS="${CXXFLAGS}" \
|
||||
CPPFLAGS="${CPPFLAGS}" \
|
||||
LDFLAGS="${LDFLAGS}"
|
||||
}
|
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
DIST brasero-3.12.3.tar.xz 3156012 BLAKE2B e657f29719164b786e29a4974102cf6b0eb3316bec84a08838bd62b952c43994e0187f6cfeaa5080fa794b1ff1684553a3d643cd309b2957a8d4191c7ea8cfbf SHA512 0e3c97b2a754f7178207db390e33b832fcaed3856ae5dee447e5c26d712728302dbebbf839a4fb7565f63b3ebb1e4936e20739482a8114e6fe2700805659270a
|
||||
EBUILD brasero-3.12.3.ebuild 1818 BLAKE2B 1cd85c960761a6f158317092844768e7c83ce9d7ad9dcb07b656c698c9b17821164ae3c351723c2c3a7ad1642827195ce20813244d83112a47e3acc92b9e1fdf SHA512 a7b98630ba4cbe5a496796a1c8214e90e2dd9f94fd61a05cf6b82d2c2c6f3b2d4029da2dcabd744db907ebe9a38702ebddf116c6ca1edf3c0b1ec93a88801888
|
||||
EBUILD brasero-3.12.3.ebuild 1805 BLAKE2B ffc801195d5b105dad4ee8dde8268ab8bb320ba88b2f127e01f0057d5bec72db2e20973d24f33cc549688d1b62892c37698a0d0f5710f43085c24262f4ad5448 SHA512 66be6952d26593794059da870c74572b2334cd5e6fbf2c1af6613c6223dd7d222f80b50c0d85d9168d8e27f77be469e6320781e21acdc6687441c1541bcb45f4
|
||||
MISC metadata.xml 737 BLAKE2B 6660d69e0f3e33cd34c7ca424ad04e94e8b806c00d786d7d8aff8c543bc2ba3b89423175635957d83b8ec8eea948f5f6811b2103ba8301a489d3af99bc847125 SHA512 02493f9f119572a902e2e54976799881d570a78e942c86429d0c49a06b5efe7b314ce403773a08ece15c56b14d5cc8ed5b700e030835d4cdcd7d16f87bce805b
|
||||
|
Binary file not shown.
@ -0,0 +1,9 @@
|
||||
AUX default.yaml 978 BLAKE2B ab316e77c296f0ea9e51788bd62cf3abbbc0fb5b3f630acfd8d138f61802477f3d1bc75bd538200bebadd11637baf88e5ecc602db459bfa335d77704bae437e2 SHA512 84c9e1dab4d071d74a6dc8e1f02dae948e81a7e7af1810860a320c8857cf69e354e3d8c87ead2e4c15f80a1ca144116c08b0715bdd97ffc5ae2bfea3883d73e5
|
||||
AUX fix-warnings.patch 419 BLAKE2B 55f23a30af6225b6e56dc7ba97d1af8052a6fa06ee7e29816ff00d7a7847136ec916eca07ddaa86f0529beef41e30f433f341497f8dd914a736ccfc0e29a2841 SHA512 b247af0b4540f80662f8ba53f531bf1ee5ee0f944862c0baf2806df5dad0ef0d44af5cb1d3ce28de956194a9d4a2b92c897e8a432dbeb4b5f52486e7e291a9de
|
||||
AUX mounts.conf 87 BLAKE2B 5760f93194f6966388837d02d2505d9c7a9bf27e35bc5b5adb242288876e3afc1a9ad7da512da8a48835784a22d82c0b9e1fb112a7f29a4db8d6332a716658bf SHA512 4c52c52251558e59aefa0ccd8d733a6a67326f205219ae0dba5893be0f93090133fff954e05f31fcfaff2eb2aa48e032bb94d8ec4ac395ea3c071883dde3edcb
|
||||
AUX policy.json 256 BLAKE2B 78693988b98b88c35807db755bea923203ab289435d2c4ffd914ec52904dadded467ff131d90b337bf7534d533e478420a0c81599858a9012668bc4d1815144f SHA512 120f43f579f48758af6b8292fc2cfbcb5ecc46564d2d16afb74dbd1c043de44daec6633ff585b0046c55fd48aed6dbc2901623c753ec13670d3fdcecb19a42c5
|
||||
AUX seccomp.json 16401 BLAKE2B 4123dd5d166de192c8cbc89caac8a2cc82cd58054109b4650e7203003474b3e389ef08ca5798d606004adc80f9e1a3035b13978b0beec9f1193627b2867b206a SHA512 742ca8f5b4720b05246113fb6aa29311c32f58502dd8ad99fa66d9c9ce83f46e338ed08c2a90bd15f05903953edffeab92a6d509aa88b57b15dec5e052ea8c07
|
||||
DIST containers-common-0.56.0.tar.gz 12616120 BLAKE2B 6495ca7d0c9134bc8bd5f7b7541bb4f1160c74abb7a64bd4d2124104ea563f5381f0092da20ab45d81929a8632b1fcc1107ac05fdae011be446cff14ebf88c45 SHA512 4af720be95e6b5ca7d0664f99a389bf092b9f45d4e0602d9b49ef1d21b359d2307a94e0c88378fe0c751f5b40db54d7aab67eb497185a289cea9288cbfaa042c
|
||||
EBUILD containers-common-0.56.0.ebuild 1834 BLAKE2B 4cfdd7393af5371b4c3b4fc5a8e7646b6ff2b9d87105099403dd09307cb337fef29683b1d8465a08c2ff3021724c4bc46a0747772efab1738ef18f11d0fecb1d SHA512 1870d60fc62d0f32dc556124eef3054f61b195289316348108d4c7a527d0a39ac777dc9d3c7ba799da7adc0fa6104a8fa674bd72d23fe319fcc8db7cbfff7d48
|
||||
EBUILD containers-common-9999.ebuild 1834 BLAKE2B 4cfdd7393af5371b4c3b4fc5a8e7646b6ff2b9d87105099403dd09307cb337fef29683b1d8465a08c2ff3021724c4bc46a0747772efab1738ef18f11d0fecb1d SHA512 1870d60fc62d0f32dc556124eef3054f61b195289316348108d4c7a527d0a39ac777dc9d3c7ba799da7adc0fa6104a8fa674bd72d23fe319fcc8db7cbfff7d48
|
||||
MISC metadata.xml 635 BLAKE2B ccb2fc61af04b1fc78a5fa4b75a17ac26f1fe0b76eedc022a752b9672dbd4ec72bf26a811b65b391811b973e387a8fdc2b79fdb54ab468a8bd59b8db7a6c5f9e SHA512 f99685c268495ab84c1b72c5c9ca21c562a4adaecab52c3c1b2eff45ed31c2a150a2db8428b70393814d663c5042bea2454d3c447b0f52d6db4fcf81d6423c0f
|
@ -0,0 +1,76 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Common config files and docs for Containers eco-system"
|
||||
HOMEPAGE="https://github.com/containers/common"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/common.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/common/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="
|
||||
app-containers/containers-image
|
||||
app-containers/containers-storage
|
||||
app-containers/containers-shortnames
|
||||
net-firewall/nftables
|
||||
net-firewall/iptables[nftables]
|
||||
|| ( app-containers/crun app-containers/runc )
|
||||
|| (
|
||||
( >=app-containers/netavark-1.6.0 >=app-containers/aardvark-dns-1.6.0 )
|
||||
>=app-containers/cni-plugins-0.9.1
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
>=dev-go/go-md2man-2.0.2
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
[[ -f docs/Makefile ]] || die
|
||||
sed -i -e 's|/usr/local|/usr|g;' docs/Makefile || die
|
||||
|
||||
eapply "${FILESDIR}/fix-warnings.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake docs
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
insinto /etc/containers
|
||||
# https://github.com/containers/skopeo/raw/main/default-policy.json
|
||||
doins pkg/config/containers.conf "${FILESDIR}/policy.json"
|
||||
|
||||
insinto /etc/containers/registries.d
|
||||
# https://github.com/containers/skopeo/raw/main/default.yaml
|
||||
doins "${FILESDIR}/default.yaml"
|
||||
|
||||
insinto /usr/share/containers
|
||||
# https://github.com/containers/common/raw/main/pkg/seccomp/seccomp.json
|
||||
# https://github.com/containers/common/raw/main/pkg/subscriptions/mounts.conf
|
||||
doins "${FILESDIR}/seccomp.json" "${FILESDIR}/mounts.conf"
|
||||
|
||||
keepdir /etc/containers/certs.d /etc/containers/oci/hooks.d /etc/containers/systemd /var/lib/containers/sigstore
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Common config files and docs for Containers eco-system"
|
||||
HOMEPAGE="https://github.com/containers/common"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/common.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/common/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
RDEPEND="
|
||||
app-containers/containers-image
|
||||
app-containers/containers-storage
|
||||
app-containers/containers-shortnames
|
||||
net-firewall/nftables
|
||||
net-firewall/iptables[nftables]
|
||||
|| ( app-containers/crun app-containers/runc )
|
||||
|| (
|
||||
( >=app-containers/netavark-1.6.0 >=app-containers/aardvark-dns-1.6.0 )
|
||||
>=app-containers/cni-plugins-0.9.1
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
>=dev-go/go-md2man-2.0.2
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
[[ -f docs/Makefile ]] || die
|
||||
sed -i -e 's|/usr/local|/usr|g;' docs/Makefile || die
|
||||
|
||||
eapply "${FILESDIR}/fix-warnings.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake docs
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
insinto /etc/containers
|
||||
# https://github.com/containers/skopeo/raw/main/default-policy.json
|
||||
doins pkg/config/containers.conf "${FILESDIR}/policy.json"
|
||||
|
||||
insinto /etc/containers/registries.d
|
||||
# https://github.com/containers/skopeo/raw/main/default.yaml
|
||||
doins "${FILESDIR}/default.yaml"
|
||||
|
||||
insinto /usr/share/containers
|
||||
# https://github.com/containers/common/raw/main/pkg/seccomp/seccomp.json
|
||||
# https://github.com/containers/common/raw/main/pkg/subscriptions/mounts.conf
|
||||
doins "${FILESDIR}/seccomp.json" "${FILESDIR}/mounts.conf"
|
||||
|
||||
keepdir /etc/containers/certs.d /etc/containers/oci/hooks.d /etc/containers/systemd /var/lib/containers/sigstore
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
# This is a default registries.d configuration file. You may
|
||||
# add to this file or create additional files in registries.d/.
|
||||
#
|
||||
# lookaside: for reading/writing simple signing signatures
|
||||
# lookaside-staging: for writing simple signing signatures, preferred over lookaside
|
||||
#
|
||||
# lookaside and lookaside-staging take a value of the following:
|
||||
# lookaside: {schema}://location
|
||||
#
|
||||
# For reading signatures, schema may be http, https, or file.
|
||||
# For writing signatures, schema may only be file.
|
||||
|
||||
# The default locations are built-in, for both reading and writing:
|
||||
# /var/lib/containers/sigstore for root, or
|
||||
# ~/.local/share/containers/sigstore for non-root users.
|
||||
default-docker:
|
||||
# lookaside: https://…
|
||||
# lookaside-staging: file:///…
|
||||
|
||||
# The 'docker' indicator here is the start of the configuration
|
||||
# for docker registries.
|
||||
#
|
||||
# docker:
|
||||
#
|
||||
# privateregistry.com:
|
||||
# lookaside: https://privateregistry.com/sigstore/
|
||||
# lookaside-staging: /mnt/nfs/privateregistry/sigstore
|
||||
|
@ -0,0 +1,24 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -4,20 +4,5 @@
|
||||
DESTDIR ?=
|
||||
-PREFIX := /usr/local
|
||||
+PREFIX := /usr
|
||||
CONFIGDIR := ${PREFIX}/share/containers
|
||||
|
||||
-define go-build
|
||||
- CGO_ENABLED=0 \
|
||||
- GOOS=$(1) GOARCH=$(2) $(GO) build -tags "$(3)" ./...
|
||||
-endef
|
||||
-
|
||||
-ifeq ($(shell uname -s),Linux)
|
||||
-define go-build-c
|
||||
- CGO_ENABLED=1 \
|
||||
- GOOS=$(1) GOARCH=$(2) $(GO) build -tags "$(3)" ./...
|
||||
-endef
|
||||
-else
|
||||
-define go-build-c
|
||||
-endef
|
||||
-endif
|
||||
-
|
||||
.PHONY:
|
@ -0,0 +1,3 @@
|
||||
# Refer to containers-mounts.conf(5)
|
||||
# Example:
|
||||
# /usr/share/rhel/secrets:/run/secrets
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"default": [
|
||||
{
|
||||
"type": "insecureAcceptAnything"
|
||||
}
|
||||
],
|
||||
"transports":
|
||||
{
|
||||
"docker-daemon":
|
||||
{
|
||||
"": [{"type":"insecureAcceptAnything"}]
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project" proxied="proxy">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>rahil3108@gmail.com</email>
|
||||
<name>Rahil Bhimjiani</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">containers/common</remote-id>
|
||||
<bugs-to>https://github.com/containers/common/issues</bugs-to>
|
||||
<doc>https://github.com/containers/common/blob/main/README.md</doc>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -0,0 +1,5 @@
|
||||
AUX fix-warnings.patch 397 BLAKE2B a5922e061c825e25398fc3fccdf683abf8331b065337ff240227478d7d3ef5398957d56a430c0b04aa823033b56653e87c8186065e5898818e75310451b347e0 SHA512 a96ab3fea76be4751d6dc3893b4272b063c854503e1a65b4501819a5925f3911c285fbfb4ee6827795a41c696015cc06f446e4ddb1318e21cf0141e15804833e
|
||||
DIST containers-image-5.28.0.tar.gz 688100 BLAKE2B 0cee8be579bd11eb0524590d8afe16b6ef863d7adfd74db51b68385142804c8096fec3f2a492e0d5a5021eba9edc91219b327138635aaa329c6ef7d0c01129c8 SHA512 0b76539e04016f5f1067c576a877ace475f25d0f0840fc969606601105a8a7f0e242cc054b0a2cfb6f1b751d850734360a524c78563fdf2330c8ae8c11bba1cf
|
||||
EBUILD containers-image-5.28.0.ebuild 794 BLAKE2B 68a7bbe15e21f49a15ba685c6e30374dc3ed15309ef600537d54d28d63046b2289ce76cb44f170ae52303e7b2553a88265468630a7a697aa32d8d3945c2a5fa7 SHA512 7552a9e886c485aba8451c25695a79be561fbed5dcf0e171424b2d2dfc605d0b93853d7161d481e2f8877066c60b07c084fc3ef4f25f9cac64657ef2f5471b52
|
||||
EBUILD containers-image-9999.ebuild 794 BLAKE2B 68a7bbe15e21f49a15ba685c6e30374dc3ed15309ef600537d54d28d63046b2289ce76cb44f170ae52303e7b2553a88265468630a7a697aa32d8d3945c2a5fa7 SHA512 7552a9e886c485aba8451c25695a79be561fbed5dcf0e171424b2d2dfc605d0b93853d7161d481e2f8877066c60b07c084fc3ef4f25f9cac64657ef2f5471b52
|
||||
MISC metadata.xml 632 BLAKE2B c48672fb67a353cb54f27fb541d91899a27b913ac6036000d65f8ee0356aad9ea9a7e796aa239b3b6fa2b3e08cd9890a142e20ef46e6f5bc5577c6d82cdd6f1e SHA512 a989fa8d4076d55b36e2727250f0c622dd821791cd55b650c585e15689d21da8e1158c869348b6c7e772db8729b84c2e93ab10918b9e9b8a646b639c2959852c
|
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Default config and docs related to Containers' images"
|
||||
HOMEPAGE="https://github.com/containers/image"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/image.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/image/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
DEPEND=">=dev-go/go-md2man-2.0.2"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eapply "${FILESDIR}/fix-warnings.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake docs
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
insinto /etc/containers
|
||||
doins registries.conf
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Default config and docs related to Containers' images"
|
||||
HOMEPAGE="https://github.com/containers/image"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/image.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/image/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
DEPEND=">=dev-go/go-md2man-2.0.2"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eapply "${FILESDIR}/fix-warnings.patch"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake docs
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install
|
||||
|
||||
insinto /etc/containers
|
||||
doins registries.conf
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,7 +5,2 @@
|
||||
|
||||
-GOBIN := $(shell go env GOBIN)
|
||||
-ifeq ($(GOBIN),)
|
||||
-GOBIN := $(shell go env GOPATH)/bin
|
||||
-endif
|
||||
-
|
||||
# when cross compiling _for_ a Darwin or windows host, then we must use openpgp
|
||||
@@ -17,3 +12,2 @@
|
||||
|
||||
-PACKAGES := $(shell GO111MODULE=on go list $(BUILDFLAGS) ./...)
|
||||
SOURCE_DIRS = $(shell echo $(PACKAGES) | awk 'BEGIN{FS="/"; RS=" "}{print $$4}' | uniq)
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project" proxied="proxy">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>rahil3108@gmail.com</email>
|
||||
<name>Rahil Bhimjiani</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">containers/image</remote-id>
|
||||
<bugs-to>https://github.com/containers/image/issues</bugs-to>
|
||||
<doc>https://github.com/containers/image/blob/main/README.md</doc>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -0,0 +1,4 @@
|
||||
DIST containers-shortnames-2023.02.20.tar.gz 13527 BLAKE2B 165a4c51bd284078990c94059145bb6b4bd5de4d8595eb2ccd2acc6fe8561e7edc300b7edadc684675ee281d7ada1c3a6d5aa0117c640ec22c2d2ef7e46486b5 SHA512 856dbbeb2acda276e9605bd1ecec0f8d65952c597ee2af61dd8909d7d3c04e5ef06c40b69ec4a98f79e623c536850f614c1b0af3a19637e300e7d3a285933193
|
||||
EBUILD containers-shortnames-2023.02.20.ebuild 710 BLAKE2B 06c0997714cf105a2e1bd76cd27a88eaaaa95027d6a64282adb3de09a5555263bc2bf7dc5055556bd276e549429b2e8bfef93d293757a8d592429b0415464079 SHA512 2eb4c972c63ed6de36276e0543bc7ab54b3ff12200089aa9260b2b3ab6f40cc07c20009a961411c6ba74679b179028a8db74485a3f49b7a1a56b16b6e63f4635
|
||||
EBUILD containers-shortnames-9999.ebuild 710 BLAKE2B 06c0997714cf105a2e1bd76cd27a88eaaaa95027d6a64282adb3de09a5555263bc2bf7dc5055556bd276e549429b2e8bfef93d293757a8d592429b0415464079 SHA512 2eb4c972c63ed6de36276e0543bc7ab54b3ff12200089aa9260b2b3ab6f40cc07c20009a961411c6ba74679b179028a8db74485a3f49b7a1a56b16b6e63f4635
|
||||
MISC metadata.xml 647 BLAKE2B 33eeb1747f7a6e3740b2ebc5d005623079f532aada2db0452b5844e3cd7e0696131829005e57faa6f7cf806503554c05d06762459a6e3596f924968ad6d3e200 SHA512 b740386a29dc1777d9952ac5b66c140341a9dc3e1d8f5621ae4dbcbda37723a62f55d2ddb44843010859d9975bc109b3a35eb993e6904f3d57c5b3cda462ca19
|
@ -0,0 +1,36 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Configures default shortnames (aliases) for Containers"
|
||||
HOMEPAGE="https://github.com/containers/shortnames"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/shortnames.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/shortnames/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
return
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /etc/containers/registries.conf.d
|
||||
newins shortnames.conf 000-shortnames.conf
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Configures default shortnames (aliases) for Containers"
|
||||
HOMEPAGE="https://github.com/containers/shortnames"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/shortnames.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/shortnames/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
return
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
insinto /etc/containers/registries.conf.d
|
||||
newins shortnames.conf 000-shortnames.conf
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project" proxied="proxy">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>rahil3108@gmail.com</email>
|
||||
<name>Rahil Bhimjiani</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">containers/shortnames</remote-id>
|
||||
<bugs-to>https://github.com/containers/shortnames/issues</bugs-to>
|
||||
<doc>https://github.com/containers/shortnames/blob/main/README.md</doc>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -1,5 +1,5 @@
|
||||
DIST containers-storage-1.41.0.tar.gz 3685908 BLAKE2B 5835fa222127d8e2398a33ec02b24ee0b5a94943ed30a19d8b5f76ce4b852f1e7ad9eceb052dcbb2a2c3db96d3ec4ca0150ab81cd0e0a0e351b353f47c0862b5 SHA512 e2d4d887f067d4bdab97426d9cfe7f941b8148d3c40ddb60d5cbc08f1b3a8c5e6a182586f9cdb96873377b8467368527ff89220ba8a5cd7ad4682a90a1243f56
|
||||
DIST containers-storage-1.42.0.tar.gz 3767236 BLAKE2B 3cca3833695bb5e15a0ab5d97d5f72e14102d8c6eee1c132932e4177f64ab9a171cf8486f4fe8d9e09a0537a325c988c6b766249c3c0843bb5f1b270a705b523 SHA512 c8a4fdfbc71915dd3a1d5c1fabef4be7641b8a0edb14805719d93bc9de5bd8fe150636c4457fa544487a6bccbb0f58ad36ca3990d6ca3c2b73935418aaf98f22
|
||||
EBUILD containers-storage-1.41.0.ebuild 1460 BLAKE2B 1e82d14bc4a40bfeec0c09d26d5e987cdf208a66e9359186512b067d454154337c301573f852fbeafaa572641acb6109e5f069273e4689efbaf0262be216e736 SHA512 3debf8e12d4ef6349aa00ad4594494999cacaba6f784db5c7ea79da9c81f7ca783a9bd8bc62e5fc81bc4629cd6ff49c8ca304e8df3741cd93cf6660246828801
|
||||
EBUILD containers-storage-1.42.0.ebuild 1460 BLAKE2B 1e82d14bc4a40bfeec0c09d26d5e987cdf208a66e9359186512b067d454154337c301573f852fbeafaa572641acb6109e5f069273e4689efbaf0262be216e736 SHA512 3debf8e12d4ef6349aa00ad4594494999cacaba6f784db5c7ea79da9c81f7ca783a9bd8bc62e5fc81bc4629cd6ff49c8ca304e8df3741cd93cf6660246828801
|
||||
MISC metadata.xml 604 BLAKE2B b132c7cf2a280a6c5fee5b37eb644c5644890b845a92165551a5466caf2fbfa07f7b63b1a387fee62467a7df4218e1e4c563fe70fc40209a4f2eae5b9c714b57 SHA512 21725a1c25a5912b26a56f1970b968ca686f55a27888e4a2948ea6d7a6b8f3d70f528e875d8d2271963ebebb6fee11c51f218045296dac21a1b86ba9b5481b28
|
||||
AUX system-md2man-path.patch 169 BLAKE2B 707d7396af9c6a04a3a4860198acb927d6fbc68d8a1375340220778528f472f9026fff63c24cfa11ba48f6157faff3f993c0d9bac3e125de6152045ec3c9876b SHA512 6430e890fa731b4a8646bd001557bc17180c312d1efdccfd3aa611f7402eb8e8cc0ef551b5cfc9b0db60a0e69a6dd90b5c75c46139fa3d9424ae6f9700c91f64
|
||||
DIST containers-storage-1.50.2.tar.gz 4278269 BLAKE2B 3a2b08c710c043cfc130b9ffe39807e5ced8aa3cdb9805e9d9a4d0f60d8136f99e78ca03992c566b7c7d9aa1c25a2ab9da5e9edc4f1f841663302f5873dce419 SHA512 eb2ca9d243511abd5d6d1727c60166422dbfef4a3ddbb5062e58d915d0705afcd10ded8f1f79e897f9f5244fb6b6d349fbf3ed86ae57f41e31a1965c4e926941
|
||||
EBUILD containers-storage-1.50.2.ebuild 841 BLAKE2B 767bbfc7a815dd17883d59bdc4e5a530a9140c2d30dbebb818da82946db373bd95c21ecb644ea2f58c14a40ddbb334aeede16c10fe87407a9b04c8aad89308ea SHA512 cae56fcb1a491193b10bd195b46f97043af30a340aac3a6abf82ed67380e5c0d6c8893c550c13f2feba6d6c5273dbbf305afb4b8808da958b86c0ce03ddbb7ef
|
||||
EBUILD containers-storage-9999.ebuild 841 BLAKE2B 767bbfc7a815dd17883d59bdc4e5a530a9140c2d30dbebb818da82946db373bd95c21ecb644ea2f58c14a40ddbb334aeede16c10fe87407a9b04c8aad89308ea SHA512 cae56fcb1a491193b10bd195b46f97043af30a340aac3a6abf82ed67380e5c0d6c8893c550c13f2feba6d6c5273dbbf305afb4b8808da958b86c0ce03ddbb7ef
|
||||
MISC metadata.xml 749 BLAKE2B ce52512722537fc1032a3ec28540328008665966819cf9faaa53144362bcc39a070452f688a429446fb9eaf5b55c185a4c16ccd3d3334ed632d87143acb25411 SHA512 05d49c0424b1d04dcc7a648968e41a1ef7f1c136e44d99d813708951231fb79069899304498cbd715f25785b63c6a38b66320bc670a72775a96a14079cd31864
|
||||
|
@ -1,58 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit go-module
|
||||
|
||||
KEYWORDS="~amd64"
|
||||
DESCRIPTION="containers/storage library"
|
||||
HOMEPAGE="https://github.com/containers/storage"
|
||||
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
|
||||
SLOT="0"
|
||||
IUSE="btrfs +device-mapper test"
|
||||
SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
RDEPEND="
|
||||
btrfs? ( sys-fs/btrfs-progs )
|
||||
device-mapper? ( sys-fs/lvm2:= )"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-go/go-md2man
|
||||
test? (
|
||||
sys-fs/btrfs-progs
|
||||
sys-fs/lvm2
|
||||
sys-apps/util-linux
|
||||
)"
|
||||
RESTRICT="test"
|
||||
|
||||
S=${WORKDIR}/${P#containers-}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -e 's|: install\.tools|:|' -i Makefile || die
|
||||
|
||||
[[ -f hack/btrfs_tag.sh ]] || die
|
||||
use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
|
||||
"hack/btrfs_tag.sh" || die; }
|
||||
|
||||
[[ -f hack/libdm_tag.sh ]] || die
|
||||
use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
|
||||
"hack/libdm_tag.sh" || die; }
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export -n GOCACHE GOPATH XDG_CACHE_HOME #678856
|
||||
emake GOMD2MAN=go-md2man FFJSON= containers-storage docs
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin "${PN}"
|
||||
while read -r -d ''; do
|
||||
mv "${REPLY}" "${REPLY%.1}" || die
|
||||
done < <(find "${S}/docs" -name '*.[[:digit:]].1' -print0)
|
||||
find "${S}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
env -u GOFLAGS unshare -m emake local-test-unit || die
|
||||
}
|
@ -1,58 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
inherit go-module
|
||||
|
||||
KEYWORDS="~amd64"
|
||||
DESCRIPTION="containers/storage library"
|
||||
HOMEPAGE="https://github.com/containers/storage"
|
||||
LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
|
||||
SLOT="0"
|
||||
IUSE="btrfs +device-mapper test"
|
||||
SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
RDEPEND="
|
||||
btrfs? ( sys-fs/btrfs-progs )
|
||||
device-mapper? ( sys-fs/lvm2:= )"
|
||||
DEPEND="${RDEPEND}
|
||||
dev-go/go-md2man
|
||||
test? (
|
||||
sys-fs/btrfs-progs
|
||||
sys-fs/lvm2
|
||||
sys-apps/util-linux
|
||||
)"
|
||||
RESTRICT="test"
|
||||
|
||||
S=${WORKDIR}/${P#containers-}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
sed -e 's|: install\.tools|:|' -i Makefile || die
|
||||
|
||||
[[ -f hack/btrfs_tag.sh ]] || die
|
||||
use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
|
||||
"hack/btrfs_tag.sh" || die; }
|
||||
|
||||
[[ -f hack/libdm_tag.sh ]] || die
|
||||
use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
|
||||
"hack/libdm_tag.sh" || die; }
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
export -n GOCACHE GOPATH XDG_CACHE_HOME #678856
|
||||
emake GOMD2MAN=go-md2man FFJSON= containers-storage docs
|
||||
}
|
||||
|
||||
src_install() {
|
||||
dobin "${PN}"
|
||||
while read -r -d ''; do
|
||||
mv "${REPLY}" "${REPLY%.1}" || die
|
||||
done < <(find "${S}/docs" -name '*.[[:digit:]].1' -print0)
|
||||
find "${S}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
|
||||
}
|
||||
|
||||
src_test() {
|
||||
env -u GOFLAGS unshare -m emake local-test-unit || die
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Default config and docs related to Containers' storage"
|
||||
HOMEPAGE="https://github.com/containers/storage"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/storage.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
DEPEND=">=dev-go/go-md2man-2.0.2"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eapply "${FILESDIR}"/system-md2man-path.patch
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake -C docs containers-storage.conf.5
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" -C docs install
|
||||
|
||||
insinto /etc/containers
|
||||
doins storage.conf
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
DESCRIPTION="Default config and docs related to Containers' storage"
|
||||
HOMEPAGE="https://github.com/containers/storage"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/containers/storage.git"
|
||||
else
|
||||
SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${P#containers-}"
|
||||
KEYWORDS="~amd64"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0"
|
||||
SLOT="0"
|
||||
|
||||
DEPEND=">=dev-go/go-md2man-2.0.2"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
eapply "${FILESDIR}"/system-md2man-path.patch
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
return
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
emake -C docs containers-storage.conf.5
|
||||
}
|
||||
|
||||
src_test() {
|
||||
return
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" -C docs install
|
||||
|
||||
insinto /etc/containers
|
||||
doins storage.conf
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
--- a/docs/Makefile
|
||||
+++ b/docs/Makefile
|
||||
@@ -1,2 +1,3 @@
|
||||
-GOMD2MAN = ../tests/tools/build/go-md2man
|
||||
+GOMD2MAN = $(shell command -v go-md2man)
|
||||
+
|
||||
PREFIX ?= ${DESTDIR}/usr
|
@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="person">
|
||||
<email>zmedico@gentoo.org</email>
|
||||
<name>Zac Medico</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="btrfs">
|
||||
Enables dependencies for the "btrfs" graph driver, including
|
||||
necessary kernel flags.
|
||||
</flag>
|
||||
<flag name="device-mapper">
|
||||
Enables dependencies for the "devicemapper" graph driver, including
|
||||
necessary kernel flags.
|
||||
</flag>
|
||||
</use>
|
||||
<upstream>
|
||||
<remote-id type="github">containers/storage</remote-id>
|
||||
</upstream>
|
||||
<maintainer type="person">
|
||||
<email>zmedico@gentoo.org</email>
|
||||
<name>Zac Medico</name>
|
||||
</maintainer>
|
||||
<maintainer type="project" proxied="proxy">
|
||||
<email>proxy-maint@gentoo.org</email>
|
||||
<name>Proxy Maintainers</name>
|
||||
</maintainer>
|
||||
<maintainer type="person" proxied="yes">
|
||||
<email>rahil3108@gmail.com</email>
|
||||
<name>Rahil Bhimjiani</name>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">containers/storage</remote-id>
|
||||
<bugs-to>https://github.com/containers/storage/issues</bugs-to>
|
||||
<doc>https://github.com/containers/storage/blob/main/README.md</doc>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
|
@ -0,0 +1,21 @@
|
||||
https://github.com/canonical/lxd/commit/2d8481712055d0cbb3bd952e25a1df469939990d.patch
|
||||
From: Thomas Parrott <thomas.parrott@canonical.com>
|
||||
Date: Thu, 21 Sep 2023 22:12:19 +0100
|
||||
Subject: [PATCH] shared/simplestreams/products: Fix regression in
|
||||
lxd_combined.tar.gz handling
|
||||
|
||||
For reasons that are likely lost to history simplestreams uses lxd.tar.xz
|
||||
whereas the combined file is lxd_combined.tar.gz (not xz).
|
||||
|
||||
Signed-off-by: Thomas Parrott <thomas.parrott@canonical.com>
|
||||
--- a/shared/simplestreams/products.go
|
||||
+++ b/shared/simplestreams/products.go
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"github.com/canonical/lxd/shared/osarch"
|
||||
)
|
||||
|
||||
-var lxdCompatCombinedItems = []string{"lxd_combined.tar.xz", "incus_combined.tar.xz"}
|
||||
+var lxdCompatCombinedItems = []string{"lxd_combined.tar.gz", "incus_combined.tar.gz"}
|
||||
var lxdCompatItems = []string{"lxd.tar.xz", "incus.tar.xz"}
|
||||
|
||||
// Products represents the base of download.json.
|
@ -0,0 +1,187 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit bash-completion-r1 go-module linux-info optfeature systemd verify-sig
|
||||
|
||||
DESCRIPTION="Modern, secure and powerful system container and virtual machine manager"
|
||||
HOMEPAGE="https://ubuntu.com/lxd https://github.com/canonical/lxd"
|
||||
SRC_URI="https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz
|
||||
verify-sig? ( https://github.com/canonical/lxd/releases/download/${P}/${P}.tar.gz.asc
|
||||
)"
|
||||
|
||||
LICENSE="Apache-2.0 BSD LGPL-3 MIT"
|
||||
SLOT="0/stable"
|
||||
KEYWORDS="~amd64 ~arm64 ~x86"
|
||||
IUSE="apparmor nls"
|
||||
|
||||
DEPEND="acct-group/lxd
|
||||
app-arch/xz-utils
|
||||
>=app-containers/lxc-5.0.0:=[apparmor?,seccomp(+)]
|
||||
dev-db/sqlite:3
|
||||
>=dev-libs/dqlite-1.13.0:=
|
||||
dev-libs/lzo
|
||||
>=dev-libs/raft-0.17.1:=[lz4]
|
||||
>=dev-util/xdelta-3.0[lzma(+)]
|
||||
net-dns/dnsmasq[dhcp]
|
||||
sys-libs/libcap
|
||||
virtual/udev"
|
||||
RDEPEND="${DEPEND}
|
||||
net-firewall/ebtables
|
||||
net-firewall/iptables
|
||||
sys-apps/iproute2
|
||||
sys-fs/fuse:3
|
||||
>=sys-fs/lxcfs-5.0.0
|
||||
sys-fs/squashfs-tools[lzma]
|
||||
virtual/acl"
|
||||
BDEPEND="dev-lang/go
|
||||
nls? ( sys-devel/gettext )
|
||||
verify-sig? ( sec-keys/openpgp-keys-canonical )"
|
||||
|
||||
CONFIG_CHECK="
|
||||
~CGROUPS
|
||||
~IPC_NS
|
||||
~NET_NS
|
||||
~PID_NS
|
||||
|
||||
~SECCOMP
|
||||
~USER_NS
|
||||
~UTS_NS
|
||||
|
||||
~KVM
|
||||
~MACVTAP
|
||||
~VHOST_VSOCK
|
||||
"
|
||||
|
||||
ERROR_IPC_NS="CONFIG_IPC_NS is required."
|
||||
ERROR_NET_NS="CONFIG_NET_NS is required."
|
||||
ERROR_PID_NS="CONFIG_PID_NS is required."
|
||||
ERROR_SECCOMP="CONFIG_SECCOMP is required."
|
||||
ERROR_UTS_NS="CONFIG_UTS_NS is required."
|
||||
|
||||
WARNING_KVM="CONFIG_KVM and CONFIG_KVM_AMD/-INTEL is required for virtual machines."
|
||||
WARNING_MACVTAP="CONFIG_MACVTAP is required for virtual machines."
|
||||
WARNING_VHOST_VSOCK="CONFIG_VHOST_VSOCK is required for virtual machines."
|
||||
|
||||
# Go magic.
|
||||
QA_PREBUILT="/usr/bin/fuidshift
|
||||
/usr/bin/lxc
|
||||
/usr/bin/lxc-to-lxd
|
||||
/usr/bin/lxd-agent
|
||||
/usr/bin/lxd-benchmark
|
||||
/usr/bin/lxd-migrate
|
||||
/usr/sbin/lxd"
|
||||
|
||||
VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/canonical.asc
|
||||
|
||||
# The testsuite must be run as root.
|
||||
# make: *** [Makefile:156: check] Error 1
|
||||
RESTRICT="test"
|
||||
|
||||
GOPATH="${S}/_dist"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${P}-handle-regression-in-lxd_combined.tar.gz-handling.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
export GOPATH="${S}/_dist"
|
||||
|
||||
default
|
||||
|
||||
sed -i \
|
||||
-e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \
|
||||
-e "s:make:make ${MAKEOPTS}:g" \
|
||||
Makefile || die
|
||||
|
||||
# Fix hardcoded ovmf file path, see bug 763180
|
||||
sed -i \
|
||||
-e "s:/usr/share/OVMF:/usr/share/edk2-ovmf:g" \
|
||||
-e "s:OVMF_VARS.ms.fd:OVMF_VARS.fd:g" \
|
||||
doc/environment.md \
|
||||
lxd/apparmor/instance.go \
|
||||
lxd/apparmor/instance_qemu.go \
|
||||
lxd/instance/drivers/driver_qemu.go || die "Failed to fix hardcoded ovmf paths."
|
||||
|
||||
# Fix hardcoded virtfs-proxy-helper file path, see bug 798924
|
||||
sed -i \
|
||||
-e "s:/usr/lib/qemu/virtfs-proxy-helper:/usr/libexec/virtfs-proxy-helper:g" \
|
||||
lxd/device/device_utils_disk.go || die "Failed to fix virtfs-proxy-helper path."
|
||||
|
||||
cp "${FILESDIR}"/lxd-4.0.9-r1.service "${T}"/lxd.service || die
|
||||
if use apparmor; then
|
||||
sed -i \
|
||||
'/^EnvironmentFile=.*/a ExecStartPre=\/usr\/libexec\/lxc\/lxc-apparmor-load' \
|
||||
"${T}"/lxd.service || die
|
||||
fi
|
||||
|
||||
# Disable -Werror's from go modules.
|
||||
find "${S}" -name "cgo.go" -exec sed -i "s/ -Werror / /g" {} + || die
|
||||
}
|
||||
|
||||
src_configure() { :; }
|
||||
|
||||
src_compile() {
|
||||
export GOPATH="${S}/_dist"
|
||||
export CGO_LDFLAGS_ALLOW="-Wl,-z,now"
|
||||
|
||||
for k in fuidshift lxd-benchmark lxc lxc-to-lxd; do
|
||||
go install -v -x "${S}/${k}" || die "failed compiling ${k}"
|
||||
done
|
||||
|
||||
go install -v -x -tags libsqlite3 "${S}"/lxd || die "Failed to build the daemon"
|
||||
|
||||
# Needs to be built statically
|
||||
CGO_ENABLED=0 go install -v -tags netgo "${S}"/lxd-migrate
|
||||
CGO_ENABLED=0 go install -v -tags agent,netgo "${S}"/lxd-agent
|
||||
|
||||
use nls && emake build-mo
|
||||
}
|
||||
|
||||
src_test() {
|
||||
emake check
|
||||
}
|
||||
|
||||
src_install() {
|
||||
export GOPATH="${S}/_dist"
|
||||
local bindir="_dist/bin"
|
||||
|
||||
dosbin ${bindir}/lxd
|
||||
|
||||
for l in fuidshift lxd-agent lxd-benchmark lxd-migrate lxc lxc-to-lxd; do
|
||||
dobin ${bindir}/${l}
|
||||
done
|
||||
|
||||
newbashcomp scripts/bash/lxd-client lxc
|
||||
|
||||
newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd
|
||||
newinitd "${FILESDIR}"/lxd-5.0.2-r1.initd lxd
|
||||
|
||||
systemd_dounit "${T}"/lxd.service
|
||||
systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service
|
||||
systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket
|
||||
|
||||
dodoc AUTHORS
|
||||
dodoc -r doc/*
|
||||
use nls && domo po/*.mo
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog
|
||||
elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
|
||||
elog "including a Quick Start."
|
||||
elog "For virtual machine support, see:"
|
||||
elog "https://wiki.gentoo.org/wiki/LXD#Virtual_machines"
|
||||
elog
|
||||
elog "Please run 'lxc-checkconfig' to see all optional kernel features."
|
||||
elog
|
||||
optfeature "virtual machine support" app-emulation/qemu[spice,usbredir,virtfs]
|
||||
optfeature "btrfs storage backend" sys-fs/btrfs-progs
|
||||
optfeature "ipv6 support" net-dns/dnsmasq[ipv6]
|
||||
optfeature "full lxd-migrate support"
|
||||
optfeature "lvm2 storage backend" sys-fs/lvm2
|
||||
optfeature "zfs storage backend" sys-fs/zfs
|
||||
elog
|
||||
elog "Be sure to add your local user to the lxd group."
|
||||
}
|
Binary file not shown.
@ -1,6 +1,5 @@
|
||||
AUX use-printf-in-Makefile.patch 1439 BLAKE2B 829b93431a8dddd957ef2deef60dfd3ff13fc2a0faab5c5327cea2f53ccc1bcc0e805166de93d2de8a52e8c344bdab64dae5671f238b49ecedebb657afca0823 SHA512 8207e9eb534fed58712b805df0e90bcf8406fe1c2907f91cd54500babcc49d0a72dc1d039d9fdb8077967058aaafb6c37336c1b0fcd041edfb3c4604c7cea4c2
|
||||
DIST eid-mw-5.1.11.tar.gz 15368318 BLAKE2B 34a49084bf5e1fb62b7975b14b8300c3400f0c1aeec8a9a01122097b0a3d8245974c7a9c5d9c6d91a419c796a56954b945ec838699fe9d7623f102523c4e0f67 SHA512 7f286a6ff14e62652ec36b68121639bcaa55cf50364da5d11aed4c9f13a2d7813d2b69c13a3335ece6ed0660ca67a8dd1724d3498d8bae03f144d268cefb731d
|
||||
EBUILD eid-mw-5.1.11-r1.ebuild 3043 BLAKE2B 98365a45529fdbed3e5c325d35d39abfe0141d91bd5f80cc8a0b9d238647bf10c112ed6bec3ca7e3cef2d98cb69a9bc106321c9fe10b02c65d21a214e756d1e7 SHA512 ce27418a393f60f57b3bd19118bf9f896ab82e479915405a1bd927bddbe26d2182686314099774a84130a16b18519764dd9943db0bc2f9b71515b3f001b116a3
|
||||
EBUILD eid-mw-5.1.11.ebuild 3038 BLAKE2B 462d0ced9d2d6344dd05cf481fde89f57a7063000d23b8aa768e9dc152715be3d986febbfcffc59d98a083458998ced76f8d06d8be904eccaa67740a81b10d69 SHA512 01b75fd439e83b93376f9e754d74d80a967d1c75bd7833309244a4b0a18f3e9e24428da1bac38499319591cccdb34780d0ba789da3dec669f6ac0e947238cc89
|
||||
EBUILD eid-mw-9999.ebuild 2683 BLAKE2B 4e81ded2f335881fcac6d623dc869a19eb547f5e93b86f6a1caf4c96108dca4515eb0733d91ad6e2e31cdb770f331258444d4eb78ff8e24bdf3f01c0f1bf03a6 SHA512 b81f00e540056c1c4f2f7345cacd4f9f6b4480a6c69ff993e4c83e94f3ae3c6bc63c5e3569a49b1f146b084f8bb9432b861ffe351f953ee258468b7271239d72
|
||||
MISC metadata.xml 1447 BLAKE2B bf97d239f8d44f8a3bd31e35868335a6286a8ded9d6904a919a5a69eb89a61173aca5eb988455df2ca201e0d687e932a84ff8ed7012a3f9ca3e1eda0627ae9ec SHA512 6c27500bb1dd72027a540745e3916c41af548c1cd277fad02f975dd6431a22a9083bc0a7cdd00d316e2c7a536be0ac484f9b47bebb53121b7647da8699321838
|
||||
|
@ -1,124 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit autotools desktop gnome2-utils
|
||||
|
||||
DESCRIPTION="Electronic Identity Card middleware supplied by the Belgian Federal Government"
|
||||
HOMEPAGE="https://eid.belgium.be"
|
||||
SRC_URI="https://codeload.github.com/fedict/${PN}/tar.gz/v${PV} -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="LGPL-3"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
|
||||
IUSE="+dialogs +gtk p11-kit"
|
||||
|
||||
RDEPEND=">=sys-apps/pcsc-lite-1.2.9
|
||||
gtk? (
|
||||
x11-libs/gdk-pixbuf[jpeg]
|
||||
x11-libs/gtk+:3
|
||||
dev-libs/libxml2
|
||||
net-misc/curl[ssl]
|
||||
net-libs/libproxy
|
||||
>=app-crypt/pinentry-1.1.0-r4[gtk]
|
||||
)
|
||||
p11-kit? ( app-crypt/p11-kit )"
|
||||
|
||||
DEPEND="${RDEPEND}
|
||||
virtual/pkgconfig"
|
||||
|
||||
REQUIRED_USE="dialogs? ( gtk )"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# Buggy internal versioning when autoreconf a tarball release.
|
||||
# Weird numbering is required otherwise we get a seg fault in
|
||||
# about-eid-mw program.
|
||||
echo "${PV}-v${PV}" > .version
|
||||
|
||||
# See bug #862306
|
||||
sed -i \
|
||||
-e 's:PACKAGE_VERSION:MAINVERSION:' \
|
||||
cardcomm/pkcs11/src/libbeidpkcs11.pc.in || die
|
||||
|
||||
# xpi module : we don't want it anymore
|
||||
sed -i -e '/SUBDIRS/ s:plugins_tools/xpi ::' Makefile.am || die
|
||||
sed -i -e '/plugins_tools\/xpi/ d' configure.ac || die
|
||||
|
||||
# hardcoded lsb_info
|
||||
sed -i \
|
||||
-e "s:get_lsb_info('i'):strdup(_(\"Gentoo\")):" \
|
||||
-e "s:get_lsb_info('r'):strdup(_(\"n/a\")):" \
|
||||
-e "s:get_lsb_info('c'):strdup(_(\"n/a\")):" \
|
||||
plugins_tools/aboutmw/gtk/about-main.c || die
|
||||
|
||||
# Fix libdir for manifestdir
|
||||
sed -i \
|
||||
-e "/pkcs11_manifestdir/ s:prefix)/lib:libdir):" \
|
||||
-e "/managed_storage_manifestdir/ s:prefix)/lib:libdir):" \
|
||||
cardcomm/pkcs11/src/Makefile.am || die
|
||||
|
||||
# See bug #732994
|
||||
sed -i \
|
||||
-e '/LDFLAGS="/ s:$CPPFLAGS:$LDFLAGS:' \
|
||||
configure.ac || die
|
||||
|
||||
# See bug #751472
|
||||
eapply "${FILESDIR}/use-printf-in-Makefile.patch"
|
||||
|
||||
# See bug #811270 (remove uml build)
|
||||
sed -i \
|
||||
-e 's:cardlayer/uml::' \
|
||||
cardcomm/pkcs11/src/Makefile.am || die
|
||||
sed -i \
|
||||
-e 's:uml::' \
|
||||
plugins_tools/eid-viewer/Makefile.am || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
econf \
|
||||
$(use_enable dialogs) \
|
||||
$(use_enable p11-kit p11kit) \
|
||||
$(use_with gtk gtkvers 'detect') \
|
||||
--with-gnu-ld \
|
||||
--disable-static
|
||||
}
|
||||
|
||||
src_install() {
|
||||
default
|
||||
rm -r "${ED}"/usr/$(get_libdir)/*.la || die
|
||||
if use gtk; then
|
||||
domenu plugins_tools/eid-viewer/eid-viewer.desktop
|
||||
doicon plugins_tools/eid-viewer/gtk/eid-viewer.png
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if use gtk; then
|
||||
gnome2_schemas_update
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
|
||||
local peimpl=$(eselect --brief --colour=no pinentry show)
|
||||
case "${peimpl}" in
|
||||
*gnome*|*qt*) ;;
|
||||
*) ewarn "The pinentry front-end currently selected is not supported by eid-mw."
|
||||
ewarn "You may be prompted for your pin code in an inaccessible shell!!"
|
||||
ewarn "Please select pinentry-gnome3 as default pinentry provider:"
|
||||
ewarn " # eselect pinentry set pinentry-gnome3"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
if use gtk; then
|
||||
gnome2_schemas_update
|
||||
xdg_desktop_database_update
|
||||
xdg_icon_cache_update
|
||||
fi
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
DIST libsecret-0.20.5.tar.xz 187340 BLAKE2B cde5094eaaf54f251c19afb015c39cc88435dafe6ee682ca8f9d1917dd5b3dc8cc1609cdbf2a3a42d2592c2a149bec5fe28b2f4ec179b92c0d0f07d2f14c1792 SHA512 61ca248aafd265e1f31d56c9084c68d880ebf03660ace3d4a6c6622ab306b56e921ac24647b6a60633bfa99c8a0407d4ae1aa6148511f289bf5ce2025b72692a
|
||||
DIST libsecret-0.21.0.tar.xz 190320 BLAKE2B 0775f1b80eea303793aa9c1e940e0cb47ada4cee10ebae947a7e17d5a749736a3219a7edf937693b32df5505c2dd96bffc523b4cfcb41c6a7f12cea0b43449b3 SHA512 666a67f3f06274ab57e1b6e3e855033ce244ab45b9b237851fc06f33ef7922179b5bcbe96a5dc50d1136cbb8d74c2d0af0af4d0ae9de918b4a63b36abb1f2b97
|
||||
DIST libsecret-0.21.1.tar.xz 190796 BLAKE2B 862c2aac0c519d2607c1c5b057d1e0d00d3d5bce06744ab8c6e074393ede2f154af9ab3ee988820c936c8c22dba205ee7bd570287aaa47e64fde21ae3a7dfc2b SHA512 e201b2292280c355d08f8bd2d90d6d785d7b618c82e731eb9c051599a24d8f6a0cc3e271b1876d738f4a15aab24c2b6607b6d15d4335a990e74bb0371fe941ae
|
||||
EBUILD libsecret-0.20.5-r3.ebuild 3715 BLAKE2B 1cbe434ad110a2c29946911bee0198eff501ef726ef910c6e60a12d08a05c9c2097d6ad1f843fe6d4cc03ebd5f477fe893133fb88eb98d9674573b53356c5a26 SHA512 730a7f7aa89427a06d238565b721d67bbcc1ba3b5cc1386b401cb96ed30b6a0ff0f305dd07c30a018fa80e4ab2340820daf3570f38a9f49bc7fcaa930d0ad258
|
||||
EBUILD libsecret-0.21.0.ebuild 3741 BLAKE2B 48f6c42f1ab03d2ad4ac961f217d37f0aa21b202fe9a7062323bbfdd76f0f5bc45df6ee9e4af9f4b915f31741b21e74eb20783d650e42f4e1767686f0c939b5e SHA512 900fed4f31c8f1652e8c88262f87cf499111921a0fd657dd4bdc8733e78473ae063fb304f0bc7262d38bf36d8d498f15551d4ec5726ea9552a303ef35ec72a8b
|
||||
EBUILD libsecret-0.21.1.ebuild 3741 BLAKE2B 48f6c42f1ab03d2ad4ac961f217d37f0aa21b202fe9a7062323bbfdd76f0f5bc45df6ee9e4af9f4b915f31741b21e74eb20783d650e42f4e1767686f0c939b5e SHA512 900fed4f31c8f1652e8c88262f87cf499111921a0fd657dd4bdc8733e78473ae063fb304f0bc7262d38bf36d8d498f15551d4ec5726ea9552a303ef35ec72a8b
|
||||
MISC metadata.xml 468 BLAKE2B 21e70edb5acfc8b52a7d10f0c9e9452b04d8124b3d52bb7f816019cc2cf6f50275c7cb19c8853aec0c5fb2a6c93d56dfed3f4e5b8c41e9b2c08c2eff5efc5206 SHA512 7cc80dd7bbef252a09524ad511e12e621fdceca3482411f605e4c8aabb66e473c10e6a2b446df866644a4749b58dd3bb6f83cf118ff9949e17ca4a427a3ce3de
|
||||
|
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
AUX eblook-1.6.1-clang-16-buildfix.patch 289 BLAKE2B e0b87aaa1563d387cf2f551ce7e1aa3d486de0404fba1e30563c82b5b383d6516513bed341301caf09db87eb86a18c08f3b931613f3699fbd2cb8d0734faabe7 SHA512 b7c45b0416f1d0b231ef9f6b6d2cafe190fe50591e756cd3429c2bc55174698ca3823109765157cc3f2d7573d9d4af53dbf7ad253c3c9a0b8aaa9c55bd4ffff7
|
||||
DIST eblook-1.6.1.tar.gz 440727 BLAKE2B 313dcc89fea9dbc8dac8c9fda618cf4e39d0cfef4f67ba7cf2ab29e3b1c8dc0559407c1f1c68c9994594b784acb445c6fe988456e14da324bd38c89de23f3ffe SHA512 36f4f383a53a0332a2dec0e40d2743c93d35c9f51a7de2d2706bbc18a4fde215d4e345feb175bebf428c1760cb32e73148fb9b336fcde8c0d8b924ee6ecfd6a4
|
||||
DIST eblook_1.6.1-16.debian.tar.xz 92044 BLAKE2B 9a6b19541c910694b0b079cfb4bcb9ae38f4505e25a08f4c17dd7af6cf04a1b5e9a33aadbda7a4c5a8509699b0a5efe4eb5962b6cdd6f63a82105bacad5231a7 SHA512 538956ac54cedae76563bcbc6c8ac7f97be4cdc2d9cc506fc14444dc3a7c9631040a1becf259c1f465b4e875333ffb43d6af5c8102b9fc8b862b7567cafc8d83
|
||||
EBUILD eblook-1.6.1_p16-r1.ebuild 780 BLAKE2B 96db8fd891084d226aa9c70262c9e62ad0ba3717f3b5ae94da3232bbdc9daea0a34a385238b3bb296ad7a2c38b209d96a6567abf5adbfa892b3bb6b502e0f89a SHA512 41ecf81e3d65a4c4a6387d2311e6d4311b142b4e5a8d0256da6e28b1a0b7c12e10db469118385ade68fa8d7e98d6983302c3ca25e16d44fc5e7ad4931f96a605
|
||||
EBUILD eblook-1.6.1_p16-r1.ebuild 779 BLAKE2B 48707e48a581eff0bff6c812f3721c7dcd7d274e66d8ffb328383873dacc8a5d77d6234a2424ec5d2ad69531b79dfaf55d3e966776708a8a2f251d2196ef556f SHA512 8c4c5724c6be86c749eabc1f1566678d94f8450ed2fc4b13cf638fb04bf23ec06aae426d31d460290fe1433fd551149dd74ca5d012cee69368ef5d8430a123ee
|
||||
EBUILD eblook-1.6.1_p16.ebuild 727 BLAKE2B 1d9ad393a17a15c7b58a5c8e8aa34a211ea20e35e69681a817947e211a09bab6cd3bae57f568730e81f35adccf3832b36eb93c54595da1ae603191a94448c4df SHA512 9727896c78c114b8bc572013a44d03e7131b3881dd71b4e12fe2aed81199c5e0a16b60fcbfaf52d193e31dd8ed7720622abf163addb2e1e068b251590a18d933
|
||||
MISC metadata.xml 167 BLAKE2B 868e3b584722eaacf68273db062bb773d8c7e5d7ab2b81ca7e8397643bf7cc106c3a1033594401c99c54f667bb45d6b73f9048fc335580bbd44b4589ad26a832 SHA512 30caadd1496c3b9969136038239a1d8e01f236726b4022c2d7e19ca7575f25f735e556835e581afbf44fbd3e4104c40f2b5ef5fa70118d75c881fdf871962d0a
|
||||
|
@ -1,3 +1,3 @@
|
||||
DIST prime-dict-1.0.0.tar.gz 6756593 BLAKE2B 7348e7a46dcf5a6d15ec2c5e09c4d89e724d912071a11b48b52f9e6cff62c0c52b7736da322a69ed6662e03c4b987702691174d48331e4ed692887d72b9169c0 SHA512 0cad16048baeeca982feaa3e95f7afaabaa94f511e1e80ad332cf106ea39e226f3119bcdc9636010cb5d5e0aef10dec0b8fc4d42b743e32c51971cb45e85dabf
|
||||
EBUILD prime-dict-1.0.0-r3.ebuild 612 BLAKE2B f827b26a7a3a7a185b2dbe2dcb2d1000ced44950f855efe1654d359f032d88cfa2822750e4d0a032c197b8fcddbd2f484bec656975d309d9dfb802d1e2a54db0 SHA512 a5f4ee2f92b6057765d9dc9a41983a9253f2615a78133bc89ff44791ff48bada39247732b98cd63a47cb09b448cc9d1352086e339d7ae462593fa00f815c6b80
|
||||
EBUILD prime-dict-1.0.0-r3.ebuild 591 BLAKE2B 8597cd7de880d7fe2ad1375b6f64c4ebcdc610120d01c18b2a9edf27a34083f1075787b72a28af60aedf7f53cf3e417a30f30857d2bea0eb32f9c8f49b1d1b49 SHA512 839521a6be3157d6209cd85e7002aaec202e4b63d4f2737e5676bedccee64a7b581e2e39b3bf3c26f1ab7d94d558226376bd228812faf9a754e9e02b5de45413
|
||||
MISC metadata.xml 303 BLAKE2B aa9403e520f342c3b1d201774052f18788cb2dd8bb9a287b1717fdc28a1df579ef3c07dffca94c7a4605d1fa3f003750433a6c04e217e6e3716bc73ddcce6b39 SHA512 eaebb0b33ce5eedebb9888ed2aed8ab8dae29a136298ef0c3a3b6c74e65dd99cec2afa5e8b9759b4112911e5d92a34d8f755ad79cd04103d280aec360a56904a
|
||||
|
Binary file not shown.
@ -0,0 +1,157 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
LLVM_MAX_SLOT=17
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_REQ_USE="xml(+)"
|
||||
|
||||
inherit cmake flag-o-matic llvm python-any-r1
|
||||
|
||||
DESCRIPTION="Documentation system for most programming languages"
|
||||
HOMEPAGE="https://www.doxygen.nl/"
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/doxygen/doxygen.git"
|
||||
else
|
||||
SRC_URI="https://doxygen.nl/files/${P}.src.tar.gz"
|
||||
SRC_URI+=" mirror://sourceforge/doxygen/rel-${PV}/${P}.src.tar.gz"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
|
||||
fi
|
||||
|
||||
# GPL-2 also for bundled libmscgen
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
IUSE="clang debug doc dot doxysearch gui sqlite test"
|
||||
# - We need TeX for tests, bug #765472
|
||||
# - We keep the odd construct of noop USE=test because of
|
||||
# the special relationship b/t RESTRICT & USE for tests.
|
||||
# Also, it's a hint which avoids tests being silently skipped during arch testing.
|
||||
REQUIRED_USE="test? ( doc )"
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
BDEPEND="
|
||||
sys-devel/bison
|
||||
sys-devel/flex
|
||||
${PYTHON_DEPS}
|
||||
"
|
||||
RDEPEND="
|
||||
app-text/ghostscript-gpl
|
||||
dev-db/sqlite:3
|
||||
dev-lang/perl
|
||||
dev-libs/libfmt:=
|
||||
dev-libs/spdlog:=
|
||||
media-libs/libpng:=
|
||||
virtual/libiconv
|
||||
clang? (
|
||||
<sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):=
|
||||
)
|
||||
dot? (
|
||||
media-gfx/graphviz
|
||||
media-libs/freetype
|
||||
)
|
||||
doc? (
|
||||
dev-texlive/texlive-bibtexextra
|
||||
dev-texlive/texlive-fontsextra
|
||||
dev-texlive/texlive-fontutils
|
||||
dev-texlive/texlive-latex
|
||||
dev-texlive/texlive-latexextra
|
||||
dev-texlive/texlive-plaingeneric
|
||||
)
|
||||
doxysearch? ( dev-libs/xapian:= )
|
||||
gui? (
|
||||
dev-qt/qtcore:5
|
||||
dev-qt/qtgui:5
|
||||
dev-qt/qtwidgets:5
|
||||
dev-qt/qtxml:5
|
||||
)
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-1.9.4-link_with_pthread.patch"
|
||||
"${FILESDIR}/${PN}-1.9.7-musl-1.2.4.patch"
|
||||
"${FILESDIR}/${PN}-1.9.8-suppress-unused-option-libcxx.patch"
|
||||
|
||||
# Backports
|
||||
"${FILESDIR}/${P}-spdlog-link.patch"
|
||||
"${FILESDIR}/${P}-unbundle-sqlite.patch"
|
||||
)
|
||||
|
||||
DOCS=( LANGUAGE.HOWTO README.md )
|
||||
|
||||
pkg_setup() {
|
||||
use clang && llvm_pkg_setup
|
||||
python-any-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
cmake_src_prepare
|
||||
|
||||
# Call dot with -Teps instead of -Tps for EPS generation - bug #282150
|
||||
sed -i -e '/addJob("ps"/ s/"ps"/"eps"/g' src/dot.cpp || die
|
||||
|
||||
# fix pdf doc
|
||||
sed -i.orig -e "s:g_kowal:g kowal:" \
|
||||
doc/maintainers.txt || die
|
||||
|
||||
if is-flagq "-O3" ; then
|
||||
ewarn
|
||||
ewarn "Compiling with -O3 is known to produce incorrectly"
|
||||
ewarn "optimized code which breaks doxygen."
|
||||
ewarn
|
||||
elog
|
||||
elog "Continuing with -O2 instead ..."
|
||||
elog
|
||||
replace-flags "-O3" "-O2"
|
||||
fi
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# -Wodr warnings, see bug #854357 and https://github.com/doxygen/doxygen/issues/9287
|
||||
filter-lto
|
||||
|
||||
local mycmakeargs=(
|
||||
-Duse_libclang=$(usex clang)
|
||||
# Let the user choose instead, see also bug #822615
|
||||
-Duse_libc++=OFF
|
||||
-Dbuild_doc=$(usex doc)
|
||||
-Dbuild_search=$(usex doxysearch)
|
||||
-Dbuild_wizard=$(usex gui)
|
||||
-Duse_sys_spdlog=ON
|
||||
-Duse_sys_sqlite3=ON
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DGIT_EXECUTABLE="false"
|
||||
)
|
||||
|
||||
use doc && mycmakeargs+=(
|
||||
-DDOC_INSTALL_DIR="share/doc/${P}"
|
||||
)
|
||||
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
|
||||
if use doc; then
|
||||
export VARTEXFONTS="${T}/fonts" # bug #564944
|
||||
|
||||
if ! use dot; then
|
||||
sed -i -e "s/HAVE_DOT = YES/HAVE_DOT = NO/" \
|
||||
{testing/Doxyfile,doc/Doxyfile} \
|
||||
|| die "disabling dot failed"
|
||||
fi
|
||||
|
||||
# -j1 for bug #770070
|
||||
cmake_src_compile docs -j1
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
doman doc/*.1
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
https://github.com/doxygen/doxygen/issues/10265
|
||||
https://github.com/doxygen/doxygen/pull/10284
|
||||
|
||||
From 70bb112352ae7f3130647dcc009d8de5d4134e6d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?=
|
||||
=?UTF-8?q?=20=28Mehdi=20Chinoune=29?= <mehdi.chinoune@hotmail.com>
|
||||
Date: Mon, 4 Sep 2023 18:49:27 +0100
|
||||
Subject: [PATCH 1/2] doxyapp: Fix linking to spdlog
|
||||
|
||||
---
|
||||
addon/doxyapp/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/addon/doxyapp/CMakeLists.txt b/addon/doxyapp/CMakeLists.txt
|
||||
index 4f3c31feacd..6097a3cca69 100644
|
||||
--- a/addon/doxyapp/CMakeLists.txt
|
||||
+++ b/addon/doxyapp/CMakeLists.txt
|
||||
@@ -46,7 +46,7 @@ mscgen
|
||||
doxygen_version
|
||||
doxycfg
|
||||
vhdlparser
|
||||
-spdlog
|
||||
+spdlog::spdlog
|
||||
${ICONV_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${SQLITE3_LIBRARIES}
|
||||
|
||||
From 71f2ed171a6d14a67f1905802714add974c31789 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=D9=85=D9=87=D8=AF=D9=8A=20=D8=B4=D9=8A=D9=86=D9=88=D9=86?=
|
||||
=?UTF-8?q?=20=28Mehdi=20Chinoune=29?= <mehdi.chinoune@hotmail.com>
|
||||
Date: Mon, 4 Sep 2023 18:50:25 +0100
|
||||
Subject: [PATCH 2/2] doxyparse: Fix linking to spdlog
|
||||
|
||||
---
|
||||
addon/doxyparse/CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/addon/doxyparse/CMakeLists.txt b/addon/doxyparse/CMakeLists.txt
|
||||
index 24881e3ef12..0157afb45e2 100644
|
||||
--- a/addon/doxyparse/CMakeLists.txt
|
||||
+++ b/addon/doxyparse/CMakeLists.txt
|
||||
@@ -35,7 +35,7 @@ mscgen
|
||||
doxygen_version
|
||||
doxycfg
|
||||
vhdlparser
|
||||
-spdlog
|
||||
+spdlog::spdlog
|
||||
${ICONV_LIBRARIES}
|
||||
${CMAKE_THREAD_LIBS_INIT}
|
||||
${SQLITE3_LIBRARIES}
|
||||
|
@ -0,0 +1,16 @@
|
||||
Always expose the use_libc++ option. It's only useful for Clang but cmake.class
|
||||
tries to find when we've used CMake options which are unused/unknown and this
|
||||
triggers it for GCC builds if we set -Duse_libc++=OFF.
|
||||
|
||||
So, always expose the option so we can turn it off without a warning.
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -21,7 +21,7 @@ option(build_xmlparser "Automatically update the XML parser modules when updatin
|
||||
option(build_search "Build external search tools (doxysearch and doxyindexer)" OFF)
|
||||
option(build_doc "Build user manual (HTML and PDF)" OFF)
|
||||
option(build_doc_chm "Build user manual (CHM)" OFF)
|
||||
-if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
+if (TRUE)
|
||||
option(use_libc++ "Use libc++ as C++ standard library." ON)
|
||||
endif()
|
||||
option(use_libclang "Add support for libclang parsing." OFF)
|
@ -0,0 +1,119 @@
|
||||
https://github.com/doxygen/doxygen/issues/10263
|
||||
https://github.com/doxygen/doxygen/commit/28609fecd41d885e54fa170e499a0e5b55def2c2
|
||||
|
||||
From 28609fecd41d885e54fa170e499a0e5b55def2c2 Mon Sep 17 00:00:00 2001
|
||||
From: Dimitri van Heesch <doxygen@gmail.com>
|
||||
Date: Mon, 28 Aug 2023 20:19:16 +0200
|
||||
Subject: [PATCH] issue #10263 please add a use_sys_sqlite3 config option
|
||||
|
||||
---
|
||||
CMakeLists.txt | 6 +++++-
|
||||
cmake/FindSQLite3.cmake | 38 ++++++++++++++++++++++++++++++++++++++
|
||||
deps/CMakeLists.txt | 4 +++-
|
||||
src/CMakeLists.txt | 4 +++-
|
||||
4 files changed, 49 insertions(+), 3 deletions(-)
|
||||
create mode 100644 cmake/FindSQLite3.cmake
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 4957c34c24d..31e53cc8440 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -25,7 +25,8 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
option(use_libc++ "Use libc++ as C++ standard library." ON)
|
||||
endif()
|
||||
option(use_libclang "Add support for libclang parsing." OFF)
|
||||
-option(use_sys_spdlog "Use system spdlog instead of bundled." OFF)
|
||||
+option(use_sys_spdlog "Use system spdlog library instead of the one bundled." OFF)
|
||||
+option(use_sys_sqlite3 "Use system sqlite3 library instead of the one bundled." OFF)
|
||||
option(static_libclang "Link to a statically compiled version of LLVM/libclang." OFF)
|
||||
option(win_static "Link with /MT in stead of /MD on windows" OFF)
|
||||
option(enable_console "Enable that executables on Windows get the CONSOLE bit set for the doxywizard executable [development]" OFF)
|
||||
@@ -67,6 +68,9 @@ endif()
|
||||
if (use_sys_spdlog)
|
||||
find_package(spdlog CONFIG REQUIRED)
|
||||
endif()
|
||||
+if (use_sys_sqlite3)
|
||||
+ find_package(SQLite3 REQUIRED)
|
||||
+endif()
|
||||
if (build_wizard)
|
||||
if (force_qt STREQUAL "Qt6")
|
||||
if (CMAKE_SYSTEM MATCHES "Darwin")
|
||||
diff --git a/cmake/FindSQLite3.cmake b/cmake/FindSQLite3.cmake
|
||||
new file mode 100644
|
||||
index 00000000000..7c21de223a7
|
||||
--- /dev/null
|
||||
+++ b/cmake/FindSQLite3.cmake
|
||||
@@ -0,0 +1,38 @@
|
||||
+# Copyright (C) 2007-2009 LuaDist.
|
||||
+# Created by Peter Kapec <kapecp@gmail.com>
|
||||
+# Redistribution and use of this file is allowed according to the terms of the MIT license.
|
||||
+# For details see the COPYRIGHT file distributed with LuaDist.
|
||||
+# Note:
|
||||
+# Searching headers and libraries is very simple and is NOT as powerful as scripts
|
||||
+# distributed with CMake, because LuaDist defines directories to search for.
|
||||
+# Everyone is encouraged to contact the author with improvements. Maybe this file
|
||||
+# becomes part of CMake distribution sometimes.
|
||||
+
|
||||
+# - Find sqlite3
|
||||
+# Find the native SQLite3 headers and libraries.
|
||||
+#
|
||||
+# SQLite3_INCLUDE_DIRS - where to find sqlite3.h, etc.
|
||||
+# SQLite3_LIBRARIES - List of libraries when using sqlite.
|
||||
+# SQLite3_FOUND - True if sqlite found.
|
||||
+
|
||||
+# Look for the header file.
|
||||
+FIND_PATH(SQLite3_INCLUDE_DIR NAMES sqlite3.h)
|
||||
+
|
||||
+# Look for the library.
|
||||
+FIND_LIBRARY(SQLite3_LIBRARY NAMES sqlite3)
|
||||
+
|
||||
+# Handle the QUIETLY and REQUIRED arguments and set SQLITE3_FOUND to TRUE if all listed variables are TRUE.
|
||||
+INCLUDE(FindPackageHandleStandardArgs)
|
||||
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(SQLite3 DEFAULT_MSG SQLite3_LIBRARY SQLite3_INCLUDE_DIR)
|
||||
+
|
||||
+# Copy the results to the output variables.
|
||||
+IF(SQLite3_FOUND)
|
||||
+ SET(SQLite3_LIBRARIES ${SQLite3_LIBRARY})
|
||||
+ SET(SQLite3_INCLUDE_DIRS ${SQLite3_INCLUDE_DIR})
|
||||
+ELSE(SQLite3_FOUND)
|
||||
+ SET(SQLite3_LIBRARIES)
|
||||
+ SET(SQLite3_INCLUDE_DIRS)
|
||||
+ENDIF(SQLite3_FOUND)
|
||||
+
|
||||
+MARK_AS_ADVANCED(SQLite3_INCLUDE_DIRS SQLite3_LIBRARIES)
|
||||
+
|
||||
diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt
|
||||
index a689b4a7018..eb716417f22 100644
|
||||
--- a/deps/CMakeLists.txt
|
||||
+++ b/deps/CMakeLists.txt
|
||||
@@ -4,4 +4,6 @@ add_subdirectory(libmscgen)
|
||||
if (NOT use_sys_spdlog)
|
||||
add_subdirectory(spdlog)
|
||||
endif()
|
||||
-add_subdirectory(sqlite3)
|
||||
+if (NOT use_sys_sqlite3)
|
||||
+ add_subdirectory(sqlite3)
|
||||
+endif()
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index 78a55c3f2bf..02c52240e5b 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -6,7 +6,6 @@ include_directories(
|
||||
${PROJECT_SOURCE_DIR}/deps/libmd5
|
||||
${PROJECT_SOURCE_DIR}/deps/liblodepng
|
||||
${PROJECT_SOURCE_DIR}/deps/libmscgen
|
||||
- ${PROJECT_SOURCE_DIR}/deps/sqlite3
|
||||
${PROJECT_SOURCE_DIR}/libversion
|
||||
${PROJECT_SOURCE_DIR}/libxml
|
||||
${PROJECT_SOURCE_DIR}/vhdlparser
|
||||
@@ -18,6 +17,9 @@ include_directories(
|
||||
if (NOT use_sys_spdlog)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/deps/spdlog/include)
|
||||
endif()
|
||||
+if (NOT use_sys_sqlite)
|
||||
+ include_directories(${PROJECT_SOURCE_DIR}/deps/sqlite3)
|
||||
+endif()
|
||||
|
||||
|
||||
file(MAKE_DIRECTORY ${GENERATED_SRC})
|
||||
|
@ -0,0 +1,72 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Please bump with app-office/gnucash
|
||||
|
||||
CMAKE_MAKEFILE_GENERATOR=emake
|
||||
inherit cmake optfeature
|
||||
|
||||
DESCRIPTION="Documentation package for GnuCash"
|
||||
HOMEPAGE="https://www.gnucash.org/"
|
||||
SRC_URI="https://github.com/Gnucash/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2 FDL-1.1"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86"
|
||||
LOCALES=( de it ja pt )
|
||||
IUSE="${LOCALES[*]/#/l10n_}"
|
||||
|
||||
BDEPEND="
|
||||
app-text/docbook-xml-dtd:4.5
|
||||
app-text/docbook-xsl-stylesheets
|
||||
dev-libs/libxml2
|
||||
dev-libs/libxslt
|
||||
"
|
||||
|
||||
src_prepare() {
|
||||
eapply "${FILESDIR}/${PN}-5.1-partially-revert-kde-help-dir.patch"
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
cmake_src_compile
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local doc_type my_lang
|
||||
|
||||
for doc_type in manual guide; do
|
||||
for my_lang in C ${L10N}; do
|
||||
[[ -z ${my_lang} ]] && continue
|
||||
|
||||
case "${my_lang}" in
|
||||
# Both help and guides translated
|
||||
C|de|it|pt) ;;
|
||||
ja|ru) # Only guides translated
|
||||
if [[ "${doc_type}" == "manual" ]] ; then
|
||||
elog "Help documentation hasn't been translated for ${my_lang}"
|
||||
elog "Will do English instead."
|
||||
continue
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
die "Invalid locale: ${my_lang}"
|
||||
;;
|
||||
esac
|
||||
|
||||
emake \
|
||||
-C "${BUILD_DIR}/${my_lang}/${doc_type}" \
|
||||
DESTDIR="${D}" \
|
||||
install
|
||||
done
|
||||
done
|
||||
|
||||
einstalldocs
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
optfeature "generating PDF files" dev-java/fop
|
||||
optfeature "viewing the docs" gnome-extra/yelp
|
||||
}
|
@ -1,7 +1,5 @@
|
||||
DIST kicad-doc-7.0.1.tar.bz2 104103280 BLAKE2B dbdcd82e65c9d3a2bff629f8fa4e3cc34c2adbfa3fe9a808e3802addc3d75f3875ad52c4f5e79cb2bfb7563a6288d0c2eb6f119adf4f7fd2f31360cea82d1ea7 SHA512 5274ef673db9e415d5b82522681acdd4ee2b2f615bb52abdd11ebd17b72f36852ee297fdb98f9cf1dee12671a23adc24a6a8a03be720b579bbee7a9ead167e41
|
||||
DIST kicad-doc-7.0.2.tar.bz2 104105560 BLAKE2B e6617c5390fd03c7e388a532bd34fbf13baa2fffabac0a63ad84a1e30c398ff5d240cb7ac890945a56fdbdd7300398f37667974797d60afc8a4f6438a6bf324b SHA512 d05a1b9988bbaaa630d036c0b90e81020bd0d51dbccbe6918983bea7894476e0a186fa133fc88aa365c9d26e51b1184f7ce5f375847b828f6b9a85abfe6fd33e
|
||||
DIST kicad-doc-7.0.6.tar.bz2 104105032 BLAKE2B d8cf3cdbaf4088793ba0f6b5625c92b83972620a9da2240827b3a38ae18f66e3fa277c7c930195e18604a6b13dd8fa2a8a5d90de70cbe609575f3d9f89d75d01 SHA512 2162119a1e0b3626a65841e6a6e60561512a27c10b79345ee3713f3b046a58448ad9765f6b430ad77d67ca75cb0d9f37018f2540020406cde0b5a35969db20f4
|
||||
DIST kicad-doc-7.0.7.tar.bz2 104103652 BLAKE2B f5ce0ccde126c062dd877ce8023b0c22e33bc1df47e12494d6a41cb198e0100c690fb9325f6e8b74198af77af1c6afb92f6a6f8c417828527bfa8904c88f6432 SHA512 fd37e06dcac907d8fca6cdf8e3eaf2c5197a82572d92f2b2af8aca8ea3603e7dd4ffc1c77b1e28aee245b4d611dca2a3565eec1d23051925d9969582232862c1
|
||||
EBUILD kicad-doc-7.0.1.ebuild 1810 BLAKE2B f37bc6841d8aa2c457341d56643ec14048af7c6c97b671a607f8a069750bb885439ba5d07c0dd677f73e1b5cfafe68062483e439cfee78f9b84ba73d48615892 SHA512 0e3674a86ab2b0bd61cf0505dde1e2910502ce992fac8f276b86738e0082860e1ff577f5d84412d60f085bea9443f9872540908a5e93b7afef47794ca84d8811
|
||||
EBUILD kicad-doc-7.0.2.ebuild 1811 BLAKE2B dd463832069201a6775846383f74bc0f3e04426307267153960e6d6248e862d53c0d87c93fc70672c1aefa3030f20997009fb8c5cd7d076a31960e75c1ed5e3f SHA512 b800a6f5befc4d0f293767ac85e56c11b136023f45186a13285d3629b100df55232d4d83188d02dc5af5fac55c9265b68bfad75d68ba94b1621dfb6d952321ba
|
||||
EBUILD kicad-doc-7.0.6.ebuild 1811 BLAKE2B dd463832069201a6775846383f74bc0f3e04426307267153960e6d6248e862d53c0d87c93fc70672c1aefa3030f20997009fb8c5cd7d076a31960e75c1ed5e3f SHA512 b800a6f5befc4d0f293767ac85e56c11b136023f45186a13285d3629b100df55232d4d83188d02dc5af5fac55c9265b68bfad75d68ba94b1621dfb6d952321ba
|
||||
EBUILD kicad-doc-7.0.7.ebuild 1811 BLAKE2B dd463832069201a6775846383f74bc0f3e04426307267153960e6d6248e862d53c0d87c93fc70672c1aefa3030f20997009fb8c5cd7d076a31960e75c1ed5e3f SHA512 b800a6f5befc4d0f293767ac85e56c11b136023f45186a13285d3629b100df55232d4d83188d02dc5af5fac55c9265b68bfad75d68ba94b1621dfb6d952321ba
|
||||
MISC metadata.xml 861 BLAKE2B d1cfbf0b3a558b876cc446ffb27ac09d0bac29328d370b064f950117692a0582adc48cac4c8d887ac4151aae72c8cbeef20b521da166a77c7a787951da812f8c SHA512 3d12ebc29679fc7b7d2a75d5d33a053dfb21c96213aa98dd8350f4eb364a4149e35b0f18ca6d9e59f86e57df0abb59e182c7f8fdfda38e4bce8a5308009c85fa
|
||||
|
@ -1,59 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit cmake
|
||||
|
||||
DESCRIPTION="Electronic Schematic and PCB design tools manuals"
|
||||
HOMEPAGE="https://docs.kicad.org/"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
EGIT_REPO_URI="https://gitlab.com/kicad/services/kicad-doc.git"
|
||||
inherit git-r3
|
||||
# x11-misc-util/macros only required on live ebuilds
|
||||
LIVE_DEPEND=">=x11-misc/util-macros-1.18"
|
||||
else
|
||||
SRC_URI="https://gitlab.com/kicad/services/${PN}/-/archive/${PV}/${P}.tar.bz2"
|
||||
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
LICENSE="|| ( GPL-3+ CC-BY-3.0 ) GPL-2"
|
||||
SLOT="0"
|
||||
# TODO: Change default back to +pdf once asciidoctor-pdf is packaged?
|
||||
IUSE="+html pdf"
|
||||
|
||||
LANG_USE=" l10n_ca l10n_de l10n_en l10n_es l10n_fr l10n_id l10n_it l10n_ja l10n_pl l10n_ru l10n_zh"
|
||||
IUSE+=${LANG_USE}
|
||||
REQUIRED_USE="|| ( html pdf ) ^^ ( ${LANG_USE} )"
|
||||
unset LANG_USE
|
||||
|
||||
# TODO: need asciidoctor-pdf for pdf
|
||||
# bug #697450
|
||||
BDEPEND="
|
||||
>=dev-ruby/asciidoctor-2.0.12
|
||||
>=app-text/dblatex-0.3.10
|
||||
>=app-text/po4a-0.45
|
||||
>=sys-devel/gettext-0.18
|
||||
dev-perl/Unicode-LineBreak
|
||||
dev-util/source-highlight
|
||||
l10n_ca? ( dev-texlive/texlive-langspanish )
|
||||
l10n_de? ( dev-texlive/texlive-langgerman )
|
||||
l10n_en? ( dev-texlive/texlive-langenglish )
|
||||
l10n_es? ( dev-texlive/texlive-langspanish )
|
||||
l10n_fr? ( dev-texlive/texlive-langfrench )
|
||||
l10n_it? ( dev-texlive/texlive-langitalian )
|
||||
l10n_ja? ( dev-texlive/texlive-langjapanese media-fonts/vlgothic )
|
||||
l10n_pl? ( dev-texlive/texlive-langpolish )
|
||||
l10n_ru? ( dev-texlive/texlive-langcyrillic )
|
||||
l10n_zh? ( dev-texlive/texlive-langchinese )"
|
||||
|
||||
src_configure() {
|
||||
local mycmakeargs=(
|
||||
-DPDF_GENERATOR="DBLATEX"
|
||||
-DBUILD_FORMATS="$(usev html);$(usev pdf)"
|
||||
-DSINGLE_LANGUAGE="${L10N}"
|
||||
-DKICAD_DOC_PATH="${EPREFIX}"/usr/share/doc/${P}/help
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
Binary file not shown.
@ -1,7 +1,5 @@
|
||||
DIST gnome-text-editor-44.0.tar.xz 610996 BLAKE2B 02ab81055402df584a448d0e611b608e5fa10d6f4a600755cbab9f730aa1806268f7277dafb4fd3aa95ff2be64d2894806c6038ad81dae7cfb87b28dccc7da24 SHA512 bca373a124c3e648fa28da1a493163d768488fa3645fcfbfa7a115e195c0c971dc98e007c9c0fdf7fe415df64e76071fc83e33831707bb31154e66355948bbb3
|
||||
DIST gnome-text-editor-45.0.tar.xz 616972 BLAKE2B 41907137026f6175901965c713451292c9cc172381c9f371c00f236cf5bf70ac9604025c856bafcba87eea1a5f31e468b716fd6307e2aaf82570ac64d6574f3a SHA512 5bec27bb7674f8b6d737e24508e9839600145e4ec5e2cbacdb80e1a4f884782e2bb24808595cfcd0139f101104ce94e70cb90229b514d1dd6ed8e672c878304d
|
||||
DIST gnome-text-editor-45.beta.tar.xz 606824 BLAKE2B bea05d6ca321993ff1f2e563b9c6041b381cb1c9986654166b6fda174a0ed678a05521181c603b4d0847ef878838e5773256bf6afea1855afe4bf3a042feeb3a SHA512 32e07cb8c8c605224e1d915b9579efdf7146291835582da7ab460a4dc23e8207d9cdbc19261bd5060421f9ad06869a49d22b6b1b46e14bcf6fc93238c6eef329
|
||||
EBUILD gnome-text-editor-44.0.ebuild 1037 BLAKE2B 353011edfc52d79a4cabd0f18bc942b2f9bcca87ad0a72a803606407d44698ad0cc490569098fd58b80b6ce8fc9d466fb40d24cc2bbfb6abce6983ecd197f536 SHA512 e6404aaaa55a8dd8d3647a85273f16d91b6bf0b4ae9abb3ee058b70ffff66528beabe301730517956e1732af3aea555ca1019b0c733a52909d13d3ea5d77763b
|
||||
EBUILD gnome-text-editor-45.0.ebuild 1044 BLAKE2B 36c882bf38738d9a32f4cf4623fe2a0d40c7a942e0cffef709195f45b5ce84983c95196fb55535549e64a9dc2db0298650ec72b29291d33906f038bf45c5d8ca SHA512 65772992985ead4083287422919310a7b55a8db52c1146002f9a4f27e7067c26709ec0e440deceaaf69dd1ea1e6574d781847297e2e6201ac101f54592d733f6
|
||||
EBUILD gnome-text-editor-45_beta.ebuild 1044 BLAKE2B 36c882bf38738d9a32f4cf4623fe2a0d40c7a942e0cffef709195f45b5ce84983c95196fb55535549e64a9dc2db0298650ec72b29291d33906f038bf45c5d8ca SHA512 65772992985ead4083287422919310a7b55a8db52c1146002f9a4f27e7067c26709ec0e440deceaaf69dd1ea1e6574d781847297e2e6201ac101f54592d733f6
|
||||
EBUILD gnome-text-editor-45.0.ebuild 1051 BLAKE2B dba70611d8f4721fc55eccfa2878be095f3ee90dbb2f00eef356e14148703749ce3cb6df7e913f9f4a27c9e9b2e82e09ffffd3fee8a6680692fb9510316af76d SHA512 4c4c118a87925778a7e7437e358d0563f64a2336a85cae26d33c951a7ce74c26055762c50f64be79794335b5974b320faee29f8a953a129c63d5399bf6328c38
|
||||
MISC metadata.xml 358 BLAKE2B 908c67ba226a7e65b72a1cbaea99350f05fe9f904644c99b9c4e1e0c81f795c1420a0ca9cba1d56f59fb1b841151ffcf7d088add9f36a0e88314f7f52da94fcf SHA512 5862fb965119f76e19ed997e53e651778458604f1f9b69a1ee04db8eac52bdb6352da84ecb92555b31d3b8c62aa544c57c6040ed358af3beddd35fe356744d85
|
||||
|
@ -1,57 +0,0 @@
|
||||
# Copyright 2022-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit gnome.org gnome2-utils meson xdg
|
||||
|
||||
DESCRIPTION="A simple text editor for the GNOME desktop"
|
||||
HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-text-editor"
|
||||
S="${WORKDIR}/gnome-text-editor-${PV/_/.}"
|
||||
|
||||
LICENSE="GPL-3+ CC-BY-SA-3.0"
|
||||
SLOT="0"
|
||||
|
||||
IUSE="spell"
|
||||
|
||||
KEYWORDS="~amd64 ~riscv"
|
||||
|
||||
DEPEND="
|
||||
>=dev-libs/glib-2.73.0:2
|
||||
>=gui-libs/gtk-4.7:4
|
||||
>=gui-libs/gtksourceview-5.5.0:5
|
||||
>=gui-libs/libadwaita-1.4_alpha:1
|
||||
app-text/editorconfig-core-c
|
||||
x11-libs/cairo
|
||||
spell? (
|
||||
>=app-text/enchant-2.2.0:2
|
||||
dev-libs/icu:=
|
||||
)
|
||||
"
|
||||
RDEPEND="${DEPEND}
|
||||
gnome-base/gsettings-desktop-schemas
|
||||
"
|
||||
BDEPEND="
|
||||
dev-util/glib-utils
|
||||
dev-util/itstool
|
||||
>=sys-devel/gettext-0.21
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
src_configure() {
|
||||
local emesonargs=(
|
||||
$(meson_feature spell enchant)
|
||||
-Dbugreport_url="https://bugs.gentoo.org"
|
||||
)
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
gnome2_schemas_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_pkg_postrm
|
||||
gnome2_schemas_update
|
||||
}
|
@ -1,119 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# RelWithDebInfo sets -Og -g
|
||||
CMAKE_BUILD_TYPE=Release
|
||||
LUA_COMPAT=( lua5-{1..2} luajit )
|
||||
inherit cmake lua-single optfeature xdg
|
||||
|
||||
DESCRIPTION="Vim-fork focused on extensibility and agility"
|
||||
HOMEPAGE="https://neovim.io"
|
||||
|
||||
if [[ ${PV} == 9999 ]]; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/neovim/neovim.git"
|
||||
else
|
||||
SRC_URI="https://github.com/neovim/neovim/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
||||
KEYWORDS="amd64 ~arm arm64 ~ppc64 ~riscv x86 ~x64-macos"
|
||||
fi
|
||||
|
||||
LICENSE="Apache-2.0 vim"
|
||||
SLOT="0"
|
||||
IUSE="+lto +nvimpager test"
|
||||
|
||||
# Upstream say the test library needs LuaJIT
|
||||
# https://github.com/neovim/neovim/blob/91109ffda23d0ce61cec245b1f4ffb99e7591b62/CMakeLists.txt#L377
|
||||
REQUIRED_USE="${LUA_REQUIRED_USE} test? ( lua_single_target_luajit )"
|
||||
# TODO: Get tests running
|
||||
RESTRICT="!test? ( test ) test"
|
||||
|
||||
# Upstream build scripts invoke the Lua interpreter
|
||||
BDEPEND="${LUA_DEPS}
|
||||
>=dev-util/gperf-3.1
|
||||
>=sys-devel/gettext-0.20.1
|
||||
virtual/libiconv
|
||||
virtual/libintl
|
||||
virtual/pkgconfig
|
||||
"
|
||||
# Check https://github.com/neovim/neovim/blob/master/third-party/CMakeLists.txt for
|
||||
# new dependency bounds and so on on bumps (obviously adjust for right branch/tag).
|
||||
DEPEND="${LUA_DEPS}
|
||||
>=dev-lua/luv-1.44.2[${LUA_SINGLE_USEDEP}]
|
||||
$(lua_gen_cond_dep '
|
||||
dev-lua/lpeg[${LUA_USEDEP}]
|
||||
dev-lua/mpack[${LUA_USEDEP}]
|
||||
')
|
||||
$(lua_gen_cond_dep '
|
||||
dev-lua/LuaBitOp[${LUA_USEDEP}]
|
||||
' lua5-{1,2})
|
||||
>=dev-libs/libuv-1.44.2:=
|
||||
>=dev-libs/libvterm-0.3
|
||||
>=dev-libs/msgpack-3.0.0:=
|
||||
>=dev-libs/tree-sitter-0.20.8:=
|
||||
>=dev-libs/libtermkey-0.22
|
||||
>=dev-libs/unibilium-2.0.0:0=
|
||||
"
|
||||
RDEPEND="
|
||||
${DEPEND}
|
||||
app-eselect/eselect-vi
|
||||
"
|
||||
BDEPEND+="
|
||||
test? (
|
||||
$(lua_gen_cond_dep 'dev-lua/busted[${LUA_USEDEP}]')
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}/${PN}-0.9.0-cmake_lua_version.patch"
|
||||
"${FILESDIR}/${PN}-0.9.0-cmake-darwin.patch"
|
||||
"${FILESDIR}/${PN}-0.9.0-cmake-release-type.patch"
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
# Use our system vim dir
|
||||
sed -e "/^# define SYS_VIMRC_FILE/s|\$VIM|${EPREFIX}/etc/vim|" \
|
||||
-i src/nvim/globals.h || die
|
||||
|
||||
# https://forums.gentoo.org/viewtopic-p-8750050.html
|
||||
xdg_environment_reset
|
||||
cmake_src_prepare
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# Upstream default to LTO on non-debug builds
|
||||
# Let's expose it as a USE flag because upstream
|
||||
# have preferences for how we should use LTO
|
||||
# if we want it on (not just -flto)
|
||||
# ... but allow turning it off.
|
||||
# TODO: Investigate USE_BUNDLED, doesn't seem to be needed right now
|
||||
local mycmakeargs=(
|
||||
-DENABLE_LTO=$(usex lto)
|
||||
-DPREFER_LUA=$(usex lua_single_target_luajit no "$(lua_get_version)")
|
||||
-DLUA_PRG="${ELUA}"
|
||||
)
|
||||
cmake_src_configure
|
||||
}
|
||||
|
||||
src_install() {
|
||||
cmake_src_install
|
||||
|
||||
# install a default configuration file
|
||||
insinto /etc/vim
|
||||
doins "${FILESDIR}"/sysinit.vim
|
||||
|
||||
# conditionally install a symlink for nvimpager
|
||||
if use nvimpager; then
|
||||
dosym ../share/nvim/runtime/macros/less.sh /usr/bin/nvimpager
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
xdg_pkg_postinst
|
||||
|
||||
optfeature "clipboard support" x11-misc/xsel x11-misc/xclip gui-apps/wl-clipboard
|
||||
optfeature "Python plugin support" dev-python/pynvim
|
||||
optfeature "Ruby plugin support" dev-ruby/neovim-ruby-client
|
||||
optfeature "remote/nvr support" dev-python/neovim-remote
|
||||
}
|
Binary file not shown.
@ -1,5 +0,0 @@
|
||||
AUX libvirt-snmp.confd 143 BLAKE2B 0781bbd4a4fc0f9f9f32347ae5b730ee643ccfacbc02ddacafca4fe3ba7af3418acd1a677f5d30547f2816717a29091a8305054c87549d675402fb639f12eb39 SHA512 15037f146e7d2f72c83927133b07477a8f0c79df417dc37f3d5a58081f4a9d5c950b5160f4c4b419b68430192a178cb9b8550106d4870ace264448a74de5862e
|
||||
AUX libvirt-snmp.initd-r1 639 BLAKE2B 46cc58e561aa341a27381cf1ff7925758dae2a8a119fb789645d5a602631b52d7d3325549da4b5b256f33c94e9a7d90200e5010d326184eab58a2d83d9bb72da SHA512 90db400497ea1ff10ffb0b8fe1ec9cfbbb066cdec0db9669924080ec64fd9b2e878c063eeb8ba7ffea0c3cd1f154a9074daab0bd6951de34e3d1183518dfdb18
|
||||
DIST libvirt-snmp-0.0.4.tar.gz 157859 BLAKE2B e2c8fcdd97ba9b55bd4d318c63f7738024c1360ee10aa4e685c2ea6ca02478206febff30f3e1a82eb1a2dadaa52a377cfbce538e12e33f4ea2fe10b1a089945d SHA512 dbf47e7983f9bd6fcff205fffd1f6006268cca774cf427d39dec84dc7de37b545c0dfcbb2c6f171f55d73487cdec13341097137e24de2dea58ce90494d281162
|
||||
EBUILD libvirt-snmp-0.0.4.ebuild 1033 BLAKE2B 086dc0f5268dc175566c90258e5d9a29346aca3c03a76ff46f94b33bb4561a5ce8c84cd11af1f248e09b156b96b0cae0573c856610178e1c86097bd8a0c67464 SHA512 2923367b98b3d86d7f1035615b4beda6b8095d11cc7480536bf3d171b86850ac695b9c59dc1083e86d529d8fa1110a0f4a9a901087397f235ce28ff2687778ed
|
||||
MISC metadata.xml 253 BLAKE2B e2f2dc37dec865acaf75ab3cf8eec5b07230a50f77b31484d57c98d6c253d9cc775e3bfbd0b324a551add51eceb7ab16550f5207f0ddec45eb846af46d35d042 SHA512 88baeb17d7dfd51ba23199e87f21cd81d6ce72a80294baabae5a8130f336d4639c3026e5b38a96541292af1f69548a02192a099d67c907f6b8a06d6b2bca3c19
|
@ -1,6 +0,0 @@
|
||||
|
||||
# Specify the URI where your libvirt instance is listening
|
||||
LIBVIRT_DEFAULT_URI="qemu:///system"
|
||||
|
||||
# additional options
|
||||
LIBVIRT_SNMP_OPTIONS=""
|
@ -1,26 +0,0 @@
|
||||
#!/sbin/openrc-run
|
||||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
depend() {
|
||||
need snmpd
|
||||
use snmptrapd
|
||||
use libvirtd
|
||||
}
|
||||
|
||||
start() {
|
||||
ebegin "Starting libvirt subagent"
|
||||
start-stop-daemon --start \
|
||||
--env LIBVIRT_DEFAULT_URI="${LIBVIRT_DEFAULT_URI}" \
|
||||
--exec /usr/bin/libvirtMib_subagent \
|
||||
-- ${LIBVIRT_SNMP_OPTIONS}
|
||||
eend $?
|
||||
}
|
||||
|
||||
stop() {
|
||||
ebegin "Stopping libvirt subagent"
|
||||
# "--exec /usr/bin/libvirtMib_subagent" does not work and the name gets truncated
|
||||
start-stop-daemon --stop \
|
||||
--name libvirtMib_suba
|
||||
eend $?
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
DESCRIPTION="Provides SNMP functionality for libvirt"
|
||||
HOMEPAGE="https://wiki.libvirt.org/Libvirt-snmp.html"
|
||||
SRC_URI="https://download.libvirt.org/snmp/${P}.tar.gz"
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="amd64 x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND=""
|
||||
RDEPEND="${DEPEND}
|
||||
app-emulation/libvirt
|
||||
net-analyzer/net-snmp"
|
||||
BDEPEND="
|
||||
virtual/pkgconfig"
|
||||
|
||||
src_install() {
|
||||
default
|
||||
newinitd "${FILESDIR}/libvirt-snmp.initd-r1" "${PN}"
|
||||
newconfd "${FILESDIR}/libvirt-snmp.confd" "${PN}"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "This daemon runs as an AgentX sub-daemon for snmpd. You should therefore"
|
||||
elog "enable the AgentX functionality in snmpd by specifying the following"
|
||||
elog "in /etc/snmp/snmpd.conf:"
|
||||
elog " master agentx"
|
||||
elog "It is further recommended to send traps to the localhost as well using"
|
||||
elog "this option:"
|
||||
elog " trap2sink localhost"
|
||||
elog "More information is available here:"
|
||||
elog " http://wiki.libvirt.org/page/Libvirt-snmp"
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<!-- maintainer-needed -->
|
||||
<upstream>
|
||||
<remote-id type="gitlab">libvirt/libvirt-snmp</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
@ -0,0 +1,972 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=ajak
|
||||
QEMU_DOCS_VERSION="7.2.0"
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{9,10,11} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.2.0"
|
||||
|
||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||
pax-utils xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
QEMU_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||
EGIT_SUBMODULES=(
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
ui/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_rc/-rc}"
|
||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||
|
||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||
|
||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||
jack jemalloc +jpeg
|
||||
lzo multipath
|
||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
aarch64
|
||||
alpha
|
||||
arm
|
||||
cris
|
||||
hppa
|
||||
i386
|
||||
loongarch64
|
||||
m68k
|
||||
microblaze
|
||||
microblazeel
|
||||
mips
|
||||
mips64
|
||||
mips64el
|
||||
mipsel
|
||||
nios2
|
||||
or1k
|
||||
ppc
|
||||
ppc64
|
||||
riscv32
|
||||
riscv64
|
||||
s390x
|
||||
sh4
|
||||
sh4eb
|
||||
sparc
|
||||
sparc64
|
||||
x86_64
|
||||
xtensa
|
||||
xtensaeb
|
||||
"
|
||||
IUSE_SOFTMMU_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
avr
|
||||
rx
|
||||
tricore
|
||||
"
|
||||
IUSE_USER_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
aarch64_be
|
||||
armeb
|
||||
hexagon
|
||||
mipsn32
|
||||
mipsn32el
|
||||
ppc64le
|
||||
sparc32plus
|
||||
"
|
||||
|
||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Allow no targets to be built so that people can get a tools-only build.
|
||||
# Block USE flag configurations known to not work.
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_arm? ( fdt )
|
||||
qemu_softmmu_targets_microblaze? ( fdt )
|
||||
qemu_softmmu_targets_mips64el? ( fdt )
|
||||
qemu_softmmu_targets_ppc64? ( fdt )
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
qemu_softmmu_targets_x86_64? ( fdt )
|
||||
sdl-image? ( sdl )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
|
||||
static-user? ( !plugins )
|
||||
virgl? ( opengl )
|
||||
virtfs? ( xattr )
|
||||
vnc? ( gnutls )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static !static-user )
|
||||
"
|
||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
|
||||
done
|
||||
|
||||
# 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[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
systemtap? ( dev-util/systemtap )
|
||||
xattr? ( sys-apps/attr[static-libs(+)] )"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
sys-libs/libcap-ng[static-libs(+)]
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
app-accessibility/brltty[static-libs(+)]
|
||||
)
|
||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
bpf? ( dev-libs/libbpf:= )
|
||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||
capstone? ( dev-libs/capstone:=[static-libs(+)] )
|
||||
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||
gnutls? (
|
||||
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||
dev-libs/nettle:=[static-libs(+)]
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libX11
|
||||
vte? ( x11-libs/vte:2.91 )
|
||||
)
|
||||
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)]
|
||||
sys-libs/ncurses:=[static-libs(+)]
|
||||
)
|
||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||
numa? ( sys-process/numactl[static-libs(+)] )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
media-libs/libepoxy[static-libs(+)]
|
||||
media-libs/mesa[static-libs(+)]
|
||||
media-libs/mesa[egl(+),gbm(+)]
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
png? ( media-libs/libpng:0=[static-libs(+)] )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
rbd? ( sys-cluster/ceph )
|
||||
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
|
||||
sdl? (
|
||||
media-libs/libsdl2[video]
|
||||
media-libs/libsdl2[static-libs(+)]
|
||||
)
|
||||
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
|
||||
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
|
||||
slirp? ( net-libs/libslirp[static-libs(+)] )
|
||||
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
||||
snappy? ( app-arch/snappy:= )
|
||||
spice? (
|
||||
>=app-emulation/spice-protocol-0.12.3
|
||||
>=app-emulation/spice-0.12.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev:= )
|
||||
usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
|
||||
EDK2_OVMF_VERSION="202202"
|
||||
SEABIOS_VERSION="1.16.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
)
|
||||
sys-firmware/ipxe[qemu]
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
dev-util/meson
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
gtk? ( nls? ( sys-devel/gettext ) )
|
||||
test? (
|
||||
dev-libs/glib[utils]
|
||||
sys-devel/bc
|
||||
)
|
||||
"
|
||||
CDEPEND="
|
||||
!static? (
|
||||
${ALL_DEPEND//\[static-libs(+)]}
|
||||
${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
|
||||
)
|
||||
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
"
|
||||
DEPEND="${CDEPEND}
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
||||
static? (
|
||||
${ALL_DEPEND}
|
||||
${SOFTMMU_TOOLS_DEPEND}
|
||||
)
|
||||
static-user? ( ${ALL_DEPEND} )"
|
||||
RDEPEND="${CDEPEND}
|
||||
acct-group/kvm
|
||||
selinux? (
|
||||
sec-policy/selinux-qemu
|
||||
sys-libs/libselinux
|
||||
)"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-6.0.0-make.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
|
||||
"${FILESDIR}"/${PN}-7.2.0-linux-headers-6.2-glibc-2.36.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
usr/share/qemu/hppa-firmware.img
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
usr/bin/qemu-alpha
|
||||
usr/bin/qemu-arm
|
||||
usr/bin/qemu-cris
|
||||
usr/bin/qemu-m68k
|
||||
usr/bin/qemu-microblaze
|
||||
usr/bin/qemu-microblazeel
|
||||
usr/bin/qemu-mips
|
||||
usr/bin/qemu-mipsel
|
||||
usr/bin/qemu-or1k
|
||||
usr/bin/qemu-ppc
|
||||
usr/bin/qemu-ppc64
|
||||
usr/bin/qemu-sh4
|
||||
usr/bin/qemu-sh4eb
|
||||
usr/bin/qemu-sparc
|
||||
usr/bin/qemu-sparc64
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
kernel module is loaded is to load it on boot.
|
||||
For AMD CPUs the module is called 'kvm-amd'.
|
||||
For Intel CPUs the module is called 'kvm-intel'.
|
||||
Please review /etc/conf.d/modules for how to load these.
|
||||
|
||||
Make sure your user is in the 'kvm' group. Just run
|
||||
$ gpasswd -a <USER> kvm
|
||||
then have <USER> re-login.
|
||||
|
||||
For brand new installs, the default permissions on /dev/kvm might not let
|
||||
you access it. You can tell udev to reset ownership/perms:
|
||||
$ udevadm trigger -c add /dev/kvm
|
||||
|
||||
If you want to register binfmt handlers for qemu user targets:
|
||||
For openrc:
|
||||
# rc-update add qemu-binfmt
|
||||
For systemd:
|
||||
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
else
|
||||
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||
ERROR_KVM_AMD+=" your kernel configuration."
|
||||
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_TUN+=" virtual network device if using -net tap."
|
||||
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||
ERROR_VHOST_NET+=" support"
|
||||
|
||||
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_AMD"
|
||||
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||
fi
|
||||
fi
|
||||
|
||||
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||
|
||||
# Now do the actual checks setup above
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||
eerror "instances are still pointing to it. Please update your"
|
||||
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||
die "update your virt configs to not use qemu-kvm"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check to make sure target lists are kept up-to-date.
|
||||
check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "${var}: ${sorted}"
|
||||
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||
die "sync ${var} to the list of targets"
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
||||
|
||||
# Remove bundled modules
|
||||
rm -r dtc meson roms/*/ || die
|
||||
}
|
||||
|
||||
##
|
||||
# configures qemu based on the build directory and the build type
|
||||
# we are using.
|
||||
#
|
||||
qemu_src_configure() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
local buildtype=$1
|
||||
local builddir="${S}/${buildtype}-build"
|
||||
|
||||
mkdir "${builddir}" || die
|
||||
|
||||
local conf_opts=(
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--bindir=/usr/bin
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
--with-git-submodules=ignore
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
# are enabled), but it's not really worth the hassle. Disable it
|
||||
# all the time to avoid automatically detecting it. #568856
|
||||
--disable-gcrypt
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
|
||||
$(use_enable alsa)
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable jack)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable oss)
|
||||
$(use_enable plugins)
|
||||
$(use_enable pulseaudio pa)
|
||||
$(use_enable selinux)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
# Disable options not used by user targets. This simplifies building
|
||||
# static user targets (USE=static-user) considerably.
|
||||
conf_notuser() {
|
||||
if [[ ${buildtype} == "user" ]] ; then
|
||||
echo "--disable-${2:-$1}"
|
||||
else
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Special case for the malloc flag, because the --disable flag does
|
||||
# not exist and trying like above will break configuring.
|
||||
conf_malloc() {
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
usex "${1}" "--enable-malloc=${1}" ""
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
$(conf_softmmu bpf)
|
||||
$(conf_notuser bzip2)
|
||||
$(conf_notuser capstone)
|
||||
$(conf_notuser curl)
|
||||
$(conf_tools doc docs)
|
||||
$(conf_notuser fdt)
|
||||
$(conf_notuser fuse)
|
||||
$(conf_notuser glusterfs)
|
||||
$(conf_notuser gnutls)
|
||||
$(conf_notuser gnutls nettle)
|
||||
$(conf_notuser gtk)
|
||||
$(conf_notuser infiniband rdma)
|
||||
$(conf_notuser iscsi libiscsi)
|
||||
$(conf_notuser io-uring linux-io-uring)
|
||||
$(conf_malloc jemalloc)
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
$(conf_notuser opengl)
|
||||
$(conf_notuser pam auth-pam)
|
||||
$(conf_notuser png)
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser seccomp)
|
||||
$(conf_notuser slirp)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
# audio options
|
||||
local audio_opts=(
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
)
|
||||
conf_opts+=(
|
||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||
)
|
||||
fi
|
||||
|
||||
case ${buildtype} in
|
||||
user)
|
||||
conf_opts+=(
|
||||
--enable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--disable-tools
|
||||
--disable-cap-ng
|
||||
--disable-seccomp
|
||||
)
|
||||
local static_flag="static-user"
|
||||
;;
|
||||
softmmu)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--enable-system
|
||||
--disable-tools
|
||||
--enable-cap-ng
|
||||
--enable-seccomp
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
tools)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--disable-system
|
||||
--disable-blobs
|
||||
--enable-tools
|
||||
--enable-cap-ng
|
||||
)
|
||||
local static_flag="static"
|
||||
;;
|
||||
esac
|
||||
|
||||
local targets="${buildtype}_targets"
|
||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||
|
||||
# Add support for SystemTAP
|
||||
use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
|
||||
|
||||
# We always want to attempt to build with PIE support as it results
|
||||
# in a more secure binary. But it doesn't work with static or if
|
||||
# the current GCC doesn't have PIE support.
|
||||
if use ${static_flag}; then
|
||||
conf_opts+=( --static --disable-pie )
|
||||
else
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Meson will not use a cross-file unless cross_prefix is set.
|
||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local target
|
||||
|
||||
python_setup
|
||||
|
||||
softmmu_targets= softmmu_bins=()
|
||||
user_targets= user_bins=()
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
softmmu_targets+=",${target}-softmmu"
|
||||
softmmu_bins+=( "qemu-system-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
for target in ${IUSE_USER_TARGETS} ; do
|
||||
if use "qemu_user_targets_${target}"; then
|
||||
user_targets+=",${target}-linux-user"
|
||||
user_bins+=( "qemu-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
softmmu_targets=${softmmu_targets#,}
|
||||
user_targets=${user_targets#,}
|
||||
|
||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||
qemu_src_configure "tools"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
pax-mark m */qemu-system-* #515550
|
||||
emake check
|
||||
fi
|
||||
}
|
||||
|
||||
qemu_python_install() {
|
||||
python_domodule "${S}/python/qemu"
|
||||
|
||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||
}
|
||||
|
||||
# Generate binfmt support files.
|
||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||
generate_initd() {
|
||||
local out="${T}/qemu-binfmt"
|
||||
local out_systemd="${T}/qemu.conf"
|
||||
local d="${T}/binfmt.d"
|
||||
|
||||
einfo "Generating qemu binfmt scripts and configuration files"
|
||||
|
||||
# Generate the debian fragments first.
|
||||
mkdir -p "${d}"
|
||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||
--debian \
|
||||
--exportdir "${d}" \
|
||||
--qemu-path "${EPREFIX}/usr/bin" \
|
||||
|| die
|
||||
# Then turn the fragments into a shell script we can source.
|
||||
sed -E -i \
|
||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||
"${d}"/* || die
|
||||
|
||||
# Generate the init.d script by assembling the fragments from above.
|
||||
local f qcpu package interpreter magic mask
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||
for f in "${d}"/qemu-* ; do
|
||||
source "${f}"
|
||||
|
||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||
qcpu=${package#qemu-}
|
||||
case ${qcpu} in
|
||||
arm*) qcpu="arm";;
|
||||
mips*) qcpu="mips";;
|
||||
ppc*) qcpu="ppc";;
|
||||
s390*) qcpu="s390";;
|
||||
sh*) qcpu="sh";;
|
||||
sparc*) qcpu="sparc";;
|
||||
esac
|
||||
|
||||
# we use 'printf' here to be portable across 'sh'
|
||||
# implementations: #679168
|
||||
cat <<EOF >>"${out}"
|
||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||
|
||||
done
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# Install binfmt handler init script for user targets.
|
||||
generate_initd
|
||||
doinitd "${T}/qemu-binfmt"
|
||||
|
||||
# Install binfmt/qemu.conf.
|
||||
insinto "/usr/share/qemu/binfmt.d"
|
||||
doins "${T}/qemu.conf"
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# This might not exist if the test failed. #512010
|
||||
[[ -e check-report.html ]] && dodoc check-report.html
|
||||
|
||||
if use kernel_linux; then
|
||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
python_foreach_impl qemu_python_install
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||
fi
|
||||
|
||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||
pushd "${ED}"/usr/bin >/dev/null || die
|
||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||
popd >/dev/null || die
|
||||
|
||||
# Install config file example for qemu-bridge-helper
|
||||
insinto "/etc/qemu"
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}" || die
|
||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
dostrip -x ${QA_PREBUILT}
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||
fi
|
||||
|
||||
# Remove vgabios since we're using the seavgabios packaged one
|
||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||
fi
|
||||
|
||||
# Remove sgabios since we're using the sgabios packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||
fi
|
||||
|
||||
# Remove iPXE since we're using the iPXE packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||
fi
|
||||
fi
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
firmware_abi_change() {
|
||||
local pv
|
||||
for pv in ${REPLACING_VERSIONS}; do
|
||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||
udev_reload
|
||||
fi
|
||||
|
||||
xdg_icon_cache_update
|
||||
|
||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use pin-upstream-blobs && firmware_abi_change; then
|
||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
ewarn " $(best_version sys-firmware/ipxe)"
|
||||
ewarn " $(best_version sys-firmware/sgabios)"
|
||||
ewarn "This might break resume of hibernated guests (started with a different"
|
||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||
ewarn "guest migration ensure that all"
|
||||
ewarn "hosts run at least"
|
||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_info() {
|
||||
echo "Using:"
|
||||
echo " $(best_version app-emulation/spice-protocol)"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
echo " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
echo " $(best_version sys-firmware/ipxe)"
|
||||
echo " $(best_version sys-firmware/sgabios)"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
udev_reload
|
||||
}
|
@ -0,0 +1,970 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=sam
|
||||
QEMU_DOCS_VERSION="8.0.0"
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.2.0"
|
||||
|
||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||
pax-utils xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
QEMU_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||
EGIT_SUBMODULES=(
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
ui/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_rc/-rc}"
|
||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||
|
||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||
|
||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||
jack jemalloc +jpeg
|
||||
lzo multipath
|
||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
aarch64
|
||||
alpha
|
||||
arm
|
||||
cris
|
||||
hppa
|
||||
i386
|
||||
loongarch64
|
||||
m68k
|
||||
microblaze
|
||||
microblazeel
|
||||
mips
|
||||
mips64
|
||||
mips64el
|
||||
mipsel
|
||||
nios2
|
||||
or1k
|
||||
ppc
|
||||
ppc64
|
||||
riscv32
|
||||
riscv64
|
||||
s390x
|
||||
sh4
|
||||
sh4eb
|
||||
sparc
|
||||
sparc64
|
||||
x86_64
|
||||
xtensa
|
||||
xtensaeb
|
||||
"
|
||||
IUSE_SOFTMMU_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
avr
|
||||
rx
|
||||
tricore
|
||||
"
|
||||
IUSE_USER_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
aarch64_be
|
||||
armeb
|
||||
hexagon
|
||||
mipsn32
|
||||
mipsn32el
|
||||
ppc64le
|
||||
sparc32plus
|
||||
"
|
||||
|
||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Allow no targets to be built so that people can get a tools-only build.
|
||||
# Block USE flag configurations known to not work.
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_arm? ( fdt )
|
||||
qemu_softmmu_targets_microblaze? ( fdt )
|
||||
qemu_softmmu_targets_mips64el? ( fdt )
|
||||
qemu_softmmu_targets_ppc64? ( fdt )
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
qemu_softmmu_targets_x86_64? ( fdt )
|
||||
sdl-image? ( sdl )
|
||||
static-user? ( !plugins )
|
||||
virgl? ( opengl )
|
||||
virtfs? ( xattr )
|
||||
vnc? ( gnutls )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static-user )
|
||||
"
|
||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
|
||||
done
|
||||
|
||||
# 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[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
systemtap? ( dev-util/systemtap )
|
||||
xattr? ( sys-apps/attr[static-libs(+)] )
|
||||
"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
app-accessibility/brltty[static-libs(+)]
|
||||
)
|
||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
bpf? ( dev-libs/libbpf:= )
|
||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||
capstone? ( dev-libs/capstone:=[static-libs(+)] )
|
||||
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||
gnutls? (
|
||||
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||
dev-libs/nettle:=[static-libs(+)]
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3
|
||||
x11-libs/libX11
|
||||
vte? ( x11-libs/vte:2.91 )
|
||||
)
|
||||
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)]
|
||||
sys-libs/ncurses:=[static-libs(+)]
|
||||
)
|
||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||
numa? ( sys-process/numactl[static-libs(+)] )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
media-libs/libepoxy[static-libs(+)]
|
||||
media-libs/mesa[static-libs(+)]
|
||||
media-libs/mesa[egl(+),gbm(+)]
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
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.14.0
|
||||
>=app-emulation/spice-0.14.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev:= )
|
||||
usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
|
||||
EDK2_OVMF_VERSION="202202"
|
||||
SEABIOS_VERSION="1.16.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
)
|
||||
sys-firmware/ipxe[qemu]
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
sys-firmware/sgabios
|
||||
)
|
||||
"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
dev-util/meson
|
||||
sys-apps/texinfo
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
dev-python/sphinx[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
gtk? ( nls? ( sys-devel/gettext ) )
|
||||
test? (
|
||||
dev-libs/glib[utils]
|
||||
sys-devel/bc
|
||||
)
|
||||
"
|
||||
CDEPEND="
|
||||
${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-user? ( ${ALL_DEPEND} )
|
||||
"
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
acct-group/kvm
|
||||
selinux? (
|
||||
sec-policy/selinux-qemu
|
||||
sys-libs/libselinux
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-8.0.0-make.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
|
||||
"${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
usr/share/qemu/hppa-firmware.img
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
usr/bin/qemu-alpha
|
||||
usr/bin/qemu-arm
|
||||
usr/bin/qemu-cris
|
||||
usr/bin/qemu-m68k
|
||||
usr/bin/qemu-microblaze
|
||||
usr/bin/qemu-microblazeel
|
||||
usr/bin/qemu-mips
|
||||
usr/bin/qemu-mipsel
|
||||
usr/bin/qemu-or1k
|
||||
usr/bin/qemu-ppc
|
||||
usr/bin/qemu-ppc64
|
||||
usr/bin/qemu-sh4
|
||||
usr/bin/qemu-sh4eb
|
||||
usr/bin/qemu-sparc
|
||||
usr/bin/qemu-sparc64
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
kernel module is loaded is to load it on boot.
|
||||
For AMD CPUs the module is called 'kvm-amd'.
|
||||
For Intel CPUs the module is called 'kvm-intel'.
|
||||
Please review /etc/conf.d/modules for how to load these.
|
||||
|
||||
Make sure your user is in the 'kvm' group. Just run
|
||||
$ gpasswd -a <USER> kvm
|
||||
then have <USER> re-login.
|
||||
|
||||
For brand new installs, the default permissions on /dev/kvm might not let
|
||||
you access it. You can tell udev to reset ownership/perms:
|
||||
$ udevadm trigger -c add /dev/kvm
|
||||
|
||||
If you want to register binfmt handlers for qemu user targets:
|
||||
For openrc:
|
||||
# rc-update add qemu-binfmt
|
||||
For systemd:
|
||||
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
else
|
||||
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||
ERROR_KVM_AMD+=" your kernel configuration."
|
||||
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_TUN+=" virtual network device if using -net tap."
|
||||
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||
ERROR_VHOST_NET+=" support"
|
||||
|
||||
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_AMD"
|
||||
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||
fi
|
||||
fi
|
||||
|
||||
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||
|
||||
# Now do the actual checks setup above
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||
eerror "instances are still pointing to it. Please update your"
|
||||
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||
die "update your virt configs to not use qemu-kvm"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check to make sure target lists are kept up-to-date.
|
||||
check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "${var}: ${sorted}"
|
||||
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||
die "sync ${var} to the list of targets"
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
|
||||
# this setting (-U then -D..=2) will prevent us from trying out 3, so
|
||||
# drop it. No change to level of protection b/c we patch our toolchain.
|
||||
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
|
||||
|
||||
# Remove bundled modules
|
||||
rm -r dtc meson roms/*/ || die
|
||||
}
|
||||
|
||||
##
|
||||
# configures qemu based on the build directory and the build type
|
||||
# we are using.
|
||||
#
|
||||
qemu_src_configure() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
local buildtype=$1
|
||||
local builddir="${S}/${buildtype}-build"
|
||||
|
||||
mkdir "${builddir}" || die
|
||||
|
||||
local conf_opts=(
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--bindir=/usr/bin
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
--with-git-submodules=ignore
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
# are enabled), but it's not really worth the hassle. Disable it
|
||||
# all the time to avoid automatically detecting it. #568856
|
||||
--disable-gcrypt
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
|
||||
$(use_enable alsa)
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable jack)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable oss)
|
||||
$(use_enable plugins)
|
||||
$(use_enable pulseaudio pa)
|
||||
$(use_enable selinux)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
# Disable options not used by user targets. This simplifies building
|
||||
# static user targets (USE=static-user) considerably.
|
||||
conf_notuser() {
|
||||
if [[ ${buildtype} == "user" ]] ; then
|
||||
echo "--disable-${2:-$1}"
|
||||
else
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Special case for the malloc flag, because the --disable flag does
|
||||
# not exist and trying like above will break configuring.
|
||||
conf_malloc() {
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
usex "${1}" "--enable-malloc=${1}" ""
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
$(conf_softmmu bpf)
|
||||
$(conf_notuser bzip2)
|
||||
$(conf_notuser capstone)
|
||||
$(conf_notuser curl)
|
||||
$(conf_tools doc docs)
|
||||
$(conf_notuser fdt)
|
||||
$(conf_notuser fuse)
|
||||
$(conf_notuser glusterfs)
|
||||
$(conf_notuser gnutls)
|
||||
$(conf_notuser gnutls nettle)
|
||||
$(conf_notuser gtk)
|
||||
$(conf_notuser infiniband rdma)
|
||||
$(conf_notuser iscsi libiscsi)
|
||||
$(conf_notuser io-uring linux-io-uring)
|
||||
$(conf_malloc jemalloc)
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
$(conf_notuser opengl)
|
||||
$(conf_notuser pam auth-pam)
|
||||
$(conf_notuser png)
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser seccomp)
|
||||
$(conf_notuser slirp)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
# audio options
|
||||
local audio_opts=(
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
)
|
||||
conf_opts+=(
|
||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||
)
|
||||
fi
|
||||
|
||||
case ${buildtype} in
|
||||
user)
|
||||
conf_opts+=(
|
||||
--enable-linux-user
|
||||
--disable-system
|
||||
--disable-tools
|
||||
--disable-cap-ng
|
||||
--disable-seccomp
|
||||
)
|
||||
local static_flag="static-user"
|
||||
;;
|
||||
softmmu)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--enable-system
|
||||
--disable-tools
|
||||
--enable-cap-ng
|
||||
--enable-seccomp
|
||||
)
|
||||
local static_flag="none"
|
||||
;;
|
||||
tools)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--disable-system
|
||||
--enable-tools
|
||||
--enable-cap-ng
|
||||
)
|
||||
local static_flag="none"
|
||||
;;
|
||||
esac
|
||||
|
||||
local targets="${buildtype}_targets"
|
||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||
|
||||
# Add support for SystemTAP
|
||||
use systemtap && conf_opts+=( --enable-trace-backends="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 [[ ${static_flag} != "none" ]] && use ${static_flag}; then
|
||||
conf_opts+=( --static --disable-pie )
|
||||
else
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Meson will not use a cross-file unless cross_prefix is set.
|
||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local target
|
||||
|
||||
python_setup
|
||||
|
||||
softmmu_targets= softmmu_bins=()
|
||||
user_targets= user_bins=()
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
softmmu_targets+=",${target}-softmmu"
|
||||
softmmu_bins+=( "qemu-system-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
for target in ${IUSE_USER_TARGETS} ; do
|
||||
if use "qemu_user_targets_${target}"; then
|
||||
user_targets+=",${target}-linux-user"
|
||||
user_bins+=( "qemu-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
softmmu_targets=${softmmu_targets#,}
|
||||
user_targets=${user_targets#,}
|
||||
|
||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||
qemu_src_configure "tools"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
pax-mark m */qemu-system-* #515550
|
||||
emake check
|
||||
fi
|
||||
}
|
||||
|
||||
qemu_python_install() {
|
||||
python_domodule "${S}/python/qemu"
|
||||
|
||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||
}
|
||||
|
||||
# Generate binfmt support files.
|
||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||
generate_initd() {
|
||||
local out="${T}/qemu-binfmt"
|
||||
local out_systemd="${T}/qemu.conf"
|
||||
local d="${T}/binfmt.d"
|
||||
|
||||
einfo "Generating qemu binfmt scripts and configuration files"
|
||||
|
||||
# Generate the debian fragments first.
|
||||
mkdir -p "${d}"
|
||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||
--debian \
|
||||
--exportdir "${d}" \
|
||||
--qemu-path "${EPREFIX}/usr/bin" \
|
||||
|| die
|
||||
# Then turn the fragments into a shell script we can source.
|
||||
sed -E -i \
|
||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||
"${d}"/* || die
|
||||
|
||||
# Generate the init.d script by assembling the fragments from above.
|
||||
local f qcpu package interpreter magic mask
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||
for f in "${d}"/qemu-* ; do
|
||||
source "${f}"
|
||||
|
||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||
qcpu=${package#qemu-}
|
||||
case ${qcpu} in
|
||||
arm*) qcpu="arm";;
|
||||
mips*) qcpu="mips";;
|
||||
ppc*) qcpu="ppc";;
|
||||
s390*) qcpu="s390";;
|
||||
sh*) qcpu="sh";;
|
||||
sparc*) qcpu="sparc";;
|
||||
esac
|
||||
|
||||
# we use 'printf' here to be portable across 'sh'
|
||||
# implementations: #679168
|
||||
cat <<EOF >>"${out}"
|
||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||
|
||||
done
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# Install binfmt handler init script for user targets.
|
||||
generate_initd
|
||||
doinitd "${T}/qemu-binfmt"
|
||||
|
||||
# Install binfmt/qemu.conf.
|
||||
insinto "/usr/share/qemu/binfmt.d"
|
||||
doins "${T}/qemu.conf"
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# This might not exist if the test failed. #512010
|
||||
[[ -e check-report.html ]] && dodoc check-report.html
|
||||
|
||||
if use kernel_linux; then
|
||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
python_foreach_impl qemu_python_install
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||
fi
|
||||
|
||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||
pushd "${ED}"/usr/bin >/dev/null || die
|
||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||
popd >/dev/null || die
|
||||
|
||||
# Install config file example for qemu-bridge-helper
|
||||
insinto "/etc/qemu"
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}" || die
|
||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
dostrip -x ${QA_PREBUILT}
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||
fi
|
||||
|
||||
# Remove vgabios since we're using the seavgabios packaged one
|
||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||
fi
|
||||
|
||||
# Remove sgabios since we're using the sgabios packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||
fi
|
||||
|
||||
# Remove iPXE since we're using the iPXE packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||
fi
|
||||
fi
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
firmware_abi_change() {
|
||||
local pv
|
||||
for pv in ${REPLACING_VERSIONS}; do
|
||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||
udev_reload
|
||||
fi
|
||||
|
||||
xdg_icon_cache_update
|
||||
|
||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use pin-upstream-blobs && firmware_abi_change; then
|
||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
ewarn " $(best_version sys-firmware/ipxe)"
|
||||
ewarn " $(best_version sys-firmware/sgabios)"
|
||||
ewarn "This might break resume of hibernated guests (started with a different"
|
||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||
ewarn "guest migration ensure that all"
|
||||
ewarn "hosts run at least"
|
||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_info() {
|
||||
echo "Using:"
|
||||
echo " $(best_version app-emulation/spice-protocol)"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
echo " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
echo " $(best_version sys-firmware/ipxe)"
|
||||
echo " $(best_version sys-firmware/sgabios)"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
udev_reload
|
||||
}
|
@ -0,0 +1,967 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
|
||||
# Set to 1 if prebuilt, 0 if not
|
||||
# (the construct below is to allow overriding from env for script)
|
||||
QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
|
||||
QEMU_DOCS_PREBUILT_DEV=sam
|
||||
#QEMU_DOCS_VERSION=$(ver_cut 1-3)
|
||||
QEMU_DOCS_VERSION=8.1.0
|
||||
# Default to generating docs (inc. man pages) if no prebuilt; overridden later
|
||||
# bug #830088
|
||||
QEMU_DOC_USEFLAG="+doc"
|
||||
|
||||
PYTHON_COMPAT=( python3_{10..12} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
FIRMWARE_ABI_VERSION="7.2.0"
|
||||
|
||||
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
|
||||
pax-utils xdg-utils
|
||||
|
||||
if [[ ${PV} == *9999* ]]; then
|
||||
QEMU_DOCS_PREBUILT=0
|
||||
|
||||
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
|
||||
EGIT_SUBMODULES=(
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
subprojects/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_rc/-rc}"
|
||||
SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
|
||||
|
||||
if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
|
||||
fi
|
||||
|
||||
S="${WORKDIR}/${MY_P}"
|
||||
[[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
|
||||
|
||||
LICENSE="GPL-2 LGPL-2 BSD-2"
|
||||
SLOT="0"
|
||||
|
||||
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
|
||||
|
||||
IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
|
||||
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
|
||||
jack jemalloc +jpeg
|
||||
lzo multipath
|
||||
ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
+slirp
|
||||
smartcard snappy spice ssh static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
|
||||
zstd"
|
||||
|
||||
COMMON_TARGETS="
|
||||
aarch64
|
||||
alpha
|
||||
arm
|
||||
cris
|
||||
hppa
|
||||
i386
|
||||
loongarch64
|
||||
m68k
|
||||
microblaze
|
||||
microblazeel
|
||||
mips
|
||||
mips64
|
||||
mips64el
|
||||
mipsel
|
||||
nios2
|
||||
or1k
|
||||
ppc
|
||||
ppc64
|
||||
riscv32
|
||||
riscv64
|
||||
s390x
|
||||
sh4
|
||||
sh4eb
|
||||
sparc
|
||||
sparc64
|
||||
x86_64
|
||||
xtensa
|
||||
xtensaeb
|
||||
"
|
||||
IUSE_SOFTMMU_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
avr
|
||||
rx
|
||||
tricore
|
||||
"
|
||||
IUSE_USER_TARGETS="
|
||||
${COMMON_TARGETS}
|
||||
aarch64_be
|
||||
armeb
|
||||
hexagon
|
||||
mipsn32
|
||||
mipsn32el
|
||||
ppc64le
|
||||
sparc32plus
|
||||
"
|
||||
|
||||
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
|
||||
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
|
||||
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
|
||||
|
||||
RESTRICT="!test? ( test )"
|
||||
|
||||
# Allow no targets to be built so that people can get a tools-only build.
|
||||
# Block USE flag configurations known to not work.
|
||||
REQUIRED_USE="
|
||||
${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_arm? ( fdt )
|
||||
qemu_softmmu_targets_microblaze? ( fdt )
|
||||
qemu_softmmu_targets_mips64el? ( fdt )
|
||||
qemu_softmmu_targets_ppc64? ( fdt )
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
qemu_softmmu_targets_x86_64? ( fdt )
|
||||
sdl-image? ( sdl )
|
||||
static-user? ( !plugins )
|
||||
virgl? ( opengl )
|
||||
virtfs? ( xattr )
|
||||
vnc? ( gnutls )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static-user )
|
||||
"
|
||||
for smname in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
|
||||
done
|
||||
|
||||
# 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[static-libs(+)]
|
||||
sys-libs/zlib[static-libs(+)]
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
systemtap? ( dev-util/systemtap )
|
||||
xattr? ( sys-apps/attr[static-libs(+)] )
|
||||
"
|
||||
|
||||
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
app-accessibility/brltty[static-libs(+)]
|
||||
)
|
||||
aio? ( dev-libs/libaio[static-libs(+)] )
|
||||
alsa? ( >=media-libs/alsa-lib-1.0.13 )
|
||||
bpf? ( dev-libs/libbpf:= )
|
||||
bzip2? ( app-arch/bzip2[static-libs(+)] )
|
||||
capstone? ( dev-libs/capstone:=[static-libs(+)] )
|
||||
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
|
||||
fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
|
||||
fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
|
||||
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
|
||||
gnutls? (
|
||||
>=net-libs/gnutls-3.0:=[static-libs(+)]
|
||||
dev-libs/nettle:=[static-libs(+)]
|
||||
)
|
||||
gtk? (
|
||||
x11-libs/gtk+:3
|
||||
vte? ( x11-libs/vte:2.91 )
|
||||
)
|
||||
infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
|
||||
kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:=[unicode(+)]
|
||||
sys-libs/ncurses:=[static-libs(+)]
|
||||
)
|
||||
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
|
||||
numa? ( sys-process/numactl[static-libs(+)] )
|
||||
opengl? (
|
||||
virtual/opengl
|
||||
media-libs/libepoxy[static-libs(+)]
|
||||
media-libs/mesa[static-libs(+)]
|
||||
media-libs/mesa[egl(+),gbm(+)]
|
||||
)
|
||||
pam? ( sys-libs/pam )
|
||||
pipewire? ( >=media-video/pipewire-0.3.60 )
|
||||
png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
|
||||
pulseaudio? ( media-libs/libpulse )
|
||||
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.14.0
|
||||
>=app-emulation/spice-0.14.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev:= )
|
||||
usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
virgl? ( media-libs/virglrenderer[static-libs(+)] )
|
||||
virtfs? ( sys-libs/libcap )
|
||||
xen? ( app-emulation/xen-tools:= )
|
||||
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
|
||||
"
|
||||
|
||||
EDK2_OVMF_VERSION="202202"
|
||||
SEABIOS_VERSION="1.16.0"
|
||||
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
~sys-firmware/ipxe-1.21.1[binary,qemu]
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
~sys-firmware/sgabios-0.1_pre10[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
|
||||
>=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
|
||||
)
|
||||
sys-firmware/ipxe[qemu]
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
sys-firmware/sgabios
|
||||
)
|
||||
"
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
|| (
|
||||
>=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
|
||||
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
# See bug #913084 for pip dep
|
||||
BDEPEND="
|
||||
$(python_gen_impl_dep)
|
||||
dev-lang/perl
|
||||
>=dev-util/meson-0.63.0
|
||||
dev-python/pip[${PYTHON_USEDEP}]
|
||||
virtual/pkgconfig
|
||||
doc? (
|
||||
>=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
|
||||
dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
|
||||
)
|
||||
gtk? ( nls? ( sys-devel/gettext ) )
|
||||
test? (
|
||||
dev-libs/glib[utils]
|
||||
sys-devel/bc
|
||||
)
|
||||
"
|
||||
CDEPEND="
|
||||
${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-user? ( ${ALL_DEPEND} )
|
||||
"
|
||||
RDEPEND="
|
||||
${CDEPEND}
|
||||
acct-group/kvm
|
||||
selinux? (
|
||||
sec-policy/selinux-qemu
|
||||
sys-libs/libselinux
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
|
||||
"${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
|
||||
"${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
|
||||
"${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
usr/share/qemu/hppa-firmware.img
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="
|
||||
usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
usr/bin/qemu-alpha
|
||||
usr/bin/qemu-arm
|
||||
usr/bin/qemu-cris
|
||||
usr/bin/qemu-m68k
|
||||
usr/bin/qemu-microblaze
|
||||
usr/bin/qemu-microblazeel
|
||||
usr/bin/qemu-mips
|
||||
usr/bin/qemu-mipsel
|
||||
usr/bin/qemu-or1k
|
||||
usr/bin/qemu-ppc
|
||||
usr/bin/qemu-ppc64
|
||||
usr/bin/qemu-sh4
|
||||
usr/bin/qemu-sh4eb
|
||||
usr/bin/qemu-sparc
|
||||
usr/bin/qemu-sparc64
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
kernel module is loaded is to load it on boot.
|
||||
For AMD CPUs the module is called 'kvm-amd'.
|
||||
For Intel CPUs the module is called 'kvm-intel'.
|
||||
Please review /etc/conf.d/modules for how to load these.
|
||||
|
||||
Make sure your user is in the 'kvm' group. Just run
|
||||
$ gpasswd -a <USER> kvm
|
||||
then have <USER> re-login.
|
||||
|
||||
For brand new installs, the default permissions on /dev/kvm might not let
|
||||
you access it. You can tell udev to reset ownership/perms:
|
||||
$ udevadm trigger -c add /dev/kvm
|
||||
|
||||
If you want to register binfmt handlers for qemu user targets:
|
||||
For openrc:
|
||||
# rc-update add qemu-binfmt
|
||||
For systemd:
|
||||
# ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
else
|
||||
CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
|
||||
ERROR_KVM="You must enable KVM in your kernel to continue"
|
||||
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
|
||||
ERROR_KVM_AMD+=" your kernel configuration."
|
||||
ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
|
||||
ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
|
||||
ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
|
||||
ERROR_TUN+=" into your kernel or loaded as a module to use the"
|
||||
ERROR_TUN+=" virtual network device if using -net tap."
|
||||
ERROR_BRIDGE="You will also need support for 802.1d"
|
||||
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
|
||||
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
|
||||
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
|
||||
ERROR_VHOST_NET+=" support"
|
||||
|
||||
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
|
||||
if grep -q AuthenticAMD /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_AMD"
|
||||
elif grep -q GenuineIntel /proc/cpuinfo; then
|
||||
CONFIG_CHECK+=" ~KVM_INTEL"
|
||||
fi
|
||||
fi
|
||||
|
||||
use python && CONFIG_CHECK+=" ~DEBUG_FS"
|
||||
ERROR_DEBUG_FS="debugFS support required for kvm_stat"
|
||||
|
||||
# Now do the actual checks setup above
|
||||
check_extra_config
|
||||
fi
|
||||
fi
|
||||
|
||||
if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
|
||||
eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
|
||||
eerror "instances are still pointing to it. Please update your"
|
||||
eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
|
||||
eerror "and the right system binary (e.g. qemu-system-x86_64)."
|
||||
die "update your virt configs to not use qemu-kvm"
|
||||
fi
|
||||
}
|
||||
|
||||
# Sanity check to make sure target lists are kept up-to-date.
|
||||
check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "${var}: ${sorted}"
|
||||
eerror "$(printf '%-*s' ${#var} configure): ${detected}"
|
||||
die "sync ${var} to the list of targets"
|
||||
fi
|
||||
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# Remove bundled modules
|
||||
rm -r subprojects/dtc roms/*/ || die
|
||||
}
|
||||
|
||||
##
|
||||
# configures qemu based on the build directory and the build type
|
||||
# we are using.
|
||||
#
|
||||
qemu_src_configure() {
|
||||
debug-print-function ${FUNCNAME} "$@"
|
||||
|
||||
local buildtype=$1
|
||||
local builddir="${S}/${buildtype}-build"
|
||||
|
||||
mkdir "${builddir}" || die
|
||||
|
||||
local conf_opts=(
|
||||
--prefix=/usr
|
||||
--sysconfdir=/etc
|
||||
--bindir=/usr/bin
|
||||
--libdir=/usr/$(get_libdir)
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
--disable-download
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
# are enabled), but it's not really worth the hassle. Disable it
|
||||
# all the time to avoid automatically detecting it. #568856
|
||||
--disable-gcrypt
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
--objcc="$(tc-getCC)"
|
||||
--host-cc="$(tc-getBUILD_CC)"
|
||||
|
||||
$(use_enable alsa)
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable jack)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable oss)
|
||||
$(use_enable pipewire)
|
||||
$(use_enable plugins)
|
||||
$(use_enable pulseaudio pa)
|
||||
$(use_enable selinux)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
# Disable options not used by user targets. This simplifies building
|
||||
# static user targets (USE=static-user) considerably.
|
||||
conf_notuser() {
|
||||
if [[ ${buildtype} == "user" ]] ; then
|
||||
echo "--disable-${2:-$1}"
|
||||
else
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Special case for the malloc flag, because the --disable flag does
|
||||
# not exist and trying like above will break configuring.
|
||||
conf_malloc() {
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
usex "${1}" "--enable-malloc=${1}" ""
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
$(conf_softmmu bpf)
|
||||
$(conf_notuser bzip2)
|
||||
$(conf_notuser capstone)
|
||||
$(conf_notuser curl)
|
||||
$(conf_tools doc docs)
|
||||
$(conf_notuser fdt)
|
||||
$(conf_notuser fuse)
|
||||
$(conf_notuser glusterfs)
|
||||
$(conf_notuser gnutls)
|
||||
$(conf_notuser gnutls nettle)
|
||||
$(conf_notuser gtk)
|
||||
$(conf_notuser infiniband rdma)
|
||||
$(conf_notuser iscsi libiscsi)
|
||||
$(conf_notuser io-uring linux-io-uring)
|
||||
$(conf_malloc jemalloc)
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
$(conf_notuser opengl)
|
||||
$(conf_notuser pam auth-pam)
|
||||
$(conf_notuser png)
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser seccomp)
|
||||
$(conf_notuser slirp)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_softmmu virtfs)
|
||||
$(conf_notuser vnc)
|
||||
$(conf_notuser vte)
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
if [[ ! ${buildtype} == "user" ]] ; then
|
||||
# audio options
|
||||
local audio_opts=(
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev pipewire)
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
)
|
||||
conf_opts+=(
|
||||
--audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
|
||||
)
|
||||
fi
|
||||
|
||||
case ${buildtype} in
|
||||
user)
|
||||
conf_opts+=(
|
||||
--enable-linux-user
|
||||
--disable-system
|
||||
--disable-tools
|
||||
--disable-cap-ng
|
||||
--disable-seccomp
|
||||
)
|
||||
local static_flag="static-user"
|
||||
;;
|
||||
softmmu)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--enable-system
|
||||
--disable-tools
|
||||
--enable-cap-ng
|
||||
--enable-seccomp
|
||||
)
|
||||
local static_flag="none"
|
||||
;;
|
||||
tools)
|
||||
conf_opts+=(
|
||||
--disable-linux-user
|
||||
--disable-system
|
||||
--enable-tools
|
||||
--enable-cap-ng
|
||||
)
|
||||
local static_flag="none"
|
||||
;;
|
||||
esac
|
||||
|
||||
local targets="${buildtype}_targets"
|
||||
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
|
||||
|
||||
# Add support for SystemTAP
|
||||
use systemtap && conf_opts+=( --enable-trace-backends="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 [[ ${static_flag} != "none" ]] && use ${static_flag}; then
|
||||
conf_opts+=( --static --disable-pie )
|
||||
else
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Meson will not use a cross-file unless cross_prefix is set.
|
||||
tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
local target
|
||||
|
||||
python_setup
|
||||
|
||||
softmmu_targets= softmmu_bins=()
|
||||
user_targets= user_bins=()
|
||||
|
||||
for target in ${IUSE_SOFTMMU_TARGETS} ; do
|
||||
if use "qemu_softmmu_targets_${target}"; then
|
||||
softmmu_targets+=",${target}-softmmu"
|
||||
softmmu_bins+=( "qemu-system-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
for target in ${IUSE_USER_TARGETS} ; do
|
||||
if use "qemu_user_targets_${target}"; then
|
||||
user_targets+=",${target}-linux-user"
|
||||
user_bins+=( "qemu-${target}" )
|
||||
fi
|
||||
done
|
||||
|
||||
softmmu_targets=${softmmu_targets#,}
|
||||
user_targets=${user_targets#,}
|
||||
|
||||
[[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
|
||||
[[ -n ${user_targets} ]] && qemu_src_configure "user"
|
||||
qemu_src_configure "tools"
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
default
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
default
|
||||
}
|
||||
|
||||
src_test() {
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build" || die
|
||||
pax-mark m */qemu-system-* #515550
|
||||
emake check
|
||||
fi
|
||||
}
|
||||
|
||||
qemu_python_install() {
|
||||
python_domodule "${S}/python/qemu"
|
||||
|
||||
python_doscript "${S}/scripts/kvm/vmxcap"
|
||||
python_doscript "${S}/scripts/qmp/qmp-shell"
|
||||
python_doscript "${S}/scripts/qmp/qemu-ga-client"
|
||||
}
|
||||
|
||||
# Generate binfmt support files.
|
||||
# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
|
||||
# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
|
||||
generate_initd() {
|
||||
local out="${T}/qemu-binfmt"
|
||||
local out_systemd="${T}/qemu.conf"
|
||||
local d="${T}/binfmt.d"
|
||||
|
||||
einfo "Generating qemu binfmt scripts and configuration files"
|
||||
|
||||
# Generate the debian fragments first.
|
||||
mkdir -p "${d}"
|
||||
"${S}"/scripts/qemu-binfmt-conf.sh \
|
||||
--debian \
|
||||
--exportdir "${d}" \
|
||||
--qemu-path "${EPREFIX}/usr/bin" \
|
||||
|| die
|
||||
# Then turn the fragments into a shell script we can source.
|
||||
sed -E -i \
|
||||
-e 's:^([^ ]+) (.*)$:\1="\2":' \
|
||||
"${d}"/* || die
|
||||
|
||||
# Generate the init.d script by assembling the fragments from above.
|
||||
local f qcpu package interpreter magic mask
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
|
||||
for f in "${d}"/qemu-* ; do
|
||||
source "${f}"
|
||||
|
||||
# Normalize the cpu logic like we do in the init.d for the native cpu.
|
||||
qcpu=${package#qemu-}
|
||||
case ${qcpu} in
|
||||
arm*) qcpu="arm";;
|
||||
mips*) qcpu="mips";;
|
||||
ppc*) qcpu="ppc";;
|
||||
s390*) qcpu="s390";;
|
||||
sh*) qcpu="sh";;
|
||||
sparc*) qcpu="sparc";;
|
||||
esac
|
||||
|
||||
# we use 'printf' here to be portable across 'sh'
|
||||
# implementations: #679168
|
||||
cat <<EOF >>"${out}"
|
||||
if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
|
||||
printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
|
||||
fi
|
||||
EOF
|
||||
|
||||
echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
|
||||
|
||||
done
|
||||
cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
|
||||
}
|
||||
|
||||
src_install() {
|
||||
if [[ -n ${user_targets} ]]; then
|
||||
cd "${S}/user-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# Install binfmt handler init script for user targets.
|
||||
generate_initd
|
||||
doinitd "${T}/qemu-binfmt"
|
||||
|
||||
# Install binfmt/qemu.conf.
|
||||
insinto "/usr/share/qemu/binfmt.d"
|
||||
doins "${T}/qemu.conf"
|
||||
fi
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
cd "${S}/softmmu-build"
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# This might not exist if the test failed. #512010
|
||||
[[ -e check-report.html ]] && dodoc check-report.html
|
||||
|
||||
if use kernel_linux; then
|
||||
udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
|
||||
fi
|
||||
|
||||
if use python; then
|
||||
python_foreach_impl qemu_python_install
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "${S}/tools-build" || die
|
||||
emake DESTDIR="${ED}" install
|
||||
|
||||
# If USE=doc, there'll be newly generated docs which we install instead.
|
||||
if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
|
||||
doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
|
||||
fi
|
||||
|
||||
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
|
||||
pushd "${ED}"/usr/bin >/dev/null || die
|
||||
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
|
||||
popd >/dev/null || die
|
||||
|
||||
# Install config file example for qemu-bridge-helper
|
||||
insinto "/etc/qemu"
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}" || die
|
||||
dodoc MAINTAINERS
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
dostrip -x ${QA_PREBUILT}
|
||||
|
||||
if [[ -n ${softmmu_targets} ]]; then
|
||||
# Remove SeaBIOS since we're using the SeaBIOS packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
|
||||
fi
|
||||
|
||||
# Remove vgabios since we're using the seavgabios packaged one
|
||||
rm "${ED}/usr/share/qemu/vgabios.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
||||
dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
|
||||
dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
|
||||
dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
|
||||
fi
|
||||
|
||||
# Remove sgabios since we're using the sgabios packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
|
||||
fi
|
||||
|
||||
# Remove iPXE since we're using the iPXE packaged one
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
|
||||
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
|
||||
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
|
||||
dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
|
||||
dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
|
||||
dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
|
||||
dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
|
||||
fi
|
||||
fi
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_create_doc
|
||||
}
|
||||
|
||||
firmware_abi_change() {
|
||||
local pv
|
||||
for pv in ${REPLACING_VERSIONS}; do
|
||||
if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
|
||||
udev_reload
|
||||
fi
|
||||
|
||||
xdg_icon_cache_update
|
||||
|
||||
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
|
||||
fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
|
||||
|
||||
DISABLE_AUTOFORMATTING=true
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if use pin-upstream-blobs && firmware_abi_change; then
|
||||
ewarn "This version of qemu pins new versions of firmware blobs:"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
ewarn " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
ewarn " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
ewarn " $(best_version sys-firmware/ipxe)"
|
||||
ewarn " $(best_version sys-firmware/sgabios)"
|
||||
ewarn "This might break resume of hibernated guests (started with a different"
|
||||
ewarn "firmware version) and live migration to/from qemu versions with different"
|
||||
ewarn "firmware. Please (cold) restart all running guests. For functional"
|
||||
ewarn "guest migration ensure that all"
|
||||
ewarn "hosts run at least"
|
||||
ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_info() {
|
||||
echo "Using:"
|
||||
echo " $(best_version app-emulation/spice-protocol)"
|
||||
|
||||
if has_version 'sys-firmware/edk2-ovmf-bin'; then
|
||||
echo " $(best_version sys-firmware/edk2-ovmf-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/edk2-ovmf)"
|
||||
fi
|
||||
|
||||
if has_version 'sys-firmware/seabios-bin'; then
|
||||
echo " $(best_version sys-firmware/seabios-bin)"
|
||||
else
|
||||
echo " $(best_version sys-firmware/seabios)"
|
||||
fi
|
||||
|
||||
echo " $(best_version sys-firmware/ipxe)"
|
||||
echo " $(best_version sys-firmware/sgabios)"
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
xdg_icon_cache_update
|
||||
udev_reload
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue