diff options
Diffstat (limited to 'app-emulation')
831 files changed, 40668 insertions, 27987 deletions
diff --git a/app-emulation/86Box/86Box-4.0.1-r1.ebuild b/app-emulation/86Box/86Box-4.0.1-r1.ebuild new file mode 100644 index 000000000000..9945e8bf8d6e --- /dev/null +++ b/app-emulation/86Box/86Box-4.0.1-r1.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +DESCRIPTION="Emulator of x86-based machines based on PCem" +HOMEPAGE="https://github.com/86Box/86Box" +SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="dinput experimental +fluidsynth +munt new-dynarec +openal qt5 +qt6 +threads" + +DEPEND=" + app-emulation/faudio + dev-libs/libevdev + media-libs/freetype:2= + media-libs/libpng:= + media-libs/libsdl2 + media-libs/openal + media-libs/rtmidi + net-libs/libslirp + sys-libs/zlib + qt5? ( x11-libs/libXi ) + qt6? ( x11-libs/libXi ) +" + +RDEPEND=" + ${DEPEND} + fluidsynth? ( media-sound/fluidsynth ) + munt? ( media-libs/munt-mt32emu ) + openal? ( media-libs/openal ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qttranslations:5 + dev-qt/qtwidgets:5 + kde-frameworks/extra-cmake-modules + ) + qt6? ( + dev-qt/qtbase:6[gui,network,opengl,widgets] + dev-qt/qttranslations:6 + kde-frameworks/extra-cmake-modules + ) +" + +BDEPEND="virtual/pkgconfig" + +PATCHES=( "${FILESDIR}/${PN}-4.0.1-incompatible-pointer-types.patch" ) + +src_configure() { + # LTO needs to be filtered + # See https://bugs.gentoo.org/854507 + filter-lto + append-flags -fno-strict-aliasing + + local mycmakeargs=( + -DCPPTHREADS="$(usex threads)" + -DDEV_BRANCH="$(usex experimental)" + -DDINPUT="$(usex dinput)" + -DDYNAREC="ON" + -DMUNT_EXTERNAL="$(usex munt)" + -DFLUIDSYNTH="$(usex fluidsynth)" + -DMINITRACE="OFF" + -DMUNT="$(usex munt)" + -DNEW_DYNAREC="$(usex new-dynarec)" + -DOPENAL="$(usex openal)" + -DPREFER_STATIC="OFF" + -DRTMIDI="ON" + -DQT="$(usex qt5 'ON' $(usex qt6))" + -DRELEASE="ON" + $(usex qt6 '-DUSE_QT6=ON') + ) + + cmake_src_configure +} + +pkg_postinst() { + elog "In order to use 86Box, you will need some roms for various emulated systems." + elog "See https://github.com/86Box/roms for more information." +} diff --git a/app-emulation/86Box/86Box-4.1.1-r1.ebuild b/app-emulation/86Box/86Box-4.1.1-r1.ebuild new file mode 100644 index 000000000000..1acbe1d341bd --- /dev/null +++ b/app-emulation/86Box/86Box-4.1.1-r1.ebuild @@ -0,0 +1,83 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +DESCRIPTION="Emulator of x86-based machines based on PCem" +HOMEPAGE="https://github.com/86Box/86Box" +SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="experimental +fluidsynth +munt new-dynarec +openal qt5 +qt6 +threads" + +DEPEND=" + app-emulation/faudio + dev-libs/libevdev + media-libs/freetype:2= + media-libs/libpng:= + media-libs/libsdl2 + media-libs/openal + media-libs/rtmidi + net-libs/libslirp + sys-libs/zlib + qt5? ( x11-libs/libXi ) + qt6? ( x11-libs/libXi ) +" + +RDEPEND=" + ${DEPEND} + fluidsynth? ( media-sound/fluidsynth ) + munt? ( media-libs/munt-mt32emu ) + openal? ( media-libs/openal ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtopengl:5 + dev-qt/qttranslations:5 + dev-qt/qtwidgets:5 + kde-frameworks/extra-cmake-modules + ) + qt6? ( + dev-qt/qtbase:6[gui,network,opengl,widgets] + dev-qt/qttranslations:6 + kde-frameworks/extra-cmake-modules + ) +" + +BDEPEND="virtual/pkgconfig" + +src_configure() { + # LTO needs to be filtered + # See https://bugs.gentoo.org/854507 + filter-lto + append-flags -fno-strict-aliasing + + local mycmakeargs=( + -DCPPTHREADS="$(usex threads)" + -DDEV_BRANCH="$(usex experimental)" + -DDYNAREC="ON" + -DMUNT_EXTERNAL="$(usex munt)" + -DFLUIDSYNTH="$(usex fluidsynth)" + -DMINITRACE="OFF" + -DMUNT="$(usex munt)" + -DNEW_DYNAREC="$(usex new-dynarec)" + -DOPENAL="$(usex openal)" + -DPREFER_STATIC="OFF" + -DRTMIDI="ON" + -DQT="$(usex qt5 'ON' $(usex qt6))" + -DRELEASE="ON" + $(usex qt6 '-DUSE_QT6=ON') + ) + + cmake_src_configure +} + +pkg_postinst() { + elog "In order to use 86Box, you will need some roms for various emulated systems." + elog "See https://github.com/86Box/roms for more information." +} diff --git a/app-emulation/86Box/Manifest b/app-emulation/86Box/Manifest new file mode 100644 index 000000000000..afe37841ea36 --- /dev/null +++ b/app-emulation/86Box/Manifest @@ -0,0 +1,2 @@ +DIST 86Box-4.0.1.tar.gz 5206128 BLAKE2B 56a4d374757eb67368bbc5782bceca3f4dec79dd36fad6698065a86c3937238b352425dd856169a1a65a42a4f60f1a68b099ece4a7c019be4229d61fabfc444a SHA512 b06a8c50558276f35f98795e0513b5bd39eed3a0d3a8d61bf79b373501cd823ab3ab12fb943e879a240292bca39c507a1a42b1b6f3f9ae596499b685a03acf98 +DIST 86Box-4.1.1.tar.gz 5383817 BLAKE2B 04a03f039e3112e9dc02d25073afdf53d45603a71e27f8377309667917f30ef9f213cf0a7a6d8c2f4c2f1dd0fd73adfac3bbd8f0f9fc4b47fb2e9cbedffb4b6c SHA512 d1b0a1810f8712464ce8266942e9bfdc9721ab4ac70bbb242b3b06d6a7d6613b7bcb0ba730a2e458b2731c8d58e38c4b245b6f4afb5ee6c11ab4a2fb0dfd6d5e diff --git a/app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch b/app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch new file mode 100644 index 000000000000..df708d337b65 --- /dev/null +++ b/app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch @@ -0,0 +1,23 @@ +From 13d582b56faf9caca114ec5625b34a7859ecb41f Mon Sep 17 00:00:00 2001 +From: OBattler <oubattler@gmail.com> +Date: Fri, 5 Jan 2024 13:01:17 +0100 +Subject: [PATCH] Unix: Use proper parentheses to cast the result, not the + flags, fixes #3994. + +--- + src/unix/unix.c | 4 +--- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/unix/unix.c b/src/unix/unix.c +index e784df38e6..cfa8243135 100644 +--- a/src/unix/unix.c ++++ b/src/unix/unix.c +@@ -635,7 +635,7 @@ + SDL_MessageBoxData msgdata; + SDL_MessageBoxButtonData msgbtn; + if (!header) +- header = (void *) (flags & MBX_ANSI) ? "86Box" : L"86Box"; ++ header = (void *) ((flags & MBX_ANSI) ? "86Box" : L"86Box"); + if (header <= (void *) 7168) + header = (void *) plat_get_string((int) header); + if (message <= (void *) 7168) diff --git a/app-emulation/86Box/metadata.xml b/app-emulation/86Box/metadata.xml new file mode 100644 index 000000000000..a06647c003b6 --- /dev/null +++ b/app-emulation/86Box/metadata.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>conikost@gentoo.org</email> + <name>Conrad Kostecki</name> + </maintainer> + <longdescription> + 86Box is a low level x86 emulator that runs older operating systems and software + designed for IBM PC systems and compatibles from 1981 through + fairly recent system designs based on the PCI bus. + </longdescription> + <use> + <flag name="dinput">Enable legacy Dinput mode instead of Xinput for older controllers.</flag> + <flag name="experimental">Enable hardware from devbranch, which may be unstable or unusable.</flag> + <flag name="fluidsynth">Enable MIDI support through <pkg>media-sound/fluidsynth</pkg>.</flag> + <flag name="munt">Enable MIDI MT-32 support through <pkg>media-libs/munt-mt32emu</pkg>.</flag> + <flag name="new-dynarec">Enable new dynamic recompiler from PCem 15, which should provide an even better emulation speed.</flag> + </use> + <upstream> + <bugs-to>https://github.com/86Box/86Box/issues</bugs-to> + <remote-id type="github">86Box/86Box</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/aqemu/Manifest b/app-emulation/aqemu/Manifest deleted file mode 100644 index 966ea6c08330..000000000000 --- a/app-emulation/aqemu/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST aqemu-0.9.2.tar.gz 1373465 BLAKE2B 8b2b3ed311f8dd723a0d06ab74659514c6ccda67643c747af832f1677ab86ffcecde3607ead0b3410a310c38a2fe360a5ff187ef86b5953e4f5a5054a862c26c SHA512 9d4808172ee1be82509956560e4d3f9ee349fedd920342146083cc9bc79ef51fc95937c64f20ffb13e2849c577f95f59b5b65271d6e29e2d2e1ec2d1562006ba diff --git a/app-emulation/aqemu/aqemu-0.9.2.ebuild b/app-emulation/aqemu/aqemu-0.9.2.ebuild deleted file mode 100644 index 85102613981e..000000000000 --- a/app-emulation/aqemu/aqemu-0.9.2.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit cmake-utils - -DESCRIPTION="Graphical interface for QEMU and KVM emulators, using Qt5" -HOMEPAGE="https://sourceforge.net/projects/aqemu" -SRC_URI="https://github.com/tobimensch/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="vnc" - -RDEPEND="app-emulation/qemu - dev-qt/qtcore:5 - dev-qt/qtnetwork:5 - dev-qt/qtprintsupport:5 - dev-qt/qttest:5 - dev-qt/qtwidgets:5 - vnc? ( net-libs/libvncserver )" -DEPEND="${RDEPEND}" - -DOCS=( AUTHORS CHANGELOG README TODO ) -PATCHES=( "${FILESDIR}/${PN}-0.9.2-qtbindir.patch" ) - -src_configure() { - local mycmakeargs=( - "-DMAN_PAGE_COMPRESSOR=" - "-DWITHOUT_EMBEDDED_DISPLAY=$(usex vnc "OFF" "ON")" - ) - - cmake-utils_src_configure -} diff --git a/app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch b/app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch deleted file mode 100644 index 5c5548058427..000000000000 --- a/app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch +++ /dev/null @@ -1,15 +0,0 @@ -Ensure the Qt 5 version of rcc is used instead of whatever is in $PATH. - -Gentoo-bug: 589332 - ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -285,7 +285,7 @@ - - SET( _out ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.rcc ) - -- ADD_CUSTOM_COMMAND( OUTPUT ${_out} COMMAND rcc ARGS ${_in} -binary -o ${_out} DEPENDS ${_in} ) -+ ADD_CUSTOM_COMMAND( OUTPUT ${_out} COMMAND ${Qt5Core_RCC_EXECUTABLE} ARGS ${_in} -binary -o ${_out} DEPENDS ${_in} ) - - SET( ${_sources} ${${_sources}} ${_out} ) - ENDFOREACH( curFile ) diff --git a/app-emulation/aqemu/metadata.xml b/app-emulation/aqemu/metadata.xml deleted file mode 100644 index 4afc1191c4bb..000000000000 --- a/app-emulation/aqemu/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>maksbotan@gentoo.org</email> - </maintainer> - <upstream> - <remote-id type="sourceforge">aqemu</remote-id> - <remote-id type="github">tobimensch/aqemu</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/aranym/aranym-1.1.0.ebuild b/app-emulation/aranym/aranym-1.1.0-r1.ebuild index fe2c0f728ab6..f471b146140f 100644 --- a/app-emulation/aranym/aranym-1.1.0.ebuild +++ b/app-emulation/aranym/aranym-1.1.0-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit autotools multibuild xdg +inherit autotools flag-o-matic multibuild toolchain-funcs xdg DESCRIPTION="Atari Running on Any Machine, VM running Atari ST/TT/Falcon OS and TOS/GEM apps" HOMEPAGE="https://aranym.github.io" @@ -20,10 +20,10 @@ REQUIRED_USE="|| ( jit pmmu standard ) lilo? ( pmmu )" RDEPEND=" dev-libs/gmp:0= media-libs/libsdl2[video] - clipboard? ( !kernel_Winnt? ( + clipboard? ( media-libs/libsdl2[X] x11-libs/libX11 - ) ) + ) jpeg? ( virtual/jpeg ) kernel_linux? ( virtual/libudev ) lilo? ( sys-libs/zlib ) @@ -38,6 +38,11 @@ BDEPEND="virtual/pkgconfig" PATCHES=( "${FILESDIR}"/${PN}-1.1.0-conditional-installs.patch + "${FILESDIR}"/${PN}-1.1.0-libcwrap.patch + "${FILESDIR}"/${PN}-1.1.0-ar.patch + "${FILESDIR}"/${PN}-1.1.0-clang-16-register.patch + "${FILESDIR}"/${PN}-1.1.0-configure-clang16.patch + "${FILESDIR}"/${PN}-1.1.0-configure-bashisms.patch ) ECONF_SOURCE="${S}" @@ -49,6 +54,16 @@ src_prepare() { } src_configure() { + # configure probe fatally errors out since it tries to peek at LTO'ed code using grep + # https://bugs.gentoo.org/854510 + # https://github.com/aranym/aranym/commit/52c56bba30ddea27a0a7179da89cac1c71228de6 + # + # Fixed in git master. Try removing this on the next version bump. + filter-lto + + tc-export_build_env + export CC_FOR_BUILD=$(tc-getBUILD_CC) CXX_FOR_BUILD=$(tc-getBUILD_CXX) + # standard must come last otherwise the aranym executable gets # overwritten by the others. MULTIBUILD_VARIANTS=( diff --git a/app-emulation/aranym/files/aranym-1.1.0-ar.patch b/app-emulation/aranym/files/aranym-1.1.0-ar.patch new file mode 100644 index 000000000000..55026a626334 --- /dev/null +++ b/app-emulation/aranym/files/aranym-1.1.0-ar.patch @@ -0,0 +1,24 @@ +From 9d8586fe8b0f210b2a2d3f5e6f710993015945aa Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Sat, 16 Apr 2022 21:51:04 +0100 +Subject: [PATCH] Respect the AR environment variable when building + +--- + configure.ac | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.ac b/configure.ac +index 14eedb5f..8d425dee 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -371,6 +371,7 @@ AC_PROG_MAKE_SET + AC_PROG_INSTALL + AC_PROG_MKDIR_P + AC_PROG_RANLIB ++AM_PROG_AR + AC_PATH_PROG(PERL, perl) + AC_CHECK_TOOLS(WINDRES, [windres], :) + PKG_PROG_PKG_CONFIG +-- +2.34.1 + diff --git a/app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch b/app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch new file mode 100644 index 000000000000..2adc5fb3c1fe --- /dev/null +++ b/app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch @@ -0,0 +1,219 @@ +https://bugs.gentoo.org/894446 +https://github.com/aranym/aranym/commit/e19e21151d5e394dd45d4db08e68245e86e32ab7 +https://github.com/aranym/aranym/commit/64414e43deebc665772481d802b6c1c88d752ac3 + +From e19e21151d5e394dd45d4db08e68245e86e32ab7 Mon Sep 17 00:00:00 2001 +From: Thorsten Otto <admin@tho-otto.de> +Date: Tue, 2 Aug 2022 18:12:19 +0200 +Subject: [PATCH] Remove obsolete register keywords + +--- a/src/blitter.cpp ++++ b/src/blitter.cpp +@@ -114,8 +114,8 @@ void BLITTER::SM_UW(memptr addr, UW value) { + #define HOP_OPS(_fn_name,_op,_do_source_shift,_get_source_data,_shifted_hopd_data, _do_halftone_inc) \ + static void _fn_name ( BLITTER& b ) \ + { \ +- register unsigned int skew = (unsigned int) b.skewreg & 15; \ +- register unsigned int source_buffer=0; \ ++ unsigned int skew = b.skewreg & 15; \ ++ unsigned int source_buffer=0; \ + if (b.hop & 1) { \ + if (b.line_num & 0x20) \ + b.halftone_curroffset = b.skewreg & 15; \ +@@ -127,7 +127,7 @@ static void _fn_name ( BLITTER& b ) \ + b.halftone_direction = -1; \ + } \ + do \ +- { register UW x,dst_data,opd_data; \ ++ { UW x,dst_data,opd_data; \ + if (b.FXSR) \ + { _do_source_shift; \ + _get_source_data; \ +--- a/src/md5.cpp ++++ b/src/md5.cpp +@@ -168,7 +168,7 @@ MD5::MD5Final(md5byte digest[16]) + void + MD5::MD5Transform(UWORD32 buf[4], UWORD32 const in[16]) + { +- register UWORD32 a, b, c, d; ++ UWORD32 a, b, c, d; + + a = buf[0]; + b = buf[1]; + +From 64414e43deebc665772481d802b6c1c88d752ac3 Mon Sep 17 00:00:00 2001 +From: Thorsten Otto <admin@tho-otto.de> +Date: Tue, 9 Aug 2022 09:17:31 +0200 +Subject: [PATCH] Remove more obsolete register keywords + +--- a/src/disasm/disasm-builtin.cpp ++++ b/src/disasm/disasm-builtin.cpp +@@ -277,7 +277,7 @@ static const char *const bitfieldtable[] = + + static void ps(m68k_disasm_info *info, const char *str) + { +- register char c; ++ char c; + + while ((c = *str++) != '\0') + { +@@ -486,7 +486,7 @@ static void oadi(m68k_disasm_info *info, int regnum) + + static int os(m68k_disasm_info *info, int opcode) + { +- register int size; ++ int size; + + size = insize(opcode); + sputc('.'); +@@ -501,7 +501,7 @@ static int os(m68k_disasm_info *info, int opcode) + + static int os2(m68k_disasm_info *info, int opcode) + { +- register int size; ++ int size; + + size = (opcode >> 9) & 3; + sputc('.'); +@@ -968,10 +968,10 @@ static void doextended(m68k_disasm_info *info, int opcode2, int srcr) + + static void doea(m68k_disasm_info *info, int opcode, int size) + { +- register int srcr; +- register int opcode2; ++ int srcr; ++ int opcode2; + uae_s32 offset; +- register uae_s32 adr; ++ uae_s32 adr; + + srcr = srcreg(opcode); + switch (srcmod(opcode)) +@@ -1071,7 +1071,7 @@ static void doea(m68k_disasm_info *info, int opcode, int size) + + static void reglist(m68k_disasm_info *info, int regmask) + { +- register int regnum; ++ int regnum; + int liststart; + int lastreg; + int status; +@@ -1113,8 +1113,8 @@ static void reglist(m68k_disasm_info *info, int regmask) + + static int revbits(int mask, int n) + { +- register int i; +- register int newmask; ++ int i; ++ int newmask; + + for (newmask = 0, i = n; i > 0; i--) + { +@@ -1390,7 +1390,7 @@ static void group0(m68k_disasm_info *info, int opcode) + + static void group11(m68k_disasm_info *info, int opcode) + { +- register int size; ++ int size; + + if ((opcode & 0x0100) != 0 && insize(opcode) != 3) + { +@@ -1441,7 +1441,7 @@ static void group11(m68k_disasm_info *info, int opcode) + + static void group1(m68k_disasm_info *info, int opcode) + { +- register int size = 0; ++ int size = 0; + + ps(info, "move"); + if (dstmod(opcode) == 1) +@@ -1475,7 +1475,7 @@ static void group1(m68k_disasm_info *info, int opcode) + + static void group14(m68k_disasm_info *info, int opcode) + { +- register short size; ++ short size; + unsigned int opcode2; + unsigned int bf; + +@@ -2069,7 +2069,7 @@ static enum fpu_size print_fpsize(m68k_disasm_info *info, int mask) + static void print_freglist(m68k_disasm_info *info, int regmask, int mode, bool cntl) + { + const char *const * regs; +- register int regnum; ++ int regnum; + int liststart; + int lastreg; + int status; +@@ -3011,8 +3011,8 @@ static void pspreg(m68k_disasm_info *info, int mask) + + static void group4(m68k_disasm_info *info, int opcode) + { +- register int mask; +- register int size; ++ int mask; ++ int size; + + if (opcode & 0x0100) + { +@@ -3540,7 +3540,7 @@ static void group4(m68k_disasm_info *info, int opcode) + + static void group5(m68k_disasm_info *info, int opcode) + { +- register uae_s32 adr; ++ uae_s32 adr; + + if (insize(opcode) == 3) + { +@@ -3603,9 +3603,9 @@ static void group5(m68k_disasm_info *info, int opcode) + + static void group6(m68k_disasm_info *info, int opcode) + { +- register uae_s32 adr; +- register int cond; +- register signed char dist; ++ uae_s32 adr; ++ int cond; ++ signed char dist; + + /* 0110 cccc dddddddd */ + switch (cond = (opcode >> 8) & 0x000f) +@@ -3686,7 +3686,7 @@ static void group7(m68k_disasm_info *info, int opcode) + + static void g812(m68k_disasm_info *info, int opcode, const char *andor, const char *muldiv, const char *as) + { +- register int size; ++ int size; + + info->num_oper = 2; + if (dstmod(opcode) == 3) +@@ -3772,7 +3772,7 @@ static void group8(m68k_disasm_info *info, int opcode) + + static void group12(m68k_disasm_info *info, int opcode) + { +- register int d5; ++ int d5; + + if ((d5 = (opcode >> 3) & 0x003f) == 0x0028) + { +@@ -3813,7 +3813,7 @@ static void group12(m68k_disasm_info *info, int opcode) + + static void g913(m68k_disasm_info *info, int opcode, const char *addsub) + { +- register int size; ++ int size; + + ps(info, addsub); + if ((opcode & 0x0100) != 0 && insize(opcode) != 3 && ((opcode >> 4) & 3) == 0) +@@ -4125,8 +4125,8 @@ static void (*const grphdlrs[])(m68k_disasm_info *, int) = { + + int m68k_disasm_builtin(m68k_disasm_info *info) + { +- register int opcode; +- register void (*hdlr)(m68k_disasm_info *info, int opcode); ++ int opcode; ++ void (*hdlr)(m68k_disasm_info *info, int opcode); + unsigned int insn_size; + struct priv_data *priv; + + diff --git a/app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch b/app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch new file mode 100644 index 000000000000..f2a453095a52 --- /dev/null +++ b/app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch @@ -0,0 +1,37 @@ +https://github.com/aranym/aranym/pull/102 + +From 1a45b77ee2eaabc53fef0794c0e3a64a7c41683e Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sun, 19 Mar 2023 02:05:09 +0000 +Subject: [PATCH] configure.ac: fix bashisms + +configure scripts need to be runnable with a POSIX-compliant /bin/sh. + +On many (but not all!) systems, /bin/sh is provided by Bash, so errors +like this aren't spotted. Notably Debian defaults to /bin/sh provided +by dash which doesn't tolerate such bashisms as '=='. + +This retains compatibility with bash. +--- a/configure.ac ++++ b/configure.ac +@@ -1714,7 +1714,7 @@ SDL_CFLAGS= + SDL_LIBS= + no_sdl=yes + no_sdl2=yes +-if test "$OS_TYPE" == darwin -a "$WITH_FINK" = no; then ++if test "$OS_TYPE" = darwin -a "$WITH_FINK" = no; then + ARANYM_CHECK_FRAMEWORK(SDL, []) + if test "$have_framework_SDL" = yes ; then + ARANYM_CHECK_FRAMEWORK_LOCATION(SDL) +@@ -1781,7 +1781,7 @@ SDL_LIBS="$SDL_LIBS -lpthread" + AM_CONDITIONAL([ENABLE_SDL2], test "$enable_sdl2" = yes) + # + # SDL2 on macOS needs 10.6 or above +-if test "$enable_sdl2" = yes -a "$OS_TYPE" == darwin; then ++if test "$enable_sdl2" = yes -a "$OS_TYPE" = darwin; then + export MACOSX_DEPLOYMENT_TARGET=10.6 + fi + +-- +2.40.0 + diff --git a/app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch b/app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch new file mode 100644 index 000000000000..66d2c091b860 --- /dev/null +++ b/app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch @@ -0,0 +1,30 @@ +https://github.com/aranym/aranym/pull/102 + +From ef9ba74fcbf868aeb1b0e0b02e53775a14cda0f7 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sun, 19 Mar 2023 01:56:56 +0000 +Subject: [PATCH] configure.ac: fix -Wimplicit-function-declaration in TUN/TAP + test + +Clang 16 makes -Wimplicit-function-declaration an error by default. + +Unfortunately, this can lead to misconfiguration or miscompilation of software as configure +tests may then return the wrong result. + +For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2], +or the (new) c-std-porting mailing list [3]. + +[0] https://lwn.net/Articles/913505/ +[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213 +[2] https://wiki.gentoo.org/wiki/Modern_C_porting +[3] hosted at lists.linux.dev. +--- a/configure.ac ++++ b/configure.ac +@@ -539,6 +539,7 @@ AC_CACHE_CHECK([whether TUN/TAP is supported], + #include <net/if.h> + #include <net/if_tun.h> + #endif ++ #include <string.h> + ], [ + struct ifreq ifr; + memset(&ifr, 0, sizeof(ifr)); diff --git a/app-emulation/aranym/files/aranym-1.1.0-libcwrap.patch b/app-emulation/aranym/files/aranym-1.1.0-libcwrap.patch new file mode 100644 index 000000000000..39ef32c7cc41 --- /dev/null +++ b/app-emulation/aranym/files/aranym-1.1.0-libcwrap.patch @@ -0,0 +1,24 @@ +From baa00c51d3cd63602912ee1b252fa774a43b042f Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Sat, 16 Apr 2022 10:41:44 +0100 +Subject: [PATCH] Use libcwrap.h specifically with glibc, not just Linux, to + fix musl + +--- + src/include/linux/libcwrap.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/include/linux/libcwrap.h b/src/include/linux/libcwrap.h +index f68bafb1..9c5c6b8e 100644 +--- a/src/include/linux/libcwrap.h ++++ b/src/include/linux/libcwrap.h +@@ -1,5 +1,5 @@ + /* glibc bindings for target ABI version glibc 2.11 */ +-#if defined(__linux__) && !defined (__LIBC_CUSTOM_BINDINGS_H__) && !defined(__ANDROID__) ++#if defined(__GLIBC__) && defined(__linux__) && !defined (__LIBC_CUSTOM_BINDINGS_H__) && !defined(__ANDROID__) + + #if defined (__cplusplus) + extern "C" { +-- +2.34.1 + diff --git a/app-emulation/aranym/metadata.xml b/app-emulation/aranym/metadata.xml index a9d26d2bbfb7..34e1093dcb4b 100644 --- a/app-emulation/aranym/metadata.xml +++ b/app-emulation/aranym/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>chewi@gentoo.org</email> diff --git a/app-emulation/bochs/Manifest b/app-emulation/bochs/Manifest index f01ca66acfe9..37499a1033c0 100644 --- a/app-emulation/bochs/Manifest +++ b/app-emulation/bochs/Manifest @@ -1,2 +1,2 @@ DIST bochs-2.6.10.tar.gz 5282176 BLAKE2B 9f75d5afd6bad9f91eb18dc0bd5c9ed998bf12077d3e8d944769055f0def1eed019756346071d3809d492c54177ec798e739259ee13f67ff4760744377dc877c SHA512 eff422cadc3e0db7a47c4015a59ca0fa8caf88ed3026706c1f766e802449ec8e4798e5f147a583e1cfbbc578f71da8800542c0e1f4d04bc2dea77955855e8689 -DIST bochs-2.6.9.tar.gz 5169187 BLAKE2B 49824a96a48294d8d507bc15128103e9c2839515554657d282c7c9533aa299cb6289581e760ea40a6c659adfb7ebdac0d273d2a9e7b598c95b145d65e8cdc977 SHA512 dfecf3a1bad07f06c2f7bb989d146e4a8eaeca493b598d415f5a4aec2a85eb5524ba417422157608c8b0828832611df487c6923c8f4ad98a147ac089fc514c46 +DIST bochs-2.7.tar.gz 5298413 BLAKE2B 570ac0fec74b8e79a8e78d32a1a8655b8e3a202a3247407a45b66991598486bd6c566711a1f8e18e717d4f2119b82ae03bf4a792eebdd25a6e7ca4dedb3901ab SHA512 d43bd557316dc370ba1c317f5c3292f724460515db01316614b2d585b2760120cadd1d27a286083ac3e6f57466ed889959abd7fe960c219c149dab9a053c6967 diff --git a/app-emulation/bochs/bochs-2.6.10.ebuild b/app-emulation/bochs/bochs-2.6.10.ebuild index c4f9fde9ba89..65f52e4ec67a 100644 --- a/app-emulation/bochs/bochs-2.6.10.ebuild +++ b/app-emulation/bochs/bochs-2.6.10.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -33,7 +33,6 @@ DEPEND="${RDEPEND} " BDEPEND=" doc? ( app-text/docbook-sgml-utils ) - sys-apps/sed >=app-text/opensp-1.5 " diff --git a/app-emulation/bochs/bochs-2.6.9.ebuild b/app-emulation/bochs/bochs-2.7.ebuild index 80e103e7f589..0191aeeca226 100644 --- a/app-emulation/bochs/bochs-2.6.9.ebuild +++ b/app-emulation/bochs/bochs-2.7.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 DESCRIPTION="LGPL-ed pc emulator" HOMEPAGE="http://bochs.sourceforge.net/" @@ -11,7 +11,7 @@ LICENSE="LGPL-2.1" SLOT="0" KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86" -IUSE="3dnow avx debugger doc gdb ncurses readline svga sdl +smp vnc X +x86-64" +IUSE="3dnow avx debugger doc gdb ncurses readline sdl +smp vnc X +x86-64" REQUIRED_USE=" avx? ( x86-64 ) gdb? ( !debugger !smp ) @@ -19,24 +19,27 @@ REQUIRED_USE=" " RDEPEND=" - X? ( x11-libs/libICE + ncurses? ( sys-libs/ncurses:= ) + readline? ( sys-libs/readline:= ) + sdl? ( media-libs/libsdl ) + X? ( + x11-libs/libICE x11-libs/libSM x11-libs/libX11 - x11-libs/libXpm ) - sdl? ( media-libs/libsdl ) - svga? ( media-libs/svgalib ) - readline? ( sys-libs/readline:= ) - ncurses? ( sys-libs/ncurses:= ) + x11-libs/libXpm + ) " DEPEND="${RDEPEND} - doc? ( app-text/docbook-sgml-utils ) X? ( x11-base/xorg-proto ) - sys-apps/sed +" +BDEPEND=" >=app-text/opensp-1.5 + doc? ( app-text/docbook-sgml-utils ) " src_prepare() { default + sed -i "s:^docdir.*:docdir = ${EPREFIX}/usr/share/doc/${PF}:" \ Makefile.in || die } @@ -48,7 +51,6 @@ src_configure() { --enable-cdrom \ --enable-clgd54xx \ --enable-cpu-level=6 \ - --enable-disasm \ --enable-e1000 \ --enable-gameport \ --enable-iodebug \ @@ -75,9 +77,7 @@ src_configure() { $(use_enable x86-64) \ $(use_with ncurses term) \ $(use_with sdl) \ - $(use_with svga) \ $(use_with vnc rfb) \ $(use_with X x) \ - $(use_with X x11) \ - ${myconf} + $(use_with X x11) } diff --git a/app-emulation/bochs/bochs-9999.ebuild b/app-emulation/bochs/bochs-9999.ebuild index fa7208ddc58f..2ddaf54249b1 100644 --- a/app-emulation/bochs/bochs-9999.ebuild +++ b/app-emulation/bochs/bochs-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -12,9 +12,8 @@ ESVN_REPO_URI="svn://svn.code.sf.net/p/bochs/code/trunk/bochs" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="" -IUSE="3dnow avx debugger doc gdb ncurses readline svga sdl +smp vnc X +x86-64" +IUSE="3dnow avx debugger doc gdb ncurses readline sdl +smp vnc X +x86-64" REQUIRED_USE=" avx? ( x86-64 ) gdb? ( !debugger !smp ) @@ -22,26 +21,27 @@ REQUIRED_USE=" " RDEPEND=" - X? ( x11-libs/libICE + ncurses? ( sys-libs/ncurses:= ) + readline? ( sys-libs/readline:= ) + sdl? ( media-libs/libsdl ) + X? ( + x11-libs/libICE x11-libs/libSM x11-libs/libX11 - x11-libs/libXpm ) - sdl? ( media-libs/libsdl ) - svga? ( media-libs/svgalib ) - readline? ( sys-libs/readline:= ) - ncurses? ( sys-libs/ncurses:= ) + x11-libs/libXpm + ) " DEPEND="${RDEPEND} X? ( x11-base/xorg-proto ) " BDEPEND=" - doc? ( app-text/docbook-sgml-utils ) - sys-apps/sed >=app-text/opensp-1.5 + doc? ( app-text/docbook-sgml-utils ) " src_prepare() { default + sed -i "s:^docdir.*:docdir = ${EPREFIX}/usr/share/doc/${PF}:" \ Makefile.in || die } @@ -53,7 +53,6 @@ src_configure() { --enable-cdrom \ --enable-clgd54xx \ --enable-cpu-level=6 \ - --enable-disasm \ --enable-e1000 \ --enable-gameport \ --enable-iodebug \ @@ -80,9 +79,7 @@ src_configure() { $(use_enable x86-64) \ $(use_with ncurses term) \ $(use_with sdl) \ - $(use_with svga) \ $(use_with vnc rfb) \ $(use_with X x) \ - $(use_with X x11) \ - ${myconf} + $(use_with X x11) } diff --git a/app-emulation/bochs/metadata.xml b/app-emulation/bochs/metadata.xml index 4e953a303483..41f8336a25e7 100644 --- a/app-emulation/bochs/metadata.xml +++ b/app-emulation/bochs/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>lu_zero@gentoo.org</email> diff --git a/app-emulation/buildah/Manifest b/app-emulation/buildah/Manifest deleted file mode 100644 index 37a7c8f236f6..000000000000 --- a/app-emulation/buildah/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST buildah-1.14.11.tar.gz 10660686 BLAKE2B ae24982b2da66b536a0bbba21d07da8c54af7726e065545c2ab6167395ec45f7298c25811ab0e2aec5ffccd084557107313baa36f873327d7b520a61dd8081af SHA512 6522ef39cdf6166ddb6eca6e43025953d025b92a677055ec026f4e163b0bb4b3334e20369e5850593189822c74fe82e39807ea387ad22ee64b3557bbaf8e30ce -DIST buildah-1.15.1.tar.gz 10344892 BLAKE2B e84f8d245536f8864f057f576d92c218420ac975fabfbdc8b6bf591c2ef43494d49fe9095320a07de450f2ea64d046aa4ad680f08be80210e0dce1ffa874a286 SHA512 61cbe91867dc664a9e76b367e0f99bf5c797c68dda7182ed43c6a6a5a72a0f0519e45db6b2746b26933d829834757cc93bdbd30c62ce6a947ee546dbc1f930be -DIST buildah-1.16.1.tar.gz 10525480 BLAKE2B d7a174049b9a99d11fa31a1b52fa6acfe037197171c7112607d755c788509b0798af315d1fde5c229bd6e029fdd3e57ae93042044f373d4ff63fcb121264730d SHA512 c17358d71e9102ef5da530df54648eaa13a1384b06cd43fe74094cdbaa2dfda6aa6d1a218fb88e12898ae4b9dca2d8c555643326779c5f09b6a118f0a440d17a diff --git a/app-emulation/buildah/buildah-1.14.11.ebuild b/app-emulation/buildah/buildah-1.14.11.ebuild deleted file mode 100644 index 717adf3f3541..000000000000 --- a/app-emulation/buildah/buildah-1.14.11.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit bash-completion-r1 go-module - -KEYWORDS="~amd64" -DESCRIPTION="A tool that facilitates building OCI images" -HOMEPAGE="https://github.com/containers/buildah" -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -IUSE="selinux" -EGIT_COMMIT="v${PV}" -GIT_COMMIT=7a921ff79b -SRC_URI="https://github.com/containers/buildah/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -RDEPEND="app-crypt/gpgme:= - app-emulation/skopeo - dev-libs/libgpg-error:= - dev-libs/libassuan:= - sys-fs/lvm2:= - sys-libs/libseccomp:= - selinux? ( sys-libs/libselinux:= )" -DEPEND="${RDEPEND}" -RESTRICT+=" test" - -src_prepare() { - default - [[ -f selinux_tag.sh ]] || die - use selinux || { echo -e "#!/bin/sh\ntrue" > \ - selinux_tag.sh || die; } -} - -src_compile() { - emake GIT_COMMIT=${GIT_COMMIT} all -} - -src_install() { - dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md - doman docs/*.1 - dodoc -r docs/tutorials - dobin ${PN} imgtype - dobashcomp contrib/completions/bash/buildah -} - -src_test() { - emake test-unit -} diff --git a/app-emulation/buildah/buildah-1.15.1.ebuild b/app-emulation/buildah/buildah-1.15.1.ebuild deleted file mode 100644 index ef3db50fcacf..000000000000 --- a/app-emulation/buildah/buildah-1.15.1.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit bash-completion-r1 go-module - -KEYWORDS="~amd64 ~arm64" -DESCRIPTION="A tool that facilitates building OCI images" -HOMEPAGE="https://github.com/containers/buildah" -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -IUSE="selinux" -EGIT_COMMIT="v${PV}" -GIT_COMMIT=c967e88ef6 -SRC_URI="https://github.com/containers/buildah/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -RDEPEND="app-crypt/gpgme:= - app-emulation/skopeo - dev-libs/libgpg-error:= - dev-libs/libassuan:= - sys-fs/lvm2:= - sys-libs/libseccomp:= - selinux? ( sys-libs/libselinux:= )" -DEPEND="${RDEPEND}" -RESTRICT+=" test" - -src_prepare() { - default - [[ -f selinux_tag.sh ]] || die - use selinux || { echo -e "#!/bin/sh\ntrue" > \ - selinux_tag.sh || die; } -} - -src_compile() { - emake GIT_COMMIT=${GIT_COMMIT} all -} - -src_install() { - dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md - doman docs/*.1 - dodoc -r docs/tutorials - dobin ${PN} imgtype - dobashcomp contrib/completions/bash/buildah -} - -src_test() { - emake test-unit -} diff --git a/app-emulation/buildah/buildah-1.16.1.ebuild b/app-emulation/buildah/buildah-1.16.1.ebuild deleted file mode 100644 index 1389caa53b6a..000000000000 --- a/app-emulation/buildah/buildah-1.16.1.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit bash-completion-r1 go-module - -KEYWORDS="~amd64 ~arm64" -DESCRIPTION="A tool that facilitates building OCI images" -HOMEPAGE="https://github.com/containers/buildah" -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -IUSE="selinux" -EGIT_COMMIT="v${PV}" -GIT_COMMIT=0de2694a2e -SRC_URI="https://github.com/containers/buildah/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -RDEPEND="app-crypt/gpgme:= - app-emulation/skopeo - dev-libs/libgpg-error:= - dev-libs/libassuan:= - sys-fs/lvm2:= - sys-libs/libseccomp:= - selinux? ( sys-libs/libselinux:= )" -DEPEND="${RDEPEND}" -RESTRICT+=" test" - -src_prepare() { - default - [[ -f selinux_tag.sh ]] || die - use selinux || { echo -e "#!/bin/sh\ntrue" > \ - selinux_tag.sh || die; } -} - -src_compile() { - emake GIT_COMMIT=${GIT_COMMIT} all -} - -src_install() { - dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md - doman docs/*.1 - dodoc -r docs/tutorials - dobin bin/{${PN},imgtype} - dobashcomp contrib/completions/bash/buildah -} - -src_test() { - emake test-unit -} diff --git a/app-emulation/buildah/metadata.xml b/app-emulation/buildah/metadata.xml deleted file mode 100644 index 491730ac55c1..000000000000 --- a/app-emulation/buildah/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - <name>Zac Medico</name> - </maintainer> - <upstream> - <remote-id type="github">containers/buildah</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/cadvisor/Manifest b/app-emulation/cadvisor/Manifest deleted file mode 100644 index c86bf301824f..000000000000 --- a/app-emulation/cadvisor/Manifest +++ /dev/null @@ -1,410 +0,0 @@ -DIST bazil.org%2Ffuse%2F@v%2Fv0.0.0-20160811212531-371fbbdaa898.mod 22 BLAKE2B c2b56c0b043a2c0225c3b4142f179a2d2e4938dad64b95c8662a6d641e69a455b50ed79c66a3bcc10982792d3b7742ac96a2d74eefa7fec40a7c3146e5c949cd SHA512 7b3ef87f98485bb9ec325680f57d43a9bd76e90bdcfb1e798458f28f7d3addf91dbb6a07b654749468860981413ad2267df2d5f3535c85579e9f79d9328d355c -DIST cadvisor-0.36.0.tar.gz 6182273 BLAKE2B 0406bd88c6595f23de06be1e63e7c0affda7f94a3bbbb1b9e390f2747fdd3ef3199622a5003b79ed083a0cd80e6c013d7776e18269044150dafb98341c54425b SHA512 2da8a2e81d33b97e6f7c5ba3982e51b6d87748b138345ff94eb7671df851f0a535ceeef61358b0ee43bc161a88becdb153065bd7ff8fc9d7c390a4629ad10f02 -DIST cloud.google.com%2Fgo%2F@v%2Fv0.1.1-0.20160913182117-3b1ae45394a2.mod 27 BLAKE2B 814b0fa8f12d5ce6171fa629b5a7eb34e0e882cc0c5430986896bb38c243e08dc83098f271227f4ba019e78f16dc97fbb381e833aff1819833d243b08add916b SHA512 5132f3438533427c0ab0fbb7a12112a7830ea9122662ed46019ff89c71d9cf80c02edc32dd5c892da572031b5a2cce100f2602fa6a19bea6be7c02781f701273 -DIST cloud.google.com%2Fgo%2F@v%2Fv0.1.1-0.20160913182117-3b1ae45394a2.zip 889396 BLAKE2B 37e1420148340c6d59d3bdc554c8d92ccce4dc145403915d067fe18966fa8baea5a3090714dc8d27c8c24831ca71213c11f1c719d0044647f887590a9b5bcc62 SHA512 f5d89d8eed8a58bfba541ab1102db390e6b4e7ce181f9d6e166c03685cedb1974169b298074bf8c5b2ac7c1e965e0e9794d379a9bb6537a3a11deab41fbec772 -DIST cloud.google.com%2Fgo%2F@v%2Fv0.26.0.mod 27 BLAKE2B 814b0fa8f12d5ce6171fa629b5a7eb34e0e882cc0c5430986896bb38c243e08dc83098f271227f4ba019e78f16dc97fbb381e833aff1819833d243b08add916b SHA512 5132f3438533427c0ab0fbb7a12112a7830ea9122662ed46019ff89c71d9cf80c02edc32dd5c892da572031b5a2cce100f2602fa6a19bea6be7c02781f701273 -DIST cloud.google.com%2Fgo%2F@v%2Fv0.26.0.zip 2508208 BLAKE2B d17c22f3d8e3f0b52bab350e86c8fe29ea474e104ba89e3238e71dbd29139717a0d26586589f47303da4eb743fe86a76f727b772707584aba5bf76d8f5ef1969 SHA512 6dc6f4229011d8606e1eb3c046640f6938dae2e12a1b0a9e2a22b7d26b4ab50051cee09d17fc05298ef5d4901a6b7e12d4b06b8b8eac6b1e71442653eb25b541 -DIST github.com%2F!azure%2Fgo-ansiterm%2F@v%2Fv0.0.0-20170929234023-d6e3b3328b78.mod 36 BLAKE2B 52a2c5272e004524397df00dfa03b4c2d2ebd985a0c974236aad6b847d6b2b4b7c9b69ef48e263f4c67983b845b020d2004fe749b46fee3c0525da0416b20f3e SHA512 350a16c68553738ce8c2f4a6ac8beba66a7dcf2386a42aff938ebaa3bdc526bda8e5c51c493331eda4666cbcf8411ee7ca3aeb0768cc4f557f34585960f9eb84 -DIST github.com%2F!azure%2Fgo-ansiterm%2F@v%2Fv0.0.0-20170929234023-d6e3b3328b78.zip 32735 BLAKE2B 5de266d7400ae80c027f209cea91c911e22b0ff4fc6a2e964e8906f1a86cc6905b9c12d2588d5fdc91d0d8e9501a0ddf2f7a376cca9935d21943386c3ef31979 SHA512 72621865ffc0cadd27603e2f4032f1cd9c9d8bdcb920b3ca9fd02dbf88e52876a6f092c5b74eceb136021c514b68dc599f0cbbf18ed1620b827d46462aa55e32 -DIST github.com%2F!burnt!sushi%2Ftoml%2F@v%2Fv0.3.1.mod 34 BLAKE2B ce54a247aef91043830bdf0603c8452ba38eceb1495af6e7a74c9119234a0dc5cd080cb25258c28f5e270acf91189a5ed33e361cbf17de2be5e37dadbda1d90d SHA512 320941bc3b7fb8bc595e6135cbc513a7583d129f0cd92508055291e141191066303cf75148e25198c21f6c6c539a790ea3210f3ecf5de6a2a03b70c753091146 -DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.3.2.mod 37 BLAKE2B 21cbcf43ce9e4dc3485c260f4b20ae34fa1aa41676ccdc1f4bd28fdbd9402db8c1f77d4c644e5044a0f2cc44e06a6109791f6d6cc4620b32e1d2c36426df65a5 SHA512 752909cad98e7eafe9ff00951c27d955242d3d76c99c3e52427987f1c81720af76ad1da5e4d67e31bc192822b7de299edeb2077b248c0f070b6adfde4e9b8ec2 -DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.3.2.zip 85048 BLAKE2B add5bc63d378f3bcb73a571f9760a48368c6f0d0ca5fb304c94e2754315845ee170c24ea2bec180d594c47c513565f3213e2369cd1429b1b52771c3bd9a53356 SHA512 18e3af1670149982591c99ae52682e527e2324fa4e6ce8a59efe153f34557c867489ae77a0de16876fd0b24c455407808656dc3278760d41de816a4d919e030d -DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.4.15-0.20190919025122-fc70bd9a86b5.mod 177 BLAKE2B f2d2eb41aaa0f3f47a75ab260a461e6df690c34e7e817ec61afc7854ae26bec641cddf4f4481b5b3b27394e303d1fb1c4a9864f4de2d6c01f33e3fa0521b05bc SHA512 584c9a707b6115caac28ff373974faa59d12531962997f9640a4172b020f72c5d527355f035449a767d65ce426fc9705c143a7bd8afb5058c9ece241c9ad5d1f -DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.4.15-0.20190919025122-fc70bd9a86b5.zip 162259 BLAKE2B 71daa9e2a01282e0f29e7f47081f8e5cebb59a31837b2e70b2b52d1ab371b351f6f00a8a0cdf33efaf0529f6ea5e0230ef9a35209dcd7600ad1204cadefa53a2 SHA512 31cef74693dcc7ff3e5e3542654b4174eb8ce7fd3a8a763df52414c99e01679404f2a5e6a1ab9cdbfed958b588e6584feeb8676ef9e149c4d24ae095dd654b64 -DIST github.com%2F!microsoft%2Fhcsshim%2F@v%2Fv0.8.7.mod 1988 BLAKE2B e89ecdb4644e50e2cd545eb43452729d909745705f5254a59547420baf3da357e77bf5d73b220da6899fe08a4eb034b0d1815702dceda20ada57e277b83b9954 SHA512 67df97dbec1c4a0c0f84551ea80df88a827c9ff4467614ef61544a611e19de6d063af40cf33673621f2e52e198595b61c8d6e5d732fe87f00eb7c5bd653e0399 -DIST github.com%2F!microsoft%2Fhcsshim%2F@v%2Fv0.8.7.zip 552856 BLAKE2B ec7ad9c6e4c49c04f8aaca1c42e198027e5db5abd79ed84f1bc8dcef2e26d3e386e02554285b666eaed6dae5ac9bec5f0e9c01cb703585921f2834cd8f49b65e SHA512 5d4575dc4e98137cfacd463cabbaefe2df0e49b81af900e9c43d2f98fe2aa4a02323e395b390bdf4c05bdb1d470f8fd2f2766123d27360541f249cde5e91c738 -DIST github.com%2F!nvveen%2F!gotty%2F@v%2Fv0.0.0-20120604004816-cd527374f1e5.mod 31 BLAKE2B a9858e56714c0ef3f20576058bbad347aa76d00379ba71c7944479abe032692c3f0d33303ca82ad6d140ff529b0c6bf23a844c4c0b8b655c4fd23f6df414ff02 SHA512 ee0d1ac5d8bed0498ae9b304c1f3b07566a2e192b6f7cf706b4d801e74e62ad3157b101be9878733b48a06d5aaec3ee916336c7f73bf155d63f606d039f8c6e5 -DIST github.com%2F!nvveen%2F!gotty%2F@v%2Fv0.0.0-20120604004816-cd527374f1e5.zip 12531 BLAKE2B 0435dd738f6fe3b88b291f0744bc33659a47191cd6a091ca471f34690078b3d376e8794ac47133d2275d409646a28ee3899965c90037af293628f7b16543a23a SHA512 9f57f79977f08762c6b6cdc5bbe94f00b578046e08832afad7b5d9b860ba4ce23f13252a39b144f9878c5c1433e1fe8c44de465591c19549d686abe7a753f3b2 -DIST github.com%2F!rican7%2Fretry%2F@v%2Fv0.1.1-0.20160712041035-272ad122d6e5.mod 31 BLAKE2B 012006f0261236f5728b4c28b3f8aa7e4d0bf60599990328b81e9db5f11ed24fd8d82c3b2cf3c72f35bac3f31dd0f41dd4768b27d379a67346d968b32e814c75 SHA512 68c463f83b740db632f4e26bee20bfa047d1c4b3ca49dabc2dbd0d684f82bab86fc7368eed0abcaf970d1d46f86b22fe063c97dc563bc12e96656df79fdeaf17 -DIST github.com%2F!rican7%2Fretry%2F@v%2Fv0.1.1-0.20160712041035-272ad122d6e5.zip 12553 BLAKE2B 02ef5505656d09b5bda2db7f598160d8d502aa5cdb219549b1ace34871f456d08e849e8afbd28bd7c2b5cc5a90afbc749ee959a202685f64713ac050ac81296f SHA512 1b81f66f1689dbb10aa0befad35e509a74c71f5db3b41691f02cf2db6b6c2e5b4092c13fc4bb0d39fa2d54fef47e52ac08f1628777a47f109285592cc4177887 -DIST github.com%2F!sean!dolphin%2Fbqschema%2F@v%2Fv0.0.0-20150424181127-f92a08f515e1.mod 39 BLAKE2B 66aba0853e0d4cc0f2a8dfdb226b3228bc16b3058a7731a60a9308f89de0c5a79997221be7e5a78268015ee19faf7dbd9ecfd4ca9dd2044ea1d6b0ab9a044ca7 SHA512 266093f2ee3e775bd66d952fb6e6634f42f58e05b687bd52d16088e76a71fd2a6045d02dc87900c80beef294bcf17bf09634712cc3e3ad1f2a6ee1cbf7cfcf48 -DIST github.com%2F!sean!dolphin%2Fbqschema%2F@v%2Fv0.0.0-20150424181127-f92a08f515e1.zip 11346 BLAKE2B a30d93f0e3f7639a4b379b82d90eeeb5712342fceb7b98d1f62faa53eabd94402fb8ea60ee9d2211c1b4b8e67eb2b03e2d76034a2b8cc25431a878b38425a68e SHA512 54aa484e0b6c80798665c1ddb694b0caf68809f542dedd35b536e588f942081cf967b3edb6e161964c19f883b1c560b76f9ada2f9ebf7afe8234398a39c92649 -DIST github.com%2F!shopify%2Fsarama%2F@v%2Fv1.8.0.mod 33 BLAKE2B 7013f44d03c22c21595c5369c52e1538a526891c9fc4cccac37373504f13c66d7c504552251f46632917739dfa1d6c3a15e15aec4dc03b9c69902b0bcfc8785c SHA512 db3271d8abd514934ce5d06fd20f7490db8368e57822a2379bbfd4ccb94e67354400d487d388a57467a5a16cec339cbae9488cecf82e41d85918639bedaa0a87 -DIST github.com%2F!shopify%2Fsarama%2F@v%2Fv1.8.0.zip 160528 BLAKE2B 41e98a255190d3f4b96cb5070bc09f997da4d6273e9b19a8f124372a656444b21d10c5d733667cacf7c68c1e28ea4d4c24d77a3856f79c40d83094af3f431181 SHA512 40a346aa828a45555dd0318bb1eaea5f07a02b9fb9cc446745a57e8c55c47629a277bc6f85e561ee57a014fc6dd7299fcadb856594d8d36b262cd507cad87be1 -DIST github.com%2F!shopify%2Ftoxiproxy%2F@v%2Fv2.1.4+incompatible.mod 36 BLAKE2B af7b84d9f1cd163555b32bcf960b28b64a5689a1c9694f430af310f5041cd967fcf0d6c1a6c4020478544d347e4ba5b2fd16a6ef54258d33314ee0ad9239752c SHA512 917ada7ac198a013d2b090dfc59a45bd2619dcb7227df1521ca38a0d822fab12ea8c158c526257fef4ef506af29d9fa678e8dc2a73fc13c8dfeb57b398801744 -DIST github.com%2F!shopify%2Ftoxiproxy%2F@v%2Fv2.1.4+incompatible.zip 64188 BLAKE2B 8a83e77b1720a9c4d2004f8f8c14fbb8208687f54a5f4f09dda758c2516c0d907a5734c2a8d566b0461810899cc8e0877819612cd2d715220ac9da21d9cb4970 SHA512 89d7b18a1eda0e215851b894ed019d27cb302650ad12eb07edeb49e663ac0910be41a0e4281e1e9b7c1ff2948a74e174d47ae5dbd7956e946c7d3c72633d0a24 -DIST github.com%2Fabbot%2Fgo-http-auth%2F@v%2Fv0.0.0-20140618235127-c0ef4539dfab.mod 37 BLAKE2B c2092425b8c00b2d65f9acd280a767c1688bf3836e447a49d9e16e1f36984d6f0a8efffe35ed40fda5553a4bf45202f716e0471dd95086064c67da107a535730 SHA512 37c17489e7a493c676569f210c4909a5dbe595992919a65b1e5e5111fe39c567e8e8238e31d9e034b64fb72f5c9addc4ed958b3e7ef264ba9387b24760ddff78 -DIST github.com%2Fabbot%2Fgo-http-auth%2F@v%2Fv0.0.0-20140618235127-c0ef4539dfab.zip 18902 BLAKE2B 733bee970c2d5937dd2e3a8cd359bf5b2d4ae05a55f1686ef17210b7c381798142604ac5324ee32182486a36c1442f6b859dedbe849b2d0403b21a2386da063c SHA512 34237a94ca69ec91af68d03658a2c05b45b09b7a41cc4c31823dff6d17b0619b59c562bb732bb31e21882200ea44e6cfcbf2ab012be9481f3b49e2cf48f7c5f1 -DIST github.com%2Faws%2Faws-sdk-go%2F@v%2Fv1.6.10.mod 33 BLAKE2B 6d4b4fe348c4fc9c7572c5b5b701116eb294cb4879799b76e31b538cd27822723e789e9db75468cb93c150c7d427b4db38d33899fc42a0d930413785524fe8cf SHA512 3f13e3b470e58f31e1a5b158363e141fa75bb44f639d268aca11cc82ebe41a12e840f978c14966dab8642652e2a1f564df3ff532dbfdd06fc27b1defbb002fca -DIST github.com%2Faws%2Faws-sdk-go%2F@v%2Fv1.6.10.zip 6241755 BLAKE2B f1e5c9962d054c8668fc83ff9419bf8620eca83be07d87a07c372df8d1bb26311bee73c751307784bad337a5662a0486acdc3cfe3f5447c8f162e97be40c7698 SHA512 0448732a346599899674fa1b24ae67a3a1dec820015fe91dd917f7f0d33cecf2e3c62ec40bc62a253def36d9e2c7f0ecb34d688d2aa00c17861074fb473fdeba -DIST github.com%2Fbeorn7%2Fperks%2F@v%2Fv0.0.0-20150223135152-b965b613227f.mod 31 BLAKE2B f69b0989e51b0b649f81b044169fe4309f130eba5bcc6ff33aa9666b1b754aa0e524b8c7a627a91000ccc4f93bf93cdee3e97bd3b2184b050878bc3f413f0c72 SHA512 f21fd002853e4435421f8396e6be016f65be1537815c60d23940caf26e3f14dd6f2caac802cb64cd586b1b1f1220b2727de347b3d1816b8e741f68d87ebcf03f -DIST github.com%2Fbeorn7%2Fperks%2F@v%2Fv0.0.0-20150223135152-b965b613227f.zip 13772 BLAKE2B e3dc57d4d51cf851aec2eb2b5741b235f7a9f79a9eee2f063ea39c68cf93ebd253934939b75d791f29b011cfe1ec13c84f9877a29a4b7dc49ed201e51cc2a3ea SHA512 1c233df9b1f88795039983f03b86de76d859c397fc91c524cccce34937b31d959c90400cd2acccb11b1c5fef3f52308bd571d95d7de940e8e668dee013772b1f -DIST github.com%2Fblang%2Fsemver%2F@v%2Fv3.1.0+incompatible.mod 31 BLAKE2B 15785a01a9f07d2cfe324a1ece5c8188395300b11821621fe13427b702cb9f452ebe125566c3c2648d2d83139add9ad6224d00536aaea7b16306eb62f67f8184 SHA512 5f7f52012aa82bdc43bd89d1491fbe00091299554bd85dbfc07f0cc757fcf44f4499df97a4f19c234ce70fbb7af0f4c54c13ffd547ef0a733365ea9c68dd0297 -DIST github.com%2Fblang%2Fsemver%2F@v%2Fv3.1.0+incompatible.zip 16367 BLAKE2B 848e8bc2105e93e6cffd9af9773b1e188a26666f03884a46aa0413fa8ba1065a2256a9ac8418eb12e465e456fe5d269becae7b67c63fbee6b2d29ea6254a5389 SHA512 515ee2520b32394c1050f67e0ca4306991b715a2bbab17ad94dda4dbe718fdffe363203851a13ad44371ad69c10a9b2a4e9fc0d52b2f96996f4b188c4ecf03c5 -DIST github.com%2Fcensus-instrumentation%2Fopencensus-proto%2F@v%2Fv0.2.1.mod 58 BLAKE2B d724c8e5ab039b227f3c437ba570398b789f53fe80db6f8e57fd2cb2199a5e7acef24d7451f9b27a4da464770660d31fc785c7165deafbc35009718851329fc6 SHA512 23d6171dbcf339c72fe25ab7a7e70cb385dffd654998824fac0f6b6464717873332d39fe1f96101414f5e2d240faaab0b960da2e31c08ef98443aa238bbf02d4 -DIST github.com%2Fcheckpoint-restore%2Fgo-criu%2F@v%2Fv0.0.0-20190109184317-bdb7599cd87b.mod 45 BLAKE2B f83f212c68ab30e030daa35c16b4e388d6be9822f6bb3c424fed3f3f7272c1331017a90d96d9bd63f375c1e04cc437748be3cbed0bda68043c6f6d1e10845f43 SHA512 8da8c7a2809f2568d2f3fb1d5918e4ab002370919f9dbe3123c4a92dbed79425c129cf9a6cec9a41f2a280f3c0a5d685aa886c961fb1b5c980c29150ef6a9619 -DIST github.com%2Fcheckpoint-restore%2Fgo-criu%2F@v%2Fv0.0.0-20190109184317-bdb7599cd87b.zip 30683 BLAKE2B 1229a9ffcdd787aef5dd65c8e391bd9975e59b87b1f0080cdb9acaa718ab554faed007f3a8a89691f8321781ca08fa29c70d638464dac0c7822b87c3b9712e9a SHA512 78578aab606d9e0c903268c72279b86f8e9c92d6d2c2803ca98196f0e7bd6c0d05217b4b74bccf25a9234f4bf69879e14c53f6bd37d47aad11f5704797c900df -DIST github.com%2Fcilium%2Febpf%2F@v%2Fv0.0.0-20191113100448-d9fb101ca1fb.mod 135 BLAKE2B 1b785fb4e0af530378f15100e4523543e22b2f5f7f350eb46cb16290c1e2f55b18a9f8894024a472c7e9d45deacb1e7a3828a54368ce1ef83095916e2262c194 SHA512 242e8e3859ac02adf7d059da6d2fd5f774892e8a11b69d8e22bd2de43c534f7d4a472e9b3bde5e5bac106211f41546614cefd078ac23115557e26c3d8457d7d0 -DIST github.com%2Fcilium%2Febpf%2F@v%2Fv0.0.0-20191113100448-d9fb101ca1fb.zip 96807 BLAKE2B d15a37efdd5e99f037e0d24f556ef8c2903769ba5e8d977cce182d8943ebc249597862ccd782ef2a543e3241fe0060851fb0ae9e1d5e8833542cb35f6feecd90 SHA512 333dfca246ee2e738167cccae976b173a0a01c088205e37aecee075b5d7e5ccf9ca7cb1641e43368d72dd1e4059472e78924d9b988f8ae2fdac77ea83dbe8319 -DIST github.com%2Fclient9%2Fmisspell%2F@v%2Fv0.3.4.mod 35 BLAKE2B 45d27e6bbd9255a355b6bd14ac839c7d87fabb393693a8b862ad974017af01309e5d36fa99d4925905c1617c0d90b5263b54cd95af2dbab186e293936dc86459 SHA512 ca8192c6321468b4332eb63c765a5798150dce9312873123b48d9ec67ebb4229cffc7b7e8054b8b0a6f45611f08130008031edf33da3468bb9a4ee9455fa02a5 -DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20190919134610-bf292b21730f.mod 411 BLAKE2B aaed1a7526861470d053cfa204fe5af2ba4ebca024322c8007d3660acce6fdca03264a12ca0bedcb6fe1f0cc5c78de920f8e8e19a36b12e1604cc3274bb88733 SHA512 32f6adadbc5dc2c9a57c698ba76fa4fd83637e67f58da55c6a22d4faad9f705fef7a472c2b2b2b94b2bba2b839b85856254fac4681dc9770893afa940bc734a5 -DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20190919134610-bf292b21730f.zip 75084 BLAKE2B 873262c8f3527814f7d3210753cb811f625126cafe63016e5bb3ac9df34217143e55f11f7ca0f63b51c95b17859eddfb25ac24daf75fb9f19898d264fb71d9fb SHA512 cf73ed0a23c1a392935706058d4d0fc24f077b775d31e6f56d81cedfa259be9b0203a8ddfb3f31bfcb07951b02c3c7ab74e8ea8f601ca75befc6afadb321f37e -DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20200108155730-918ed86e29cc.mod 575 BLAKE2B f19cf7d6c982a3274431d1717ef475e66946e4cd691249e7510174bfda7f06680cc0f939bd939121e196c1b753453ed044b7bc7354f027dc49ad287d3ea273ae SHA512 e821fbab7a09b8529b2ddda45a53a4b2d7f99d89be7878c6cee893b91b8530cc25fcbcce64a17adc87ed2635a4ea12ecb874fa1ac923ba2869385992d37f7cfe -DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20200108155730-918ed86e29cc.zip 125872 BLAKE2B 04d2e536305a951bb328ae1917959aec55cf48dfbf1f501405eef7690cbd9724c80bff26b7b21eb2933fd30a6516d4d5bd3d82aa91743f0133ea64d025735db8 SHA512 a6e879e874bd978bf7d88fec957c2b2102a68b911a5b633a503b7d2b8406ae7f02d347ef65878e477a7954ab16562db0cbe9db4d8ac7f9025275231990409145 -DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20170925154832-84eeaae905fa.mod 37 BLAKE2B 7037e2b6c6f7927a37d8298f91976232fac6e1723d9ffda59b2c01bf81c24acaf124fceeddd8791b6a6bb1e81b03e1bd5ba88ec9613784462a235bdfdea76498 SHA512 3d4ac776b750aac30718ecb1a3efdb383cf39d0838ca60db5ba266152baa1dcbee739a8f384965b5b8d39b9d9b18561ac317eb8c64c61076986db66bc10bc1dc -DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20170925154832-84eeaae905fa.zip 17672 BLAKE2B fcc09e0f6e7ce1c47da9f334f3de6998f32789ef6e15b32e16c50514fd7d8972095d9c6b45dc783ce775c42d63527fc467bad67608a01f417efdf4bd9a6f64cb SHA512 be49f73f1dcae8c2a982237b6f35329a7e5a7b2637cb6536ed2701f4682d1bf12c398ddfa59c3910055606e9cf6d08f730be20b5f994753cc93527357941ee2e -DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20180822173158-c12b1e7919c1.mod 37 BLAKE2B 7037e2b6c6f7927a37d8298f91976232fac6e1723d9ffda59b2c01bf81c24acaf124fceeddd8791b6a6bb1e81b03e1bd5ba88ec9613784462a235bdfdea76498 SHA512 3d4ac776b750aac30718ecb1a3efdb383cf39d0838ca60db5ba266152baa1dcbee739a8f384965b5b8d39b9d9b18561ac317eb8c64c61076986db66bc10bc1dc -DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20180822173158-c12b1e7919c1.zip 23623 BLAKE2B 530b1f6c1520b33a93dd4036000ac8b227d4cefdd8cd3fa877d640cc29dc822dd5d5195015fe75e7e9efacf19a54f5190ae5eaab3f63c5e4d7b2f356c74f0349 SHA512 ed79b9255d477bcaa1be18790b4f258b21f41fc97deae532a52e5a5c2f19e2d9e326547aa1735c1b1d77a0b1f00efdd3ceb6a201bb8c1fffb1af1f8ac6e322d0 -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.0.2.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.0.2.zip 1992081 BLAKE2B ae493ccd96fc8dde5f5b4f6499ae80d3ab3e4cdfe5074505fd69fcc1c17a4dce3e4da730cbf1db15f4373219fb5e96da592e0d7d6751aba6b666d0d485f88d79 SHA512 45b5bb1fcd240f11caf665e0e715e6541d27888e9b240898eca4283860de912cc0bf499284d3e979c81c637aee8e6fe11dd35c683ab70484887eb13f5d62ed88 -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.0-beta.2.0.20190828155532-0293cbd26c69.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.2.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.2.zip 1650463 BLAKE2B 8958a1e2bf03007734564896962be34189c6b56d1674a771819e6bee9ede0cb78601ca9f5888ec88b251b9d1bdab2e70190d0203b7694b4b30545003813b45c9 SHA512 5a355ead5a6996bd85e4c45d026371cce836a9379de65adf7f39596d9332c51f5cfdacfec66ed7e8efe7a49532b927a0ee53359f52178aa6df24787a0fc11068 -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.3.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c -DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.3.zip 1652053 BLAKE2B 2dce8684aba3184342c9019b4e554b9e79855819da1c785e2e81b47d90dbd793504fcbcd7f520d8d57f3a4aa3f7753fd8f9c516620794bb76e38044533552e14 SHA512 42543e7a2ef51fef0e2890b8b803af947a39a9baa8e6792f86b8a4836fc97b0c0558b1ba6cd40ec99fc56ee9ae0ffff04e8d5cb39464da528b90a02b2bd95879 -DIST github.com%2Fcontainerd%2Fcontinuity%2F@v%2Fv0.0.0-20190426062206-aaeac12a7ffc.mod 40 BLAKE2B d99a912436af30ef3f5fd53f6348367016633170289e08c271f0148a47db1f9c5ac5da362fcc3f6fa5a7e7977377299adcffe63e9c3315c45ec173d55248006c SHA512 442fc394b0be5c87d2b9edc858f47d52b1027acf1fade259879bac7c598e51692199cba7d4e175f21f772193f1570e47e82d6c6c6fa160e253eb49b09cbca793 -DIST github.com%2Fcontainerd%2Fcontinuity%2F@v%2Fv0.0.0-20200107194136-26c1120b8d41.mod 1000 BLAKE2B 595d0a4ca474b1143bfaff75d8bb1089953f1b68da5b593966f85461b5a20ea0a8ebefe6340ae8747b12e9fda5a13dff135e751262f4efbf7142993938a103a8 SHA512 b6ec25dca49d545033cf2e97f7907e4709103e1bd76b341a27511c25df44788246d9788281d2f2636bfc7b4f39ac7fb25fc1de293917bd68ebaec92babea8557 -DIST github.com%2Fcontainerd%2Fcontinuity%2F@v%2Fv0.0.0-20200107194136-26c1120b8d41.zip 137748 BLAKE2B 6ccbe78dd7b1773d54ffb28aaede1b1a10ced9228c4ba511be4b5c20940f7d8551dea187254c9aea915b4f3095ea415bae6ea7bc3df00f36966e29ef8309560a SHA512 38f840756874baeca822de082893f9a5774b29164f9b798660adbc99122f8c4d42be0e0538bf5d1c4c428ee2f2f2af5592b9eba4e2b5f01a74f4e8b591212592 -DIST github.com%2Fcontainerd%2Ffifo%2F@v%2Fv0.0.0-20190226154929-a9fb20d87448.mod 34 BLAKE2B 24e82d551cc42b7a7c8c830ff4941074686a06dfc753202e49bdf1c7d5f7b960d0ddcf73f618585b6dc925cde9cbf123196fc4b45cba6bff79a16500f49c178e SHA512 9ae770f38dd2c9560c8c3e858890a835ed848d5434a289d889c312d681af748b11471efa47739b08ccc12beb6e9050d2f1104ac6299a50a83344f496af516761 -DIST github.com%2Fcontainerd%2Ffifo%2F@v%2Fv0.0.0-20191213151349-ff969a566b00.mod 175 BLAKE2B 1573b65ca6fa922fe9d47ba40920cc95f7f7f9135c729fe9d8f9c2723492a136033f6b16680bc5c405377ce7bf14db34d989c563af74bce702db0b5ab761bc13 SHA512 b227a5f0ea52840001d34ebdfb11b0209dad5dc49faa55c20f5d7283c67992f1e63e4325c4cda3a3e5b70cbc7231301ea448a7e272a5f864d78585cf938f0d2b -DIST github.com%2Fcontainerd%2Ffifo%2F@v%2Fv0.0.0-20191213151349-ff969a566b00.zip 22168 BLAKE2B 9be413f55a84b6af8f8537fd3ad96c021cad01a27ebab1fb88f29b95c642c4f9aa55b9bc3110eb98d3042193485a8aa076184720158f5f6b07dc5010ac2d3279 SHA512 7b5005a900f3b8dc7ad910c0b864fa086eec1bdc4201b029ba09f63afa8711086086773ad84ed319ec328508c70cfd254cbceb68971a2e670afa94b3a284614f -DIST github.com%2Fcontainerd%2Fgo-runc%2F@v%2Fv0.0.0-20180907222934-5a6d9f37cfa3.mod 37 BLAKE2B b3d06413bdfc072eba71c8b51cb7aaf27ca29ba736959bd0fc9ef2de8fe3dbf3f194cdff7d030aa259c8e78fcc9003dee040be0d1b858a677d9e306c89a3542b SHA512 62de290e5234d6bd82d9a865d1ff592736f075130d1c29e9d9f2544ca3f9514c4a81ce1a726cf8fc8be8404e8ca41a88958dac755174ef2c20ec9b455d0cbc50 -DIST github.com%2Fcontainerd%2Fttrpc%2F@v%2Fv0.0.0-20190828154514-0e0f228740de.mod 35 BLAKE2B e2c6e0700e40d563dc690884628fa22b6dd56872a63ada54374c07cd6328aa332b6df2396300090da5c9f7ac730b6b9bd60dbc776557c4614d5ab3ce003579f2 SHA512 93f981daaa62351a480595cfb2feffad6c34770cf89f35399d777096fc524cafa50d0dd3f56231ae41b15e56061ab83f0f6829190730dbfc7f9fcd594af7b054 -DIST github.com%2Fcontainerd%2Fttrpc%2F@v%2Fv0.0.0-20191028202541-4f1b8fe65a5c.mod 368 BLAKE2B 52b871af9fd9f2b71074286d0877d16dbf6e9395f18326cfee8cd1eb7339b4694bfb90ae4c843ae1f71cea664a64d4b090b3b8be7e72f01366424400ec2ff05a SHA512 1655c00f6600d5a2ce87971a893f5e23b4d40f1e49d62fc39916751fc8c5352766321761b1e4c5f321f8e205d5164409c964ec508c9cb7372bd182b850692045 -DIST github.com%2Fcontainerd%2Fttrpc%2F@v%2Fv0.0.0-20191028202541-4f1b8fe65a5c.zip 45569 BLAKE2B 115f7ede07ac90d49016cfa0b025f0d8f4703ce661f7c678cf1ed4c76137770e637c468f604d92bc905e8be0a66d3317af94dbceb6781aae80f3f8f81169e9c1 SHA512 c97faa564c01661b4d8694f6dff0a73fa237427aded6709aa5be832f0f000ca55f80e02a1671f9b09e3fc265f8113a6237b7d942f521e55399b0086d0cd6b765 -DIST github.com%2Fcontainerd%2Ftypeurl%2F@v%2Fv0.0.0-20180627222232-a93fcdb778cd.mod 37 BLAKE2B 109f32f2dc537cfeff1699937e93eed980f34a37faa111ad3831be6dbbb1df965c56ef266deba48aa1390fd94bdedfda9ba3a51f4f6d9519ae24db6b99dfe1d4 SHA512 6485196f4703578401e82673647b49d58fe60d7f90c311294096504d3e11477c75fa50684f00c7b378b2566e6e8683cf18d99f2ac78043b077318a643fb11720 -DIST github.com%2Fcontainerd%2Ftypeurl%2F@v%2Fv0.0.0-20190911142611-5eb25027c9fd.mod 122 BLAKE2B 775bbfe519746bae037f93939baef72c091af97099c61ce8ac2e4ddc93a52ce06a4d4fccc52ae28f533da9c7aa147d9f302269d57448a003a695cc765d32cbc0 SHA512 a92ddbef593ef363aee93b81d810ff76b2df0a4155714d95dbae9d000edfcb4383953625becc3f24cbea19a77431cebc0767e40c746b6abf613ca5346f024370 -DIST github.com%2Fcontainerd%2Ftypeurl%2F@v%2Fv0.0.0-20190911142611-5eb25027c9fd.zip 12038 BLAKE2B 9a696cc9f413521860f0102e286746d4d2f86038335089e6d3e04be60ae3193747a4a7aa23c68245bdba909a3fcc9c3635d76170a3e9ac18ac259b6df1dd169e SHA512 47979bb6dab434002892b3d8ed3a49a3abb92e1dfcfcd80875eb5474cd2208edd73548a8792ef47a41f0033c4aaf813523d1bc7b68fcdba9d7154f4157cdf61f -DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20160527140244-4484981625c1.mod 36 BLAKE2B bec7662666b7a5313f4b7ed0789ca75f07dcebed3b4498cced2b75b3622bc4c8c7d624066338fc6d77adea4b778c89f0a1218fad524c6804ef350deae2f24d68 SHA512 00ccb440abed145db781cbc7bc12695057b7dfa034c8ebd7ab1aaf5ea509fafc0be7147328dd9654e3fc2623bbbf91fd3992a86ff29e78bfa3e868d994b47e7d -DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20160527140244-4484981625c1.zip 77401 BLAKE2B 9389afd7f0b14177f4e07b3777d6d6e732d79b491e72d066fce2abe0a8d6e94b7a52bafd8c55b184c285b2ffd228f26089d4506d0103c75084676105c7b1ce52 SHA512 3d8101acb510bcb07999baa511520835e861a673a2fd566ce8973b2bfb1b1fe03201124a0ac9591f16f3462521b32e157a72af5ccce3b07703832f2ddd853d7c -DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20190321100706-95778dfbb74e.mod 36 BLAKE2B bec7662666b7a5313f4b7ed0789ca75f07dcebed3b4498cced2b75b3622bc4c8c7d624066338fc6d77adea4b778c89f0a1218fad524c6804ef350deae2f24d68 SHA512 00ccb440abed145db781cbc7bc12695057b7dfa034c8ebd7ab1aaf5ea509fafc0be7147328dd9654e3fc2623bbbf91fd3992a86ff29e78bfa3e868d994b47e7d -DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20190321100706-95778dfbb74e.zip 109838 BLAKE2B 82e02c44f4fa60aa7257b79e385af47e23508e260415f0f768e4f7aac6a5962c713488458a50f1bc98308446ee3f45de973d5240811dc5a113e5b9577f33bab3 SHA512 7acd6ca00d067e6a81fbb12697ae9d46fa9880834934065549bb23671153012a8596d4c7875705578ca58a259ff81b1165e45aa65c93406d2c324c61954ea4df -DIST github.com%2Fcoreos%2Fgo-systemd%2Fv22%2F@v%2Fv22.0.0-20191111152658-2d78030078ef.mod 91 BLAKE2B fad30507d91fca15291c8f13100206c9d9eae4f73ca4034e37de10d1494b42b03535540ce704582cd7a4be4ffa2685f778ac9cd3aa647d6c48d8e6fe33a345cb SHA512 54e3700ced7222d086eac5a73a5973147473e9d063a7a8dd719bff2dbe3d61d9e4cd7427f30c926a2289ef53948f158bc09e189d9714f0437d446f7c30d0cc6e -DIST github.com%2Fcpuguy83%2Fgo-md2man%2Fv2%2F@v%2Fv2.0.0-20190314233015-f79a8a8ca69d.mod 217 BLAKE2B 4232fdc22064d42e7b97efa666b5345f93d53d40ba11231778e5d17bc7d48c6178d27f4e8678d2139ba4e40a90d46a6caeab1a9696b76db5aa361fc17d3c8c93 SHA512 000449de8fe27ac12c5e7614bfb48a31d506b582ce2deaf0a0709d3673c9fad41e3b97e25df872609c5a190e899a56755d2d9f974a38523c51c9fa3af521d73d -DIST github.com%2Fcpuguy83%2Fgo-md2man%2Fv2%2F@v%2Fv2.0.0-20190314233015-f79a8a8ca69d.zip 12266 BLAKE2B 93705895ca63c348ac5397fe8531214f5745a3be6f5760f9d3fbf67fd85b917dab4a2077376251a005bcf07450df1fe0b0114feacc5f92c6facbb2da637beacd SHA512 284116b4f2778ee7981e3aa5583c4e685afd8434e36ca647f0c72c5bb308e87bc3bfae8c83acd259c9da75549339aa382663b7103e4033b2418e314106923c0f -DIST github.com%2Fcyphar%2Ffilepath-securejoin%2F@v%2Fv0.2.2-0.20170720062807-ae69057f2299.mod 45 BLAKE2B fd78b551df24aaa503a1e3a673291776e988c7975ac3bad69beadbec7ac5c85675da6e6da9deb4463535e1b0ef0a3e640df6e7ce771de71f033f0e7a3f67a1c1 SHA512 9d9af0844e5c76f84c3804b788cd643e461b02b8a00fa5a41a6238dd72dbada1bb03aa3e7e420f0c68d9926b9cbd2d159456f26ceb64f1c51162da939742d0fd -DIST github.com%2Fcyphar%2Ffilepath-securejoin%2F@v%2Fv0.2.2-0.20170720062807-ae69057f2299.zip 9352 BLAKE2B a1364dccf9880c325bcb1bbd1cc2ed15a2ba7a1c50e27f2c8e98421ef320ec767fa5dc15414b34125326197e68832fab9d52f82533a5b785445dcb0c545439da SHA512 a7ad0a58946953dba6cff15a81a68e813b0391e78c4935ff9481ee746cb0081d609f9a3534047824a9ad49d0c47976b1cde5633fd72112503912051731899bc1 -DIST github.com%2Fdavecgh%2Fgo-spew%2F@v%2Fv1.1.0.mod 34 BLAKE2B 7e09c2779bf7a84a9271e31522ebbe600a1c11b107d651d91f58c8373e4336332a3a881f3e12b382543d75f20398af66085fcb3e780eed341e870e9c30f29267 SHA512 5e079462f7e0dff0efda71f580aa185700cfa936b718a19d0e2a8c63212e47a07022dca0c282832d48e5165aae8e82aeeeb2ac3664268f1148fc772010fb860e -DIST github.com%2Fdavecgh%2Fgo-spew%2F@v%2Fv1.1.1.mod 34 BLAKE2B 7e09c2779bf7a84a9271e31522ebbe600a1c11b107d651d91f58c8373e4336332a3a881f3e12b382543d75f20398af66085fcb3e780eed341e870e9c30f29267 SHA512 5e079462f7e0dff0efda71f580aa185700cfa936b718a19d0e2a8c63212e47a07022dca0c282832d48e5165aae8e82aeeeb2ac3664268f1148fc772010fb860e -DIST github.com%2Fdavecgh%2Fgo-spew%2F@v%2Fv1.1.1.zip 60320 BLAKE2B 86bdbc333e5c23ccf4f805945ca9f2aecc5c242d2ae824d20127eceaa2bf7bbab239ff2799572a2c8fa206166a36e97d5eccc8fc5021743d8ad32f39cd53b9eb SHA512 7b4e4df2fea731e23e05437f26f24e32b2e99028d685b72e3a726c1cb616ada4a77ca4fb9db4a6fae48178cc5172e724b74499bc776d63a9110cb97377d5edeb -DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible.mod 38 BLAKE2B cd95ca3c9baa32743ad6a0c2359dfb95eaa79009366a4019e5e1a4d3ded54090b005d307ef18942fe4de4027e7fe688e7ad046f226c77a3495e2ec579223a9ee SHA512 662e7810daa3242958f5ac7c71bccd25fc39ce814db684641cf69e96a5573dff638faff15aad77b7abddce767f4ddbfbd8a1bbb85a2aee5a0e80c96baa3f39a3 -DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible.zip 670439 BLAKE2B 19d27f2608369a4564fb990c1cc7f59e92f229e6c793fd918bc53b63d30bf69de3034893c117e4fc100c3ac2019fba6d7027b0810c7c45a11c4a1c46a3924719 SHA512 c5e053079e297d5b7c8bbc147fa154291348e369393fa78de0c7c8f94f057ccd0dfff325cd275789026f33c56927c175bd1e8a2fec055cbdff2d8b74da917a0f -DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1+incompatible.mod 38 BLAKE2B cd95ca3c9baa32743ad6a0c2359dfb95eaa79009366a4019e5e1a4d3ded54090b005d307ef18942fe4de4027e7fe688e7ad046f226c77a3495e2ec579223a9ee SHA512 662e7810daa3242958f5ac7c71bccd25fc39ce814db684641cf69e96a5573dff638faff15aad77b7abddce767f4ddbfbd8a1bbb85a2aee5a0e80c96baa3f39a3 -DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1+incompatible.zip 662227 BLAKE2B e9c50aec1dd4d34aab11819bd341b1f0f6fdc32bac63124930d45f76f0259aa5e1e4781bb408411e643574112ecbe57c3b9c4c5fe59399c153d48dc5eb5bea41 SHA512 aff78c88f3bdb596f1855ab993d8ec3315de9d4809757e2cba6fe22ad4d5dc220242f90e73d9d0a33f9a13521705b82c8526082e26c752fb027dee4b28299d52 -DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1-0.20190205005809-0d3efadf0154+incompatible.mod 38 BLAKE2B cd95ca3c9baa32743ad6a0c2359dfb95eaa79009366a4019e5e1a4d3ded54090b005d307ef18942fe4de4027e7fe688e7ad046f226c77a3495e2ec579223a9ee SHA512 662e7810daa3242958f5ac7c71bccd25fc39ce814db684641cf69e96a5573dff638faff15aad77b7abddce767f4ddbfbd8a1bbb85a2aee5a0e80c96baa3f39a3 -DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1-0.20190205005809-0d3efadf0154+incompatible.zip 681938 BLAKE2B 62693a6170e7f843812aed03d05965ef0a7f1d212029239924385746efbef5d4df3c649e14ae60977805063e521c0b5c68a42f32e3b8ae131b438da4d062269e SHA512 7280b01be97dba11cd18c2cf044dcd0edbe9ef09538966cc3d92d27400bc615f8106a858377e8f9c80453e8db0449829d4437fb371aed5bccda370f12479a621 -DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv0.7.3-0.20190327010347-be7ac8be2ae0.mod 32 BLAKE2B 60d7bedad25f2503b81b09e753b7f5aac1ce61c5b128e08dbb42f73cb5f3748d376aafcd475cda1f50f97a88790992ec920d2309e8b3faf914640ebdf4b21404 SHA512 ac7ef0a0baf8fd96efb31c685f838842cecc51e9332cafefab138f16438fe00962e91b31e53d93214ff9d18558634d4b9bed4a0a9567e06646da2d2bd3e9c439 -DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv0.7.3-0.20190327010347-be7ac8be2ae0.zip 3670933 BLAKE2B 781d56b59eff75e2188b5d36dfc78adde32c8056b853bde0e236261b96a55b8884f38afada9eee6897ab240f9d6a8d7a1de61f0a4d8cede90a3528dcbfc800bb SHA512 49871909bdcb08272ace18dae42d8e6cb4e9ce9e4b87d9a4039497252a3c0e6b5606e8a9c70c937375a4497c16be5a718cffda1b22fd718f5471121f012c61a5 -DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv1.4.2-0.20180612054059-a9fbbdc8dd87.mod 32 BLAKE2B 60d7bedad25f2503b81b09e753b7f5aac1ce61c5b128e08dbb42f73cb5f3748d376aafcd475cda1f50f97a88790992ec920d2309e8b3faf914640ebdf4b21404 SHA512 ac7ef0a0baf8fd96efb31c685f838842cecc51e9332cafefab138f16438fe00962e91b31e53d93214ff9d18558634d4b9bed4a0a9567e06646da2d2bd3e9c439 -DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv1.4.2-0.20180612054059-a9fbbdc8dd87.zip 3515250 BLAKE2B d0fd8d2399a52787c76c8a7fb09c05aa136c596fa8e09c3f4c5d856a3e2a4984fc7364547e6f05b78a2cc218eabcc3fb36cdadafff4c933800ca6380966d896e SHA512 3f0827865f72afe304ef4811c9bf8133faa859c206ff46c42614546c3ae8e847734e0acb49d45a0b6875b140668ee1a7fa0e5e7d67d726cb5b1a916499b52a47 -DIST github.com%2Fdocker%2Fgo-connections%2F@v%2Fv0.3.0.mod 40 BLAKE2B 13f8b46e2e71edb04180a1734d63e1e84dc75661ca635d150fd2bb8b1213df768520fc1c5cffa7a9cb224cb11788efc5242dd85138915fc21dfc9ff95b1d2737 SHA512 721f6b5cc358f8ee7093f7c80e4153ebc474f2052bdb3a91bf2a4ae9d2dbd2e2e50635a5bb8f9b62bd8ee7a0b7420ca9f18c60abcfd5287a953ea63d21aec53d -DIST github.com%2Fdocker%2Fgo-connections%2F@v%2Fv0.3.0.zip 42715 BLAKE2B d34249f3328c742dbedfd2620ca178ff29b909c31606fe7abff0eb9e04dfdd488bf51f4faf489061cf540fc765a5d0842ae3e0d9840894ebe8b4c6d8d7793847 SHA512 ca175bd5bcc7757538ad04b6953287f8c869d5c5ed2e4f930cb3104b7a96f73a34c656e85d1de054f2b982eb813bdf5b02cf7dd89c4824a25c8385add7778598 -DIST github.com%2Fdocker%2Fgo-events%2F@v%2Fv0.0.0-20190806004212-e31b211e4f1c.mod 35 BLAKE2B cb3636f6ba689ab17bbd240c10dd1f1f150988421212af1498f68fcce3250f61f1dedf1aec95c5437ca7ce92c26ebd115d1b3a16da55d07cfa423871e6f6f73c SHA512 ff56a30d40408c088c121984ad3ecfbc1214da641baf359fc36b8a3ae50ebfac8b98add4b9e4a47f8e03f586800fdd9c268582e581bf99e95009abdcb4e83af3 -DIST github.com%2Fdocker%2Fgo-events%2F@v%2Fv0.0.0-20190806004212-e31b211e4f1c.zip 22827 BLAKE2B 33b13d02d0031c2a898aca18f16292ef603fcdb6aab746a77cb782fd0bb786668434fd5dc99287176b6d57679d0ea565bc55b2954ea8b26fe8914160da4dc10b SHA512 c7770bd3cfd352b844a988b8a0921ec4bac94dfbbf7223a55639ed8501e0fbd06b0b55d2458727459db41c8f0ca93a9c9abd7956f37b39bce2be30acd0f09fa0 -DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.2.1-0.20151230175859-0bbddae09c5a.mod 34 BLAKE2B 37c07a43d4e36f25bb5bbc10a863a717fa114a5eb980f17942f5bc5b1d1a4f58de5301ce871ec5d41f5dae3f05edd7c03a5c9246317ebf089c1cff27d6634aa1 SHA512 53dd482245593fe74b94c319cf4f3079b47313a22aaa69ba023b9e60e8b5dc81177ecfac49e0cbd9b1eb6706f654f387301ceb00313f8cbe530b4dc24eaefe97 -DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.2.1-0.20151230175859-0bbddae09c5a.zip 20087 BLAKE2B a3f34d4ac1ce6d901219529e4a1a9e1fef99dc25b3c769c0ee59f3c9bb0dd78af3d74f3d67bc3a6416d4513084df13f9a1f7a1359e7936a506c5eddc7a7bda85 SHA512 12f8f88fa60054b92b6bb633334c40da0bce5c75f53055d7aee4db3cf6e3f322892fa38e09f97055edfb6b25799e9b87cae5924a38435b30686433546957075e -DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.4.0.mod 34 BLAKE2B 37c07a43d4e36f25bb5bbc10a863a717fa114a5eb980f17942f5bc5b1d1a4f58de5301ce871ec5d41f5dae3f05edd7c03a5c9246317ebf089c1cff27d6634aa1 SHA512 53dd482245593fe74b94c319cf4f3079b47313a22aaa69ba023b9e60e8b5dc81177ecfac49e0cbd9b1eb6706f654f387301ceb00313f8cbe530b4dc24eaefe97 -DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.4.0.zip 14089 BLAKE2B a825c998f5a7e6432a9d23f49fdf9d8559b8664ce6508468540530efe9585a98400bd38681a24b5a8b2d10b13c4ad91216f6c71153e8c597e3d2e8c8472622e9 SHA512 294682c312e079f96ac920c3f4e3dde7211e36622a378f54f32483e032f4df6f54a1f7314df7c73e2b7391bc559003ffe2bdb97380e4507aba7620ea4123d872 -DIST github.com%2Fdustin%2Fgo-humanize%2F@v%2Fv0.0.0-20171111073723-bb3d318650d4.mod 37 BLAKE2B f097ba062c5ae93b06edbf7827cc21a40d6bf6d2130c44fc8002344e860b3471742cf930e505a74a6a2af3a77a6dcc7d01b103d01f6f208c96dd9ca713c96344 SHA512 be96d9da23cc31932c1001e2ed367e55d06ccf2af41cc106e83b92fb866b61110d06ff224797c942b9ab6104bdcba4542f2214b9fb2d88df63e69be8158c6e2b -DIST github.com%2Feapache%2Fgo-resiliency%2F@v%2Fv1.0.1-0.20160104191539-b86b1ec0dd42.mod 40 BLAKE2B 9300f3006801602e05416487e6021123ff345e36835b5f4841158bc87556afa086470218c3f2178d125baae065c1af3cb27e210a50173a5bc9a469c592758eb6 SHA512 fb616884898669f21d53576f0fb70c8babc38bb98da066a2cb77fa85ceab6bcc8775feea3d3bcec19ea3b25544c776b8d55ad82f8876da5d0ed5176768da735f -DIST github.com%2Feapache%2Fgo-resiliency%2F@v%2Fv1.0.1-0.20160104191539-b86b1ec0dd42.zip 18832 BLAKE2B 1c1cbad4523fb8a60546e9c538b11b456003698dcfe44b16a303d426979460dc6d4da5f5ab8888024a669bde18b7ac636479590b3faab41dc82abb9a41c316ae SHA512 10b4417312167ce291062371105c961a3e929ea1085e5d9fcca647cdc1bfa815007b87ec7fa80a3866920a1c2052f63cb6deedd2805637e9deac19763d350002 -DIST github.com%2Feapache%2Fqueue%2F@v%2Fv1.0.2.mod 32 BLAKE2B 51c322074fb7a69418dcdfd2e54b187fbfe541c21a979c8bf8b155a6264cc670eeaa95c2949f2b760b187fa582e86688a045f3f022cb45f053a58e00ec2c0c60 SHA512 bc43f85d5a21cbdf4b3821e707c845d08f8a6d8f2c6ef0f6ec76f7711c53bb4407f2a356c79bbbda438fe138a3cf74a4b279e8757cec7aa134a93f2173b931a0 -DIST github.com%2Feapache%2Fqueue%2F@v%2Fv1.0.2.zip 4272 BLAKE2B 2cd425cdfb9c97c4c942b7d9f43c6a5aec2a3dd6d9db3478abd6e6b2879d30d57d444c826b887f3229e43323145c4a668130de3eac2d3d7fe6008a9dacb5511d SHA512 04c72bf0347f055445575e1f2cca6ad3e2f704ad7d22717276415510f443abe6fe896cad8018c31bd79497527cdd1c872a80ef7426e55acc60da16fd43a99402 -DIST github.com%2Fenvoyproxy%2Fgo-control-plane%2F@v%2Fv0.9.1-0.20191026205805-5f8ba28d4473.mod 378 BLAKE2B 571b914afee85b0d13a567132dd40a80f60224e20685279cfaa1e5e875897c8e0fc94d7097992881495f4c0c090b27c87f6d95db0161e1064434ca0434ae06dd SHA512 f0135b61ef0638fe384c875786abbf8ed9a93836f6ed29d19a2e9a626cf6d6c6a252146352eb32298b826e93bb61b8c733f8a6aa683e5856ebec37cccc64ce58 -DIST github.com%2Fenvoyproxy%2Fprotoc-gen-validate%2F@v%2Fv0.1.0.mod 49 BLAKE2B d910253a9c976078b790d134a9d75e53cbde427e7733ab9e09c9060b312a5749aa083fc48263501e3339a580cc409b5859dafb820a4465827e7fba4eaca31ecd SHA512 755a3d173d43e70ca40fde2d5ce16c405365da90ff595003ef64598c9b9734b7200fe07a16fd555e4209f83e5e17561d18227c46a5f25a41976ff7ac024cb9aa -DIST github.com%2Feuank%2Fgo-kmsg-parser%2F@v%2Fv2.0.0+incompatible.mod 39 BLAKE2B 869effe65ac30d12ea51ff1945c803b1eea65547381e0ad01f37bf8a68c263a3793e03c7dbcc7cecd0c882020e506cd8e1f2afe187ae8f9c2cce03b5fb9dcf47 SHA512 172218826ef7cc862b47a76156818293267308e8193a2fcd7d0a56b67397f9ee8bd3cf136b4e94c6cf045145189d9a579df05a48c7b413d220d6098940792eaf -DIST github.com%2Feuank%2Fgo-kmsg-parser%2F@v%2Fv2.0.0+incompatible.zip 12175 BLAKE2B 591c1bc97cf60adb577353983f12eea0897ba836ae9f3d40212c00f8f1d7107375b53449e0ec0472ba5f9bb365be188e05ff74d0e0ff3e5b8f4f17b8b4bfc99d SHA512 65dfa8dc30ec9348bd2a027e29e279d0d24e66e34ad550244340a6a2a775f91c4539478eb14ec7d7041a0f9b8837d8b4c125675c7498f9ae832af348f6870f63 -DIST github.com%2Ffsnotify%2Ffsnotify%2F@v%2Fv1.4.7.mod 36 BLAKE2B 2b77fbdbb6c6c20767c120b390fbd2992bf79dcae0a35c27121a6e755233da3ecb7d74e74c38c0a2463976b546ed8bbfb8a8d8cb140526dd9a0c4f524cc131a4 SHA512 5749d33fb085d63b7c12f43df824c96f168323cf6d88cfea3e2536eeb7b56689dab9dddb8cde1ec8bc9c2848e7148b8a37abf8523a99c55ce10f896245c5f341 -DIST github.com%2Ffsnotify%2Ffsnotify%2F@v%2Fv1.4.7.zip 41278 BLAKE2B e0b440a81efbe3c7c16ad276b4509652fd58bc94cd162b9ab13bb37c1e6edcd561e3fbb999e55619d58c8e3279b785b8eb67fa4e200b38fe6fcb60f0918e6e8a SHA512 9b1075ccd3d1f53773db97687e06fb777741d6c3b228bcc329be580562fb3c34006768eb3f989f92367ca116c597140045b3c345fe36065f5015d1d4652633c3 -DIST github.com%2Fgaryburd%2Fredigo%2F@v%2Fv0.0.0-20150301180006-535138d7bcd7.mod 34 BLAKE2B aacafc6177e1e87c8f4a17f295900d749608f722755d31a1939d1b601e4719984c0d1299fc4de9fe74c1109852009daf4641cb5c81629788a639eeb9314867c5 SHA512 c4b5fc4230e8e9c7631f577ee15414f7a72bfe27af524fd6bfad8c38a81426411dce35a191d840a9c69eeedfeacacd3f2a108c5eec35a3e30b0a7b262b15340a -DIST github.com%2Fgaryburd%2Fredigo%2F@v%2Fv0.0.0-20150301180006-535138d7bcd7.zip 44132 BLAKE2B 8e06264f68464b00ed9aaa2f9eaf2a2e823d603f7bcf70003b76b896349ce0f9f4f068ba1a7c035cb3ec2932d72cde88d94e929ab564babed04da778476d0e26 SHA512 6ab36b2e7c2848649a3f7cc53b1cde73b43745077576eebf432989511096313291d8f5809e91306120f2bc1c73362a810b9f3d87a4dd93c8f885d18d8947c051 -DIST github.com%2Fgo-ini%2Fini%2F@v%2Fv1.9.0.mod 29 BLAKE2B ec6988d536e1cfabecc7e1ee6070c6429c88de9bd970b3ecb35bf8e42ac3d2dfa08beefbd3741ef7a039020e6d41332039c6bc0e13d5e79bca84cf669e4f552f SHA512 67077f6e3f3c2571d6df326aa1d6351c3f7950337a23c548ff69e73df265db516eee559ee4afff17868068f2754c7ef272e46bc3dd5ac324ed002b749116794f -DIST github.com%2Fgo-ini%2Fini%2F@v%2Fv1.9.0.zip 35014 BLAKE2B c454b77da0ad2710f1f6622658bbe13ded7b4b8330948b7111fc16762dd4be2bbfb24de5c93e6b2a262da9f4dc45c979c0921505d5f49802435825e5926632f4 SHA512 3f53aede0178d73f42441de2d424a115b3a66e03a1fd10d72c2c9491bb4411ac70daef69d9a23b8c1a281a1cc96cf862989b9970caa37f59bc1b1d5222443a64 -DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20151105175453-c7fdd8b5cd55.mod 30 BLAKE2B e9f919d91a822060a84e112358ad361bc7be6f3e6e7cd668aaa89ea053c08d27bd20d281550e1f5a34f3db10ef19d7ec918bf094c755ba58bc01e17f7269fb40 SHA512 b096b5a6e72184dd2be5fb4f7ea9458e0b61cf6ef43f92a5fe5d225318315fdedd92bdc351b0802bb0959f77beb0aba830ef171ed61c6d84103690c22e8d8945 -DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20151105175453-c7fdd8b5cd55.zip 64714 BLAKE2B b975e15faa6450a7cfdfa55f24d52d833c30d5dddbc10c16dc224a4aa0ccd98a9fb64b0845d3a4a0482f148c862009aa8b2c31d8b0ab9584284c35ae1c299dc2 SHA512 dfe1b44b5b7121a9a4aa1c15424e8f56ae32b2a37e93cfaa20a0931b5e89f49a463b0310188f66d0abe3e916044488d7f752749b593c66d74779e398a8ca6eb4 -DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20190422162347-ade71ed3457e.mod 39 BLAKE2B 9884f8a07f2a84a159eb17ef62e9b17398b84bdea38fc37591af050dcebc2f56b83f851046c3333e604a7f954b7628c16b267c0c94807f7a41d5d2b797db0918 SHA512 c32a84bb302c9db3f31f714484131ee3ea96fa98b224b9cbf2c5fdd15100a24094e94b55175cf1fb0b6326128c2db8950677d8f6d281b49645b0c7b51b759093 -DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20190422162347-ade71ed3457e.zip 91123 BLAKE2B 16eab5a0f642cdf2af9b9ffe96a6e83ad03f0a6d7898841defe1ee5855de12a28939c27c7cfa5c1a676c8293238e6282256ed22c10a32ea47bf3d41f7b2fd507 SHA512 74be69e28d337ea6c5a8ad4f2a563f0480d04efcd1e07d75cc73c008a79e5dc9bc4f8eb068a7eae263729a81f686f5614af211ba78dcdb786eaf65e4199e5363 -DIST github.com%2Fgodbus%2Fdbus%2Fv5%2F@v%2Fv5.0.3.mod 42 BLAKE2B 79541bfacd3378a6c6dbe9591309a80390444f2dc2419fb0137c723c6a2ec1e0588c00704ce3c19dc93297b19db89f79bfa09daa2632f6674e35e76819473cb0 SHA512 b9aad4f1c1d4f2c43b293b0c9ca8a600a37ca407ba8b22b0f826c8355828cb7860a96a85df84f720fe8aa2840974807ea7ea7b790790c6dafed794e761f1f26b -DIST github.com%2Fgogo%2Fgoogleapis%2F@v%2Fv1.3.1.mod 84 BLAKE2B df632df8e017eefb9ef1a1e571927824fb444555a575106c6a4539d41b34f59e2d4c63b214ec07d89bbf03975846e80aacd0b91169e699c7b3702a4c38849457 SHA512 dcf05925d5bc8555650415e460aad5fc38b291116fd633f576ec62250eb098c3074c22378ed0bd3b7c30af20c86e4eef7fa351b2d09a464ca78c7e2165e12338 -DIST github.com%2Fgogo%2Fgoogleapis%2F@v%2Fv1.3.1.zip 172759 BLAKE2B c76ad12b4a6126ec4a6ea89cb7809c93f134e3a6c9ed39a21e49026c6be3fb5577507c7f9d3b2684f77018fd594be506d9f51911915a6d062350da2d2b1187dc SHA512 24ebc4984116e2158b9fcd85d9590c8d4ab56fc4c9e9c1342bc0963c3e68f2e51cbbfae00d28cd226adf63a27162af592235a08507a3a2a4bbe4773372e51b98 -DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.2.1.mod 88 BLAKE2B 0699027ef7284edb7deb6a2640db52a5b93076e3250d42710bf02a1cd7d5f591f1d335ffb1e7e753dda5fe177837fad87a25bf69b03466bb545708fb2952fd7d SHA512 b91b25b4fe769a403fd7a1f82d7720bdb0526a349ffe7cfdfff09a2ba5e0015d5a3446cd8e0e5fe46479b7d2296a8616de38a8183c0185f84fcfc75d202db106 -DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.0.mod 139 BLAKE2B 0c793b0070acfae7ad92de8d8e177d6b9a2519d521bb397da4dc2610927374e4c010db6a4454783556edaabf64e585b00112aea05820874c49f9bb4c4f049fb4 SHA512 232bef55468d9ff66ef7f446d8096a44a0a947533c8665f0f018300b7ec1804a634299a1a6ab64deaa67f1475e9ef68e7be233dc72fb2d9173559800f01af142 -DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.0.zip 2678507 BLAKE2B 016de242c488728027e7867b9e6bdb79547c315035769b9daf9f35200602e2eaa9c7f86ed37da6524cc4913e8a0ccd8306f9439f5d139ec00eefcc6c72da3eed SHA512 0dc9193de5a4dc03e31a128d3eaff02072f6a8cea64101adca52fc66be93374aec522b511032dc19514aa200ce5672641304fcb812b26b26a18326868a527358 -DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.1.mod 139 BLAKE2B 0c793b0070acfae7ad92de8d8e177d6b9a2519d521bb397da4dc2610927374e4c010db6a4454783556edaabf64e585b00112aea05820874c49f9bb4c4f049fb4 SHA512 232bef55468d9ff66ef7f446d8096a44a0a947533c8665f0f018300b7ec1804a634299a1a6ab64deaa67f1475e9ef68e7be233dc72fb2d9173559800f01af142 -DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.1.zip 2698974 BLAKE2B 5fcb1c66d3fa55efca631fe5def383ec089fab784cad7d6a031ea390463a0c552f5fc4698f7648d271f40fb0ae3eee525f149347bb409c951d15d86b7f560e16 SHA512 c7e2170eda176da203ca64e402c11489c1fd183afd3359742e373927ff228d62e445f5dfc001a471303e1708862998c125ad4c2db86919596297b11cae4aee9e -DIST github.com%2Fgolang%2Fglog%2F@v%2Fv0.0.0-20160126235308-23def4e6c14b.mod 30 BLAKE2B 6dea6116bb7fb72123a93cc8b83dca5455b76591c7948524ffe664bf966780799c4d007154502922e21f688aef5148211db6b0e3dd3f6b545c4192f5bd5166a8 SHA512 3714d2a95d0435a113c36df5feb13f77a07a1514fdf6b5f01e6e8cc5d159067736e0065bad8062dc636fa5c52c98e3fea6985075005b2838bdf53e0b07093024 -DIST github.com%2Fgolang%2Fglog%2F@v%2Fv0.0.0-20160126235308-23def4e6c14b.zip 22449 BLAKE2B 8d2eaf41ab75e870a445d50b62c02877ae8049e282f066d9aedc0dfb54d04af55d921ebc84d1e4131cc66a3f9efdf8270a0e423e563d3f8fc5a6bdd403bcdb39 SHA512 a3c086e660f2285d9fb7d56d1eba74994e8f0052363413337413cb50009ba46d3a432e2b4c67a73bfb753e7c60646d96bdad308d8e634e53f0bb0bb97ea17bda -DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20190702054246-869f871628b6.mod 36 BLAKE2B 3eee85c76d1ccaca7488ee3039bae6a7a9b4c8253481cdf6d62d1126623312a07264ed0e061bf5d7bde3aafb23e078b2bc86c3718cb2fff6618976c420c7dcae SHA512 5a0f44d45d666885e31206077a515fa02246d56699aa02f7809868029fdf6a718a5df8edac0ec245880f982882c2f4ca1d13a1dc0c7c0f79d7e89c6c46fab523 -DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20190702054246-869f871628b6.zip 39652 BLAKE2B c4c9dd2930eb417b8c6bf129489c3f067b5d127ed0194808d8e7594b477fd13ef20154508126708fc69cf855ee298cd4e9031bc34d3ab8025d2b2fc67ea21f78 SHA512 e23a4491896904321a371bb972437a0b55df33fe7fc31170967d6b4c0ccf917e34f94753112d4623518875ccb4e4da2e58cad54e0a821dc4e07528021a814b3e -DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20191227052852-215e87163ea7.mod 36 BLAKE2B 3eee85c76d1ccaca7488ee3039bae6a7a9b4c8253481cdf6d62d1126623312a07264ed0e061bf5d7bde3aafb23e078b2bc86c3718cb2fff6618976c420c7dcae SHA512 5a0f44d45d666885e31206077a515fa02246d56699aa02f7809868029fdf6a718a5df8edac0ec245880f982882c2f4ca1d13a1dc0c7c0f79d7e89c6c46fab523 -DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20191227052852-215e87163ea7.zip 39683 BLAKE2B cebd7b69e8f18547e77e07d49ca26fabd513b6bf95317553c5bcabac3b513dc1d7becc259118eadbad18ee4d45a1dffc3ec96864b80d87c0dc6885983bdbb3d4 SHA512 e7a8277f9b7d2e35d1e8586c580d03457ac1e755e1051fcda20ff9f819a6fb9c3cd1892be3a50d4cbf141b35d1c7b85b27bdc402eb45b700a37ce994be4e5b5e -DIST github.com%2Fgolang%2Fmock%2F@v%2Fv1.1.1.mod 30 BLAKE2B 5c355e64d858c99536e459f9fc4428dc00435bea944b67bf3dda5b61edb5f0c193c5857eb10bed926987cef865836c3f7ae3d8f081a58551ccd0772e4eb565b1 SHA512 ae6a1a6f8d31592ea6141f2ea39c9b60cd28e73ffae74bcf370fa739865b95a7ed56f687975f017b42c59e3b0f1c02884fbd5c93140bce268771380c8c7a7a96 -DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.2.0.mod 34 BLAKE2B a4239cba934b6e80714b93d47e88f22ad28ce41d1d984c4261cc3f5f3b857fb28785223fa911b258e2665be2a9d24ffbd925e9e0f374452a2aacd712ad9d5f75 SHA512 e059a34363bb826bbcb8981adbfc10da90e04b86dc5376ab20bdfe1fab135953cff41ef1daa116aff10e9f3e6503168f6baf902f09aa0e8cd9a0da96b932f4b6 -DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.1.mod 34 BLAKE2B a4239cba934b6e80714b93d47e88f22ad28ce41d1d984c4261cc3f5f3b857fb28785223fa911b258e2665be2a9d24ffbd925e9e0f374452a2aacd712ad9d5f75 SHA512 e059a34363bb826bbcb8981adbfc10da90e04b86dc5376ab20bdfe1fab135953cff41ef1daa116aff10e9f3e6503168f6baf902f09aa0e8cd9a0da96b932f4b6 -DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.1.zip 461624 BLAKE2B 37b2bbde9cd1153fe5811ae008983179820ce40fd6816155fc7b7d040e29b8725509f68c30b5099b686e9a6ff31a2d029188aa526ada6375fb9c7a236b8a7d1a SHA512 a99c2150515bc3deef1d7887644497fc4aaa96ed6c2aaeae91aabfaee6668c144b34a2c75ca829636c7e88d59b297601867b0f188ac048de452b5e0767480608 -DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.2.mod 34 BLAKE2B a4239cba934b6e80714b93d47e88f22ad28ce41d1d984c4261cc3f5f3b857fb28785223fa911b258e2665be2a9d24ffbd925e9e0f374452a2aacd712ad9d5f75 SHA512 e059a34363bb826bbcb8981adbfc10da90e04b86dc5376ab20bdfe1fab135953cff41ef1daa116aff10e9f3e6503168f6baf902f09aa0e8cd9a0da96b932f4b6 -DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.2.zip 465217 BLAKE2B 4caaf832a22faf1c45e04bebf35d29b38bfab18a490ad1fd7b2c6cd85ae678fd3991505f68e526f9f2205cf919374b07d57f8abe95d8f74dc8263cd37a9db3dd SHA512 7fe69c066b2407e6000ae21888f6cc696e51df2342a71e196aba1a9a9ecce630bd9a4d41c58b3105002508a4d0efb9c5ae2b8a87f848b8e2c6293558b8c4b4ad -DIST github.com%2Fgolang%2Fsnappy%2F@v%2Fv0.0.0-20150730031844-723cc1e459b8.mod 32 BLAKE2B 8b498b103962181cf69cf5de686eee1a7f0e481ccd35430e33999c951b91ebb98e9dcb1dc9c4e40cb379fe4abae40a47eb36d9456fea076e44245022552d055a SHA512 c9faa5760addf2869df9a3ec5ed9da02944823afc5be93b8b6193c43261d167cff2aeb65bb844d959d368ada83932c86056aefbff799be326e889d3de4c2b8f5 -DIST github.com%2Fgolang%2Fsnappy%2F@v%2Fv0.0.0-20150730031844-723cc1e459b8.zip 13277 BLAKE2B 259278e0f62f51a8843872aeecd582d5c21c2d718849f79eb43ead75a8f1da05e760b34cae8114f24d20952ffce470746c230476e9cad59968f2b7e09c43136c SHA512 d4f6b0163d3d8180b79958f79fbeaef816af644ae6426700cd8d6f3ccc60f74d6f0aa2074a5b9fb991a25af5f96c7f2461fa4702a98d60cda8efd5bee7e90944 -DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.2.0.mod 32 BLAKE2B 7c7baa1e29b9806fb97e0d557200e8722f2d373e149127307efa285cdfedb36dd57355168554d1a1bada62144e6a6a00c4d3246aa9afc7d0ffae0f087459c552 SHA512 7229d917bb0c788b07297e1b09b8f7952f951998a56f17ea1f69ff7c2f565a5686b212f42f45c6b8351905d6740a2ec5a235e493daa531ae00cb709faf67ae45 -DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.3.0.mod 40 BLAKE2B c717b6aaf18662c20120746a021b0ca878e7b190b3456cab24ec98032390a85b0af8540295e470647d403bf1beb582c8f8a74fa7129c4cbf747257206235c5a5 SHA512 351dc24af135b9c9d714aadce40fe9fa1ec05a35a4df90af79926d5119c3f33a6510ab9d78243748d7dad10bd2178f47d342ea2389972b88d5e9b4be6dee7daa -DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.3.1.mod 40 BLAKE2B c717b6aaf18662c20120746a021b0ca878e7b190b3456cab24ec98032390a85b0af8540295e470647d403bf1beb582c8f8a74fa7129c4cbf747257206235c5a5 SHA512 351dc24af135b9c9d714aadce40fe9fa1ec05a35a4df90af79926d5119c3f33a6510ab9d78243748d7dad10bd2178f47d342ea2389972b88d5e9b4be6dee7daa -DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.3.1.zip 99651 BLAKE2B 14632f8da685fecc046b2cc9e61eecca02e7bd4720ebb1d3cd01a299e59d47cc604abc57d5518e18dea69785e3d5d539d87da211279e238a78dd23e3d7f8c7bd SHA512 4b47aa3677a464af17f3e320f41f59e775b45f04cabf2cf749e00ba1aa97e27ee78a07daad347bac4b5c41e2c430634fba57c6edbcd7ad405b5a084142871362 -DIST github.com%2Fgoogle%2Fuuid%2F@v%2Fv1.1.1.mod 30 BLAKE2B 704029826c505198458e86463528ce2c1b209376f376b92d4f05a0f4094d161b45470d04ed3c1b5635397aca3126c25911299711139d794cca3e9b2bb373ee17 SHA512 695f3424e0cc247a069fbd6b94820554e003030eb0e208ba7be38f660c5fc29f74a057e60031ec77918b5b320913d6deabdf19a0f0666b0f5bc5e2724e1fddba -DIST github.com%2Fgoogle%2Fuuid%2F@v%2Fv1.1.1.zip 21279 BLAKE2B d8013c686f7cd497091f4c7d782b283eb95faa7617d68ec7f8cf937c5925d677d8552c662291e41cf2c137fce163d45fb62dfcde88088225c13e0980fcde3d7e SHA512 f28071ffb6515262fb73276725181a806740688fea8de8d9484e1204fcfe6e5fd437e38a3299acec6bb545deb31373d910a09d92937308176b2043ccc9f5397f -DIST github.com%2Fgopherjs%2Fgopherjs%2F@v%2Fv0.0.0-20181017120253-0766667cb4d1.mod 36 BLAKE2B d7cd8f31950392cb5de7f4223ff9fe3257568dd0a1c1b81c8b97934ba92379753dc936c81c39e5b553e4101bc7c035ce81c8d669d85ed1d1eee41a74218f3d88 SHA512 35151946ce44fde9d3bde1d0626749ac4bc68cc448736c3b0f056f40a9ae30aef591db614b271df3eba3a96dbc94052ea5bf7ff68749ec980088d60361934771 -DIST github.com%2Fgopherjs%2Fgopherjs%2F@v%2Fv0.0.0-20181017120253-0766667cb4d1.zip 257755 BLAKE2B 13d505a73dd179828fd3dbcbc1dfb90f6bdf8a888bb7ab160713a566472adf63d45491fa29928853d76725c2ffa5ada33e802cf857376c83cd8085a31acb48b5 SHA512 5bb0e61c8622e09cecc099c80cd97cdefbc497d4ad0e88984b2936e7731991e972883eb639be1cc3f56249a97b4f14c6820cda6b1c08e4a2323aaca22b840dea -DIST github.com%2Fgorilla%2Fmux%2F@v%2Fv1.7.3.mod 30 BLAKE2B e02807a9c1526691f789f8b176ad7757507d87fc5fe0d52b8997d72e9d528682a6fd10aea2426d11649c3caa7b6e4ae3c552e86fa30f3f710e6354caace3a88b SHA512 2facee17b28c8b9111ec642ffa0975e7f80601b4ffcc4d1756468e963236fc303cf69d3b5129287b746dc08a66fb719706bef277171b709a3013e6b4ce7e43c9 -DIST github.com%2Fgorilla%2Fmux%2F@v%2Fv1.7.3.zip 54002 BLAKE2B 8f6fc685cc85f850ecc0b7dfd63c37a23dfb6d0b43107ac749365b10f254f8d6cbb16462848e317d91410af8524bbb1c7856eac54c7e94ab6a92d813434b9c40 SHA512 8f82d0b2d7e881b7533e6755448c01a8e32db5bd117d61afd9456387ec87761b58ffad050c4b5051ec4853096c0f11fcc5b87be21c4062ddb3d365e23405123c -DIST github.com%2Fgotestyourself%2Fgotestyourself%2F@v%2Fv2.2.0+incompatible.mod 48 BLAKE2B 1928fe4e63005bf9d678f5d275400bd3519d679207918c44b0d93e829e1171dd1dded06cb8d82109e1f0b06b5b8a3f5124f1596e736ed83c15b6831de57a271c SHA512 dc9bf8e49c8937007be31d97dac8bc58e0ff9e983b8f287c50944ba074281c1e2d20e643cb26fb207a936a1703680a2884ef10d07bb0b9fa0c545d5414dcdb91 -DIST github.com%2Fgotestyourself%2Fgotestyourself%2F@v%2Fv2.2.0+incompatible.zip 93535 BLAKE2B 5bf87f311a8e5467a6202c59609ea2620aedfcde525a1ff7e7ce2c6b436a4eb965ba7bfc2d19883ba467395629d9f0835e9b55f795e9456fc29974d37e6be12c SHA512 9e7aff78ddfa1ef1f98af32b05d6f8da72fcc49dd1cc3b9297d803cb5d6709e8135bf43aedab7ce5a55b29891964f15aa36029893c069b9088c65d225783d3ae -DIST github.com%2Fhashicorp%2Ferrwrap%2F@v%2Fv0.0.0-20141028054710-7554cd9344ce.mod 36 BLAKE2B e3101c1f32c24b5d5bd3de55b4f15645e7f0b338cdcfa00d30cc4c063bf4e9e31e68972979e8282d04920ffcb54f112c8c8f6e0e109824e56881a6a699cdf622 SHA512 2b68ca06311d8602f04eb738a68a24951a9187aa70018d938e549cf7b555bf54dadbda5825501436c52f6103bcd220ed170c99e4cf777187e2b997c87f05fb0d -DIST github.com%2Fhashicorp%2Fgo-multierror%2F@v%2Fv0.0.0-20161216184304-ed905158d874.mod 42 BLAKE2B adaf8e14cd6696bc97bedcada70988d2508d8bf28e94a8b528067359665aac351ec7b7f38ca1a89ceb0c18c3c7935e30af4df20102563c9372b34b0cf54d41bb SHA512 da70feb8b6a17512c3761ce6f13653ea47bfcb4af69b471a3bfde9b79901d0f24ede05c10d35f3e051df54e1e636a848be5d00194ef5e9b85bf7915d6b27dd0e -DIST github.com%2Fhashicorp%2Fgolang-lru%2F@v%2Fv0.5.1.mod 39 BLAKE2B 13f90f934356dd1daefd27a94bb7a8c31f09835ea69f3fc83d343004858c6728bdd6bfaaa919331f7ee04744d18ac37f46a13be9feaa20e24e88ee364991a9b0 SHA512 bc3e0c3b16454e0f079bef539857c22f09ebf11e78ac1744a22f5af87d7297979b7ccdd48e4f59605cac562c268c3cacdbf2745f65be5c934f73f216707120e1 -DIST github.com%2Fhashicorp%2Fgolang-lru%2F@v%2Fv0.5.1.zip 19548 BLAKE2B fe48c3db37bc280cf5f36e522f4b13f7daa45768cad11c1148634ce7af618c1c20f568f98ea7193b0be7021fe8a4d209a4a7f1c94be3c05924a36022a57c46b1 SHA512 6927a910a368e1f2b0792989858d25c5a55891082cc38f5907c539a35919916e02872619cbf45ed583c6f6f8e85936a3fa790a161b071dddc922383e983d37ee -DIST github.com%2Fhashicorp%2Fgolang-lru%2F@v%2Fv0.5.3.mod 48 BLAKE2B d49fb83b0e128d1d891c78fd7efc4d1f6c92ff9ba30943fcda9b89d752d468836df7c37d6f30d1b4e8eaa5cd966c4b2ec90efc087887f037cce94654761ac107 SHA512 a55d0882366adebd894e5ebf9de5f70ac8b5f8f945e52b7dac8e56b4efc03f40930d132ac03bacb51ca220bad114940b9e27bc0ecbb92dc739691674a8aa5e15 -DIST github.com%2Fhpcloud%2Ftail%2F@v%2Fv1.0.0.mod 31 BLAKE2B 7202132cff9b47a4484c61586949dbf7e13622067675cdd09dace3ce2e5b3a37b6fc5275b3bd6dbb0ec6ca0335bb7c9a036cc043b2d8ff1f38bc90ce13041aec SHA512 54a5bbc02b82693a977a4f690314b16d94cf071decddee3a4af2a90398e626ff188bc34ab3517278e7aac4e657f3f3070a020c85274be3750371dfdeee139b23 -DIST github.com%2Fhpcloud%2Ftail%2F@v%2Fv1.0.0.zip 24894 BLAKE2B ab55c48bafc78202f2a0a494c6b00657dd81c078c0a23f797a59049e8ac59bc399f784ff81beb710aabd1d035e7ee3db5a4c90653d6e57dc3b3f0bcbd098fd39 SHA512 b77e39712e985744e277604bbbcd48f32d28ea69eac7a6b6cc0a3f8706e2970ccd5410761784b64eae73a07786cf81c665934c145369317b8b961b503582643a -DIST github.com%2Finconshreveable%2Fmousetrap%2F@v%2Fv1.0.0.mod 44 BLAKE2B 764581d416faa477a91695a42c68cef5638d019a1622fb3bcee976c1581e904995d33c79ffed1d3b805f660931ece844b3e17437f158f8b82ddae82e95f0358f SHA512 0c77200112d96f9cddf8cf7da0059204914b06a8c400e2e672443bd02a45d9ebb3274275c20e6e7ee0728992e77579d945b36de44ccbaab2ee92fd55f382f7ac -DIST github.com%2Finfluxdb%2Finfluxdb%2F@v%2Fv0.9.6-0.20151125225445-9eab56311373.mod 36 BLAKE2B 9741c89f9ed24611ce292f620b467f1be2e514583a191046aa2bbc68242776d92ca85f1b18bc216683b137dee00b6210eecf424b48b418cd05b2684aac4e8c80 SHA512 3f7987e0aecbedbd121eb6ef63e8472450cdd607cc116cb4e85bfdac79fede96aec13ab0882efe8cf45d15a959e56121ac684be7033f4284339896183a492eb0 -DIST github.com%2Finfluxdb%2Finfluxdb%2F@v%2Fv0.9.6-0.20151125225445-9eab56311373.zip 1186832 BLAKE2B 40d745a2d0754058e06641decbe49d07f7cf27d1144306e6e36fb23faea71a2ffe95d920773e8996ba99cc55c9f296dc03d7ac6388e061e36a85012196dc81e7 SHA512 7dcbc89888e2396067bbcf000bbfb3f109e128815de122ddecfdac84002310d27c591611cc7935d852cf9820f5e7b0fd092cf43726fb6feabdc0780ad298d2cf -DIST github.com%2Fjmespath%2Fgo-jmespath%2F@v%2Fv0.0.0-20160202185014-0b12d6b521d8.mod 39 BLAKE2B 6129177aeb4cc82860b5e233715d4330fc61c4b6783af687d936a5d783b32f7192f268ee0954d8a37fc1a6c22c147e86a1fc1c9ee8f48cc979931b0500fc92b9 SHA512 19819e43a514d9d7b1c8703c06c3729456a39a963a1cd3cdce7f6318a3ef67f8663c5a66b6bc402cf422d823b1b63540a6c79f371cb81ecd1f13de646598566a -DIST github.com%2Fjmespath%2Fgo-jmespath%2F@v%2Fv0.0.0-20160202185014-0b12d6b521d8.zip 231438 BLAKE2B 3441c5935f2f495a78c9f80dcca293e8c08fc8dff96a85dba673411b12cc03af2cb8b363c2cea07cb131435063e6f6ecf0c4e0a59f6060ff66cfe96466f8a96b SHA512 5dfbed7fa77c3827515f046923237a17c1dde62275e2365ec599ea6dfe4c93a1cacb1401c5d36f4379e4d80425352abf67ae1a0b25c7ebfb974256cc9b26d983 -DIST github.com%2Fjtolds%2Fgls%2F@v%2Fv4.20.0+incompatible.mod 29 BLAKE2B 8efd6f84dfcb696fa2ebf7b09c7405d57457dc67e03a2cc753cddd93698b1b03d84022f241c4b652dd80e0521b2b1ede8127fa15dd47d1f678a7fe1c31fafedc SHA512 3a397e0ee84d8d426eb5a1f39c07d608e0ed53b1d4b2fdbd137d23bf9f401840802d18d5203bc468fac76402c508bfebf49bb20869d8a715e44c49e21fd3da4f -DIST github.com%2Fjtolds%2Fgls%2F@v%2Fv4.20.0+incompatible.zip 9901 BLAKE2B 0c8cf7ad0809f65d91b9ad5b27759cfedc5efc25194f19effd4b19c35c940461a48a57636ef3c707b27ac614b693ea05830bdef6943f11993bf561ef558cb99d SHA512 08b7201a9aa3294a3fc59bec78fee09f0d1bc7507b50b1d1cb1fa29a523c6870d00b633ea9679c9c86df9841739f46e9d5d9bbf0e3ec15b8ad08e57db67eedc0 -DIST github.com%2Fkarrick%2Fgodirwalk%2F@v%2Fv1.7.5.mod 74 BLAKE2B c12920e4f3f51d17f6d3349a0833623766ec6a3a609850db89372062a02ca712e3080ce187754a22ce45ebbf35b6d4e317dd6e5a4071d8fd140cdd7a6b09965f SHA512 407f46f7cfac9c4dd5feaedab0f708a9ed13107091a15251dd4963cc2c32290f57614d4b5b0a371dc9cfa8ecd49d85b13114d635e1176d56782098e8978cbfc7 -DIST github.com%2Fkarrick%2Fgodirwalk%2F@v%2Fv1.7.5.zip 25761 BLAKE2B 08f337201ce7a01146ced18673c87e0905a39309943cd56149a9b536ab51932cf92ed6a70050b44400f8767fddd5537628e16206d0af4f084fd096b9ccf979bf SHA512 213fb487b2c6aedef502a24522f0ec8fbda28adc215959d576d1d03646dc516b9e7c4cfe8949ca2598ae8082d1806e66af796f086d23098cee6c40659d342d3d -DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.16.0+incompatible.mod 40 BLAKE2B 1553a76830770feb3d6220cdf688b2f8f1f296f1141fd84197d5222b170806b508e895e5edf6cd5e052de5e272a211b7e01146d859670d210fcfc9ebd85862a9 SHA512 b4fd0fd62d0eb05abc32196dde7798d4d170680ca6cc151e19be765e5998759a5d570ea76f9c047259a2fbe82032e0ba5c73b63ff48b13a2e314240ac2a922d2 -DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.16.0+incompatible.zip 15411331 BLAKE2B c717893838b22cf5de73016e0502bc1ab1df82418889e866ed402edc630b423467603725934f56c6033c0290552625f28f66465e601f6dc1824ae158a7514e98 SHA512 5d5fa181f705c1ec4521ee2629564a33b22cb64726b3355b91a2abddb715e38a6e162d2902c91c4e13028e4978d4f5744d001db1d75a80e3798c39872e4069d7 -DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.17.0+incompatible.mod 40 BLAKE2B 1553a76830770feb3d6220cdf688b2f8f1f296f1141fd84197d5222b170806b508e895e5edf6cd5e052de5e272a211b7e01146d859670d210fcfc9ebd85862a9 SHA512 b4fd0fd62d0eb05abc32196dde7798d4d170680ca6cc151e19be765e5998759a5d570ea76f9c047259a2fbe82032e0ba5c73b63ff48b13a2e314240ac2a922d2 -DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.17.0+incompatible.zip 15412126 BLAKE2B fca367ac69d50f551e25a6fe026c13e8f359efac91735aa6ad6cd89e92870dffbe9bbad316d03d8f9af50d9474ce391714e7b0f14eaeceeba60f2b1cc5014ade SHA512 ca9628715de79cebfe6b10158698b7656245a16c96e41c43c7831c3902847b5cb1e7dcd5fc17da6e56287058289d34e429f63acf18e57dcf9068429e9bd1ee09 -DIST github.com%2Fkisielk%2Ferrcheck%2F@v%2Fv1.1.0.mod 143 BLAKE2B 128f8934f81d0e497e1258ec65129fe5d8831b66058669a5aef3fdb2fbe5f6d8ab30bfe97a1de7befadd34aafd55d6d15bb787e8948fb7718761392817203874 SHA512 c5e546822036a7114a29454e28290f8e1082392a47a101fb1d370e0969fc2c83186b4487473f903dd638abb8a763ce3180dc87993906895a2df33db7d8bc4790 -DIST github.com%2Fkisielk%2Ferrcheck%2F@v%2Fv1.2.0.mod 98 BLAKE2B b9d3c55999054ed927f666a43066ccc6758a6c5f550651f43ad5d85b5403c882ee76ac2b2553803d71789da33c60ea41857ed545003072ab6c666dbb77118e00 SHA512 3529b37d770af511a716a612b7fd7fb6a4805d13166e3a6f9378950443f6eceb2f3d95db5a46027437ce55b36e571c75bba72a03769d21ecdc97888019d80a68 -DIST github.com%2Fkisielk%2Fgotool%2F@v%2Fv1.0.0.mod 35 BLAKE2B 2f43dcbab430f12316fde243db4bafe24372c74d60874b05917269e249a36660309c23da151db31d89c0d0a8fd0f179e2dd7f386af3ca533c95ef74017609af9 SHA512 86aca37f7f94ada381e0528a535b344c8fdbab9e0dcc7b71d716083501ad3d61db701ee159ccfb5455a351fc18a405301abe798037dd1200f9950bdd805d3dc9 -DIST github.com%2Fklauspost%2Fcrc32%2F@v%2Fv0.0.0-20151223135126-a3b15ae34567.mod 34 BLAKE2B de38b76cc80d4772016edec60ac6de4a290b1083a1979630a8aeeb2d6e7ad0c5e92ad3c25e1a47b6a540f106cd66a39a5057f3acc0f39ec16ca0c1a23691bb9c SHA512 97259895cac5090158a564861a3e58ff60728471fa5f0cc5225588cc5072dec813433942e39ef3fef99a00fe1b3147814e76789501c45d1f56f30403151399d0 -DIST github.com%2Fklauspost%2Fcrc32%2F@v%2Fv0.0.0-20151223135126-a3b15ae34567.zip 13878 BLAKE2B d074bd1aa584d1635a0283376a82e01f499f7abefbd91bb081c9be94052a4b9defdee9e004a137e98ced42a8cd876dbd9520fe70ea9fad3b5181c25f409613c5 SHA512 52c61fbeae7ecfd7a00bfec7586e20394cb5834e15ffffff631677e57569354e6b80e3680bbfb618cfff7c2e5ae3344be5e46c0ef3093b25cde46e7dd8cda0c0 -DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.1.mod 58 BLAKE2B 4cf48282c28d2b8237fe9ff852ad25d102cce038fbd1852a1938bcf69c895df05dfdef6e533b3c0b4da28103eb5e3a9561f802414ccdd99b2d3ec2e2db0807ee SHA512 fe33ca4de6588b95f0155458b8b6daab218553b58de5dac220efe54019dfab085838cc6a22012a106fa36a6094447f744825cad04aaf0b158fce5aa676048fe5 -DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.1.zip 3567 BLAKE2B 80b7bf217df9367160180d44c1fab6a9f10154bb9a6455538860158a08c5bf8c794fff973b899b1376e4e65764a9aa0d6b8b162a6d9ebe1adb1368b9a2a42786 SHA512 27910ae03fc9fbf573ac31454635c43bfd771d2a91325eca544f7be0e24b43c2798ed8e74b4c31e8c20c1a9cd266b835017aea3a3e24c2ecb43a14a6143af8e1 -DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.2.mod 58 BLAKE2B 4cf48282c28d2b8237fe9ff852ad25d102cce038fbd1852a1938bcf69c895df05dfdef6e533b3c0b4da28103eb5e3a9561f802414ccdd99b2d3ec2e2db0807ee SHA512 fe33ca4de6588b95f0155458b8b6daab218553b58de5dac220efe54019dfab085838cc6a22012a106fa36a6094447f744825cad04aaf0b158fce5aa676048fe5 -DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.2.zip 3968 BLAKE2B 223cfe3604cb674a11d4558b8f5a35e2eb41cf11d536e2e2cbdccd6a3c6bed8abf66f450774b39e7247493ea8a382906617c5f297fda02a272b18eef8dcbcf47 SHA512 16c4bf83b78541d2d684113926813ce4cc91f3f13f34dc2cf8d643661dc9f21a988b8382d2c058e138fc87c1ca197e8f694b07595959e917c82bd6ca9101a5ec -DIST github.com%2Fkr%2Fpretty%2F@v%2Fv0.0.0-20140723054909-088c856450c0.mod 28 BLAKE2B 2b6688f37d22922f112b15c0c59e6b4c0f1ae21a6280e7de57af2d3d154edb42b529ed75b6634eabff8fb5dcf302ba54c033013aa3f89bcd0e20e82988ffb8da SHA512 9ad5dd53c8baa8c46ac9f42b4644ea39b312ae2254cf4df3f488a09986fbc9ca9305531466943a2949de87d7527a8884601b24278d2b2792e5e93c848ce689c9 -DIST github.com%2Fkr%2Fpretty%2F@v%2Fv0.0.0-20140723054909-088c856450c0.zip 8979 BLAKE2B 5abf959d2309934b63bdca0c8e3682ac46023fb01adac0b119b885041a710e949d9f0b9b91d2a8799f30cf9ae98d67afd9962fb1be08ee27c22feabc91d602b4 SHA512 d5eb26749e8387eedc039518f5f9e0022207ccdc32cea455e55ad254a876474e23612841b7a331e210b876cfecc52b3dadb10e8cf015d70bf0ff7a84d381b0e1 -DIST github.com%2Fkr%2Ftext%2F@v%2Fv0.0.0-20130911015532-6807e777504f.mod 26 BLAKE2B 26aa3d077de6f102d7d295c5c9bbd422469261f9a3d9a0795e287eedc9a18c4dbefe2be0d748d89dc6744feaa786c3d295b05edd5688767b358f345417485c69 SHA512 fe4154b5dd6a373fe0f862d74cfe6ef4cc581c584a534b4b2c8e4ff49ea4653fc91b09b0dec9807c26deb37825192fea822ca26a810e154df3f974304a1746fc -DIST github.com%2Fkr%2Ftext%2F@v%2Fv0.0.0-20130911015532-6807e777504f.zip 9203 BLAKE2B 67c7481eff5296a98455ecc705a36ee8e7191871f958fac2b11dab96f4cf3117d72966eab5abed4dac67a625a17587d02450bf2a877cf3b3208cfdad7a1b0f00 SHA512 bcfc876a373e23827ec9ca91ee15b7be74c803ed05e893de49b06f2b5bbf127ee90904fc836cb4e3fd0e8dedde3920be63fd407b70e1b3f49c858aa74f242d16 -DIST github.com%2Fmattn%2Fgo-shellwords%2F@v%2Fv1.0.4-0.20180201004752-39dbbfa24bbc.mod 38 BLAKE2B ddc3076fa3a93a287dcc66d087fcfa08483a03baeccc6fcfdca7c390908cd0b83017754103a78f6977c929d24868a9ce78859bf9e270fd84b5fb38ef8f939f9c SHA512 79ad90998c2a3e01501014598c152d4d08a92d354678b5e395c4a16ded8519f12e4ea883485ef49f07e240c52e075c7f9a07a410eaa9a1aca3657cfbfe4b6368 -DIST github.com%2Fmattn%2Fgo-shellwords%2F@v%2Fv1.0.4-0.20180201004752-39dbbfa24bbc.zip 6775 BLAKE2B a10a2c73e0368afa3553965bc71c0054edc49db8b35e854d65583954d34e2c64408307d64e81682e3594315196cdd6c7ea08c50244d9c30e350db7552d0dd800 SHA512 60daf098d8d55e798617057db433216a0842ad5c143be717d0ff7d208895ddc747674f815f3992acca13962cca4b982dad463807270cf0efb8488bdd113e9dd7 -DIST github.com%2Fmatttproud%2Fgolang_protobuf_extensions%2F@v%2Fv1.0.2-0.20181231171920-c182affec369.mod 178 BLAKE2B ad9b4e7186954eb025beefa7c1d622146e2329ec6d9483da5f6066488a2422c28bc54071bc28bfc50b916a5cb9f07549bdf09bcfc4e1edc78234b84900638a91 SHA512 e830b9801e4d9645c55dbec3750189c4070d7125dd2aa7332c58e9307917a869bd432cc628680d2e9e88ce646eea9c63ba2f8aa85c53b20bfd3758c5217f5fd9 -DIST github.com%2Fmatttproud%2Fgolang_protobuf_extensions%2F@v%2Fv1.0.2-0.20181231171920-c182affec369.zip 46423 BLAKE2B ece8bcfeaa56e6d038bafb4986733763fffff1a29e232b0b86513a0ed00416221d7b31352bff01a711cf8952687bf9fe3a4e51024e6d8bba04f4defa457bbb4e SHA512 87ef30626fc29616a17023a2c9303e1e55cc9ab98b58444119717d97641d92fea8bca0fa6a64131fc4c01c4f9a1f293571a54b76f2b938be4518378ff4b73342 -DIST github.com%2Fmesos%2Fmesos-go%2F@v%2Fv0.0.7-0.20180413204204-29de6ff97b48.mod 33 BLAKE2B c2ae3fb0378f569fb65273b84ce9a1bfc018fc215f007231e174b35289617d0115440adef419fde8392d6f6a4af42b50c5e0ec1ea751130a83554420ecb0d885 SHA512 638ac70369bf89f7a511e8c8407897921860f1046e9d99ec285b361720647586bc2bd47e1bc9a1cf382f477373b82caf29922b9bda1fbb875c501f6de4723310 -DIST github.com%2Fmesos%2Fmesos-go%2F@v%2Fv0.0.7-0.20180413204204-29de6ff97b48.zip 1522483 BLAKE2B d6f43b2c21fca6325a7a3c63571abb09d9dd9bcecaf37851f12f7cf8d18fddf4e64e910214ae8333b7ed8c2b5975de1c044f3cc3d9d785b75847b6f42b897575 SHA512 93da8b09105d5d055731ece9c335516a77f146fc3c47915ded5ededc679dffc4a8647d450f11b170b7420532e4a3ee29a7549eb776bfedf708b0b70b0c8424ba -DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20171110221305-fee913ce8fb2.mod 36 BLAKE2B 18ec4ace4de7c41e3147a0c0b1e2fd044434216707275d2a3db0da6f072f6d45f3c5a451050d4881cd0a684ec2ee12c975d94bbbab68865453b08339bd4169d5 SHA512 ade92d48e56c72c2260143b7d9e00437e55cf825a2d5cd3240fece4e1c01c77a97d7b2b5db4227112bf656b402b91be3cfe4d8890ab9b6873e2e828da1615d50 -DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20171110221305-fee913ce8fb2.zip 57760 BLAKE2B 7f9b4ba6a103c9983f3c006cc3b8dc18a5adc65ca70fb23496867ff151bb49fa00a31273272a35eb24a1a0d37c10133822063066b82007fa7efda1e47592d15a SHA512 3c987c83fecc8db1e34f9b6b155b080a7ccaa13f6c84943e6c8caf2d0a3313db2870e5320286ee41d92288e0717fc11b76c8910765a6a0bc9a898ecb288a5839 -DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20190828220739-9ebdce4bb989.mod 36 BLAKE2B 18ec4ace4de7c41e3147a0c0b1e2fd044434216707275d2a3db0da6f072f6d45f3c5a451050d4881cd0a684ec2ee12c975d94bbbab68865453b08339bd4169d5 SHA512 ade92d48e56c72c2260143b7d9e00437e55cf825a2d5cd3240fece4e1c01c77a97d7b2b5db4227112bf656b402b91be3cfe4d8890ab9b6873e2e828da1615d50 -DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20190828220739-9ebdce4bb989.zip 60421 BLAKE2B 4bdcf5bc8127af87eb60f981948527dc179a37e6861f17b31ccfdc7992a7f7c24d8005273cc1577d7e48c92fe67d3e11670e88dc90abd0097de28fb3d8c40bae SHA512 97ffd225c5fbfa53aef12e4d7b25788098d07d96230834d8707aa9446d99c40ca092e5fa59790b5cdf1c2ad81edc19a946730390c0616653c8cb9cb604106d4d -DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20170901132433-166dd29edf05+incompatible.mod 35 BLAKE2B f74f76885a3c86b832d1e7e80ef9d282c27cc236a3e48ce3bfeb10bb5a5b2ee0820adcffc89c0e30b7a27493b9ee8f131cb5a151baf9c1b7edc8845d30fd4531 SHA512 c5cf4433f35fd5795d64388816ffe45b49fb7192c2c7bf4fad21e680cb35bbbbf046945c48e3a6e1c3d8cf528942b5c2eca85de9d8f70811d910c4624b53f2bb -DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20170901132433-166dd29edf05+incompatible.zip 21170 BLAKE2B 3ea0965d40ea11c968f930096a4de086f15d8898225ef2d74f55b2909172fe346cbadfb1545e0e6ab8613e9c2462af72a34f131a23270ce1da92e5a2d1e2b306 SHA512 f67d2e2d02e366a16126e922f2fc6e6de3c2755fb90ff6b37d366afa6614e77e639ba26332388d1416fe42da6721d0f030487b861bcb3012342cd59fb546fae4 -DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20190413222219-f784269be439+incompatible.mod 35 BLAKE2B f74f76885a3c86b832d1e7e80ef9d282c27cc236a3e48ce3bfeb10bb5a5b2ee0820adcffc89c0e30b7a27493b9ee8f131cb5a151baf9c1b7edc8845d30fd4531 SHA512 c5cf4433f35fd5795d64388816ffe45b49fb7192c2c7bf4fad21e680cb35bbbbf046945c48e3a6e1c3d8cf528942b5c2eca85de9d8f70811d910c4624b53f2bb -DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20190413222219-f784269be439+incompatible.zip 21210 BLAKE2B 4528a715b184a73330d73f5ddea1288225cb3054cbead83b4d5c9a1675c2c6a66bab77a1b09591ddbd8929b31e76b3f9b8bf6de329527654e108e2e4cc48fa59 SHA512 6c077c8497e01a67d4839b82b6b74b13d1c2b5591a92b7f018a622fb1388bd1e100435db5fb9de19caae5c9cd1a647befed4da5e496fcae42afc68ead47b8d80 -DIST github.com%2Fmrunalp%2Ffileutils%2F@v%2Fv0.0.0-20160930181131-4ee1cc9a8058.mod 36 BLAKE2B 787cabe805d9f0e03a6271f517cb58f18796783b308a50becd1183382cbaeaed9d55f449a7dcfdb22c050859a7654dbf0131be32e36a3974e7bb49f4ed70a2d7 SHA512 61796004d8b6e98d8dff2423ea5bba89fbaa36ca91640957801a079c8202026945d6c3d1c37acd09a8e555d7c17ed03c3a8da4e2691f3046ad0d39fd4877c101 -DIST github.com%2Fmrunalp%2Ffileutils%2F@v%2Fv0.0.0-20160930181131-4ee1cc9a8058.zip 7634 BLAKE2B f911dc1d95ab7996840763c292cdc53253cc9d431c37b548b949c41095346a0ebc794247fdae59eed95bd482f80e9e34b7443cfae45146d0cfdb223fccb4d9ea SHA512 5316932d7aa0d07f66d3b04477d05411dcc22656723d943ceae684e6fca5b2312eea7d640f006f348cff0325456c3f3e6776c2c51239bdd8678d413fb1a10081 -DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.10.1.mod 30 BLAKE2B 54980427295e87f99bc189c9ec00c2167e9aa771cd8777d61cec8127a3eb19f718843e2e736a6d4c08877d23528bc6da810da0c61a1dc07620422fb1b5434684 SHA512 1b8b7ce4a8f0092f0b2a2395fbcafa8cfd6830183bc36fdd58e740dc9ec4fc5201f5eec2daa6e2effeb59f9e1c0ce986ceef838d16876c9fbf0fffad4b7660ba -DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.10.3.mod 30 BLAKE2B 54980427295e87f99bc189c9ec00c2167e9aa771cd8777d61cec8127a3eb19f718843e2e736a6d4c08877d23528bc6da810da0c61a1dc07620422fb1b5434684 SHA512 1b8b7ce4a8f0092f0b2a2395fbcafa8cfd6830183bc36fdd58e740dc9ec4fc5201f5eec2daa6e2effeb59f9e1c0ce986ceef838d16876c9fbf0fffad4b7660ba -DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.10.3.zip 244154 BLAKE2B c770944d112fe8352d48de60bf0ef0c656008eefbe1ccd0e498e3f129d948a77bb625b6f2b7f9b26998774bf1a5490d1106774caf2171e7c7d2bc3a8e2338ae9 SHA512 fba02794ec34d0cf1083c48373889c62be424b5b0b63a614d64bd03718bba0cd928fa5d6124bc71ac014c8cc8a644861e0630bbffdf56295e56c670fda919e3a -DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.6.0.mod 30 BLAKE2B 54980427295e87f99bc189c9ec00c2167e9aa771cd8777d61cec8127a3eb19f718843e2e736a6d4c08877d23528bc6da810da0c61a1dc07620422fb1b5434684 SHA512 1b8b7ce4a8f0092f0b2a2395fbcafa8cfd6830183bc36fdd58e740dc9ec4fc5201f5eec2daa6e2effeb59f9e1c0ce986ceef838d16876c9fbf0fffad4b7660ba -DIST github.com%2Fonsi%2Fgomega%2F@v%2Fv1.7.0.mod 555 BLAKE2B b182f5a37e6169f7e40ea33bdda2790e7e1b01c1e61cc9d109ca6b8803ce9161cc0c2e2ee857ef5af582b1b9317c58734683ac3e8a8d11c620865b3b12c6baf6 SHA512 a7ef7e84c93e09b01b83de08580bec055f0164d3272a3e2571707d0b33f4b4616a379d440ab3835d455d8d573e357a6df1163fa8415684d5d55af8e22c68f7d8 -DIST github.com%2Fonsi%2Fgomega%2F@v%2Fv1.7.1.mod 556 BLAKE2B 8e36edf565660234a9c939b93e99acfd61c30620cf45619158d5a87c102492333387de1bda35aa226695f913358a4385d1b8b768527d8a63d056ab8f13cdae61 SHA512 3c48b6f2cd9bc71efc218b11ae432776164936d4474df73510a785819c417fc894ca71f5783da77f323754ece56b681f8f1e9dacd5bf309f189997ba0b317dfb -DIST github.com%2Fonsi%2Fgomega%2F@v%2Fv1.7.1.zip 157699 BLAKE2B 15dfd7933294898066316bcf6a0943e1dfa8b6099ec8d7f05425561f622c4d81989a239d46543c37d9cba761eb08ab6a1bc6ef1fc8c8f48fc0059edfe6720ece SHA512 286608571a79faf71bc8cbc29a77ad4478cd2a1d6ece91bdaf4a7c056141a154a04c2c8a93612c3d6536a6064b9ac9198527888a3fc0cb7756ec41548e7dbd31 -DIST github.com%2Fopencontainers%2Fgo-digest%2F@v%2Fv0.0.0-20180430190053-c9281466c8b2.mod 43 BLAKE2B 42ef42def0f24844eed6bfc710d0c5070a2bee3a4f5aa8b0ec68f862840385f035fdf6b7206d7e15a94ca419af29f7fc86358aa6fdd1a014f71f5acbebc4c182 SHA512 2fcb2cf84eb579794ba81bc9f79090999b3fded538a1649fee55d1e973425a775dcfba008a11ec1ba873bfbd3c2ce13abcd99fcbd9b0ca67fd35925896bca588 -DIST github.com%2Fopencontainers%2Fgo-digest%2F@v%2Fv1.0.0-rc1.mod 43 BLAKE2B 42ef42def0f24844eed6bfc710d0c5070a2bee3a4f5aa8b0ec68f862840385f035fdf6b7206d7e15a94ca419af29f7fc86358aa6fdd1a014f71f5acbebc4c182 SHA512 2fcb2cf84eb579794ba81bc9f79090999b3fded538a1649fee55d1e973425a775dcfba008a11ec1ba873bfbd3c2ce13abcd99fcbd9b0ca67fd35925896bca588 -DIST github.com%2Fopencontainers%2Fgo-digest%2F@v%2Fv1.0.0-rc1.zip 27125 BLAKE2B ace23a65113f48afafaf52d19231b51238dba82a08a85dc615a0037b037530f3fa3bba1af1ad885eed9ca453aeaa0e2585d2f1b94cecdccccf2e32d36a86f11b SHA512 95dd5f43096dcde7c21338e393977b2d8ff3389b9c9b24ffc11df2cffc73b26f3f16a6406b10281add7d6d952ce2276639ba94929491be7792a2cb8f40746bee -DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.0-rc6.0.20170604055404-372ad780f634.mod 44 BLAKE2B e60ef6b775d320cbbd7d0d655e4a0d855f79c0f563ff3aaf0cf0a13485005c800680cb95535d57342c6f23a69da021089f7cb4d3caa3021852e1462126137887 SHA512 e7d3276e531b754a441e94acc632d7322837cc2320ced66e3e91e3512164ff84428a4665493bb3a7cf7e1057e82097bc54d0b811738b1e967b9c248b907d777b -DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.0-rc6.0.20170604055404-372ad780f634.zip 171668 BLAKE2B 3efdf3d8fc341991f6a3961da7cc9fd77aaa0aa158e04003551f798765f61ef2f740f5c641d8041234d06d4287d514df8b562cd122ea4e8f2f98b2f78c34023a SHA512 b3412772adb60cda1146433134d4a0a881db45394e43e5c7a8177ee1d10e179ebbca87a8086363effceb69a3dca7ff16352f5e8f9599b68e412641f1739574c0 -DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.1.mod 44 BLAKE2B e60ef6b775d320cbbd7d0d655e4a0d855f79c0f563ff3aaf0cf0a13485005c800680cb95535d57342c6f23a69da021089f7cb4d3caa3021852e1462126137887 SHA512 e7d3276e531b754a441e94acc632d7322837cc2320ced66e3e91e3512164ff84428a4665493bb3a7cf7e1057e82097bc54d0b811738b1e967b9c248b907d777b -DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.1.zip 170576 BLAKE2B 52c16c643c1e621cb967bfcfa1e1209b564dd81bbf1b0427cd5c02b85160c444fcbe2ad9563bd491f040df2c4c6b9cc35f6ec83f671fc00e3cd5f40c8ca3af25 SHA512 04aa87f93002428f1ab79190ea584b23363126390dbdd6c05064646e7c5c3710da712b730f8da194bd83c7b95f260eb1773fd8c1c9daa9f41891a765e6a21742 -DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv0.0.0-20190115041553-12f6a991201f.mod 38 BLAKE2B 3b83f93aa086dfd3028fedf54552dacb3d904867e62704526f679f2f0da0df8cbc73ffaa4e0164718c850d638d4a4d3d9d036be176be94b430d13da25e19217c SHA512 9aa2622003271b0763bcf11c8c7e39d5a5259deb17b7463451ceb13a9fd46a8786ea9a31936e22919ac8b871458952224687fef8dc87286ea25294945371c9f6 -DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc10.mod 38 BLAKE2B 3b83f93aa086dfd3028fedf54552dacb3d904867e62704526f679f2f0da0df8cbc73ffaa4e0164718c850d638d4a4d3d9d036be176be94b430d13da25e19217c SHA512 9aa2622003271b0763bcf11c8c7e39d5a5259deb17b7463451ceb13a9fd46a8786ea9a31936e22919ac8b871458952224687fef8dc87286ea25294945371c9f6 -DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc10.zip 399911 BLAKE2B 28f8edfd3757ccfe69cdfe15f4e4a80dadd7ad7ced50e60d5014db1d0f56f57cd1d2fc64cfc5da71cfd9c9c16c157b983b76e4834c1dd8c559b3a6bda4f4b378 SHA512 e007741726693345d12a16be9bb5e8ca43e185686bf08c137f0eef6140bb702e35fd27e1f1f0e75a41d8c749f10c7a7f91abca88f60f95d35a41d4c1ee116049 -DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc8.0.20190906011214-a6606a7ae9d9.mod 38 BLAKE2B 3b83f93aa086dfd3028fedf54552dacb3d904867e62704526f679f2f0da0df8cbc73ffaa4e0164718c850d638d4a4d3d9d036be176be94b430d13da25e19217c SHA512 9aa2622003271b0763bcf11c8c7e39d5a5259deb17b7463451ceb13a9fd46a8786ea9a31936e22919ac8b871458952224687fef8dc87286ea25294945371c9f6 -DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc8.0.20190906011214-a6606a7ae9d9.zip 403306 BLAKE2B a2f1f6710db078a565c3ef52f0d28955738d94466dcb0f62536cbc9f6ecf2071a637ce7d3b4ffa66f9b4da26ddb30b6a1a6d6fb1246b8938d2992573b3887c4c SHA512 6b0af281a50e884d77531e13dbaf5b067fa924ccc889f2d861f8a6eaf9f1c407accf5f2b6ab580bdf17ccda20e8afd1faafef16e8a6c29b3f111e3fc121728af -DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv0.1.2-0.20190507144316-5b71a03e2700.mod 46 BLAKE2B b950a3627aa8b0625601e8e2ed393660f8529b63e02167e08c9890d22be7f6d6e72ed571ac4b80702e44a7caf7e1a9647e9742d8c18938d1de37631e7475d56c SHA512 bc65703ed85e23c1b8c2e4a1e1838deb91729a396e28e551cba9970ee06aab653da4ef43fce22615cdd8389efa6228e5cc04a8e749c99457bf192208b882e3e2 -DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.0.mod 46 BLAKE2B b950a3627aa8b0625601e8e2ed393660f8529b63e02167e08c9890d22be7f6d6e72ed571ac4b80702e44a7caf7e1a9647e9742d8c18938d1de37631e7475d56c SHA512 bc65703ed85e23c1b8c2e4a1e1838deb91729a396e28e551cba9970ee06aab653da4ef43fce22615cdd8389efa6228e5cc04a8e749c99457bf192208b882e3e2 -DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.0.zip 78774 BLAKE2B 09f57d4427503eab35f8b1d8a26769eddec6b61658c4bdbd9cfe1f4eef1b13e893301fcf0f32b2cd938d633e757e3ae610bca5212117a22c5acef5f840593472 SHA512 8f2cf0f60644c5106cc8b9d7e4634ed869c4b56247e3d675f1746cac2c50013667a64b2d915e9e6c1a47441fb5b5c711d1e55ef35f6aaa73e44b762df2a7acd3 -DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.1.mod 46 BLAKE2B b950a3627aa8b0625601e8e2ed393660f8529b63e02167e08c9890d22be7f6d6e72ed571ac4b80702e44a7caf7e1a9647e9742d8c18938d1de37631e7475d56c SHA512 bc65703ed85e23c1b8c2e4a1e1838deb91729a396e28e551cba9970ee06aab653da4ef43fce22615cdd8389efa6228e5cc04a8e749c99457bf192208b882e3e2 -DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.1.zip 79636 BLAKE2B 54d182e4edd486a8d2ab61cac262b8227d392430730850cc670a3dfc038c25325a60056565e383a94d21c5016c28d86255185fb6cd7e75edd0f99e8e87d8085f SHA512 1674aba312894bdaa50e2d5b91a65ac557daa696289f395adcc1f458dd1298c305453e38b85c7ff6c125ecb7ba57904f4e23bc613b0ab09171018223e1f7db36 -DIST github.com%2Fopencontainers%2Fruntime-tools%2F@v%2Fv0.0.0-20181011054405-1d69bd0f9c39.mod 47 BLAKE2B 0eda9805fe0e1acdcc1e7b2693e72e39ea416cf57a108b1847491e1f15f8a7965c8aaa77baad1ae6148f39d36b1fc5fcf159b54111bee0d20bf2fe8edfdf85e2 SHA512 4e53e67b276ea3fe8a3977bbe72758bb2f844e22cdc3e23994176821cea51b10f5e802ca3db848a8b3d00a146c133a89271ee76158c478683b393682806400de -DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.1-0.20190929122143-5215b1806f52.mod 41 BLAKE2B 183bfbb35eccb78acfbdcadd1a80aa8746354813000d559b8e597e5a6447812060c8e4daa2f8ec8fdf20ee8c04bf632d54f0445d6d81946c4f629e17748c4a39 SHA512 7aee5e544927cd9673f3cd9b02ad6607ed56e53782160a20c8e737511f0a021ac38ac0ad3548808552348a3573831f5c4bb3c85625cf1dff96cfa39b9a30129c -DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.1-0.20190929122143-5215b1806f52.zip 27376 BLAKE2B 636f28d65cfae0e099fbfba16137a3867397186d9ccaa9c1edc8448dcdee90bf997354e2282287b1b2d32368b837a406778da47fdd93ab255666df5f4e7d5dc4 SHA512 94affda6f4f7bc17e073e13273d6cddf238a7523ed5e9e03dc596633aca90a8c4a97fde2dcd3fdcd8d37258633df8b46aa6415eb910dfd8734464e41d122e014 -DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.2.mod 146 BLAKE2B 5f1b9af6a04921a636cbef00a5dce3fcd8dc2836d8922a16b4abb1b06f898b9fbafaafc732e5c43dd774f0bc4416e186f936afd3734aa08be41908ff88971aee SHA512 737cceb5d3f0b5a231216e0b264ef250e550073302e4b3ff6fab616a90a4652a4ca7051eae98dbeaf1cd6d13ab703bdd6cb12e17ed7d2c44c0bde3a0f0a435ba -DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.2.zip 27107 BLAKE2B 0fe74b88e85a3e508134750d89d8276f5819c8c73cfb06f69f685c7dc16e690032c13a8fc3367e5c27eb9f390c8fb46fdcc442fc9cd81c56b8ad67e7a857a14e SHA512 ff9765aef5320032664d33d84de687854dc304a1c311c1712a98105d8d3d4f35c286533cb91b279439141254d5772689700a0b34d10bb5313d2288484536b60b -DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.3.mod 146 BLAKE2B 5f1b9af6a04921a636cbef00a5dce3fcd8dc2836d8922a16b4abb1b06f898b9fbafaafc732e5c43dd774f0bc4416e186f936afd3734aa08be41908ff88971aee SHA512 737cceb5d3f0b5a231216e0b264ef250e550073302e4b3ff6fab616a90a4652a4ca7051eae98dbeaf1cd6d13ab703bdd6cb12e17ed7d2c44c0bde3a0f0a435ba -DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.3.zip 27482 BLAKE2B c4c58609d2a04122066eedf5f3e0a4206e2150dd6452e5efa48a94fcabda80329fc1163a9a987a1640a36619fb1a81166f4b1e178507284abab9d3a329c642f5 SHA512 e884a87848b78d8d3700dbe2bf200a788df708220bca8ad82b2a1ab5554ad4ba0c2287ee742b142b213c269a76caafea2e3eefa0d622fc1dad85982d07f7ae46 -DIST github.com%2Fpborman%2Fuuid%2F@v%2Fv0.0.0-20150824212802-cccd189d45f7.mod 31 BLAKE2B 0a64e2a7ce87c9805064a3f5f88293c35baa03f682945fe626a9b2fcae2905152f80766d7686e7cec0e2186fe57f850875e1f893b58df1cd440faffd9c0b1b7e SHA512 25d317e15b065eb389c517d977a770fc0c8965f24992ab4e1b665679e8de30625cc53b382863c93f9448cb365c64e2a9adea4202c3b6c224e840e78d1403dbeb -DIST github.com%2Fpborman%2Fuuid%2F@v%2Fv0.0.0-20150824212802-cccd189d45f7.zip 17595 BLAKE2B f088f958031d2a658e22930595d44d7b910aacb8d55b9546e50d68bdcbad48a925d944185cd905f8216a03e58fadd96eab2dbc972604dcd8b2e0925ebf006545 SHA512 b83ba8dbd390ecf9555738896bacffb462ec343a3ec4910e76d8f6ba101d89f76a119ac57a117c426c4adebc20880ed3e68e73d516c0000f702479e814ef8b8b -DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.0.mod 29 BLAKE2B 7fb53b19bd1be0e783039647b42ecbe2070f51af102e473ec6d3544eea0ffa5863f1874ca1615348d5f8abbaa39c841b4fe18d43a8a615fa648cf22f35955e38 SHA512 0c156e21d35c45a89c1a1b69ff1976b4f7511b3870bf96126121f5a5effa3723eb45bf080e840d5c8b96898c65207dba83eb3e1a23668dd8a5e20ee6be775cc0 -DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.1-0.20171018195549-f15c970de5b7.mod 29 BLAKE2B 7fb53b19bd1be0e783039647b42ecbe2070f51af102e473ec6d3544eea0ffa5863f1874ca1615348d5f8abbaa39c841b4fe18d43a8a615fa648cf22f35955e38 SHA512 0c156e21d35c45a89c1a1b69ff1976b4f7511b3870bf96126121f5a5effa3723eb45bf080e840d5c8b96898c65207dba83eb3e1a23668dd8a5e20ee6be775cc0 -DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.1.mod 29 BLAKE2B 7fb53b19bd1be0e783039647b42ecbe2070f51af102e473ec6d3544eea0ffa5863f1874ca1615348d5f8abbaa39c841b4fe18d43a8a615fa648cf22f35955e38 SHA512 0c156e21d35c45a89c1a1b69ff1976b4f7511b3870bf96126121f5a5effa3723eb45bf080e840d5c8b96898c65207dba83eb3e1a23668dd8a5e20ee6be775cc0 -DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.1.zip 14339 BLAKE2B 9332d9cac7dd3aa2f4d756f0d92c911cd0fb8e00232db3bb013a0ef12addae0aea2388ce3adf79407a81e13cfe9cd4b45aeb2bc9f8b84b4e3c5dfa63b59d46a1 SHA512 f97471d54c5e73b3f59326847cdd4dbbb142a9ae790df83493f11a851d716fb407e01a857152812caf731b8f3e0f37ae151ee83300feaa73152173f6cb5b8515 -DIST github.com%2Fpmezard%2Fgo-difflib%2F@v%2Fv1.0.0.mod 37 BLAKE2B 94636062c94f8ff68cdcab7593a3acae7b9ffff616cad7b1d5c9cd147a4a1042d33666cbeed6fd816d6793113abfb595183097dcc46de7a3dfadc1423ed43e79 SHA512 c3d5c48cdb8ba6af7071a07cfede06e0ab67e3726d9de592a952fad40167dcbdd9621dc2c4df1bd3c28eb99d70b1b6d8d812441237c35bf492e5b7f07bd33902 -DIST github.com%2Fpmezard%2Fgo-difflib%2F@v%2Fv1.0.0.zip 12433 BLAKE2B 0c911c9d173080abd8edbbab1f47222343801d8eeae36b4add24773e3282fc2a39283fdf519a3d4483e39cdb7d9509b8570d151f46841ac1a616f312dc4cb0ba SHA512 3b85697185ba85cdef6202444ab6cabeabfad8a03d66b3839a852586b1f91ddae7897a57c8c138d5647022aa44906c7ef3c5339d520f90eeea0742a935da8cf2 -DIST github.com%2Fpquerna%2Fffjson%2F@v%2Fv0.0.0-20171002144729-d49c2bc1aa13.mod 33 BLAKE2B 5d9bd69b984101e78df4f8137b633bf94decf11dc822cc2940a8f4566032975c5e9041264bac3dd24d7a877e62f21d04cf62005c1c2cfd9bc29157c2e36881d3 SHA512 04a5987e65bb878dcd0b5a364d677f1a87926bf545333ae18ee97e9eee281965f126001e7811d6dfc3b0fd22b8cbd719ddb2a3596e30f2a6a99222d28a052161 -DIST github.com%2Fpquerna%2Fffjson%2F@v%2Fv0.0.0-20171002144729-d49c2bc1aa13.zip 151613 BLAKE2B 743c362fd207bd06ce1ed2eacbeeaaecd500eabbf7082a26923d2888a65ae4de7cbff51cb1061f2ed996ee66b975b4a5a0b3d1371fec70a1a8d9d3ee28a1ac82 SHA512 7fc538a4c342416dae749d39e87b5fc53aa273a4af6e785906dd79338878fcb78e766404b4f79462e4b87020b7f0f79b190cf0723901dacf297edfa53014d214 -DIST github.com%2Fprometheus%2Fclient_golang%2F@v%2Fv0.9.1.mod 43 BLAKE2B 2bfedb841a10d8d6a861189203de74eb9bc6bc37bb10cdfc2404b1e972b7672568ed27d235e143d831cf2f840943c039398296cb78f1309f00d1ad9e0ce21056 SHA512 191cf6496c41b2b82c9a8f2ab2aeab63ede47807160f7cf746c548b3e92e367fc8f80ff8c6efbb7e91ca5903d5672b235c1ab9f14d3f9f988e8ff1c821d3b8bf -DIST github.com%2Fprometheus%2Fclient_golang%2F@v%2Fv0.9.1.zip 190367 BLAKE2B 3672fecc77f62ce656fd138e1ec906068a300f147f9daef304802a813578dc50b873540e16cdd5fe03940a612c0737a6b67217e8bd6fd19eced29e8c1ed875e1 SHA512 13f04c5c3978426e5961c5d0b2494497149352ddc5cb7a528b69dab2a38edda2df0d3440445270b90d2588bc4d77ea2164815dad475d3a50f0898e8a64999b61 -DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20170216185247-6f3806018612.mod 42 BLAKE2B 5519896b44b7bc3089a8965dc61aae63745c64ba1a390d3fff1202be7f8dd34f59862c04b49e377d6616a93a0341662becce65d431d445703a160ba49eda208b SHA512 c84dfe43954b19c1e4ac5ff8738e79db469f3bc1dc55e69b12503d0a5cf125cc74f4797ddbfe64b2a1bd1e2940575c32678671d51f67161c4f5b53b2a85ac46a -DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20170216185247-6f3806018612.zip 65956 BLAKE2B 6d8aa01b2ece4e8779ec7ba58dadd27a5b1ae072397188eba425e7f7e189c62fb7192f12cf0174f76e6aeb7d43a0f32b4419b283664d9e1b25c04794ebb2edba SHA512 e6ff1af5896e5bb9e3753288ec3d1bb74ee2a32b8f9614d754d7c6d94b3ac6048d78da1751dbac8a67c36e1e9d6d226a1ee962765bae30947ffd8a9c414edf22 -DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20190812154241-14fe0d1b01d4.mod 164 BLAKE2B ed42e8dec25021e488793be8e008c34ab5bdd6b5b884762d69f40d6c8968bb539041920ac7108e685ae56f2ef71b7174245772d96cc8f20463eba71580afae29 SHA512 4e0e6941b43c17cdce0205e9ba3d9fb18937f426ea2ac9a9e53396c906101d6ec2eb501cd8a791ee3ba9a32185f86495e9189134b8a9858134c73238d98ce0f6 -DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20190812154241-14fe0d1b01d4.zip 69219 BLAKE2B 6ecc62f2f3ae4622ba6e19c51f7ff7ca3bafcadcb38cb7a9d79dfcc2ddd7183d79dca8e0d6b534f5a2dc508c21e0fb349310b4feaac35c1f7b1166c3febd1228 SHA512 934c3e50ebdc1ea65ccfd4de1e2e0f0ebdece54be1cccaffa5e325c667ab22bae84a7fc7ead1066e75094697a86452fdc36fab57b955f42337708de32e7eec32 -DIST github.com%2Fprometheus%2Fcommon%2F@v%2Fv0.0.0-20170220103846-49fee292b27b.mod 36 BLAKE2B 39120b6af83d45857c990115ff52d8828278a9ce158b01621d8dcc517c23ff139532a2c2e53ec97616f0c65a2e0db3ede7c5fe59eb33be277e2c60650362b232 SHA512 1b262da0100655c3a56c0e551866491b81d2b88fd5fed9cc43a57bce3634c88c82c798ed1a823237011f6be68b5f0e1fe8284526cd68204851de30a44fc34fbf -DIST github.com%2Fprometheus%2Fcommon%2F@v%2Fv0.0.0-20170220103846-49fee292b27b.zip 103336 BLAKE2B f707e3b48d8c3eb8491a4e67871159bbea1068029b8b72bb79c60b832d201f88db7888be037028cb81f5278e33ebc28cb702e6b693f788df88420113975aad03 SHA512 065c4c469d6497da3ae424eee127bdef887520dec7846ead84b1d5a3f6b931f06aa5576598ff924b7ee0c0108988caaf917f189d9fe9b65dd202f7613e8c0113 -DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.0-20170419201554-1e2146578273.mod 36 BLAKE2B 3c6acbd1022261065a321c6f3cfa2946b58011f45fae9b98761397eb7e5e0984dae4ea34c4f837f798ab29ca8e26ed3f07771be10e500a99ce7e5e9f4c401b5c SHA512 05f032eba0c264b186936c2b9831624a01999972d4f1bba6aa15c452407eb10d402f1ac674eb41e2d24fa66e85ae2e56efd2326fc4ecc741169b9908d7935335 -DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.0-20170419201554-1e2146578273.zip 51433 BLAKE2B 2bbe06abf0100e465d21c5815c3b05f42004e680441dc525afe9c017ef870fff8425d2d84e76d9a847b03123cadc1cef2b704b5c32c623f19bfd8d5283b057e7 SHA512 9ef7bc49e3cd7f511fc6ad40246ae58d84b6ecbeb292d9eb928d0111fec2933e217bb797f201c8277465ffbc170b49ebc641d3a1367b3a30475ca6f2013e1270 -DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.0-20190522114515-bc1a522cf7b1.mod 98 BLAKE2B 23576c142554e5a22a11d704cbff1bbaf1029518ceec7f04e22aa849763a7aa5e26ad1405a8cbc0d87097264a5fa7cfa3d655cad18148f5de6209a06580722d3 SHA512 0897ba1b7b4a32f206763327e138d3b460194097d19bedb8ee1bb6889b9d188afae9439178d1c2151fbe17b7d18545cd6cfebd050bade93cd39b435b35b6acdb -DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.5.mod 136 BLAKE2B 49b2b47ca2cb64a1522a3719c1b46dc6f44d3122d3a05ea475dab88e89336aae3f396082f4de0f89400a0e8db85208446582a226238a701fb92c155a2e85fef8 SHA512 fbbbd57eff765585e67074e5c278d7d3077289c3d13c306147d6c3efb98232ff317ad92464ba768fc3d921b4a09cb3f3ff5c5480c89a01ec821bc86e5dca82f1 -DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.5.zip 188550 BLAKE2B 6163258786861881f6a7b621f8578e8dbe3eccecee396c3564a88686cfe72584e234f593847ee5cb4fed6a6a1009f1f14da8238f967ce5d68ff919410d25d8df SHA512 42a764174dc4a56c6e27b0e83004f042b3fba397039a923310b8bdfc658ec24096395f27bbd69e8275c1d0f0ea45ed68c2015ffdcc74b6186c6d1497f0ea1e6a -DIST github.com%2Frussross%2Fblackfriday%2Fv2%2F@v%2Fv2.0.1.mod 42 BLAKE2B 23dbba19737db7327590adaf3988abb9b5548cb3f959a9746a3b745c51f3c1397f071f2573a413a088f58e32959a2210c2b5354c47c263e90ad2ff1506872a5d SHA512 ac376a387fa39fe35dc4d073d8becd74e79f52e9d36b0a6628740dfe0e7c1f4fb6533fc262212663b105afcaa104082e055fa87d20cb3068359faae6dcba7738 -DIST github.com%2Frussross%2Fblackfriday%2Fv2%2F@v%2Fv2.0.1.zip 110026 BLAKE2B 862c858d51e59569c38e1304de08c256752db260cde7f7f44fab41d22695999fe73483d3854166f4e8d3da9b4f8e41b7999d7e44510ab8c2ca6c0120173b77e3 SHA512 992df87104aa66dec048d39496c85819cab19bc890cb2c60326660d011642f49cd926b082d3eb4136b229a6e4893ed023a133e4bf83a4993c534b24e14d77b4d -DIST github.com%2Fseccomp%2Flibseccomp-golang%2F@v%2Fv0.0.0-20150813023252-1b506fc7c24e.mod 44 BLAKE2B 74f7855fc5488715e3e4b73dfbe83b0a35a050447fc3369c06c532592c7678cdeb28e9f1fc7ef4f5c14fc90c458d8654baec12ab0453117219ab7b865259ab63 SHA512 b9123f2c64dfb2b16e7081bdd7cd3e5a54f911387cb13ccd5c50c113b3ad75ccb64c754123a3b41d916b4a8d089512eb65a5db5eb303f30118775eea553f1d8b -DIST github.com%2Fseccomp%2Flibseccomp-golang%2F@v%2Fv0.0.0-20150813023252-1b506fc7c24e.zip 14720 BLAKE2B 94485892a25edcfbf3abf1afddb6c718ef4aca089326318752083d9030fd0fda7b6e0e6aa9d007b99143b3c94cb8e76c11df0dd2cae38a27181b9455d7e7c5b9 SHA512 66bfb937afbed88d8a7fe3085888636e525f7c0561ae7acad4a692f53c15c50bd33ef0f6d8f00cc316440d0c6b9525922db3c30a7c335796e99822588efe4526 -DIST github.com%2Fshurcoo!l%2Fsanitized_anchor_name%2F@v%2Fv1.0.0.mod 49 BLAKE2B 47bc5235e81d233e28b446ec2403accc442b4cc1ee956a0b7d47b5dac2a525f22bba87d05c3fe09179837860655f27191e073a3f6d7d0dad81c9a750752fe5f8 SHA512 6f6b924c2a3af28ef4342cdf8b83b726f2c409accf19c6ba0a4a47c6ae61857e4b69727fceb9e9e16fb8ce660a7181952714d49b6cafaacb282fa4e8af6e13b3 -DIST github.com%2Fshurcoo!l%2Fsanitized_anchor_name%2F@v%2Fv1.0.0.zip 3399 BLAKE2B 348c2171bf3404d8b69166fd412707d8a348e1d808618036de2ae01fce77e3880fc782ef301f9b4135a19d81ca9ded5cc0cc4fd73d36b66b121b7f0baa73df51 SHA512 d02d5e4b8a24b1709c053138c4128d4bd6347d4adef95d1e25141935cf560fdcfd5c2b7837d6e690f175f1cd5a21b0279ce97b8b3b66d5e0a5006e4103b25f46 -DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.0.4-0.20170822132746-89742aefa4b2.mod 34 BLAKE2B 9ff118e3db6f2a49d8cef81bbb78af4ae29fbcf97955758c08c4a9a610fa66f1f6da80dec5aff3c657bbbdf1fd5330331e58dc46c2b2bb657438ec0879a3c45f SHA512 186b34d707aaf1557ddc8edaf49fbc559024f454bd560ca8451cfa555abc211cccf861aea94018363547e39140d9e507c97f7a3c87bb9f1e5d444bab4c531e36 -DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.4.1.mod 337 BLAKE2B 41471db637c5c0363cd36be6d16a6228671ce9658ef71103ad2122a2cd8cfc13c30b87bf2b34df7ba9d6c1fff1ac821462fbb86b622c274cf26a1e3ecb7fd2e9 SHA512 29a4efc27c658b047fbfc6eb2ae311753b01fe878cc733e2fdfd83f5791b3e30ab50b08addd300dff37e7880f6b57662ac0cb0f4b98df2c5a5a9f7d555bc98a5 -DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.4.2.mod 337 BLAKE2B 94ce7d2e23281061ee0ac0b1be2f8c3439c86e62c56ecf556a81123d57d819b1e0e95ec3b7c6425f13abaaa1683942b7a3d0bb8ad489577284b2a6063c777b37 SHA512 38a79599dbd09661614d54fc92149fe581575b7833e89dd73a3f754fafa4bc549c6c9078753ab8e2a85ce2be3ab81e528e29b6d19e7c329e0cb0f74896d2e418 -DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.4.2.zip 58627 BLAKE2B f4276f0095188324c06e4412303ac19e3006b18823985e26ca49b2de54ef58cade626b3d2439f5f2a29c47618420b890951f94e5a4801dbaad4c3294f6555a4e SHA512 3bf6be07dd9a97bde938309857e16dc425587c100e35b2acd1a6f11a9ac196238b0844abbaded43fcc01be0664efa15b64f159f6259322043e3046e7d361dc20 -DIST github.com%2Fsmartystreets%2Fassertions%2F@v%2Fv0.0.0-20180927180507-b2de0cb4f26d.mod 43 BLAKE2B ea265a40bcaaba6e4401504643cb9bc2f775a23792b1802d6c1b665121c49db7d4d850ba03c31087fbd6f344b08349ce00a106e430c8690b8016c95318cf3973 SHA512 222b0edcf745e14eb775eac28668dfa0c52051cbf302ec441b58d75846fc2570a0fc2e616cbec68f6312a1648fd7e6997b6597b160b1a7f84c1c500a42e93e6d -DIST github.com%2Fsmartystreets%2Fassertions%2F@v%2Fv0.0.0-20180927180507-b2de0cb4f26d.zip 81760 BLAKE2B a5767557b0e96fa3bbbace46e08d6a2167be2c203a44ffaadcf14079a23e906ee9197c8028fb29bdfc596d4f39e7bdd29993a1a520c36c8b08c5c5b6bd6bd2cc SHA512 e204307d5a06550292a4fb6e44912260aa5a7f9fcce0883d8abb324a53673512218982b1893e7d563eb7d6313ac98a8638072aaf7b5d66d359e82832f2a8bb2f -DIST github.com%2Fsmartystreets%2Fgoconvey%2F@v%2Fv1.6.4.mod 302 BLAKE2B 69fd290c3e72f4ee0597f480bae8647d80ab5c4acab21ac3ea19e847e3af4ac91a767876fac04c94c2db8bc782a24577d3478d3d0653f673609f2d57d6cc3427 SHA512 24806ff2cbf2719f50bb37cc5ffadeca1b64c7b089a1647695b45d647ddac16332504c7026813b4ab9316e53e755ad0ebbf6db9ca88179d0526ca2634e27e25f -DIST github.com%2Fsmartystreets%2Fgoconvey%2F@v%2Fv1.6.4.zip 1521758 BLAKE2B 653e697d76d392b18c09e5c1c96734a737071667345b9d6ff9c9589bbe74e1c50849dcd7fc00b660adc1aaa30366aa9ca93a94d5eb4e605f7897d9714119f926 SHA512 3bdd2bbeaf755618d9fa7f324814497308361cb0f3f93a7ac84b9fc01b79ab346353ff0a022d3d85e74aef57b3773e03ea9279d0a60de317a1c57d5eca2d1507 -DIST github.com%2Fspf13%2Fafero%2F@v%2Fv1.2.2.mod 64 BLAKE2B 51fb4de1e12106663228a747aa9e5fc135104573154f2a33f2a6cd2a927873efeb19bbb6d7a0a74fa1c7050683ba40d176d7c9e2c32b31e71aa43f9284b868b6 SHA512 e091de41de8e320e4eb47a082cc419a6d102791c888646a0482bf4d2b91a9f357455fe59ef0657e043dcd021441d6d78fe89440db3f11d4d516995903e0aa3b1 -DIST github.com%2Fspf13%2Fcobra%2F@v%2Fv0.0.2-0.20171109065643-2da4a54c5cee.mod 30 BLAKE2B cb72701c052ce4059500f4c6b3d0c4fb336d118865bf1f7f45ce0b0279e1d01b6e58d49f82182c2523681a97bcaa7a70216d63ceeca0ea1d09c1921226f6bc4e SHA512 ea13ed8e166d16a7bcd14a7cde90af1cacc0b05995d1c5ec245fa536208e0cbfffd689dd460d66c0a1ad315f2b0ae9f4b803ed72bcdfd89c4a98a7ed934289c7 -DIST github.com%2Fspf13%2Fpflag%2F@v%2Fv1.0.1-0.20171106142849-4c012f6dcd95.mod 30 BLAKE2B 18c9fb79a291aaf800991a296c8d7b1933cf45bf56082301a64ce17ea64dd15fd304094fd4b0561bd99c48ada545dfe7fa8cf47a15593cd3166eb66657a5e114 SHA512 d08b4540b799cee9c5f088c4e1fe002c9fda86f1634380409eec1404598b84376d3ca26b4c1cbcf58bc19234ab56531ab11db8a00c6dd2e15a53f3b4ae757efc -DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.0.mod 32 BLAKE2B d698910da1ef00a70a1673b8c74105de195020ccd95d1e70c5dd1e1615210886ff9acbc9cfd03f46e99f5223b60b04695b8d362b9e0edd4e485480f802bd229a SHA512 4e366e5a60559a8863cb2a50280deb307d8bf885ca5440cce1b49a084b4cc4583b3481240125f35f161226592a43f2c0a426152f117d79b68c92c72a93f751d5 -DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.0.zip 34637 BLAKE2B 9e26766ed5717903173455e60ee1b690779e286b6be3cc22f633ccf26592839d149f813a1b92775ab2a447f0c1a20960f956fe5aa4a7c56abc6642b58b7973e3 SHA512 968b76a138261cfee0d1f58ede483741328968e24d073b24affdc7ab9cbf9bb76dd9fa1785423c49471c02ea4804810ebe673bc623c4f72389b2654a64a565e1 -DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.1.mod 32 BLAKE2B d698910da1ef00a70a1673b8c74105de195020ccd95d1e70c5dd1e1615210886ff9acbc9cfd03f46e99f5223b60b04695b8d362b9e0edd4e485480f802bd229a SHA512 4e366e5a60559a8863cb2a50280deb307d8bf885ca5440cce1b49a084b4cc4583b3481240125f35f161226592a43f2c0a426152f117d79b68c92c72a93f751d5 -DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.1.zip 37190 BLAKE2B 7c8b79cb736f53337fdd2878cd1d745a6da3d803c3d3f6a0ed53a86f1d4789d2c656c6e7a17f90caed496fac91fdc89fa66b1de7b2caf97409114aa59658efa3 SHA512 b2af82dccd20e9539d72c8629f2d4babd573f711a810fa77e629fec897a614776cc4ff857700c0b6eb32370a13d122504c0a4abdd3d9111eb8ac0938a0e7234f -DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.2.2.mod 35 BLAKE2B 0357260904c9ba41892132c7e07d2add9b10ce4a09e8db4966219d1f515f917581e2afa0987094c90759634bc2aeb66e758074e023ff331a8337f5090c0102f6 SHA512 5b7ce867497852e4918b8cde5f75ecf2f24b9c95ad112478ac132322e904243f1cea3d16f5731646efb669256dbefc129ac70a499c8b1d25403a14c7e4fad10b -DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.3.0.mod 154 BLAKE2B 60cd7801e7cd33746305cd636b048b25a86270ec3b29a21c3c078c7e95b769bce7e80c2c7c5474113786bd788c7f88f3719e34f02141038e0d161b36e32f39b9 SHA512 bb808fad059f5abd0171e4bdc724411eff2c7e8d303a4ffb3608a00e21bb3cfafe9e83b4b4e9bccd42c9a4331f67ddc6043e3dd5eaa9a122c86626eed43a8383 -DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.3.0.zip 83537 BLAKE2B 6d6de57cc5e393aaef1cdc7e2140143eb7fa324bb2ea3b9f63bfe1e8652c02d24eb441fc3b435c6b287f165c5540a008a7c21ab4070d8bc77c77e6fb608f7e46 SHA512 c5cd06f825bbfdcf2ae58ea21edbeea03c110de3fc20fcf69db07aae26c9ae67a8ac57a9ffedec9b3b4f1f3b016089935049d75d92a9a03e45ce6345b4c9c611 -DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.4.0.mod 179 BLAKE2B 3bb7cee3118f0d335ade107dfefc3a594dc3883564fe4c9e96d615e179d394a49a3d6cd6584ba9c684772bc3dc6479af6a168dd3841c03957252667384f6ba11 SHA512 243bf1f69c146252164ad72f853773dcc77f15d7c9e9b731bee26a95e7c8f4ce9ed9738db601b01edb82f4b3808873e1f153a6d4a0c97be0babbe65abc0f8d52 -DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.4.0.zip 90474 BLAKE2B 2f79f0cac2c15acaeae764aeb640534f58ec2ae86fe88a82533498e718cf37d67c563606090ad39b38e22ffca1e63a25cd881d6a472b862ddaf150c7d329b16a SHA512 a047ba8d5f529d459fb6ae8dd39367e6f6cd2e785e90f54a5f8759ff76e4cfff990f1b8c1e0cf49c67b97ca8de36ecf8fdeb3b8f16e579aeae2d563d38da69db -DIST github.com%2Fsyndtr%2Fgocapability%2F@v%2Fv0.0.0-20170704070218-db04d3cc01c8.mod 38 BLAKE2B eafcc0e8c3633f2d4c2cb4eeb38eacdb7d029944b76da9ee611b3fd2d3b82d2adfb726405168a34f70251be920da17fdc6c70e8052720a6093c788dd724d24b3 SHA512 1efa76d27434ede74fd37d57c1673c8a60cf06248a73c425b5bd08dd068d6b50166b17a15b52d0c059218479fa3976e80e16cba08f671e9ecf7744cf5daa199c -DIST github.com%2Fsyndtr%2Fgocapability%2F@v%2Fv0.0.0-20180916011248-d98352740cb2.mod 38 BLAKE2B eafcc0e8c3633f2d4c2cb4eeb38eacdb7d029944b76da9ee611b3fd2d3b82d2adfb726405168a34f70251be920da17fdc6c70e8052720a6093c788dd724d24b3 SHA512 1efa76d27434ede74fd37d57c1673c8a60cf06248a73c425b5bd08dd068d6b50166b17a15b52d0c059218479fa3976e80e16cba08f671e9ecf7744cf5daa199c -DIST github.com%2Fsyndtr%2Fgocapability%2F@v%2Fv0.0.0-20180916011248-d98352740cb2.zip 14006 BLAKE2B 98de01f568485c6909fd0e98a46e2cb040bc556c175948af267453cff5c750c32e95b27609b513073d374da19a8521e62f7a8cc195e0eb993662e1c443cbbfd5 SHA512 7782b65f0d21a519d280f1655257da7b15e5e433f3eb3ff4bc963c81fab22cc9d18ffaea0786d9a7e9f5f32425353c055ea8fcc1daa1e8a30caac47ef2ef31b1 -DIST github.com%2Furfave%2Fcli%2F@v%2Fv0.0.0-20171014202726-7bc6a0acffa5.mod 29 BLAKE2B 4f20ac8fb7beef2b678cff290a28c8125d368504aebfcde33e746d3ca7b9606804bd94c59c50fe328da4c1c592b8768b1aad89bc1d22ddf76cbc88d0f0f76b74 SHA512 5edcf2aac39658fc7e60d5086b066470c6d6213b66a2432bc35c6f67b8cb37a66a67fd97cdd4b8fa1b8b1bddfd544e4aa9838cec06806b89f8e1447e3c61bd2a -DIST github.com%2Furfave%2Fcli%2F@v%2Fv1.22.1.mod 180 BLAKE2B 5d858ca40ba2af791726707bdab12d76aebc9f9c9ea79e49a6125308b079cb945d6ed06ca2425116f19604651eb56f29b3ec8d79fd9f38ed044e745c9b73ddb6 SHA512 b5431ec3fbdaf9efda016ea275ff597106916f5d5781b2ca82e075e42da98f6c5d34a00410fe65ac3a3e64b3ac0e1ab02e68579effc426ccc5ee19a583c44d2c -DIST github.com%2Furfave%2Fcli%2F@v%2Fv1.22.1.zip 103935 BLAKE2B 3c8512512515eae07ff3690657bd8800880246c3cd667dac372268d59e0a6b2e4f01d2879e121af2a4535300404d9265e491f1f1792e30e7eda7604f121ad0b1 SHA512 28b5760cea9765d971fa36f8465b6f9ad3eb507af619f7782df86da44cbe61de5c95353bdb64b2a151c170f5e1afdb14ef4aa6bbcd9734aec10a1b104487ac7d -DIST github.com%2Fvishvananda%2Fnetlink%2F@v%2Fv0.0.0-20150820014904-1e2e08e8a2dc.mod 38 BLAKE2B 3ade12a1ed924c4e12dd9422b763bf2cadf710ef072d593dc40923d48477b792d87aaa3035e020bcab860da3ceeddcadc44afd74d9e11c3902a5d6241c8826b9 SHA512 637521629966c8f1b3d711a2b2b7b1753bed946f26570cd8e5e55ee3da5b106d418e0b80f48cac7a2651b71103c0d09116707d7b9d8cfb2d78d7bac2e908560a -DIST github.com%2Fvishvananda%2Fnetlink%2F@v%2Fv0.0.0-20150820014904-1e2e08e8a2dc.zip 63370 BLAKE2B 532cde14c4a77e867609ec8c6298c867322f9cb7f266a67eda9f8f823b0d942835792ff4828f2944badb439146771a40097464b3f775e6ce481b2c460c9d234e SHA512 3a67f6dc286b7e61ebd8b6f1334f90bad4c96b10354f2d74ba738352cb874631e028261dbe64ce05d2b7f8f93d94368559416275b4ac25aeb12ed9b10c7c5e20 -DIST github.com%2Fvishvananda%2Fnetns%2F@v%2Fv0.0.0-20191106174202-0a2b9b5464df.mod 45 BLAKE2B bca314ac4894ffa7e671b1d4ef848ae73386b60786cde851e62ff43e3534310c32b0b5e1134a3c81439ded6766c176ebf1d3759c9690ddcf31c4a36edc625bba SHA512 b4dd7f2c1eaa083bdc0e90f3f636ac1fe32b290b6dfbf09153b8b076aa7cb39c9fae038822059413a4883bab87982bfe873477cc38b23076a7c70b3ce9bf1f45 -DIST github.com%2Fvishvananda%2Fnetns%2F@v%2Fv0.0.0-20191106174202-0a2b9b5464df.zip 10040 BLAKE2B cbb85164b1525fed1ee710c1510a898d3dde2498f457bd70b57f25dadc7fa139b5ee9913140dfe500b31bc1ad6f6090ff47ba86d2c0704461f704955980f3403 SHA512 eb20cdd07df50c217fd67d1567da82c17ee020ea6d1f7bc79f4554a4f0beafd311c70b8a601f13df6534424bd45ce1a05c0262b0f1e54a10c77b2fb25720b99f -DIST github.com%2Fxeipuuv%2Fgojsonpointer%2F@v%2Fv0.0.0-20180127040702-4e3ac2762d5f.mod 40 BLAKE2B bd8fe364e43fdad423aa574d01229ce91e9b3211cbe3a0234070805150d960d3c0fc0c6ec229e7ce5b4079906f2595a2b5f50a8da7bbe9bd906a72a6a7a7434b SHA512 cdd8a665fc41a4b04c59e869b021d5a9b793b9a441c320a234bf2a13be67af9aa60378c58991161f73d83c184039a52fc3f11cd121490996737f0508e277e1cc -DIST github.com%2Fxeipuuv%2Fgojsonreference%2F@v%2Fv0.0.0-20180127040603-bd5ef7bd5415.mod 42 BLAKE2B c2d6fb272d8ae4e541c98023713bcf0b7f47f334d09ad7f9f375ed13eb14d27ee2995745782ecea40d31a561e28702fddeae4b5e32750726c7188118d741cf82 SHA512 14c839017eebd5dcf49dd3495a1ef6421d522389a2943c010d7869d214f757fe7d19d6ac3482fb3d8cbaaeb3977c5c311523aba90e9f7909fb1ba593ba57ae8a -DIST github.com%2Fxeipuuv%2Fgojsonschema%2F@v%2Fv0.0.0-20180618132009-1d523034197f.mod 39 BLAKE2B 4a9a7321d9c10929abaf038e336248709fcfcde17c0ec9ec8e96407a9e12910b84e7008a7a847f533bd8695b56a8e35313d5771931d2fb1dfddd74ff59b58d5b SHA512 8ee8fb19b40e1366446a91a48a495fa96e4626f594903b7d4a53355069043c5a2958612dd0bf0f8b0a01a4fadf9dd92d0b9dfafbd10ab9c8ee6e3bcaa01853d2 -DIST go.opencensus.io%2F@v%2Fv0.22.0.mod 408 BLAKE2B c96dc637d392594cdf710b9542b90504fb090392662ab45208d45abe2cbaac5b64e55f2f62d1afe5542d2747abef1eedfcff97cfc48d6e0649c23b9b8293f7e5 SHA512 823e1ca3a9adedb1a98f5ac900e190bd51480686872bd901cc20a394cf03be6c8fd69cfe7343e42cb6f9d3500282a8097b6c32376aeb3e92bf0b1ce3e75872d1 -DIST go.opencensus.io%2F@v%2Fv0.22.0.zip 291484 BLAKE2B ca3bfc9c9864a2218ec373d78792ba0a40f4e2522bf3e0acd01b153eee43083cf8b124ae19b5fb0eaf7eef7cd59b2733b6c3ad847761518eeff2b183780c79cf SHA512 4fe718c3dd4c7bc0914b32844ae86ce281721f98b05797fb0a0fb51245129dfe1a74d2d04b419f4e0b7a31409b874e0e9d7939c8426af1efd92fdd5f12a52a98 -DIST go.opencensus.io%2F@v%2Fv0.22.2.mod 478 BLAKE2B 534d5c63341897b7213d30ae225708b5465b0bc5efd7b42ecfdd7fd67fe6e8fb5ec7a20345b734d07fc2793b41a115dde74a1f80510f3970aaee8f6d4effd7b8 SHA512 62820051cdf582849bd310ca77bba4b2caef82c9e6bb27e7c2de6c3bb1be0af90443770971e893d0eb466832857190a9908633d069880cb1980120c14ef391c0 -DIST go.opencensus.io%2F@v%2Fv0.22.2.zip 296264 BLAKE2B 0b0e20eb2f10b81748d55b843f8489ffb8147a8b17c063cb21fe505fcdb46feb9cc0830f3b3a91ea7034b1e7ba78df27b0b235b8500b8c1ade19f6837366aaa1 SHA512 c98a43e1bfc9f4bd1e54847dfd6b07e9af14efdbcd8d61b70c9f9701541ee2405f800b1e33cf115615a43030accb735a1235e2b7d81f54efd127e2fe5c992326 -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20171113213409-9f005a07e0d3.mod 27 BLAKE2B f91145aab2cee00c3567772e97f6162b9681d6cbcbe67a1b5b2f59b8f912572f705a0d1280fdced086d92efd10c50ecede26d1cfa3d5419217e5eef95097b4b1 SHA512 a88da5b983ff482a4e8b512761eeee466a8b0664b42da54ec9772c2eb3cb1bc5b7545045e283bac82552336802d8bc8efe137ba16f3530228b529366744a33e6 -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20190308221718-c2843e01d9a2.mod 88 BLAKE2B aec7d0eea1278eb3d1568d5bfb4041267501ad14457ebfcbdbc5fe21473170b8616ca4028f52af2edbfd85922cbe04540b4b0df7f69f63197698143cc5557a7a SHA512 2df49895053b36fed7ea905aa73f86568fbafd79ff0a7976679d8c77cf15025129435d9dbfd89367b611b1aadbea4f4bd1835eb4efa9ea702466e443638d379e -DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20190308221718-c2843e01d9a2.zip 1776515 BLAKE2B 5833fc2a16dec541a1362c9df7c02abe04a54e92e04eaafd5767c1a923e3a9cf90bc8d8ae0ee3c60b9745f5f0e3234350be1cafd984052353594d6e6b9fba041 SHA512 a1418dbc50d1e41495fd68ccba2ac84fed5edfd3e613c68850068afcce1136c3456e99d226674908a77c9648f16d7861edacb70afebcf3a7e73ea3dcdf8edbe7 -DIST golang.org%2Fx%2Fexp%2F@v%2Fv0.0.0-20190121172915-509febef88a4.mod 24 BLAKE2B 9615629f1bf7d58419f5b73842e19f6be3a8c8cefb217364917f1aaf68aec00de41d96700378b048d6cc385e154ed6d3db59256b4a00e9165bac7951cd0bcbab SHA512 9131017b8ab0c2362b74e0c010daeb849689025aa31cb464dc379b0e34d0fcdb66749329b111041127997440bac052249dab522ab27239858405c056e3ac5dbf -DIST golang.org%2Fx%2Flint%2F@v%2Fv0.0.0-20181026193005-c67002cb31c3.mod 25 BLAKE2B 8942ceba0f85f2e950663feb634e602815315834dea89d18f7319100c19a27f15746a11b50157d682756fc922138660512cd6c8e75a2458b0cd512aba19760da SHA512 3ba23f3472e0ae7904b4250e2e3a1b04c719c4bb66c59ccfaf96fae2fb25ae0abf19f542f03c7179a312a008521acaf4ff389517b11dba8b6f581a9dded44883 -DIST golang.org%2Fx%2Flint%2F@v%2Fv0.0.0-20190227174305-5b3e6a55c961.mod 88 BLAKE2B ce393846b227c374753f46fc076385826a6288b0c85095e097c041b844f46b87120774c68924492c4f33c33729103a2d916d2335e24953022630314b63f606d0 SHA512 0097db2957ab98a21a73960d2a37c526e5cabcd5ba4825e44f0ec4851ef83743ae171c8dc4b6c09ea4d931c15879c247e362ca53ef8dc762b484f1ddcc483d04 -DIST golang.org%2Fx%2Flint%2F@v%2Fv0.0.0-20190313153728-d0100b6bd8b3.mod 88 BLAKE2B 04ec98f76d6779784920b4f746fccafdba5ee6f365edc58985219675791d417746575165985de6d866ee891b6c768d317360a4229e61f19a1f05e4f0bafdb111 SHA512 5e787e9d2c16c87238995214eab353f87d009acf8ef78889295d11dfabef73cea4e8cabfc2999f9ef0c936efb84c22963e0aa2bce4b3678680a389cbe23df961 -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20180724234803-3673e40ba225.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20180826012351-8a410e7b638d.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20180906233101-161cd47e91fd.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190213061140-3a22650c66bd.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190311183353-d8887717615a.mod 119 BLAKE2B e042b2716739483252c3340451b2c3c7b421fdf8d6b3e0333e979802fca66159596982ea63a24b6a64457b2757a0ad24cbb9ea032bab4c5377edf84a3ea18b97 SHA512 26b6c92eecd2208967336d4d23f8a71f77f9a73643ad1e5cd84dee36b2f626fffc806e4dd33acc284831a0961e2b363d898a747903235945fbfb665c5b4d5ef2 -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190501004415-9ce7a6920f09.mod 119 BLAKE2B e042b2716739483252c3340451b2c3c7b421fdf8d6b3e0333e979802fca66159596982ea63a24b6a64457b2757a0ad24cbb9ea032bab4c5377edf84a3ea18b97 SHA512 26b6c92eecd2208967336d4d23f8a71f77f9a73643ad1e5cd84dee36b2f626fffc806e4dd33acc284831a0961e2b363d898a747903235945fbfb665c5b4d5ef2 -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190603091049-60506f45cf65.mod 172 BLAKE2B 6c58510adee25cabb2e31dcbd88939145c6c0856ba2fd1f0b78f82ec6f2589fe0dcce736a192d145dbab8f4ba892bebb80cb6cea4ea89fbef72f7822d157c1a1 SHA512 5b9748f38f64301e4895d9d2bc106fc9bd05a29feff5cfb53e248d168af998fd1a501c1a3c27e23af663b283093d2a48393bb0798bea449256d89ae119b225eb -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190603091049-60506f45cf65.zip 1417575 BLAKE2B 8c8f5c30c87eb0b1da6b5b8f60b64fcd5eb901e4b37dc504613bb344107086b2c12426cee08dfea04ad8dbeea80285dfe70fdc160599a40fa6266287811c86da SHA512 effdad1ad7877458a130ed4e895fce038c6aa4e94b7e4b32aee3fb5bd18813f2443e3cd4c019e3819839b9f6ddfef1850ffd88dfe334b14586a0899f42b362df -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190620200207-3b0461eec859.mod 181 BLAKE2B 95ef87cbad118eb6bfc963893e37a555067b7fcf70e52cf4261de029eb46b739b12f50530a46fb91ec9119febcf5033176324a55064f589c17b240a23a15bb4a SHA512 2794c616072f01ca3324107aad2ed97e05f6e6c1e9811a1749073376a89c9ce57a910cfdc8dd6bdc2583d133bb53605c7a68917eaa221ec5c1c8319e5dfbb236 -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20191209160850-c0dbc17a3553.mod 181 BLAKE2B 95ef87cbad118eb6bfc963893e37a555067b7fcf70e52cf4261de029eb46b739b12f50530a46fb91ec9119febcf5033176324a55064f589c17b240a23a15bb4a SHA512 2794c616072f01ca3324107aad2ed97e05f6e6c1e9811a1749073376a89c9ce57a910cfdc8dd6bdc2583d133bb53605c7a68917eaa221ec5c1c8319e5dfbb236 -DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20191209160850-c0dbc17a3553.zip 1499692 BLAKE2B 2ca64710a73a42e2c956ac30aff1ef35e9df2619ae3eaf7ebea4e6efe6cd322244daac868fce5842f08d14eb2ae3b20654d721bd8713fe2141b409aac593dbc7 SHA512 49ce7d40e2a126a4bece83b274e7c5ec18dfbc3fe2203290022a47d4eb651425dd3e90e23e747229e0b5c734fde374bfdbff629ff8466767cb17e8e94385719d -DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20150321034511-ca8a464d23d5.mod 27 BLAKE2B 078fc99b981406f4ee3f8da94c83954e80619e76ea63cf6323f27614bbcb870bb650eb5ffaac865a374f3ed0ef0619d97e11f05924c92e395e72cb73f28630e6 SHA512 53431e560b5d6a9b50f44997ef6755f71741ccca155767dd954da41f11f53a3e8d01d7e01a2bb9de1fdd551dd2e734cb65e5641cf5de5c9a8a6a25a4894336f5 -DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20150321034511-ca8a464d23d5.zip 46377 BLAKE2B f4b0b1310f0661416f7c5a1ff711b8e27bae0ab50f757a7a787d45ace8a3fef730fe7d7a8c382b448d6d527c8d46e94c38ff25ba7aac9a597ef0c03ff508d6ee SHA512 023dc91a36f639a1f675c49201ba3df4f247e1b529c7df2725571b5fcfcb462f1cd4378f9eb9f7d6627fa6751da4c1187490aa3bd0c4940a4eb546b2f92afbcb -DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20180821212333-d2e6202438be.mod 27 BLAKE2B 078fc99b981406f4ee3f8da94c83954e80619e76ea63cf6323f27614bbcb870bb650eb5ffaac865a374f3ed0ef0619d97e11f05924c92e395e72cb73f28630e6 SHA512 53431e560b5d6a9b50f44997ef6755f71741ccca155767dd954da41f11f53a3e8d01d7e01a2bb9de1fdd551dd2e734cb65e5641cf5de5c9a8a6a25a4894336f5 -DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20180821212333-d2e6202438be.zip 81780 BLAKE2B 48e9b7ec89ad3f9cec88fe6c62ce64348a9217a134aab7306a07fd8cb28eeff91b15cf6f59ffec36df23a086195322f28e76fc16c026f33d2f419dcd3f84de04 SHA512 c7656f3c10140a5cb08620ce0647d0b2026272ec41bcd9df346dd2b5de5bd2236835ea117091646151a991f8f3aeeebd0cdfc1f784015d140162db5dc49f7325 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20180314180146-1d60e4601c6f.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20181108010431-42b317875d0f.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20181221193216-37e7f081c4d4.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20181221193216-37e7f081c4d4.zip 24746 BLAKE2B 743f3b4641f002cdfec6805ead87d196b43a4de1ec59c788f8516f4bc78ef2d58fc8f0cc34a52e8762f39f0845470dfe4e50f269036576d021d65a5f30aaf08a SHA512 f7622fbf44dcdf894cd397edc8399e38b734cdfc6a6ef4f8e81af9408c9d912a1b96544e713c42237fb3116e70678755e829da8f5f628bc1cbf6767921cd380e -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190227155943-e225da77a7e6.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190227155943-e225da77a7e6.zip 24987 BLAKE2B 5514571e2f35de919bf97d652901664298019c210e05e2f87c687e5ce8b83076ad2404f9aff704389f08ecb1a145f726f08a74c79a6c8b473545d79b426c589b SHA512 fe30b59f79b7819ecf634d22581da90684b2d76a1673a77e42f86dff9c418f85622b003982df7b066a3a8fd07f0dd8204c91c4733eeabb7fac4626ab43bd60b9 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190423024810-112230192c58.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190911185100-cd5d95a43a6e.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0 -DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190911185100-cd5d95a43a6e.zip 26635 BLAKE2B a464a4ad04b36e50cfe966e6e6dc299c0f8b45d0f4198ba64483bb70ab815d033cec5cde60753b76dd1fbb16fed087b41179100a2002b0a61cd4a08f9de779fc SHA512 ae6f29d5f7790b37d1722d65f31708670bf19f429c60b2f6633756ecd40e47c1fab40fc128e0d70b3b6ed0ba47ce5f970ce5f4e55b8f1fa407d2efee7444b646 -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180830151530-49385e6e1522.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180905080454-ebe1bf3edb33.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180909124046-d0be0721c37e.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190215142949-d0b11bdaac8a.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190422165155-953cdadca894.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190502145724-3ef323f4f1fd.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190509141414-a5b02f93d862.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190509141414-a5b02f93d862.zip 1774674 BLAKE2B 1471e1c192483dba5292c653b7a34971ed6831bf2b0dad4e841da721ccb19d6f3497222cf6bf7b2c0a24f3a7e9a78d1585e52450ccd449a04cb31b91b2f4e3ca SHA512 fd411842df14ae4d9640d4213278510b76aaa9b24dbe6bb6369d7c1ba241bf6e37c9eee571615f878f65cadc61afdfdf4d2930241e914da21770cd92ddb8570b -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190514135907-3a4b5fb9f71f.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190522044717-8097e1b27ff5.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190916202348-b4ddaad3f8a3.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191022100944-742c48ecaeb7.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191112214154-59a1497f0cea.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191115151921-52ab43148777.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191210023423-ac6580df4449.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191210023423-ac6580df4449.zip 1910695 BLAKE2B 316571a5971606dba4acc980849d499d719bbdac688f86844468e462af5357e1f488509491d0f233d615348c4c4c8af685ce24b0c8dd585c4b4101d7637a1e99 SHA512 217a6b72ebe4d132ffa67cf34be0081325eb684ebb611544fcc8d91d00413351cbdc493a21fc6310290f64bb9af0e0a72c98f119a74405bb153734ab51fc4095 -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200107162124-548cf772de50.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab -DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200107162124-548cf772de50.zip 1913079 BLAKE2B 8beb8e74d186ac1a5424f65cef958515d39b3082fd35c348a86305743b26d6e378635f8b4df868ddc386a700fac7e92d24f5aac3da467a8ee08abfcab7060be6 SHA512 7ccc0910f3dd4ca652bb2f02bd0e423497b4ecb6f9e124c4c6016597893ca3c9bed3c293922e28e5e6c958cdfedc0b8ffef2fe44ca3b282ebde1ab310a975fd9 -DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.0.mod 25 BLAKE2B 31009af0fdcd0f8730c9985287e6e364ec4e5183e57e92560dbc80a2010eced51b8a90f01a82b49384268c8a0adbf69d179c205d3f68e0eb459169d2ea9528f0 SHA512 ca081ef7cccd7bbedc6843fbe0c452352661a07e1298cd02ff338ed79d807c6401d613a3cf20011189d2f98a794ffa410547b3e352eb58a6f0a84822285d391d -DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.0.zip 6349244 BLAKE2B 0aa464ac7b7d17fa7ec0627b64cd2301ed4f2819f837807db7a55725950dacb40be899b5148b07ea31b51530818edcccc6444a9800755e1d369ba8f1bce949b0 SHA512 982d78f580a7eac99a0c51e6f1fd2b2c3b91f56cd5e2b96fe960510049f7daf5915264f73f55f05675eee232a52998f9667fa84a9ccba15ed7819e4c93f583a7 -DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.2.mod 88 BLAKE2B f3dd520e0e4e9b57feab62ecabb9169f37f1ce49b2846b949f9266f807767d38f55e4aa8ea006229c6f81cfc1e2c9dc0d1e3c186235e416dfb90fe7e04751d07 SHA512 d9361afb453b10c9d02787568ec33ea4c97a115899c6b3d1a1246547a749244e9218475ae5ae9f741d9b355260d2d3c33852673e805fcdd5f26f3ca40f035884 -DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.2.zip 7430601 BLAKE2B d2403817cb6b7e32462b90995412c4e63cfdeaf3710fc9386f4b708e0ae2be9593649e923f0d844dc4420b177e42e7abfa7657e03e27fa08be9e98d76da4cb9c SHA512 8d8dad296f1497f352e94c416711dbb1f468901a3fd2dfd0a9c67f2d59306ea611d77917289521d2845f6958f571f6c3fe2d3dab289524d8145489d5b386fbaa -DIST golang.org%2Fx%2Ftime%2F@v%2Fv0.0.0-20191024005414-555d28b269f0.mod 25 BLAKE2B ba9e31cf2a4ab0f78a5c67d78026c2ef9571bcff7c820ce212637c8360420af274bfc47cb14bbc3df24457a4d3acb5dee38448a848abbd4e82232bef05b6b2e9 SHA512 6e51811c33b84ddd4a7548013579204266e466bd2e87aa9b6e34892570aa09c607ffa806f8a420474e26ca0e277ab23c81bb07b0ebf2c3b6ed193014c1bc37a7 -DIST golang.org%2Fx%2Ftime%2F@v%2Fv0.0.0-20191024005414-555d28b269f0.zip 11971 BLAKE2B 7b29c746b75b42c23fca353b8299a4feaf69556ce1395872470e891835a8dec88a4e4c3b64ba6dcb4b5512aafb9bb44cc38c68915a0f6702f1027cda89d03d81 SHA512 58cb42ebeb88c06e049caf8c609e95243e7bdba51057de7d7301885aa904111dbe85962b5faef216ae45aa73f371b5de6516800a6f5765219cfde3fb06372afe -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20180221164845-07fd8470d635.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20180917221912-90fa682c2a6e.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20181030221726-6c7e314b6563.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190114222345-bf090417da8b.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190226205152-f727befe758c.mod 194 BLAKE2B 94f62204dd4fd9b865aca70366a7a7754e2e92ed27591beaf789b268ad272dfb34ca0906d888c608393b4c71bc5c9f975fc86c164528ed7d0390e41b66206ec4 SHA512 8b68acbca48744320e64a70a983a471e9e2fc2249562064b10256269033473fd50264b6544646227fb666f075c4f266df1835ca3f88ee679bb97d34bf62bd195 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190311212946-11955173bddd.mod 87 BLAKE2B 32cb406deea05323b1121386bf61f344f8eda0b5370e95bb73828ce0bea50bee375ae3e9b076b9d683a4d89561709c5e97e45e6b08344fbdf6b03b3ce4398dcd SHA512 18ae9b2f54109b4ec5cdea433ee0e3b7006e4d5ea57022d6e8151d4d364735a6b55cf7b5eb2f43b602ec786b2b6819ad78dfc33151ee1a63a0b1199f54ce34a1 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190328211700-ab21143f2384.mod 87 BLAKE2B 32cb406deea05323b1121386bf61f344f8eda0b5370e95bb73828ce0bea50bee375ae3e9b076b9d683a4d89561709c5e97e45e6b08344fbdf6b03b3ce4398dcd SHA512 18ae9b2f54109b4ec5cdea433ee0e3b7006e4d5ea57022d6e8151d4d364735a6b55cf7b5eb2f43b602ec786b2b6819ad78dfc33151ee1a63a0b1199f54ce34a1 -DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190524140312-2c0ae7006135.mod 146 BLAKE2B 78e7f7eaadf244c74a90edd8a3e8d092b255cc9246320ca921558467fa02e84ccc68bc6c4d1d5d4baf3c9cab7da37cf6515e4d4889d490d21f374fc4415f1733 SHA512 e9c7b67e28905435e1420333a531e6c0a8f025dc3023f22e5067d5395c8d081bd7993ceeb6ae08c4cd2d1f13aa0f46274a8788e1be085e4b12eaef785f3d7213 -DIST google.golang.org%2Fapi%2F@v%2Fv0.0.0-20150730141719-0c2979aeaa5b.mod 29 BLAKE2B 411ad882e1d61d9e7a02f83256abf55c6a9557a980b89d7fd1a8981cd44f81182c17659e2fec1f4a587163a16556076418f166e90118a04041a8c488f9bb69dd SHA512 f2367919f017863362525d492f3c7f9e36aa311a55f96533ad6a2db1dcbdc9628f516ca435a43cd63a09c677c3528c2fe386907fda1da7dcb69ac2f6c95bfdc1 -DIST google.golang.org%2Fapi%2F@v%2Fv0.0.0-20150730141719-0c2979aeaa5b.zip 2771008 BLAKE2B 6e25a953858b1c8d6a2da19b4138df38cc4bb2a2979e410c0b0a13b8ada8ac29e9ba02c43ebdc9435b5bf121149a4b094473d13f2333f42c1aa6875ae1a04fac SHA512 c191253b0e76c52c3620c3b0de4caf7dd88a5d98e46b3cbfc149c5e5820338533191a462164170f4182c7f192be0a3d4b374e7565dcbb738ff10124d8633c80c -DIST google.golang.org%2Fappengine%2F@v%2Fv1.1.0.mod 35 BLAKE2B 24fb6ba95138448c45da7f1ecc4c87391485006b54b8e7ff96ec582c2659f9ea77574b4d5fef2442eff9e5564f3c3263ed8e6963c5d21cde8772a7143d82f3ed SHA512 6644c398d639794470e49cad4402d17765422934915b5a13e13e1f84d8890cc8fad9e6ea8c580d114aefea70d894242e05ce3a432ee596f772b98b6b73069fe2 -DIST google.golang.org%2Fappengine%2F@v%2Fv1.4.0.mod 162 BLAKE2B 21c4d160665b6a87101d2aec39d2f7faef9a66f6be50f7293706686022f808b131c9ce7ddfcba6c2b6d27d15f9414101650436a2403f156a0368de2bce72e482 SHA512 60fb2454326103e4905f79f23a25320cb2c0035b7a0e3c228af845ed7dae23014efb81685f29805303edf277e8b1a2d9a7530b8f3a1a8e57caa1a85edeb52475 -DIST google.golang.org%2Fappengine%2F@v%2Fv1.6.5.mod 171 BLAKE2B 09b1ead1721eaa1dab7106f0206fd6f1c1509ddd07f70d7a23f73a1c047b9b33b41bae2519d2ba7e5c6ca632a9082483080dbffe0af3c371934f2ceab9ad334c SHA512 f99bba4e696291aae951ea3865a1cbaf0ba2df7cde4f86e942b2e5f5a4dfc6dfde95c74e52ff31ba69f2aa2a838d21843343b2203c732279eede5936b92d7c8c -DIST google.golang.org%2Fappengine%2F@v%2Fv1.6.5.zip 417678 BLAKE2B cdb4e693ed5fb2bb77ed1ce0e0b1b25dbc3648c00554ade874ce28fffd5824f487fac744f9f2cb0920aad2c94a82024e1d233d1663887f0681790488a3af6f3c SHA512 1ffe3894d8fd004f6c28916e06d8e64708c20321ff914e82d05c50ce4c62b76bcd93e74e45871f7adc779791240ef8e25df08fdaaf2abdce20a3640d8964bb28 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20170731182057-09f6ed296fc6.mod 34 BLAKE2B cd6cb61b9f55a3c1e8b33588e98e62c9c27613ac20fb039cd70c9ecbe41c34d11d80246290ab73a9faf3ec809a15fc00267654b0eb00dbf23fe5c9758c705d9c SHA512 1c29af2b4f8b54234f09dfbfad120b4b11d4fe67e9578b0553412f1587cac2fa2bfe5537fbf15e6d52dcb04332413231c250c3c460b04e64326d2eaed3102464 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20170731182057-09f6ed296fc6.zip 1123155 BLAKE2B 8e361c2d35ecf55377521d01b9d07105703ece0ae2a3f2841766c06801dd61d87556852b5ab42ee23c2466dcae1fd7982bbfee36fc8f489c57aee24bfba5e066 SHA512 5e2ed5fdfd1172cff14fbf934e626033031a30dc8cc8c8b6322a798fcc3dabc02430ef4ca203dbdc537d974395e42bc35b8845d6828c63f1db8418c05b3302b3 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20180817151627-c66870c02cf8.mod 34 BLAKE2B cd6cb61b9f55a3c1e8b33588e98e62c9c27613ac20fb039cd70c9ecbe41c34d11d80246290ab73a9faf3ec809a15fc00267654b0eb00dbf23fe5c9758c705d9c SHA512 1c29af2b4f8b54234f09dfbfad120b4b11d4fe67e9578b0553412f1587cac2fa2bfe5537fbf15e6d52dcb04332413231c250c3c460b04e64326d2eaed3102464 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190425155659-357c62f0e4bb.mod 450 BLAKE2B bf0efd5f0ff915b9f59fa81611892e70644a4b14fefd15190d0ff68043f7809f51d53766dc50fc0eb9372df3e6590d3fbcf51aec5e9b0c18027e156ce53b8df1 SHA512 37a99611220df08ac5f15ed6f718f37a35523f5cef392b7b7da86b0eaf05e4fa5e52aceb42a6b6ddf6924b1f7cc151876d2e532c83dd2edbcca7c41b9191c427 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190522204451-c2c4e71fbf69.mod 331 BLAKE2B 7a174749635ef1cfd4ef7a5c67d29c51934734bb7d7d0873f56a461f040373213cd4c5deac8fe12b3ee75b7c210e5d26e7b378e31214ea0278ac84eb001f99fd SHA512 1ab2bfe29c78700b879cd08ba8993d452715b4d374d349f48018a7ea8bd5999c236be0d164fe8d340d660e222e229f8ed490b7d8f5c931e754f3617510145905 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190522204451-c2c4e71fbf69.zip 5299917 BLAKE2B 1e9e17b4453165e49537ec7edaf7be3959ea31c5ed6d434b7e3d4206f584fbb462e19469d40347cd89d9cc184cce8c215b1984f82b77e6f9e558cb5fa7b4a3c3 SHA512 c7e1da10eff6349af97c415b3a981601e40b384a7541668c0d55d969cdfbe5535582128a4cbeaab8978480760b56d3e2363bef6c0a6b709e2469fcda143421bc -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190819201941-24fa4b261c55.mod 331 BLAKE2B 63923e4fcfa896f163dc77009fbdee8ce8c2e31a4694b6ccddf3397cad5c89a3be5796dbc65b77cf059f1601729d976f9afd2969bd426c0cd8781b106ffe0be8 SHA512 9f22a11a1d639cc7a465b6e826c2bc3915fe0ac847159a38c470f0b1631d6f6b2e0ae0548344f7a8e97161d4c6b80113062c04062b7ab887d7d615c39cbfc2dd -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20191230161307-f3c370f40bfb.mod 340 BLAKE2B bb2207855662037de3179be2e667a9cd8798e2d3c1b1eeb939f76095b9c32cca6dacd47439429b5705ad1d5c5597cb4170f17e49bcfa310c0733f1e68ffc1610 SHA512 1095755ae781f0370bb3dd72fca348c5d6640a4f89b6eddfcdd349f320ae117a4da47e48707f66743fc8dc4067285750d816d178b484dee0d21de0b2d1b129b2 -DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20191230161307-f3c370f40bfb.zip 8035997 BLAKE2B 701b65c8b51271f8ff0e96f5fc2164f42951506c6c0d5caa1a621607e32fc1521a5be3dd287b461aee3f0022d5928eaddc314afad2f33d48da45d1d1df33347b SHA512 b1c72908124eeb0eca965973f0585e26216cc441b6eedb2c99698998fa16a3adde17879cc1d795fb1f4a9f902a2230f8647fdf2b4ea1d879bccc0980625f0ad4 -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.19.0.mod 833 BLAKE2B 71052eaeaf40883bff624eecce8fd6f5669fdea9355e6ae0db9c86c841a62f7176d5ab58838d1645f59b9cb4ad4b636048aa3e9f1d7db521104b8f09dc535bc7 SHA512 38c4f75a0121cecd31b2628da3c3d77aeeb9b2c1974eef2d2d2bb7a3eb507d330debb7f14a724c8910174439b38ab54458096aaf665ea4af87a83f866ca0452e -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.20.1.mod 795 BLAKE2B b825f2ab62a96b9b164410f761228575fd9882de37635c09803b9d2ce682ebbec30f301fd874aafaad95a5aa2431ba25962073e1bd4f336d8cb137e5939a8708 SHA512 585d4cf68b50a70d7967ac3941a7a83b83ed5df1a31773589a38348b6fdf247eb49e7778f7054b78ba1a65eef48d004a815abad932876cb1af2c09deea9c0db8 -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.21.0.mod 828 BLAKE2B a57ef0fe7edabd002918282ba9ef83386689db2688fd8f1b9ebedd191bb0b7059cc0b99d95974ab68112cd48e1865558d314dda64c71ab239de39fe6e8f0db5b SHA512 f9ab0c8ed5a58799a39f64c63b995badb24d8ba1148c7a1be1e3342d1b0d6a6e334fa2cab16f8e9396907e60386cbccb6495dbbe3ca09440bb878e10e1686d62 -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.21.0.zip 1027057 BLAKE2B aea0c3492c86bffd080c6e1c2d1bd213a6a6c9f6a47a63557f87397901177a78bbbfd40798ecb05bac315c250ad8d0d13e792e16cff69b5dec4557d7dc292d07 SHA512 ade68a1bb465469ad19340518e388da498afbaacad5e4decba807fad863fdaf22a36baf13b6bd629b15f18211057a94393aacfc31a5753216cffd86368cf74df -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.23.0.mod 762 BLAKE2B 3c67c1bfdf0cef36f702e4a56d42cd7861cc573282ecf1667c7b19b97b8329a67f34a4c2ef3b2b865cabbd35a03dc43284e4c1af90dd8bb6018b0d8a192484b5 SHA512 4ea69ff3644e3e51f4a9ce73325a995b119088a9c97fec4a4811d1d9f119799182cd4dac377e3b58d96e10b8f6ba500a85ad72463ef4305d04ed1c55261526c2 -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.26.0.mod 562 BLAKE2B 33a46aa2516aa10a1bfed0431c4f3d41554aa8ab5cff1f259323c47999696d0cdf9113f162eebf3bbc18cea163f1c6f8225777653191380cfccf06e5921db81e SHA512 6e06146c3ee73338a24698b08d0091dca5cc67d033e1a98ca28157dccd8e056a3a2624c798180eda5917f90e1e37aff31158cb8ab2cedeb8e4578324719605ef -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.26.0.zip 1101208 BLAKE2B bee7938f7e39bd6acfe03bf03e1d4787f30384f34fbf292ddabf7e172dcf8736ebc0d32f7d26bdf0021252dcb984766bc3b778312434a4ffc5f515f009fd26ed SHA512 8b90599cca0b31538086a5d65dc124c2e7641ec42b4774b15b3f5cb063b39f3d8f83a7114e89e6aac1dc4cebbac526105378a3cd9504bc723cb26781b5d214fd -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.7.0.mod 30 BLAKE2B 8ec04a655d1d0c3cfde5c051842d84f8a8615d7d56563ad57769905212e0e7cc821933d5adedcb210c724de9699b6b9cd5bcfd3a2c9555516354d3e19ffd3482 SHA512 10c6aa20da47c7923358430b63d5d5264d54f6a6cf70b008ed157807c07073cd0c64bef9db282b39fdb523515e1429125079cc29273ba186f7e4b42712d3d37a -DIST google.golang.org%2Fgrpc%2F@v%2Fv1.7.0.zip 466649 BLAKE2B dec58f439a38bb283fbc8ce13470800077f0f70e1707f47d32c490c7ead22a4a12ba085397903d1819d0212aca5d7cc5ae0a69439de01a728a7c3eeb1628079c SHA512 46c800c5e1d5eb475cd5f4a5d38ffcad3deecb799c0b5c96ff6eabebb0bbcffe3408548534cdd56c2a438238a872889af2d67a475bf675873a8238698074d235 -DIST gopkg.in%2Fairbrake%2Fgobrake.v2%2F@v%2Fv2.0.9.mod 36 BLAKE2B 33002a8288351a233f5e8236743a91df1f630355380a4ae8df10c32abc03470955eac6c15c95655caec990eb17ef2661985570e49293cb146517828090d95635 SHA512 8482c3135335a3a69611529f0d50bd19257b0fe8a8de2d4f2d6441ccde5f1e7a57d487cedc375575c5fe16094e5fc1c7f7f1a6bf04acc8a9d4f92701db279002 -DIST gopkg.in%2Fcheck.v1%2F@v%2Fv0.0.0-20161208181325-20d25e280405.mod 25 BLAKE2B 6470f3d94700c4d8b3176d692bdb91646750f2c6a866ff2ef4183aff1de01f024a8757f97b4626ec0355092e5f25e7ded91cd5be845f627d107c58b1daf400d7 SHA512 9ac0f80ef05881387cb2f48f81560f3207fe586ea16495383662e6d62e43d93fac01dfe72e1d0063d3ab065331dab3a8098d7da4f1830ba1aff6f27f8e1bc1b2 -DIST gopkg.in%2Fcheck.v1%2F@v%2Fv0.0.0-20161208181325-20d25e280405.zip 39844 BLAKE2B b3dab69dbd1ebb999938c12595de7007dce9431cfeaeb5e77aba80c49918d1a4edf7fb95279e9b66686cb45deaf57a011c083e55fb66ec2c614582ba323954da SHA512 97c96a92ec86372c2f06141c30bceaa86ed62c1db34696f9542f43f3411cb0a37dea654de923a5ee054e603198179b9048e3b477da140e4092ffadc4525b9241 -DIST gopkg.in%2Ffsnotify.v1%2F@v%2Fv1.4.7.mod 28 BLAKE2B ee2514c386f6cb3ff4a9b829d903e57372ce765aeab91fb2f29e95358e3472e0612a00f2982f53790159738e416819e368afa03e44bf8f6b43511347bc6d6995 SHA512 7cf7d1933039974dd4fa16febc52cc118bcd0e35c329d4c563c7f411b8000d9e17be5bca9a60d94f5309cbef97b3d176110704ebfbc3c114572cbadf63a55a34 -DIST gopkg.in%2Ffsnotify.v1%2F@v%2Fv1.4.7.zip 40894 BLAKE2B 5edf237401ae1a48c425ffec6fc67146850d7137c7026260e894656f6c832066321d930151bdd7624489e1f768fc04b47b0fd3dac3b2171bd092dff344de16a7 SHA512 f99afc545324e49ef1de05fd4c8dde0dae37094e2fb1b81de8d8c9b8ba9b28f39f9b5ab715c728e4a0375544a48d49c2dbd719fc178d222e0b914a425d9aeb63 -DIST gopkg.in%2Fgemnasium%2Flogrus-airbrake-hook.v2%2F@v%2Fv2.1.2.mod 50 BLAKE2B c715a977e733670d4047cc0f62fd485ce2af214d87e799cdea97015f64ee66488e1f68f4aec8e8ab139cd70574a0dd5f54b7bcedad09b8890ad098bcb01d7f5f SHA512 2d48fa45b7183412ac358a60c0af0b3c2f77d5c461f6bf4ba5d7a162195d49076870e739ac6c59e95d41dae2002370f52faf183fd6ca7999d60374866fa3ebdc -DIST gopkg.in%2Folivere%2Felastic.v2%2F@v%2Fv2.0.12.mod 35 BLAKE2B a362618fa34bbb067989eecaa1db22ce48db4d54bc2c445da1793ef909fd177047e6522f1aa6960d0dcf2033e5745d1be900c76f257c929af28340e65af49009 SHA512 305a12fa532d9a1b55fbb6cb95f0ef40012fce95411e54d2ebc309c3cfec3fb4d6c4ef85084478339618b5f8baed84ea793bebcc89726bff4955caa0ecf02c5c -DIST gopkg.in%2Folivere%2Felastic.v2%2F@v%2Fv2.0.12.zip 398866 BLAKE2B a6f73c8fd00afa7b58adad07ad08a14bb63a734822c0ac5ec1c2778d75d39524f6de19d4bd90166c4785cbe12aad8c3263218740ff672a7877b5c8fd62157d9f SHA512 42ec4ed03304aaad0f18bc3b3818dd580c6af5f38ff940b9740461d4da71c113d73d1bad247fd079abcf8d4e134ef1b824681c713bc8a0a515a872afe4ecb4f8 -DIST gopkg.in%2Ftomb.v1%2F@v%2Fv1.0.0-20141024135613-dd632973f1e7.mod 24 BLAKE2B 24a0c476e6590543f1b46175c4f0e036498afd9af616f6e204cac280e61cc10454e0c2a54fe10b9a7a306715ab966a5822ad78626c6cf20c2c78aac02598c922 SHA512 b147b03cabc4666519b94f4d9c7d9fefdea45810e3e35a9b3d303dba491d486fe03c0d5969a6186adbb9c75665e4f3e9811c7bf4ce72c46280b053611c198c41 -DIST gopkg.in%2Ftomb.v1%2F@v%2Fv1.0.0-20141024135613-dd632973f1e7.zip 5099 BLAKE2B 56a68e317ccf9e6b0912331e7006742c3bfffd087742293b3d48ca7069c707db57b3722179c76b8c724303c8d58ac9ebf847c4277ed38a59e1510c676ebc941c SHA512 658ebdf931b23afe9d9d5d33d6c910fba7cf37740efe7052ba7627199c1a5fa4f93f093796674e341109430ba1f1b5ea933ea4a32356f63eaf337f05a562004a -DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.1.mod 95 BLAKE2B adb3684980f1d8e6c23444e91028f8db55f1bc496114eb3508dbecf9917dbc8a0a4bed7c0d761123335a75b9ffe727e180f2d6aa5f84312edb05a798185c8362 SHA512 916ff67ddb6c2ba39905db4277ce42596d9ca5a42f8aa7f47f16335e78d91a1b30419fd1b7b6967b37e248363397ec527b38d2f500b3546edda5d2bce1944379 -DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.2.mod 95 BLAKE2B adb3684980f1d8e6c23444e91028f8db55f1bc496114eb3508dbecf9917dbc8a0a4bed7c0d761123335a75b9ffe727e180f2d6aa5f84312edb05a798185c8362 SHA512 916ff67ddb6c2ba39905db4277ce42596d9ca5a42f8aa7f47f16335e78d91a1b30419fd1b7b6967b37e248363397ec527b38d2f500b3546edda5d2bce1944379 -DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.4.mod 95 BLAKE2B adb3684980f1d8e6c23444e91028f8db55f1bc496114eb3508dbecf9917dbc8a0a4bed7c0d761123335a75b9ffe727e180f2d6aa5f84312edb05a798185c8362 SHA512 916ff67ddb6c2ba39905db4277ce42596d9ca5a42f8aa7f47f16335e78d91a1b30419fd1b7b6967b37e248363397ec527b38d2f500b3546edda5d2bce1944379 -DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.4.zip 80160 BLAKE2B 7c19bcfee1136e9afaa54bb36a296e48c276e21517eead613313409f3ff85f4a961c1dca7926d3c4fd51feb0f537a85de905294d2a310276bb8177f27f3776c3 SHA512 a8fa21d2f84f8c6f28250e9ec7d678ae160963eaa0a373f345fe67804925b2647239a6117ad6f253f458f34ec9f62bc21e8f2071fc9dfe76dbd2a7ded1e1a0e0 -DIST gotest.tools%2F@v%2Fv2.2.0+incompatible.mod 20 BLAKE2B 25d11078b1caa5a705f3ae32f28d155683dfe0109d96531b1fc20e632acdc2f8429395975e6509f5dc78bc042b5e70e90fa2daa9790c39eb3422cbc189fb21af SHA512 5a73bc54777766425ba833348d2986408baedcaff86acf1648384bbcb31e302b0b0de38e1a92d53083551e35c62f375262497c0d5a37c9fb39824ae68fe8113e -DIST gotest.tools%2F@v%2Fv2.2.0+incompatible.zip 88327 BLAKE2B 8730134244a00fb47b24b347ee4758fac8c11e3f627788c03d6568af129acb5b911b08857ab77a619bf571986ee90dd1c6c6aa12fd8e6e26d395a64bb7513a8b SHA512 66a13fedc358399644b869ac4b39a295c6c15d642e074ec66ff042e1b109f9603bc941ff25aaf7d9bc700f6c2fb1f60bf2a637a471e26ae037d822f0f1e2c518 -DIST honnef.co%2Fgo%2Ftools%2F@v%2Fv0.0.0-20190102054323-c2f93a96b099.mod 26 BLAKE2B db6cc87a17bed88b955e6b36a17568930239c94a969211b02c2d5acc70386fbea63ac44365a0d3241e900125bd64644d698d8f1bdcabc3e6cf99c47259c63df5 SHA512 d00ae74b24e7fb3ff351ff68b88e59636153bbcf92b36e81e91556e3e75a7ccfb08ce471f757f92fd7612378944de3d7309c73923812e2df6a26b74e999ca9ce -DIST honnef.co%2Fgo%2Ftools%2F@v%2Fv0.0.0-20190523083050-ea95bdfd59fc.mod 26 BLAKE2B db6cc87a17bed88b955e6b36a17568930239c94a969211b02c2d5acc70386fbea63ac44365a0d3241e900125bd64644d698d8f1bdcabc3e6cf99c47259c63df5 SHA512 d00ae74b24e7fb3ff351ff68b88e59636153bbcf92b36e81e91556e3e75a7ccfb08ce471f757f92fd7612378944de3d7309c73923812e2df6a26b74e999ca9ce -DIST k8s.io%2Fklog%2F@v%2Fv0.3.0.mod 19 BLAKE2B 2af8f84f1cc7227be731c55dbe33e87e9d4fbba134ae86b6a86bac30260f32c7f17422789189486b17e1a2b84cfdca35984dd6d6079aab621620e90da230a6ac SHA512 cd5afa0488338a1b22bb852219078d74d61f894fd075b60b22bf062dbc49ad16c1088ab55bc8ae72aeadb4f7fb9534b99adceeaf3913e47bbf00df1ead1c7aaf -DIST k8s.io%2Fklog%2F@v%2Fv0.3.0.zip 35266 BLAKE2B 73313b579008ab1bf3f4b1c0857ba24b34798ea7c92c18b5da11db956b5f544cd2b2e8d601256f2ed012b972033662b3cb6afe1c85de048dc76978373b2c0e6e SHA512 adec8e9a68d5729c35604764b24caafdd30ea097e9e493f35fa47f0f2b4632d7055d50a1d90be3bcc22bc00e3c431e30795ea189ecf7ddfc634ad380eb686f9a -DIST k8s.io%2Fkubernetes%2F@v%2Fv1.13.0.mod 25 BLAKE2B 4060536d51fac9854215957b1108a158adb0b3aeb8bfc659eca1140efdcf79cffe378db6f3cb1f4a4b68aa36468b7d5631e993d5a089eb839bd03b6b608496be SHA512 2349b7dbe8409836cc70d97c5b336f518b809f5731baf05ce68d957c9970895a9b7f89caf09763794cf13824ee29410b3a6e431b2da7f64610895c44b86c4d2d -DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20190712204705-3dccf664f023.mod 164 BLAKE2B cd4086710de69fcfd2179978f78cb5fb4633a6700b6cab545a83a733fef06e492428deb492149294c3fea186aa01b86080d2a387c1af2a789f35b5f37abfc7ac SHA512 d2cb2a60b25ab16fe3d377d4811a04503c068eef7901bb971f4107d3cc1339279ee95e3c3967651c98112b61fa7bc0fd913dd61a8aec6348180fa8bb357914c5 -DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20190712204705-3dccf664f023.zip 93888 BLAKE2B f02de12146b319d3f1788ce00abcb4d73e1e00b7d372b59722bafafc94ecdec831985228595fc424fdf5125438fe03eaf93e55fe43f379a95180cc5e93348f2e SHA512 6b198501669452d40fbf42de191dae2e0289a9f7d9c8eb299aa1ec010010d3d01f5c34cd184e389b9eb88d27ef3fae8fa14e0c7c6dc05ff5ba79c7f60f4063e0 -DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200117235808-5f6fbceb4c31.mod 164 BLAKE2B cd4086710de69fcfd2179978f78cb5fb4633a6700b6cab545a83a733fef06e492428deb492149294c3fea186aa01b86080d2a387c1af2a789f35b5f37abfc7ac SHA512 d2cb2a60b25ab16fe3d377d4811a04503c068eef7901bb971f4107d3cc1339279ee95e3c3967651c98112b61fa7bc0fd913dd61a8aec6348180fa8bb357914c5 -DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200117235808-5f6fbceb4c31.zip 139116 BLAKE2B 0de019e1229821d8c2c53df204e6f8f9c3b80f1b3fe5ca6ff7482dd8f684c2bec95bdbfcfe84b9fb54fe060687d4f0740759a24aaaac27dc8d4794a4157d01ff SHA512 a67bcdc90e4d5395a2ff1ec6030bbbbd105a7a8cc564abdef28fed07a3d7a53382ff06b36b10a59f717e52d3fd3b3a54e92ff98ccafb31096fc03f7d78ce3cdf -DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200122174043-1e243dd1a584.mod 164 BLAKE2B cd4086710de69fcfd2179978f78cb5fb4633a6700b6cab545a83a733fef06e492428deb492149294c3fea186aa01b86080d2a387c1af2a789f35b5f37abfc7ac SHA512 d2cb2a60b25ab16fe3d377d4811a04503c068eef7901bb971f4107d3cc1339279ee95e3c3967651c98112b61fa7bc0fd913dd61a8aec6348180fa8bb357914c5 -DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200122174043-1e243dd1a584.zip 139668 BLAKE2B 503f321d47d7e30d85b1c6ef96cd136901e3a4d100cfad50382d2f88f312d0c525b134f0414abf3e03faa6ed86a665646746e848c2f55a8747f7fa90f0d9e4cc SHA512 631e2314df6041fc800bf34e10359894223f7500034d6a53ae578a117f05602708ae0030a312656a15147064ec8a17465f0c917ed400d4fc5b163e6ece89c764 diff --git a/app-emulation/cadvisor/cadvisor-0.36.0.ebuild b/app-emulation/cadvisor/cadvisor-0.36.0.ebuild deleted file mode 100644 index 0dcf7a935df8..000000000000 --- a/app-emulation/cadvisor/cadvisor-0.36.0.ebuild +++ /dev/null @@ -1,453 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit go-module -COMMIT=4fe450a23991beb6c61dc941c0f87f56021ad386 - -DESCRIPTION="Analyzes resource usage and performance characteristics of running containers" -HOMEPAGE="https://github.com/google/cadvisor" - -EGO_SUM=( - "bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod" - "cloud.google.com/go v0.1.1-0.20160913182117-3b1ae45394a2" - "cloud.google.com/go v0.1.1-0.20160913182117-3b1ae45394a2/go.mod" - "cloud.google.com/go v0.26.0" - "cloud.google.com/go v0.26.0/go.mod" - "github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78" - "github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod" - "github.com/BurntSushi/toml v0.3.1/go.mod" - "github.com/Microsoft/go-winio v0.3.2" - "github.com/Microsoft/go-winio v0.3.2/go.mod" - "github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5" - "github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod" - "github.com/Microsoft/hcsshim v0.8.7" - "github.com/Microsoft/hcsshim v0.8.7/go.mod" - "github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5" - "github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod" - "github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5" - "github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5/go.mod" - "github.com/SeanDolphin/bqschema v0.0.0-20150424181127-f92a08f515e1" - "github.com/SeanDolphin/bqschema v0.0.0-20150424181127-f92a08f515e1/go.mod" - "github.com/Shopify/sarama v1.8.0" - "github.com/Shopify/sarama v1.8.0/go.mod" - "github.com/Shopify/toxiproxy v2.1.4+incompatible" - "github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod" - "github.com/abbot/go-http-auth v0.0.0-20140618235127-c0ef4539dfab" - "github.com/abbot/go-http-auth v0.0.0-20140618235127-c0ef4539dfab/go.mod" - "github.com/aws/aws-sdk-go v1.6.10" - "github.com/aws/aws-sdk-go v1.6.10/go.mod" - "github.com/beorn7/perks v0.0.0-20150223135152-b965b613227f" - "github.com/beorn7/perks v0.0.0-20150223135152-b965b613227f/go.mod" - "github.com/blang/semver v3.1.0+incompatible" - "github.com/blang/semver v3.1.0+incompatible/go.mod" - "github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod" - "github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b" - "github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b/go.mod" - "github.com/cilium/ebpf v0.0.0-20191113100448-d9fb101ca1fb" - "github.com/cilium/ebpf v0.0.0-20191113100448-d9fb101ca1fb/go.mod" - "github.com/client9/misspell v0.3.4/go.mod" - "github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f" - "github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod" - "github.com/containerd/cgroups v0.0.0-20200108155730-918ed86e29cc" - "github.com/containerd/cgroups v0.0.0-20200108155730-918ed86e29cc/go.mod" - "github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa" - "github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod" - "github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1" - "github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod" - "github.com/containerd/containerd v1.0.2" - "github.com/containerd/containerd v1.0.2/go.mod" - "github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod" - "github.com/containerd/containerd v1.3.2" - "github.com/containerd/containerd v1.3.2/go.mod" - "github.com/containerd/containerd v1.3.3" - "github.com/containerd/containerd v1.3.3/go.mod" - "github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod" - "github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41" - "github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41/go.mod" - "github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod" - "github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00" - "github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00/go.mod" - "github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod" - "github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod" - "github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c" - "github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod" - "github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod" - "github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd" - "github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod" - "github.com/coreos/go-systemd v0.0.0-20160527140244-4484981625c1" - "github.com/coreos/go-systemd v0.0.0-20160527140244-4484981625c1/go.mod" - "github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e" - "github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod" - "github.com/coreos/go-systemd/v22 v22.0.0-20191111152658-2d78030078ef/go.mod" - "github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d" - "github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod" - "github.com/cyphar/filepath-securejoin v0.2.2-0.20170720062807-ae69057f2299" - "github.com/cyphar/filepath-securejoin v0.2.2-0.20170720062807-ae69057f2299/go.mod" - "github.com/davecgh/go-spew v1.1.0/go.mod" - "github.com/davecgh/go-spew v1.1.1" - "github.com/davecgh/go-spew v1.1.1/go.mod" - "github.com/docker/distribution v2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible" - "github.com/docker/distribution v2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible/go.mod" - "github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible" - "github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod" - "github.com/docker/distribution v2.7.1+incompatible" - "github.com/docker/distribution v2.7.1+incompatible/go.mod" - "github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0" - "github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod" - "github.com/docker/docker v1.4.2-0.20180612054059-a9fbbdc8dd87" - "github.com/docker/docker v1.4.2-0.20180612054059-a9fbbdc8dd87/go.mod" - "github.com/docker/go-connections v0.3.0" - "github.com/docker/go-connections v0.3.0/go.mod" - "github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c" - "github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod" - "github.com/docker/go-units v0.2.1-0.20151230175859-0bbddae09c5a" - "github.com/docker/go-units v0.2.1-0.20151230175859-0bbddae09c5a/go.mod" - "github.com/docker/go-units v0.4.0" - "github.com/docker/go-units v0.4.0/go.mod" - "github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod" - "github.com/eapache/go-resiliency v1.0.1-0.20160104191539-b86b1ec0dd42" - "github.com/eapache/go-resiliency v1.0.1-0.20160104191539-b86b1ec0dd42/go.mod" - "github.com/eapache/queue v1.0.2" - "github.com/eapache/queue v1.0.2/go.mod" - "github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod" - "github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod" - "github.com/euank/go-kmsg-parser v2.0.0+incompatible" - "github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod" - "github.com/fsnotify/fsnotify v1.4.7" - "github.com/fsnotify/fsnotify v1.4.7/go.mod" - "github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7" - "github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod" - "github.com/go-ini/ini v1.9.0" - "github.com/go-ini/ini v1.9.0/go.mod" - "github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55" - "github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod" - "github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e" - "github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod" - "github.com/godbus/dbus/v5 v5.0.3/go.mod" - "github.com/gogo/googleapis v1.3.1" - "github.com/gogo/googleapis v1.3.1/go.mod" - "github.com/gogo/protobuf v1.2.1/go.mod" - "github.com/gogo/protobuf v1.3.0" - "github.com/gogo/protobuf v1.3.0/go.mod" - "github.com/gogo/protobuf v1.3.1" - "github.com/gogo/protobuf v1.3.1/go.mod" - "github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b" - "github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod" - "github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6" - "github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod" - "github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7" - "github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod" - "github.com/golang/mock v1.1.1/go.mod" - "github.com/golang/protobuf v1.2.0/go.mod" - "github.com/golang/protobuf v1.3.1" - "github.com/golang/protobuf v1.3.1/go.mod" - "github.com/golang/protobuf v1.3.2" - "github.com/golang/protobuf v1.3.2/go.mod" - "github.com/golang/snappy v0.0.0-20150730031844-723cc1e459b8" - "github.com/golang/snappy v0.0.0-20150730031844-723cc1e459b8/go.mod" - "github.com/google/go-cmp v0.2.0/go.mod" - "github.com/google/go-cmp v0.3.0/go.mod" - "github.com/google/go-cmp v0.3.1" - "github.com/google/go-cmp v0.3.1/go.mod" - "github.com/google/uuid v1.1.1" - "github.com/google/uuid v1.1.1/go.mod" - "github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1" - "github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod" - "github.com/gorilla/mux v1.7.3" - "github.com/gorilla/mux v1.7.3/go.mod" - "github.com/gotestyourself/gotestyourself v2.2.0+incompatible" - "github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod" - "github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod" - "github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod" - "github.com/hashicorp/golang-lru v0.5.1" - "github.com/hashicorp/golang-lru v0.5.1/go.mod" - "github.com/hashicorp/golang-lru v0.5.3/go.mod" - "github.com/hpcloud/tail v1.0.0" - "github.com/hpcloud/tail v1.0.0/go.mod" - "github.com/inconshreveable/mousetrap v1.0.0/go.mod" - "github.com/influxdb/influxdb v0.9.6-0.20151125225445-9eab56311373" - "github.com/influxdb/influxdb v0.9.6-0.20151125225445-9eab56311373/go.mod" - "github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8" - "github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod" - "github.com/jtolds/gls v4.20.0+incompatible" - "github.com/jtolds/gls v4.20.0+incompatible/go.mod" - "github.com/karrick/godirwalk v1.7.5" - "github.com/karrick/godirwalk v1.7.5/go.mod" - "github.com/kevinburke/go-bindata v3.16.0+incompatible" - "github.com/kevinburke/go-bindata v3.16.0+incompatible/go.mod" - "github.com/kevinburke/go-bindata v3.17.0+incompatible" - "github.com/kevinburke/go-bindata v3.17.0+incompatible/go.mod" - "github.com/kisielk/errcheck v1.1.0/go.mod" - "github.com/kisielk/errcheck v1.2.0/go.mod" - "github.com/kisielk/gotool v1.0.0/go.mod" - "github.com/klauspost/crc32 v0.0.0-20151223135126-a3b15ae34567" - "github.com/klauspost/crc32 v0.0.0-20151223135126-a3b15ae34567/go.mod" - "github.com/konsorten/go-windows-terminal-sequences v1.0.1" - "github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod" - "github.com/konsorten/go-windows-terminal-sequences v1.0.2" - "github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod" - "github.com/kr/pretty v0.0.0-20140723054909-088c856450c0" - "github.com/kr/pretty v0.0.0-20140723054909-088c856450c0/go.mod" - "github.com/kr/text v0.0.0-20130911015532-6807e777504f" - "github.com/kr/text v0.0.0-20130911015532-6807e777504f/go.mod" - "github.com/mattn/go-shellwords v1.0.4-0.20180201004752-39dbbfa24bbc" - "github.com/mattn/go-shellwords v1.0.4-0.20180201004752-39dbbfa24bbc/go.mod" - "github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369" - "github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod" - "github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48" - "github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48/go.mod" - "github.com/mindprince/gonvml v0.0.0-20171110221305-fee913ce8fb2" - "github.com/mindprince/gonvml v0.0.0-20171110221305-fee913ce8fb2/go.mod" - "github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989" - "github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod" - "github.com/mistifyio/go-zfs v2.1.2-0.20170901132433-166dd29edf05+incompatible" - "github.com/mistifyio/go-zfs v2.1.2-0.20170901132433-166dd29edf05+incompatible/go.mod" - "github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible" - "github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod" - "github.com/mrunalp/fileutils v0.0.0-20160930181131-4ee1cc9a8058" - "github.com/mrunalp/fileutils v0.0.0-20160930181131-4ee1cc9a8058/go.mod" - "github.com/onsi/ginkgo v1.6.0/go.mod" - "github.com/onsi/ginkgo v1.10.1/go.mod" - "github.com/onsi/ginkgo v1.10.3" - "github.com/onsi/ginkgo v1.10.3/go.mod" - "github.com/onsi/gomega v1.7.0/go.mod" - "github.com/onsi/gomega v1.7.1" - "github.com/onsi/gomega v1.7.1/go.mod" - "github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod" - "github.com/opencontainers/go-digest v1.0.0-rc1" - "github.com/opencontainers/go-digest v1.0.0-rc1/go.mod" - "github.com/opencontainers/image-spec v1.0.0-rc6.0.20170604055404-372ad780f634" - "github.com/opencontainers/image-spec v1.0.0-rc6.0.20170604055404-372ad780f634/go.mod" - "github.com/opencontainers/image-spec v1.0.1" - "github.com/opencontainers/image-spec v1.0.1/go.mod" - "github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod" - "github.com/opencontainers/runc v1.0.0-rc10" - "github.com/opencontainers/runc v1.0.0-rc10/go.mod" - "github.com/opencontainers/runc v1.0.0-rc8.0.20190906011214-a6606a7ae9d9" - "github.com/opencontainers/runc v1.0.0-rc8.0.20190906011214-a6606a7ae9d9/go.mod" - "github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod" - "github.com/opencontainers/runtime-spec v1.0.0" - "github.com/opencontainers/runtime-spec v1.0.0/go.mod" - "github.com/opencontainers/runtime-spec v1.0.1" - "github.com/opencontainers/runtime-spec v1.0.1/go.mod" - "github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod" - "github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52" - "github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52/go.mod" - "github.com/opencontainers/selinux v1.3.2" - "github.com/opencontainers/selinux v1.3.2/go.mod" - "github.com/opencontainers/selinux v1.3.3" - "github.com/opencontainers/selinux v1.3.3/go.mod" - "github.com/pborman/uuid v0.0.0-20150824212802-cccd189d45f7" - "github.com/pborman/uuid v0.0.0-20150824212802-cccd189d45f7/go.mod" - "github.com/pkg/errors v0.8.0/go.mod" - "github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod" - "github.com/pkg/errors v0.8.1" - "github.com/pkg/errors v0.8.1/go.mod" - "github.com/pmezard/go-difflib v1.0.0" - "github.com/pmezard/go-difflib v1.0.0/go.mod" - "github.com/pquerna/ffjson v0.0.0-20171002144729-d49c2bc1aa13" - "github.com/pquerna/ffjson v0.0.0-20171002144729-d49c2bc1aa13/go.mod" - "github.com/prometheus/client_golang v0.9.1" - "github.com/prometheus/client_golang v0.9.1/go.mod" - "github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612" - "github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612/go.mod" - "github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4" - "github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod" - "github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b" - "github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b/go.mod" - "github.com/prometheus/procfs v0.0.0-20170419201554-1e2146578273" - "github.com/prometheus/procfs v0.0.0-20170419201554-1e2146578273/go.mod" - "github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod" - "github.com/prometheus/procfs v0.0.5" - "github.com/prometheus/procfs v0.0.5/go.mod" - "github.com/russross/blackfriday/v2 v2.0.1" - "github.com/russross/blackfriday/v2 v2.0.1/go.mod" - "github.com/seccomp/libseccomp-golang v0.0.0-20150813023252-1b506fc7c24e" - "github.com/seccomp/libseccomp-golang v0.0.0-20150813023252-1b506fc7c24e/go.mod" - "github.com/shurcooL/sanitized_anchor_name v1.0.0" - "github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod" - "github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod" - "github.com/sirupsen/logrus v1.4.1/go.mod" - "github.com/sirupsen/logrus v1.4.2" - "github.com/sirupsen/logrus v1.4.2/go.mod" - "github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d" - "github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod" - "github.com/smartystreets/goconvey v1.6.4" - "github.com/smartystreets/goconvey v1.6.4/go.mod" - "github.com/spf13/afero v1.2.2/go.mod" - "github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod" - "github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod" - "github.com/stretchr/objx v0.1.0" - "github.com/stretchr/objx v0.1.0/go.mod" - "github.com/stretchr/objx v0.1.1" - "github.com/stretchr/objx v0.1.1/go.mod" - "github.com/stretchr/testify v1.2.2/go.mod" - "github.com/stretchr/testify v1.3.0" - "github.com/stretchr/testify v1.3.0/go.mod" - "github.com/stretchr/testify v1.4.0" - "github.com/stretchr/testify v1.4.0/go.mod" - "github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod" - "github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2" - "github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod" - "github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod" - "github.com/urfave/cli v1.22.1" - "github.com/urfave/cli v1.22.1/go.mod" - "github.com/vishvananda/netlink v0.0.0-20150820014904-1e2e08e8a2dc" - "github.com/vishvananda/netlink v0.0.0-20150820014904-1e2e08e8a2dc/go.mod" - "github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df" - "github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod" - "github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod" - "github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod" - "github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod" - "go.opencensus.io v0.22.0" - "go.opencensus.io v0.22.0/go.mod" - "go.opencensus.io v0.22.2" - "go.opencensus.io v0.22.2/go.mod" - "golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod" - "golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2" - "golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod" - "golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod" - "golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod" - "golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod" - "golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod" - "golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod" - "golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod" - "golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod" - "golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod" - "golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod" - "golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod" - "golang.org/x/net v0.0.0-20190603091049-60506f45cf65" - "golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod" - "golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod" - "golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553" - "golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod" - "golang.org/x/oauth2 v0.0.0-20150321034511-ca8a464d23d5" - "golang.org/x/oauth2 v0.0.0-20150321034511-ca8a464d23d5/go.mod" - "golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be" - "golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod" - "golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod" - "golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod" - "golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4" - "golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod" - "golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6" - "golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod" - "golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod" - "golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e" - "golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod" - "golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod" - "golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod" - "golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod" - "golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod" - "golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod" - "golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod" - "golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862" - "golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862/go.mod" - "golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod" - "golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod" - "golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod" - "golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod" - "golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod" - "golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod" - "golang.org/x/sys v0.0.0-20191210023423-ac6580df4449" - "golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod" - "golang.org/x/sys v0.0.0-20200107162124-548cf772de50" - "golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod" - "golang.org/x/text v0.3.0" - "golang.org/x/text v0.3.0/go.mod" - "golang.org/x/text v0.3.2" - "golang.org/x/text v0.3.2/go.mod" - "golang.org/x/time v0.0.0-20191024005414-555d28b269f0" - "golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod" - "golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod" - "golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod" - "golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod" - "golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod" - "golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod" - "golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod" - "golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod" - "golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod" - "google.golang.org/api v0.0.0-20150730141719-0c2979aeaa5b" - "google.golang.org/api v0.0.0-20150730141719-0c2979aeaa5b/go.mod" - "google.golang.org/appengine v1.1.0/go.mod" - "google.golang.org/appengine v1.4.0/go.mod" - "google.golang.org/appengine v1.6.5" - "google.golang.org/appengine v1.6.5/go.mod" - "google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6" - "google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6/go.mod" - "google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod" - "google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod" - "google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69" - "google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod" - "google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod" - "google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb" - "google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod" - "google.golang.org/grpc v1.7.0" - "google.golang.org/grpc v1.7.0/go.mod" - "google.golang.org/grpc v1.19.0/go.mod" - "google.golang.org/grpc v1.20.1/go.mod" - "google.golang.org/grpc v1.21.0" - "google.golang.org/grpc v1.21.0/go.mod" - "google.golang.org/grpc v1.23.0/go.mod" - "google.golang.org/grpc v1.26.0" - "google.golang.org/grpc v1.26.0/go.mod" - "gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod" - "gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405" - "gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod" - "gopkg.in/fsnotify.v1 v1.4.7" - "gopkg.in/fsnotify.v1 v1.4.7/go.mod" - "gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod" - "gopkg.in/olivere/elastic.v2 v2.0.12" - "gopkg.in/olivere/elastic.v2 v2.0.12/go.mod" - "gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7" - "gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod" - "gopkg.in/yaml.v2 v2.2.1/go.mod" - "gopkg.in/yaml.v2 v2.2.2/go.mod" - "gopkg.in/yaml.v2 v2.2.4" - "gopkg.in/yaml.v2 v2.2.4/go.mod" - "gotest.tools v2.2.0+incompatible" - "gotest.tools v2.2.0+incompatible/go.mod" - "honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod" - "honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod" - "k8s.io/klog v0.3.0" - "k8s.io/klog v0.3.0/go.mod" - "k8s.io/kubernetes v1.13.0/go.mod" - "k8s.io/utils v0.0.0-20190712204705-3dccf664f023" - "k8s.io/utils v0.0.0-20190712204705-3dccf664f023/go.mod" - "k8s.io/utils v0.0.0-20200117235808-5f6fbceb4c31" - "k8s.io/utils v0.0.0-20200117235808-5f6fbceb4c31/go.mod" - "k8s.io/utils v0.0.0-20200122174043-1e243dd1a584" - "k8s.io/utils v0.0.0-20200122174043-1e243dd1a584/go.mod" - ) -go-module_set_globals -SRC_URI="https://github.com/google/cadvisor/archive/v${PV}.tar.gz -> ${P}.tar.gz - ${EGO_SUM_SRC_URI}" - -LICENSE="Apache-2.0 BSD BSD-2 ISC MIT" -KEYWORDS="~amd64" -SLOT="0" - -COMMON_DEPEND="acct-group/cadvisor - acct-user/cadvisor" -DEPEND="${COMMON_DEPEND}" -RDEPEND="${COMMON_DEPEND}" - -src_prepare() { - sed -i -e "/go get/d" build/assets.sh || die - sed -i -e "s/git describe.*/echo ${PV} )/"\ - -e "s/git rev-parse --short HEAD.*/echo ${COMMIT} )/"\ - build/build.sh || die - default -} - -src_compile() { - rm -fr vendor || die - GO_FLAGS="${GOFLAGS}" VERBOSE="true" emake build -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN} - dobin ${PN} - keepdir /var/log/${PN} - fowners ${PN}:${PN} /var/log/${PN} -} diff --git a/app-emulation/cadvisor/files/cadvisor.initd-r1 b/app-emulation/cadvisor/files/cadvisor.initd-r1 deleted file mode 100644 index 37fc16c8f63d..000000000000 --- a/app-emulation/cadvisor/files/cadvisor.initd-r1 +++ /dev/null @@ -1,19 +0,0 @@ -#!/sbin/openrc-run -# Copyright 2016-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="cAdvisor - Analyzes resource usage and performance characteristics of running containers" -pidfile=${pidfile:-"/run/${SVCNAME}.pid"} -user=${user:-${SVCNAME}} -group=${group:-${SVCNAME}} - -command="/usr/bin/cadvisor" -command_background="true" -start_stop_daemon_args="--user ${user} --group ${group} \ - --stdout /var/log/${SVCNAME}/${SVCNAME}.log \ - --stderr /var/log/${SVCNAME}/${SVCNAME}.log" - -depend() { - after net - use docker -} diff --git a/app-emulation/cadvisor/metadata.xml b/app-emulation/cadvisor/metadata.xml deleted file mode 100644 index 054ff1968a44..000000000000 --- a/app-emulation/cadvisor/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <upstream> - <remote-id type="github">google/cadvisor</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/cloud-hypervisor/Manifest b/app-emulation/cloud-hypervisor/Manifest new file mode 100644 index 000000000000..5519f9b3e4fc --- /dev/null +++ b/app-emulation/cloud-hypervisor/Manifest @@ -0,0 +1,2 @@ +DIST cloud-hypervisor-31.0-vendor.tar.gz 36783838 BLAKE2B 6087223f6cf17954bbe81a792233e735672da97e7b83515ce705b6b789afefcdee1d5a6c3a8f9aded27fd842eab0d1c31b1d09c0e56391ba4422ae4360befd5d SHA512 3595445a765a3571fe3597488940f7fa01576063de2324aa7a212f69b09b9fb0163ff922e3f789696702626ca51df4512fe9e60fe0cd59c3ea191c421718bf4f +DIST cloud-hypervisor-31.0.tar.gz 849675 BLAKE2B b88f1cb53fde6085c33e969d508fbccf29d54e2f04cee143340d0a43547a967d7cdea6bc880c24c84e34bfc4a4d8c4e4478aeb54e858d4518e528f07b521b9b3 SHA512 9ddb8bce534331f609d00703e1c47e4359723432661aef4e0b920f8b289f13c9fda68d0f3320bcbc80824f699df1e456375b6268355c8a79d69c78e5d7659f52 diff --git a/app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild b/app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild new file mode 100644 index 000000000000..6de65cf5be66 --- /dev/null +++ b/app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild @@ -0,0 +1,49 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Auto-Generated by cargo-ebuild 0.5.4 + +EAPI=8 + +CRATES=" " +inherit cargo + +DESCRIPTION="Open source Virtual Machine Monitor (VMM) that runs on top of KVM" +HOMEPAGE="https://www.cloudhypervisor.org" +SRC_URI="https://github.com/cloud-hypervisor/cloud-hypervisor/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~jsmolic/distfiles/${P}-vendor.tar.gz" + +LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB" +SLOT="0" +KEYWORDS="~amd64" + +# rust does not use *FLAGS from make.conf, silence portage warning +QA_FLAGS_IGNORED="usr/bin/.*" + +src_unpack() { + cargo_src_unpack + mkdir "${S}"/{vendor,.cargo} || die + ln -s "${WORKDIR}/vendor/"* "${S}"/vendor || die + cp "${FILESDIR}"/${P}-vendor-config "${S}"/.cargo/config.toml || die +} + +src_prepare() { + default + sed -i 's/strip = true/strip = false/' Cargo.toml || die +} + +src_configure() { + cargo_gen_config + cargo_src_configure --frozen +} + +src_test() { + # Intergration tests require root + # https://github.com/cloud-hypervisor/cloud-hypervisor/issues/5388 + cargo_src_test --bins +} + +src_install() { + cargo_src_install + dodoc -r docs +} diff --git a/app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild b/app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild new file mode 100644 index 000000000000..2769f9c4605b --- /dev/null +++ b/app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild @@ -0,0 +1,44 @@ +# Copyright 2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# Auto-Generated by cargo-ebuild 0.5.4 + +EAPI=8 + +inherit cargo git-r3 + +DESCRIPTION="Open source Virtual Machine Monitor (VMM) that runs on top of KVM" +HOMEPAGE="https://www.cloudhypervisor.org" +EGIT_REPO_URI="https://github.com/cloud-hypervisor/cloud-hypervisor.git" + +LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB" +SLOT="0" + +# rust does not use *FLAGS from make.conf, silence portage warning +QA_FLAGS_IGNORED="usr/bin/.*" + +src_unpack() { + git-r3_src_unpack + cargo_live_src_unpack +} + +src_prepare() { + default + sed -i 's/strip = true/strip = false/' Cargo.toml || die +} + +src_configure() { + cargo_gen_config + cargo_src_configure --frozen +} + +src_test() { + # Integration tests require root + # https://github.com/cloud-hypervisor/cloud-hypervisor/issues/5388 + cargo_src_test --bins +} + +src_install() { + cargo_src_install + dodoc -r docs +} diff --git a/app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config b/app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config new file mode 100644 index 000000000000..b20bf67b611d --- /dev/null +++ b/app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config @@ -0,0 +1,45 @@ +[source.crates-io] +replace-with = "vendored-sources" + +[source."https://github.com/cloud-hypervisor/kvm-bindings"] +git = "https://github.com/cloud-hypervisor/kvm-bindings" +branch = "ch-v0.6.0-tdx" +replace-with = "vendored-sources" + +[source."https://github.com/cloud-hypervisor/versionize_derive"] +git = "https://github.com/cloud-hypervisor/versionize_derive" +branch = "ch" +replace-with = "vendored-sources" + +[source."https://github.com/firecracker-microvm/micro-http"] +git = "https://github.com/firecracker-microvm/micro-http" +branch = "main" +replace-with = "vendored-sources" + +[source."https://github.com/rust-vmm/acpi_tables"] +git = "https://github.com/rust-vmm/acpi_tables" +branch = "main" +replace-with = "vendored-sources" + +[source."https://github.com/rust-vmm/mshv"] +git = "https://github.com/rust-vmm/mshv" +branch = "main" +replace-with = "vendored-sources" + +[source."https://github.com/rust-vmm/vfio"] +git = "https://github.com/rust-vmm/vfio" +branch = "main" +replace-with = "vendored-sources" + +[source."https://github.com/rust-vmm/vfio-user"] +git = "https://github.com/rust-vmm/vfio-user" +branch = "main" +replace-with = "vendored-sources" + +[source."https://github.com/rust-vmm/vm-fdt"] +git = "https://github.com/rust-vmm/vm-fdt" +branch = "main" +replace-with = "vendored-sources" + +[source.vendored-sources] +directory = "vendor" diff --git a/app-emulation/cloud-hypervisor/metadata.xml b/app-emulation/cloud-hypervisor/metadata.xml new file mode 100644 index 000000000000..81242aa0ae84 --- /dev/null +++ b/app-emulation/cloud-hypervisor/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>jsmolic@gentoo.org</email> + <name>Jakov Smolić</name> + </maintainer> + <upstream> + <remote-id type="github">cloud-hypervisor/cloud-hypervisor</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/cloud-init/Manifest b/app-emulation/cloud-init/Manifest index c613182719d4..a1fdc85deb9c 100644 --- a/app-emulation/cloud-init/Manifest +++ b/app-emulation/cloud-init/Manifest @@ -1,2 +1,3 @@ -DIST cloud-init-19.4.tar.gz 1091893 BLAKE2B 2ab8fef70b420c066d6d8f83871568eeac24f00879ecf3d58c3768dd809cff6a3b79c7e72d9a10204002101049ab86ab64f0c524362e00497a9222960ef380df SHA512 e69ea47eab41d69d64fa44102fbde59319da5f71a68f28a0f6ac65cd6866542b4fe58a71b84c903cfa9b1d2f26eb648cdf4de633b8df61e4f89c9fa4c2a2b1d3 -DIST cloud-init-20.1.tar.gz 1088152 BLAKE2B 1c075676bcf7454965beafaaa38f3cdf08f321ddd0303b7f710c49d2a69e0fb2ec8a81870a632b7504c47af6436555c97ea9fa9c8416955de78f8f551b5509b7 SHA512 ad28e4a0290165308ef2cdb8a935778ad99039978a204bee1098460de006bc3f375a3b81d0d72971fc4f4195d5d2ade9c648fb19e6d6eba12decf750dc54b6eb +DIST cloud-init-22.2.2.tar.gz 1349451 BLAKE2B fdb6669e9762984614fefe787834f20f056345d304327679fa8bc7b4d6566509a23ecc4a7ac4e6368b9b9078a72fe6fe35533a67e7aeb0c0accbf5ad014f8aae SHA512 18b75ebbb5e808e19df5ceddb6402cc881c33443fb169f736f54837254ba43836994f2392a26febbd8df3342b3467ee72759b6942cfeb96d07c0e452c11dd0bf +DIST cloud-init-22.4.tar.gz 1494295 BLAKE2B 5f961c895c0d6c78a7cee47d2b52acd57d959baeb5172cea89d75ffe23424e3a8a3170a0ecdcad729c6cb0c898477ea94c43a5f8bdf200fc3f122c32fdb2e96d SHA512 6151d1d5e4be241219cb5804ca2bad2dd790f366bc847d286a8840faad1fb4adf5d780c9418ce574c2cfcefc16851a49961f33c5da1fbc84bb8299cf138bfcfc +DIST cloud-init-23.4.tar.gz 1648908 BLAKE2B 0acec9c437c7a5a86ed9cd8718830a7311c257ae9f223a68959b8d1eccc693b35f6a716de5c04112d848c1e2e54f6461a3919fd733debba18989145f6669d359 SHA512 34966b173571764bf83779bef0e89a86971310ff0fa62feceef4fbe17c9fa6d1b69f11f57caaa32cc4ae4a74f598f157dfb3ce356221044666401230cfb1ad13 diff --git a/app-emulation/cloud-init/cloud-init-20.1.ebuild b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild index 2ab63c9b9602..a1d0ec08c413 100644 --- a/app-emulation/cloud-init/cloud-init-20.1.ebuild +++ b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild @@ -1,18 +1,21 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 -PYTHON_COMPAT=( python3_6 python3_7 python3_8 ) -DISTUTILS_USE_SETUPTOOLS=rdepend +EAPI=8 -inherit distutils-r1 +# Disabled for now: bug #850628 +# https://bugs.launchpad.net/cloud-init/+bug/1978328 +#DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_10 ) -if [[ ${PV} == *9999 ]];then +inherit distutils-r1 udev + +if [[ ${PV} == *9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://git.launchpad.net/cloud-init" else SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz" - KEYWORDS="amd64 ~arm64 x86" + KEYWORDS="amd64 arm64 ppc64 x86" fi DESCRIPTION="Cloud instance initialisation magic" @@ -20,7 +23,7 @@ HOMEPAGE="https://launchpad.net/cloud-init" LICENSE="GPL-3" SLOT="0" -IUSE="test" +IUSE="selinux test" RESTRICT="!test? ( test )" CDEPEND=" @@ -32,17 +35,16 @@ CDEPEND=" dev-python/requests[${PYTHON_USEDEP}] dev-python/jsonpatch[${PYTHON_USEDEP}] dev-python/jsonschema[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] + dev-python/netifaces[${PYTHON_USEDEP}] " -DEPEND=" +BDEPEND=" + ${CDEPEND} test? ( - ${CDEPEND} >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}] dev-python/mock[${PYTHON_USEDEP}] - dev-python/nose[${PYTHON_USEDEP}] - dev-python/unittest2[${PYTHON_USEDEP}] - dev-python/coverage[${PYTHON_USEDEP}] - dev-python/contextlib2[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/responses[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] ) " RDEPEND=" @@ -51,28 +53,19 @@ RDEPEND=" sys-apps/iproute2 sys-fs/growpart virtual/logger + selinux? ( sec-policy/selinux-cloudinit ) " -PATCHES=( - # Fix Gentoo support - # https://code.launchpad.net/~gilles-dartiguelongue/cloud-init/+git/cloud-init/+merge/358777 - "${FILESDIR}/${PN}-18.4-fix-packages-module.patch" - "${FILESDIR}/${PN}-20.1-gentoo-support-upstream-templates.patch" - "${FILESDIR}"/18.4-fix-filename-for-storing-locale.patch - "${FILESDIR}"/18.4-fix-update_package_sources-function.patch - "${FILESDIR}"/18.4-add-support-for-package_upgrade.patch -) +distutils_enable_tests pytest python_prepare_all() { # Fix location of documentation installation sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die - sed -i 's/version=get_version(),/version=9999,/g' setup.py || die - distutils-r1_python_prepare_all -} -python_test() { - # Do not use Makefile target as it does not setup environment correclty - esetup.py nosetests -v --where cloudinit --where tests/unittests || die + if [[ ${PV} == *9999 ]] ; then + sed -i 's/version=get_version(),/version=9999,/g' setup.py || die + fi + distutils-r1_python_prepare_all } python_install() { @@ -85,10 +78,16 @@ python_install_all() { distutils-r1_python_install_all # installs as non-executable - chmod +x "${D}"/etc/init.d/* + chmod +x "${D}"/etc/init.d/* || die +} + +pkg_prerm() { + udev_reload } pkg_postinst() { + udev_reload + elog "cloud-init-local needs to be run in the boot runlevel because it" elog "modifies services in the default runlevel. When a runlevel is started" elog "it is cached, so modifications that happen to the current runlevel" diff --git a/app-emulation/cloud-init/cloud-init-19.4.ebuild b/app-emulation/cloud-init/cloud-init-22.4.ebuild index 6ece034faa12..839d6105a832 100644 --- a/app-emulation/cloud-init/cloud-init-19.4.ebuild +++ b/app-emulation/cloud-init/cloud-init-22.4.ebuild @@ -1,20 +1,29 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 -PYTHON_COMPAT=( python3_6 python3_7 ) -DISTUTILS_USE_SETUPTOOLS=rdepend +EAPI=8 -inherit distutils-r1 +# Disabled for now: bug #850628 +# https://bugs.launchpad.net/cloud-init/+bug/1978328 +#DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_10 python3_11 ) + +inherit distutils-r1 udev + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.launchpad.net/cloud-init" +else + SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz" + KEYWORDS="amd64 arm64 ppc64 x86" +fi DESCRIPTION="Cloud instance initialisation magic" HOMEPAGE="https://launchpad.net/cloud-init" -SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz" LICENSE="GPL-3" SLOT="0" -KEYWORDS="amd64 x86" -IUSE="test" +IUSE="selinux test" RESTRICT="!test? ( test )" CDEPEND=" @@ -26,17 +35,16 @@ CDEPEND=" dev-python/requests[${PYTHON_USEDEP}] dev-python/jsonpatch[${PYTHON_USEDEP}] dev-python/jsonschema[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] + dev-python/netifaces[${PYTHON_USEDEP}] " -DEPEND=" +BDEPEND=" + ${CDEPEND} test? ( - ${CDEPEND} >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}] dev-python/mock[${PYTHON_USEDEP}] - dev-python/nose[${PYTHON_USEDEP}] - dev-python/unittest2[${PYTHON_USEDEP}] - dev-python/coverage[${PYTHON_USEDEP}] - dev-python/contextlib2[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/responses[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] ) " RDEPEND=" @@ -45,28 +53,19 @@ RDEPEND=" sys-apps/iproute2 sys-fs/growpart virtual/logger + selinux? ( sec-policy/selinux-cloudinit ) " -PATCHES=( - # Fix Gentoo support - # https://code.launchpad.net/~gilles-dartiguelongue/cloud-init/+git/cloud-init/+merge/358777 - "${FILESDIR}/${PN}-18.4-fix-packages-module.patch" - "${FILESDIR}/${P}-gentoo-support-upstream-templates.patch" - "${FILESDIR}"/18.4-fix-filename-for-storing-locale.patch - "${FILESDIR}"/18.4-fix-update_package_sources-function.patch - "${FILESDIR}"/18.4-add-support-for-package_upgrade.patch - "${FILESDIR}/${P}_CVE-2020-8631.patch" -) - -src_prepare() { +distutils_enable_tests pytest + +python_prepare_all() { # Fix location of documentation installation sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die - distutils-r1_src_prepare -} -python_test() { - # Do not use Makefile target as it does not setup environment correclty - esetup.py nosetests -v --where cloudinit --where tests/unittests || die + if [[ ${PV} == *9999 ]] ; then + sed -i 's/version=get_version(),/version=9999,/g' setup.py || die + fi + distutils-r1_python_prepare_all } python_install() { @@ -79,10 +78,16 @@ python_install_all() { distutils-r1_python_install_all # installs as non-executable - chmod +x "${D}"/etc/init.d/* + chmod +x "${D}"/etc/init.d/* || die +} + +pkg_prerm() { + udev_reload } pkg_postinst() { + udev_reload + elog "cloud-init-local needs to be run in the boot runlevel because it" elog "modifies services in the default runlevel. When a runlevel is started" elog "it is cached, so modifications that happen to the current runlevel" diff --git a/app-emulation/cloud-init/cloud-init-23.4.ebuild b/app-emulation/cloud-init/cloud-init-23.4.ebuild new file mode 100644 index 000000000000..eba8a0ee55f0 --- /dev/null +++ b/app-emulation/cloud-init/cloud-init-23.4.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Disabled for now: bug #850628 +# https://bugs.launchpad.net/cloud-init/+bug/1978328 +#DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_10 python3_11 python3_12 ) + +inherit distutils-r1 udev + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.launchpad.net/cloud-init" +else + SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +fi + +DESCRIPTION="Cloud instance initialisation magic" +HOMEPAGE="https://launchpad.net/cloud-init" + +LICENSE="GPL-3" +SLOT="0" +IUSE="selinux test" +RESTRICT="!test? ( test )" + +CDEPEND=" + dev-python/jinja[${PYTHON_USEDEP}] + dev-python/oauthlib[${PYTHON_USEDEP}] + dev-python/pyserial[${PYTHON_USEDEP}] + >=dev-python/configobj-5.0.2[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/jsonpatch[${PYTHON_USEDEP}] + dev-python/jsonschema[${PYTHON_USEDEP}] + dev-python/netifaces[${PYTHON_USEDEP}] +" +BDEPEND=" + ${CDEPEND} + test? ( + dev-python/mock[${PYTHON_USEDEP}] + dev-python/passlib[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/responses[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + ) +" +RDEPEND=" + ${CDEPEND} + net-analyzer/macchanger + sys-apps/iproute2 + sys-fs/growpart + virtual/logger + selinux? ( sec-policy/selinux-cloudinit ) +" + +distutils_enable_tests pytest + +python_prepare_all() { + # Fix location of documentation installation + sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die + + if [[ ${PV} == *9999 ]] ; then + sed -i 's/version=get_version(),/version=9999,/g' setup.py || die + fi + distutils-r1_python_prepare_all +} + +python_install() { + distutils-r1_python_install --init-system=sysvinit_openrc,systemd --distro gentoo +} + +python_install_all() { + keepdir /etc/cloud + + distutils-r1_python_install_all + + # installs as non-executable + chmod +x "${D}"/etc/init.d/* || die +} + +pkg_prerm() { + udev_reload +} + +pkg_postinst() { + udev_reload + + elog "cloud-init-local needs to be run in the boot runlevel because it" + elog "modifies services in the default runlevel. When a runlevel is started" + elog "it is cached, so modifications that happen to the current runlevel" + elog "while you are in it are not acted upon." +} diff --git a/app-emulation/cloud-init/cloud-init-9999.ebuild b/app-emulation/cloud-init/cloud-init-9999.ebuild index 581d49cdff12..7bb69ee6336a 100644 --- a/app-emulation/cloud-init/cloud-init-9999.ebuild +++ b/app-emulation/cloud-init/cloud-init-9999.ebuild @@ -1,18 +1,21 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 -PYTHON_COMPAT=( python3_6 python3_7 python3_8 ) -DISTUTILS_USE_SETUPTOOLS=rdepend +EAPI=8 -inherit distutils-r1 +# Disabled for now: bug #850628 +#DISTUTILS_USE_PEP517=setuptools +# https://bugs.launchpad.net/cloud-init/+bug/1978328 +PYTHON_COMPAT=( python3_10 python3_11 python3_12 ) -if [[ ${PV} == *9999 ]];then +inherit distutils-r1 udev + +if [[ ${PV} == *9999 ]]; then inherit git-r3 EGIT_REPO_URI="https://git.launchpad.net/cloud-init" else SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz" - KEYWORDS="~amd64 ~x86" + KEYWORDS="~amd64 ~arm64 ~x86" fi DESCRIPTION="Cloud instance initialisation magic" @@ -20,8 +23,7 @@ HOMEPAGE="https://launchpad.net/cloud-init" LICENSE="GPL-3" SLOT="0" -IUSE="test" -RESTRICT="!test? ( test )" +IUSE="selinux" CDEPEND=" dev-python/jinja[${PYTHON_USEDEP}] @@ -32,17 +34,16 @@ CDEPEND=" dev-python/requests[${PYTHON_USEDEP}] dev-python/jsonpatch[${PYTHON_USEDEP}] dev-python/jsonschema[${PYTHON_USEDEP}] - dev-python/six[${PYTHON_USEDEP}] + dev-python/netifaces[${PYTHON_USEDEP}] " -DEPEND=" +BDEPEND=" + ${CDEPEND} test? ( - ${CDEPEND} - >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}] dev-python/mock[${PYTHON_USEDEP}] - dev-python/nose[${PYTHON_USEDEP}] - dev-python/unittest2[${PYTHON_USEDEP}] - dev-python/coverage[${PYTHON_USEDEP}] - dev-python/contextlib2[${PYTHON_USEDEP}] + dev-python/passlib[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/responses[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] ) " RDEPEND=" @@ -51,28 +52,20 @@ RDEPEND=" sys-apps/iproute2 sys-fs/growpart virtual/logger + selinux? ( sec-policy/selinux-cloudinit ) " -PATCHES=( - # Fix Gentoo support - # https://code.launchpad.net/~gilles-dartiguelongue/cloud-init/+git/cloud-init/+merge/358777 - "${FILESDIR}/${PN}-18.4-fix-packages-module.patch" - "${FILESDIR}/${PN}-20.1-gentoo-support-upstream-templates.patch" - "${FILESDIR}"/18.4-fix-filename-for-storing-locale.patch - "${FILESDIR}"/18.4-fix-update_package_sources-function.patch - "${FILESDIR}"/18.4-add-support-for-package_upgrade.patch -) +distutils_enable_tests pytest python_prepare_all() { # Fix location of documentation installation sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die - sed -i 's/version=get_version(),/version=9999,/g' setup.py || die - distutils-r1_python_prepare_all -} -python_test() { - # Do not use Makefile target as it does not setup environment correclty - esetup.py nosetests -v --where cloudinit --where tests/unittests || die + if [[ ${PV} == *9999 ]] ; then + sed -i 's/version=get_version(),/version=9999,/g' setup.py || die + fi + + distutils-r1_python_prepare_all } python_install() { @@ -85,10 +78,16 @@ python_install_all() { distutils-r1_python_install_all # installs as non-executable - chmod +x "${D}"/etc/init.d/* + chmod +x "${D}"/etc/init.d/* || die +} + +pkg_prerm() { + udev_reload } pkg_postinst() { + udev_reload + elog "cloud-init-local needs to be run in the boot runlevel because it" elog "modifies services in the default runlevel. When a runlevel is started" elog "it is cached, so modifications that happen to the current runlevel" diff --git a/app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch b/app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch deleted file mode 100644 index 9c542cfc0777..000000000000 --- a/app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 7868b97507d0dd7d7721ad5c4539e22c67635f92 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Wed, 14 Nov 2018 15:58:30 +0100 -Subject: [PATCH 5/5] gentoo: add support for package_upgrade - ---- - cloudinit/distros/gentoo.py | 25 ++++++++++++++----------- - 1 file changed, 14 insertions(+), 11 deletions(-) - -diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py -index 7b838e82..22ad2cf3 100644 ---- a/cloudinit/distros/gentoo.py -+++ b/cloudinit/distros/gentoo.py -@@ -189,23 +189,26 @@ class Distro(distros.Distro): - distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz)) - - def package_command(self, command, args=None, pkgs=None): -- if pkgs is None: -- pkgs = [] -- - cmd = ['emerge'] - # Redirect output - cmd.append("--quiet") - -- if args and isinstance(args, str): -- cmd.append(args) -- elif args and isinstance(args, list): -- cmd.extend(args) -+ if command == "upgrade": -+ cmd.extend(["--update", "world"]) -+ else: -+ if pkgs is None: -+ pkgs = [] -+ -+ if args and isinstance(args, str): -+ cmd.append(args) -+ elif args and isinstance(args, list): -+ cmd.extend(args) - -- if command: -- cmd.append(command) -+ if command: -+ cmd.append(command) - -- pkglist = util.expand_package_list('%s-%s', pkgs) -- cmd.extend(pkglist) -+ pkglist = util.expand_package_list('%s-%s', pkgs) -+ cmd.extend(pkglist) - - # Allow the output of this to flow outwards (ie not be captured) - util.subp(cmd, capture=False) --- -2.19.1 - diff --git a/app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch b/app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch deleted file mode 100644 index a5bbf6034ac5..000000000000 --- a/app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3756cdea3e844b9611de321a8075df80e7dbf74d Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Wed, 14 Nov 2018 15:28:22 +0100 -Subject: [PATCH 3/5] gentoo: fix filename for storing locale - -There must have been a misunderstanding as locale.gen is meant to -contain locales to be generated if no argument is passed to locale-gen. - -When using openrc, Gentoo stores system locale in /etc/env.d/02locale -which is generally manipulated through eselect. ---- - cloudinit/distros/gentoo.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py -index 98ac41ca..50bb61fb 100644 ---- a/cloudinit/distros/gentoo.py -+++ b/cloudinit/distros/gentoo.py -@@ -20,7 +20,7 @@ LOG = logging.getLogger(__name__) - - - class Distro(distros.Distro): -- locale_conf_fn = '/etc/locale.gen' -+ locale_conf_fn = '/etc/env.d/02locale' - network_conf_fn = '/etc/conf.d/net' - resolve_conf_fn = '/etc/resolv.conf' - hostname_conf_fn = '/etc/conf.d/hostname' --- -2.19.1 - diff --git a/app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch b/app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch deleted file mode 100644 index d90258d1bc48..000000000000 --- a/app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b15c4c4b24c894b3c8d444466110c881c35525e2 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Wed, 14 Nov 2018 15:35:37 +0100 -Subject: [PATCH 4/5] gentoo: fix update_package_sources function - -Method is meant to update packages repository, not to update the system. ---- - cloudinit/distros/gentoo.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py -index 50bb61fb..7b838e82 100644 ---- a/cloudinit/distros/gentoo.py -+++ b/cloudinit/distros/gentoo.py -@@ -212,7 +212,7 @@ class Distro(distros.Distro): - - def update_package_sources(self): - self._runner.run("update-sources", self.package_command, -- ["-u", "world"], freq=PER_INSTANCE) -+ ["--sync"], freq=PER_INSTANCE) - - - def convert_resolv_conf(settings): --- -2.19.1 - diff --git a/app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch b/app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch deleted file mode 100644 index 4a42cbb7d9e1..000000000000 --- a/app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e894c6f57b88305cdf6e4e2b1543475b2e02f436 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Tue, 23 Oct 2018 18:59:58 +0200 -Subject: [PATCH 1/2] Fix Gentoo package installation command - ---- - cloudinit/distros/gentoo.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py -index dc57717d..98ac41ca 100644 ---- a/cloudinit/distros/gentoo.py -+++ b/cloudinit/distros/gentoo.py -@@ -192,7 +192,7 @@ class Distro(distros.Distro): - if pkgs is None: - pkgs = [] - -- cmd = list('emerge') -+ cmd = ['emerge'] - # Redirect output - cmd.append("--quiet") - --- -2.19.0 - diff --git a/app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch b/app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch deleted file mode 100644 index 210c29437361..000000000000 --- a/app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 823454f1ea140ec47f5f9c5c3c5ad62eb458eb8a Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Wed, 24 Oct 2018 10:52:46 +0200 -Subject: [PATCH 2/5] Add support for gentoo in cloud.cfg and templates - ---- - config/cloud.cfg.tmpl | 8 ++++++-- - templates/hosts.gentoo.tmpl | 24 ++++++++++++++++++++++++ - tools/render-cloudcfg | 2 +- - 3 files changed, 31 insertions(+), 3 deletions(-) - create mode 100644 templates/hosts.gentoo.tmpl - -diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl -index 1fef133a..3f5a41a2 100644 ---- a/config/cloud.cfg.tmpl -+++ b/config/cloud.cfg.tmpl -@@ -134,7 +134,7 @@ cloud_final_modules: - # (not accessible to handlers/transforms) - system_info: - # This will affect which distro class gets used --{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu"] %} -+{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "gentoo", "rhel", "suse", "ubuntu"] %} - distro: {{ variant }} - {% else %} - # Unknown/fallback distro. -@@ -172,7 +172,7 @@ system_info: - primary: http://ports.ubuntu.com/ubuntu-ports - security: http://ports.ubuntu.com/ubuntu-ports - ssh_svcname: ssh --{% elif variant in ["arch", "centos", "fedora", "rhel", "suse"] %} -+{% elif variant in ["arch", "centos", "fedora", "gentoo", "rhel", "suse"] %} - # Default user name + that default users groups (if added/used) - default_user: - name: {{ variant }} -@@ -180,6 +180,10 @@ system_info: - {% endif %} - {% if variant == "suse" %} - groups: [cdrom, users] -+{% elif variant == "gentoo" %} -+ groups: [users, wheel] -+ primary_group: users -+ no_user_group: true - {% elif variant == "arch" %} - groups: [wheel, users] - {% else %} -diff --git a/templates/hosts.gentoo.tmpl b/templates/hosts.gentoo.tmpl -new file mode 100644 -index 00000000..cd045fa6 ---- /dev/null -+++ b/templates/hosts.gentoo.tmpl -@@ -0,0 +1,24 @@ -+## template:jinja -+{# -+This file /etc/cloud/templates/hosts.gentoo.tmpl is only utilized -+if enabled in cloud-config. Specifically, in order to enable it -+you need to add the following to config: -+ manage_etc_hosts: True -+-#} -+# Your system has configured 'manage_etc_hosts' as True. -+# As a result, if you wish for changes to this file to persist -+# then you will need to either -+# a.) make changes to the master file in /etc/cloud/templates/hosts.gentoo.tmpl -+# b.) change or remove the value of 'manage_etc_hosts' in -+# /etc/cloud/cloud.cfg or cloud-config from user-data -+# -+# The following lines are desirable for IPv4 capable hosts -+127.0.0.1 {{fqdn}} {{hostname}} -+127.0.0.1 localhost.localdomain localhost -+127.0.0.1 localhost4.localdomain4 localhost4 -+ -+# The following lines are desirable for IPv6 capable hosts -+::1 {{fqdn}} {{hostname}} -+::1 localhost.localdomain localhost -+::1 localhost6.localdomain6 localhost6 -+ -diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg -index 8b7cb875..d109044e 100755 ---- a/tools/render-cloudcfg -+++ b/tools/render-cloudcfg -@@ -4,7 +4,7 @@ import argparse - import os - import sys - --VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", -- "ubuntu", "unknown"] -+VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "gentoo", "rhel", -+ "suse", "ubuntu", "unknown"] - - if "avoid-pep8-E402-import-not-top-of-file": - _tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) --- -2.19.1 - diff --git a/app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch b/app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch deleted file mode 100644 index 625473c68f1d..000000000000 --- a/app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 42788bf24a1a0a5421a2d00a7f59b59e38ba1a14 Mon Sep 17 00:00:00 2001 -From: Ryan Harper <ryan.harper@canonical.com> -Date: Fri, 24 Jan 2020 21:33:12 +0200 -Subject: [PATCH] cc_set_password: increase random pwlength from 9 to 20 (#189) - -Increasing the bits of security from 52 to 115. - -LP: #1860795 ---- - cloudinit/config/cc_set_passwords.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cloudinit/config/cc_set_passwords.py b/cloudinit/config/cc_set_passwords.py -index e3b39d8be..4943d5453 100755 ---- a/cloudinit/config/cc_set_passwords.py -+++ b/cloudinit/config/cc_set_passwords.py -@@ -236,7 +236,7 @@ def handle(_name, cfg, cloud, log, args): - raise errors[-1] - - --def rand_user_password(pwlen=9): -+def rand_user_password(pwlen=20): - return util.rand_str(pwlen, select_from=PW_SET) - - diff --git a/app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch b/app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch deleted file mode 100644 index c840f4fde3eb..000000000000 --- a/app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 823454f1ea140ec47f5f9c5c3c5ad62eb458eb8a Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Wed, 24 Oct 2018 10:52:46 +0200 -Subject: [PATCH 2/5] Add support for gentoo in cloud.cfg and templates - ---- - config/cloud.cfg.tmpl | 8 ++++++-- - templates/hosts.gentoo.tmpl | 24 ++++++++++++++++++++++++ - tools/render-cloudcfg | 2 +- - 3 files changed, 31 insertions(+), 3 deletions(-) - create mode 100644 templates/hosts.gentoo.tmpl - -diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl -index 1fef133a..3f5a41a2 100644 ---- a/config/cloud.cfg.tmpl -+++ b/config/cloud.cfg.tmpl -@@ -134,7 +134,7 @@ cloud_final_modules: - # (not accessible to handlers/transforms) - system_info: - # This will affect which distro class gets used --{% if variant in ["amazon", "arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu"] %} -+{% if variant in ["amazon", "arch", "centos", "debian", "fedora", "freebsd", "gentoo", "rhel", "suse", "ubuntu"] %} - distro: {{ variant }} - {% else %} - # Unknown/fallback distro. -@@ -172,7 +172,7 @@ system_info: - primary: http://ports.ubuntu.com/ubuntu-ports - security: http://ports.ubuntu.com/ubuntu-ports - ssh_svcname: ssh --{% elif variant in ["amazon", "arch", "centos", "fedora", "rhel", "suse"] %} -+{% elif variant in ["amazon", "arch", "centos", "fedora", "gentoo", "rhel", "suse"] %} - # Default user name + that default users groups (if added/used) - default_user: - name: {{ variant }} -@@ -180,6 +180,10 @@ system_info: - {% endif %} - {% if variant == "suse" %} - groups: [cdrom, users] -+{% elif variant == "gentoo" %} -+ groups: [users, wheel] -+ primary_group: users -+ no_user_group: true - {% elif variant == "arch" %} - groups: [wheel, users] - {% else %} -diff --git a/templates/hosts.gentoo.tmpl b/templates/hosts.gentoo.tmpl -new file mode 100644 -index 00000000..cd045fa6 ---- /dev/null -+++ b/templates/hosts.gentoo.tmpl -@@ -0,0 +1,24 @@ -+## template:jinja -+{# -+This file /etc/cloud/templates/hosts.gentoo.tmpl is only utilized -+if enabled in cloud-config. Specifically, in order to enable it -+you need to add the following to config: -+ manage_etc_hosts: True -+-#} -+# Your system has configured 'manage_etc_hosts' as True. -+# As a result, if you wish for changes to this file to persist -+# then you will need to either -+# a.) make changes to the master file in /etc/cloud/templates/hosts.gentoo.tmpl -+# b.) change or remove the value of 'manage_etc_hosts' in -+# /etc/cloud/cloud.cfg or cloud-config from user-data -+# -+# The following lines are desirable for IPv4 capable hosts -+127.0.0.1 {{fqdn}} {{hostname}} -+127.0.0.1 localhost.localdomain localhost -+127.0.0.1 localhost4.localdomain4 localhost4 -+ -+# The following lines are desirable for IPv6 capable hosts -+::1 {{fqdn}} {{hostname}} -+::1 localhost.localdomain localhost -+::1 localhost6.localdomain6 localhost6 -+ -diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg -index 8b7cb875..d109044e 100755 ---- a/tools/render-cloudcfg -+++ b/tools/render-cloudcfg -@@ -4,7 +4,7 @@ import argparse - import os - import sys - --VARIANTS = ["amazon", "arch", "centos", "debian", "fedora", "freebsd", "rhel", -- "suse", "ubuntu", "unknown"] -+VARIANTS = ["amazon", "arch", "centos", "debian", "fedora", "freebsd", -+ "gentoo", "rhel", "suse", "ubuntu", "unknown"] - - if "avoid-pep8-E402-import-not-top-of-file": - _tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) --- -2.19.1 - diff --git a/app-emulation/cloud-init/metadata.xml b/app-emulation/cloud-init/metadata.xml index 997452569a62..a754b254be6b 100644 --- a/app-emulation/cloud-init/metadata.xml +++ b/app-emulation/cloud-init/metadata.xml @@ -1,18 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>prometheanfire@gentoo.org</email> <name>Matthew Thode</name> </maintainer> - <maintainer type="person"> - <email>eva@gentoo.org</email> - <name>Gilles Dartiguelongue</name> - </maintainer> <longdescription lang="en"> Cloud-init is the industry standard multi-distribution method for cross-platform cloud instance initialization. It is supported across all major public cloud providers, provisioning systems for private cloud infrastructure, and bare-metal installations. </longdescription> <upstream> <remote-id type="launchpad">cloud-init</remote-id> + <remote-id type="github">canonical/cloud-init</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/coldfire/coldfire-0.3.1-r1.ebuild b/app-emulation/coldfire/coldfire-0.3.1-r1.ebuild new file mode 100644 index 000000000000..768ca068bcb2 --- /dev/null +++ b/app-emulation/coldfire/coldfire-0.3.1-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools toolchain-funcs + +DESCRIPTION="Motorola Coldfire Emulator" +HOMEPAGE="http://www.slicer.ca/coldfire/" +SRC_URI="http://www.slicer.ca/coldfire/files/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" + +DEPEND=" + sys-libs/ncurses:0= + sys-libs/readline:0= +" + +PATCHES=( + "${FILESDIR}"/${P}-build.patch + "${FILESDIR}"/${P}-headers.patch + "${FILESDIR}"/${P}-ld.patch + "${FILESDIR}"/${P}-no-common.patch + "${FILESDIR}"/${P}-implicit-function-declarations.patch +) + +src_prepare() { + default + eautoreconf + + tc-export LD +} + +src_install() { + dobin coldfire + dodoc CONTRIBUTORS HACKING README +} diff --git a/app-emulation/coldfire/coldfire-0.3.1.ebuild b/app-emulation/coldfire/coldfire-0.3.1.ebuild index 21e971272979..653abff711e4 100644 --- a/app-emulation/coldfire/coldfire-0.3.1.ebuild +++ b/app-emulation/coldfire/coldfire-0.3.1.ebuild @@ -1,8 +1,10 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 +inherit toolchain-funcs + DESCRIPTION="Motorola Coldfire Emulator" HOMEPAGE="http://www.slicer.ca/coldfire/" SRC_URI="http://www.slicer.ca/coldfire/files/${P}.tar.gz" @@ -16,10 +18,18 @@ DEPEND="sys-libs/ncurses:0= sys-libs/readline:0=" PATCHES=( - "${FILESDIR}/${P}-build.patch" - "${FILESDIR}/${P}-headers.patch" + "${FILESDIR}"/${P}-build.patch + "${FILESDIR}"/${P}-headers.patch + "${FILESDIR}"/${P}-ld.patch + "${FILESDIR}"/${P}-no-common.patch ) +src_prepare() { + default + + tc-export LD +} + src_install() { dobin coldfire dodoc CONTRIBUTORS HACKING README diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch b/app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch new file mode 100644 index 000000000000..2a96229e101f --- /dev/null +++ b/app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch @@ -0,0 +1,12 @@ +https://bugs.gentoo.org/900326 + +--- a/configure.ac ++++ b/configure.ac +@@ -87,6 +87,7 @@ AC_CHECK_FUNCS(_snprintf snprintf) + + AC_MSG_CHECKING(for unaligned long accesses) + AC_TRY_RUN([ ++ #include <stdlib.h> + void main(void) + { unsigned char data[sizeof(long)*2]; + long *ptr; diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-ld.patch b/app-emulation/coldfire/files/coldfire-0.3.1-ld.patch new file mode 100644 index 000000000000..b0b16fec8603 --- /dev/null +++ b/app-emulation/coldfire/files/coldfire-0.3.1-ld.patch @@ -0,0 +1,11 @@ +--- a/Makefile.rules.in ++++ b/Makefile.rules.in +@@ -1,7 +1,7 @@ + CC = @CC@ + CFLAGS = -Wall @CPPFLAGS@ @CFLAGS@ -I$(TOPSRCDIR) + LIBS = @LIBS@ +-LD_R = ld -r ++LD_R = $(LD) -r + RM = rm -f + LDFLAGS = @LDFLAGS@ + diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch b/app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch new file mode 100644 index 000000000000..f4cc61f7bb46 --- /dev/null +++ b/app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/706942 +--- a/peripherals/sim_5206.c ++++ b/peripherals/sim_5206.c +@@ -23,7 +23,7 @@ static struct _sim_register *sim_register_lookup_by_offset(s32 offset); + static struct _sim_register *sim_register_lookup_by_name(char *name); + static void sim_interrupt_assert(s16 number, s16 vector); + static void sim_interrupt_withdraw(s16 number); +-struct _sim sim_data; ++static struct _sim sim_data; + + /* name, offset, width, read, write, resetvalue, description */ + static struct _sim_register sim_reg[] = { +--- a/peripherals/sim_5307.c ++++ b/peripherals/sim_5307.c +@@ -59,7 +59,7 @@ static struct _sim_register *sim_register_lookup_by_offset(s32 offset); + static struct _sim_register *sim_register_lookup_by_name(char *name); + static void sim_interrupt_assert(s16 number, s16 vector); + static void sim_interrupt_withdraw(s16 number); +-struct _sim sim_data; ++static struct _sim sim_data; + + /* name, offset, width, read, write, resetvalue, description */ + static struct _sim_register sim_reg[] = { diff --git a/app-emulation/coldfire/metadata.xml b/app-emulation/coldfire/metadata.xml index 71b1461e1146..98ae10b3c34a 100644 --- a/app-emulation/coldfire/metadata.xml +++ b/app-emulation/coldfire/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>embedded@gentoo.org</email> diff --git a/app-emulation/conmon/Manifest b/app-emulation/conmon/Manifest deleted file mode 100644 index 15b98a0d987f..000000000000 --- a/app-emulation/conmon/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST conmon-2.0.20.tar.gz 64716 BLAKE2B d7eb464f5be0b117824571134f08077955f56e1637dd2cbc6b70413dc9a6f109a1b9b207f5523103f205659ac20cc65f5f2340475d771fdf4b852d6895887975 SHA512 b719e41e1ead0d38c0874a30901c5660dc8612dc7aa1c025068480846a1e458a744b55bb8d5d74d2c2ce38fdbbe03505fce216a2f2c0748740983e3272a82f0e diff --git a/app-emulation/conmon/conmon-2.0.20.ebuild b/app-emulation/conmon/conmon-2.0.20.ebuild deleted file mode 100644 index 8aa13fbc4d2a..000000000000 --- a/app-emulation/conmon/conmon-2.0.20.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGIT_COMMIT="13244db638cf987c415298a3c23393ae5abeb885" -DESCRIPTION="An OCI container runtime monitor" -HOMEPAGE="https://github.com/containers/conmon" -SRC_URI="https://github.com/containers/conmon/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="systemd" -RESTRICT="test" - -RDEPEND="dev-libs/glib:= - systemd? ( sys-apps/systemd:= )" -DEPEND="${RDEPEND}" - -S="${WORKDIR}/${PN}-${EGIT_COMMIT}" - -src_prepare() { - default - - if ! use systemd; then - sed -e 's| $(PKG_CONFIG) --exists libsystemd-journal | false |' \ - -e 's| $(PKG_CONFIG) --exists libsystemd | false |' \ - -i Makefile || die - fi -} - -src_compile() { - emake GIT_COMMIT="${EGIT_COMMIT}" \ - all -} - -src_install() { - emake DESTDIR="${D}" \ - PREFIX="/usr" \ - install - dodir /usr/libexec/podman - ln "${ED}/usr/"{bin,libexec/podman}/conmon || die - dodoc README.md -} diff --git a/app-emulation/conmon/metadata.xml b/app-emulation/conmon/metadata.xml deleted file mode 100644 index 15f05bae08e9..000000000000 --- a/app-emulation/conmon/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - <name>Zac Medico</name> - </maintainer> - <upstream> - <remote-id type="github">containers/conmon</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/containerd/Manifest b/app-emulation/containerd/Manifest deleted file mode 100644 index c00825bee4e3..000000000000 --- a/app-emulation/containerd/Manifest +++ /dev/null @@ -1,10 +0,0 @@ -DIST containerd-1.2.10.tar.gz 4923354 BLAKE2B 6727fde9949ca96f351964df3c0c7481cb5274895aa3b31552258d57cc5958bd2d3006cfe4d87088d24ac53de1c391b6029b3f800363ee743f08e1937f0d0fec SHA512 14d4f1cad1a68414915c1e98b64dfb6f3f29a0e86e18570d6cc138f4db14b56499b978135954198fe9e2a1363383694eed530b301a9dc699d28c305d4dbf3cd8 -DIST containerd-1.2.12.tar.gz 4990623 BLAKE2B 640ff03f74e94dd3f919d3c26015cebae1f316c910442db881cd999c92991b7011131f05501648e9f08b6e34d38e2aa6ee1065ae31550de88ad79d9cafa5687e SHA512 bcb4f94aea984c804e34137cab6aad252c01dc75d5e33ade5d1e533e4266fd0af67d2bf8aa85f0e6eba4e43756e84f884f1dec4c9febd66f8a3e3bc8cd3ac775 -DIST containerd-1.2.13.tar.gz 4993470 BLAKE2B 8a094745358ee60f37eeee826898668bbbad3dc8c02b20d29bc977dd99bcb78ca4cba0cda737caaa66bf827b09f38e5ad1357bc7cbc85c0c3bf21d7ff8d8eff8 SHA512 19504a7419595f75160de2b85c5ea505257dc9b58972545bc3d31c144d59c8255f7a3d326b2a96b4fe1b34fb27525db8f3aa61bad97b40a315591a16c240ca5b -DIST containerd-1.2.6.tar.gz 4874159 BLAKE2B 202e19cffbe2b5335558dc1db28ea28a05dcc9e9b3aad864e090d86f7590df9e67ae685c9fc6ab2b8abdd1762d001fa9b298b1d311c080449bc86087b6af8c36 SHA512 287b064cb3e57369e34f6debb434526d6bd4857e337e489c56e4ca484c66e161bbda911b4fc29cb49808a756f6ec7af5629e46d693644500e3bf2d9e45e87e73 -DIST containerd-1.2.7.tar.gz 4877757 BLAKE2B 6cf98e370547d3ca5158f546e72e3ff5fdccc08c2e9f390988d080222195f95512dbf6f7dc042b7a966283a040000b7b8777b3fbeb4c5b861caae4f6209c59c5 SHA512 b96ca236d28933c1bf309fc7204af7d2c356e19af394d5c2274a178c8f15298faf6ca9bb8e7d04acb7c3c9c41035446643a8df0103017f7ed0320bfc37cb8ca9 -DIST containerd-1.3.0.tar.gz 5697153 BLAKE2B c334cfd2aa11dd430c74bc9f3fe6f31d83faf752b9794da26021033bb6af492c48ed1665fc76ddfe5b858f04d45e9b77505f331e3c3da556af2d75e3cca3bb12 SHA512 cff9f0189b9fdc2b5492c92129af284aa8cd099e48de94cafd90aed191e2d20060c96008111b05fe081de0d4fc41d35f8cba5a3dc2d8cc0a5c37f695fd3cedc1 -DIST containerd-1.3.1.tar.gz 5703741 BLAKE2B 6eae3fe9714128e7a5378484115378629baf6c4f7ef4b795e625cc1fbc05323a123c2337c5b203a2c3c3b34486c81f7e5b3ad200c000c961931fc99347ef4513 SHA512 4991286d1a8a221dad24121c5e6cd31a00685d91e652546d0d97745624486450bc05ff4f889f2975c178c4c175fedd7b15f89121a7ce4e6687919aabd04501b4 -DIST containerd-1.3.2.tar.gz 5704320 BLAKE2B 32ea22ff445cc66f4c8db8abdbaaa7fa0c8c620b294bda54f2319045af1925398057ba1a5cb5c265cfc73bcff5b49943013b517ecb3bd05f4504920c4a8d6f29 SHA512 768a19eb0829e196a61ddedaa11b0d6691caf8f9cc590a3e47ac77c1acad62e64b7a55017a1a6cccfcb87785a083d5ce131048b0e39e48c65e6cd5922382fc3c -DIST containerd-1.3.4.tar.gz 5700890 BLAKE2B 9d5642399eafbf3df25d2bdb6ffeb8e98362e9f2c6cdcd7a64fff12bad40f58fa97451228a607def408cc8a8cfbfce67c47fcfdf86865d8086d0b7aad7595d5a SHA512 b186d5aef3e5a0d35c12dcc3cfa5d48a9602f6278c4650942859a1ab6abd1299d33a1bc623376955a834a2626491196b604591d92a05d39745dfc33ff51ad5aa -DIST containerd-1.3.7.tar.gz 5709989 BLAKE2B 0cfa6f5bcd41c1591e64f41dbba2720bed5f25d61625b6d09be19df56fe74b61532b627c35a830e1e4937333f790f7ff8a5fad18b8869a679a6fec18daf238d3 SHA512 7c6de27b6529e3fb3f924ec67a260a51bc45186d69baa4cae6720a08e5c3b74aeb43d236c0a4739f297b2863233bde7d2246a597c9e17713c48bec767c6bbfee diff --git a/app-emulation/containerd/containerd-1.2.10.ebuild b/app-emulation/containerd/containerd-1.2.10.ebuild deleted file mode 100644 index 5a1d397114b4..000000000000 --- a/app-emulation/containerd/containerd-1.2.10.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT="b34a5c8af56e510852c35414db4c1f4fa6172339" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc8 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.2.12.ebuild b/app-emulation/containerd/containerd-1.2.12.ebuild deleted file mode 100644 index 5e5bc5aef5e8..000000000000 --- a/app-emulation/containerd/containerd-1.2.12.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT=35bd7a5f69c13e1563af8a93431411cd9ecf5021 - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc8 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.2.13.ebuild b/app-emulation/containerd/containerd-1.2.13.ebuild deleted file mode 100644 index e9635351fbd7..000000000000 --- a/app-emulation/containerd/containerd-1.2.13.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT=35bd7a5f69c13e1563af8a93431411cd9ecf5021 - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc8 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.2.6.ebuild b/app-emulation/containerd/containerd-1.2.6.ebuild deleted file mode 100644 index 48bf1f799cf1..000000000000 --- a/app-emulation/containerd/containerd-1.2.6.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT="894b81a4b802e4eb2a91d1ce216b8817763c29fb" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc6 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.2.7.ebuild b/app-emulation/containerd/containerd-1.2.7.ebuild deleted file mode 100644 index 1cba833a7419..000000000000 --- a/app-emulation/containerd/containerd-1.2.7.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT="85f6aa58b8a3170aec9824568f7a31832878b603" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc8 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.3.0.ebuild b/app-emulation/containerd/containerd-1.3.0.ebuild deleted file mode 100644 index 0c41a6c57dd0..000000000000 --- a/app-emulation/containerd/containerd-1.3.0.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT="36cf5b690dcc00ff0f34ff7799209050c3d0c59a" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc8 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.3.1.ebuild b/app-emulation/containerd/containerd-1.3.1.ebuild deleted file mode 100644 index 97f5996a48aa..000000000000 --- a/app-emulation/containerd/containerd-1.3.1.ebuild +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/containerd/${PN}" - -inherit toolchain-funcs - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT="c7a4f87" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc9 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.3.2.ebuild b/app-emulation/containerd/containerd-1.3.2.ebuild deleted file mode 100644 index b280fe999e58..000000000000 --- a/app-emulation/containerd/containerd-1.3.2.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -EGO_PN="github.com/containerd/${PN}" -inherit toolchain-funcs - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT=ff48f57f - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc9 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="strip test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.3.4.ebuild b/app-emulation/containerd/containerd-1.3.4.ebuild deleted file mode 100644 index 4733a84998c6..000000000000 --- a/app-emulation/containerd/containerd-1.3.4.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -EGO_PN="github.com/containerd/${PN}" -inherit toolchain-funcs - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - MY_PV="${PV/_rc/-rc.}" - EGIT_COMMIT="v${MY_PV}" - CONTAINERD_COMMIT=814b7956 - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor btrfs +cri hardened +seccomp" - -DEPEND="btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp )" -RDEPEND=">=app-emulation/runc-1.0.0_rc9 - seccomp? ( sys-libs/libseccomp )" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="strip test" - -src_prepare() { - default - if [[ ${PV} != *9999* ]]; then - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\ - -e "s/-s -w//" \ - Makefile || die - fi -} - -src_compile() { - local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") ) - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake -} - -src_install() { - newinitd "${FILESDIR}"/${PN}.initd ${PN} - keepdir /var/lib/containerd - dobin bin/* -} diff --git a/app-emulation/containerd/containerd-1.3.7.ebuild b/app-emulation/containerd/containerd-1.3.7.ebuild deleted file mode 100644 index 583c12cb94ad..000000000000 --- a/app-emulation/containerd/containerd-1.3.7.ebuild +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -# update on bump, look for https://github.com/docker\ -# docker-ce/blob/<docker ver OR branch>/components/engine/hack/dockerfile/install/containerd.installer -CONTAINERD_COMMIT="8fba4e9a7d01810a393d5d25a3621dc101981175" -EGO_PN="github.com/containerd/${PN}" - -inherit golang-vcs-snapshot toolchain-funcs - -DESCRIPTION="A daemon to control runC" -HOMEPAGE="https://containerd.io/" -SRC_URI="https://github.com/containerd/${PN}/archive/${CONTAINERD_COMMIT}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64 ~arm arm64 ppc64 ~x86" -IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test" - -DEPEND=" - btrfs? ( sys-fs/btrfs-progs ) - seccomp? ( sys-libs/libseccomp ) -" - -RDEPEND=" - ${DEPEND} - ~app-emulation/runc-1.0.0_rc10 -" - -BDEPEND=" - dev-go/go-md2man - virtual/pkgconfig - test? ( "${RDEPEND}" ) -" - -# tests require root or docker -# upstream does not recommend stripping binary -RESTRICT+=" strip test" - -S="${WORKDIR}/${P}/src/${EGO_PN}" - -src_prepare() { - default - sed -i -e "s/git describe --match.*$/echo ${PV})/"\ - -e "s/git rev-parse HEAD.*$/echo ${CONTAINERD_COMMIT})/"\ - -e "s/-s -w//" \ - Makefile || die -} - -src_compile() { - local options=( - $(usev apparmor) - $(usex btrfs "" "no_btrfs") - $(usex cri "" "no_cri") - $(usex device-mapper "" "no_devmapper") - $(usev seccomp) - $(usev selinux) - ) - - myemakeargs=( - BUILDTAGS="${options[*]}" - DESTDIR="${ED}" - LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') - ) - - export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor - export GOFLAGS="-v -x -mod=vendor" - emake "${myemakeargs[@]}" all man -} - -src_install() { - dobin bin/* - doman man/* - newinitd "${FILESDIR}"/${PN}.initd-r1 "${PN}" - keepdir /var/lib/containerd - - # we already installed manpages, remove markdown source - # before installing docs directory - rm -rf docs/man || die - local DOCS=( README.md PLUGINS.md docs/. ) - einstalldocs -} diff --git a/app-emulation/containerd/files/containerd.initd b/app-emulation/containerd/files/containerd.initd deleted file mode 100644 index bedf000cad5b..000000000000 --- a/app-emulation/containerd/files/containerd.initd +++ /dev/null @@ -1,24 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -description="Containerd container runtime" -command="/usr/bin/containerd" -pidfile="${pidfile:-/run/${RC_SVCNAME}.pid}" -start_stop_daemon_args="--background --make-pidfile --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log" - -start_pre() { - checkpath -m 0750 -d /var/log/${RC_SVCNAME} - - ulimit -n 1048576 - - # Having non-zero limits causes performance problems due to accounting overhead - # in the kernel. We recommend using cgroups to do container-local accounting. - ulimit -u unlimited - - return 0 -} - -start_post() { - ewaitfile 5 /run/containerd/containerd.sock -} diff --git a/app-emulation/containerd/files/containerd.initd-r1 b/app-emulation/containerd/files/containerd.initd-r1 deleted file mode 100644 index 6536fc9ef209..000000000000 --- a/app-emulation/containerd/files/containerd.initd-r1 +++ /dev/null @@ -1,26 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -description="Containerd container runtime" -command="/usr/bin/containerd" -command_args="${command_args:-}" -command_background="true" -pidfile="${pidfile:-/run/${RC_SVCNAME}.pid}" -start_stop_daemon_args="--stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log" - -start_pre() { - checkpath -m 0750 -d "/var/log/${RC_SVCNAME}" - - ulimit -n 1048576 - - # Having non-zero limits causes performance problems due to accounting overhead - # in the kernel. We recommend using cgroups to do container-local accounting. - ulimit -u unlimited - - return 0 -} - -start_post() { - ewaitfile 5 /run/containerd/containerd.sock -} diff --git a/app-emulation/containerd/metadata.xml b/app-emulation/containerd/metadata.xml deleted file mode 100644 index 534d7d6a1880..000000000000 --- a/app-emulation/containerd/metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription> - Containerd is a daemon with an API and a command line client, to manage - containers on one machine. It uses runC to run containers according to - the OCI specification. Containerd has advanced features such as seccomp - and user namespace support as well as checkpoint and restore for cloning - and live migration of containers. - </longdescription> - <maintainer type="person"> - <email>admwiggin@gmail.com</email> - <name>Tianon</name> - </maintainer> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <use> - <flag name="apparmor">Support for AppArmor</flag> - <flag name="btrfs">Support for BTRFS snapshot driver</flag> - <flag name="cri">Support for Kubernetes CRI</flag> - <flag name="device-mapper">Support for device mapper snapshot driver</flag> - </use> - <upstream> - <remote-id type="github">containerd/containerd</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/containers-storage/Manifest b/app-emulation/containers-storage/Manifest deleted file mode 100644 index 68e76893028e..000000000000 --- a/app-emulation/containers-storage/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST containers-storage-1.18.1.tar.gz 3803605 BLAKE2B 6ecf7a2ac395f0973f2d071d6736ccd6dfe8917168b50daeb26b141457d9fc53d9f4471577c659dcf77f2d4058d0a5cecbe1599a365d7ae102916188dc44aa5d SHA512 1b2d16ae5703af232c58eb4ecc65b98a7f754cd9784b563e5323ef3303dc8f72896453f2fd84fee20490b72f9c2455437d5879f6c5c23aaa188316cb1b272211 -DIST containers-storage-1.20.2.tar.gz 3827404 BLAKE2B 7284a86c34c91c21e49d7c9f89bfe8cc65d3a6673d37ea2e6e769c8abda581189b62119480bfcb0757cc3b4b47e29c7e0c65d245ec9bac082674f4b29f0899e1 SHA512 6ed73080da5c284eb421dd3c192662b16b2c72801bd0043f676c1e3bf44ee9899b10dea7fe5e2e52f95ecc511606aa2d971fd064b4cc7c993459ea75bf14536f -DIST containers-storage-1.23.3.tar.gz 3345068 BLAKE2B 2eb62b851e23055409a3ba41beb08add1faa0ed508572ce125359d35dd9163e85547bbec1b71903a67580f9f9f7f056107adce549b680a84cb356cba3954cde4 SHA512 0aaf2ba71f6e4ee26e9798f42c4ad4f5b5b9c625891177757bdbdcf760c2e55526167f4775cd3ddab83a0b0b61f1aebc75be4abc6565846cb442cdc26afbe17e diff --git a/app-emulation/containers-storage/containers-storage-1.18.1.ebuild b/app-emulation/containers-storage/containers-storage-1.18.1.ebuild deleted file mode 100644 index 868c589909c5..000000000000 --- a/app-emulation/containers-storage/containers-storage-1.18.1.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 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 -} diff --git a/app-emulation/containers-storage/containers-storage-1.20.2.ebuild b/app-emulation/containers-storage/containers-storage-1.20.2.ebuild deleted file mode 100644 index 868c589909c5..000000000000 --- a/app-emulation/containers-storage/containers-storage-1.20.2.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 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 -} diff --git a/app-emulation/containers-storage/containers-storage-1.23.3.ebuild b/app-emulation/containers-storage/containers-storage-1.23.3.ebuild deleted file mode 100644 index 868c589909c5..000000000000 --- a/app-emulation/containers-storage/containers-storage-1.23.3.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 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 -} diff --git a/app-emulation/containers-storage/metadata.xml b/app-emulation/containers-storage/metadata.xml deleted file mode 100644 index ea691c789838..000000000000 --- a/app-emulation/containers-storage/metadata.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://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> -</pkgmetadata> diff --git a/app-emulation/cri-o/Manifest b/app-emulation/cri-o/Manifest deleted file mode 100644 index 10b6399bd014..000000000000 --- a/app-emulation/cri-o/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST cri-o-1.17.1.tar.gz 10532728 BLAKE2B 12747b0161ca2fa7dc7e95fd4c000b9011402e65dac0885ed59a37a87b53907044d3b3c873d6fe82186313af6745e463ce84be259dae99793c6363794c76e16f SHA512 1548c4b20081e8f1af772b0b0fadd0f1b63af641283bef8b8cd8478bd626699c23b30b39fe460660776bc7e6509e85db73d1d7e0d030dd7bd3dbfe319c82e332 -DIST cri-o-1.18.3.tar.gz 11210469 BLAKE2B 16a9ed89c594c082e18d5a08ba1f87eaed600b95baed1e36c5b718e9dbaf52c7b482dbf6dba94a1cbc5e02f3dc58f0f21236b6b11c65fa60666d654e28c793fd SHA512 28798d0a46a9fe361fa2e57f350375abe2a66b955447d667a0a51b39034d73f98abf06371ccf5ea27dfcad38dc46907a2fe9583b94c9a0092ad18b2485b12640 -DIST cri-o-1.19.0.tar.gz 13383665 BLAKE2B 8288985392a08fb7fdc58f509d34f8814bf9670386b7aae42be349765cb1f3bd3f4b77077e9c282a4a25b0f99b8a8fc335c6a53053bd2575b3e23c225483a1d3 SHA512 15b506d755be735d7b71e503b02b309693e3090be41f5790bd34cec460238eab56829239caf18849f3656cf8c12f77a10bbb3ae4ad81eb4e18858946e454583d diff --git a/app-emulation/cri-o/cri-o-1.17.1.ebuild b/app-emulation/cri-o/cri-o-1.17.1.ebuild deleted file mode 100644 index f8d6d2c59f40..000000000000 --- a/app-emulation/cri-o/cri-o-1.17.1.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGIT_COMMIT=ee2de87bd8e2a7a84799476cb4fc4ce8a78fdf6d - -inherit go-module - -DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface" -HOMEPAGE="https://cri-o.io/" -SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -KEYWORDS="~amd64" -IUSE="btrfs +device-mapper selinux systemd" - -COMMON_DEPEND=" - app-crypt/gpgme:= - app-emulation/conmon - app-emulation/runc - dev-libs/glib:= - dev-libs/libassuan:= - dev-libs/libgpg-error:= - net-firewall/conntrack-tools - net-firewall/iptables - net-misc/cni-plugins - net-misc/socat - sys-apps/iproute2 - sys-libs/libseccomp:= - btrfs? ( sys-fs/btrfs-progs ) - device-mapper? ( sys-fs/lvm2:= ) - selinux? ( sys-libs/libselinux:= ) - systemd? ( sys-apps/systemd:= )" -DEPEND=" - ${COMMON_DEPEND}" -RDEPEND="${COMMON_DEPEND} - !<app-emulation/libpod-1.3.2-r1" - -src_prepare() { - default - - sed -e '/^GIT_.*/d' \ - -e '/ git diff --exit-code/d' \ - -e 's/$(GO) build -i/$(GO) build -v -work -x/' \ - -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \ - -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \ - -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \ - -i Makefile || die - - echo ".NOTPARALLEL: binaries docs" >> Makefile || die - - sed -e 's:/usr/local/bin:/usr/bin:' \ - -i contrib/systemd/* || die -} - -src_compile() { - [[ -f hack/btrfs_installed_tag.sh ]] || die - use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ - hack/btrfs_installed_tag.sh || die; } - - [[ -f hack/libdm_installed.sh ]] || die - use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \ - hack/libdm_installed.sh || die; } - - [[ -f hack/selinux_tag.sh ]] || die - use selinux || { echo -e "#!/bin/sh\ntrue" > \ - hack/selinux_tag.sh || die; } - - mkdir -p bin || die - GOBIN="${S}/bin" \ - emake all -} - -src_install() { - emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install install.config install.systemd - - keepdir /etc/crio - mv "${ED}/etc/crio/crio.conf"{,.example} || die - - newinitd "${FILESDIR}/crio.initd" crio - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotated" "${PN}" - - # Suppress crio log error messages triggered if these don't exist. - keepdir /etc/containers/oci/hooks.d - keepdir /usr/share/containers/oci/hooks.d - - # Suppress crio "Missing CNI default network" log message. - keepdir /etc/cni/net.d - insinto /etc/cni/net.d - doins contrib/cni/99-loopback.conf -} diff --git a/app-emulation/cri-o/cri-o-1.18.3.ebuild b/app-emulation/cri-o/cri-o-1.18.3.ebuild deleted file mode 100644 index 96ab6f0d2857..000000000000 --- a/app-emulation/cri-o/cri-o-1.18.3.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGIT_COMMIT=61de18161fb4ccda720768c001713592b5a04e46 - -inherit go-module - -DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface" -HOMEPAGE="https://cri-o.io/" -SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="btrfs +device-mapper selinux systemd" - -COMMON_DEPEND=" - app-crypt/gpgme:= - app-emulation/conmon - app-emulation/runc - dev-libs/glib:= - dev-libs/libassuan:= - dev-libs/libgpg-error:= - net-firewall/conntrack-tools - net-firewall/iptables - net-misc/cni-plugins - net-misc/socat - sys-apps/iproute2 - sys-libs/libseccomp:= - btrfs? ( sys-fs/btrfs-progs ) - device-mapper? ( sys-fs/lvm2:= ) - selinux? ( sys-libs/libselinux:= ) - systemd? ( sys-apps/systemd:= )" -DEPEND=" - ${COMMON_DEPEND}" -RDEPEND="${COMMON_DEPEND} - !<app-emulation/libpod-1.3.2-r1" - -src_prepare() { - default - - sed -e '/^GIT_.*/d' \ - -e '/ git diff --exit-code/d' \ - -e 's/$(GO) build -i/$(GO) build -v -work -x/' \ - -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \ - -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \ - -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \ - -i Makefile || die - - echo ".NOTPARALLEL: binaries docs" >> Makefile || die - - sed -e 's:/usr/local/bin:/usr/bin:' \ - -i contrib/systemd/* || die -} - -src_compile() { - [[ -f hack/btrfs_installed_tag.sh ]] || die - use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ - hack/btrfs_installed_tag.sh || die; } - - [[ -f hack/libdm_installed.sh ]] || die - use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \ - hack/libdm_installed.sh || die; } - - [[ -f hack/selinux_tag.sh ]] || die - use selinux || { echo -e "#!/bin/sh\ntrue" > \ - hack/selinux_tag.sh || die; } - - mkdir -p bin || die - GOBIN="${S}/bin" \ - emake all -} - -src_install() { - emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install install.config install.systemd - - keepdir /etc/crio - mv "${ED}/etc/crio/crio.conf"{,.example} || die - - newinitd "${FILESDIR}/crio.initd" crio - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotated" "${PN}" - - # Suppress crio log error messages triggered if these don't exist. - keepdir /etc/containers/oci/hooks.d - keepdir /usr/share/containers/oci/hooks.d - - # Suppress crio "Missing CNI default network" log message. - keepdir /etc/cni/net.d - insinto /etc/cni/net.d - doins contrib/cni/99-loopback.conf -} diff --git a/app-emulation/cri-o/cri-o-1.19.0.ebuild b/app-emulation/cri-o/cri-o-1.19.0.ebuild deleted file mode 100644 index 35566324ab43..000000000000 --- a/app-emulation/cri-o/cri-o-1.19.0.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGIT_COMMIT=99c925bebdd9e392f2d575e25f2e6a1082e6c232 - -inherit go-module - -DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface" -HOMEPAGE="https://cri-o.io/" -SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="btrfs +device-mapper selinux systemd" - -COMMON_DEPEND=" - app-crypt/gpgme:= - app-emulation/conmon - app-emulation/runc - dev-libs/glib:= - dev-libs/libassuan:= - dev-libs/libgpg-error:= - net-firewall/conntrack-tools - net-firewall/iptables - net-misc/cni-plugins - net-misc/socat - sys-apps/iproute2 - sys-libs/libseccomp:= - btrfs? ( sys-fs/btrfs-progs ) - device-mapper? ( sys-fs/lvm2:= ) - selinux? ( sys-libs/libselinux:= ) - systemd? ( sys-apps/systemd:= )" -DEPEND=" - ${COMMON_DEPEND}" -RDEPEND="${COMMON_DEPEND} - !<app-emulation/libpod-1.3.2-r1" - -src_prepare() { - default - - sed -e '/^GIT_.*/d' \ - -e '/ git diff --exit-code/d' \ - -e 's/$(GO) build -i/$(GO) build -v -work -x/' \ - -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \ - -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \ - -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \ - -i Makefile || die - - echo ".NOTPARALLEL: binaries docs" >> Makefile || die - - sed -e 's:/usr/local/bin:/usr/bin:' \ - -i contrib/systemd/* || die -} - -src_compile() { - [[ -f hack/btrfs_installed_tag.sh ]] || die - use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ - hack/btrfs_installed_tag.sh || die; } - - [[ -f hack/libdm_installed.sh ]] || die - use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \ - hack/libdm_installed.sh || die; } - - [[ -f hack/selinux_tag.sh ]] || die - use selinux || { echo -e "#!/bin/sh\ntrue" > \ - hack/selinux_tag.sh || die; } - - mkdir -p bin || die - GOBIN="${S}/bin" \ - emake all -} - -src_install() { - emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install install.config install.systemd - - keepdir /etc/crio - mv "${ED}/etc/crio/crio.conf"{,.example} || die - - newinitd "${FILESDIR}/crio.initd" crio - - insinto /etc/logrotate.d - newins "${FILESDIR}/${PN}.logrotated" "${PN}" - - # Suppress crio log error messages triggered if these don't exist. - keepdir /etc/containers/oci/hooks.d - keepdir /usr/share/containers/oci/hooks.d - - # Suppress crio "Missing CNI default network" log message. - keepdir /etc/cni/net.d - insinto /etc/cni/net.d - doins contrib/cni/99-loopback.conf -} diff --git a/app-emulation/cri-o/files/cri-o.logrotated b/app-emulation/cri-o/files/cri-o.logrotated deleted file mode 100644 index fb0b8b14a8a1..000000000000 --- a/app-emulation/cri-o/files/cri-o.logrotated +++ /dev/null @@ -1,7 +0,0 @@ -/var/log/crio/crio.log { - missingok - size 5M - rotate 3 - compress - copytruncate -} diff --git a/app-emulation/cri-o/files/crio.initd b/app-emulation/cri-o/files/crio.initd deleted file mode 100644 index 9e6383ac976b..000000000000 --- a/app-emulation/cri-o/files/crio.initd +++ /dev/null @@ -1,35 +0,0 @@ -#!/sbin/openrc-run -# Copyright 2015-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -description="OCI Kubernetes Container Runtime daemon" -pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"} -extra_started_commands="reload" -command="/usr/bin/${RC_SVCNAME}" -command_args="${command_args}" -command_background="true" -start_stop_daemon_args=" \ - --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \ - --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log" - -depend() { - need net -} - -checkconfig() { - checkpath --directory --owner root:root --mode 0775 \ - /var/log/${RC_SVCNAME} - checkpath --file --owner root:root --mode 0644 \ - /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log -} - -start() { - checkconfig - default_start -} - -reload() { - ebegin "Reloading ${RC_SVCNAME}" - start-stop-daemon --signal HUP --pidfile "${pidfile}" - eend $? -} diff --git a/app-emulation/cri-o/metadata.xml b/app-emulation/cri-o/metadata.xml deleted file mode 100644 index ec23ec09fcc9..000000000000 --- a/app-emulation/cri-o/metadata.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - <name>Zac Medico</name> - </maintainer> - <longdescription lang="en"> - CRI-O is meant to provide an integration path between - OCI conformant runtimes and the kubelet. Specifically, it - implements the Kubelet Container Runtime Interface (CRI) - using OCI conformant runtimes. The scope of CRI-O is tied to - the scope of the CRI. - </longdescription> - <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">cri-o/cri-o</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/cri-tools/Manifest b/app-emulation/cri-tools/Manifest deleted file mode 100644 index 7e57aa95daf2..000000000000 --- a/app-emulation/cri-tools/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST cri-tools-1.18.0.tar.gz 5295512 BLAKE2B 9dda4a401b858e98aa60521d3268d8f6ff6a2c1bd2c219a0e5e9e5360fba58d41e97258c636da26ee57bbfc3286798c74107c7de92d3e3398bdf53b7d9078e94 SHA512 849b496e6d19eec29e0e56f0b37c094649311b80514f319b0c68c6519e3ddd48e1973c3d288144db998826676416644ec705b7ea0916c21898b40928ea800af1 diff --git a/app-emulation/cri-tools/cri-tools-1.18.0.ebuild b/app-emulation/cri-tools/cri-tools-1.18.0.ebuild deleted file mode 100644 index 32412429f575..000000000000 --- a/app-emulation/cri-tools/cri-tools-1.18.0.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -inherit bash-completion-r1 go-module -MY_PV="v${PV/_beta/-beta.}" - -DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)" -HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools" -SRC_URI="https://github.com/kubernetes-sigs/cri-tools/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" -KEYWORDS="amd64" - -RESTRICT+=" test" - -src_compile() { - emake VERSION="${MY_PV}" - _output/crictl completion bash > ${PN}.bash || die - _output/crictl completion zsh > ${PN}.zsh || die -} - -src_install() { - dobin _output/crictl - - newbashcomp ${PN}.bash ${PN} - insinto /usr/share/zsh/site-functions - newins ${PN}.zsh _${PN} - - dodoc -r docs {README,RELEASE,CHANGELOG,CONTRIBUTING}.md -} diff --git a/app-emulation/cri-tools/metadata.xml b/app-emulation/cri-tools/metadata.xml deleted file mode 100644 index ded6fbaced72..000000000000 --- a/app-emulation/cri-tools/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <!-- maintainer-needed --> - <upstream> - <remote-id type="github">kubernetes-sigs/cri-tools</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/crossover-bin/Manifest b/app-emulation/crossover-bin/Manifest index c2c94cd1ea00..cdf8db6e0822 100644 --- a/app-emulation/crossover-bin/Manifest +++ b/app-emulation/crossover-bin/Manifest @@ -1 +1,4 @@ -DIST install-crossover-19.0.1.bin 227349999 BLAKE2B 3f43c9ad1bc6e2ca77404eb69894b34fab04002c41b33551a01272201e15b5523049d7e7abe87c741f5913f18a45714ff2b83fda6c375dff68c7648d5e7c26bb SHA512 aedf2d3a071facf15a4aec9280a10c99229825fd3e5412e3949a0e1d85c235625a04d4453e7b8e182659f7500c864bab168c225f51cb0a839b08a96ef36596dd +DIST install-crossover-22.1.1.bin 335606941 BLAKE2B 3c5eada7190283f348348ef4d3b044db8e24e0dc3588d847854feb712d39bc9013e4f958a80c3f46e84b32f6b5c7d419ef6ab4fa1e946d308ba546140fb95504 SHA512 54bb40941baea184aa824c371a2eb73cdda26fa7c0765e242384e2c29a78f6b600c7455640b9888fd28ad482bf14f53a0308cbd55d9453f76d6eeb75cf0abfc7 +DIST install-crossover-23.0.0.bin 340426479 BLAKE2B eb78fd03475e88a021d8ca3c46358e0092863a8d123fa00ebebef30774c16a5350d489b8b0fe158fbdeb2daf60c2dd5b9ca1b3db855d94901561cfcad09a1ac5 SHA512 29c4303e43a857451d7954fc86337cf007e5d32fbcbed4a65066b464e1caf5aad4dd58bc4e65b1c77bb70903f7b7e541b5c1b7df2b44f60d1235aeb558deda1e +DIST install-crossover-23.6.0.bin 333783609 BLAKE2B d24ef036530d2b8ce916ecb6adb6f5599d9beedb374a27a0009d14ff601685e8a4b23424a3a08e2ce613b3e77ea9893ce1b6caa07448aca365feea86f23fe320 SHA512 203c8966e71b91d98676b5e15646f790c2b4db3db3dbb8539a8ffe29b335f301535f5d7c80bf954c5e79b56668707ae960c396204f59e4079c455f12e663a445 +DIST install-crossover-24.0.0.bin 320724952 BLAKE2B a95028fda5c53889f09e567742fc881aaefc8c3c618b4de0f30cb53604bfa1a25097d56d8e025a509a9cce7aecde48b35ab7c8d87ba04761a8b42b717d1cf3b4 SHA512 93f3a4415ff29de98b38a488213d7f00b64f6fe70ae3a7555b911d5423163a678941ab859117172bf716b658eb8aecb1b6b430aed3233c1c55fd51893e8de046 diff --git a/app-emulation/crossover-bin/crossover-bin-19.0.1-r1.ebuild b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild index e3e7f205d8a6..8f1820b96a94 100644 --- a/app-emulation/crossover-bin/crossover-bin-19.0.1-r1.ebuild +++ b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 -PYTHON_COMPAT=( python3_{6,7,8} ) +EAPI=8 +PYTHON_COMPAT=( python3_{10..12} ) inherit python-single-r1 unpacker @@ -14,37 +14,15 @@ LICENSE="CROSSOVER-3" SLOT="0" KEYWORDS="-* ~amd64 ~x86" IUSE="+capi +cups doc +gphoto2 +gsm +gstreamer +jpeg +lcms ldap +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan" -REQUIRED_USE=${PYTHON_REQUIRED_USE} +REQUIRED_USE="${PYTHON_REQUIRED_USE}" RESTRICT="bindist test" - -QA_FLAGS_IGNORED="opt/cxoffice/.*" -QA_PRESTRIPPED=" - opt/cxoffice/lib/.* - opt/cxoffice/lib64/.* - opt/cxoffice/bin/cxburner - opt/cxoffice/bin/cxntlm_auth - opt/cxoffice/bin/wineserver - opt/cxoffice/bin/wineserver32 - opt/cxoffice/bin/wineserver64 - opt/cxoffice/bin/wine64-preloader - opt/cxoffice/bin/unrar - opt/cxoffice/bin/wine-preloader - opt/cxoffice/bin/cxdiag - opt/cxoffice/bin/cxdiag64 - opt/cxoffice/bin/cxgettext - opt/cxoffice/bin/wineloader - opt/cxoffice/bin/wineloader64 -" -QA_TEXTRELS=" - opt/cxoffice/lib/wine/* - opt/cxoffice/lib/libwine.so* -" - +QA_PREBUILT="*" S="${WORKDIR}" DEPEND="" BDEPEND="${PYTHON_DEPS} + app-alternatives/cpio app-arch/unzip dev-lang/perl dev-util/bbe @@ -52,13 +30,16 @@ BDEPEND="${PYTHON_DEPS} RDEPEND="${DEPEND} ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + dev-python/pycairo[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + ') !prefix? ( sys-libs/glibc ) - !app-emulation/crossover-office-pro-bin - !app-emulation/crossover-office-bin capi? ( net-libs/libcapi[abi_x86_32(-)] ) cups? ( net-print/cups[abi_x86_32(-)] ) gsm? ( media-sound/gsm[abi_x86_32(-)] ) - jpeg? ( virtual/jpeg:0[abi_x86_32(-)] ) + jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] ) lcms? ( media-libs/lcms:2 ) ldap? ( net-nds/openldap[abi_x86_32(-)] ) gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] ) @@ -78,17 +59,23 @@ RDEPEND="${DEPEND} pcap? ( net-libs/libpcap[abi_x86_32(-)] ) png? ( media-libs/libpng:0[abi_x86_32(-)] ) scanner? ( media-gfx/sane-backends[abi_x86_32(-)] ) - ssl? ( net-libs/gnutls:0/30[abi_x86_32(-)] ) + ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] ) v4l? ( media-libs/libv4l[abi_x86_32(-)] ) vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] ) + dev-libs/glib:2 dev-libs/gobject-introspection + || ( + dev-libs/openssl-compat:1.1.1 + =dev-libs/openssl-1.1.1* + ) dev-util/desktop-file-utils media-libs/alsa-lib[abi_x86_32(-)] media-libs/freetype:2[abi_x86_32(-)] media-libs/mesa[abi_x86_32(-),osmesa?] - media-libs/tiff:0[abi_x86_32(-)] + media-libs/tiff-compat:4[abi_x86_32(-)] sys-auth/nss-mdns[abi_x86_32(-)] sys-apps/util-linux[abi_x86_32(-)] + sys-libs/libunwind[abi_x86_32(-)] sys-libs/ncurses-compat:5[abi_x86_32(-)] sys-libs/zlib[abi_x86_32(-)] x11-libs/libICE[abi_x86_32(-)] @@ -105,13 +92,10 @@ RDEPEND="${DEPEND} x11-libs/gdk-pixbuf:2[introspection] x11-libs/gtk+:3[introspection] x11-libs/pango[introspection] + x11-libs/vte:2.91[introspection] + sys-libs/libxcrypt[compat] " -pkg_nofetch() { - einfo "Please visit ${HOMEPAGE}" - einfo "and place ${A} into your DISTDIR directory" -} - src_unpack() { # self unpacking zip archive; unzip warns about the exe stuff unpack_zip ${A} @@ -120,12 +104,6 @@ src_unpack() { src_prepare() { default - sed -i \ - -e "s:xdg_install_icons(:&\"${ED}\".:" \ - -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ - -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ - "${S}/lib/perl/CXMenuXDG.pm" - # Remove unnecessary files, license.txt file kept as it's used by # multiple files (apart of the menu to show the license) rm -r guis/ || die "Could not remove files" @@ -133,6 +111,12 @@ src_prepare() { } src_install() { + sed -i \ + -e "s:xdg_install_icons(:&\"${ED}\".:" \ + -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ + -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ + "${S}/lib/perl/CXMenuXDG.pm" || die + # Install crossover symlink, bug #476314 dosym ../cxoffice/bin/crossover /opt/bin/crossover @@ -146,6 +130,9 @@ src_install() { find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \ || die "Could not install into ${ED}/opt/cxoffice" + # Disable auto-update + sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die + # Install configuration file insinto /opt/cxoffice/etc doins share/crossover/data/cxoffice.conf @@ -170,60 +157,38 @@ src_install() { sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ || die "Could not apply workaround for konqueror" - rm "${ED}/usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \ + # Drop Uninstall menus + rm "${ED}/usr/share/applications/"*"Uninstall"* \ || die "Could not remove uninstall menus" + + # Fix PATHs sed -i \ -e "s:\"${ED}\".::" \ -e "s:${ED}::" \ "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \ || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" - sed -i -e "s:${ED}:/:" \ + sed -i -e "s:${ED}::" \ "${ED}/usr/share/applications/"*"CrossOver.desktop" \ || die "Could not fix paths of *.desktop files" # Workaround missing libs - # https://www.codeweavers.com/support/forums/general/?t=26;mhl=198658;msg=198658 - if use gphoto2; then - bbe -e 's/libgphoto2_port.so.10/libgphoto2_port.so.12/' "${ED}/opt/cxoffice/lib/wine/gphoto2.ds.so" >tmp || die - mv tmp "${ED}/opt/cxoffice/lib/wine/gphoto2.ds.so" || die - bbe -e 's/libgphoto2_port.so.10/libgphoto2_port.so.12/' "${ED}/opt/cxoffice/bin/cxdiag" >tmp || die - mv tmp "${ED}/opt/cxoffice/bin/cxdiag" || die - fperms a+x "/opt/cxoffice/bin/cxdiag" - fi + # # It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900 + # https://bugs.gentoo.org/721108 if use pcap; then - dosym "../../../usr/lib64/libpcap.so.1.9.1" "/opt/cxoffice/lib64/libpcap.so.0.8" - dosym "../../../usr/lib32/libpcap.so.1.9.1" "/opt/cxoffice/lib/libpcap.so.0.8" + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die + mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die + mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die + fi + + # Remove libs that link to openldap + if ! use ldap; then + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/wldap32.so fi -} -pkg_postinst() { - einfo "${P} is open source software with the exception of the GUI." - einfo "Source code can be obtained from:" - einfo - einfo "https://media.codeweavers.com/pub/crossover/source/crossover-sources-${PV}.tar.gz" - - # The check done by /opt/cxoffice/bin/cxdiag is far superior to this. - # However, we do this check because I noticed that we could end up with a - # system that doesn't have a working OpenCL according to cxdiag, yet the - # dependencies have been installed. This is a defensive measure to reduce - # user frustration. A more robust check might be worthwhile. - if use opencl; then - local b32=false - local b64=false - if [[ ! -e "${EROOT}/usr/lib32/libOpenCL.so.1" ]]; then - b32=true - ewarn "32-bit libOpenCL.so.1 missing." - fi - - if use amd64 && [[ ! -e "${EROOT}/usr/lib64/libOpenCL.so.1" ]]; then - b64=true - ewarn "64-bit libOpenCL.so.1 missing." - fi - - if $b32 || $b64; then - ewarn - ewarn "Set OpenCL via eselect opencl to avoid problems" - fi + # Remove libs that link to opencl + if ! use opencl; then + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die fi } diff --git a/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild new file mode 100644 index 000000000000..5639acd7f096 --- /dev/null +++ b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{10..12} ) + +inherit python-single-r1 unpacker + +DESCRIPTION="Commercial version of app-emulation/wine with paid support" +HOMEPAGE="https://www.codeweavers.com/products/" +SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin" + +LICENSE="CROSSOVER-3" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="+capi +cups doc +gphoto2 +gstreamer +jpeg +lcms ldap +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RESTRICT="bindist test" +QA_PREBUILT="*" +S="${WORKDIR}" + +DEPEND="" +BDEPEND="${PYTHON_DEPS} + app-alternatives/cpio + app-arch/unzip + dev-lang/perl + dev-util/bbe +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + dev-python/pycairo[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + ') + !prefix? ( sys-libs/glibc ) + capi? ( net-libs/libcapi[abi_x86_32(-)] ) + cups? ( net-print/cups[abi_x86_32(-)] ) + jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] ) + lcms? ( media-libs/lcms:2 ) + ldap? ( net-nds/openldap[abi_x86_32(-)] ) + gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] ) + gstreamer? ( + media-libs/gstreamer:1.0[abi_x86_32(-)] + jpeg? ( media-plugins/gst-plugins-jpeg:1.0[abi_x86_32(-)] ) + media-plugins/gst-plugins-meta:1.0[abi_x86_32(-)] + ) + mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] ) + nls? ( sys-devel/gettext[abi_x86_32(-)] ) + openal? ( media-libs/openal[abi_x86_32(-)] ) + opencl? ( virtual/opencl[abi_x86_32(-)] ) + opengl? ( + virtual/glu[abi_x86_32(-)] + virtual/opengl[abi_x86_32(-)] + ) + pcap? ( net-libs/libpcap[abi_x86_32(-)] ) + png? ( media-libs/libpng:0[abi_x86_32(-)] ) + scanner? ( media-gfx/sane-backends[abi_x86_32(-)] ) + ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] ) + v4l? ( media-libs/libv4l[abi_x86_32(-)] ) + vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] ) + dev-libs/glib:2 + dev-libs/gobject-introspection + dev-libs/openssl-compat:1.1.1 + dev-util/desktop-file-utils + media-libs/alsa-lib[abi_x86_32(-)] + media-libs/freetype:2[abi_x86_32(-)] + media-libs/mesa[abi_x86_32(-),osmesa?] + media-libs/tiff-compat:4[abi_x86_32(-)] + sys-auth/nss-mdns[abi_x86_32(-)] + sys-apps/util-linux[abi_x86_32(-)] + sys-libs/libunwind[abi_x86_32(-)] + sys-libs/ncurses-compat:5[abi_x86_32(-)] + sys-libs/zlib[abi_x86_32(-)] + x11-libs/libICE[abi_x86_32(-)] + x11-libs/libSM[abi_x86_32(-)] + x11-libs/libX11[abi_x86_32(-)] + x11-libs/libXau[abi_x86_32(-)] + x11-libs/libXcursor[abi_x86_32(-)] + x11-libs/libXdmcp[abi_x86_32(-)] + x11-libs/libXext[abi_x86_32(-)] + x11-libs/libXi[abi_x86_32(-)] + x11-libs/libXrandr[abi_x86_32(-)] + x11-libs/libXxf86vm[abi_x86_32(-)] + x11-libs/libxcb[abi_x86_32(-)] + x11-libs/gdk-pixbuf:2[introspection] + x11-libs/gtk+:3[introspection] + x11-libs/pango[introspection] + x11-libs/vte:2.91[introspection] + sys-libs/libxcrypt[compat] +" + +src_unpack() { + # self unpacking zip archive; unzip warns about the exe stuff + unpack_zip ${A} +} + +src_prepare() { + default + + # Remove unnecessary files, license.txt file kept as it's used by + # multiple files (apart of the menu to show the license) + rm -r guis/ || die "Could not remove files" + use doc || rm -r doc/ || die "Could not remove files" +} + +src_install() { + sed -i \ + -e "s:xdg_install_icons(:&\"${ED}\".:" \ + -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ + -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ + "${S}/lib/perl/CXMenuXDG.pm" || die + + # Install crossover symlink, bug #476314 + dosym ../cxoffice/bin/crossover /opt/bin/crossover + + # Install documentation + dodoc README changelog.txt + rm README changelog.txt || die "Could not remove README and changelog.txt" + + # Install files + dodir /opt/cxoffice + #cp -r ./* "${ED}/opt/cxoffice" \ + find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \ + || die "Could not install into ${ED}/opt/cxoffice" + + # Disable auto-update + sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die + + # Install configuration file + insinto /opt/cxoffice/etc + doins share/crossover/data/cxoffice.conf + dodir /etc/env.d + echo "CONFIG_PROTECT=/opt/cxoffice/etc/cxoffice.conf" >> "${ED}"/etc/env.d/30crossover-bin || die + + # Konqueror in its infinite wisdom decides to try opening things for + # writing, which are sandbox violations. This breaks the install process if + # it is installed, so we ninja edit it to false so it so doesn't run. + sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ + || die "Could not apply workaround for konqueror" + + # Install menus + # XXX: locate_gui.sh automatically detects *-application-merged directories + # This means what we install will vary depending on the contents of + # /etc/xdg, which is a QA violation. It is not clear how to resolve this. + XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \ + "${ED}/opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \ + || die "Could not install menus" + + # Revert ninja edit + sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ + || die "Could not apply workaround for konqueror" + + # Drop Uninstall menus + rm "${ED}/usr/share/applications/"*"Uninstall"* \ + || die "Could not remove uninstall menus" + + # Fix PATHs + sed -i \ + -e "s:\"${ED}\".::" \ + -e "s:${ED}::" \ + "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \ + || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" + sed -i -e "s:${ED}::" \ + "${ED}/usr/share/applications/"*"CrossOver.desktop" \ + || die "Could not fix paths of *.desktop files" + + # Workaround missing libs + # + # It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900 + # https://bugs.gentoo.org/721108 + if use pcap; then + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die + mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die + mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die + fi + + # Remove libs that link to openldap + if ! use ldap; then + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/wldap32.so + fi + + # Remove libs that link to opencl + if ! use opencl; then + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die + fi +} diff --git a/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild b/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild new file mode 100644 index 000000000000..0d24c74fa191 --- /dev/null +++ b/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild @@ -0,0 +1,184 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{10..12} ) + +inherit python-single-r1 unpacker + +DESCRIPTION="Commercial version of app-emulation/wine with paid support" +HOMEPAGE="https://www.codeweavers.com/products/" +SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin" + +LICENSE="CROSSOVER-3" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="+capi +cups doc +gphoto2 +gstreamer +jpeg +lcms +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RESTRICT="bindist test" +QA_PREBUILT="*" +S="${WORKDIR}" + +DEPEND="" +BDEPEND="${PYTHON_DEPS} + app-alternatives/cpio + app-arch/unzip + dev-lang/perl + dev-util/bbe +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + dev-python/pycairo[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + ') + !prefix? ( sys-libs/glibc ) + capi? ( net-libs/libcapi[abi_x86_32(-)] ) + cups? ( net-print/cups[abi_x86_32(-)] ) + jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] ) + lcms? ( media-libs/lcms:2 ) + gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] ) + gstreamer? ( + media-libs/gstreamer:1.0[abi_x86_32(-)] + jpeg? ( media-plugins/gst-plugins-jpeg:1.0[abi_x86_32(-)] ) + media-plugins/gst-plugins-meta:1.0[abi_x86_32(-)] + ) + mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] ) + nls? ( sys-devel/gettext[abi_x86_32(-)] ) + openal? ( media-libs/openal[abi_x86_32(-)] ) + opencl? ( virtual/opencl[abi_x86_32(-)] ) + opengl? ( + virtual/glu[abi_x86_32(-)] + virtual/opengl[abi_x86_32(-)] + ) + pcap? ( net-libs/libpcap[abi_x86_32(-)] ) + png? ( media-libs/libpng:0[abi_x86_32(-)] ) + scanner? ( media-gfx/sane-backends[abi_x86_32(-)] ) + ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] ) + v4l? ( media-libs/libv4l[abi_x86_32(-)] ) + vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] ) + dev-libs/glib:2 + dev-libs/gobject-introspection + dev-libs/openssl-compat:1.1.1 + dev-util/desktop-file-utils + media-libs/alsa-lib[abi_x86_32(-)] + media-libs/freetype:2[abi_x86_32(-)] + media-libs/mesa[abi_x86_32(-),osmesa?] + media-libs/tiff-compat:4[abi_x86_32(-)] + sys-auth/nss-mdns[abi_x86_32(-)] + sys-apps/util-linux[abi_x86_32(-)] + sys-libs/libunwind[abi_x86_32(-)] + sys-libs/ncurses-compat:5[abi_x86_32(-)] + sys-libs/zlib[abi_x86_32(-)] + x11-libs/libICE[abi_x86_32(-)] + x11-libs/libSM[abi_x86_32(-)] + x11-libs/libX11[abi_x86_32(-)] + x11-libs/libXau[abi_x86_32(-)] + x11-libs/libXcursor[abi_x86_32(-)] + x11-libs/libXdmcp[abi_x86_32(-)] + x11-libs/libXext[abi_x86_32(-)] + x11-libs/libXi[abi_x86_32(-)] + x11-libs/libXrandr[abi_x86_32(-)] + x11-libs/libXxf86vm[abi_x86_32(-)] + x11-libs/libxcb[abi_x86_32(-)] + x11-libs/gdk-pixbuf:2[introspection] + x11-libs/gtk+:3[introspection] + x11-libs/pango[introspection] + x11-libs/vte:2.91[introspection] + sys-libs/libxcrypt[compat] +" + +src_unpack() { + # self unpacking zip archive; unzip warns about the exe stuff + unpack_zip ${A} +} + +src_prepare() { + default + + # Remove unnecessary files, license.txt file kept as it's used by + # multiple files (apart of the menu to show the license) + rm -r guis/ || die "Could not remove files" + use doc || rm -r doc/ || die "Could not remove files" +} + +src_install() { + sed -i \ + -e "s:xdg_install_icons(:&\"${ED}\".:" \ + -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ + -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ + "${S}/lib/perl/CXMenuXDG.pm" || die + + # Install crossover symlink, bug #476314 + dosym ../cxoffice/bin/crossover /opt/bin/crossover + + # Install documentation + dodoc README changelog.txt + rm README changelog.txt || die "Could not remove README and changelog.txt" + + # Install files + dodir /opt/cxoffice + #cp -r ./* "${ED}/opt/cxoffice" \ + find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \ + || die "Could not install into ${ED}/opt/cxoffice" + + # Disable auto-update + sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die + + # Install configuration file + insinto /opt/cxoffice/etc + doins share/crossover/data/cxoffice.conf + dodir /etc/env.d + echo "CONFIG_PROTECT=/opt/cxoffice/etc/cxoffice.conf" >> "${ED}"/etc/env.d/30crossover-bin || die + + # Konqueror in its infinite wisdom decides to try opening things for + # writing, which are sandbox violations. This breaks the install process if + # it is installed, so we ninja edit it to false so it so doesn't run. + sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ + || die "Could not apply workaround for konqueror" + + # Install menus + # XXX: locate_gui.sh automatically detects *-application-merged directories + # This means what we install will vary depending on the contents of + # /etc/xdg, which is a QA violation. It is not clear how to resolve this. + XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \ + "${ED}/opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \ + || die "Could not install menus" + + # Revert ninja edit + sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ + || die "Could not apply workaround for konqueror" + + # Drop Uninstall menus + rm "${ED}/usr/share/applications/"*"Uninstall"* \ + || die "Could not remove uninstall menus" + + # Fix PATHs + sed -i \ + -e "s:\"${ED}\".::" \ + -e "s:${ED}::" \ + "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \ + || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" + sed -i -e "s:${ED}::" \ + "${ED}/usr/share/applications/"*"CrossOver.desktop" \ + || die "Could not fix paths of *.desktop files" + + # Workaround missing libs + # + # It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900 + # https://bugs.gentoo.org/721108 + if use pcap; then + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die + bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die + mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die + mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die + fi + + # Remove libs that link to opencl + if ! use opencl; then + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die + fi +} diff --git a/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild new file mode 100644 index 000000000000..1dac82ed70b9 --- /dev/null +++ b/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild @@ -0,0 +1,174 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +PYTHON_COMPAT=( python3_{10..12} ) + +inherit python-single-r1 unpacker + +DESCRIPTION="Commercial version of app-emulation/wine with paid support" +HOMEPAGE="https://www.codeweavers.com/products/" +SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin" + +LICENSE="CROSSOVER-3" +SLOT="0" +KEYWORDS="-* ~amd64 ~x86" +IUSE="+capi +cups doc +gphoto2 +gstreamer +jpeg +lcms +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RESTRICT="bindist test" +QA_PREBUILT="*" +S="${WORKDIR}" + +DEPEND="" +BDEPEND="${PYTHON_DEPS} + app-alternatives/cpio + app-arch/unzip + dev-lang/perl + dev-util/bbe +" + +RDEPEND="${DEPEND} + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/dbus-python[${PYTHON_USEDEP}] + dev-python/pycairo[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + ') + !prefix? ( sys-libs/glibc ) + capi? ( net-libs/libcapi[abi_x86_32(-)] ) + cups? ( net-print/cups[abi_x86_32(-)] ) + jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] ) + lcms? ( media-libs/lcms:2 ) + gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] ) + gstreamer? ( + media-libs/gstreamer:1.0[abi_x86_32(-)] + jpeg? ( media-plugins/gst-plugins-jpeg:1.0[abi_x86_32(-)] ) + media-plugins/gst-plugins-meta:1.0[abi_x86_32(-)] + ) + mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] ) + nls? ( sys-devel/gettext[abi_x86_32(-)] ) + openal? ( media-libs/openal[abi_x86_32(-)] ) + opencl? ( virtual/opencl[abi_x86_32(-)] ) + opengl? ( + virtual/glu[abi_x86_32(-)] + virtual/opengl[abi_x86_32(-)] + ) + pcap? ( net-libs/libpcap[abi_x86_32(-)] ) + png? ( media-libs/libpng:0[abi_x86_32(-)] ) + scanner? ( media-gfx/sane-backends[abi_x86_32(-)] ) + ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] ) + v4l? ( media-libs/libv4l[abi_x86_32(-)] ) + vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] ) + dev-libs/glib:2 + dev-libs/gobject-introspection + dev-libs/openssl-compat:1.1.1 + dev-util/desktop-file-utils + media-libs/alsa-lib[abi_x86_32(-)] + media-libs/freetype:2[abi_x86_32(-)] + media-libs/mesa[abi_x86_32(-),osmesa?] + media-libs/tiff-compat:4[abi_x86_32(-)] + sys-auth/nss-mdns[abi_x86_32(-)] + sys-apps/util-linux[abi_x86_32(-)] + sys-libs/libunwind[abi_x86_32(-)] + sys-libs/ncurses-compat:5[abi_x86_32(-)] + sys-libs/zlib[abi_x86_32(-)] + x11-libs/libICE[abi_x86_32(-)] + x11-libs/libSM[abi_x86_32(-)] + x11-libs/libX11[abi_x86_32(-)] + x11-libs/libXau[abi_x86_32(-)] + x11-libs/libXcursor[abi_x86_32(-)] + x11-libs/libXdmcp[abi_x86_32(-)] + x11-libs/libXext[abi_x86_32(-)] + x11-libs/libXi[abi_x86_32(-)] + x11-libs/libXrandr[abi_x86_32(-)] + x11-libs/libXxf86vm[abi_x86_32(-)] + x11-libs/libxcb[abi_x86_32(-)] + x11-libs/gdk-pixbuf:2[introspection] + x11-libs/gtk+:3[introspection] + x11-libs/pango[introspection] + x11-libs/vte:2.91[introspection] + sys-apps/pcsc-lite[abi_x86_32(-)] + sys-libs/libxcrypt[compat] +" + +src_unpack() { + # self unpacking zip archive; unzip warns about the exe stuff + unpack_zip ${A} +} + +src_prepare() { + default + + # Remove unnecessary files, license.txt file kept as it's used by + # multiple files (apart of the menu to show the license) + rm -r guis/ || die "Could not remove files" + use doc || rm -r doc/ || die "Could not remove files" +} + +src_install() { + sed -i \ + -e "s:xdg_install_icons(:&\"${ED}\".:" \ + -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \ + -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \ + "${S}/lib/perl/CXMenuXDG.pm" || die + + # Install crossover symlink, bug #476314 + dosym ../cxoffice/bin/crossover /opt/bin/crossover + + # Install documentation + dodoc README changelog.txt + rm README changelog.txt || die "Could not remove README and changelog.txt" + + # Install files + dodir /opt/cxoffice + #cp -r ./* "${ED}/opt/cxoffice" \ + find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \ + || die "Could not install into ${ED}/opt/cxoffice" + + # Disable auto-update + sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die + + # Install configuration file + insinto /opt/cxoffice/etc + doins share/crossover/data/cxoffice.conf + dodir /etc/env.d + echo "CONFIG_PROTECT=/opt/cxoffice/etc/cxoffice.conf" >> "${ED}"/etc/env.d/30crossover-bin || die + + # Konqueror in its infinite wisdom decides to try opening things for + # writing, which are sandbox violations. This breaks the install process if + # it is installed, so we ninja edit it to false so it so doesn't run. + sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ + || die "Could not apply workaround for konqueror" + + # Install menus + # XXX: locate_gui.sh automatically detects *-application-merged directories + # This means what we install will vary depending on the contents of + # /etc/xdg, which is a QA violation. It is not clear how to resolve this. + XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \ + "${ED}/opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \ + || die "Could not install menus" + + # Revert ninja edit + sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \ + || die "Could not apply workaround for konqueror" + + # Drop Uninstall menus + rm "${ED}/usr/share/applications/"*"Uninstall"* \ + || die "Could not remove uninstall menus" + + # Fix PATHs + sed -i \ + -e "s:\"${ED}\".::" \ + -e "s:${ED}::" \ + "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \ + || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" + sed -i -e "s:${ED}::" \ + "${ED}/usr/share/applications/"*"CrossOver.desktop" \ + || die "Could not fix paths of *.desktop files" + + # Remove libs that link to opencl + if ! use opencl; then + rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die + fi +} diff --git a/app-emulation/crossover-bin/metadata.xml b/app-emulation/crossover-bin/metadata.xml index 7be1d14b856a..c176b5ef980c 100644 --- a/app-emulation/crossover-bin/metadata.xml +++ b/app-emulation/crossover-bin/metadata.xml @@ -1,15 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>ryao@gentoo.org</email> - <name>Richard Yao</name> + <email>pacho@gentoo.org</email> + <name>Pacho Ramos</name> </maintainer> <use> <flag name="capi">Enable ISDN support via CAPI</flag> <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag> - <flag name="opencl">Enable OpenCL support</flag> <flag name="pcap">Support packet capture software (e.g. wireshark)</flag> - <flag name="vulkan">Enable Vulkan drivers</flag> </use> </pkgmetadata> diff --git a/app-emulation/crun/Manifest b/app-emulation/crun/Manifest deleted file mode 100644 index 412ce2e26eb7..000000000000 --- a/app-emulation/crun/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST crun-0.14.1.tar.gz 1341891 BLAKE2B c20d5001161e298050ddca859fa78487fe3f8577ef0b06eb5515056f19ba4f981debeb684148de49111a0370b9bafb7f6454d65f7ecf087862c697a162c9b377 SHA512 420f1713653cbd17df83b2a63d163aaa41baf78115b093877a2241305e10b2ceeaf08ea6700658eca894729ff8a20cbc66f868d18d27fba3fbedf1a9993b122e -DIST crun-0.15.tar.gz 1364861 BLAKE2B 7078e71229bae4bc663398891b21344abc3189c78a11e4feeae3236e1df4a2c5160cf26f2cc243d4c0898a642a779603d473d2c22ca2b67123c6ac4654fce4d7 SHA512 f9a9e94b6a9c5cff01fe93b1c3d5876a0794e6288b802cf579556e11411ca5d6e63cae3859aaa4df4bb600e2d27aa131872a93a92784b9b48f7885411d86f325 -DIST libcrun.lds 257 BLAKE2B 00e7cdf3162ea0b7231dbb9037b192bcf5ffa83316e1aa60268560bc9fe8302be351c405861f9dfc06620ea64561a9226f58b7133039c0af1299dc4088b98272 SHA512 0e9b836c79ee4ad7ff33c592eca8ff41f38aed588f2f5a2416bed82efa819cd4c61ad65a2dfd11a37838a19d950688b1d5adb3b75841963dbb589536e8a867f7 diff --git a/app-emulation/crun/crun-0.14.1.ebuild b/app-emulation/crun/crun-0.14.1.ebuild deleted file mode 100644 index 651d5f88be89..000000000000 --- a/app-emulation/crun/crun-0.14.1.ebuild +++ /dev/null @@ -1,79 +0,0 @@ -# Copyright 2019-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) - -inherit autotools python-any-r1 - -DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C" -HOMEPAGE="https://github.com/containers/crun" -SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz - https://github.com/containers/${PN}/raw/${PV}/libcrun.lds" - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~ppc64" -IUSE="bpf +caps man seccomp systemd static-libs" - -DEPEND=" - dev-libs/yajl - caps? ( sys-libs/libcap ) - seccomp? ( sys-libs/libseccomp ) - systemd? ( sys-apps/systemd:= ) -" -RDEPEND="${DEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - man? ( dev-go/go-md2man ) -" - -# the crun test suite is comprehensive to the extent that tests will fail -# within a sandbox environment, due to the nature of the privileges -# required to create linux "containers". -RESTRICT="test" - -DOCS=( README.md ) - -src_unpack() { - # dont' try to unpack the .lds file - MY_A=( ${A[@]/libcrun.lds} ) - unpack ${MY_A} -} - -src_prepare() { - default - eautoreconf - cp -v "${DISTDIR}"/libcrun.lds "${S}"/ || die "libcrun.lds could not be copied" -} - -src_configure() { - local myeconfargs=( - --disable-criu \ - $(use_enable bpf) \ - $(use_enable caps) \ - $(use_enable seccomp) \ - $(use_enable systemd) \ - $(usex static-libs '--enabled-shared --enabled-static' '--enable-shared --disable-static' '' '') - ) - - econf "${myeconfargs[@]}" -} - -src_compile() { - emake -C libocispec - emake crun - if use man ; then - emake generate-man - fi -} - -src_install() { - emake "DESTDIR=${D}" install-exec - if use man ; then - emake "DESTDIR=${D}" install-man - fi - - einstalldocs -} diff --git a/app-emulation/crun/crun-0.15.ebuild b/app-emulation/crun/crun-0.15.ebuild deleted file mode 100644 index 888df44272f7..000000000000 --- a/app-emulation/crun/crun-0.15.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2019-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) - -inherit autotools python-any-r1 - -DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C" -HOMEPAGE="https://github.com/containers/crun" -SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz" - -LICENSE="GPL-2+ LGPL-2.1+" -SLOT="0" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" -IUSE="+bpf +caps criu man +seccomp systemd static-libs" - -DEPEND=" - sys-kernel/linux-headers - >=dev-libs/yajl-2.0.0 - caps? ( sys-libs/libcap ) - criu? ( >=sys-process/criu-3.13 ) - seccomp? ( sys-libs/libseccomp ) - systemd? ( sys-apps/systemd:= ) -" -RDEPEND="${DEPEND}" -BDEPEND=" - ${PYTHON_DEPS} - man? ( dev-go/go-md2man ) -" - -# the crun test suite is comprehensive to the extent that tests will fail -# within a sandbox environment, due to the nature of the privileges -# required to create linux "containers". -RESTRICT="test" - -DOCS=( README.md ) - -src_configure() { - local myeconfargs=( - $(use_enable bpf) \ - $(use_enable caps) \ - $(use_enable criu) \ - $(use_enable seccomp) \ - $(use_enable systemd) \ - $(usex static-libs '--enabled-shared --enabled-static' '--enable-shared --disable-static' '' '') - ) - - econf "${myeconfargs[@]}" -} - -src_compile() { - emake -C libocispec - emake crun - if use man ; then - emake generate-man - fi -} - -src_install() { - emake "DESTDIR=${D}" install-exec - if use man ; then - emake "DESTDIR=${D}" install-man - fi - - einstalldocs -} diff --git a/app-emulation/crun/metadata.xml b/app-emulation/crun/metadata.xml deleted file mode 100644 index e26e3d83bf66..000000000000 --- a/app-emulation/crun/metadata.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>robert@gnzler.io</email> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <longdescription lang="en"> - While most of the tools used in the Linux containers ecosystem are written in - Go, crun authors believe C is a better fit for a lower level tool like a - container runtime. runc; the most used implementation of the OCI runtime specs - written in Go, re-execs itself and use a module written in C for setting up - the environment before the container process starts. - - crun aims to be also usable as a library that can be easily included in - programs without requiring an external process for managing OCI containers. - </longdescription> - <upstream> - <changelog>https://github.com/containers/crun/releases</changelog> - <remote-id type="github">containers/crun</remote-id> - </upstream> - <use> - <flag name="bpf">Enable in Kernel, eBPF (enhanced Berkley Packet Filter) - support for managing device controllers. - </flag> - <flag name="man">Build and install man pages</flag> - <flag name="criu">Enable CRIU based checkpoint/restore support</flag> - </use> -</pkgmetadata> diff --git a/app-emulation/dinero/dinero-4.7-r1.ebuild b/app-emulation/dinero/dinero-4.7-r1.ebuild index 5768448f3886..6fe3a1546442 100644 --- a/app-emulation/dinero/dinero-4.7-r1.ebuild +++ b/app-emulation/dinero/dinero-4.7-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -8,7 +8,7 @@ inherit autotools toolchain-funcs MY_P="d${PV/./-}" S="${WORKDIR}/${MY_P}" DESCRIPTION="Cache simulator" -HOMEPAGE="http://www.cs.wisc.edu/~markhill/DineroIV/" +HOMEPAGE="https://pages.cs.wisc.edu/~markhill/DineroIV/" SRC_URI="ftp://ftp.cs.wisc.edu/markhill/DineroIV/${MY_P}.tar.gz" LICENSE="free-noncomm" diff --git a/app-emulation/dinero/metadata.xml b/app-emulation/dinero/metadata.xml index 6f49eba8f496..85e4ed814fa2 100644 --- a/app-emulation/dinero/metadata.xml +++ b/app-emulation/dinero/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> </pkgmetadata> diff --git a/app-emulation/diskimage-builder/Manifest b/app-emulation/diskimage-builder/Manifest index 69807ba0b093..6d2f7d256e5a 100644 --- a/app-emulation/diskimage-builder/Manifest +++ b/app-emulation/diskimage-builder/Manifest @@ -1 +1 @@ -DIST diskimage-builder-3.3.1.tar.gz 450130 BLAKE2B 09f3b3549527d726f8479e1f8dc89ae50fdeacf6969e43f5b35591fa0a9d38ae0dd03b7292633604a938b0ef14e31b4e655645643bae22df4f3519c75d9dde83 SHA512 095c0968f5ceeb220c3871ccd14c7bf7c1b3d883bcb02f9cfe7406d5a336c36a813c8290bf133441a2a59972f485596aa5620b755016aba348afe3b7fc723c9f +DIST diskimage-builder-3.32.0.tar.gz 532942 BLAKE2B e436e5268b649dc5e050f66b098e527b79f172df00da93f23c115e3d88692c3f6546774c2046c8d4722cdd4139af4d05701725496f283b60e08ce0885b70de66 SHA512 6f5c2e0df428bf85b847fdc0ceebfdb66823b92b5b903de247d0e83ff2588c36e6f9786ea91f252c838cedeec22913f491d79643e77d83ad1fb690da7566af47 diff --git a/app-emulation/diskimage-builder/diskimage-builder-3.3.1.ebuild b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild index 893f0c3ae6b6..ee67baf77be4 100644 --- a/app-emulation/diskimage-builder/diskimage-builder-3.3.1.ebuild +++ b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild @@ -1,19 +1,20 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) -DISTUTILS_USE_SETUPTOOLS=rdepend +PYTHON_COMPAT=( python3_{9,10,11,12} ) +DISTUTILS_USE_PEP517=setuptools +PYPI_NO_NORMALIZE=1 inherit distutils-r1 -DESCRIPTION="Golden Disk Image builder." +DESCRIPTION="Golden Disk Image builder" HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/" if [[ ${PV} == 9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git" else - SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + inherit pypi KEYWORDS="amd64 ~arm64 x86 ~amd64-linux ~x86-linux" fi @@ -29,6 +30,7 @@ RDEPEND="${CDEPEND} !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}] >=dev-python/networkx-1.10[${PYTHON_USEDEP}] >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] >=dev-python/six-1.10.0[${PYTHON_USEDEP}] >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}] app-emulation/qemu diff --git a/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild b/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild index eb082f7274ea..f94dda84287d 100644 --- a/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild +++ b/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild @@ -1,19 +1,20 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) -DISTUTILS_USE_SETUPTOOLS=rdepend +PYTHON_COMPAT=( python3_{9,10,11,12} ) +DISTUTILS_USE_PEP517=setuptools +PYPI_NO_NORMALIZE=1 inherit distutils-r1 -DESCRIPTION="Golden Disk Image builder." +DESCRIPTION="Golden Disk Image builder" HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/" if [[ ${PV} == 9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git" else - SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + inherit pypi KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux" fi @@ -29,6 +30,7 @@ RDEPEND="${CDEPEND} !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}] >=dev-python/networkx-1.10[${PYTHON_USEDEP}] >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] >=dev-python/six-1.10.0[${PYTHON_USEDEP}] >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}] app-emulation/qemu diff --git a/app-emulation/diskimage-builder/metadata.xml b/app-emulation/diskimage-builder/metadata.xml index f8379974f846..ac7f0ae3a814 100644 --- a/app-emulation/diskimage-builder/metadata.xml +++ b/app-emulation/diskimage-builder/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>prometheanfire@gentoo.org</email> diff --git a/app-emulation/distrobuilder/Manifest b/app-emulation/distrobuilder/Manifest deleted file mode 100644 index 787431ed6f34..000000000000 --- a/app-emulation/distrobuilder/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST distrobuilder-1.1.tar.gz 17339508 BLAKE2B 5dc023520783301bfaaee9dbdb7f6707a565b6b7cde18afe53051c47cf4ec243be4f279846753f4fdab75f8aa3333fc4e74d90376390073e36edcb57a1d22815 SHA512 4638cb7ad34032a4ab6d6d85a07b92b7ee3ebc6fe34672d148b0574d487ca2a572fbcc700f829865faa77ec07f78e47555246cb8a2455c713d5051f19cbf8426 diff --git a/app-emulation/distrobuilder/distrobuilder-1.1.ebuild b/app-emulation/distrobuilder/distrobuilder-1.1.ebuild deleted file mode 100644 index becaf0c0f236..000000000000 --- a/app-emulation/distrobuilder/distrobuilder-1.1.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit go-module linux-info - -DESCRIPTION="System container image builder for LXC and LXD" -HOMEPAGE="https://linuxcontainers.org/distrobuilder/introduction/" -SRC_URI="https://linuxcontainers.org/downloads/distrobuilder/${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND=" - dev-util/debootstrap - app-crypt/gnupg - sys-fs/squashfs-tools - dev-vcs/git - net-misc/rsync - " - -CONFIG_CHECK="~OVERLAY_FS" -RESTRICT+=" test" - -src_compile() { - cd _dist/src/github.com/lxc/distrobuilder || die "cd failed" - GO111MODULE="off" GOBIN="${S}/bin" GOPATH="${S}/_dist" \ - go install ./... || die "compile failed" -} - -src_install() { - dobin bin/* -} diff --git a/app-emulation/distrobuilder/metadata.xml b/app-emulation/distrobuilder/metadata.xml deleted file mode 100644 index b495e2e1bb0b..000000000000 --- a/app-emulation/distrobuilder/metadata.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <maintainer type="person"> - <email>posting@vodacomm.ca</email> - <name>Stephen Bosch</name> - </maintainer> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/dlx/Manifest b/app-emulation/dlx/Manifest deleted file mode 100644 index d495844051b6..000000000000 --- a/app-emulation/dlx/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST dlx-1.0.0.tar.gz 112589 BLAKE2B 307785d08fd69e45264471fbc21e3b2bdba99798c0b7144c3d6a92819c29e4ac6449a6db83fdd55ba81d3b2e3f8ca6c991ee6c117ddc490a88ae210e5bc07ab8 SHA512 99297f14f6716ada7a29b204723a0c951002529362a22f695b3647517462f43af563ea55467985dda3e21d79a14d46b84dbc9b22a8c0751fba49257e30f70a7f -DIST dlx-1.5.20.zip 137039 BLAKE2B 99dbb2e5bcd89b3e9f3d8edc2fe7e7cc0a59f870f597a40a61a993b95d8b27c4f95b8d0490fdbcbc15693040d6e3abdfb8b0062e109916f5299c3da3c203d755 SHA512 5c832c2a486a82574ae03ec0cb4e30bfec74ef968658a38fbd896a1383dcdc558501baef7cbbdf99df453ba2840622d16c1619f9c5fe34b6cd058a7718bd3790 diff --git a/app-emulation/dlx/dlx-1.0.0.ebuild b/app-emulation/dlx/dlx-1.0.0.ebuild deleted file mode 100644 index 401c626c72df..000000000000 --- a/app-emulation/dlx/dlx-1.0.0.ebuild +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -S=${WORKDIR}/dlx - -DESCRIPTION="DLX Simulator" -HOMEPAGE="https://www.davidviner.com/dlx" -SRC_URI="mirror://gentoo/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="ppc x86" -IUSE="" - -src_install() { - dobin masm mon dasm - dodoc README.txt MANUAL.TXT -} diff --git a/app-emulation/dlx/dlx-1.5.20.ebuild b/app-emulation/dlx/dlx-1.5.20.ebuild deleted file mode 100644 index 30e768088a51..000000000000 --- a/app-emulation/dlx/dlx-1.5.20.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="DLX Simulator" -HOMEPAGE="https://www.davidviner.com/dlx" -SRC_URI="https://www.davidviner.com/zip/dlx/dlx.zip -> ${P}.zip" -S=${WORKDIR}/dlx - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" -IUSE="" - -DEPEND="app-arch/unzip" - -src_compile() { - # CXX not used - emake CC="$(tc-getCC)" LINK="$(tc-getCC)" \ - CFLAGS="${CFLAGS} ${CPPFLAGS}" \ - LFLAGS="${CFLAGS} ${LDFLAGS}" -} - -src_install() { - dobin masm mon dasm - dodoc README.txt MANUAL.TXT -} diff --git a/app-emulation/dlx/metadata.xml b/app-emulation/dlx/metadata.xml deleted file mode 100644 index 6f49eba8f496..000000000000 --- a/app-emulation/dlx/metadata.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<!-- maintainer-needed --> -</pkgmetadata> diff --git a/app-emulation/docker-bench-security/Manifest b/app-emulation/docker-bench-security/Manifest deleted file mode 100644 index 343ff9b85b6d..000000000000 --- a/app-emulation/docker-bench-security/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST docker-bench-security-1.3.2.tar.gz 414608 BLAKE2B 27977df473c341783aab400bbe5064e267d6f53aa62ffd6f95386572e059616750eb06b98ad3044efaf565f929e6ebfb5d57607b227718032fa33d70ce65eed5 SHA512 7d271167584ff99fdaff15b1d303f1cedeb5888057437cc3bfae8260aff96f98d8a0173c4d4e5718bf8ee4e0ffe3ae0280f0026cf386ae32c38e8302159a2226 -DIST docker-bench-security-1.3.3.tar.gz 274361 BLAKE2B b0a3fef0fedd7353a11f18603af0a9bd5a9c5674df8e0c2988f3b7430739b1fe1c37b3bc29323f39604e8f9d3af66e4a64b97c1e4bb1ef253cc39e9b1e1cb6e2 SHA512 0b9a8bb3cc0bf0887f3b3462c3529568f6cc4d327f66fe482ceb24865a3df51ffee48a1a12c93ca13401f23bf1cd47b3e8b25c99537f63a823ff173d54994fe9 diff --git a/app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild b/app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild deleted file mode 100644 index 6e423e8ccc19..000000000000 --- a/app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="Test for best practices around deploying docker containers" -HOMEPAGE="https://github.com/docker/docker-bench-security" -SRC_URI="https://github.com/docker/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND=">=app-emulation/docker-1.10" - -src_install() { -dobin "${FILESDIR}/docker-bench-security" -exeinto /usr/lib/${PN} -doexe ${PN}.sh -insinto /usr/lib/${PN} -doins -r *lib.sh tests - dodoc -r benchmark_log.png CONTRIBUTING.md distros docker-compose.yml \ - Dockerfile MAINTAINERS README.md -} diff --git a/app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild b/app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild deleted file mode 100644 index 6e423e8ccc19..000000000000 --- a/app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="Test for best practices around deploying docker containers" -HOMEPAGE="https://github.com/docker/docker-bench-security" -SRC_URI="https://github.com/docker/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND=">=app-emulation/docker-1.10" - -src_install() { -dobin "${FILESDIR}/docker-bench-security" -exeinto /usr/lib/${PN} -doexe ${PN}.sh -insinto /usr/lib/${PN} -doins -r *lib.sh tests - dodoc -r benchmark_log.png CONTRIBUTING.md distros docker-compose.yml \ - Dockerfile MAINTAINERS README.md -} diff --git a/app-emulation/docker-bench-security/files/docker-bench-security b/app-emulation/docker-bench-security/files/docker-bench-security deleted file mode 100644 index 3a79d1b3af4d..000000000000 --- a/app-emulation/docker-bench-security/files/docker-bench-security +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -if [ $(id -u) -ne 0 ]; then - printf "%s\n" "This script must be run as root." - exit 1 -fi -cd "$(dirname $0)/../lib/docker-bench-security" -./docker-bench-security.sh diff --git a/app-emulation/docker-bench-security/metadata.xml b/app-emulation/docker-bench-security/metadata.xml deleted file mode 100644 index eb6d1553ceb4..000000000000 --- a/app-emulation/docker-bench-security/metadata.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <longdescription lang="en"> - The Docker Bench for Security is a script that checks for dozens of - common best-practices around deploying Docker containers in production. - </longdescription> -</pkgmetadata> diff --git a/app-emulation/docker-compose/Manifest b/app-emulation/docker-compose/Manifest deleted file mode 100644 index 240475af83e6..000000000000 --- a/app-emulation/docker-compose/Manifest +++ /dev/null @@ -1,5 +0,0 @@ -DIST docker-compose-1.25.5.tar.gz 308569 BLAKE2B 5d5d1fd60f9bcb87f7e9628dbe10b275996f9af38fb8488a547f4cb5427e6f7aaac09a98a421a0c35a7c2c863713e5de9a490ad21adf080f74a7c3bc4336559b SHA512 efe59bd5e82e12e63c82341ccf5ca11eaebd47c8154a50b40d39bc98ec48c37532919335172a5667f036bab4e884df950ebc4b4ccab8174200cc7ea6683bbbd7 -DIST docker-compose-1.26.2.tar.gz 313494 BLAKE2B 656bac181547a3484c45d0ede7111384007db8109aaf3673a06b848bb9b27059cfb8b2cd583e6bc7acd0ebbd90d40e485251d473eefe56a6493abe187132e520 SHA512 4cb8a2f5e25f17eb842e36dea96fae8862df099d706ec590e6fc0790c7a814bed3bb60ec00207e4afc15bf8ad4ca37075320fd28ee0bea5bbec1646f3aed681f -DIST docker-compose-1.27.2.tar.gz 309004 BLAKE2B 1017016989b25afa812d2e7251c6dbf45922867d66ef0c69292889a5de8f31908c8d2f418b2c29c319fbd7d0ba4e213d932665e7128b61164295105f35b23579 SHA512 2156a2b283d0ace6a8bfb0d6bbe93bfca7cd651c30fdeea4e1fa2acc6a85790d34a869d4625ef83ad11e9ecc1fbc1e9acac6f40eb8ef5225ccc36bab2ddcf847 -DIST docker-compose-1.27.3.tar.gz 309220 BLAKE2B eaf066f24bfff893e515a460be9abba79a59e5112a3a34a9002870babefd93950cf92ef66db469102c37e781d7fb986de069eef3fa09e4041b3a43d8bf1a3d30 SHA512 43e34760574d1ec009faa7a1fa09d621a2708f01f05819b46c67fe7ebf280807f97d9a5867cbfe75e9af6f097cd3f7c8c8fee66aa5392a4c62cdf44c7fb38075 -DIST docker-compose-1.27.4.tar.gz 309308 BLAKE2B 098af5e0308de4fe72f8f7d5c9cbdb285ec1cb6fbd492baef8a4223f93591321c585ebabd4c7e4a40d7a1bce3ab2d7ccf4cee1d0a15e7f59bb80eb4df5b6c8d6 SHA512 b41b7cf88b1380021a30f9becb7567d1e154ef875c42b37483673b5107f1a26dae6868b92c6a61f695001eb63759b25f3729e6783272eb784047717cafea3b80 diff --git a/app-emulation/docker-compose/docker-compose-1.25.5.ebuild b/app-emulation/docker-compose/docker-compose-1.25.5.ebuild deleted file mode 100644 index 92e8455fcfac..000000000000 --- a/app-emulation/docker-compose/docker-compose-1.25.5.ebuild +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2018-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit bash-completion-r1 distutils-r1 - -DESCRIPTION="Multi-container orchestration for Docker" -HOMEPAGE="https://github.com/docker/compose" -SRC_URI="https://github.com/docker/compose/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}] - >=dev-python/docker-py-3.7.0[${PYTHON_USEDEP}] - >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}] - >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}] - >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}] - dev-python/paramiko[${PYTHON_USEDEP}] - >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}] - >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] - >=dev-python/requests-2.20.0[${PYTHON_USEDEP}] - >=dev-python/six-1.3.0[${PYTHON_USEDEP}] - >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}] - >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]" - -DEPEND="${RDEPEND} - test? ( - >=dev-python/pytest-5[${PYTHON_USEDEP}] - dev-python/ddt[${PYTHON_USEDEP}] - )" - -S="${WORKDIR}/compose-${PV}" - -PATCHES=( - # Bug #679968 -- https://bugs.gentoo.org/679968 - # Bug #681002 -- https://bugs.gentoo.org/681002 - "${FILESDIR}"/${PN}-1.25.2-setup-py.patch -) - -src_prepare() { - # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command." - sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die - - default -} - -python_test() { - distutils_install_for_testing - ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}" -} - -python_install_all() { - newbashcomp contrib/completion/bash/docker-compose ${PN} - - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/* - - distutils-r1_python_install_all -} diff --git a/app-emulation/docker-compose/docker-compose-1.26.2.ebuild b/app-emulation/docker-compose/docker-compose-1.26.2.ebuild deleted file mode 100644 index 352afa3a5dc2..000000000000 --- a/app-emulation/docker-compose/docker-compose-1.26.2.ebuild +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 2018-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7} ) -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit bash-completion-r1 distutils-r1 - -DESCRIPTION="Multi-container orchestration for Docker" -HOMEPAGE="https://github.com/docker/compose" -SRC_URI="https://github.com/docker/compose/archive/${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}] - >=dev-python/distro-1.5.0[${PYTHON_USEDEP}] - >=dev-python/docker-py-4.2.2[${PYTHON_USEDEP}] - >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}] - >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}] - >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}] - >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}] - dev-python/paramiko[${PYTHON_USEDEP}] - >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}] - >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] - >=dev-python/requests-2.20.0[${PYTHON_USEDEP}] - >=dev-python/six-1.3.0[${PYTHON_USEDEP}] - >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}] - >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]" - -DEPEND="${RDEPEND} - test? ( - >=dev-python/pytest-5[${PYTHON_USEDEP}] - >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}] - )" - -S="${WORKDIR}/compose-${PV}" - -PATCHES=( - # Bug #679968 -- https://bugs.gentoo.org/679968 - # Bug #681002 -- https://bugs.gentoo.org/681002 - "${FILESDIR}"/${PN}-1.26.2-setup-py.patch -) - -DOCS=( CHANGELOG.md README.md ) - -src_prepare() { - # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command." - sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die - - default -} - -python_test() { - distutils_install_for_testing - ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}" -} - -python_install_all() { - newbashcomp contrib/completion/bash/docker-compose ${PN} - - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/* - - distutils-r1_python_install_all -} diff --git a/app-emulation/docker-compose/docker-compose-1.27.2.ebuild b/app-emulation/docker-compose/docker-compose-1.27.2.ebuild deleted file mode 100644 index 21b5b42471fc..000000000000 --- a/app-emulation/docker-compose/docker-compose-1.27.2.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2018-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8,9} ) -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit bash-completion-r1 distutils-r1 - -MY_PV=${PV/_/-} -DESCRIPTION="Multi-container orchestration for Docker" -HOMEPAGE="https://github.com/docker/compose" -SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}] - >=dev-python/distro-1.5.0[${PYTHON_USEDEP}] - >=dev-python/docker-py-4.3.1[${PYTHON_USEDEP}] - >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}] - >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}] - >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}] - >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}] - dev-python/paramiko[${PYTHON_USEDEP}] - >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}] - >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] - >=dev-python/requests-2.20.0[${PYTHON_USEDEP}] - >=dev-python/six-1.3.0[${PYTHON_USEDEP}] - >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}] - >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]" - -DEPEND="${RDEPEND} - test? ( - >=dev-python/pytest-5[${PYTHON_USEDEP}] - >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}] - )" - -S="${WORKDIR}/compose-${MY_PV}" - -PATCHES=( - # Bug #679968 -- https://bugs.gentoo.org/679968 - # Bug #681002 -- https://bugs.gentoo.org/681002 - "${FILESDIR}"/${PN}-1.27.0_rc3-setup-py.patch -) - -DOCS=( CHANGELOG.md README.md ) - -src_prepare() { - # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command." - sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die - - default -} - -python_test() { - distutils_install_for_testing - ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}" -} - -python_install_all() { - newbashcomp contrib/completion/bash/docker-compose ${PN} - - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/* - - distutils-r1_python_install_all -} diff --git a/app-emulation/docker-compose/docker-compose-1.27.3.ebuild b/app-emulation/docker-compose/docker-compose-1.27.3.ebuild deleted file mode 100644 index 21b5b42471fc..000000000000 --- a/app-emulation/docker-compose/docker-compose-1.27.3.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2018-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8,9} ) -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit bash-completion-r1 distutils-r1 - -MY_PV=${PV/_/-} -DESCRIPTION="Multi-container orchestration for Docker" -HOMEPAGE="https://github.com/docker/compose" -SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}] - >=dev-python/distro-1.5.0[${PYTHON_USEDEP}] - >=dev-python/docker-py-4.3.1[${PYTHON_USEDEP}] - >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}] - >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}] - >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}] - >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}] - dev-python/paramiko[${PYTHON_USEDEP}] - >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}] - >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] - >=dev-python/requests-2.20.0[${PYTHON_USEDEP}] - >=dev-python/six-1.3.0[${PYTHON_USEDEP}] - >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}] - >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]" - -DEPEND="${RDEPEND} - test? ( - >=dev-python/pytest-5[${PYTHON_USEDEP}] - >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}] - )" - -S="${WORKDIR}/compose-${MY_PV}" - -PATCHES=( - # Bug #679968 -- https://bugs.gentoo.org/679968 - # Bug #681002 -- https://bugs.gentoo.org/681002 - "${FILESDIR}"/${PN}-1.27.0_rc3-setup-py.patch -) - -DOCS=( CHANGELOG.md README.md ) - -src_prepare() { - # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command." - sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die - - default -} - -python_test() { - distutils_install_for_testing - ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}" -} - -python_install_all() { - newbashcomp contrib/completion/bash/docker-compose ${PN} - - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/* - - distutils-r1_python_install_all -} diff --git a/app-emulation/docker-compose/docker-compose-1.27.4.ebuild b/app-emulation/docker-compose/docker-compose-1.27.4.ebuild deleted file mode 100644 index 21b5b42471fc..000000000000 --- a/app-emulation/docker-compose/docker-compose-1.27.4.ebuild +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2018-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8,9} ) -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit bash-completion-r1 distutils-r1 - -MY_PV=${PV/_/-} -DESCRIPTION="Multi-container orchestration for Docker" -HOMEPAGE="https://github.com/docker/compose" -SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}] - >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}] - >=dev-python/distro-1.5.0[${PYTHON_USEDEP}] - >=dev-python/docker-py-4.3.1[${PYTHON_USEDEP}] - >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}] - >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}] - >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}] - >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}] - dev-python/paramiko[${PYTHON_USEDEP}] - >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}] - >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}] - >=dev-python/requests-2.20.0[${PYTHON_USEDEP}] - >=dev-python/six-1.3.0[${PYTHON_USEDEP}] - >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}] - >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]" - -DEPEND="${RDEPEND} - test? ( - >=dev-python/pytest-5[${PYTHON_USEDEP}] - >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}] - )" - -S="${WORKDIR}/compose-${MY_PV}" - -PATCHES=( - # Bug #679968 -- https://bugs.gentoo.org/679968 - # Bug #681002 -- https://bugs.gentoo.org/681002 - "${FILESDIR}"/${PN}-1.27.0_rc3-setup-py.patch -) - -DOCS=( CHANGELOG.md README.md ) - -src_prepare() { - # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command." - sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die - - default -} - -python_test() { - distutils_install_for_testing - ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}" -} - -python_install_all() { - newbashcomp contrib/completion/bash/docker-compose ${PN} - - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/* - - distutils-r1_python_install_all -} diff --git a/app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch deleted file mode 100644 index 3af8d2de06e6..000000000000 --- a/app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 19d9b58b97127f24e2280e3119e420393e7d239f Mon Sep 17 00:00:00 2001 -From: Sebastian Pipping <sebastian@pipping.org> -Date: Mon, 20 Jan 2020 19:27:46 +0100 -Subject: [PATCH] setup.py: Drop generic upper version boundaries - ---- - setup.py | 38 +++++++++++++++++++------------------- - 1 file changed, 19 insertions(+), 19 deletions(-) - -diff --git a/setup.py b/setup.py -index 110441d..3f6a46f 100644 ---- a/setup.py -+++ b/setup.py -@@ -30,35 +30,35 @@ def find_version(*file_paths): - - - install_requires = [ -- 'cached-property >= 1.2.0, < 2', -- 'docopt >= 0.6.1, < 1', -- 'PyYAML >= 3.10, < 6', -- 'requests >= 2.20.0, < 3', -- 'texttable >= 0.9.0, < 2', -- 'websocket-client >= 0.32.0, < 1', -- 'docker[ssh] >= 3.7.0, < 5', -- 'dockerpty >= 0.4.1, < 1', -- 'six >= 1.3.0, < 2', -- 'jsonschema >= 2.5.1, < 4', -+ 'cached-property >= 1.2.0', -+ 'docopt >= 0.6.1', -+ 'PyYAML >= 3.10', -+ 'requests >= 2.20.0', -+ 'texttable >= 0.9.0', -+ 'websocket-client >= 0.32.0', -+ 'docker[ssh] >= 3.7.0', -+ 'dockerpty >= 0.4.1', -+ 'six >= 1.3.0', -+ 'jsonschema >= 2.5.1', - ] - - - tests_require = [ -- 'pytest < 6', -+ 'pytest', - ] - - - if sys.version_info[:2] < (3, 4): -- tests_require.append('mock >= 1.0.1, < 4') -+ tests_require.append('mock >= 1.0.1') - - extras_require = { -- ':python_version < "3.2"': ['subprocess32 >= 3.5.4, < 4'], -- ':python_version < "3.4"': ['enum34 >= 1.0.4, < 2'], -- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'], -- ':python_version < "3.3"': ['backports.shutil_get_terminal_size == 1.0.0', -- 'ipaddress >= 1.0.16, < 2'], -- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'], -- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'], -+ ':python_version < "3.2"': ['subprocess32 >= 3.5.4'], -+ ':python_version < "3.4"': ['enum34 >= 1.0.4'], -+ ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'], -+ ':python_version < "3.3"': ['backports.shutil_get_terminal_size >= 1.0.0', -+ 'ipaddress >= 1.0.16'], -+ ':sys_platform == "win32"': ['colorama >= 0.4'], -+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'], - } - - --- -2.24.1 - diff --git a/app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch deleted file mode 100644 index 6c678326952c..000000000000 --- a/app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 067109b44ae049c3f6d72c6dc80e387ff8750b17 Mon Sep 17 00:00:00 2001 -From: Sebastian Pipping <sebastian@pipping.org> -Date: Tue, 30 Jun 2020 21:00:28 +0200 -Subject: [PATCH] setup.py: Drop generic upper version boundaries - ---- - setup.py | 44 ++++++++++++++++++++++---------------------- - 1 file changed, 22 insertions(+), 22 deletions(-) - -diff --git a/setup.py b/setup.py -index ac55ce4..dd69bba 100644 ---- a/setup.py -+++ b/setup.py -@@ -30,38 +30,38 @@ def find_version(*file_paths): - - - install_requires = [ -- 'cached-property >= 1.2.0, < 2', -- 'docopt >= 0.6.1, < 1', -- 'PyYAML >= 3.10, < 6', -- 'requests >= 2.20.0, < 3', -- 'texttable >= 0.9.0, < 2', -- 'websocket-client >= 0.32.0, < 1', -- 'distro >= 1.5.0, < 2', -- 'docker[ssh] >= 4.2.2, < 5', -- 'dockerpty >= 0.4.1, < 1', -- 'six >= 1.3.0, < 2', -- 'jsonschema >= 2.5.1, < 4', -- 'python-dotenv >= 0.13.0, < 1', -+ 'cached-property >= 1.2.0', -+ 'docopt >= 0.6.1', -+ 'PyYAML >= 3.10', -+ 'requests >= 2.20.0', -+ 'texttable >= 0.9.0', -+ 'websocket-client >= 0.32.0', -+ 'distro >= 1.5.0', -+ 'docker[ssh] >= 4.2.2', -+ 'dockerpty >= 0.4.1', -+ 'six >= 1.3.0', -+ 'jsonschema >= 2.5.1', -+ 'python-dotenv >= 0.13.0', - ] - - - tests_require = [ -- 'ddt >= 1.2.2, < 2', -- 'pytest < 6', -+ 'ddt >= 1.2.2', -+ 'pytest', - ] - - - if sys.version_info[:2] < (3, 4): -- tests_require.append('mock >= 1.0.1, < 4') -+ tests_require.append('mock >= 1.0.1') - - extras_require = { -- ':python_version < "3.2"': ['subprocess32 >= 3.5.4, < 4'], -- ':python_version < "3.4"': ['enum34 >= 1.0.4, < 2'], -- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'], -- ':python_version < "3.3"': ['backports.shutil_get_terminal_size == 1.0.0', -- 'ipaddress >= 1.0.16, < 2'], -- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'], -- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'], -+ ':python_version < "3.2"': ['subprocess32 >= 3.5.4'], -+ ':python_version < "3.4"': ['enum34 >= 1.0.4'], -+ ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'], -+ ':python_version < "3.3"': ['backports.shutil_get_terminal_size >= 1.0.0', -+ 'ipaddress >= 1.0.16'], -+ ':sys_platform == "win32"': ['colorama >= 0.4'], -+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'], - 'tests': tests_require, - } - --- -2.26.2 - diff --git a/app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch deleted file mode 100644 index 3026933addd2..000000000000 --- a/app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 3b4800ed5b24cea7af00aa868964e3d46e81364e Mon Sep 17 00:00:00 2001 -From: Sebastian Pipping <sebastian@pipping.org> -Date: Thu, 3 Sep 2020 19:59:36 +0200 -Subject: [PATCH] setup.py: Drop generic upper version boundaries - ---- - setup.py | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - -diff --git a/setup.py b/setup.py -index e0d4340..648a736 100644 ---- a/setup.py -+++ b/setup.py -@@ -25,33 +25,33 @@ def find_version(*file_paths): - - - install_requires = [ -- 'cached-property >= 1.2.0, < 2', -- 'docopt >= 0.6.1, < 1', -- 'PyYAML >= 3.10, < 6', -- 'requests >= 2.20.0, < 3', -- 'texttable >= 0.9.0, < 2', -- 'websocket-client >= 0.32.0, < 1', -- 'distro >= 1.5.0, < 2', -- 'docker[ssh] >= 4.3.1, < 5', -- 'dockerpty >= 0.4.1, < 1', -- 'jsonschema >= 2.5.1, < 4', -- 'python-dotenv >= 0.13.0, < 1', -+ 'cached-property >= 1.2.0', -+ 'docopt >= 0.6.1', -+ 'PyYAML >= 3.10', -+ 'requests >= 2.20.0', -+ 'texttable >= 0.9.0', -+ 'websocket-client >= 0.32.0', -+ 'distro >= 1.5.0', -+ 'docker[ssh] >= 4.3.1', -+ 'dockerpty >= 0.4.1', -+ 'jsonschema >= 2.5.1', -+ 'python-dotenv >= 0.13.0', - ] - - - tests_require = [ -- 'ddt >= 1.2.2, < 2', -- 'pytest < 6', -+ 'ddt >= 1.2.2', -+ 'pytest', - ] - - - if sys.version_info[:2] < (3, 4): -- tests_require.append('mock >= 1.0.1, < 4') -+ tests_require.append('mock >= 1.0.1') - - extras_require = { -- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'], -- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'], -- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'], -+ ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'], -+ ':sys_platform == "win32"': ['colorama >= 0.4'], -+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'], - 'tests': tests_require, - } - --- -2.27.0 - diff --git a/app-emulation/docker-compose/metadata.xml b/app-emulation/docker-compose/metadata.xml deleted file mode 100644 index e8aeb1e23f1e..000000000000 --- a/app-emulation/docker-compose/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>sping@gentoo.org</email> - <name>Sebastian Pipping</name> - </maintainer> - <upstream> - <remote-id type="pypi">docker-compose</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/docker-credential-helpers/Manifest b/app-emulation/docker-credential-helpers/Manifest deleted file mode 100644 index 73b7729ba3f7..000000000000 --- a/app-emulation/docker-credential-helpers/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST docker-credential-helpers-0.6.3.tar.gz 28971 BLAKE2B b50e4de0f3b126e0118f24f845a94be5e932975ab54ad6e0a52129a56109ecafb021f14986569295242cb0af4ea109d8786b8a5ca8481cc48daad14671841432 SHA512 2d15be8df134bff08eef9461348f07cd57c70c15a0ab044de2e69296c400b8c0e16198c90fd064d5ce83037d0bad57520e7524b0832b7a00e69397203dc90d10 diff --git a/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild b/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild deleted file mode 100644 index 1b1d5979dcfc..000000000000 --- a/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="A suite of programs to use native stores to keep Docker credentials safe" -HOMEPAGE="https://github.com/docker/docker-credential-helpers" -EGO_PN=github.com/docker/docker-credential-helpers - -LICENSE="MIT" -SLOT="0" - -if [[ ${PV} = *9999* ]]; then - inherit golang-vcs -else - KEYWORDS="~amd64 ~arm64" - EGIT_COMMIT="v${PV}" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - inherit golang-vcs-snapshot -fi -inherit golang-build - -IUSE="gnome-keyring pass" -REQUIRED_USE="|| ( gnome-keyring pass )" -RESTRICT="test" - -DEPEND="gnome-keyring? ( app-crypt/libsecret )" - -RDEPEND="( - ${DEPEND} - pass? ( app-admin/pass ) -) -" - -S="${WORKDIR}/${P}/src/${EGO_PN}" - -src_compile() { - local -x GOPATH="${WORKDIR}/${P}" - use gnome-keyring && emake secretservice - use pass && emake pass -} - -src_install() { - dobin bin/* - dodoc CHANGELOG.md MAINTAINERS README.md -} - -pkg_postinst() { - if use gnome-keyring; then - elog "For gnome-keyring/kwallet add:\n" - elog ' "credStore": "secretservice"'"\n" - fi - if use pass; then - elog "For 'pass' add:\n" - elog ' "credStore": "pass"'"\n" - fi - elog "to your ~/.docker/config.json" -} diff --git a/app-emulation/docker-credential-helpers/metadata.xml b/app-emulation/docker-credential-helpers/metadata.xml deleted file mode 100644 index 196e66de1e6e..000000000000 --- a/app-emulation/docker-credential-helpers/metadata.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription> - A suite of programs to use native stores to keep Docker credentials - safe. Currently provides docker-credential-secretservice to use the - D-Bus secret service APIs, and docker-credential-pass to use the - pass framework. - </longdescription> - <maintainer type="person"> - <email>rkitover@gmail.com</email> - <name>Rafael Kitover</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <use> - <flag name="gnome-keyring"> - Build secretservice helper which works with gnome-keyring or kwallet - using D-Bus. - </flag> - <flag name="pass"> - Build pass helper for the pass utility. - </flag> - </use> -</pkgmetadata> diff --git a/app-emulation/docker-gc/docker-gc-9999.ebuild b/app-emulation/docker-gc/docker-gc-9999.ebuild deleted file mode 100644 index 9324081bc947..000000000000 --- a/app-emulation/docker-gc/docker-gc-9999.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -EGIT_REPO_URI="https://github.com/spotify/docker-gc.git" - -inherit git-r3 - -DESCRIPTION="Docker garbage collection of containers and images" -HOMEPAGE="https://github.com/spotify/docker-gc/" - -LICENSE="Apache-2.0" -SLOT="0" - -RDEPEND="app-emulation/docker" - -src_install() { - dosbin docker-gc - dodoc README.md -} diff --git a/app-emulation/docker-gc/metadata.xml b/app-emulation/docker-gc/metadata.xml deleted file mode 100644 index 444c94200f5c..000000000000 --- a/app-emulation/docker-gc/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <!-- maintainer-needed --> - <upstream> - <remote-id type="github">spotify/docker-gc</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild b/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild index 20d5054f6d83..1a254c9e6627 100644 --- a/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild +++ b/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -26,6 +26,12 @@ RDEPEND="${COMMON_DEPEND}" SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz ${EGO_VENDOR_URI}" +src_prepare() { + # go build -i is no longer supported #893080 + sed -e 's: -i::' -i src/github.com/dhiltgen/docker-machine-kvm/cmd/docker-machine-driver-kvm/Makefile || die + default +} + src_compile() { export GOPATH=${S} cd "${S}"/src/${EGO_PN}/cmd/${PN/kvm/driver-kvm} || die diff --git a/app-emulation/docker-machine-kvm/metadata.xml b/app-emulation/docker-machine-kvm/metadata.xml index 92a59d8fc1b9..c489cf4ce6b1 100644 --- a/app-emulation/docker-machine-kvm/metadata.xml +++ b/app-emulation/docker-machine-kvm/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>zmedico@gentoo.org</email> diff --git a/app-emulation/docker-machine/metadata.xml b/app-emulation/docker-machine/metadata.xml index 8549b7fc81f3..0d7c55025f93 100644 --- a/app-emulation/docker-machine/metadata.xml +++ b/app-emulation/docker-machine/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>zmedico@gentoo.org</email> diff --git a/app-emulation/docker-proxy/Manifest b/app-emulation/docker-proxy/Manifest deleted file mode 100644 index aea9f8853f1d..000000000000 --- a/app-emulation/docker-proxy/Manifest +++ /dev/null @@ -1,5 +0,0 @@ -DIST docker-proxy-0.8.0_p20190513.tar.gz 2705298 BLAKE2B ff897b18b8265b3d718caf7afaf10f7b8eeed9be0cc9c73b02d5c42c5c9ddd1be32cf7d1259ce26d56219cda57707e25e154e50cfa2cc80e823a4b924da4e5e0 SHA512 0a833510df0029999bfc05c23445a58a8b2ff165c0fb2fd5c411498d1e89b5b1990d2778b32346dd2b6d61c166ff707c6277a5d1937db6345c77d3825eb59875 -DIST docker-proxy-0.8.0_p20190604.tar.gz 2721379 BLAKE2B edc36302ca4b2be297505a5bfd8acd45f17bc752e88bcaa72f34e2d972230d92b9bfe3d0dccbb2f1e04718fb1adc95631fc0f533ca5572bdcfc468d843ce480e SHA512 dea31fd82ab2d445fbd39fe15550a91f7e489a06f6dedd32ea1925f7e9a7971952d26b874f9687249609a0d204ea35da357e0a957b819df2026a0cf8109cb354 -DIST docker-proxy-0.8.0_p20190807.tar.gz 3377742 BLAKE2B c1ccc76dd9157c715d09db27b6800a86b0dc7532089d87eb78a6e656f3b42d4c4824c34e972196038f915e3b08b12197f305fd1a86e3fe75fec621ed49e5e71a SHA512 ffe18805dc6b85f8b058e342cde2baedf2497465298daa444fecba8222885606c85242ca59016bc32a5c2c0164c1c980b92ed3d5f82e011a7e9871a67d67b947 -DIST docker-proxy-0.8.0_p20191011.tar.gz 3377526 BLAKE2B 10dd1817ffa65dc75855daba5efbe6dc7c8a048e8868354d2ad7c2cc4e99dcedb95ba4c5e37a54d60e4bd89c5f5bcac5fde4db8d21b7cc903fd42e4224a084e0 SHA512 a21b9b5883056cf75dda9f229ff199e6daad63d94dcf75ebe3e21204bdeef89c41ddd5730bb6bb4387af9a84a8a81e7adfaf726b2fdd299d8aa9d6d35a096ce2 -DIST docker-proxy-0.8.0_p20200617.tar.gz 3386043 BLAKE2B b32c3b6ef97f656414fdf026307f4054d4dd11cc91dc44a235eb5e5dc9f5f3da0cc4b001eaa28387b79f8f79f0124e6c01b8aab56d5c9e37d777e21cc186cb9c SHA512 fe8644611e975c051ee6e7ad4871624fb45862d9b4a2fd62ea4283e76ad9804d91d585e2165915b09356f11f9dfb31c40dd9ce6a66d63c5032c8c62354960538 diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild deleted file mode 100644 index 1dea70405311..000000000000 --- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/docker/libnetwork" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - EGIT_COMMIT="e7933d41e7b206756115aa9df5e0599fc5169742" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="Docker container networking" -HOMEPAGE="https://github.com/docker/libnetwork" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" # needs dockerd - -src_compile() { - GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die -} - -src_install() { - dodoc ROADMAP.md README.md CHANGELOG.md - dobin bin/docker-proxy -} diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild deleted file mode 100644 index 4400a3255a11..000000000000 --- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/docker/libnetwork" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - EGIT_COMMIT="fc5a7d91d54cc98f64fc28f9e288b46a0bee756c" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="Docker container networking" -HOMEPAGE="https://github.com/docker/libnetwork" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" # needs dockerd - -src_compile() { - GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die -} - -src_install() { - dodoc README.md CHANGELOG.md - dobin bin/docker-proxy -} diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild deleted file mode 100644 index 1c5ef257e177..000000000000 --- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/docker/libnetwork" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - EGIT_COMMIT="45c710223c5fbf04dc3028b9a90b51892e36ca7f" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~arm ~arm64 ~ppc64" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="Docker container networking" -HOMEPAGE="https://github.com/docker/libnetwork" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" # needs dockerd - -src_compile() { - GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die -} - -src_install() { - dodoc README.md CHANGELOG.md - dobin bin/docker-proxy -} diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild deleted file mode 100644 index 5bab21c33ef2..000000000000 --- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/docker/libnetwork" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - EGIT_COMMIT="3eb39382bfa6a3c42f83674ab080ae13b0e34e5d" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="Docker container networking" -HOMEPAGE="https://github.com/docker/libnetwork" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -RESTRICT="test" # needs dockerd - -src_compile() { - GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die -} - -src_install() { - dodoc README.md CHANGELOG.md - dobin bin/docker-proxy -} diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild deleted file mode 100644 index 8720f1704d63..000000000000 --- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -EGO_PN="github.com/docker/libnetwork" - -if [[ ${PV} == *9999 ]]; then - inherit golang-vcs -else - EGIT_COMMIT="026aabaa659832804b01754aaadd2c0f420c68b6" - SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ppc64 ~x86" - inherit golang-vcs-snapshot -fi - -DESCRIPTION="Docker container networking" -HOMEPAGE="https://github.com/docker/libnetwork" - -LICENSE="Apache-2.0" -SLOT="0" -IUSE="" - -S=${WORKDIR}/${P}/src/${EGO_PN} - -# needs dockerd -RESTRICT="test" - -src_compile() { - GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die -} - -src_install() { - dodoc README.md CHANGELOG.md - dobin bin/docker-proxy -} diff --git a/app-emulation/docker-proxy/metadata.xml b/app-emulation/docker-proxy/metadata.xml deleted file mode 100644 index f40cbc947f07..000000000000 --- a/app-emulation/docker-proxy/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>tianon@dockerproject.org</email> - <name>Tianon</name> - </maintainer> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <upstream> - <remote-id type="github">docker/libnetwork</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/docker-registry/Manifest b/app-emulation/docker-registry/Manifest deleted file mode 100644 index c13a696e584b..000000000000 --- a/app-emulation/docker-registry/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST docker-registry-2.7.1.tar.gz 1996699 BLAKE2B 2e22db69f476be5a4688f5b3d6b41fbbf71460351543ae849f707dd5b3d56624f674815a25214002886b057f0859f75fd197bb275a7b3cc8a7787422f716ad0e SHA512 f6baf0e7aa96ebe828c628f7dfd84ee899331c3c1bdab86662aef595b092702b6d9b2c9be766a6de6d153ff4ca55d85c5fd8785a0968f285f56a32a50092c754 diff --git a/app-emulation/docker-registry/docker-registry-2.7.1.ebuild b/app-emulation/docker-registry/docker-registry-2.7.1.ebuild deleted file mode 100644 index 76e7bd12811a..000000000000 --- a/app-emulation/docker-registry/docker-registry-2.7.1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit golang-vcs-snapshot systemd user - -KEYWORDS="amd64 ~arm64" -EGO_PN="github.com/docker/distribution" -EGIT_COMMIT="2461543d988979529609e8cb6fca9ca190dc48da" -SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -DESCRIPTION="Docker Registry 2.0" -HOMEPAGE="https://github.com/docker/distribution" -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 MIT ZLIB" -SLOT="0" -IUSE="" -SVCNAME=registry - -pkg_setup() { - enewgroup ${SVCNAME} - enewuser ${SVCNAME} -1 -1 /dev/null ${SVCNAME} -} - -src_prepare() { - default - pushd src/${EGO_PN} || die - eapply "${FILESDIR}"/${PN}-2.7.0-notification-metrics.patch - sed -i -e "s/git describe.*/echo ${PV})/"\ - -e "s/git rev-parse.*/echo ${EGIT_COMMIT})/"\ - -e "s/-s -w/-w/" Makefile || die - popd || die -} - -src_compile() { - export -n GOCACHE XDG_CACHE_HOME #681072 - GOPATH="${S}" GO_BUILD_FLAGS="-v" emake -C src/${EGO_PN} binaries -} - -src_install() { - exeinto /usr/libexec/${PN} - doexe src/${EGO_PN}/bin/* - insinto /etc/docker/registry - newins src/${EGO_PN}/cmd/registry/config-example.yml config.yml.example - newinitd "${FILESDIR}/${SVCNAME}.initd" "${SVCNAME}" - newconfd "${FILESDIR}/${SVCNAME}.confd" "${SVCNAME}" - systemd_dounit "${FILESDIR}/${SVCNAME}.service" - keepdir /var/{lib,log}/${SVCNAME} - fowners ${SVCNAME}:${SVCNAME} /var/{lib,log}/${SVCNAME} - insinto /etc/logrotate.d - newins "${FILESDIR}/${SVCNAME}.logrotated" "${SVCNAME}" -} diff --git a/app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch b/app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch deleted file mode 100644 index 8adf364ce164..000000000000 --- a/app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch +++ /dev/null @@ -1,398 +0,0 @@ -From 7b2292ee20c5d49053cc5262dfbc99ce121b9b74 Mon Sep 17 00:00:00 2001 -From: tifayuki <tifayuki@gmail.com> -Date: Tue, 13 Feb 2018 13:30:56 -0800 -Subject: [PATCH 1/4] Add notification metrics - -It adds notification related prometheus metrics, including: - - total count for events/success/failure/error - - total count for notification per each status code - - gauge of the pending notification queue - -Signed-off-by: tifayuki <tifayuki@gmail.com> ---- - metrics/prometheus.go | 3 +++ - notifications/metrics.go | 28 ++++++++++++++++++++++++++++ - 2 files changed, 31 insertions(+) - -diff --git a/metrics/prometheus.go b/metrics/prometheus.go -index b5a532144..91b32b23d 100644 ---- a/metrics/prometheus.go -+++ b/metrics/prometheus.go -@@ -10,4 +10,7 @@ const ( - var ( - // StorageNamespace is the prometheus namespace of blob/cache related operations - StorageNamespace = metrics.NewNamespace(NamespacePrefix, "storage", nil) -+ -+ // NotificationsNamespace is the prometheus namespace of notification related metrics -+ NotificationsNamespace = metrics.NewNamespace(NamespacePrefix, "notifications", nil) - ) -diff --git a/notifications/metrics.go b/notifications/metrics.go -index a20af1687..69960e9cb 100644 ---- a/notifications/metrics.go -+++ b/notifications/metrics.go -@@ -5,6 +5,18 @@ import ( - "fmt" - "net/http" - "sync" -+ -+ prometheus "github.com/docker/distribution/metrics" -+ "github.com/docker/go-metrics" -+) -+ -+var ( -+ // eventsCounter counts total events of incoming, success, failure, and errors -+ eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type") -+ // pendingGauge measures the pending queue size -+ pendingGauge = prometheus.NotificationsNamespace.NewGauge("pending", "The gauge of pending events in queue", metrics.Total) -+ // statusCounter counts the total notification call per each status code -+ statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code") - ) - - // EndpointMetrics track various actions taken by the endpoint, typically by -@@ -61,6 +73,9 @@ func (emsl *endpointMetricsHTTPStatusListener) success(status int, events ...Eve - defer emsl.safeMetrics.Unlock() - emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events) - emsl.Successes += len(events) -+ -+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1) -+ eventsCounter.WithValues("Successes").Inc(1) - } - - func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Event) { -@@ -68,12 +83,17 @@ func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Eve - defer emsl.safeMetrics.Unlock() - emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events) - emsl.Failures += len(events) -+ -+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1) -+ eventsCounter.WithValues("Failures").Inc(1) - } - - func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) { - emsl.safeMetrics.Lock() - defer emsl.safeMetrics.Unlock() - emsl.Errors += len(events) -+ -+ eventsCounter.WithValues("Errors").Inc(1) - } - - // endpointMetricsEventQueueListener maintains the incoming events counter and -@@ -87,12 +107,17 @@ func (eqc *endpointMetricsEventQueueListener) ingress(events ...Event) { - defer eqc.Unlock() - eqc.Events += len(events) - eqc.Pending += len(events) -+ -+ eventsCounter.WithValues("Events").Inc() -+ pendingGauge.Inc(1) - } - - func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) { - eqc.Lock() - defer eqc.Unlock() - eqc.Pending -= len(events) -+ -+ pendingGauge.Dec(1) - } - - // endpoints is global registry of endpoints used to report metrics to expvar -@@ -149,4 +174,7 @@ func init() { - })) - - registry.(*expvar.Map).Set("notifications", ¬ifications) -+ -+ // register prometheus metrics -+ metrics.Register(prometheus.NotificationsNamespace) - } - -From 4497e40eda1e0024f055c09ab480b7816a1147b1 Mon Sep 17 00:00:00 2001 -From: Honglin Feng <tifayuki@gmail.com> -Date: Thu, 11 Oct 2018 21:39:02 +0800 -Subject: [PATCH 2/4] add label to the metrics - -Signed-off-by: Honglin Feng <tifayuki@gmail.com> ---- - notifications/endpoint.go | 2 +- - notifications/http_test.go | 2 +- - notifications/metrics.go | 26 ++++++++++++++------------ - notifications/sinks_test.go | 2 +- - 4 files changed, 17 insertions(+), 15 deletions(-) - -diff --git a/notifications/endpoint.go b/notifications/endpoint.go -index a8a52d0c9..854f1dd6c 100644 ---- a/notifications/endpoint.go -+++ b/notifications/endpoint.go -@@ -58,7 +58,7 @@ func NewEndpoint(name, url string, config EndpointConfig) *Endpoint { - endpoint.url = url - endpoint.EndpointConfig = config - endpoint.defaults() -- endpoint.metrics = newSafeMetrics() -+ endpoint.metrics = newSafeMetrics(name) - - // Configures the inmemory queue, retry, http pipeline. - endpoint.Sink = newHTTPSink( -diff --git a/notifications/http_test.go b/notifications/http_test.go -index de47f789e..b7845cf95 100644 ---- a/notifications/http_test.go -+++ b/notifications/http_test.go -@@ -63,7 +63,7 @@ func TestHTTPSink(t *testing.T) { - }) - server := httptest.NewTLSServer(serverHandler) - -- metrics := newSafeMetrics() -+ metrics := newSafeMetrics("") - sink := newHTTPSink(server.URL, 0, nil, nil, - &endpointMetricsHTTPStatusListener{safeMetrics: metrics}) - -diff --git a/notifications/metrics.go b/notifications/metrics.go -index 69960e9cb..4464edd8f 100644 ---- a/notifications/metrics.go -+++ b/notifications/metrics.go -@@ -12,11 +12,11 @@ import ( - - var ( - // eventsCounter counts total events of incoming, success, failure, and errors -- eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type") -+ eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type", "to") - // pendingGauge measures the pending queue size -- pendingGauge = prometheus.NotificationsNamespace.NewGauge("pending", "The gauge of pending events in queue", metrics.Total) -+ pendingGauge = prometheus.NotificationsNamespace.NewLabeledGauge("pending", "The gauge of pending events in queue", metrics.Total, "to") - // statusCounter counts the total notification call per each status code -- statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code") -+ statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code", "to") - ) - - // EndpointMetrics track various actions taken by the endpoint, typically by -@@ -34,14 +34,16 @@ type EndpointMetrics struct { - // safeMetrics guards the metrics implementation with a lock and provides a - // safe update function. - type safeMetrics struct { -+ EndpointName string - EndpointMetrics - sync.Mutex // protects statuses map - } - - // newSafeMetrics returns safeMetrics with map allocated. --func newSafeMetrics() *safeMetrics { -+func newSafeMetrics(name string) *safeMetrics { - var sm safeMetrics - sm.Statuses = make(map[string]int) -+ sm.EndpointName = name - return &sm - } - -@@ -74,8 +76,8 @@ func (emsl *endpointMetricsHTTPStatusListener) success(status int, events ...Eve - emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events) - emsl.Successes += len(events) - -- statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1) -- eventsCounter.WithValues("Successes").Inc(1) -+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status)), emsl.EndpointName).Inc(1) -+ eventsCounter.WithValues("Successes", emsl.EndpointName).Inc(1) - } - - func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Event) { -@@ -84,8 +86,8 @@ func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Eve - emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events) - emsl.Failures += len(events) - -- statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1) -- eventsCounter.WithValues("Failures").Inc(1) -+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status)), emsl.EndpointName).Inc(1) -+ eventsCounter.WithValues("Failures", emsl.EndpointName).Inc(1) - } - - func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) { -@@ -93,7 +95,7 @@ func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) { - defer emsl.safeMetrics.Unlock() - emsl.Errors += len(events) - -- eventsCounter.WithValues("Errors").Inc(1) -+ eventsCounter.WithValues("Errors", emsl.EndpointName).Inc(1) - } - - // endpointMetricsEventQueueListener maintains the incoming events counter and -@@ -108,8 +110,8 @@ func (eqc *endpointMetricsEventQueueListener) ingress(events ...Event) { - eqc.Events += len(events) - eqc.Pending += len(events) - -- eventsCounter.WithValues("Events").Inc() -- pendingGauge.Inc(1) -+ eventsCounter.WithValues("Events", eqc.EndpointName).Inc() -+ pendingGauge.WithValues(eqc.EndpointName).Inc(1) - } - - func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) { -@@ -117,7 +119,7 @@ func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) { - defer eqc.Unlock() - eqc.Pending -= len(events) - -- pendingGauge.Dec(1) -+ pendingGauge.WithValues(eqc.EndpointName).Dec(1) - } - - // endpoints is global registry of endpoints used to report metrics to expvar -diff --git a/notifications/sinks_test.go b/notifications/sinks_test.go -index 06f88b2c9..4a69486b5 100644 ---- a/notifications/sinks_test.go -+++ b/notifications/sinks_test.go -@@ -66,7 +66,7 @@ func TestBroadcaster(t *testing.T) { - func TestEventQueue(t *testing.T) { - const nevents = 1000 - var ts testSink -- metrics := newSafeMetrics() -+ metrics := newSafeMetrics("") - eq := newEventQueue( - // delayed sync simulates destination slower than channel comms - &delayedSink{ - -From 73e4232b5171c2988b0daeea517aa07386e7945d Mon Sep 17 00:00:00 2001 -From: Honglin Feng <tifayuki@gmail.com> -Date: Mon, 15 Oct 2018 19:50:38 +0800 -Subject: [PATCH 3/4] run go fmt - -Signed-off-by: Honglin Feng <tifayuki@gmail.com> ---- - registry/storage/driver/s3-aws/s3.go | 10 +++++----- - registry/storage/linkedblobstore.go | 16 ++++++++-------- - registry/storage/linkedblobstore_test.go | 4 ++-- - 3 files changed, 15 insertions(+), 15 deletions(-) - -diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go -index 800435d01..9cd87dbab 100644 ---- a/registry/storage/driver/s3-aws/s3.go -+++ b/registry/storage/driver/s3-aws/s3.go -@@ -476,11 +476,11 @@ func New(params DriverParameters) (*Driver, error) { - // } - - d := &driver{ -- S3: s3obj, -- Bucket: params.Bucket, -- ChunkSize: params.ChunkSize, -- Encrypt: params.Encrypt, -- KeyID: params.KeyID, -+ S3: s3obj, -+ Bucket: params.Bucket, -+ ChunkSize: params.ChunkSize, -+ Encrypt: params.Encrypt, -+ KeyID: params.KeyID, - MultipartCopyChunkSize: params.MultipartCopyChunkSize, - MultipartCopyMaxConcurrency: params.MultipartCopyMaxConcurrency, - MultipartCopyThresholdSize: params.MultipartCopyThresholdSize, -diff --git a/registry/storage/linkedblobstore.go b/registry/storage/linkedblobstore.go -index de591c8a5..3fb1da26f 100644 ---- a/registry/storage/linkedblobstore.go -+++ b/registry/storage/linkedblobstore.go -@@ -312,14 +312,14 @@ func (lbs *linkedBlobStore) newBlobUpload(ctx context.Context, uuid, path string - } - - bw := &blobWriter{ -- ctx: ctx, -- blobStore: lbs, -- id: uuid, -- startedAt: startedAt, -- digester: digest.Canonical.Digester(), -- fileWriter: fw, -- driver: lbs.driver, -- path: path, -+ ctx: ctx, -+ blobStore: lbs, -+ id: uuid, -+ startedAt: startedAt, -+ digester: digest.Canonical.Digester(), -+ fileWriter: fw, -+ driver: lbs.driver, -+ path: path, - resumableDigestEnabled: lbs.resumableDigestEnabled, - } - -diff --git a/registry/storage/linkedblobstore_test.go b/registry/storage/linkedblobstore_test.go -index e0ffd2796..85376f715 100644 ---- a/registry/storage/linkedblobstore_test.go -+++ b/registry/storage/linkedblobstore_test.go -@@ -162,8 +162,8 @@ type mockBlobDescriptorServiceFactory struct { - func (f *mockBlobDescriptorServiceFactory) BlobAccessController(svc distribution.BlobDescriptorService) distribution.BlobDescriptorService { - return &mockBlobDescriptorService{ - BlobDescriptorService: svc, -- t: f.t, -- stats: f.stats, -+ t: f.t, -+ stats: f.stats, - } - } - - -From 5c66b577b027e3b314680f245be4213a002fcee0 Mon Sep 17 00:00:00 2001 -From: Honglin Feng <tifayuki@gmail.com> -Date: Mon, 15 Oct 2018 20:18:36 +0800 -Subject: [PATCH 4/4] run go fmt and goimports - -Signed-off-by: Honglin Feng <tifayuki@gmail.com> ---- - registry/storage/driver/s3-aws/s3.go | 10 +++++----- - registry/storage/linkedblobstore.go | 16 ++++++++-------- - registry/storage/linkedblobstore_test.go | 4 ++-- - 3 files changed, 15 insertions(+), 15 deletions(-) - -diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go -index 9cd87dbab..800435d01 100644 ---- a/registry/storage/driver/s3-aws/s3.go -+++ b/registry/storage/driver/s3-aws/s3.go -@@ -476,11 +476,11 @@ func New(params DriverParameters) (*Driver, error) { - // } - - d := &driver{ -- S3: s3obj, -- Bucket: params.Bucket, -- ChunkSize: params.ChunkSize, -- Encrypt: params.Encrypt, -- KeyID: params.KeyID, -+ S3: s3obj, -+ Bucket: params.Bucket, -+ ChunkSize: params.ChunkSize, -+ Encrypt: params.Encrypt, -+ KeyID: params.KeyID, - MultipartCopyChunkSize: params.MultipartCopyChunkSize, - MultipartCopyMaxConcurrency: params.MultipartCopyMaxConcurrency, - MultipartCopyThresholdSize: params.MultipartCopyThresholdSize, -diff --git a/registry/storage/linkedblobstore.go b/registry/storage/linkedblobstore.go -index 3fb1da26f..de591c8a5 100644 ---- a/registry/storage/linkedblobstore.go -+++ b/registry/storage/linkedblobstore.go -@@ -312,14 +312,14 @@ func (lbs *linkedBlobStore) newBlobUpload(ctx context.Context, uuid, path string - } - - bw := &blobWriter{ -- ctx: ctx, -- blobStore: lbs, -- id: uuid, -- startedAt: startedAt, -- digester: digest.Canonical.Digester(), -- fileWriter: fw, -- driver: lbs.driver, -- path: path, -+ ctx: ctx, -+ blobStore: lbs, -+ id: uuid, -+ startedAt: startedAt, -+ digester: digest.Canonical.Digester(), -+ fileWriter: fw, -+ driver: lbs.driver, -+ path: path, - resumableDigestEnabled: lbs.resumableDigestEnabled, - } - -diff --git a/registry/storage/linkedblobstore_test.go b/registry/storage/linkedblobstore_test.go -index 85376f715..e0ffd2796 100644 ---- a/registry/storage/linkedblobstore_test.go -+++ b/registry/storage/linkedblobstore_test.go -@@ -162,8 +162,8 @@ type mockBlobDescriptorServiceFactory struct { - func (f *mockBlobDescriptorServiceFactory) BlobAccessController(svc distribution.BlobDescriptorService) distribution.BlobDescriptorService { - return &mockBlobDescriptorService{ - BlobDescriptorService: svc, -- t: f.t, -- stats: f.stats, -+ t: f.t, -+ stats: f.stats, - } - } - diff --git a/app-emulation/docker-registry/files/registry.confd b/app-emulation/docker-registry/files/registry.confd deleted file mode 100644 index bfa97f127ef1..000000000000 --- a/app-emulation/docker-registry/files/registry.confd +++ /dev/null @@ -1,2 +0,0 @@ -# arguments for docker-registry -command_args="serve /etc/docker/registry/config.yml" diff --git a/app-emulation/docker-registry/files/registry.initd b/app-emulation/docker-registry/files/registry.initd deleted file mode 100644 index b81303c624d1..000000000000 --- a/app-emulation/docker-registry/files/registry.initd +++ /dev/null @@ -1,19 +0,0 @@ -#!/sbin/openrc-run -# Copyright 2016-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="Docker Registry 2.0" -pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"} -user=${user:-${RC_SVCNAME}} -group=${group:-${RC_SVCNAME}} - -command="/usr/libexec/docker-${RC_SVCNAME}/${RC_SVCNAME}" -command_args="${command_args:-serve /etc/docker/registry/config.yml}" -command_background="true" -start_stop_daemon_args="--user ${user} --group ${group} \ - --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \ - --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log" - -depend() { - need net -} diff --git a/app-emulation/docker-registry/files/registry.logrotated b/app-emulation/docker-registry/files/registry.logrotated deleted file mode 100644 index 3cb63f949a08..000000000000 --- a/app-emulation/docker-registry/files/registry.logrotated +++ /dev/null @@ -1,7 +0,0 @@ -/var/log/registry/registry.log { - missingok - size 5M - rotate 3 - compress - copytruncate -} diff --git a/app-emulation/docker-registry/files/registry.service b/app-emulation/docker-registry/files/registry.service deleted file mode 100644 index 14ff5f9c0b77..000000000000 --- a/app-emulation/docker-registry/files/registry.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Docker Registry 2.0 -Requires=network-online.target -After=network-online.target - -[Service] -User=registry -PrivateDevices=Yes -Environment="DOCKER_REGISTRY_ARGS=serve /etc/docker/registry/config.yml" -ExecStart=/usr/libexec/docker-registry/registry $DOCKER_REGISTRY_ARGS - -[Install] -WantedBy=multi-user.target diff --git a/app-emulation/docker-registry/metadata.xml b/app-emulation/docker-registry/metadata.xml deleted file mode 100644 index 4f66ba32a890..000000000000 --- a/app-emulation/docker-registry/metadata.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - </maintainer> - <upstream> - <remote-id type="github">docker/distribution</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/docker-swarm/Manifest b/app-emulation/docker-swarm/Manifest deleted file mode 100644 index e67d6adbf65b..000000000000 --- a/app-emulation/docker-swarm/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST docker-swarm-1.2.9.tar.gz 1532493 BLAKE2B 243a3cb6d2e9f719d81947429c6616e93cf1b08187685922ad5daf732e61db12bd626fa26f30174af7e779c8ba45ecce7d2cfb33835ef985bdd57657e30e2228 SHA512 cc0e0e27d0ed4845abd99d1554630cc8e2ab0645d40a76358a83b2ea6d1bc5287dbf5d1aefdd2eb4302aeef3894725e75cae3f5da2353b045492a4357631daa2 diff --git a/app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild b/app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild deleted file mode 100644 index 5ca267108edf..000000000000 --- a/app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit go-module - -KEYWORDS="~amd64" -EGO_PN=github.com/docker/swarm -EGIT_COMMIT="527a849cc6b8297690f478905083fc77951da2a7" -MY_PN=classicswarm -SRC_URI="https://github.com/docker/classicswarm/archive/v${PV}.tar.gz -> ${P}.tar.gz" -DESCRIPTION="Swarm Classic: a container clustering system" -HOMEPAGE="https://docs.docker.com/swarm" -LICENSE="Apache-2.0 CC-BY-SA-4.0 BSD BSD-2 ISC MIT MPL-2.0 WTFPL-2" -SLOT="0" -IUSE="" -RESTRICT="test" - -S="${WORKDIR}/${MY_PN}-${PV}" - -src_prepare() { - # It would require internet access to run `go mod vendor`, so - # generate approximate go.mod and vendor/modules.txt from the - # content of vendor.conf. Use a dummy vendor_version that is - # good enough for go to recognize as a valid version. - rm -f go.mod vendor/modules.txt || die - local x vendor_version=v1.0.0 - printf -- 'module %s\n' "${EGO_PN}" >> go.mod || die - printf -- 'go 1.14\n' >> go.mod || die - printf -- 'require (\n' >> go.mod || die - while read -r x; do - printf -- '\t%s %s\n' "${x}" "${vendor_version}" >> go.mod || die - printf -- '# %s %s\n' "${x}" "${vendor_version}" >> vendor/modules.txt || die - printf -- '## explicit\n' >> vendor/modules.txt || die - printf -- '%s\n' "${x}" >> vendor/modules.txt || die - done < <(grep -Eo "^[^#[:space:]]+" vendor.conf) - printf -- ')\n' >> go.mod || die - default -} - -src_compile() { - GOBIN="${S}/bin" \ - go install -v -work -x -mod=vendor -x \ - -ldflags "-w -X github.com/docker/swarm/version.GITCOMMIT=${EGIT_COMMIT} \ - -X github.com/docker/swarm/version.BUILDTIME=$(date -u +%FT%T%z)" \ - ./... || die -} - -src_install() { - dobin bin/swarm - dosym swarm /usr/bin/docker-swarm - dodoc CHANGELOG.md CONTRIBUTING.md logo.png README.md -} diff --git a/app-emulation/docker-swarm/metadata.xml b/app-emulation/docker-swarm/metadata.xml deleted file mode 100644 index 127ef4728e20..000000000000 --- a/app-emulation/docker-swarm/metadata.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - </maintainer> - <upstream> - <remote-id type="github">docker/swarm</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/docker/Manifest b/app-emulation/docker/Manifest deleted file mode 100644 index 7ae436f7bd75..000000000000 --- a/app-emulation/docker/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST docker-19.03.12.tar.gz 18218138 BLAKE2B a018a1677d36c01a9eb8d9c597e6b264304a742929bf7f8bb3c12b03c75748bc6f3313f8e7c293323bc3ae013b5555044f7cf1ad7a8750a5794418bee05e405a SHA512 6ede7e0c5494882d88dae5b4ae45049937dfc65b9d655988ae4c0d6f9759bcac8799251f37a3e4ce49cdfbb04e31f9a6a05d131fb5005b382d2306ca0d5fcfa3 -DIST docker-19.03.13.tar.gz 18242693 BLAKE2B c19afed62694274298b42fc9af3b36c4cc6429b40f7e5447a996b87636a0d2e916476875652e20abd7aeab4e5e0e1cf887a04dcade1de03ded549fc36d911ac4 SHA512 5f34a14ef0b36a309d4a08926ac482ca82d24cdd873aa359c5ba7c65473cbb2e987fe615c38c1bc1c50135284da78a7eb98a8a0106d7d073aeda0cd8f1c31873 diff --git a/app-emulation/docker/docker-19.03.12.ebuild b/app-emulation/docker/docker-19.03.12.ebuild deleted file mode 100644 index 319ca92ef6cf..000000000000 --- a/app-emulation/docker/docker-19.03.12.ebuild +++ /dev/null @@ -1,320 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGO_PN="github.com/docker/docker-ce" - -if [[ ${PV} = *9999* ]]; then - # Docker cannot be fetched via "go get", thanks to autogenerated code - EGIT_REPO_URI="https://${EGO_PN}.git" - EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${EGO_PN}" - inherit git-r3 -else - DOCKER_GITCOMMIT=48a66213fe - MY_PV=${PV/_/-} - SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" - [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!" - inherit golang-vcs-snapshot -fi -inherit bash-completion-r1 golang-base linux-info systemd udev - -DESCRIPTION="The core functions you need to create Docker images and run Docker containers" -HOMEPAGE="https://www.docker.com/" -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor aufs btrfs +container-init device-mapper hardened +overlay seccomp" - -# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies -COMMON_DEPEND=" - acct-group/docker - >=dev-db/sqlite-3.7.9:3 - device-mapper? ( - >=sys-fs/lvm2-2.02.89[thin] - ) - seccomp? ( >=sys-libs/libseccomp-2.2.1 ) - apparmor? ( sys-libs/libapparmor ) -" - -DEPEND=" - ${COMMON_DEPEND} - - >=dev-lang/go-1.13.12 - dev-go/go-md2man - - btrfs? ( - >=sys-fs/btrfs-progs-3.16.1 - ) -" - -# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies -# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#optional-dependencies -RDEPEND=" - ${COMMON_DEPEND} - !sys-apps/systemd[-cgroup-hybrid(+)] - >=net-firewall/iptables-1.4 - sys-process/procps - >=dev-vcs/git-1.7 - >=app-arch/xz-utils-4.9 - dev-libs/libltdl - ~app-emulation/containerd-1.2.13 - ~app-emulation/runc-1.0.0_rc10[apparmor?,seccomp?] - ~app-emulation/docker-proxy-0.8.0_p20191011 - container-init? ( >=sys-process/tini-0.18.0[static] ) -" - -RESTRICT="installsources strip" - -S="${WORKDIR}/${P}/src/${EGO_PN}" - -# see "contrib/check-config.sh" from upstream's sources -CONFIG_CHECK=" - ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS - ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG - ~KEYS - ~VETH ~BRIDGE ~BRIDGE_NETFILTER - ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE - ~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK ~NETFILTER_XT_MATCH_IPVS - ~IP_NF_NAT ~NF_NAT - ~POSIX_MQUEUE - - ~USER_NS - ~SECCOMP - ~CGROUP_PIDS - ~MEMCG_SWAP - - ~BLK_CGROUP ~BLK_DEV_THROTTLING - ~CGROUP_PERF - ~CGROUP_HUGETLB - ~NET_CLS_CGROUP - ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED - ~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR - - ~VXLAN - ~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH ~XFRM_ALGO ~XFRM_USER - ~IPVLAN - ~MACVLAN ~DUMMY -" - -ERROR_KEYS="CONFIG_KEYS: is mandatory" -ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers" -ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering" - -ERROR_BLK_CGROUP="CONFIG_BLK_CGROUP: is optional for container statistics gathering" -ERROR_IOSCHED_CFQ="CONFIG_IOSCHED_CFQ: is optional for container statistics gathering" -ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering" -ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering" -ERROR_XFRM_ALGO="CONFIG_XFRM_ALGO: is optional for secure networks" -ERROR_XFRM_USER="CONFIG_XFRM_USER: is optional for secure networks" - -pkg_setup() { - if kernel_is lt 3 10; then - ewarn "" - ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported." - ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies" - fi - - if kernel_is le 3 18; then - CONFIG_CHECK+=" - ~RESOURCE_COUNTERS - " - fi - - if kernel_is le 3 13; then - CONFIG_CHECK+=" - ~NETPRIO_CGROUP - " - else - CONFIG_CHECK+=" - ~CGROUP_NET_PRIO - " - fi - - if kernel_is lt 4 5; then - CONFIG_CHECK+=" - ~MEMCG_KMEM - " - ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional" - fi - - if kernel_is lt 4 7; then - CONFIG_CHECK+=" - ~DEVPTS_MULTIPLE_INSTANCES - " - fi - - if kernel_is lt 5 1; then - CONFIG_CHECK+=" - ~NF_NAT_IPV4 - ~IOSCHED_CFQ - ~CFQ_GROUP_IOSCHED - " - fi - - if kernel_is lt 5 2; then - CONFIG_CHECK+=" - ~NF_NAT_NEEDED - " - fi - - if kernel_is lt 5 8; then - CONFIG_CHECK+=" - ~MEMCG_SWAP_ENABLED - " - fi - - if use aufs; then - CONFIG_CHECK+=" - ~AUFS_FS - ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY - " - ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used instead of aufs4/aufs3" - fi - - if use btrfs; then - CONFIG_CHECK+=" - ~BTRFS_FS - ~BTRFS_FS_POSIX_ACL - " - fi - - if use device-mapper; then - CONFIG_CHECK+=" - ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY - " - fi - - if use overlay; then - CONFIG_CHECK+=" - ~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL - " - fi - - linux-info_pkg_setup -} - -src_compile() { - export GOPATH="${WORKDIR}/${P}" - - # setup CFLAGS and LDFLAGS for separate build target - # see https://github.com/tianon/docker-overlay/pull/10 - export CGO_CFLAGS="-I${ROOT}/usr/include" - export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)" - - # if we're building from a tarball, we need the GITCOMMIT value - [[ ${DOCKER_GITCOMMIT} ]] && export DOCKER_GITCOMMIT - - # fake golang layout - ln -s docker-ce/components/engine ../docker || die - ln -s docker-ce/components/cli ../cli || die - - # let's set up some optional features :) - export DOCKER_BUILDTAGS='' - for gd in aufs btrfs device-mapper overlay; do - if ! use $gd; then - DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}" - fi - done - - for tag in apparmor seccomp; do - if use $tag; then - DOCKER_BUILDTAGS+=" $tag" - fi - done - - pushd components/engine || die - - if use hardened; then - sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die - grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed' - sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \ - -i hack/make/dynbinary-daemon || die - grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed' - fi - - # build daemon - VERSION="$(cat ../../VERSION)" \ - ./hack/make.sh dynbinary || die 'dynbinary failed' - - popd || die # components/engine - - pushd components/cli || die - - # build cli - emake \ - LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \ - VERSION="$(cat ../../VERSION)" \ - GITCOMMIT="${DOCKER_GITCOMMIT}" \ - DISABLE_WARN_OUTSIDE_CONTAINER=1 \ - dynbinary - - # build man pages - go build -o gen-manpages github.com/docker/cli/man || die - ./gen-manpages --root . --target ./man/man1 || die - ./man/md2man-all.sh -q || die - rm gen-manpages || die - # see "components/cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man) - - popd || die # components/cli -} - -src_install() { - dosym containerd /usr/bin/docker-containerd - dosym containerd-shim /usr/bin/docker-containerd-shim - dosym runc /usr/bin/docker-runc - use container-init && dosym tini /usr/bin/docker-init - - pushd components/engine || die - newbin bundles/dynbinary-daemon/dockerd-${PV} dockerd - - newinitd contrib/init/openrc/docker.initd docker - newconfd contrib/init/openrc/docker.confd docker - - systemd_dounit contrib/init/systemd/docker.{service,socket} - - udev_dorules contrib/udev/*.rules - - dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md - dodoc -r docs/* - - insinto /usr/share/vim/vimfiles - doins -r contrib/syntax/vim/ftdetect - doins -r contrib/syntax/vim/syntax - - # note: intentionally not using "doins" so that we preserve +x bits - dodir /usr/share/${PN}/contrib - cp -R contrib/* "${ED}/usr/share/${PN}/contrib" - popd || die # components/engine - - pushd components/cli || die - - newbin build/docker-* docker - - doman man/man*/* - - dobashcomp contrib/completion/bash/* - insinto /usr/share/fish/vendor_completions.d/ - doins contrib/completion/fish/docker.fish - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/_* - popd || die # components/cli -} - -pkg_postinst() { - udev_reload - - elog - elog "To use Docker, the Docker daemon must be running as root. To automatically" - elog "start the Docker daemon at boot, add Docker to the default runlevel:" - elog " rc-update add docker default" - elog "Similarly for systemd:" - elog " systemctl enable docker.service" - elog - elog "To use Docker as a non-root user, add yourself to the 'docker' group:" - elog " usermod -aG docker youruser" - elog - - elog " Devicemapper storage driver has been deprecated" - elog " It will be removed in a future release" -} diff --git a/app-emulation/docker/docker-19.03.13-r2.ebuild b/app-emulation/docker/docker-19.03.13-r2.ebuild deleted file mode 100644 index 551e97bccf7b..000000000000 --- a/app-emulation/docker/docker-19.03.13-r2.ebuild +++ /dev/null @@ -1,316 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGO_PN="github.com/docker/docker-ce" - -if [[ ${PV} = *9999* ]]; then - # Docker cannot be fetched via "go get", thanks to autogenerated code - EGIT_REPO_URI="https://${EGO_PN}.git" - EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${EGO_PN}" - inherit git-r3 -else - DOCKER_GITCOMMIT=4484c46d9d - MY_PV=${PV/_/-} - SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm arm64 ppc64 ~x86" - [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!" - inherit golang-vcs-snapshot -fi -inherit bash-completion-r1 golang-base linux-info systemd udev - -DESCRIPTION="The core functions you need to create Docker images and run Docker containers" -HOMEPAGE="https://www.docker.com/" -LICENSE="Apache-2.0" -SLOT="0" -IUSE="apparmor aufs btrfs +container-init device-mapper hardened overlay seccomp selinux" - -# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies -BDEPEND=" - >=dev-lang/go-1.13.12 - dev-go/go-md2man - virtual/pkgconfig -" - -DEPEND=" - acct-group/docker - >=dev-db/sqlite-3.7.9:3 - apparmor? ( sys-libs/libapparmor ) - btrfs? ( >=sys-fs/btrfs-progs-3.16.1 ) - device-mapper? ( >=sys-fs/lvm2-2.02.89[thin] ) - seccomp? ( >=sys-libs/libseccomp-2.2.1 ) -" - -# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies -# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#optional-dependencies -# https://github.com/docker/docker-ce/tree/master/components/engine/hack/dockerfile/install -# make sure containerd, docker-proxy, runc and tini pinned to exact versions from ^, -# for appropriate brachch/version of course -RDEPEND=" - ${DEPEND} - !sys-apps/systemd[-cgroup-hybrid(+)] - >=net-firewall/iptables-1.4 - sys-process/procps - >=dev-vcs/git-1.7 - >=app-arch/xz-utils-4.9 - dev-libs/libltdl - ~app-emulation/containerd-1.3.7[apparmor?,btrfs?,device-mapper?,seccomp?,selinux?] - ~app-emulation/runc-1.0.0_rc10[apparmor?,seccomp?,selinux(-)?] - ~app-emulation/docker-proxy-0.8.0_p20200617 - container-init? ( >=sys-process/tini-0.18.0[static] ) -" - -RESTRICT="installsources strip" - -S="${WORKDIR}/${P}/src/${EGO_PN}" - -# see "contrib/check-config.sh" from upstream's sources -CONFIG_CHECK=" - ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS - ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG - ~KEYS - ~VETH ~BRIDGE ~BRIDGE_NETFILTER - ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE - ~NETFILTER_NETLINK ~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK ~NETFILTER_XT_MATCH_IPVS - ~IP_NF_NAT ~NF_NAT - ~POSIX_MQUEUE - - ~USER_NS - ~SECCOMP - ~CGROUP_PIDS - ~MEMCG_SWAP - - ~BLK_CGROUP ~BLK_DEV_THROTTLING - ~CGROUP_PERF - ~CGROUP_HUGETLB - ~NET_CLS_CGROUP - ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED - ~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR - - ~VXLAN - ~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH ~XFRM_ALGO ~XFRM_USER - ~IPVLAN - ~MACVLAN ~DUMMY - - ~OVERLAY_FS ~!OVERLAY_FS_REDIRECT_DIR - ~EXT4_FS_SECURITY - ~EXT4_FS_POSIX_ACL -" - -ERROR_KEYS="CONFIG_KEYS: is mandatory" -ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers" -ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering" - -ERROR_BLK_CGROUP="CONFIG_BLK_CGROUP: is optional for container statistics gathering" -ERROR_IOSCHED_CFQ="CONFIG_IOSCHED_CFQ: is optional for container statistics gathering" -ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering" -ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering" -ERROR_XFRM_ALGO="CONFIG_XFRM_ALGO: is optional for secure networks" -ERROR_XFRM_USER="CONFIG_XFRM_USER: is optional for secure networks" - -pkg_setup() { - if kernel_is lt 3 10; then - ewarn "" - ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported." - ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies" - fi - - if kernel_is le 3 18; then - CONFIG_CHECK+=" - ~RESOURCE_COUNTERS - " - fi - - if kernel_is le 3 13; then - CONFIG_CHECK+=" - ~NETPRIO_CGROUP - " - else - CONFIG_CHECK+=" - ~CGROUP_NET_PRIO - " - fi - - if kernel_is lt 4 5; then - CONFIG_CHECK+=" - ~MEMCG_KMEM - " - ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional" - fi - - if kernel_is lt 4 7; then - CONFIG_CHECK+=" - ~DEVPTS_MULTIPLE_INSTANCES - " - fi - - if kernel_is lt 5 1; then - CONFIG_CHECK+=" - ~NF_NAT_IPV4 - ~IOSCHED_CFQ - ~CFQ_GROUP_IOSCHED - " - fi - - if kernel_is lt 5 2; then - CONFIG_CHECK+=" - ~NF_NAT_NEEDED - " - fi - - if kernel_is lt 5 8; then - CONFIG_CHECK+=" - ~MEMCG_SWAP_ENABLED - " - fi - - if use aufs; then - CONFIG_CHECK+=" - ~AUFS_FS - ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY - " - ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used instead of aufs4/aufs3" - fi - - if use btrfs; then - CONFIG_CHECK+=" - ~BTRFS_FS - ~BTRFS_FS_POSIX_ACL - " - fi - - if use device-mapper; then - CONFIG_CHECK+=" - ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY - " - fi - - linux-info_pkg_setup -} - -src_compile() { - export GOPATH="${WORKDIR}/${P}" - - # setup CFLAGS and LDFLAGS for separate build target - # see https://github.com/tianon/docker-overlay/pull/10 - export CGO_CFLAGS="-I${ROOT}/usr/include" - export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)" - - # if we're building from a tarball, we need the GITCOMMIT value - [[ ${DOCKER_GITCOMMIT} ]] && export DOCKER_GITCOMMIT - - # fake golang layout - ln -s docker-ce/components/engine ../docker || die - ln -s docker-ce/components/cli ../cli || die - - # let's set up some optional features :) - export DOCKER_BUILDTAGS='' - for gd in aufs btrfs device-mapper overlay; do - if ! use $gd; then - DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}" - fi - done - - for tag in apparmor seccomp selinux; do - if use $tag; then - DOCKER_BUILDTAGS+=" $tag" - fi - done - - pushd components/engine || die - - if use hardened; then - sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die - grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed' - sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \ - -i hack/make/dynbinary-daemon || die - grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed' - fi - - # build daemon - VERSION="$(cat ../../VERSION)" \ - ./hack/make.sh dynbinary || die 'dynbinary failed' - - popd || die # components/engine - - pushd components/cli || die - - # build cli - DISABLE_WARN_OUTSIDE_CONTAINER=1 emake \ - LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \ - VERSION="$(cat ../../VERSION)" \ - GITCOMMIT="${DOCKER_GITCOMMIT}" \ - dynbinary - - # build man pages - go build -o gen-manpages github.com/docker/cli/man || die - ./gen-manpages --root . --target ./man/man1 || die - ./man/md2man-all.sh -q || die - rm gen-manpages || die - # see "components/cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man) - - popd || die # components/cli -} - -src_install() { - dosym containerd /usr/bin/docker-containerd - dosym containerd-shim /usr/bin/docker-containerd-shim - dosym runc /usr/bin/docker-runc - use container-init && dosym tini /usr/bin/docker-init - - pushd components/engine || die - newbin bundles/dynbinary-daemon/dockerd-${PV} dockerd - - newinitd contrib/init/openrc/docker.initd docker - newconfd contrib/init/openrc/docker.confd docker - - systemd_dounit contrib/init/systemd/docker.{service,socket} - - udev_dorules contrib/udev/*.rules - - dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md - dodoc -r docs/* - - insinto /usr/share/vim/vimfiles - doins -r contrib/syntax/vim/ftdetect - doins -r contrib/syntax/vim/syntax - - # note: intentionally not using "doins" so that we preserve +x bits - dodir /usr/share/${PN}/contrib - cp -R contrib/* "${ED}/usr/share/${PN}/contrib" - popd || die # components/engine - - pushd components/cli || die - - newbin build/docker-* docker - - doman man/man*/* - - sed -i 's@dockerd\?\.exe@@g' contrib/completion/bash/docker || die - dobashcomp contrib/completion/bash/* - bashcomp_alias docker dockerd - insinto /usr/share/fish/vendor_completions.d/ - doins contrib/completion/fish/docker.fish - insinto /usr/share/zsh/site-functions - doins contrib/completion/zsh/_* - popd || die # components/cli -} - -pkg_postinst() { - udev_reload - - elog - elog "To use Docker, the Docker daemon must be running as root. To automatically" - elog "start the Docker daemon at boot, add Docker to the default runlevel:" - elog " rc-update add docker default" - elog "Similarly for systemd:" - elog " systemctl enable docker.service" - elog - elog "To use Docker as a non-root user, add yourself to the 'docker' group:" - elog " usermod -aG docker youruser" - elog - - elog " Devicemapper storage driver has been deprecated" - elog " It will be removed in a future release" -} diff --git a/app-emulation/docker/metadata.xml b/app-emulation/docker/metadata.xml deleted file mode 100644 index 6a9a6876f14f..000000000000 --- a/app-emulation/docker/metadata.xml +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription> - Docker is an open-source project to easily create lightweight, - portable, self-sufficient containers from any application. The same - container that a developer builds and tests on a laptop can run at - scale, in production, on VMs, bare metal, OpenStack clusters, public - clouds and more. - </longdescription> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <maintainer type="person"> - <email>gyakovlev@gentoo.org</email> - <name>Georgy Yakovlev</name> - </maintainer> - <use> - <flag name="aufs"> - Enables dependencies for the "aufs" graph driver, including - necessary kernel flags. - </flag> - <flag name="apparmor"> - Enable AppArmor support. - </flag> - <flag name="btrfs"> - Enables dependencies for the "btrfs" graph driver, including - necessary kernel flags. - </flag> - <flag name="container-init"> - Makes the a staticly-linked init system tini available inside a - container. - </flag> - <flag name="device-mapper"> - Enables dependencies for the "devicemapper" graph driver, including - necessary kernel flags. - </flag> - <flag name="overlay"> - Enables dependencies for the "overlay" graph driver, including - necessary kernel flags. - </flag> - </use> - <upstream> - <remote-id type="github">docker/docker</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild index 61a15bd1f53c..2dbe9f043651 100644 --- a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild +++ b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild @@ -1,9 +1,9 @@ -# Copyright 2002-2020 Gentoo Authors +# Copyright 2002-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" -inherit autotools eutils flag-o-matic pax-utils toolchain-funcs +inherit autotools flag-o-matic pax-utils toolchain-funcs P_FD="dosemu-freedos-1.0-bin" COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71" @@ -13,7 +13,7 @@ COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71" DESCRIPTION="DOS Emulator" HOMEPAGE="http://www.dosemu.org/" SRC_URI="mirror://sourceforge/dosemu/${P_FD}.tgz - https://dev.gentoo.org/~slyfox/distfiles/${P}.zip" + https://dev.gentoo.org/~sam/distfiles/${P}.zip" LICENSE="GPL-2" SLOT="0" @@ -56,6 +56,7 @@ PATCHES=( "${FILESDIR}"/${P}-fix-inline.patch "${FILESDIR}"/${P}-lto.patch "${FILESDIR}"/${P}-as.patch + "${FILESDIR}"/${P}-nm.patch ) pkg_pretend() { @@ -90,6 +91,8 @@ src_configure() { fi # sndfile support is unconditionally disabled in src/plugin/sndfile/snd_o_wav.c + # CPP has to be set explicitly to workaround autoconf-2.69 + # CPP detection (fixed in 2.70). bug #762748. econf $(use_with X x) \ $(use_with svga svgalib) \ $(use_enable debug) \ @@ -100,12 +103,13 @@ src_configure() { --with-fdtarball="${DISTDIR}"/${P_FD}.tgz \ --sysconfdir="${EPREFIX}"/etc/dosemu/ \ --with-docdir="${EPREFIX}"/usr/share/doc/${PF} \ - IA16_LDFLAGS_EXTRA=${nopie_flag} + IA16_LDFLAGS_EXTRA=${nopie_flag} \ + CPP="$(tc-getCPP)" } src_compile() { - # src/makefile.common is fritten manually, uses AR=ar - emake AR=$(tc-getAR) + # src/makefile.common is written manually, uses AR=ar + emake AR="$(tc-getAR)" } src_install() { diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch new file mode 100644 index 000000000000..73bfd9dfbc5b --- /dev/null +++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch @@ -0,0 +1,44 @@ +https://bugs.gentoo.org/762778 +--- a/Makefile.conf.in ++++ b/Makefile.conf.in +@@ -82,6 +82,8 @@ REQUIRED:=@REQUIRED@ + OS=@CONFIG_HOST@ + RANLIB:=@RANLIB@ + ++NM:=@NM@ ++ + @ASPI_SUPPORT@ + @USE_DL_PLUGINS@ + @USE_APBUILD@ +--- a/configure.ac ++++ b/configure.ac +@@ -39,6 +39,7 @@ AC_PROG_LN_S + AC_PROG_MAKE_SET + AC_PROG_RANLIB + AC_PROG_YACC ++AC_CHECK_TOOL(NM, nm) + dnl The bison problem + if test -z "`echo $YACC | grep bison`" ; then + AC_MSG_WARN( ) +--- a/src/arch/linux/Makefile.main ++++ b/src/arch/linux/Makefile.main +@@ -80,7 +80,7 @@ emu.o: emu.c + $(BINPATH)/bin/$(DOSBIN): emu.o $(LIBS_) + $(LD) $(ALL_LDFLAGS) $(DOSBIN_LDFLAGS) -o $@ emu.o \ + -Wl,--whole-archive $(LIBS_) -Wl,--no-whole-archive $(LIBS) +- @nm $(BINPATH)/bin/$(DOSBIN) | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | \ ++ @$(NM) $(BINPATH)/bin/$(DOSBIN) | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | \ + sort > $(BINPATH)/bin/dosemu.map + @ln -sf $(DOSBIN) $(BINPATH)/bin/dos + ifdef X_SUPPORT +--- a/src/plugin/term/Makefile ++++ b/src/plugin/term/Makefile +@@ -33,7 +33,7 @@ SLANGLIB:=`relaytool --partial-map partial.map --relay slang \ + libslang.so.1-UTF8 libslang-utf8.so.1 libslang.so.1 $(SLANGLIB)` + + partial.map: $(OBJS) +- nm $(OBJS) | LC_ALL=C grep SL | LC_ALL=C sort | LC_ALL=C uniq | \ ++ $(NM) $(OBJS) | LC_ALL=C grep SL | LC_ALL=C sort | LC_ALL=C uniq | \ + LC_ALL=C sed -e 's/ *U \(SL[^_]*_[a-z0-9].*\)/F \1/' \ + -e 's/ *U \(SL[^_]*_[A-Z0-9].*\)/V \1/' > $@ + echo 'F SLsmg_write_nwchars' >> $@ diff --git a/app-emulation/dosemu/metadata.xml b/app-emulation/dosemu/metadata.xml index 02fe93487b16..05cd00dae726 100644 --- a/app-emulation/dosemu/metadata.xml +++ b/app-emulation/dosemu/metadata.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>slyfox@gentoo.org</email> - <name>Sergei Trofimovich</name> - </maintainer> + <!-- maintainer-needed --> <use> <flag name="fluidsynth">use <pkg>media-sound/fluidsynth</pkg> for MIDI emulation</flag> </use> diff --git a/app-emulation/dxvk/Manifest b/app-emulation/dxvk/Manifest new file mode 100644 index 000000000000..cc8ab92a4080 --- /dev/null +++ b/app-emulation/dxvk/Manifest @@ -0,0 +1,13 @@ +DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d2e9ae86a9d6216b206c09f79eac696ee7dfe33d0bef55e727f51301c36eb89bfa3b3f429d7d5fafc1eebdcb4 SHA512 8995b231b3f3650beda04c01f30186d10a373075a4774b4ecbfb3bbeb4de99c57555f1db0611e5c61c6a411a7215e0faf228f9861f6b7adae6fc365e8056f7e3 +DIST dxvk-2.2.tar.gz 976671 BLAKE2B 537fb8d8adb69562f8e759c6f68e5ed38a62e6ebcf05d7ed1ea32fef518af30cd53d3ffec0e3dba175d449d80de980585f91bfcf8c3904a08385b17b55b9b63b SHA512 02d066093855c3ecae7123fcaeaa32212e03fcda9556c5b70ff23eadc07240199003b8e4673f5b492487fa6e240d70a36f5b4e60b0f389f422cf4474b7197e2f +DIST dxvk-2.3.1.tar.gz 1005669 BLAKE2B d78448fcde9d600f7206dfa606fca4069e7563bb8b181fbc172691d6c45586904ae529550926a03612ed3cc1f2a2dff00990638125c1d7ce6179d3cd3ba8df04 SHA512 085567ac263872eb93d776ce7cf982690603e240a977dbb51ad69344af387fd745536ca62819afd4a809732a6f2d22b36c3df9538decf37dec527973d41e392f +DIST dxvk-2.3.tar.gz 996736 BLAKE2B 55944472726e1d946b84cec386267bb65511c83a18647076b5d76c78d552ad2e4710a125c3e1a9f1c0c65b8de43a122c61aec5873ec0d566a20a1f4a9088f461 SHA512 d60421f6b93e09fb18d7f92f636bb228ec5d9ab6a90ca73e1e3c240c50ad35a90ac25fce1ac3f0a940c4da8e92e1c4267a2c602eaa78ff64db12507cc4d08173 +DIST dxvk-libdisplay-info-275e6459c7.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d +DIST dxvk-libdisplay-info-d39344f466.tar.bz2 81232 BLAKE2B af76ccd3c40bc953008bc30d222c72f90bdc77f47f767b6e7423efaa0ec89d746396a755160b5470e219a15a0aa392be6066aab12921b45a1adb35d88132cd97 SHA512 79b4bf325cefc39bc587233bd82ff64c927ca5f829b8172d213c3d47af725c8dc7fe33576a8e96a869075ee2a8f00d165f3aa9e6c472e862a47e5c800b2b3315 +DIST dxvk-spirv-headers-0bcc624926.tar.gz 437771 BLAKE2B 08815e36ad99b84777e38ad0c5616b6608a552f993e7f67433f2b8e20de81e9bce41420ac5998f5b67bca70a92ce70aed91b238990bd431c7b97070dfb0c5a60 SHA512 5995cf75d5605d41e9643bca81c195ef5aaa17d596e0282807f6fa8f8c494f7b63a41d611c535ae43dc3d609436aabef1e0d89626f37e6f20bad17b5e122e32c +DIST dxvk-vulkan-headers-85c2334e92.tar.gz 2046570 BLAKE2B 8e7f917d440793d85afae9227514fd97ae6cab6ece53abc54320808c10ddbc84a5421663f6b7549c98fbe8b8144a3c5b8bea73d39e6c99a289c5b0baadf3abd8 SHA512 eb7bcec11fb4e7302411c30501e72d567f481a14098ece9c54c023fe4644298f1c14268ef240cfe73ddb75f9817946513cc2218e34b706ea0be5e94ecbed0f91 +DIST dxvk-vulkan-headers-98f440ce68.tar.gz 1691979 BLAKE2B bf6fd288f16df7adcb5cebeb6e13713db1c26a0b833dead2fb522227861abc60b2d0cda8e3f46f8e89cccb629e01081ba27763989ad6fd336c60a475b198c1c8 SHA512 69238d37d0af0162e0fd68094cd2fa9baa320497d34a9de491dea086c23291d0815b51e89218b1f0ee2b3314cbc8ac1809d6edb15ca51fcb282fe1e2b39a1a77 +DIST libdisplay-info-275e6459c7ab1ddd4b125f28d0440716e4888078.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d +DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121 +DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959 +DIST vulkan-headers-46dc0f6e514f5730784bb2cac2a7c731636839e8.tar.gz 2255426 BLAKE2B efaf09df3274586c4df2bdd0b1dd9dd43b3b6125e0033ae87af999aea64709e9758bc7b675398b480ae063e28273732d768062d97f6cd61d63ccc798ca7410a5 SHA512 7ea993f7c8ff72dc6bedbfdaced29782ab372228e9111f747d931955e832a7920114f5d1953ecd34d220634a53449ca2ed4c0ed28d3165e258c4d9fafd0aa4be diff --git a/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild new file mode 100644 index 000000000000..701ccb453a83 --- /dev/null +++ b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild @@ -0,0 +1,152 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# note: version <2.0 should be kept for longer given it's the +# last version to support <wine-7.1 and <nvidia-drivers-510 + +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git" +else + SRC_URI="https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk/" + +LICENSE="ZLIB" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 debug +dxgi" +REQUIRED_USE=" + || ( d3d9 d3d10 d3d11 dxgi ) + d3d10? ( d3d11 ) + dxgi? ( d3d11 )" + +BDEPEND=" + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-gcc13.patch + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is set but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads" + fi + done + fi +} + +src_prepare() { + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2} + $(meson_use {,enable_}d3d9) + $(meson_use {,enable_}d3d10) + $(meson_use {,enable_}d3d11) + $(meson_use {,enable_}dxgi) + $(usev !debug --strip) # portage won't strip .dll, so allow it here + -Denable_tests=false # needs wine/vulkan and is intended for manual use + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_dxvk.sh + dodoc README.md dxvk.conf + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_preinst() { + [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY= +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elif [[ -v DXVK_HAD_OVERLAY ]]; then + # temporary warning until this version is more widely used + elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays." + elog "If you were using symbolic links in wine prefixes it may be necessary to" + elog "refresh them by re-running the command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load" + elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs." + fi +} diff --git a/app-emulation/dxvk/dxvk-2.2-r1.ebuild b/app-emulation/dxvk/dxvk-2.2-r1.ebuild new file mode 100644 index 000000000000..1d3d3ded718f --- /dev/null +++ b/app-emulation/dxvk/dxvk-2.2-r1.ebuild @@ -0,0 +1,186 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib python-any-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git" + EGIT_SUBMODULES=( + # picky about headers and is cross-compiled making -I/usr/include troublesome + include/{spirv,vulkan} + subprojects/libdisplay-info + ) +else + HASH_SPIRV=0bcc624926a25a2a273d07877fd25a6ff5ba1cfb + HASH_VULKAN=98f440ce6868c94f5ec6e198cc1adda4760e8849 + HASH_DISPLAYINFO=d39344f466caae0495ebac4d49b03a886d83ba3a + SRC_URI=" + https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz + https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/${PN}-libdisplay-info-${HASH_DISPLAYINFO::10}.tar.bz2" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk/" + +# setup_dxvk.sh is no longer provided, fetch old until a better solution +SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh" + +LICENSE="ZLIB Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 debug +dxgi" +REQUIRED_USE=" + || ( d3d9 d3d10 d3d11 dxgi ) + d3d10? ( d3d11 ) + d3d11? ( dxgi )" + +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is set but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die + mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die + mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die + mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die + fi + cp -- "${DISTDIR}"/setup_dxvk.sh . || die + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2} + $(meson_use {,enable_}d3d9) + $(meson_use {,enable_}d3d10) + $(meson_use {,enable_}d3d11) + $(meson_use {,enable_}dxgi) + $(usev !debug --strip) # portage won't strip .dll, so allow it here + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_dxvk.sh + dodoc README.md dxvk.conf + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_preinst() { + [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY= +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was" + elog "removed upstream, handling may change in the future." + elif [[ -v DXVK_HAD_OVERLAY ]]; then + # temporary warning until this version is more widely used + elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays." + elog "If you were using symbolic links in wine prefixes it may be necessary to" + elog "refresh them by re-running the command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load" + elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs." + fi + + if [[ ! ${REPLACING_VERSIONS##* } ]] || + ver_test ${REPLACING_VERSIONS##* } -lt 2.0 + then + elog + elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support" + fi +} diff --git a/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild new file mode 100644 index 000000000000..71e43a8fd5eb --- /dev/null +++ b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild @@ -0,0 +1,190 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib python-any-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git" + EGIT_SUBMODULES=( + # picky about headers and is cross-compiled making -I/usr/include troublesome + include/{spirv,vulkan} + subprojects/libdisplay-info + ) +else + HASH_SPIRV=8b246ff75c6615ba4532fe4fde20f1be090c3764 + HASH_VULKAN=46dc0f6e514f5730784bb2cac2a7c731636839e8 + HASH_DISPLAYINFO=275e6459c7ab1ddd4b125f28d0440716e4888078 + SRC_URI=" + https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> spirv-headers-${HASH_SPIRV}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> vulkan-headers-${HASH_VULKAN}.tar.gz + https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/libdisplay-info-${HASH_DISPLAYINFO}.tar.bz2 + " + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk/" + +# setup_dxvk.sh is no longer provided, fetch old until a better solution +SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh" + +LICENSE="ZLIB Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip" +REQUIRED_USE=" + || ( d3d9 d3d10 d3d11 dxgi ) + d3d10? ( d3d11 ) + d3d11? ( dxgi ) +" + +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is set but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die + mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die + mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die + mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die + fi + cp -- "${DISTDIR}"/setup_dxvk.sh . || die + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2} + --force-fallback-for=libdisplay-info # system's is ELF (unusable) + $(meson_use {,enable_}d3d9) + $(meson_use {,enable_}d3d10) + $(meson_use {,enable_}d3d11) + $(meson_use {,enable_}dxgi) + $(usev strip --strip) # portage won't strip .dll, so allow it here + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_dxvk.sh + dodoc README.md dxvk.conf + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_preinst() { + [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY= +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was" + elog "removed upstream, handling may change in the future." + elif [[ -v DXVK_HAD_OVERLAY ]]; then + # temporary warning until this version is more widely used + elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays." + elog "If you were using symbolic links in wine prefixes it may be necessary to" + elog "refresh them by re-running the command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load" + elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs." + fi + + if [[ ! ${REPLACING_VERSIONS##* } ]] || + ver_test ${REPLACING_VERSIONS##* } -lt 2.0 + then + elog + elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support" + fi +} diff --git a/app-emulation/dxvk/dxvk-2.3.ebuild b/app-emulation/dxvk/dxvk-2.3.ebuild new file mode 100644 index 000000000000..2a0cdc34b1a0 --- /dev/null +++ b/app-emulation/dxvk/dxvk-2.3.ebuild @@ -0,0 +1,186 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib python-any-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git" + EGIT_SUBMODULES=( + # picky about headers and is cross-compiled making -I/usr/include troublesome + include/{spirv,vulkan} + subprojects/libdisplay-info + ) +else + HASH_SPIRV=0bcc624926a25a2a273d07877fd25a6ff5ba1cfb + HASH_VULKAN=85c2334e92e215cce34e8e0ed8b2dce4700f4a50 + HASH_DISPLAYINFO=275e6459c7ab1ddd4b125f28d0440716e4888078 + SRC_URI=" + https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz + https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/${PN}-libdisplay-info-${HASH_DISPLAYINFO::10}.tar.bz2" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk/" + +# setup_dxvk.sh is no longer provided, fetch old until a better solution +SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh" + +LICENSE="ZLIB Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip" +REQUIRED_USE=" + || ( d3d9 d3d10 d3d11 dxgi ) + d3d10? ( d3d11 ) + d3d11? ( dxgi )" + +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is set but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die + mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die + mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die + mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die + fi + cp -- "${DISTDIR}"/setup_dxvk.sh . || die + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2} + $(meson_use {,enable_}d3d9) + $(meson_use {,enable_}d3d10) + $(meson_use {,enable_}d3d11) + $(meson_use {,enable_}dxgi) + $(usev strip --strip) # portage won't strip .dll, so allow it here + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_dxvk.sh + dodoc README.md dxvk.conf + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_preinst() { + [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY= +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was" + elog "removed upstream, handling may change in the future." + elif [[ -v DXVK_HAD_OVERLAY ]]; then + # temporary warning until this version is more widely used + elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays." + elog "If you were using symbolic links in wine prefixes it may be necessary to" + elog "refresh them by re-running the command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load" + elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs." + fi + + if [[ ! ${REPLACING_VERSIONS##* } ]] || + ver_test ${REPLACING_VERSIONS##* } -lt 2.0 + then + elog + elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support" + fi +} diff --git a/app-emulation/dxvk/dxvk-9999.ebuild b/app-emulation/dxvk/dxvk-9999.ebuild new file mode 100644 index 000000000000..210cfcc0e294 --- /dev/null +++ b/app-emulation/dxvk/dxvk-9999.ebuild @@ -0,0 +1,190 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib python-any-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git" + EGIT_SUBMODULES=( + # picky about headers and is cross-compiled making -I/usr/include troublesome + include/{spirv,vulkan} + subprojects/libdisplay-info + ) +else + HASH_SPIRV= + HASH_VULKAN= + HASH_DISPLAYINFO= + SRC_URI=" + https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> spirv-headers-${HASH_SPIRV}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> vulkan-headers-${HASH_VULKAN}.tar.gz + https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/libdisplay-info-${HASH_DISPLAYINFO}.tar.bz2 + " + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine" +HOMEPAGE="https://github.com/doitsujin/dxvk/" + +# setup_dxvk.sh is no longer provided, fetch old until a better solution +SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh" + +LICENSE="ZLIB Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip" +REQUIRED_USE=" + || ( d3d9 d3d10 d3d11 dxgi ) + d3d10? ( d3d11 ) + d3d11? ( dxgi ) +" + +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is set but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die + mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die + mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die + mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die + fi + cp -- "${DISTDIR}"/setup_dxvk.sh . || die + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2} + --force-fallback-for=libdisplay-info # system's is ELF (unusable) + $(meson_use {,enable_}d3d9) + $(meson_use {,enable_}d3d10) + $(meson_use {,enable_}d3d11) + $(meson_use {,enable_}dxgi) + $(usev strip --strip) # portage won't strip .dll, so allow it here + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_dxvk.sh + dodoc README.md dxvk.conf + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_preinst() { + [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY= +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was" + elog "removed upstream, handling may change in the future." + elif [[ -v DXVK_HAD_OVERLAY ]]; then + # temporary warning until this version is more widely used + elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays." + elog "If you were using symbolic links in wine prefixes it may be necessary to" + elog "refresh them by re-running the command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink" + elog + elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load" + elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs." + fi + + if [[ ! ${REPLACING_VERSIONS##* } ]] || + ver_test ${REPLACING_VERSIONS##* } -lt 2.0 + then + elog + elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support" + fi +} diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch b/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch new file mode 100644 index 000000000000..580e412fcd6e --- /dev/null +++ b/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch @@ -0,0 +1,17 @@ +https://github.com/doitsujin/dxvk/commit/1a5afc77b1859e6c7e31b55e11ece899e3b5295a +--- a/src/util/config/config.h ++++ b/src/util/config/config.h +@@ -1,4 +1,5 @@ + #pragma once + ++#include <cstdint> + #include <string> + #include <unordered_map> +--- a/src/util/util_bit.h ++++ b/src/util/util_bit.h +@@ -17,4 +17,5 @@ + #include "util_math.h" + ++#include <cstdint> + #include <cstring> + #include <iterator> diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch new file mode 100644 index 000000000000..707eba19b24b --- /dev/null +++ b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch @@ -0,0 +1,14 @@ +Dirty workaround to try syswow64 if paths are the same. This can happen +with USE=wow64 on wine where wine64 is a symlink to wine. + +TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged +separately (shared) as upstream hardly support these (dxvk dropped altogether). +--- a/setup_dxvk.sh ++++ b/setup_dxvk.sh +@@ -89,2 +89,6 @@ + win32_sys_path="${win32_sys_path/$'\r'/}" ++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then ++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null) ++ win32_sys_path="${win32_sys_path/$'\r'/}" ++ fi + fi diff --git a/app-emulation/dxvk/metadata.xml b/app-emulation/dxvk/metadata.xml new file mode 100644 index 000000000000..84811f271d8e --- /dev/null +++ b/app-emulation/dxvk/metadata.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ionen@gentoo.org</email> + <name>Ionen Wolkens</name> + </maintainer> + <use> + <flag name="crossdev-mingw"> + Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than + <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) + </flag> + <flag name="d3d9">Enable support for DirectX 9 (d3d9.dll)</flag> + <flag name="d3d10">Enable support for DirectX 10 (d3d10.dll)</flag> + <flag name="d3d11">Enable support for DirectX 11 (d3d11.dll)</flag> + <flag name="dxgi">Enable support for the DirectX Graphics Infrastructure (dxgi.dll)</flag> + </use> + <upstream> + <remote-id type="github">doitsujin/dxvk</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/dynamips/Manifest b/app-emulation/dynamips/Manifest index 0a80e67861e2..d3d379eb9542 100644 --- a/app-emulation/dynamips/Manifest +++ b/app-emulation/dynamips/Manifest @@ -1,2 +1 @@ -DIST dynamips-0.2.18.tar.gz 833554 BLAKE2B 8152b436e8fc43061c5603a44ceae8feebdd4593649d2fb6a1814ca22cfce2f671f6f98df5f03ee6eeef10cf09fc444d406edd8d3b4a6037a89cf0e8301774ac SHA512 d66e32d72ecc9ebff5232377ac9aa5b966ceb08884cc7f8dc4a8cf3f56305e7cefd677624ba66278f6603a3b275c384bd0ff3905932461b1f8056106cd272a4c -DIST dynamips-0.2.21.tar.gz 833863 BLAKE2B a3162de26839a4c99fd1f147fe0a12e04f4b225b6539aa1599550c40c6a9e21deed950b47f7afbbc1cfbe2f61a351a4185a18f56c4b63c191eccc7122e2c0115 SHA512 c7251963897b65ed5696f47f03be727cea79fe2245850c86fa6b4d8718afa10002b1e39bccefe1c7f2ba86fe6b8f52fe8663ee34f72ca3d9f846522b9b9b4d29 +DIST dynamips-0.2.23.tar.gz 835736 BLAKE2B 5ea57ffbcd289a3982d873dace5bda8941209d7a0f2e36bc0cc4266c59e266f8277a215580487fb70a505eb133672247aa76d7e41124516eb67e40b999bcd67c SHA512 b68af39cd66f10555d860437f55e63887aefdb5a949bacacf3a308cc0c4eaaab3bb9a496c5ac32fd19d3920bada807bff2af8eb66b01d8d735419fec5d134746 diff --git a/app-emulation/dynamips/dynamips-0.2.18.ebuild b/app-emulation/dynamips/dynamips-0.2.18.ebuild deleted file mode 100644 index 1b58ec9cfdad..000000000000 --- a/app-emulation/dynamips/dynamips-0.2.18.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-utils - -DESCRIPTION="Cisco 7200/3600 Simulator" -HOMEPAGE="https://github.com/GNS3/dynamips" -SRC_URI="https://github.com/GNS3/dynamips/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -IUSE="ipv6" - -RDEPEND="dev-libs/elfutils - net-libs/libpcap" -DEPEND="${RDEPEND} - app-arch/unzip" - -DOCS=( ChangeLog README.md RELEASE-NOTES ) - -PATCHES=( "${FILESDIR}/${P}-docs.patch" ) - -src_prepare() { - # comment out DYNAMIPS_FLAGS to respect CFLAGS - sed -e "s:^set ( DYNAMIPS_FLAGS:#&:" -i cmake/dependencies.cmake || die - - cmake-utils_src_prepare -} - -src_configure() { - local mycmakeargs=( - -DANY_COMPILER=1 - -DENABLE_IPV6="$(usex ipv6)" - ) - cmake-utils_src_configure -} diff --git a/app-emulation/dynamips/dynamips-0.2.21.ebuild b/app-emulation/dynamips/dynamips-0.2.23.ebuild index 21b04e6456e7..1a0741cc4406 100644 --- a/app-emulation/dynamips/dynamips-0.2.21.ebuild +++ b/app-emulation/dynamips/dynamips-0.2.23.ebuild @@ -1,26 +1,24 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit cmake-utils +inherit cmake DESCRIPTION="Cisco 7200/3600 Simulator" HOMEPAGE="https://github.com/GNS3/dynamips" SRC_URI="https://github.com/GNS3/dynamips/archive/v${PV}.tar.gz -> ${P}.tar.gz" -LICENSE="GPL-2" +LICENSE="GPL-2+" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="ipv6" - -BDEPEND="app-arch/unzip" -RDEPEND="dev-libs/elfutils +RDEPEND=" + dev-libs/elfutils net-libs/libpcap" DEPEND="${RDEPEND}" -DOCS=( ChangeLog README.md RELEASE-NOTES ) +DOCS=( ChangeLog README.md README.hypervisor RELEASE-NOTES ) PATCHES=( "${FILESDIR}/${PN}-0.2.18-docs.patch" ) @@ -28,13 +26,13 @@ src_prepare() { # comment out DYNAMIPS_FLAGS to respect CFLAGS sed -e "s:^set ( DYNAMIPS_FLAGS:#&:" -i cmake/dependencies.cmake || die - cmake-utils_src_prepare + cmake_src_prepare } src_configure() { local mycmakeargs=( -DANY_COMPILER=1 - -DENABLE_IPV6="$(usex ipv6)" + -DENABLE_IPV6=yes ) - cmake-utils_src_configure + cmake_src_configure } diff --git a/app-emulation/dynamips/metadata.xml b/app-emulation/dynamips/metadata.xml index 2f5d95978a96..82c5a4ca25bc 100644 --- a/app-emulation/dynamips/metadata.xml +++ b/app-emulation/dynamips/metadata.xml @@ -1,9 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>pinkbyte@gentoo.org</email> - <name>Sergey Popov</name> + <maintainer type="person" proxied="yes"> + <email>mmk@levelnine.at</email> + <name>Michael Mair-Keimberger</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> </maintainer> <upstream> <remote-id type="sourceforge">gns-3</remote-id> diff --git a/app-emulation/edumips64/Manifest b/app-emulation/edumips64/Manifest deleted file mode 100644 index 5546cf952199..000000000000 --- a/app-emulation/edumips64/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST edumips64-1.2.tar.bz2 551455 BLAKE2B 614bf851964ea32d6954fb5345f6b07b6292bf90e24dca5d3ea8d86c1b910e1e9ade6ebfece054922ad3506586e9f32c1f6570a7248023e6a867a8b5c09b1203 SHA512 93a5bcae3ab96c35688de7589b9ecb465fe841b007a50e1b04f8194d12a45a4e7134951584f4fbfad5cee51925d1d21b0f425f182999f66fe57a31adbd3f6602 diff --git a/app-emulation/edumips64/edumips64-1.2.ebuild b/app-emulation/edumips64/edumips64-1.2.ebuild deleted file mode 100644 index 518464fb1ce0..000000000000 --- a/app-emulation/edumips64/edumips64-1.2.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="5" - -JAVA_PKG_IUSE="doc test" - -inherit eutils java-pkg-2 java-ant-2 - -DESCRIPTION="A visual and cross-platform MIPS64 CPU Simulator" -HOMEPAGE="https://www.edumips.org" -SLOT="0" -SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2" -LICENSE="GPL-2" -KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND="dev-python/sphinx - dev-java/javatoolkit - dev-java/javahelp:0 - >=virtual/jdk-1.6 - doc? ( sys-devel/make ) - test? ( - dev-java/junit:4 - dev-java/ant-junit4 - )" -RDEPEND=">=virtual/jre-1.6" - -EANT_BUILD_TARGET="slim-jar" -EANT_DOC_TARGET="htmldoc" - -src_prepare() { - epatch "${FILESDIR}/${P}-javadoc-cp.patch" - java-pkg_jar-from --build-only --into libs javahelp jhall.jar - use test && java-pkg_jar-from --build-only --into libs junit-4 junit.jar junit-4.10.jar - java-pkg-2_src_prepare -} - -src_install() { - java-pkg_newjar ${PN}-${PV}-nodeps.jar ${PN}.jar - dodoc RELEASE_NOTES authors - use doc && java-pkg_dojavadoc docs/en/output/html -} - -src_test() { - ANT_TASKS="ant-junit4" eant test -} diff --git a/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch b/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch deleted file mode 100644 index 14ead77d3335..000000000000 --- a/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/build.xml -+++ b/build.xml -@@ -27,7 +27,7 @@ - - <!-- Access the environment --> - <property environment="env" /> -- <property name="base.classpath" value="libs:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" /> -+ <property name="base.classpath" value="libs:libs/jhall.jar:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" /> - - <!-- File names --> - <property name="standalone_jar_filename" value="edumips64-${version}.jar" /> diff --git a/app-emulation/edumips64/files/edumips64-javadoc-cp.patch b/app-emulation/edumips64/files/edumips64-javadoc-cp.patch deleted file mode 100644 index 80e389049b5c..000000000000 --- a/app-emulation/edumips64/files/edumips64-javadoc-cp.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- edumips64-1.1.orig/build.xml -+++ edumips64-1.1/build.xml -@@ -24,7 +24,7 @@ - - <!-- Access the environment --> - <property environment="env" /> -- <property name="base.classpath" value="libs:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" /> -+ <property name="base.classpath" value="libs:libs/jhall.jar:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" /> - - <!-- File names --> - <property name="standalone_jar_filename" value="edumips64-${version}.jar" /> diff --git a/app-emulation/edumips64/metadata.xml b/app-emulation/edumips64/metadata.xml deleted file mode 100644 index dfc7b27fde63..000000000000 --- a/app-emulation/edumips64/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>java@gentoo.org</email> - <name>Java</name> - </maintainer> - <upstream> - <remote-id type="sourceforge">edumips64</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/faudio/Manifest b/app-emulation/faudio/Manifest index 1b0ddff6572f..8309fa7609e5 100644 --- a/app-emulation/faudio/Manifest +++ b/app-emulation/faudio/Manifest @@ -1,4 +1,3 @@ -DIST FAudio-19.06.tar.gz 899089 BLAKE2B a59ad9613bcfa71e1fc8be1f2d389f56b8f96430c354b7c7148d1e1e084102b6d8559cd258f3ab6969a4ac93e55ea2397b18dc417857e9ee0f022ea0dae65c0e SHA512 ba3ee18b47d8d85dc39e777c420522349f9873cf1528dd6c266f7254fe27cdb5bb6ab5bcbeab870938b509bfd006590d2380908b7d1e3fd679d2a434ce82eca6 -DIST FAudio-19.09.tar.gz 901659 BLAKE2B 8bb99c67b6da2660e71c7a8a70f83130738a07e7f4ddd2001fb857c81a593935506a8c1fe6d24bfd064537ea4a5a603973c32d839228d7b3f45c9c300ba15147 SHA512 127f975c68e2b449fa7cadae0723925f35ca7a2841ea3fd85037febe964331de4b2e3031ab09c292ee5f40d90902dcf78c75cc3fe7fbe4d6f37a822b4d9eb966 -DIST FAudio-20.02.tar.gz 908051 BLAKE2B 7f9323e7528949680b39469b3549adbef9acafe6f293c643676117648fd6871639fa8c7a47fdc0e1232c0533c0af9e89953415a0935fa4ad7b831aa8a8243f30 SHA512 69995fa1fb9ea41182e47f8143252db517adf4e9dc4a0556c9032af5c867259cc7edc81196b10ef043e6118a2e3687b34368f3ac8ffe9294398c5143b9928476 -DIST FAudio-20.09.tar.gz 1133191 BLAKE2B 519467051e8ce82a8e3b7dcea13ad2b076510bdef363e2170373030a1cc8cc600c0a9627dcb38923e33588eb74081ab161d7596bbb7efe02961e9a38a2e36197 SHA512 a4f06cbb07e7baa0dcf59f93412f364a70a6757079cb21b51808dafed256e557e18866974e5145d0a8509b7a4f4a68bc130a49d6704571e0a43913e73abbd984 +DIST faudio-23.02.tar.gz 1111012 BLAKE2B c776a5b882697fbbed894f129165600b1aad8b303254e9ecbf6111fff71581491b484681a71d377854077dfc23b99d1217e5322bdd9923caf4471cc0bc2ca0f2 SHA512 d83adca1f1e42b1c7d63dad30886b58a914ac9a5a254f26d3fdb2386776840e3c40b22a8dd9c7172e6c97b0db989f919fd2ebeac2ec00075a8136ec9120bc390 +DIST faudio-23.10.tar.gz 1120033 BLAKE2B 2f064ba71386db69870b4e523625c421b2062f3584f834b55367dd675a1a61509831b036ed2e459cd2ea247e2b56401142bf73b6e828bd2ff4699623ba0d453f SHA512 cc17c1c3950267a8cc69d0a263deef1d80e8bb9f658f1c2cd1c137bccac1d2be234d17f9b790bbe8bd1ba9da7e13676d3d38e328399d5a706f6ed502365de9ba +DIST faudio-24.02.tar.gz 1122131 BLAKE2B 5ace47c679e7c35fc13157c1bdf6d8a8080fd9e3516f9007628875a2c67d1d2aab63404261c28aadcb33305c196c6e96ba8045d50e42d7f79d47ee0696bdb068 SHA512 de48196bc9d93784d2f2ce20c7aba83066a8a7653781104eb3b15fa8206e54875d5c555dab4c6fb763cf41fd6ec733e71b6bba53c8cafd98af99ea9eb0a3d666 diff --git a/app-emulation/faudio/faudio-19.06.ebuild b/app-emulation/faudio/faudio-19.06.ebuild deleted file mode 100644 index 93b1440ba5b1..000000000000 --- a/app-emulation/faudio/faudio-19.06.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# shellcheck disable=SC2034 -EAPI=7 - -CMAKE_MAKEFILE_GENERATOR="emake" - -inherit cmake-multilib virtualx - -FAUDIO_PN="FAudio" -FAUDIO_PV="${PV}" -FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git" -else - SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" - S="${WORKDIR}/${FAUDIO_P}" -fi - -DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms" -HOMEPAGE="https://fna-xna.github.io/" -LICENSE="ZLIB" -SLOT="0" - -IUSE="+abi_x86_32 +abi_x86_64 debug ffmpeg xnasong test utils" -RESTRICT="!test? ( test )" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" - -COMMON_DEPEND=" - >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}] - ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) -" -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -multilib_src_configure() { - local mycmakeargs=( - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}" - "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)" - "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)" - "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)" - "-DBUILD_TESTS=$(usex test ON OFF)" - "-DBUILD_UTILS=$(usex utils ON OFF)" - "-DFFMPEG=$(usex ffmpeg ON OFF)" - "-DXNASONG=$(usex xnasong ON OFF)" - ) - if use ffmpeg; then - mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" ) - fi - cmake-utils_src_configure -} - -src_configure() { - cmake-multilib_src_configure -} - -multilib_src_compile() { - cmake-utils_src_make - emake -C "${BUILD_DIR}" all -} - -multilib_src_install() { - # FIXME: do we want to install the FAudio tools? - cmake-utils_src_install - - sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \ - "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \ - || die "sed failed" - insinto "/usr/$(get_libdir)/pkgconfig" - doins "${T}/faudio.pc" - - if use test; then - mkdir -p "${T}/$(get_libdir)" - cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed" - fi -} - -faudio_test() { - XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests" -} - -pkg_postinst() { - use test || return - - # FIXME: FAudio tests are broken and also don't appear to work - # in the Portage sandbox. - multilib_foreach_abi faudio_test -} diff --git a/app-emulation/faudio/faudio-19.09.ebuild b/app-emulation/faudio/faudio-19.09.ebuild deleted file mode 100644 index 93b1440ba5b1..000000000000 --- a/app-emulation/faudio/faudio-19.09.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# shellcheck disable=SC2034 -EAPI=7 - -CMAKE_MAKEFILE_GENERATOR="emake" - -inherit cmake-multilib virtualx - -FAUDIO_PN="FAudio" -FAUDIO_PV="${PV}" -FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git" -else - SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" - S="${WORKDIR}/${FAUDIO_P}" -fi - -DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms" -HOMEPAGE="https://fna-xna.github.io/" -LICENSE="ZLIB" -SLOT="0" - -IUSE="+abi_x86_32 +abi_x86_64 debug ffmpeg xnasong test utils" -RESTRICT="!test? ( test )" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" - -COMMON_DEPEND=" - >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}] - ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) -" -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -multilib_src_configure() { - local mycmakeargs=( - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}" - "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)" - "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)" - "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)" - "-DBUILD_TESTS=$(usex test ON OFF)" - "-DBUILD_UTILS=$(usex utils ON OFF)" - "-DFFMPEG=$(usex ffmpeg ON OFF)" - "-DXNASONG=$(usex xnasong ON OFF)" - ) - if use ffmpeg; then - mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" ) - fi - cmake-utils_src_configure -} - -src_configure() { - cmake-multilib_src_configure -} - -multilib_src_compile() { - cmake-utils_src_make - emake -C "${BUILD_DIR}" all -} - -multilib_src_install() { - # FIXME: do we want to install the FAudio tools? - cmake-utils_src_install - - sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \ - "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \ - || die "sed failed" - insinto "/usr/$(get_libdir)/pkgconfig" - doins "${T}/faudio.pc" - - if use test; then - mkdir -p "${T}/$(get_libdir)" - cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed" - fi -} - -faudio_test() { - XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests" -} - -pkg_postinst() { - use test || return - - # FIXME: FAudio tests are broken and also don't appear to work - # in the Portage sandbox. - multilib_foreach_abi faudio_test -} diff --git a/app-emulation/faudio/faudio-20.02.ebuild b/app-emulation/faudio/faudio-20.02.ebuild deleted file mode 100644 index 5afb2e48be25..000000000000 --- a/app-emulation/faudio/faudio-20.02.ebuild +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# shellcheck disable=SC2034 -EAPI=7 - -CMAKE_MAKEFILE_GENERATOR="emake" - -inherit cmake-multilib virtualx - -FAUDIO_PN="FAudio" -FAUDIO_PV="${PV}" -FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git" -else - SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz" - KEYWORDS="-* amd64 x86" - S="${WORKDIR}/${FAUDIO_P}" -fi - -DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms" -HOMEPAGE="https://fna-xna.github.io/" -LICENSE="ZLIB" -SLOT="0" - -IUSE="+abi_x86_32 +abi_x86_64 debug dumpvoices ffmpeg xnasong test utils" -RESTRICT="!test? ( test )" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" - -COMMON_DEPEND=" - >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}] - ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) -" -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -multilib_src_configure() { - local mycmakeargs=( - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}" - "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)" - "-DCMAKE_INSTALL_PREFIX=${EPREFIX}/usr" - "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)" - "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)" - "-DBUILD_TESTS=$(usex test ON OFF)" - "-DBUILD_UTILS=$(usex utils ON OFF)" - "-DDUMP_VOICES=$(usex dumpvoices ON OFF)" - "-DFFMPEG=$(usex ffmpeg ON OFF)" - "-DXNASONG=$(usex xnasong ON OFF)" - ) - if use ffmpeg; then - mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" ) - fi - cmake-utils_src_configure -} - -src_configure() { - cmake-multilib_src_configure -} - -multilib_src_compile() { - cmake-utils_src_make - emake -C "${BUILD_DIR}" all -} - -multilib_src_install() { - # FIXME: do we want to install the FAudio tools? - cmake-utils_src_install - - sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \ - "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \ - || die "sed failed" - insinto "/usr/$(get_libdir)/pkgconfig" - doins "${T}/faudio.pc" - - if use test; then - mkdir -p "${T}/$(get_libdir)" || die - cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed" - fi -} - -faudio_test() { - XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests" -} - -pkg_postinst() { - use test || return - - # FIXME: FAudio tests are broken and also don't appear to work - # in the Portage sandbox. - multilib_foreach_abi faudio_test -} diff --git a/app-emulation/faudio/faudio-20.09.ebuild b/app-emulation/faudio/faudio-20.09.ebuild deleted file mode 100644 index b6fb9ffe869b..000000000000 --- a/app-emulation/faudio/faudio-20.09.ebuild +++ /dev/null @@ -1,97 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# shellcheck disable=SC2034 -EAPI=7 - -CMAKE_MAKEFILE_GENERATOR="emake" - -inherit cmake-multilib virtualx - -FAUDIO_PN="FAudio" -FAUDIO_PV="${PV}" -FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git" -else - SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" - S="${WORKDIR}/${FAUDIO_P}" -fi - -DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms" -HOMEPAGE="https://fna-xna.github.io/" -LICENSE="ZLIB" -SLOT="0" - -IUSE="+abi_x86_32 +abi_x86_64 debug dumpvoices gstreamer xnasong test utils" -RESTRICT="!test? ( test )" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" - -COMMON_DEPEND=" - >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}] - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] - ) -" -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -multilib_src_configure() { - local mycmakeargs=( - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}" - "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)" - "-DCMAKE_INSTALL_PREFIX=${EPREFIX}/usr" - "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)" - "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)" - "-DBUILD_TESTS=$(usex test ON OFF)" - "-DBUILD_UTILS=$(usex utils ON OFF)" - "-DDUMP_VOICES=$(usex dumpvoices ON OFF)" - "-DGSTREAMER=$(usex gstreamer ON OFF)" - "-DXNASONG=$(usex xnasong ON OFF)" - ) - cmake-utils_src_configure -} - -src_configure() { - cmake-multilib_src_configure -} - -multilib_src_compile() { - cmake-utils_src_make - emake -C "${BUILD_DIR}" all -} - -multilib_src_install() { - # FIXME: do we want to install the FAudio tools? - cmake-utils_src_install - - sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \ - "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \ - || die "sed failed" - insinto "/usr/$(get_libdir)/pkgconfig" - doins "${T}/faudio.pc" - - if use test; then - mkdir -p "${T}/$(get_libdir)" || die - cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed" - fi -} - -faudio_test() { - XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests" -} - -pkg_postinst() { - use test || return - - # FIXME: FAudio tests are broken and also don't appear to work - # in the Portage sandbox. - multilib_foreach_abi faudio_test -} diff --git a/app-emulation/faudio/faudio-23.02.ebuild b/app-emulation/faudio/faudio-23.02.ebuild new file mode 100644 index 000000000000..b009b323807d --- /dev/null +++ b/app-emulation/faudio/faudio-23.02.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +DESCRIPTION="Accuracy-focused XAudio reimplementation for open platforms" +HOMEPAGE="https://fna-xna.github.io/" +SRC_URI="https://github.com/FNA-XNA/FAudio/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/FAudio-${PV}" + +LICENSE="ZLIB" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="debug dumpvoices test" +RESTRICT="!test? ( test )" + +RDEPEND="media-libs/libsdl2[sound]" +DEPEND="${RDEPEND}" + +src_configure() { + append-cppflags -D_DEFAULT_SOURCE # usleep() in tests + use debug || append-cppflags -DFAUDIO_DISABLE_DEBUGCONFIGURATION + + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DDUMP_VOICES=$(usex dumpvoices) + ) + + cmake_src_configure +} + +src_test() { + einfo "Running faudio_tests, this may take some time without output..." + SDL_AUDIODRIVER=dummy "${BUILD_DIR}"/faudio_tests || die +} diff --git a/app-emulation/faudio/faudio-23.10.ebuild b/app-emulation/faudio/faudio-23.10.ebuild new file mode 100644 index 000000000000..e372ae484496 --- /dev/null +++ b/app-emulation/faudio/faudio-23.10.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +DESCRIPTION="Accuracy-focused XAudio reimplementation for open platforms" +HOMEPAGE="https://fna-xna.github.io/" +SRC_URI="https://github.com/FNA-XNA/FAudio/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/FAudio-${PV}" + +LICENSE="ZLIB" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug dumpvoices test" +RESTRICT="!test? ( test )" + +RDEPEND="media-libs/libsdl2[sound]" +DEPEND="${RDEPEND}" + +src_configure() { + append-cppflags -D_DEFAULT_SOURCE # usleep() in tests + use debug || append-cppflags -DFAUDIO_DISABLE_DEBUGCONFIGURATION + + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DDUMP_VOICES=$(usex dumpvoices) + ) + + cmake_src_configure +} + +src_test() { + einfo "Running faudio_tests, this may take some time without output..." + SDL_AUDIODRIVER=dummy "${BUILD_DIR}"/faudio_tests || die +} diff --git a/app-emulation/faudio/faudio-24.02.ebuild b/app-emulation/faudio/faudio-24.02.ebuild new file mode 100644 index 000000000000..e372ae484496 --- /dev/null +++ b/app-emulation/faudio/faudio-24.02.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake flag-o-matic + +DESCRIPTION="Accuracy-focused XAudio reimplementation for open platforms" +HOMEPAGE="https://fna-xna.github.io/" +SRC_URI="https://github.com/FNA-XNA/FAudio/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/FAudio-${PV}" + +LICENSE="ZLIB" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug dumpvoices test" +RESTRICT="!test? ( test )" + +RDEPEND="media-libs/libsdl2[sound]" +DEPEND="${RDEPEND}" + +src_configure() { + append-cppflags -D_DEFAULT_SOURCE # usleep() in tests + use debug || append-cppflags -DFAUDIO_DISABLE_DEBUGCONFIGURATION + + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DDUMP_VOICES=$(usex dumpvoices) + ) + + cmake_src_configure +} + +src_test() { + einfo "Running faudio_tests, this may take some time without output..." + SDL_AUDIODRIVER=dummy "${BUILD_DIR}"/faudio_tests || die +} diff --git a/app-emulation/faudio/faudio-9999.ebuild b/app-emulation/faudio/faudio-9999.ebuild deleted file mode 100644 index 93b1440ba5b1..000000000000 --- a/app-emulation/faudio/faudio-9999.ebuild +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# shellcheck disable=SC2034 -EAPI=7 - -CMAKE_MAKEFILE_GENERATOR="emake" - -inherit cmake-multilib virtualx - -FAUDIO_PN="FAudio" -FAUDIO_PV="${PV}" -FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}" - -if [[ "${PV}" == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git" -else - SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz" - KEYWORDS="-* ~amd64 ~x86" - S="${WORKDIR}/${FAUDIO_P}" -fi - -DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms" -HOMEPAGE="https://fna-xna.github.io/" -LICENSE="ZLIB" -SLOT="0" - -IUSE="+abi_x86_32 +abi_x86_64 debug ffmpeg xnasong test utils" -RESTRICT="!test? ( test )" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" - -COMMON_DEPEND=" - >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}] - ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] ) -" -RDEPEND="${COMMON_DEPEND} -" -DEPEND="${COMMON_DEPEND} -" - -multilib_src_configure() { - local mycmakeargs=( - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}" - "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)" - "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)" - "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)" - "-DBUILD_TESTS=$(usex test ON OFF)" - "-DBUILD_UTILS=$(usex utils ON OFF)" - "-DFFMPEG=$(usex ffmpeg ON OFF)" - "-DXNASONG=$(usex xnasong ON OFF)" - ) - if use ffmpeg; then - mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" ) - fi - cmake-utils_src_configure -} - -src_configure() { - cmake-multilib_src_configure -} - -multilib_src_compile() { - cmake-utils_src_make - emake -C "${BUILD_DIR}" all -} - -multilib_src_install() { - # FIXME: do we want to install the FAudio tools? - cmake-utils_src_install - - sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \ - "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \ - || die "sed failed" - insinto "/usr/$(get_libdir)/pkgconfig" - doins "${T}/faudio.pc" - - if use test; then - mkdir -p "${T}/$(get_libdir)" - cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed" - fi -} - -faudio_test() { - XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests" -} - -pkg_postinst() { - use test || return - - # FIXME: FAudio tests are broken and also don't appear to work - # in the Portage sandbox. - multilib_foreach_abi faudio_test -} diff --git a/app-emulation/faudio/files/faudio.pc b/app-emulation/faudio/files/faudio.pc deleted file mode 100644 index cdb3bf49e64a..000000000000 --- a/app-emulation/faudio/files/faudio.pc +++ /dev/null @@ -1,11 +0,0 @@ -prefix=%PREFIX% -exec_prefix=${prefix} -libdir=${prefix}/%LIB% -includedir=${prefix}/include/FAudio - -Name: faudio -Description: Accuracy-focused XAudio reimplementation for open platforms -Version: - -Libs: -L${libdir} -lFAudio -Cflags: -I${includedir} diff --git a/app-emulation/faudio/metadata.xml b/app-emulation/faudio/metadata.xml index e5eb47a51e63..430772900c80 100644 --- a/app-emulation/faudio/metadata.xml +++ b/app-emulation/faudio/metadata.xml @@ -1,28 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>wine@gentoo.org</email> - <name>Wine</name> - <description> - This package must be kept in sync with repo/proj/wine repository. - Any changes need to be run past the maintainer to ensure the two repositories are kept in sync. - </description> - </maintainer> + <!-- maintainer-needed --> <longdescription> -FAudio, is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries +FAudio is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries for the FNA project, including XAudio2, X3DAudio, XAPO, and XACT3. -Project Website: http://fna-xna.github.io/ +Project Website: https://fna-xna.github.io/ </longdescription> <use> <flag name="dumpvoices">FAudio dumps buffer data to individual files with RIFF/XWMA headers, usable with players like ffplay/testxwma.</flag> - <flag name="ffmpeg">FAudio has optional support for decoding xWMA resources using FFmpeg, requiring: - <pkg>media-video/ffmpeg</pkg></flag> - <flag name="xnasong">Build support for optional XNG_SONG component (note: this not required by - <pkg>app-emulation/wine-staging</pkg>, <pkg>app-emulation/wine-vanilla</pkg> for faudio XAudio support).</flag> - <flag name="test">Build and run faudio testsuite.</flag> - <flag name="utils">Build all faudio utilities.</flag> </use> <upstream> <remote-id type="github">FNA-XNA/FAudio</remote-id> diff --git a/app-emulation/firecracker-bin/Manifest b/app-emulation/firecracker-bin/Manifest index 976223f10a75..f1969674bc5a 100644 --- a/app-emulation/firecracker-bin/Manifest +++ b/app-emulation/firecracker-bin/Manifest @@ -1,8 +1,6 @@ -DIST firecracker-v0.22.0-aarch64 1615168 BLAKE2B 56965a1999038e9b59e37230177812b936ad1b3cba91b6f805a1a6ecc81903f093c13b75ff78c8720d67596bdd71378cc757bda0b6061e3fb4d62607e299b065 SHA512 fb42bc5ecd0af487490f2c4bd3804d2430263740bbdec66c063d9b6c865d6b9c42b31cafb78d4a0cc40c11cc5242608b9d30676e55ac2b8dcb05d5f3db535bdf -DIST firecracker-v0.22.0-x86_64 1657736 BLAKE2B 84dbe8db596017e312fad1cd3c72d1b5d7306ad400a320431c8cae5b901b534f2735ac75cb5b9133c6c6f2603b877e4842d54165972a46df4193fbbc513c3b2d SHA512 ac9544e8b770ff7a0c9234feb3154522bd6163f3903993cd019cc4abaa90ad24447f18e65e1022aafb7274ca97281286f898a50ac9f27c7f661d48df52d7fd08 -DIST firecracker-v0.22.1-aarch64 1624032 BLAKE2B e5705e423e032c480bbdd499bb4e0b5674079b096bd0983f21f3e9c664d442a76f3a195075a641445505b777823a4c1670a1544828b84370e21d5bde4c091ed3 SHA512 4d9222e19d616a017780711c426d0aa5b41571e744648cc3a922601857387ebcb9dc0a238019e7a33e45445221d93d739c0ec8c465ab922583bac2970a1af003 -DIST firecracker-v0.22.1-x86_64 1658032 BLAKE2B 1513ed2b0ad550a0e21fb77bc5fb84091ff73b4e79c716238b14366234d303bb391d3e6a58878529f8131c72bd53d81a18caf06230d290bbefc08f280d856e5c SHA512 5327a22a1c0dc4e9a1ceba8455933131ddb9ef91e0a9b875a7b5c5f45f309fe40b841a26b5d0bdd24e18bb7472c264598d59fb0db20bdf5ec39f47b23ede44fa -DIST jailer-v0.22.0-aarch64 1322088 BLAKE2B 72db7eba02371af2a53b6ebd8c9fb909bd027cdd2b4207e0b2a02febe587780f9aa3be665b37580907ab8a58d8745cbcda90a85bda56a42b2eb8be9a931af13f SHA512 86ca629b3060cefa9e31292844486c6d9b6fa0538b6d515e4cbb07fa4a675ce93d5f87fcd769f62aea0df029cdbd7a5055a282b8344ed35d895606aca7f22a14 -DIST jailer-v0.22.0-x86_64 1427600 BLAKE2B 7ab09cce8963c89dae7c89c3a2d1dc582fdf8c11c3e051deb08c70fd2995a2154c493432e39851bebc62c1f6a9f98cfc9a9fa4107c5d9cf8ba940d4bb3349d86 SHA512 f2dcaee775cd1cdea4c1c1f6e89b82ba6636ab065291b704faaa836f864f14802a56af76ce397d7f98e9420d55720dc4459ae4443babfc7bb16d64dde11cb854 -DIST jailer-v0.22.1-aarch64 1322088 BLAKE2B 7e5e1d106789af37a9a113b005184c2e65943beaec08e99b149bdcd72237c089d9a8126e2b498b433dd94181ab8042205cad31beba1352707081fdc08e7a4293 SHA512 6e147d581870a46e6cad7efb949265a47d1471ae5744216f8a591ffa00001590e2939b8153107b3188e224069207c82624efc98ae5d5becb6c324860ce509548 -DIST jailer-v0.22.1-x86_64 1427600 BLAKE2B f592c951594a2739cb56accbfc2c971f44aa7d4fde36d8a170b8c72749ba25020caf6505865ca9ab4932386b9a9a4e0b2bf984fc2712b6d4c5bf7c3df23aa085 SHA512 f28b08c5baf003eae93bbb7199136c76b9c104928ccb74ad7ca3af0269c4eebd80528a995caa5aff5bc70997932cd1485e416046a8e4a6c199be430c4a72213a +DIST firecracker-v1.5.1-aarch64.tgz 9086440 BLAKE2B 30777522bdb23e80bc3a025691d50a14411c0ac72fd87e5b9b460f18d0873d0a6423e19e7810afe0ed1324b2b32fc615b525ad9561c1bfea48fc53bdfbb610a5 SHA512 61f7fcf427817eebcd6cb6f046dad29e3a39d382c087418379f4502ef715605e2bb9e3b647233680f44b7e0047a6ca00135011bb929b44c5340bb8b8649fde1a +DIST firecracker-v1.5.1-x86_64.tgz 9411106 BLAKE2B 538b531ce5c8319dee042229a7cc7c44cdd2fc07c58c3089b6c2d29d10ad8a5a78f697b7781ac81bcf8b4127e778895ab72eed9e1e6febd410b6c0509c01ae1e SHA512 63a44fb79e9fb29abfbaa6c96550c5f2f361c3be5e188bb4562b089b4d3f1f4ab3ef60ad3ab163e961857e95090401dc4df859d2dd2a5f1a1372ed663188cfa3 +DIST firecracker-v1.6.0-aarch64.tgz 9105124 BLAKE2B bcc77e6701a4b9c7d80d7e60b13d4945d5f76918cc1741035f26df5af05c4c579802444c90c8972a7985d4df8e10f2b9954b5889eca92f5d95b02751481084db SHA512 71608a46bdb5be5240d4a88e812c13e753d81e4f4813a818ebfd782934add2c3769bd71788f5e2bed1a6e1d9bcfc3a914e018f1682cc6806012c3e283e44f401 +DIST firecracker-v1.6.0-x86_64.tgz 9425451 BLAKE2B bae5eb960c6d575724915cfd4cb50cdc85d6be44b47271a5d68662b7ce86a7356aad215097214b7d32dad9051f385188d83592588be1addc15727c633f10e4d1 SHA512 a00b0d1b8da02b167627169d316b6a88bd44b1f42eb2cbebad5c355485f2456288d2062cb63b1ddc4d636ae8f4fad3a15dc9404b5347e746a7b416758d6507d5 +DIST firecracker-v1.7.0-aarch64.tgz 8951358 BLAKE2B 813be9e38e318233b3b574e21e3f07e3eab82eba1a22ca2082a7e2b9312b8022fd288ac4b72dbfa82f8a8ab561e4877553c249913d290b0701773d53a28296a7 SHA512 1b78353e204569acace417a95bfd2075f909205d59c32cbce18438751d5aeaae8ac3e3d3791d153a30337037c01fd6622793aa200a7e21d51f98a886123c545d +DIST firecracker-v1.7.0-x86_64.tgz 9038632 BLAKE2B 6473113f2cc8225fdf8fc6f8612874c46fda05c13ebda040b7998554fda3e9cc69fbfae9481dc9e5b3100f05b50a82525810deccebaf45665d67aca7ebc0dc23 SHA512 cca5390c81bb9b78865608729840f12a1e9b9ed072859853e1f2853312dc62a78f0206fa007174c5fc18a7bf7d6e4b905e954ecdf6c3b78782d65e9801a45a0b diff --git a/app-emulation/firecracker-bin/firecracker-bin-0.22.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild index a54445d88b2c..e280abe72c3d 100644 --- a/app-emulation/firecracker-bin/firecracker-bin-0.22.0.ebuild +++ b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild @@ -1,7 +1,7 @@ -# Copyright 2020 Gentoo Authors +# Copyright 2021-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit linux-info @@ -9,25 +9,26 @@ DESCRIPTION="Secure and fast microVMs for serverless computing (static build)" HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker" SRC_URI=" amd64? ( - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64 - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-x86_64 + https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz ) arm64? ( - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64 - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-aarch64 + https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz )" LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0" SLOT="0" -KEYWORDS="-* ~amd64" +KEYWORDS="~amd64 ~arm64" RESTRICT="test strip" -RDEPEND="!app-emulation/firecracker - acct-group/kvm" +RDEPEND="acct-group/kvm" -QA_PREBUILT="/usr/bin/firecracker - /usr/bin/jailer" +QA_PREBUILT="usr/bin/cpu-template-helper + usr/bin/firecracker + usr/bin/jailer + usr/bin/rebase-snap + usr/bin/seccompiler-bin + usr/bin/snapshot-editor" S="${WORKDIR}" @@ -38,7 +39,7 @@ pkg_pretend() { if ! linux_config_exists; then eerror "Unable to check your kernel for KVM support" else - CONFIG_CHECK="~KVM ~TUN ~BRIDGE ~VHOST_VSOCK" + 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." @@ -49,9 +50,6 @@ pkg_pretend() { ERROR_TUN+=" virtual network devices." ERROR_BRIDGE="You will also need support for 802.1d" ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." - ERROR_VHOST_VSOCK="To use AF_VSOCK sockets for communication" - ERROR_VHOST_VSOCK+=" between host and guest, you will need to enable" - ERROR_VHOST_VSOCK+=" the vhost virtio-vsock driver in your kernel." if use amd64 || use amd64-linux; then if grep -q AuthenticAMD /proc/cpuinfo; then @@ -67,16 +65,23 @@ pkg_pretend() { fi } -src_unpack() { :; } src_compile() { :; } src_install() { + local my_arch if use amd64; then my_arch=x86_64 elif use arm64; then my_arch=aarch64 fi - newbin "${DISTDIR}/firecracker-v${PV}-${my_arch}" firecracker - newbin "${DISTDIR}/jailer-v${PV}-${my_arch}" jailer + dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml" + dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json" + + newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper + newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker + newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer + newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap + newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin + newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor } diff --git a/app-emulation/firecracker-bin/firecracker-bin-0.22.1.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild index a54445d88b2c..4e841c1ab26e 100644 --- a/app-emulation/firecracker-bin/firecracker-bin-0.22.1.ebuild +++ b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild @@ -1,7 +1,7 @@ -# Copyright 2020 Gentoo Authors +# Copyright 2021-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit linux-info @@ -9,25 +9,26 @@ DESCRIPTION="Secure and fast microVMs for serverless computing (static build)" HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker" SRC_URI=" amd64? ( - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64 - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-x86_64 + https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz ) arm64? ( - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64 - https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-aarch64 + https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz )" LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0" SLOT="0" -KEYWORDS="-* ~amd64" +KEYWORDS="~amd64 ~arm64" RESTRICT="test strip" -RDEPEND="!app-emulation/firecracker - acct-group/kvm" +RDEPEND="acct-group/kvm" -QA_PREBUILT="/usr/bin/firecracker - /usr/bin/jailer" +QA_PREBUILT="usr/bin/cpu-template-helper + usr/bin/firecracker + usr/bin/jailer + usr/bin/rebase-snap + usr/bin/seccompiler-bin + usr/bin/snapshot-editor" S="${WORKDIR}" @@ -38,7 +39,7 @@ pkg_pretend() { if ! linux_config_exists; then eerror "Unable to check your kernel for KVM support" else - CONFIG_CHECK="~KVM ~TUN ~BRIDGE ~VHOST_VSOCK" + 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." @@ -49,9 +50,6 @@ pkg_pretend() { ERROR_TUN+=" virtual network devices." ERROR_BRIDGE="You will also need support for 802.1d" ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." - ERROR_VHOST_VSOCK="To use AF_VSOCK sockets for communication" - ERROR_VHOST_VSOCK+=" between host and guest, you will need to enable" - ERROR_VHOST_VSOCK+=" the vhost virtio-vsock driver in your kernel." if use amd64 || use amd64-linux; then if grep -q AuthenticAMD /proc/cpuinfo; then @@ -67,16 +65,23 @@ pkg_pretend() { fi } -src_unpack() { :; } src_compile() { :; } src_install() { + local my_arch if use amd64; then my_arch=x86_64 elif use arm64; then my_arch=aarch64 fi - newbin "${DISTDIR}/firecracker-v${PV}-${my_arch}" firecracker - newbin "${DISTDIR}/jailer-v${PV}-${my_arch}" jailer + dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml" + dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json" + + newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper + newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker + newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer + newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap + newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin + newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor } diff --git a/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild new file mode 100644 index 000000000000..4e841c1ab26e --- /dev/null +++ b/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild @@ -0,0 +1,87 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-info + +DESCRIPTION="Secure and fast microVMs for serverless computing (static build)" +HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker" +SRC_URI=" + amd64? ( + https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz + ) + arm64? ( + https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz + )" + +LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +RESTRICT="test strip" + +RDEPEND="acct-group/kvm" + +QA_PREBUILT="usr/bin/cpu-template-helper + usr/bin/firecracker + usr/bin/jailer + usr/bin/rebase-snap + usr/bin/seccompiler-bin + usr/bin/snapshot-editor" + +S="${WORKDIR}" + +pkg_pretend() { + if use kernel_linux && kernel_is lt 4 14; then + eerror "Firecracker requires a host kernel of 4.14 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" + ERROR_TUN+=" virtual network devices." + ERROR_BRIDGE="You will also need support for 802.1d" + ERROR_BRIDGE+=" Ethernet Bridging for some network configurations." + + if use amd64 || use amd64-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 + + # Now do the actual checks setup above + check_extra_config + fi + fi +} + +src_compile() { :; } + +src_install() { + local my_arch + if use amd64; then + my_arch=x86_64 + elif use arm64; then + my_arch=aarch64 + fi + + dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml" + dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json" + + newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper + newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker + newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer + newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap + newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin + newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor +} diff --git a/app-emulation/firecracker-bin/metadata.xml b/app-emulation/firecracker-bin/metadata.xml index 7f6b797d9b1f..60d11bb309b0 100644 --- a/app-emulation/firecracker-bin/metadata.xml +++ b/app-emulation/firecracker-bin/metadata.xml @@ -1,12 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> + <maintainer type="person" proxied="yes"> <email>gentoo-bugs@ares-macrotechnology.com</email> <name>Sebastian Hamann</name> </maintainer> - <maintainer type="project"> + <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> + <upstream> + <remote-id type="github">firecracker-microvm/firecracker</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/firecracker/Manifest b/app-emulation/firecracker/Manifest deleted file mode 100644 index 0a7d8a3a46ec..000000000000 --- a/app-emulation/firecracker/Manifest +++ /dev/null @@ -1,35 +0,0 @@ -DIST aho-corasick-0.7.8.crate 110524 BLAKE2B 73ab4ab48f17ffb3f555801f234ee0dce4f5c46c9998c1e14abde4df192122e09f6d87a9c627b43c740d5ad921c7411365093b76e9157cf3dae9c52ff255847b SHA512 fcc7f1230b1fc0e59b032c5aa2e6c334dffab7785ade7776a688821faf7fe10348dbb222affd362d37ad8850b0b17d44ff124eafe7345c6ffbbcb98acfdafed1 -DIST backtrace-0.3.44.crate 68057 BLAKE2B f990523e461a0ae905b41a84d3b767e4cde4c401e12fe9875b22ba3b7ebbe2fb18d65bfe79fafcf008947cb0fd4be9a2ba992ca9427b61157df2b11981a03ad8 SHA512 69bd648061edbae4281e7524ef4fb43aea8dc68fde30e11027824513daf6a48b6d18227533e3a6a44d1b0b30046aa93921af9a560b11b62f1d812802cc6ce6b2 -DIST backtrace-sys-0.1.32.crate 518920 BLAKE2B fbbd3b59533830400a788fd117ced47461d2f2b04d205d03f242d596c284e89ef2dbaead81e6974aa65197a6c69c0293f18dbe89daf3323d0c01dbc92462a075 SHA512 199658b1f95611f7c68a7b4fdd76044fb6784a7ab777a9f5fbe3a4a770bd6c31ac08dfea1297dd85053f0b28b1a686c076a78b120ac46fc3c639c30c937d49c3 -DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b -DIST cc-1.0.50.crate 49792 BLAKE2B 25ec14fd42536c381babcf697cf96fe8be61417a61ba5875a2461bb40bf3ffd9c9d03e1d9df83e2dabfc9472de3db97b08fdffb710e89b868a5e115d0463a9cd SHA512 34a721d9352f8b59cffb8cc0b9c520b972b65d6c23e83d9c6f6e88d6a6845c53ec89350a4aacd0444a5d6b03b867b97aedaf418b483afead209a7ae6d3885f5d -DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339 -DIST cpuid-0.1.0.crate 5473 BLAKE2B ff6536dd8fa1aeaf52b3ae28e5d0c3e0033383d7265eb91f376843516492e3f9d2c43bb6667538342158e6abb9c606b4e6129786d6cb48fe86f1c1effe005df2 SHA512 5b24b49acccaa393f351fca2a2cc7c5e5227e7e0f99680c109bff19377fa5822f37ad1561a33be25e34be654dd4f118ded974c7acc79608fe1efd8c19c4f8404 -DIST device_tree-1.1.0.crate 7049 BLAKE2B 11236d709c7d35d6482eed7ccf8ac82dfbb4412bcf2fec98fd2a806bcf8740c1d0b2745c39b5971f5292ad00887f423afc28a4c674cdf37511cd8615ff654cbd SHA512 b671b582d9f5dc19d8ff28d18fd2ed77842191084c6acbb41362491ea3c994699044fe0b0505f927ad9569d933806f8129a4eb49bf25443c0806ddcb6ffefad7 -DIST epoll-4.1.0.crate 8220 BLAKE2B c61173347865d82ab3a975aaa6cce7004a92c08c682ee16f0f94caa01729648630673923f14f1f3f48532efe09464c73c21eb7e4edea6168909af75dbb3a44d1 SHA512 28d67beaf84f056486ed3bfdc0ad5386006322c601e32c6097f8d2466cc840265996011685ebd8d21259fad22410e9f7b0327ada9ce686873cfae660f7d069a0 -DIST firecracker-0.21.1.tar.gz 4118295 BLAKE2B 83b3db38ae0ac0df68dc36cdc56927f34be3a2f3de78364d68d32cbb797ba6dc6bc22e1e5da85192d503011cc061647837c6a6e66a94212cd16779f6e63adeea SHA512 630b44fe4e19927bcad49b7b658d87d01c99609d53f27eb82afeee67eda7805ef14e65413976b3b3e01a6ca3402e4da33ca900b421ac210f5a10f9a552568a2c -DIST itoa-0.4.5.crate 11194 BLAKE2B d8f0e2aaf62152c187e0987ab4b0cf842ac13255262a9ccbf8484d730ea5397572791c023d2363d0562c18c8efd2418680583e99a1f5d14450b3f0184dce69ca SHA512 79ff8774524130a4729d5e708a4a4a837b3e5052384a12c22db4ae3e208dc4391ee185365f685137a8ba55ea7dc3499f8cddddb2fd98b84177ab292c264034d3 -DIST kernel-0.1.0.crate 153163 BLAKE2B 5c1635a16f69567ceaed92c028ef92bac0a07d7dba9c4a4997710fdfa881e906a4756744b978240b35ed2ddc1ddeb0e4be3b375693c12a49e2f27dd1255afc0d SHA512 75c9dd43b9f00dacbb9a3771be458721498ef77dd74db4f2e5f116c761767a007730f028d0d7a137efb35917b264134bfdedeafb90b96d50461d98b0f11a93c5 -DIST kvm-bindings-0.2.0.crate 131794 BLAKE2B 50bddbf171957094555fab00f7cecb2cd6cbd2582c39d8f06f9b13f5f2b39d69db7fa1febbd2ed6f59f712e86782c38de62b3bc770fb9b7611d923e709860e5f SHA512 770c077e9303d679441e7f9389790f2077ce47ffbb862227fd5801fdfff07a7caff3194e9c85da5c52e9989fbf5faa345eb1be3791d73373b6c0298e8b33d138 -DIST kvm-ioctls-0.5.0.crate 39761 BLAKE2B b3546749452822b18932f49260cffa1fb830c871e5a8f89bb868f56e36f1c3af9c9e51da57d72504558926f19838eb35d9bc1dec5f77cb8973e2cafd63d19f22 SHA512 c97d2b16dfd3cc679728b15efdd1d3fb667dd3a9e92e2974da9d9e36b00434f322eaf3a60c4f387a09c25482bca5f2168e83611bf898829a262d286f7283b895 -DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8 -DIST libc-0.2.66.crate 457815 BLAKE2B 5da379ea738b75189e106d4be821c999394043303b8bb6a9caecdb1b53e449f11a58edc4589193611b76e7baf00e155ba1077bcca4d0cfae30826e946a0075f0 SHA512 5bf5645a7cbe626108cd71e1d189286ed161fcd3ea12cd34f4e392be4cf93bf78feb6128b1101bedc41a71091398f26771f3efd3880f779ee0be00f706914975 -DIST log-0.4.8.crate 31297 BLAKE2B 31037fdc2fc94f4ab8a6e89a251b0bc29975027dc7efb7cc86a8e848dfc8e2ae50acdb177b7ba9f7c1f20ec01e50798f89abb772d67a33f1b060ac617cf9a8ab SHA512 0b71f97d5964134b5eea1332347e177806b2f171d0be5c410c0ff1539470b242ba9f0933fafd853e4171a43b5e373a150af18918924be431c7216022553a8a3b -DIST logger-0.1.0.crate 7908 BLAKE2B ba678076c287e6c45106689220481ca04a620293398cecc2f73217095592dc0d30345b98df45722c91996cd75dfbd4b3bf6a1649cb7d4ae2434bdc78f3d5fdeb SHA512 a907cfc8a17197f7889a0b4b15880acb1eaf12b1fdb60d77bfe258c883c83b0644ab4d45381070921d3a2d5109a88d2ec7c1977f6952896097ea6daf6f638453 -DIST memchr-2.3.2.crate 22528 BLAKE2B 26cbb8836d9a2ff0d00426162e61ba11961d286f53c73726cd483cad0ed034341236f8440752483eda5413012fd99881ea3e884b60360e4eccf411540212d4c4 SHA512 d08326c891b6b818468de092f59a13dd791c0d035c5a39fa1019a1f3077d38c22a2aa855e28e520ca89e3a9bc9433d6b7dcbbf1e8853c3466a0fc6e9f37d4390 -DIST proc-macro2-1.0.8.crate 35657 BLAKE2B 6f53919e85028b6ca2f1d04feb7daf9bf9c2f76273ee8813d9b09807585a1da81687b880b2f23109998332bd7f5d3798d83094042a44de66413a2cebcd60a2c8 SHA512 0214a1268a733872ef1fa59ab80a1cb9ed8f160b9f3751cd70cb26c0919bb3858e63c994163c727f7c7486067ebc681017fb452d51fa314e7da90ca120892254 -DIST quote-1.0.2.crate 23023 BLAKE2B 4091809b4fc9b8d0b56be814b127d6ffd7c1507becba85dc905606cbe85f46233dc4b429c1e865e7c7de336cb936d956169ceb5dd45b489b7722022ccf818a3a SHA512 67778dff9dc5c4edcdd6454b74ad9353bb6c0c4e51c16cb82f2e393a7d7a0cde084d3c93279b718a8398c40af0a9377ebfae5321e69e635efd8390c125b75ce4 -DIST regex-1.3.4.crate 235086 BLAKE2B 3216a16a3f7cebf4dcf9e3bf624c482b2ee60e04b6b1baf265e42b8219338ae8a84ffd40df975963d267cfb8b65b1dc6358b95e4dde0b557a595eace2c03845a SHA512 4e49b30803beb30d35b61e6804f4b634065b4098a1adfb3ba33018e685662f31e9b9f93f21422fee909edf500f8012699013dcb7ebae96f072147da03c1371bc -DIST regex-syntax-0.6.14.crate 289666 BLAKE2B 2d5c3696b3cb011467395121e753d5f6f506b6dea8fe936613c66267a85ce2e6e06749e6481f54effc34c5a403708fdcda11e385ad64cc1f421eb976ab0fa664 SHA512 440e519c30b2de5df2426336eb26ee56d58671d5d9bc33897ae1b38c022170f080ac8d27d959160a78781948f2ed3679755773e24275dad3ee0bb8cb70a4b174 -DIST rustc-demangle-0.1.16.crate 19137 BLAKE2B 04226ff97786b81c90130b48cf6542ea448661af9ea7afed179e71d04abf52cfd3c53fab26d4d35bdf2c1d5a735882da7703527aa48ba7b77f337599c2324150 SHA512 36a63a28a72c710d08524adbb7d11def37db23fe123fb6ea848623b4207c7f80d8415bbbe951488ceccfb8f4f1cdb66a8edfc4c0eecdaa62c87df9e032f4c063 -DIST ryu-1.0.2.crate 42001 BLAKE2B c25f0454bfac40de3150b8c263c6d2842e64f86f441a69ab5e5722a2383a9a07c7539837f6e50996619eb0c4a5da212556a4dd21a761a250785fe0a9c4e18a3c SHA512 c681e037f1eea488bad7fb5ecc79af52377bd4b9eeed95eb213201219d7f100702000f81947aff8f18641235fb62c138a30eb20c1f93ae518a4d9960a598bb64 -DIST seccomp-0.1.0.crate 2750 BLAKE2B cac2a5b20e640d94474f4c3db5f6102f0c45a8211080e2cc806828d1c20220d847c8bd4cf770543be56a36de4f0486725241c63215e041d2a0c35b6523eead3a SHA512 a13d27ac138e6c9fe83d25f94dcf23ec5a2a326504290bc20efc379b05d24ea5dde06a371af7e52c62fec81b0c8dd26ffb3c0a0baa3b701ccfa4f09019c6e1c8 -DIST serde-1.0.104.crate 73258 BLAKE2B 98d63f91c61ac4693e17e0b137379cffd6608933b84d2211509be6b3b25b181592d5e907549fac6ae2e4a45255b8003e1bfd0db683429ac3e78d8ee097d3d79c SHA512 638a1dacc158d69658a005e599adc19d6bc80d0c663f527b1ff906f729e70e027eacc4ea5b9b2c675ac990d5997f50f9d46d614ba95b0c73bb9606aba46b053a -DIST serde_derive-1.0.104.crate 49658 BLAKE2B d4a9ecb4a8df87776a83d645778dc050803b16fd5c9889f28e231238223d424dd25b101412e89741fb47be624d1773acf97f6e38809c81110b696701975168df SHA512 303c3d126ca56b0a7126a87e9e1be8bd60bdb212ed21b5e1aee015313fd769f1d260869c41b0335bd467fd4e3fc6bb26f428c7c4b35e9a55c009797cfa745d1e -DIST serde_json-1.0.48.crate 72113 BLAKE2B bc522d0924044b41548b5c0ca63ed3e1fe70b7632b9e04ca6b01a63245deeae0e7154b0d913b3edfeaecfc816c1edfebfb666734c2a5371b416aaab9c1880f3c SHA512 544dd844330a26fbdaeb5246825f143cf06110065089c8be3dc44f8437f797ac083d7dcc5181656ed3d78428fcddc44e6802544ae304466eebdcd625a5a5fef9 -DIST syn-1.0.14.crate 195286 BLAKE2B 8311cdc0eb8ff69d65c250eb95706cd1e74a6ba899fac02ffc0a288e978c40a03fe5a7c18e3116a767eb6e5e08299d27f5ae04021b224d71d7b492a6b87d67a8 SHA512 7b2b7562ac89d719060b35bf89f21330c02a3c1f34270e864053feba9b0f7a16b5cfd11c57d57eab7c60df8663d8ae76709ca1c48ebab960db168d2836f57340 -DIST thread_local-1.0.1.crate 12609 BLAKE2B 34206b5232262cda9cc0fb970e20f154d43ff1c4477a5ad5ff9200e6d874a6c7b2bcd99a2dae75a984b54574281e049ad35307ace0dd188f44c9a95fa93139cf SHA512 f2bfca4eee32a8fc88a01ff5bf24518c12142228d95916d13aae35ed6addd0b7da2235359f15220049ef197555344ac31a8833775e7a5bd49144db9c54b3165b -DIST timerfd-1.1.1.crate 6020 BLAKE2B 689dbc603b2d943a1de1b035020a3a641a1be0f19a8092088c54e339778f1368127e2f7b2273d25a3c3e1c1401b2a4f0a0310116dcb87cbb41e3a05ba86de45f SHA512 3bd82e1d7d10a2ee4000cc2316afebb7cac68ee738da312013062df30acba11f6e3007b9ec00116f53d334b85d73575e671f93a632d484154a01b886a94bec1c -DIST unicode-xid-0.2.0.crate 14994 BLAKE2B e66b4255798f0ef1c81fb852613fee396a042d780d2158a171dbb5e7dedad0b3d2522f5401ae5d215f89ab8be4f5c371b046e4845693a65554c2a6eedc5d1e28 SHA512 590f727d8d8354023062ae5fe7ac5bed1bcf79d86b883effd7f33b3ea3b1c8922998a63d621ca6962a969e890fa6edd009871f21cd57b1969264f41ba3f78359 -DIST vm-memory-0.1.0.crate 50965 BLAKE2B d85879f85c39ac44114945fa42e77c40b0a2e882f82b8ea85cd6a014592dbccd675e3e702a4463a8ff0fef527fbda4a23e82a460f7bdc89159a8825105e27377 SHA512 a0ac7ff915e57557239770ececc663236ab309562a13f6b4757449daf3e4fadb588fd1e90f2188d694f1d59ae73329c22c668720b5b387f07a9215cbec6b5c1f -DIST vmm-sys-util-0.4.0.crate 54433 BLAKE2B cd5296f8dd291f7f7857e3a5af528913e7a8f045434dcfb4496f2b57a9ff50df32d7f8b4246a0a772435b5f85f4505a1a3c61b7523243f6bcfa229c01f465812 SHA512 ae2bbab2b849e2d2ed5be2eb4406597aada792a8e61b688333f92eba1aa2c3fd2d20fc759b99aa22b0301e72053f13e6b7b26015239ce09bfc96c670c1d91002 diff --git a/app-emulation/firecracker/firecracker-0.21.1-r1.ebuild b/app-emulation/firecracker/firecracker-0.21.1-r1.ebuild deleted file mode 100644 index da29ed53e5af..000000000000 --- a/app-emulation/firecracker/firecracker-0.21.1-r1.ebuild +++ /dev/null @@ -1,89 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -CRATES=" -aho-corasick-0.7.8 -backtrace-0.3.44 -backtrace-sys-0.1.32 -bitflags-1.2.1 -cc-1.0.50 -cfg-if-0.1.10 -cpuid-0.1.0 -device_tree-1.1.0 -epoll-4.1.0 -itoa-0.4.5 -kernel-0.1.0 -kvm-bindings-0.2.0 -kvm-ioctls-0.5.0 -lazy_static-1.4.0 -libc-0.2.66 -log-0.4.8 -logger-0.1.0 -memchr-2.3.2 -proc-macro2-1.0.8 -quote-1.0.2 -regex-1.3.4 -regex-syntax-0.6.14 -rustc-demangle-0.1.16 -ryu-1.0.2 -seccomp-0.1.0 -serde-1.0.104 -serde_derive-1.0.104 -serde_json-1.0.48 -syn-1.0.14 -thread_local-1.0.1 -timerfd-1.1.1 -unicode-xid-0.2.0 -vm-memory-0.1.0 -vmm-sys-util-0.4.0 -" - -inherit cargo linux-info toolchain-funcs - -DESCRIPTION="Secure and fast microVMs for serverless computing" -HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker" -SRC_URI="https://github.com/firecracker-microvm/firecracker/archive/v${PV}.tar.gz -> ${P}.tar.gz - $(cargo_crate_uris ${CRATES})" - -LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0" -SLOT="0" -KEYWORDS="-* ~amd64 ~arm64" - -RESTRICT="test" - -BDEPEND="acct-group/kvm" - -QA_FLAGS_IGNORED='.*' - -set_target_arch() { - case "$(tc-arch)" in - amd64) target_arch=x86_64 ;; - arm64) target_arch=aarch64 ;; - esac -} - -pkg_setup() { - - if ! linux_config_exists; then - eerror "Unable to check your kernel for KVM support" - else - CONFIG_CHECK+=" ~KVM_AMD" || \ - CONFIG_CHECK+=" ~KVM_INTEL" - ERROR_KVM="${P} requires KVM in-kernel support." - fi -} - -src_compile() { - local target_arch - set_target_arch - cargo_src_compile --target ${target_arch}-unknown-linux-gnu -} - -src_install() { - local target_arch - set_target_arch - dobin "${S}"/build/cargo_target/${target_arch}-unknown-linux-gnu/release/${PN} - dobin "${S}"/build/cargo_target/${target_arch}-unknown-linux-gnu/release/jailer -} diff --git a/app-emulation/firecracker/metadata.xml b/app-emulation/firecracker/metadata.xml deleted file mode 100644 index 6698a4ab7883..000000000000 --- a/app-emulation/firecracker/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zlogene@gentoo.org</email> - <name>Mikle Kolyada</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/flannel/Manifest b/app-emulation/flannel/Manifest deleted file mode 100644 index 236b7994970b..000000000000 --- a/app-emulation/flannel/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST flannel-0.11.0.tar.gz 6443391 BLAKE2B 5358e513a73fec6d8fcdb0182ec814fcf204eb12830f7d60acb3d4432f821ccc9e174fcc7adb57584ab1782c3f285e46b51bb0f76635fab9cf851cb2bd40c1b3 SHA512 72d18cd4ec58ede3848da3b94b7f3e33f8dda59d9fceb13864757998a24f0b312bc5b5d7927d3da8a805475efee469095ac09390fa632eb0c6ef9dd0f5d38a3b diff --git a/app-emulation/flannel/files/flannel-docker.conf b/app-emulation/flannel/files/flannel-docker.conf deleted file mode 100644 index 8f5517776b89..000000000000 --- a/app-emulation/flannel/files/flannel-docker.conf +++ /dev/null @@ -1,2 +0,0 @@ -[Service] -EnvironmentFile=-/run/flannel/docker diff --git a/app-emulation/flannel/files/flannel.tmpfilesd b/app-emulation/flannel/files/flannel.tmpfilesd deleted file mode 100644 index 98e5abd9b20f..000000000000 --- a/app-emulation/flannel/files/flannel.tmpfilesd +++ /dev/null @@ -1 +0,0 @@ -d /run/flannel 0755 root root diff --git a/app-emulation/flannel/files/flanneld.confd b/app-emulation/flannel/files/flanneld.confd deleted file mode 100644 index 18686aa5d223..000000000000 --- a/app-emulation/flannel/files/flanneld.confd +++ /dev/null @@ -1,2 +0,0 @@ -# arguments for flannel -command_args="" diff --git a/app-emulation/flannel/files/flanneld.initd b/app-emulation/flannel/files/flanneld.initd deleted file mode 100644 index d5d966a40d30..000000000000 --- a/app-emulation/flannel/files/flanneld.initd +++ /dev/null @@ -1,19 +0,0 @@ -#!/sbin/openrc-run -# Copyright 2016-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="Flannel Network Fabric for Containers" -pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"} -user=${user:-root} -group=${group:-root} - -command="/usr/bin/${RC_SVCNAME}" -command_args="${command_args}" -command_background="true" -start_stop_daemon_args="--user ${user} --group ${group} \ - --stdout /var/log/flannel/flannel.log \ - --stderr /var/log/flannel/flannel.log" - -depend() { - need net -} diff --git a/app-emulation/flannel/files/flanneld.logrotated b/app-emulation/flannel/files/flanneld.logrotated deleted file mode 100644 index 4108e6305578..000000000000 --- a/app-emulation/flannel/files/flanneld.logrotated +++ /dev/null @@ -1,7 +0,0 @@ -/var/log/flannel/* { - missingok - size 5M - rotate 3 - compress - copytruncate -} diff --git a/app-emulation/flannel/files/flanneld.service b/app-emulation/flannel/files/flanneld.service deleted file mode 100644 index 86e69a49e73f..000000000000 --- a/app-emulation/flannel/files/flanneld.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Flanneld overlay address etcd agent -After=network.target -Before=docker.service - -[Service] -Type=notify -Environment=FLANNEL_ETCD=http://127.0.0.1:4001,http://127.0.0.1:2379 FLANNEL_ETCD_KEY=/coreos.com/network -ExecStart=/usr/bin/flanneld -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} $FLANNEL_OPTIONS -ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker - -[Install] -RequiredBy=docker.service diff --git a/app-emulation/flannel/flannel-0.11.0.ebuild b/app-emulation/flannel/flannel-0.11.0.ebuild deleted file mode 100644 index a5f28c4632f6..000000000000 --- a/app-emulation/flannel/flannel-0.11.0.ebuild +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit golang-vcs-snapshot systemd user - -KEYWORDS="~amd64 ~arm64" -DESCRIPTION="An etcd backed network fabric for containers" -EGO_PN="github.com/coreos/flannel" -HOMEPAGE="https://github.com/coreos/flannel" -SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" -LICENSE="Apache-2.0 BSD ISC LGPL-3 MIT" -SLOT="0" -IUSE="hardened" -RESTRICT="test" - -src_prepare() { - default - sed -e "s:^var Version =.*:var Version = \"${PV}\":" \ - -i "${S}/src/${EGO_PN}/version/version.go" || die -} - -src_compile() { - CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')"\ - GOPATH="${WORKDIR}/${P}" \ - go install -v -work -x ${EGO_BUILD_FLAGS} "${EGO_PN}" - [[ -x bin/${PN} ]] || die -} - -src_test() { - GOPATH="${WORKDIR}/${P}" \ - go test -v -work -x "${EGO_PN}" || die -} - -src_install() { - newbin "bin/${PN}" ${PN}d - cd "src/${EGO_PN}" || die - exeinto /usr/libexec/flannel - doexe dist/mk-docker-opts.sh - insinto /etc/systemd/system/docker.service.d - newins "${FILESDIR}/flannel-docker.conf" flannel.conf - newinitd "${FILESDIR}"/flanneld.initd flanneld - newconfd "${FILESDIR}"/flanneld.confd flanneld - keepdir /var/log/${PN} - insinto /etc/logrotate.d - newins "${FILESDIR}"/flanneld.logrotated flanneld - systemd_newtmpfilesd "${FILESDIR}/flannel.tmpfilesd" flannel.conf - systemd_dounit "${FILESDIR}/flanneld.service" - dodoc README.md -} diff --git a/app-emulation/flannel/metadata.xml b/app-emulation/flannel/metadata.xml deleted file mode 100644 index 26007a60b41b..000000000000 --- a/app-emulation/flannel/metadata.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - </maintainer> - <upstream> - <remote-id type="github">coreos/flannel</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/free42/Manifest b/app-emulation/free42/Manifest index e9cdf10eee65..788f9590d5e3 100644 --- a/app-emulation/free42/Manifest +++ b/app-emulation/free42/Manifest @@ -1,3 +1,3 @@ -DIST free42-nologo-2.0.20.tgz 7390214 BLAKE2B 306f3378bcbb44fa7982c5d9c29bfbea62e915ca50ca5e5216f46fbf483f110a1288d4800991a74622a042517496ff8dd94c3fa3249e8bb4181957e6b23d5ea3 SHA512 9b540fbc50df2f94b135b5e778354f330df77a54ef2ad99b257b5b91d1e3e8d1241e8a834522fc46fe33571ea2695ad8889b427dbcf653870672e89cd56d60f5 -DIST free42-nologo-2.5.18.tgz 7413195 BLAKE2B c3d7d92c2f9b527fb6932f46644cb306217ab103bde1ecfd52a2659a1a71eaef199abeda8b24977e338757bfd57c824c31bc3bf9aa396e3372629b04737e6232 SHA512 3543d0a0cc4dff9c96c1121f221dded40f2574fffbd4747ef179b0d5cf75a003f49bc548df554fb46504af787d9d2fdb434c23a420f4b3592c838f4d00ac7140 -DIST free42-nologo-2.5.20.tgz 7414358 BLAKE2B f1e0963e6a808121efc4d9bd82863d8c7898f65504d4c59f6a6beadc0c4e5c1335ce4c65d25550a3f4d5c080e1933ad30f6325661af4a513f69941c48adda1a5 SHA512 04a01f29ed5a3c9374de98ead6c54191dbde6b0e3d9923b5c89f18f868630b50235711820e751e4a1e3efc0600b1a7a105e8800f660d67124458a8f2826c840f +DIST free42-nologo-2.5.24.tgz 7423183 BLAKE2B e10425af8d5c30be6ab5b728130bbe3068c414e24f033b65623951f915bcfeea0672857ff8def3e9f2766aba79411a1022d4b83592281567de38e82613d8a832 SHA512 a0702c3e4b2f3f38f73c54de4e51da8d1dc90585b253d1ae087d59dfabbe83be9c80086df8540cb6420dae8c6e766cd1ccce875d9bcb94ecbc85791e3fa89b8b +DIST free42-nologo-3.1.3.tgz 7461009 BLAKE2B 915954de24a31f89f112d0d5e13ed01bd6a1e341549c8a86f463858e4071fc0a4751e94a6a257d561da570fd3705250d740c741925ee2b022a50966b8d5b16f8 SHA512 5ad6e6702a789c81d8942c4030606e44112fc21f1af6e5e23f21825115cabbc03cbcb142351d5d0451f5bf8d603d653b783ebe1293fa7ebfb04c93dfdea3455d +DIST free42-nologo-3.1.7.tgz 7464073 BLAKE2B 0cff2d3292f45fc7341f8ed084c931da6a635498a62b7a20cc250df64a16d44a1c18a260e701971e2e7d68e11b1b84aa301405cd08c5e11b39e31f59a78647cc SHA512 2464385acf58aa17091d94ae81dde8e6e7f543c728c31cc03f1bc45a9ed5af9b27a3db41624222fd29ea61fe18541af9350e3e4369c54744c7b2a4dc799034fc diff --git a/app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch b/app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch deleted file mode 100644 index 543595c6a1a1..000000000000 --- a/app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nuar a/gtk/build-intel-lib.sh b/gtk/build-intel-lib.sh ---- a/gtk/build-intel-lib.sh -+++ b/gtk/build-intel-lib.sh -@@ -4,7 +4,7 @@ - cd IntelRDFPMathLib20U1 - patch -p0 <../intel-lib-linux.patch - cd LIBRARY --make CC=gcc CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 -+make A=a CC=gcc CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 - mv libbid.a ../../gcc111libbid.a - cd ../.. - ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc diff --git a/app-emulation/free42/files/free42-2.0.10-fix-makefile.patch b/app-emulation/free42/files/free42-2.0.10-fix-makefile.patch deleted file mode 100644 index 0fb915df2983..000000000000 --- a/app-emulation/free42/files/free42-2.0.10-fix-makefile.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -Nuar a/gtk/Makefile b/gtk/Makefile ---- a/gtk/Makefile -+++ b/gtk/Makefile -@@ -15,11 +15,11 @@ - # along with this program; if not, see http://www.gnu.org/licenses/. - ############################################################################### - --CFLAGS = -MMD \ -+CFLAGS := -MMD \ - -Wall \ - -Wno-parentheses \ - -Wno-write-strings \ -- -g \ -+ -Wno-error=narrowing \ - -I/usr/X11R6/include \ - $(shell pkg-config --cflags gtk+-2.0) \ - -DVERSION="\"$(shell cat ../VERSION)\"" \ -@@ -27,21 +27,25 @@ - -DDECIMAL_GLOBAL_ROUNDING=1 \ - -DDECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS=1 \ - -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \ -- -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 -+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 \ -+ ${CFLAGS} - --CXXFLAGS = $(CFLAGS) \ -+CXXFLAGS := $(CFLAGS) \ - -fno-exceptions \ - -fno-rtti \ -- -D_WCHAR_T_DEFINED -+ -D_WCHAR_T_DEFINED \ -+ ${CXXFLAGS} - --LDFLAGS = -L/usr/X11R6/lib --LIBS = gcc111libbid.a -lXmu $(shell pkg-config --libs gtk+-2.0) -+MYLDFLAGS = -L/usr/X11R6/lib -+LIBS = gcc111libbid.a -lX11 -ldl -lXmu $(shell pkg-config --libs gtk+-2.0) - - ifeq "$(shell uname -s)" "Linux" --LDFLAGS += -Wl,--hash-style=both -+MYLDFLAGS += -Wl,--hash-style=both - LIBS += -lpthread - endif - -+MYLDFLAGS += ${LDFLAGS} -+ - SRCS = shell_main.cc shell_skin.cc skins.cc keymap.cc shell_loadimage.cc \ - shell_spool.cc core_main.cc core_commands1.cc core_commands2.cc \ - core_commands3.cc core_commands4.cc core_commands5.cc \ -@@ -83,7 +87,7 @@ - endif - - $(EXE): $(OBJS) -- $(CXX) -o $(EXE) $(LDFLAGS) $(OBJS) $(LIBS) -+ $(CXX) -o $(EXE) $(MYLDFLAGS) $(OBJS) $(LIBS) - - $(SRCS) skin2cc.cc keymap2cc.cc skin2cc.conf: symlinks - -@@ -107,7 +111,7 @@ - - symlinks: - for fn in `cd ../common; /bin/ls`; do ln -s ../common/$$fn; done -- sh ./build-intel-lib.sh -+ +sh ./build-intel-lib.sh - ln -s IntelRDFPMathLib20U1/TESTS/readtest.c - touch symlinks - diff --git a/app-emulation/free42/files/free42-3.0.14-fix-makefile.patch b/app-emulation/free42/files/free42-3.0.14-fix-makefile.patch new file mode 100644 index 000000000000..6e46ed540320 --- /dev/null +++ b/app-emulation/free42/files/free42-3.0.14-fix-makefile.patch @@ -0,0 +1,26 @@ +diff -Naur free42-nologo-3.0.14.orig/gtk/Makefile free42-nologo-3.0.14/gtk/Makefile +--- free42-nologo-3.0.14.orig/gtk/Makefile 2022-08-13 23:55:44.000000000 +0200 ++++ free42-nologo-3.0.14/gtk/Makefile 2022-09-23 20:46:30.096874563 +0200 +@@ -40,10 +40,11 @@ + -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \ + -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 + +-CXXFLAGS = $(CFLAGS) \ ++CXXFLAGS := $(CFLAGS) \ + -fno-exceptions \ + -fno-rtti \ +- -D_WCHAR_T_DEFINED ++ -D_WCHAR_T_DEFINED \ ++ ${CXXFLAGS} + + LIBS = gcc111libbid.a $(shell $(PKG_CONFIG) --libs gtk+-3.0) + +@@ -118,7 +119,7 @@ + ./keymap2cc + + gcc111libbid.a: +- sh ./build-intel-lib.sh ++ +sh ./build-intel-lib.sh + ln -s IntelRDFPMathLib20U1/TESTS/readtest.c + + symlinks: diff --git a/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch b/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch new file mode 100644 index 000000000000..283c6c1435be --- /dev/null +++ b/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch @@ -0,0 +1,65 @@ +diff -Naur free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh free42-nologo-3.0.16/gtk/build-intel-lib.sh +--- free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh 2022-10-29 17:03:11.000000000 +0200 ++++ free42-nologo-3.0.16/gtk/build-intel-lib.sh 2022-11-06 22:09:42.384802729 +0100 +@@ -10,13 +10,6 @@ + fi + fi + +-which gcc >/dev/null +-if [ $? -eq 0 ]; then +- CC=gcc +-else +- CC=cc +-fi +- + # Hack to support FreeBSD; not 100% sure what this does, but it produces a + # library that passes all tests. + +@@ -64,8 +57,11 @@ + ;; + esac + ++patch -p0 <../intel-lib-custom-cc.patch ++ + cd LIBRARY +-$MK $OS_ARG CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG ++echo $MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG ++$MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG + mv libbid.a ../../gcc111libbid.a + cd ../.. + ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc +diff -Naur free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch +--- free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch 1970-01-01 01:00:00.000000000 +0100 ++++ free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch 2022-11-06 22:18:35.428433045 +0100 +@@ -0,0 +1,31 @@ ++diff -Naur orig/LIBRARY/makefile.iml_head LIBRARY/makefile.iml_head ++--- orig/LIBRARY/makefile.iml_head 2011-07-12 17:26:21.000000000 +0200 +++++ LIBRARY/makefile.iml_head 2022-11-06 22:18:17.048411637 +0100 ++@@ -527,12 +527,8 @@ ++ CC_TYPES := gcc cl ++ INTEL_CC_LIST := icc icl ++ ++-CC_NAME_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST)) ++-ifeq ($(CC_NAME_INDEX),) ++- $(error "Unknown CC_NAME ($(CC_NAME)). Must be one of $(CC_NAME_LIST)) ++-endif ++ ++-CC_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST)) +++CC_INDEX := 3 ++ CC_TYPE := $(word $(CC_INDEX),$(CC_TYPE_LIST)) ++ CC_TYPE_INDEX := $(call GetIndex,$(CC_TYPE),$(CC_TYPES)) ++ ++@@ -543,13 +539,6 @@ ++ _CPP := $(CC_NAME) $(call CcNameSelect,-EP,-EP,-E -P,-EP) ++ _CC := $(CC_NAME) $(call CcNameSelect,, -nologo,, -nologo) ++ ++-ifeq ($(origin CC),default) ++- CC := $(_CC) ++-endif ++-ifeq ($(origin CPP),default) ++- CPP := $(_CPP) ++-endif ++- ++ CselCc = $(call Cset,$1,$(call CcTypeSelect,$2,$3)) ++ ++ QOPT := $(call CselCc, QOPT, -, /Q ) diff --git a/app-emulation/free42/free42-2.5.20.ebuild b/app-emulation/free42/free42-2.5.24.ebuild index bd3148a0b387..a8ede08965a1 100644 --- a/app-emulation/free42/free42-2.5.20.ebuild +++ b/app-emulation/free42/free42-2.5.24.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -13,7 +13,7 @@ SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="+alsa" DEPEND="dev-libs/atk diff --git a/app-emulation/free42/free42-2.5.18.ebuild b/app-emulation/free42/free42-3.1.3.ebuild index bd3148a0b387..1fd58bbcf2cf 100644 --- a/app-emulation/free42/free42-2.5.18.ebuild +++ b/app-emulation/free42/free42-3.1.3.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit toolchain-funcs @@ -16,7 +16,7 @@ SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="+alsa" -DEPEND="dev-libs/atk +DEPEND="app-accessibility/at-spi2-core x11-libs/cairo x11-libs/gdk-pixbuf x11-libs/gtk+:3 @@ -28,14 +28,10 @@ DOCS=( CREDITS HISTORY README ) S="${WORKDIR}/${MY_PV}" PATCHES=( - "${FILESDIR}/${PN}-2.5.16-fix-makefile.patch" - "${FILESDIR}/${PN}-2.5.3-fix-build-intel-lib.patch" + "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch" + "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch" ) -src_prepare() { - default -} - src_compile() { local myconf use alsa && myconf="AUDIO_ALSA=yes" diff --git a/app-emulation/free42/free42-2.0.20.ebuild b/app-emulation/free42/free42-3.1.7.ebuild index 2bc7d946d94b..063f0e457429 100644 --- a/app-emulation/free42/free42-2.0.20.ebuild +++ b/app-emulation/free42/free42-3.1.7.ebuild @@ -1,50 +1,45 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 -inherit eutils toolchain-funcs +inherit toolchain-funcs MY_PV="${PN}-nologo-${PV}" DESCRIPTION="An HP-42S Calculator Simulator" HOMEPAGE="https://thomasokken.com/free42/" SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz" +S=${WORKDIR}/${MY_PV} LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 x86" -IUSE="alsa" +KEYWORDS="~amd64 ~x86" +IUSE="+alsa" -DEPEND="dev-libs/atk +DEPEND="app-accessibility/at-spi2-core x11-libs/cairo x11-libs/gdk-pixbuf - x11-libs/gtk+:2 - x11-libs/pango + x11-libs/gtk+:3 alsa? ( media-libs/alsa-lib )" +RDEPEND="${DEPEND}" -RDEPEND="${DEPEND} - x11-libs/libX11 - x11-libs/libXmu" - -S="${WORKDIR}/${MY_PV}" +DOCS=( CREDITS HISTORY README ) PATCHES=( - "${FILESDIR}/${PN}-2.0.10-fix-makefile.patch" - "${FILESDIR}/${PN}-2.0.10-fix-build-intel-lib.patch" + "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch" + "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch" ) -src_prepare() { - default -} - src_compile() { local myconf use alsa && myconf="AUDIO_ALSA=yes" - emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C "${S}/gtk" + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk + emake -C gtk clean + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk } src_install() { - dodoc CREDITS HISTORY README - dobin gtk/free42dec + default + dobin gtk/free42bin gtk/free42dec } diff --git a/app-emulation/free42/metadata.xml b/app-emulation/free42/metadata.xml index ff7b9a7bc947..ce1f4dd6dc88 100644 --- a/app-emulation/free42/metadata.xml +++ b/app-emulation/free42/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>voyageur@gentoo.org</email> diff --git a/app-emulation/fs-uae-launcher/Manifest b/app-emulation/fs-uae-launcher/Manifest index 1513151a0767..42be2cdab6a4 100644 --- a/app-emulation/fs-uae-launcher/Manifest +++ b/app-emulation/fs-uae-launcher/Manifest @@ -1 +1 @@ -DIST fs-uae-launcher-3.0.5.tar.gz 9633819 BLAKE2B 8ce627302244bbd7d174f28c0dad345699942429c1109a7408c88412f6bb0e3e5d765e6c51abf2b95837a83261023b4f9c58d65892e58043889be8dc5e4cb759 SHA512 1a6700c56a14edce86ffbefee7494117af067da8b1dbc22937a36641ccb90927a3bbb011d15a891388bf08378aa623e00a2d45dbc49e822a5a569e110843add5 +DIST fs-uae-launcher-3.1.70.tar.xz 7707368 BLAKE2B fce6e47b1e09fbfae4959cffe55fec5803aa4dca511af76d621fba2156eee5d76164c0ff5dfad75864b3c2fd5c0a8b5968181538d37b9a039ffd8ab037eeafa2 SHA512 6a4eca273ebd21f64ee0a863497fb39c8b17b6dba0b99a0122f33ea688fb2b341998280b3d0ab4cac2d913bc15834dfec3a1662331dea48933135a82e29f5a83 diff --git a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.0.5.ebuild b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild index 14013d591da6..d76e5f987497 100644 --- a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.0.5.ebuild +++ b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild @@ -1,29 +1,30 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) -DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_SETUPTOOLS=no +PYTHON_COMPAT=( python3_{9..12} ) +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_SINGLE_IMPL=yes inherit distutils-r1 xdg DESCRIPTION="PyQt5-based launcher for FS-UAE" HOMEPAGE="https://fs-uae.net/" -SRC_URI="https://fs-uae.net/stable/${PV}/${P}.tar.gz" +SRC_URI="https://fs-uae.net/files/FS-UAE-Launcher/Stable/${PV}/${P}.tar.xz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="~amd64 ~ppc64" IUSE="lha" +RESTRICT="test" # The test files are just boilerplate. RDEPEND=" app-emulation/fs-uae $(python_gen_cond_dep ' - dev-python/PyQt5[${PYTHON_MULTI_USEDEP},declarative,gui,network,opengl,widgets] - dev-python/pyopengl[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] - lha? ( dev-python/python-lhafile[${PYTHON_MULTI_USEDEP}] ) + dev-python/PyQt5[${PYTHON_USEDEP},declarative,gui,network,opengl,widgets] + dev-python/pyopengl[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + lha? ( dev-python/python-lhafile[${PYTHON_USEDEP}] ) ') " @@ -35,31 +36,18 @@ PATCHES=( "${FILESDIR}"/${PN}-3.0.0-ROMs.patch ) -src_prepare() { - default - - # Unbundle OpenGL library. Keep oyoyo IRC library because upstream - # is long dead and it's not worth packaging separately. - rm -r OpenGL/ || die - sed -i -r "/OpenGL/d" setup.py || die -} - python_compile_all() { - emake -} - -python_install() { - local dir=${EPREFIX}/usr/share/${PN} - distutils-r1_python_install --install-lib="${dir}" --install-scripts="${dir}" + emake mo } python_install_all() { - dosym ../share/${PN}/${PN} /usr/bin/${PN} emake install-data DESTDIR="${D}" prefix="${EPREFIX}"/usr mv "${ED}"/usr/share/doc/{${PN},${PF}} || die } pkg_postinst() { + xdg_pkg_postinst + elog "Some important information:" elog ewarn " - Do not use QtCurve, it will crash PyQt5!" diff --git a/app-emulation/fs-uae-launcher/metadata.xml b/app-emulation/fs-uae-launcher/metadata.xml index 84e4eb59046e..9fd2313bafb0 100644 --- a/app-emulation/fs-uae-launcher/metadata.xml +++ b/app-emulation/fs-uae-launcher/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>chewi@gentoo.org</email> diff --git a/app-emulation/fs-uae/Manifest b/app-emulation/fs-uae/Manifest index 4e1ce60994c8..e1401ffee363 100644 --- a/app-emulation/fs-uae/Manifest +++ b/app-emulation/fs-uae/Manifest @@ -1 +1 @@ -DIST fs-uae-3.0.5.tar.gz 4819884 BLAKE2B 0a82e0635ed02c1b4f04610555370c80ea12a870a73fd00cc98adefcefada2deed293c437202af34fc98e2f695fe1b08df918eca71b504e5b94e5ab3a099d9ed SHA512 b34ffb818040c7bf67022f26e1dbc9ebf06742a354212f2b0d2aa6b8e04c60807893a16ff965c819395f4c3fb3c43c35b38dce848b86fa046a211e12414385c7 +DIST fs-uae-3.1.66.tar.xz 3627688 BLAKE2B 9c7742b78055b4c2409c4527ab3b5daac829fa8d09363c5640ce433770ec0f7f6417cfa5dc7689bfdf747083bad654a8d433216b2c94e93ef3189f7e6f7213d9 SHA512 3d93c6481d4aebb21607fa6cd0716bb809a902a5e6e20cda97751f7878157a0737b80df1290c2e1cf4e13f1e9a824b750c52479cd05e56bff291be7471d167a1 diff --git a/app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch b/app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch new file mode 100644 index 000000000000..0a60301772f1 --- /dev/null +++ b/app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch @@ -0,0 +1,43 @@ +From c5b02df4598c5fbe7a034b67ee06c506abeb3828 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Mon, 18 Oct 2021 10:22:09 +0100 +Subject: [PATCH] Don't assume RTLD_DEEPBIND is always present on Linux + +It's not supported by musl. +--- + configure.ac | 5 +++++ + src/dlopen.cpp | 2 +- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 6e41d68e..2cac2dac 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -655,6 +655,11 @@ AC_CHECK_FUNCS([gettimeofday]) + AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [#include <time.h>]) + + ++# RTLD_DEEPBIND is not supported by all C libraries. ++ ++AC_CHECK_DECLS([RTLD_DEEPBIND], [], [], [#include <dlfcn.h>]) ++ ++ + # Check for POSIX support. + + AS_CASE([$host_os], +diff --git a/src/dlopen.cpp b/src/dlopen.cpp +index f79c401b..14edbc02 100644 +--- a/src/dlopen.cpp ++++ b/src/dlopen.cpp +@@ -22,7 +22,7 @@ UAE_DLHANDLE uae_dlopen(const TCHAR *path) + } + #ifdef _WIN32 + result = LoadLibrary(path); +-#elif defined(LINUX) ++#elif HAVE_DECL_RTLD_DEEPBIND == 1 + result = dlopen(path, RTLD_NOW | RTLD_DEEPBIND); + #else + result = dlopen(path, RTLD_NOW); +-- +2.32.0 + diff --git a/app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch b/app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch new file mode 100644 index 000000000000..cc78261ebe40 --- /dev/null +++ b/app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch @@ -0,0 +1,35 @@ +From 5d7287d1aa99f100e560b5a2d231e49b64a18da3 Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <chewi@gentoo.org> +Date: Sun, 17 Apr 2022 10:29:22 +0100 +Subject: [PATCH] Don't return NULL in mapped_malloc when a bool is expected + +This was apparently breaking the build under musl. +--- + src/memory.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/memory.cpp b/src/memory.cpp +index 3cd7dee6..18d1283a 100644 +--- a/src/memory.cpp ++++ b/src/memory.cpp +@@ -1872,7 +1872,7 @@ bool mapped_malloc (addrbank *ab) + if (id == -1) { + nocanbang (); + if (recurse) +- return NULL; ++ return false; + recurse++; + mapped_malloc (ab); + recurse--; +@@ -1904,7 +1904,7 @@ bool mapped_malloc (addrbank *ab) + return ab->baseaddr != NULL; + } + if (recurse) +- return NULL; ++ return false; + nocanbang (); + recurse++; + mapped_malloc (ab); +-- +2.34.1 + diff --git a/app-emulation/fs-uae/fs-uae-3.0.5.ebuild b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild index 3cf31cf10ce0..a8e64081c609 100644 --- a/app-emulation/fs-uae/fs-uae-3.0.5.ebuild +++ b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild @@ -1,23 +1,24 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools xdg +inherit autotools flag-o-matic xdg DESCRIPTION="Integrates the most accurate Amiga emulation code available from WinUAE" HOMEPAGE="https://fs-uae.net/" -SRC_URI="https://fs-uae.net/stable/${PV}/${P}.tar.gz" +SRC_URI="https://fs-uae.net/files/FS-UAE/Stable/${PV}/${P}.tar.xz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64" -IUSE="fmv glew" +KEYWORDS="~amd64 ~ppc64" +IUSE="fmv glew +jit" RDEPEND=" dev-libs/glib:2 media-libs/libpng:0= media-libs/libsdl2[opengl,X] media-libs/openal + sys-libs/zlib virtual/opengl x11-libs/libdrm x11-libs/libX11 @@ -39,6 +40,8 @@ BDEPEND=" PATCHES=( "${FILESDIR}"/${PN}-3.0.0-libmpeg2.patch "${FILESDIR}"/${PN}-3.0.0-Xatom.h.patch + "${FILESDIR}"/${PN}-3.1.35-deepbind.patch + "${FILESDIR}"/${PN}-3.1.66-musl.patch ) src_prepare() { @@ -53,6 +56,12 @@ src_prepare() { } src_configure() { + # -Werror=odr -Werror=lto-type-mismatch + # https://bugs.gentoo.org/854519 + # + # Fixed upstream in git master but no releases since 2021 and no activity since 2022. + filter-lto + # Qt and Udis86 are unused. econf \ --enable-a2065 \ @@ -68,8 +77,7 @@ src_configure() { --enable-drivesound \ --enable-fdi2raw \ --enable-gfxboard \ - --enable-jit \ - --enable-jit-fpu \ + --disable-lua \ --enable-netplay \ --enable-ncr \ --enable-ncr9x \ @@ -90,8 +98,11 @@ src_configure() { --enable-vpar \ --enable-xml-shader \ --enable-zip \ + --without-cef \ --with-glad \ --without-qt \ + $(use_enable jit) \ + $(use_enable jit jit-fpu) \ $(use_with fmv libmpeg2) \ $(use_with glew) } diff --git a/app-emulation/fs-uae/metadata.xml b/app-emulation/fs-uae/metadata.xml index e92d93d760f7..11cfe797e3b9 100644 --- a/app-emulation/fs-uae/metadata.xml +++ b/app-emulation/fs-uae/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>chewi@gentoo.org</email> diff --git a/app-emulation/fuse-utils/fuse-utils-1.4.3.ebuild b/app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild index 8e44998a4a6a..7da4b0c2865e 100644 --- a/app-emulation/fuse-utils/fuse-utils-1.4.3.ebuild +++ b/app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 inherit autotools @@ -11,16 +11,17 @@ SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="~amd64 ~riscv ~x86" IUSE="audiofile gcrypt jpeg png zlib" -RDEPEND=">=app-emulation/libspectrum-1.4.4[gcrypt?,zlib?] +RDEPEND=">=app-emulation/libspectrum-1.4.4[audiofile?,gcrypt?,zlib?] audiofile? ( >=media-libs/audiofile-0.3.6 ) - jpeg? ( virtual/jpeg:0 ) + gcrypt? ( dev-libs/libgcrypt ) + jpeg? ( media-libs/libjpeg-turbo:= ) png? ( media-libs/libpng:0 ) zlib? ( sys-libs/zlib )" -DEPEND="${RDEPEND} - virtual/pkgconfig" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" PATCHES=( "${FILESDIR}"/remove-local-prefix.patch diff --git a/app-emulation/fuse-utils/metadata.xml b/app-emulation/fuse-utils/metadata.xml index 31a5bcaf4749..8ba930b34e02 100644 --- a/app-emulation/fuse-utils/metadata.xml +++ b/app-emulation/fuse-utils/metadata.xml @@ -1,13 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>0xe2.0x9a.0x9b@gmail.com</email> - <name>Jan Ziak</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Gentoo Proxy Maintainers Project</name> + + <email>marecki@gentoo.org</email> + <name>Marek Szuba</name> </maintainer> <use> <flag name="gcrypt">Use <pkg>dev-libs/libgcrypt</pkg> for low-level crypto of some diff --git a/app-emulation/fuse/Manifest b/app-emulation/fuse/Manifest index a4edc94f79d0..127daceb5a37 100644 --- a/app-emulation/fuse/Manifest +++ b/app-emulation/fuse/Manifest @@ -1 +1 @@ -DIST fuse-1.5.7.tar.gz 1634568 BLAKE2B 9d2f3c310132dc57336995c31adeb37d727506719d1089b2009a2f44cbfa59fc9c4e9252aeff64cdd22b7326328518b5da33af51be687f321b891b9d1dd2b646 SHA512 ac11e03fc203f98433253fb72d7700cf6285ad8662147f318bb4ceda3888bc865b80d85473a3b2bda9e0971989b1579fc928f41ddabbf01d58358362066be13d +DIST fuse-1.6.0.tar.gz 1686171 BLAKE2B d1e6b166f2f649f408349b16a5eb40dd414750ed7a805eb6505b6c81be6ed7bcaa4e6f0b14057645172add1b1a77881f90b64767390fe1a64a486168f452d29d SHA512 5096b24b5b3d812942a7ad401b886b6a99f5493686912cb4aff18ede65404ae97a9bcafa6337aaed4378382f2a170918797d7d4570bb809476be5aa9fc625b8b diff --git a/app-emulation/fuse/files/multiple-definition.patch b/app-emulation/fuse/files/multiple-definition.patch deleted file mode 100644 index 8a8e9d7d1758..000000000000 --- a/app-emulation/fuse/files/multiple-definition.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Naur fuse-1.5.7/ui/widget/widget.c fuse-1.5.7-patched/ui/widget/widget.c ---- fuse-1.5.7/ui/widget/widget.c 2018-08-06 15:36:04.000000000 +0200 -+++ fuse-1.5.7-patched/ui/widget/widget.c 2020-09-20 15:27:42.045382588 +0200 -@@ -90,9 +90,6 @@ - - static widget_recurse_t widget_return[10]; /* The stack to recurse on */ - --/* The settings used whilst playing with an options dialog box */ --settings_info widget_options_settings; -- - static int widget_read_font( const char *filename ) - { - utils_file file; diff --git a/app-emulation/fuse/fuse-1.5.7.ebuild b/app-emulation/fuse/fuse-1.5.7.ebuild deleted file mode 100644 index 063ecf27471a..000000000000 --- a/app-emulation/fuse/fuse-1.5.7.ebuild +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit autotools - -DESCRIPTION="Free Unix Spectrum Emulator by Philip Kendall" -HOMEPAGE="http://fuse-emulator.sourceforge.net" -SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" -IUSE="alsa ao backend-fbcon backend-sdl backend-svga backend-X gpm joystick memlimit png xml" - -# Only one UI back-end can be enabled at a time -REQUIRED_USE="?? ( backend-fbcon backend-sdl backend-svga backend-X )" - -RDEPEND=" - >=app-emulation/libspectrum-1.4.4 - dev-libs/glib:2 - alsa? ( media-libs/alsa-lib ) - ao? ( media-libs/libao ) - backend-sdl? ( media-libs/libsdl ) - backend-svga? ( media-libs/svgalib ) - backend-X? ( x11-libs/libX11 x11-libs/libXext ) - !backend-fbcon? ( !backend-sdl? ( !backend-svga? ( !backend-X? ( x11-libs/gtk+:3 ) ) ) ) - gpm? ( sys-libs/gpm ) - joystick? ( !backend-sdl? ( media-libs/libjsw ) ) - png? ( media-libs/libpng:0= sys-libs/zlib ) - xml? ( dev-libs/libxml2:2 )" -DEPEND="${RDEPEND} - backend-fbcon? ( virtual/linux-sources ) - dev-lang/perl - virtual/pkgconfig" - -DOCS=( AUTHORS ChangeLog README THANKS ) - -PATCHES=( - "${FILESDIR}"/multiple-definition.patch - "${FILESDIR}"/remove-local-prefix.patch -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - local myconf=( - --without-win32 - $(use_with alsa) - $(use_with ao libao) - $(use_with gpm) - $(use_with joystick) - $(use_enable memlimit smallmem) - $(use_with png) - $(use_with xml libxml2) - ) - - if use backend-sdl; then - myconf+=("--with-sdl") - elif use backend-X; then - myconf+=("--without-gtk") - elif use backend-svga; then - myconf+=("--with-svgalib") - elif use backend-fbcon; then - myconf+=("--with-fb") - else - myconf+=("--with-gtk") - fi - - use joystick && myconf+=( $(use_enable backend-sdl ui-joystick) ) - - econf "${myconf[@]}" -} - -src_test() { - emake test -} diff --git a/app-emulation/fuse/fuse-1.6.0-r1.ebuild b/app-emulation/fuse/fuse-1.6.0-r1.ebuild new file mode 100644 index 000000000000..1d80c3a9662f --- /dev/null +++ b/app-emulation/fuse/fuse-1.6.0-r1.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools flag-o-matic xdg + +DESCRIPTION="Free Unix Spectrum Emulator by Philip Kendall" +HOMEPAGE="http://fuse-emulator.sourceforge.net" +SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~riscv ~x86" +IUSE="alsa ao backend-X backend-fbcon +backend-gtk3 backend-sdl backend-svga gpm joystick memlimit png pulseaudio +xml +zlib" + +# TODO: +# - allow using sdl audio driver without using for the UI +# - allow using sdl joystick support with gtk3 or X UI in place of libjsw +# - when using sdl for one of the above but not the UI, allow using sdl2 instead + +# At most one audio driver and at most one UI back-end can be enabled at a time +REQUIRED_USE="?? ( alsa ao backend-sdl pulseaudio ) + ?? ( backend-X backend-fbcon backend-gtk3 backend-sdl backend-svga ) + png? ( zlib )" + +RDEPEND=" + >=app-emulation/libspectrum-1.5.0[zlib?] + dev-libs/glib:2 + alsa? ( media-libs/alsa-lib ) + ao? ( media-libs/libao ) + backend-X? ( x11-libs/libX11 x11-libs/libXext ) + backend-gtk3? ( x11-libs/gtk+:3 ) + backend-sdl? ( media-libs/libsdl[joystick,sound] ) + backend-svga? ( media-libs/svgalib ) + gpm? ( backend-fbcon? ( sys-libs/gpm ) ) + joystick? ( !backend-sdl? ( media-libs/libjsw ) ) + png? ( media-libs/libpng:0= ) + pulseaudio? ( media-libs/libpulse ) + xml? ( dev-libs/libxml2:2 ) + zlib? ( sys-libs/zlib )" +DEPEND="${RDEPEND} + backend-fbcon? ( virtual/linux-sources )" +BDEPEND="dev-lang/perl + virtual/pkgconfig" + +DOCS=( AUTHORS ChangeLog README THANKS ) + +PATCHES=( + "${FILESDIR}"/remove-local-prefix.patch +) + +_fuse_audio_driver() { + if use alsa; then + echo "alsa" + elif use ao; then + echo "libao" + elif use backend-sdl; then + echo "sdl" + elif use pulseaudio; then + echo "pulseaudio" + else + echo "null" + fi +} + +src_prepare() { + default + xdg_environment_reset + eautoreconf + + # Bug #854522 + filter-lto +} + +src_configure() { + local myconf=( + --enable-desktop-integration + --without-win32 + --with-audio-driver="$(_fuse_audio_driver)" + $(use_with gpm) + $(use_with joystick) + $(use_enable memlimit smallmem) + $(use_with png) + $(use_with xml libxml2) + $(use_with zlib) + ) + + # The pure-X UI hasn't got its own configure argument, instead it is + # what is used under Linux if all other back-ends have been disabled + # - and all except the Gtk+ one are off by default. + if use backend-X; then + myconf+=("--without-gtk") + elif use backend-fbcon; then + myconf+=("--with-fb") + elif use backend-gtk3; then + myconf+=("--with-gtk") + elif use backend-sdl; then + myconf+=("--with-sdl") + elif use backend-svga; then + myconf+=("--with-svgalib") + else + myconf+=("--with-null-ui") + fi + + if use joystick; then + myconf+=( $(use_enable backend-sdl ui-joystick) ) + fi + + econf "${myconf[@]}" +} + +src_test() { + emake test +} + +pkg_postinst() { + xdg_pkg_postinst + if use pulseaudio; then + ewarn "The PulseAudio driver in ${PN} is experimental" + fi +} diff --git a/app-emulation/fuse/metadata.xml b/app-emulation/fuse/metadata.xml index 38319f64f42e..5b50c50c218a 100644 --- a/app-emulation/fuse/metadata.xml +++ b/app-emulation/fuse/metadata.xml @@ -1,19 +1,16 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>0xe2.0x9a.0x9b@gmail.com</email> - <name>Jan Ziak</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Gentoo Proxy Maintainers Project</name> + <email>marecki@gentoo.org</email> + <name>Marek Szuba</name> </maintainer> <upstream> <remote-id type="sourceforge">fuse-emulator</remote-id> </upstream> <use> <flag name="backend-fbcon">Use framebuffer rendering backend</flag> + <flag name="backend-gtk3">Use Gtk+ rendering backend</flag> <flag name="backend-sdl">Use SDL rendering backend</flag> <flag name="backend-svga">Use svgalib rendering backend</flag> <flag name="backend-X">Use X11 rendering backend</flag> diff --git a/app-emulation/gallium-nine-standalone/Manifest b/app-emulation/gallium-nine-standalone/Manifest index 071df4f33d3f..90d5abcd33ea 100644 --- a/app-emulation/gallium-nine-standalone/Manifest +++ b/app-emulation/gallium-nine-standalone/Manifest @@ -1 +1,2 @@ -DIST gallium-nine-standalone-0.7.tar.gz 67699 BLAKE2B 85520de46e0e821f63d89691e322c3001ae853a0058a5077b484da6a1596a7ed03d2e2b7dc2686661fd21d34b33e10f4549437ce5790f18e1e6cc77c894e9d1e SHA512 9007564347bb6677f3d4eff83f744d39487c09b543489f02dcf7606917ecd9b72decf8176d9daecb6039b8998e97f737d9f7a71a5052f4d5c73f2e99e92af43c +DIST gallium-nine-standalone-0.8.tar.gz 66656 BLAKE2B 5eaebcc514570dbaff44c4c889025d19a26c0b54941d1ab99ec131216a6eb49c2c649f1a4df51534f608653dab8b5e55a35afc57ba04a0ab6f4dea0edabac55c SHA512 3f339f909c6d65a2e5b5c912785aaa6f297e95549c868ab679dfb8e99d67db9906b6e75e3679a4e3e003f512a54ceb9953f941a4129f488973c16e1a3ac7267c +DIST gallium-nine-standalone-0.9.tar.gz 67687 BLAKE2B 24e4250cacde3306cdfa8d9b24fa2fa0eb7dee4e5722973baa59f25999a75e689acad4c24c8bbfbc34aaddc24bdfe1977ff2f85da08a81b4ce6b222d5d0bfae0 SHA512 1ed384563736ab5db4167ca28163c93e58e9ff7ee62656d4adea8bc937484aebce3ed06f4600a080ad61fcfedd12febb3db9430be6cc8dd97484982694fde3a7 diff --git a/app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch b/app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch deleted file mode 100644 index fed5c0403688..000000000000 --- a/app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/tools/cross-wine32.in b/tools/cross-wine32.in -index bfbe410..0064cf8 100644 ---- a/tools/cross-wine32.in -+++ b/tools/cross-wine32.in -@@ -5,9 +5,10 @@ strip = 'strip' - pkgconfig = '@PKG_CONFIG@' - - [properties] --c_args = ['-m32'] --c_link_args = ['-m32', '-mwindows'] -+c_args = @CFLAGS@ + ['-m32'] -+c_link_args = @LDFLAGS@ + ['-m32', '-mwindows'] - needs_exe_wrapper = true -+pkg_config_libdir = '@PKG_CONFIG_LIBDIR@' - - [host_machine] - system = 'linux' -diff --git a/tools/cross-wine64.in b/tools/cross-wine64.in -index 5e19023..06b1f2a 100644 ---- a/tools/cross-wine64.in -+++ b/tools/cross-wine64.in -@@ -5,9 +5,10 @@ strip = 'strip' - pkgconfig = '@PKG_CONFIG@' - - [properties] --c_args = ['-m64'] --c_link_args = ['-m64', '-mwindows'] -+c_args = @CFLAGS@ + ['-m64'] -+c_link_args = @LDFLAGS@ + ['-m64', '-mwindows'] - needs_exe_wrapper = true -+pkg_config_libdir = '@PKG_CONFIG_LIBDIR@' - - [host_machine] - system = 'linux' diff --git a/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch b/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch new file mode 100644 index 000000000000..7aacc7b8bd9b --- /dev/null +++ b/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch @@ -0,0 +1,32 @@ +diff --color -Naur a/tools/cross-wine32.in b/tools/cross-wine32.in +--- a/tools/cross-wine32.in 2021-04-24 11:27:05.044134837 +0100 ++++ b/tools/cross-wine32.in 2021-04-24 11:28:55.880227178 +0100 +@@ -5,9 +5,10 @@ + pkgconfig = '@PKG_CONFIG@' + + [properties] +-c_args = ['-m32'] +-c_link_args = ['-m32', '-mwindows', '-L@WINE32_LIBDIR@'] ++c_args = @CFLAGS@ + ['-m32'] ++c_link_args = @LDFLAGS@ + ['-m32', '-mwindows', '-L@WINE32_LIBDIR@'] + needs_exe_wrapper = true ++pkg_config_libdir = '@PKG_CONFIG_LIBDIR@' + + [host_machine] + system = 'linux' +diff --color -Naur a/tools/cross-wine64.in b/tools/cross-wine64.in +--- a/tools/cross-wine64.in 2021-04-24 11:27:05.044134837 +0100 ++++ b/tools/cross-wine64.in 2021-04-24 11:29:14.999766636 +0100 +@@ -5,9 +5,10 @@ + pkgconfig = '@PKG_CONFIG@' + + [properties] +-c_args = ['-m64'] +-c_link_args = ['-m64', '-mwindows', '-L@WINE64_LIBDIR@'] ++c_args = @CFLAGS@ + ['-m64'] ++c_link_args = @LDFLAGS@ + ['-m64', '-mwindows', '-L@WINE64_LIBDIR@'] + needs_exe_wrapper = true ++pkg_config_libdir = '@PKG_CONFIG_LIBDIR@' + + [host_machine] + system = 'linux' diff --git a/app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch b/app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch new file mode 100644 index 000000000000..14c2b30a741f --- /dev/null +++ b/app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch @@ -0,0 +1,12 @@ +diff -Naur a/ninewinecfg/main.c b/ninewinecfg/main.c +--- a/ninewinecfg/main.c 2023-03-10 08:32:25.000000000 +0000 ++++ b/ninewinecfg/main.c 2023-10-29 22:49:15.919529033 +0000 +@@ -28,7 +28,7 @@ + #include "../common/registry.h" + #include "resource.h" + +-static const char * const fn_nine_dll = "d3d9-nine.dll"; ++static const char * const fn_nine_dll = G9DLL; + static const char * const fn_backup_dll = "d3d9-nine.bak"; + static const char * const fn_d3d9_dll = "d3d9.dll"; + static const char * const fn_nine_exe = "ninewinecfg.exe"; diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild index 3e96326a2fc8..fdf6d7e33058 100644 --- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild @@ -1,15 +1,15 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit meson multilib-minimal toolchain-funcs +inherit meson-multilib toolchain-funcs MY_PN="wine-nine-standalone" DESCRIPTION="A standalone version of the WINE parts of Gallium Nine" HOMEPAGE="https://github.com/iXit/wine-nine-standalone" -if [[ $PV = 9999* ]]; then +if [[ ${PV} = 9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git" else @@ -25,7 +25,7 @@ SLOT="0" # Steam's Proton. RDEPEND=" - media-libs/mesa[d3d9,dri3,X(+),${MULTILIB_USEDEP}] + media-libs/mesa[d3d9,X(+),${MULTILIB_USEDEP}] x11-libs/libX11[${MULTILIB_USEDEP}] x11-libs/libxcb[${MULTILIB_USEDEP}] " @@ -34,11 +34,11 @@ DEPEND=" ${RDEPEND} virtual/pkgconfig virtual/wine[${MULTILIB_USEDEP}] - >=dev-util/meson-0.50.1 + >=dev-build/meson-0.50.1 " PATCHES=( - "${FILESDIR}"/0.7-cross-files.patch + "${FILESDIR}"/0.8-cross-files.patch "${FILESDIR}"/0.3-nine-dll-path.patch ) @@ -85,26 +85,3 @@ multilib_src_configure() { ) meson_src_configure } - -multilib_src_compile() { - meson_src_compile -} - -multilib_src_install() { - meson_src_install -} - -pkg_postinst() { - local bits=$(bits) - - einfo "Don't remove the Z: drive from your WINEPREFIX as this relies on it." - einfo - einfo "To set up the ${bits}-bit library, launch your preferred Wine as follows:" - einfo " wine${bits/32} ${EPREFIX}/usr/$(get_libdir)/ninewinecfg.exe.so" - - if use abi_x86_64 && use abi_x86_32; then - einfo - einfo "To set up the 32-bit library, launch your preferred Wine as follows:" - einfo " wine ${EPREFIX}/usr/$(ABI=x86 get_libdir)/ninewinecfg.exe.so" - fi -} diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild new file mode 100644 index 000000000000..c34f0b868b29 --- /dev/null +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild @@ -0,0 +1,90 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson-multilib toolchain-funcs + +MY_PN="wine-nine-standalone" +DESCRIPTION="A standalone version of the WINE parts of Gallium Nine" +HOMEPAGE="https://github.com/iXit/wine-nine-standalone" + +if [[ ${PV} = 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git" +else + SRC_URI="https://github.com/iXit/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + S="${WORKDIR}/${MY_PN}-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +LICENSE="LGPL-2.1+" +SLOT="0" + +# We don't put Wine in RDEPEND because you can also use this with +# Steam's Proton. + +RDEPEND=" + media-libs/mesa[d3d9,X(+),${MULTILIB_USEDEP}] + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libxcb[${MULTILIB_USEDEP}] +" + +DEPEND=" + ${RDEPEND} + virtual/wine[${MULTILIB_USEDEP}] +" + +BDEPEND=" + dev-build/meson-format-array + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/0.8-cross-files.patch + "${FILESDIR}"/0.9-nine-dll-path.patch +) + +bits() { + if [[ ${ABI} = amd64 ]]; then + echo 64 + else + echo 32 + fi +} + +src_prepare() { + default + + # Upstream includes a bootstrap.sh script with hardcoded CHOSTs to + # create the Meson cross files. We improve on that here but also + # inject CFLAGS and LDFLAGS, partly to simply respect these, and + # partly to allow d3d9-nine.dll to be loaded from a location outside + # WINEPREFIX. This avoids the need for the nine-install.sh script, + # which doesn't play well with our multi-Wine environment. + bootstrap_nine() { + local file=tools/cross-wine$(bits) + local g9dll=\"z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\" + + sed \ + -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ + -e "s!@CFLAGS@!$(meson-format-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ + -e "s!@LDFLAGS@!$(meson-format-array "${LDFLAGS}")!" \ + -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \ + ${file}.in > ${file} || die + } + + multilib_foreach_abi bootstrap_nine +} + +multilib_src_configure() { + # We override bindir because otherwise the 32-bit exe is overwritten + # by the 64-bit exe and we need both of them. + local emesonargs=( + --cross-file "${S}/tools/cross-wine$(bits)" + --bindir "$(get_libdir)" + -Ddistro-independent=false + -Ddri2=false + ) + meson_src_configure +} diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild index 3e96326a2fc8..c34f0b868b29 100644 --- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild +++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild @@ -1,15 +1,15 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit meson multilib-minimal toolchain-funcs +inherit meson-multilib toolchain-funcs MY_PN="wine-nine-standalone" DESCRIPTION="A standalone version of the WINE parts of Gallium Nine" HOMEPAGE="https://github.com/iXit/wine-nine-standalone" -if [[ $PV = 9999* ]]; then +if [[ ${PV} = 9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git" else @@ -25,21 +25,24 @@ SLOT="0" # Steam's Proton. RDEPEND=" - media-libs/mesa[d3d9,dri3,X(+),${MULTILIB_USEDEP}] + media-libs/mesa[d3d9,X(+),${MULTILIB_USEDEP}] x11-libs/libX11[${MULTILIB_USEDEP}] x11-libs/libxcb[${MULTILIB_USEDEP}] " DEPEND=" ${RDEPEND} - virtual/pkgconfig virtual/wine[${MULTILIB_USEDEP}] - >=dev-util/meson-0.50.1 +" + +BDEPEND=" + dev-build/meson-format-array + virtual/pkgconfig " PATCHES=( - "${FILESDIR}"/0.7-cross-files.patch - "${FILESDIR}"/0.3-nine-dll-path.patch + "${FILESDIR}"/0.8-cross-files.patch + "${FILESDIR}"/0.9-nine-dll-path.patch ) bits() { @@ -61,12 +64,12 @@ src_prepare() { # which doesn't play well with our multi-Wine environment. bootstrap_nine() { local file=tools/cross-wine$(bits) - local g9dll=\"Z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\" + local g9dll=\"z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\" sed \ -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \ - -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ - -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \ + -e "s!@CFLAGS@!$(meson-format-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \ + -e "s!@LDFLAGS@!$(meson-format-array "${LDFLAGS}")!" \ -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \ ${file}.in > ${file} || die } @@ -85,26 +88,3 @@ multilib_src_configure() { ) meson_src_configure } - -multilib_src_compile() { - meson_src_compile -} - -multilib_src_install() { - meson_src_install -} - -pkg_postinst() { - local bits=$(bits) - - einfo "Don't remove the Z: drive from your WINEPREFIX as this relies on it." - einfo - einfo "To set up the ${bits}-bit library, launch your preferred Wine as follows:" - einfo " wine${bits/32} ${EPREFIX}/usr/$(get_libdir)/ninewinecfg.exe.so" - - if use abi_x86_64 && use abi_x86_32; then - einfo - einfo "To set up the 32-bit library, launch your preferred Wine as follows:" - einfo " wine ${EPREFIX}/usr/$(ABI=x86 get_libdir)/ninewinecfg.exe.so" - fi -} diff --git a/app-emulation/gallium-nine-standalone/metadata.xml b/app-emulation/gallium-nine-standalone/metadata.xml index 99949f5b76d0..cad8073ddece 100644 --- a/app-emulation/gallium-nine-standalone/metadata.xml +++ b/app-emulation/gallium-nine-standalone/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>chewi@gentoo.org</email> diff --git a/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild b/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild index 3f7639fbd4e9..a808738db0f4 100644 --- a/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild +++ b/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=8 DESCRIPTION="Dummy OS provider for Ganeti" HOMEPAGE="https://github.com/grnet/ganeti-os-noop" @@ -10,14 +10,10 @@ SRC_URI="https://github.com/grnet/ganeti-os-noop/archive/v${PV}.tar.gz -> ${P}.t LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND="" -RDEPEND="" src_install() { dodoc CONTRIBUTORS - cd ganeti/os/noop + cd ganeti/os/noop || die insinto /usr/share/ganeti/os/noop/ doins ganeti_api_version exeinto /usr/share/ganeti/os/noop/ diff --git a/app-emulation/ganeti-os-noop/metadata.xml b/app-emulation/ganeti-os-noop/metadata.xml index 0be915a90eff..f4d155ae55ee 100644 --- a/app-emulation/ganeti-os-noop/metadata.xml +++ b/app-emulation/ganeti-os-noop/metadata.xml @@ -1,5 +1,5 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>robbat2@gentoo.org</email> diff --git a/app-emulation/ganeti-os-simpleimage/Manifest b/app-emulation/ganeti-os-simpleimage/Manifest new file mode 100644 index 000000000000..01577c3e8385 --- /dev/null +++ b/app-emulation/ganeti-os-simpleimage/Manifest @@ -0,0 +1 @@ +DIST ganeti-os-simpleimage-07f67364e66b9f686a5b15d0c516310fcc3c7c9b.tar.gz 10722 BLAKE2B 7b9dfe0ba0f1c53ae61e5304b618e1f31ad08a93352b9781dd502bd27ca4426493eb3b61c4e751fe1787eb19c63ddf377a602a35a815042d5c8437ece991c5ba SHA512 278f9430d28c542b25ce4fd449dc57b97bcd56c0fc8b2c7bfacf08cc090c81d74eca44c0cc57faa28576bdaa3b1a0011d8780e8246acf5993765eb8de741e667 diff --git a/app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild b/app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild new file mode 100644 index 000000000000..ec9d545922ff --- /dev/null +++ b/app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 +COMMIT=07f67364e66b9f686a5b15d0c516310fcc3c7c9b +MY_PV=$COMMIT + +DESCRIPTION="Ganeti OS provider for simple images" +HOMEPAGE="https://github.com/ganeti/instance-simpleimage" +SRC_URI="https://github.com/ganeti/instance-simpleimage/archive/${MY_PV}.tar.gz -> ${PN}-${MY_PV}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +S="${WORKDIR}/instance-simpleimage-${MY_PV}" + +src_install() { + # Config + keepdir /etc/ganeti/instance-simpleimage/default/ + keepdir /etc/ganeti/instance-simpleimage/default/hooks + touch "${D}/etc/ganeti/instance-simpleimage/default/config" + + insinto /usr/share/ganeti/os/simpleimage + doins ganeti_api_version parameters.list common.sh + exeinto /usr/share/ganeti/os/simpleimage + doexe create export import rename verify + # This is moved into /etc because sysadmins are expected to modify it, and + # add matching dirs for each variant in + # /etc/ganeti/instance-simpleimage/$VARIANT/ + insinto /etc/ganeti/instance-simpleimage/ + doins variants.list + dosym ../../../../../etc/ganeti/instance-simpleimage/variants.list \ + /usr/share/ganeti/os/simpleimage/variants.list + + # Docs + dodoc README.md + docinto example-hooks + dodoc example-hooks/debian-cloud-image-config +} diff --git a/app-emulation/ganeti-os-simpleimage/metadata.xml b/app-emulation/ganeti-os-simpleimage/metadata.xml new file mode 100644 index 000000000000..10f9cbd5fa6a --- /dev/null +++ b/app-emulation/ganeti-os-simpleimage/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>robbat2@gentoo.org</email> + <name>Robin H. Johnson</name> + </maintainer> + <upstream> + <remote-id type="github">ganeti/instance-simpleimage</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/genymotion-bin/Manifest b/app-emulation/genymotion-bin/Manifest index 27fa5fde26ab..573dc28b4118 100644 --- a/app-emulation/genymotion-bin/Manifest +++ b/app-emulation/genymotion-bin/Manifest @@ -1 +1 @@ -DIST genymotion-3.1.1-linux_x64.bin 40506791 BLAKE2B 5318568766826cac587802c3b84fb2d32eaad6f00e0c2642fc1f8a81794f94de85d57d66b816848f3161b9f763ddbd84e9fafe6bc2027fb478b31b7c6f858750 SHA512 8468843131a6f09dfa65da4f638d25f3c8b806b6275a46b5bc379d7b97ebb30518a00a8dd6433ce33b78dfddcb3e1c62ceba67e9b41e39e44a677ea2fbedeade +DIST genymotion-3.6.0-linux_x64.bin 103911915 BLAKE2B 2c7174404b29a71174fc04de96285475e1800880f79fb70c455539c2a658a305a4cd8a541c545024c3130458081b5a94e493478a47126905fae5e104afbd3efd SHA512 ff05bb91edf05c38d68e3dec16dd21f6fcc50bf31e03411f46b9a3a71ca3f9139705e54b8650c8ab44295a2ebb49aa262e169faecea1f6bb8dd385785440f245 diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.1.1.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.1.1.ebuild deleted file mode 100644 index f5745370f0d7..000000000000 --- a/app-emulation/genymotion-bin/genymotion-bin-3.1.1.ebuild +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit bash-completion-r1 desktop pax-utils - -MY_PN="${PN/-bin}" -MY_P="${MY_PN}-${PV}" -BIN_ARCHIVE="${MY_P}-linux_x64.bin" - -DESCRIPTION="Complete set of tools that provide a virtual environment for Android" -HOMEPAGE="https://genymotion.com" -SRC_URI="${BIN_ARCHIVE}" - -LICENSE="genymotion" -SLOT="0" -KEYWORDS="-* ~amd64" - -RDEPEND="|| ( - app-emulation/virtualbox - app-emulation/virtualbox-bin - ) - || ( - dev-libs/openssl-compat:1.0.0 - =dev-libs/openssl-1.0*:0 - ) - dev-libs/hiredis:0/0.14 - sys-apps/util-linux - virtual/opengl -" -BDEPEND="dev-util/patchelf" - -RESTRICT="bindist fetch" -S="${WORKDIR}" - -QA_PREBUILT=" - opt/${MY_PN}/*.so* - opt/${MY_PN}/imageformats/*.so - opt/${MY_PN}/plugins/*.so* - opt/${MY_PN}/${MY_PN} - opt/${MY_PN}/genyshell - opt/${MY_PN}/player - opt/${MY_PN}/${MY_PN}adbtunneld - opt/${MY_PN}/gmtool -" - -pkg_nofetch() { - einfo - einfo "Please visit" - einfo - einfo " https://www.genymotion.com/download/" - einfo - einfo "and download " - einfo - einfo " ${BIN_ARCHIVE}" - einfo - einfo "which must be placed in DISTDIR directory." - einfo -} - -src_unpack() { - cp "${DISTDIR}/${BIN_ARCHIVE}" "${WORKDIR}" || die "cp failed" -} - -src_prepare() { - default - - chmod +x ${BIN_ARCHIVE} || die "chmod failed" - yes | ./${BIN_ARCHIVE} > /dev/null || die "unpack failed" - - # removed windows line for bashcompletion - sed -i "/complete -F _gmtool gmtool.exe/d" "${MY_PN}/completion/bash/gmtool.bash" || die "sed failed" - - # patch to support newer hiredis version (0.14) - for i in genymotion genyshell gmtool player libcom.so.1.0.0 librendering.so.1.0.0 ; do - patchelf --replace-needed libhiredis.so.0.13 libhiredis.so.0.14 "${MY_PN}/${i}" || die "Unable to patch ${i} for hiredis" - done -} - -src_install() { - insinto /opt/"${MY_PN}" - exeinto /opt/"${MY_PN}" - - # Use qt bundled - doins -r "${MY_PN}"/{geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2} - doins -r "${MY_PN}"/{icons,imageformats,platforms,plugins,sqldrivers,translations,xcbglintegrations} - doins "${MY_PN}"/libQt* - doins "${MY_PN}"/libqgsttools_p.so.1 - doins "${MY_PN}"/qt.conf - doins "${MY_PN}"/libicu* - - doexe "${MY_PN}"/{libcom,librendering,libswscale,libavutil}.so* - # android library - doexe "${MY_PN}"/{libEGL_translator,libGLES_CM_translator,libGLES_V2_translator,libOpenglRender,libemugl_logger}.so* - - find "${ED}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed" - - doexe "${MY_PN}"/{genymotion,genyshell,player,gmtool} - - pax-mark -m "${ED}/opt/${MY_PN}/genymotion" - pax-mark -m "${ED}/opt/${MY_PN}/gmtool" - - dosym ../"${MY_PN}"/genyshell /opt/bin/genyshell - dosym ../"${MY_PN}"/genymotion /opt/bin/genymotion - dosym ../"${MY_PN}"/gmtool /opt/bin/gmtool - - newbashcomp "${MY_PN}/completion/bash/gmtool.bash" gmtool - - insinto /usr/share/zsh/site-functions - doins "${MY_PN}/completion/zsh/_gmtool" - - sed -i -e "s:Icon.*:Icon=/opt/${MY_PN}/icons/icon.png:" \ - -e "s:Exec.*:Exec=/opt/${MY_PN}/genymotion:" \ - "${HOME}"/.local/share/applications/genymobile-genymotion.desktop || die "sed failed" - domenu "${HOME}"/.local/share/applications/genymobile-genymotion.desktop -} - -pkg_postinst() { - elog "Genymotion needs adb to work correctly: install with android-sdk-update-manager" - elog "'Android SDK Platform-tools' and 'Android SDK Tools'" - elog "Your user should also be in the android group to work correctly" - elog "Then in Genymotion set the android-sdk-update-manager directory: (Settings->ADB)" - elog - elog " /opt/android-sdk-update-manager" -} diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild new file mode 100644 index 000000000000..6de3fe292cc0 --- /dev/null +++ b/app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild @@ -0,0 +1,146 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit bash-completion-r1 desktop pax-utils + +MY_PN="${PN/-bin}" +MY_P="${MY_PN}-${PV}" +BIN_ARCHIVE="${MY_P}-linux_x64.bin" + +DESCRIPTION="Complete set of tools that provide a virtual environment for Android" +HOMEPAGE="https://genymotion.com" +SRC_URI="https://dl.genymotion.com/releases/${MY_P}/${BIN_ARCHIVE}" + +LICENSE="genymotion" +SLOT="0" +KEYWORDS="-* ~amd64" + +RDEPEND="app-arch/lz4 + app-crypt/mit-krb5 + || ( + app-emulation/qemu[qemu_softmmu_targets_x86_64] + app-emulation/virtualbox + ) + || ( + dev-libs/openssl-compat:1.1.1 + =dev-libs/openssl-1.1*:0 + ) + dev-libs/glib:2 + =dev-libs/hiredis-1.0* + media-libs/alsa-lib + media-libs/fontconfig + media-libs/freetype + media-libs/libpulse + media-libs/gst-plugins-base:1.0 + media-libs/gstreamer:1.0 + sys-apps/dbus + sys-libs/zlib + virtual/opengl + x11-libs/libX11 + x11-libs/libxcb + x11-libs/libXext + x11-libs/libXi + x11-libs/libxkbcommon + x11-libs/libXmu + x11-libs/xcb-util + x11-libs/xcb-util-image + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm +" +BDEPEND="x11-misc/xdg-utils" + +RESTRICT="bindist mirror" +S="${WORKDIR}" + +QA_PREBUILT=" + opt/${MY_PN}/*.so* + opt/${MY_PN}/imageformats/*.so + opt/${MY_PN}/plugins/*.so* + opt/${MY_PN}/${MY_PN} + opt/${MY_PN}/genyshell + opt/${MY_PN}/player + opt/${MY_PN}/${MY_PN}adbtunneld + opt/${MY_PN}/gmtool + opt/${MY_PN}/tools/* +" + +src_unpack() { + cp "${DISTDIR}/${BIN_ARCHIVE}" "${WORKDIR}" || die "cp failed" +} + +src_prepare() { + default + + chmod +x ${BIN_ARCHIVE} || die "chmod failed" + yes | ./${BIN_ARCHIVE} > /dev/null || die "unpack failed" + + # removed windows line for bashcompletion + sed -i "/complete -F _gmtool gmtool.exe/d" "${MY_PN}/completion/bash/gmtool.bash" || die "sed failed" + + # copy .desktop file in S directory + sed -i -e "s:Icon.*:Icon=/opt/${MY_PN}/icons/genymotion-logo.png:" \ + -e "s:Exec.*:Exec=/opt/${MY_PN}/genymotion:" \ + "${HOME}"/.local/share/applications/genymobile-genymotion.desktop || die "sed failed" + cp "${HOME}"/.local/share/applications/genymobile-genymotion.desktop "${S}" || die "copy .desktop file" +} + +src_install() { + insinto /opt/"${MY_PN}" + exeinto /opt/"${MY_PN}" + + # Use qt bundled + doins -r "${MY_PN}"/{audio,geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2} + doins -r "${MY_PN}"/{icons,imageformats,mediaservice,platforms,plugins,sqldrivers,translations,xcbglintegrations} + doins "${MY_PN}"/libQt* + doins "${MY_PN}"/qt.conf + doins "${MY_PN}"/libicu* + + doexe "${MY_PN}"/{libcom,librendering,libshadertranslator,libswscale,libavutil}.so* + # android library + doexe "${MY_PN}"/{libOpenglRender,libemugl_logger,libemugl_common}.so* + + find "${ED}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed" + + doexe "${MY_PN}"/{genymotion,genyshell,player,gmtool} + + # the android-sdk-update-manager have some bugs and lacks maintenance + # so installs bundled version + exeinto /opt/"${MY_PN}"/tools + doexe "${MY_PN}"/tools/{aapt,adb,glewinfo} + exeinto /opt/"${MY_PN}"/tools/lib64 + doexe "${MY_PN}"/tools/lib64/libc++.so + + pax-mark -m "${ED}/opt/${MY_PN}/genymotion" + pax-mark -m "${ED}/opt/${MY_PN}/gmtool" + + dosym -r /opt/"${MY_PN}"/genyshell /opt/bin/genyshell + dosym -r /opt/"${MY_PN}"/genymotion /opt/bin/genymotion + dosym -r /opt/"${MY_PN}"/gmtool /opt/bin/gmtool + + newbashcomp "${MY_PN}/completion/bash/gmtool.bash" gmtool + + insinto /usr/share/zsh/site-functions + doins "${MY_PN}/completion/zsh/_gmtool" + + if has_version app-emulation/qemu ; then + dodir /opt/"${MY_PN}"/qemu/bin + dosym -r /usr/bin/qemu-system-x86_64 /opt/"${MY_PN}"/qemu/bin/qemu-system-x86_64 + dosym -r /usr/bin/qemu-img /opt/"${MY_PN}"/qemu/bin/qemu-img + fi + + domenu genymobile-genymotion.desktop +} + +pkg_postinst() { + if has_version app-emulation/qemu && ! has_version app-emulation/virtualbox ; then + ewarn "By default Genymotion is configured to work with VirtualBox hypervisor." + ewarn "So you should run command:" + ewarn "" + ewarn " gmtool config --hypervisor qemu" + ewarn "" + ewarn "to change hypervisor to QEMU." + fi +} diff --git a/app-emulation/genymotion-bin/metadata.xml b/app-emulation/genymotion-bin/metadata.xml index 0a47874eaf48..d29f19d016b5 100644 --- a/app-emulation/genymotion-bin/metadata.xml +++ b/app-emulation/genymotion-bin/metadata.xml @@ -1,15 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> + <maintainer type="person" proxied="yes"> <email>fedeliallalinea@gmail.com</email> <name>Marco Genasci</name> </maintainer> - <maintainer type="person"> - <email>mudler@gentoo.org</email> - <name>Ettore Di Giacinto</name> - </maintainer> - <maintainer type="project"> + <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> diff --git a/app-emulation/glean/Manifest b/app-emulation/glean/Manifest index 117fa547e8d8..3a8cffe9e55b 100644 --- a/app-emulation/glean/Manifest +++ b/app-emulation/glean/Manifest @@ -1,2 +1 @@ -DIST glean-1.10.3.tar.gz 51898 BLAKE2B 95bcee5caae1bdcdc586c8d8ab8097b1dfaa35c521d7b90d128db14f496d4d31e1d0d4c540c4205861e5c7fa87d0e7038227ae9db0e898e3bf43b8b9b989e766 SHA512 27d4f29bf35585f73813e9efdea0253f0be3a8fa059c6ce524fbdd37b865d9c9e10d29bb8f970317ffe772c110cc76f10ae7debce5f7433461639dc63b9349db -DIST glean-1.17.0.tar.gz 62791 BLAKE2B 6429bd721655499732f84dc8db4bd31bdb128289956ab65fab78ea5461cf7945ced893fd832ac6a3cdcedb331f3885004eaa530be1ee4fcc4168870b5c345dd3 SHA512 55c8ceae941296c038acff3f40cf4d6b783d7c6530ebd6fbd6d87938de11a1be1403741a559802c9135d3fc4d904b1936319dcf7a0179f95ac3f909667f5622c +DIST glean-1.23.0.tar.gz 76426 BLAKE2B bca6d2da0393bb28392d3c9ab7708cf4b053e4736203b9c26bc278a52c6a829abead13ecb63ebb60ade9a4127ebba9dd560b75b765c3a168ea389025b07638a0 SHA512 4eca5ccd18bd7864fdecd35b483e5da6a0854c076d0266f802b70b7838de61790c9237f8928807a45d6845fa8ca9a37e2228653326759204483803b28de191ee diff --git a/app-emulation/glean/glean-1.17.0.ebuild b/app-emulation/glean/glean-1.17.0.ebuild deleted file mode 100644 index 13ba0b43ea39..000000000000 --- a/app-emulation/glean/glean-1.17.0.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_6 python3_7 python3_8 ) -DISTUTILS_USE_SETUPTOOLS=rdepend - -inherit distutils-r1 - -DESCRIPTION="Simple program to write static config from config-drive" -HOMEPAGE="https://github.com/openstack-infra/glean" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -DEPEND="dev-python/pbr[${PYTHON_USEDEP}]" -RDEPEND="${DEPEND}" - -src_install() { - distutils-r1_src_install - newinitd "${FILESDIR}/${PN}.initd" ${PN} -} diff --git a/app-emulation/glean/glean-1.10.3.ebuild b/app-emulation/glean/glean-1.23.0-r1.ebuild index 939e686bb3b4..d5c813a3e0ad 100644 --- a/app-emulation/glean/glean-1.10.3.ebuild +++ b/app-emulation/glean/glean-1.23.0-r1.ebuild @@ -1,20 +1,19 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=7 -PYTHON_COMPAT=( python3_6 ) -DISTUTILS_USE_SETUPTOOLS=rdepend +PYTHON_COMPAT=( python3_{9,10,11,12} ) +DISTUTILS_USE_PEP517=setuptools -inherit distutils-r1 +inherit distutils-r1 pypi DESCRIPTION="Simple program to write static config from config-drive" -HOMEPAGE="https://github.com/openstack-infra/glean" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" +HOMEPAGE="https://opendev.org/opendev/glean" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 x86" IUSE="" DEPEND="dev-python/pbr[${PYTHON_USEDEP}]" diff --git a/app-emulation/glean/metadata.xml b/app-emulation/glean/metadata.xml index 5f29d506900e..db2fd69cd2fa 100644 --- a/app-emulation/glean/metadata.xml +++ b/app-emulation/glean/metadata.xml @@ -1,10 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>alexxy@gentoo.org</email> <name>Alexey Shvetsov</name> </maintainer> + <maintainer type="person"> + <email>prometheanfire@gentoo.org</email> + <name>Matthew Thode</name> + </maintainer> <maintainer type="project"> <email>openstack@gentoo.org</email> <name>Openstack</name> @@ -14,6 +18,5 @@ </longdescription> <upstream> <remote-id type="pypi">glean</remote-id> - <remote-id type="github">openstack-dev/glean</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/go-secbench/Manifest b/app-emulation/go-secbench/Manifest deleted file mode 100644 index 915d02957600..000000000000 --- a/app-emulation/go-secbench/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST go-secbench-0.1.0.tar.gz 1281488 BLAKE2B 83bb27a2113a5e851db8b61402d967d528c9e3b39d249a23b4d28c21e001276eff73f61c6aba610f0020f22de26b04286a91e5a3785b5a9e019d2701d6081f92 SHA512 4712ef56385993ed1e660c1843a1d7e9cd807a3ca8bf935767e8d2965aef25c5b3a7a88d4ed7c072fe124a6b05900bd444cdbc0cee879e80844fb5f695732f2b diff --git a/app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild b/app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild deleted file mode 100644 index 9704fffb853f..000000000000 --- a/app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/qnib/go-secbench" -inherit golang-build golang-vcs-snapshot - -DESCRIPTION="run and evaluate the docker security benchmark" -HOMEPAGE="https://github.com/qnib/go-secbench" -SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" -RESTRICT="test" - -DEPEND="dev-lang/go" -RDEPEND="app-emulation/docker" - -src_compile() { - GOPATH="${S}" go build -o bin/go-secbench src/${EGO_PN}/cmd/main.go || die -} - -src_install() { - dobin bin/${PN} -dodoc "src/${EGO_PN}/README.md" -} diff --git a/app-emulation/go-secbench/go-secbench-0.1.0.ebuild b/app-emulation/go-secbench/go-secbench-0.1.0.ebuild deleted file mode 100644 index fdceccf32659..000000000000 --- a/app-emulation/go-secbench/go-secbench-0.1.0.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/qnib/go-secbench" -inherit golang-build golang-vcs-snapshot - -DESCRIPTION="run and evaluate the docker security benchmark" -HOMEPAGE="https://github.com/qnib/go-secbench" -SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" -RESTRICT="test" - -DEPEND="dev-lang/go" - -src_compile() { - GOPATH="${S}" go build -o bin/go-secbench src/${EGO_PN}/cmd/main.go || die -} - -src_install() { - dobin bin/${PN} -dodoc "src/${EGO_PN}/README.md" -} diff --git a/app-emulation/go-secbench/metadata.xml b/app-emulation/go-secbench/metadata.xml deleted file mode 100644 index c36c37139fad..000000000000 --- a/app-emulation/go-secbench/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild b/app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild index 9150a04e8c80..2aaa8eb6a896 100644 --- a/app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild +++ b/app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild @@ -1,18 +1,19 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=7 DESCRIPTION="Grub2 built as a PV grub per the Xen PV Boot Protocol" -HOMEPAGE="https://blog.xenproject.org/2015/01/07/using-grub-2-as-a-bootloader-for-xen-pv-guests/" +HOMEPAGE="https://wiki.xenproject.org/wiki/PvGrub2" SRC_URI="" LICENSE="BSD-2" SLOT="0" KEYWORDS="amd64" -IUSE="" +IUSE="pvh" DEPEND="sys-boot/grub:2=[grub_platforms_xen] + pvh? ( >=sys-boot/grub-2.04:2=[grub_platforms_xen-pvh] ) app-emulation/xen-tools:=" RDEPEND="${DEPEND}" @@ -71,9 +72,27 @@ src_compile() { echo "${args[@]}" "${args[@]}" || die "failed to grub-mkimage" + + if use pvh; then + local args=( + "${grub_mkimage}" + -O i386-xen_pvh + -c grub-bootstrap.cfg + -m memdisk.tar + -o grub-i386-xen_pvh.bin + /usr/lib/grub/i386-xen_pvh/*.mod + ) + + echo "${args[@]}" + "${args[@]}" || die "failed to grub-mkimage" + fi + } src_install() { exeinto /usr/libexec/xen/bin doexe grub-x86_64-xen.bin + if use pvh; then + doexe grub-i386-xen_pvh.bin + fi } diff --git a/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild b/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild new file mode 100644 index 000000000000..502d03bee2b3 --- /dev/null +++ b/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Grub2 built as a PV grub per the Xen PV Boot Protocol" +HOMEPAGE="https://wiki.xenproject.org/wiki/PvGrub2" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="pvh" + +DEPEND=" + sys-boot/grub:2=[grub_platforms_xen] + pvh? ( >=sys-boot/grub-2.04:2=[grub_platforms_xen-pvh] ) +" +RDEPEND="${DEPEND}" + +S="${WORKDIR}" + +RESTRICT="binchecks strip test" + +src_configure() { + : +} + +src_compile() { + cat > "${S}/grub-bootstrap.cfg" <<- EOF || die + normal (memdisk)/grub.cfg + EOF + + cat > "${S}/grub.cfg" <<- EOF || die + if search -s -f /boot/xen/pvboot-x86_64.elf ; then + echo "Chainloading (${root})/boot/xen/pvboot-x86_64.elf" + multiboot "/boot/xen/pvboot-x86_64.elf" + boot + fi + + if search -s -f /xen/pvboot-x86_64.elf ; then + echo "Chainloading (${root})/xen/pvboot-x86_64.elf" + multiboot "/xen/pvboot-x86_64.elf" + boot + fi + + if search -s -f /boot/grub/grub.cfg ; then + echo "Reading (${root})/boot/grub/grub.cfg" + configfile /boot/grub/grub.cfg + fi + + if search -s -f /grub/grub.cfg ; then + echo "Reading (${root})/grub/grub.cfg" + configfile /grub/grub.cfg + fi + EOF + + tar cf memdisk.tar grub.cfg || die "failed to tar" + + local grub_mkimage=grub-mkimage + if type grub2-mkimage &> /dev/null; then + grub_mkimage=grub2-mkimage + fi + + local args=( + "${grub_mkimage}" + -O x86_64-xen + -c grub-bootstrap.cfg + -m memdisk.tar + -p "${EPREFIX}"/usr/lib/grub/x86_64-xen/*.mod + -o grub-x86_64-xen.bin + ) + + echo "${args[@]}" + "${args[@]}" || die "failed to grub-mkimage" + + if use pvh; then + local args=( + "${grub_mkimage}" + -O i386-xen_pvh + -c grub-bootstrap.cfg + -m memdisk.tar + -p "${EPREFIX}"/usr/lib/grub/i386-xen_pvh/*.mod + -o grub-i386-xen_pvh.bin + ) + + echo "${args[@]}" + "${args[@]}" || die "failed to grub-mkimage" + fi + +} + +src_install() { + exeinto /usr/libexec/xen/bin + doexe grub-x86_64-xen.bin + if use pvh; then + doexe grub-i386-xen_pvh.bin + fi +} diff --git a/app-emulation/grub-xen-host/metadata.xml b/app-emulation/grub-xen-host/metadata.xml index 84e79366a42d..485b9cd416b6 100644 --- a/app-emulation/grub-xen-host/metadata.xml +++ b/app-emulation/grub-xen-host/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>xen@gentoo.org</email> @@ -9,4 +9,7 @@ a guest installed PV grub (grub legacy or grub 2) or handle a guest supplied grub 2 config file. </longdescription> + <use> + <flag name="pvh">Build an additional grub bin for pvh.</flag> + </use> </pkgmetadata> diff --git a/app-emulation/guestfs-tools/Manifest b/app-emulation/guestfs-tools/Manifest new file mode 100644 index 000000000000..f8739c8d818b --- /dev/null +++ b/app-emulation/guestfs-tools/Manifest @@ -0,0 +1 @@ +DIST guestfs-tools-1.48.2.tar.gz 12691067 BLAKE2B 305f281c19975f160c435b995d71ef2e18d09fc95f31e92efe8f79d811fc0a7efab27d14f766d5f6ee477fd43977167a3aabe5cc40498f125f925507fd2574d5 SHA512 e11cd5a38a1681e8b2fd56419d38ca0aaab659cb59d409b3572cadcd04fd4da3078fa33e7f21c99d11854ad08797ae24a8d71c041b1b7769fc36c1391b6eb162 diff --git a/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild b/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild new file mode 100644 index 000000000000..718c2b33d14b --- /dev/null +++ b/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild @@ -0,0 +1,165 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump with app-emulation/libguestfs and app-emulation/libguestfs-appliance (if any new release there) + +inherit flag-o-matic linux-info perl-functions strip-linguas toolchain-funcs + +MY_PV_1="$(ver_cut 1-2)" +MY_PV_2="$(ver_cut 2)" +[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development" + +DESCRIPTION="Tools for accessing, inspecting, and modifying virtual machine (VM) disk images" +HOMEPAGE="https://libguestfs.org/" +SRC_URI="https://download.libguestfs.org/${PN}/${MY_PV_1}-${SD}/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0/${MY_PV_1}" +if [[ ${SD} == "stable" ]] ; then + KEYWORDS="amd64" +fi +IUSE="doc +ocaml +perl test" +RESTRICT="!test? ( test )" + +# Failures - doc +COMMON_DEPEND=" + !<app-emulation/libguestfs-1.46.0-r1 + app-alternatives/cpio + app-arch/lzma + app-arch/unzip[natspec] + app-arch/xz-utils + app-crypt/gnupg + >=app-emulation/libguestfs-${MY_PV_1}:=[ocaml?,perl?] + app-emulation/libvirt:= + >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,filecaps] + dev-lang/perl:= + dev-libs/libpcre2:= + dev-libs/libxml2:2 + dev-libs/jansson:= + >=sys-apps/fakechroot-2.8 + sys-fs/squashfs-tools:* + sys-libs/ncurses:= + sys-libs/libxcrypt:= + virtual/libcrypt:= + ocaml? ( >=dev-lang/ocaml-4.03:=[ocamlopt] ) + perl? ( + virtual/perl-Data-Dumper + virtual/perl-Getopt-Long + dev-perl/Module-Build + dev-perl/libintl-perl + virtual/perl-ExtUtils-MakeMaker + >=dev-perl/Sys-Virt-0.2.4 + dev-perl/String-ShellQuote + test? ( virtual/perl-Test-Simple ) + ) +" +# Some OCaml is always required +# bug #729674 +DEPEND=" + ${COMMON_DEPEND} + >=dev-lang/ocaml-4.03:=[ocamlopt] + dev-ml/findlib[ocamlopt] + doc? ( app-text/po4a ) + ocaml? ( + dev-ml/ounit2[ocamlopt] + || ( + <dev-ml/ocaml-gettext-0.4.2 + dev-ml/ocaml-gettext-stub[ocamlopt] + ) + ) +" +BDEPEND=" + sys-devel/bison + sys-devel/flex + virtual/pkgconfig +" +RDEPEND=" + ${COMMON_DEPEND} + app-emulation/libguestfs-appliance +" + +DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO ) + +#PATCHES=( +# "${FILESDIR}"/${MY_PV_1}/ +#) + +pkg_setup() { + CONFIG_CHECK="~KVM ~VIRTIO" + [[ -n "${CONFIG_CHECK}" ]] && check_extra_config +} + +src_configure() { + # bug #794877 + tc-export AR + + # Needs both bison+flex (bug #915339, see configure too) + unset YACC LEX + + if use test ; then + # Skip Bash test + # (See 13-test-suite.log in linked bug) + # bug #794874 + export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=1 + + # This test requires libvirt support in libguestfs and it makes + # no difference at runtime. Just gracefully skip it to make life + # easier for e.g. arch testing. + if ! has_version 'app-emulation/libguestfs[libvirt]' ; then + export SKIP_TEST_VIRT_ALIGNMENT_SCAN_GUESTS_SH=1 + fi + + # Needed for the inspector tests. Provided by libguestfs-appliance. + #export LIBGUESTFS_PATH="${BROOT}"/usr/share/guestfs/appliance/ + # But the inspector tests seem fragile anyway... + export SKIP_TEST_VIRT_INSPECTOR_LUKS_SH=1 + export SKIP_TEST_VIRT_INSPECTOR_SH=1 + fi + + # Disable feature test for kvm for more reason + # i.e: not loaded module in __build__ time, + # build server not supported kvm, etc. ... + # + # In fact, this feature is virtio support and requires + # configured kernel. + export vmchannel_test=no + + # Give a nudge to help find libxcrypt[-system] + # We have a := dep on virtual/libcrypt to ensure this + # doesn't become stale. + # bug #703118, bug #789354 + if ! has_version 'sys-libs/libxcrypt[system]' ; then + append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/xcrypt" + append-ldflags "-Wl,-R${ESYSROOT}/usr/$(get_libdir)/xcrypt" + fi + + # Test suite at least has a bunch of bashisms + SHELL="${BROOT}"/bin/bash CONFIG_SHELL="${BROOT}"/bin/bash econf \ + $(usex doc '' PO4A=no) \ + $(use_enable ocaml) \ + $(use_enable perl) +} + +src_install() { + strip-linguas -i po + + emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}""" + + find "${ED}" -name '*.la' -delete || die + + if use perl ; then + perl_delete_localpod + fi +} + +pkg_postinst() { + if ! use ocaml ; then + einfo "OCaml based tools and bindings (virt-resize, virt-sparsify, virt-sysprep, ...) NOT installed" + fi + + if ! use perl ; then + einfo "Perl based tools NOT built" + fi +} diff --git a/app-emulation/guestfs-tools/metadata.xml b/app-emulation/guestfs-tools/metadata.xml new file mode 100644 index 000000000000..115e9d64a669 --- /dev/null +++ b/app-emulation/guestfs-tools/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <!-- maintainer-needed --> +</pkgmetadata> diff --git a/app-emulation/gxemul/Manifest b/app-emulation/gxemul/Manifest index 0e40fbe91e05..4d1ab5f52d49 100644 --- a/app-emulation/gxemul/Manifest +++ b/app-emulation/gxemul/Manifest @@ -1,2 +1 @@ -DIST gxemul-0.6.0.tar.gz 3598795 BLAKE2B 01bab252b8497379cc819899d9030fd267cf7679a90a421f435c6cb9ce84fedbdbd0ff23a11e0c91a17e41e166488562b4e173b3793cdbc2dd53b70701351429 SHA512 38108c7e4f1332bf80046a63e4a7c5e0fbce7f83a62fdeaa4518ef02947d7de83aac20b0307d286b7eb5d9c721b8400d449d4f244b2bc9358a2502fa21f56b73 DIST gxemul-0.6.2.tar.gz 5897883 BLAKE2B 9f5b76d955dc3e1a5b1623aaf491f18376456f33cfaa6a4c1633480980c35bb99172075135cfc1ca942ae3b0f34c4eb11c4aec4bc00272da8bb905176ddcea4a SHA512 4f389c509f9ecf39603ceed50e899e2bee285d3fefac9b3214076115ee71b5a7a68d1d92690b6debc8de5cf5f0303da83b3cc921a5c0b5eb4c7ad89baa730b59 diff --git a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch b/app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch deleted file mode 100644 index cf8b18379cd4..000000000000 --- a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/configure 2012-11-03 09:08:09.373041529 +0000 -+++ b/configure 2012-11-03 09:08:31.999585979 +0000 -@@ -705,6 +705,7 @@ - # mkstemp missing? - printf "checking for mkstemp... " - printf "#include <unistd.h> -+#include <stdlib.h> - int main(int argc, char *argv[]) { int x; char *y = \"abc\"; - x = mkstemp(y); return 0;}\n" > _tests.cc - $CXX $CXXFLAGS _tests.cc -o _tests 2> /dev/null diff --git a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch b/app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch deleted file mode 100644 index c9e21bcc4b33..000000000000 --- a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/src/old_main/misc.cc 2012-11-03 08:47:34.309732354 +0000 -+++ b/src/old_main/misc.cc 2012-11-03 08:47:02.096573614 +0000 -@@ -122,7 +122,7 @@ - p++; - } - -- h = open(templ, O_RDWR, 0600); -+ h = open(templ, O_CREAT | O_RDWR, 0600); - return h; - } - diff --git a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild b/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild deleted file mode 100644 index 2dd8d8087fa6..000000000000 --- a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild +++ /dev/null @@ -1,50 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="A Machine Emulator, Mainly emulates MIPS, but supports other CPU types" -HOMEPAGE="http://gxemul.sourceforge.net/" -SRC_URI="mirror://sourceforge/project/gxemul/GXemul/${PV}/${P}.tar.gz" - -LICENSE="BSD" -SLOT="0" -KEYWORDS="~amd64 ~mips ~ppc ~sparc ~x86" -IUSE="debug X" - -RDEPEND="X? ( x11-libs/libX11 )" -DEPEND="${RDEPEND} - X? ( x11-base/xorg-proto )" - -PATCHES=( - "${FILESDIR}"/${PN}-0.6.0-gcc46.patch - "${FILESDIR}"/${P}-fix-mymkstemp.patch # Bug 441558 - "${FILESDIR}"/${P}-fix-mkstemp-test.patch # Bug 441558 - "${FILESDIR}"/${PN}-0.6.0-no-doxygen.patch -) - -src_prepare() { - default - - sed -i configure -e 's|-O3||g' || die "sed configure" - tc-export CC CXX -} - -src_configure() { - # no autotools - ./configure \ - --disable-valgrind \ - $(use debug && echo --debug) \ - $(use X || echo --disable-x) \ - || die "configure failed" -} - -src_install() { - dobin gxemul - doman man/gxemul.1 - dodoc HISTORY README - docinto html - dodoc -r doc/. -} diff --git a/app-emulation/gxemul/metadata.xml b/app-emulation/gxemul/metadata.xml index ce46ccfd0e80..bd88d1ef0ae4 100644 --- a/app-emulation/gxemul/metadata.xml +++ b/app-emulation/gxemul/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> <longdescription>Machine Emulator. Supports emulation across several architectures. Primarily for MIPS support, but other platform support coming soon.</longdescription> diff --git a/app-emulation/hercules/Manifest b/app-emulation/hercules/Manifest index a21a461a5411..9d2aef8825b5 100644 --- a/app-emulation/hercules/Manifest +++ b/app-emulation/hercules/Manifest @@ -1,3 +1 @@ -DIST hercules-3.10.tar.gz 2608321 BLAKE2B df6dd9c93531ee3d68efbfad5b0152ef984e1804e211861e86ea5f7b271081abbd29664d4e97d0e887af10315549bdd7e890ec741baa7b69336f1f08be63c6cf SHA512 de8b3e2e90fdb745dea9c8ce4dbe506de2aba3bf08b3e937605798e6a8020576a949d6ea3496b7c42bd23d617fc96648d2d8ec05a66e8ed174ce46a3bc31c5d1 -DIST hercules-3.12.tar.gz 2569617 BLAKE2B e6b6dc2406bc198e25ddcbdc5dbf141e52cd15ddd690711fdd4ed69ca5baaddd582c437e28aa7793ac667c03f7617adb3bdf3a00cc7c3a28e3f28984f665eb9a SHA512 81d6e151c1c8534753f2db532a0a7bd36fb3806c1ffbab5d6e4a9af3eecea46b95105c37574910714dcfc0fe9b74a72140d573099c24fd44021159ce697414ef DIST hercules-3.13.tar.gz 2640742 BLAKE2B 1a84ceab346a591c494fb133d1654ffa73e44f73183564167a74f68eb3e5f3f187cc2f66cef444b951645fa85c111da261b9dd8907594ccb770f5b743f891649 SHA512 76f75ef3f1eb10c0fac0d6fa1ab9809b8d1dfe3deccbcd69366b05ee58f1ecb8ea0f387f7201ab4722b121478676f00e707ad27b6ecf1980fb09e900de63d718 diff --git a/app-emulation/hercules/files/hercules-3.09-aliasing.patch b/app-emulation/hercules/files/hercules-3.09-aliasing.patch deleted file mode 100644 index 3d03e9b6dc1b..000000000000 --- a/app-emulation/hercules/files/hercules-3.09-aliasing.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 7d3255a18ad845953cc8083371e8623e771ad4f5 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Tue, 27 Aug 2013 12:25:49 -0400 -Subject: [PATCH] sha: fix strict aliasing warnings - -sha256.c:492:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] -sha256.c:784:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] -sha256.c:785:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - -Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---- - crypto/sha256.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/crypto/sha256.c b/crypto/sha256.c -index 1a6a243..b1e90b4 100644 ---- a/crypto/sha256.c -+++ b/crypto/sha256.c -@@ -489,7 +489,7 @@ SHA256_Final(u_int8_t digest[], SHA256_CTX *context) - *context->buffer = 0x80; - } - /* Set the bit count: */ -- *(u_int64_t *)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount; -+ memcpy (&context->buffer[SHA256_SHORT_BLOCK_LENGTH], &context->bitcount, 8); - - /* Final transform: */ - SHA256_Transform(context, context->buffer); -@@ -781,8 +781,8 @@ SHA512_Last(SHA512_CTX *context) - *context->buffer = 0x80; - } - /* Store the length of input data (in bits): */ -- *(u_int64_t *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1]; -- *(u_int64_t *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0]; -+ memcpy (&context->buffer[SHA512_SHORT_BLOCK_LENGTH], &context->bitcount[1], 8); -+ memcpy (&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8], &context->bitcount[0], 8); - - /* Final transform: */ - SHA512_Transform(context, context->buffer); --- -1.8.3.2 - diff --git a/app-emulation/hercules/files/hercules-3.13-posix-test.patch b/app-emulation/hercules/files/hercules-3.13-posix-test.patch new file mode 100644 index 000000000000..abee4b0cc5ed --- /dev/null +++ b/app-emulation/hercules/files/hercules-3.13-posix-test.patch @@ -0,0 +1,29 @@ +https://github.com/rbowler/spinhawk/pull/106 + +From 9a9f7182069b8fe0483383c177882218244bad16 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Thu, 18 Nov 2021 02:32:02 -0500 +Subject: [PATCH] avoid bashism in test call + +POSIX test only supports =, not ==. +--- + autoconf/hercules.m4 | 2 +- + configure.ac | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index f12d47058562..8dd420af8d13 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -562,7 +562,7 @@ AC_CHECK_DECLS( SIOCADDRT, [hc_cv_have_siocaddrt=yes], [hc_ + AC_CHECK_DECLS( SIOCDELRT, [hc_cv_have_siocdelrt=yes], [hc_cv_have_siocdelrt=no], [#include <linux/sockios.h>] ) + AC_CHECK_DECLS( SIOCDIFADDR, [hc_cv_have_siocdifaddr=yes], [hc_cv_have_siocdifaddr=no], [#include <linux/sockios.h>] ) + +-if test "$hc_cv_have_sys_mtio_h" == "yes"; then ++if test "$hc_cv_have_sys_mtio_h" = "yes"; then + AC_CHECK_DECLS( MTEWARN, [hc_cv_have_mtewarn=yes], [hc_cv_have_mtewarn=no], [#include <sys/mtio.h>] ) + else + hc_cv_have_mtewarn=no +-- +2.33.0 + diff --git a/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch b/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch index 7aec7f602de4..c96831d96ad2 100644 --- a/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch +++ b/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch @@ -282,7 +282,7 @@ DYNMOD_LD_FLAGS = DYNMOD_LD_ADD = LIB_LD_FLAGS = $(XSTATIC) \ -@@ -295,8 +295,7 @@ +@@ -295,12 +295,11 @@ memrchr.c \ parser.c \ pttrace.c \ @@ -292,6 +292,11 @@ libhercu_la_LDFLAGS = $(LIB_LD_FLAGS) +- libhercu_la_LIBADD = $(LDADD) libhercs.la ++ libhercu_la_LIBADD = $(LDADD) libhercs.la $(LIB_LD_ADD) + + # + # Core Hercules (shared) library @@ -372,8 +371,7 @@ memrchr.c \ $(dynamic_SRC) \ @@ -345,3 +350,30 @@ LIB_LD_FLAGS = $(XSTATIC) \ -no-undefined \ -avoid-version +--- a/autoconf/hercules.m4 ++++ b/autoconf/hercules.m4 +@@ -270,7 +270,7 @@ + + else + +- if test $(./libtool --features | fgrep "enable shared libraries" | wc -l) -ne 1; then ++ if test "$enable_shared" != "yes"; then + + # Libtool doesn't support shared libraries, + # and thus our wrapper kludge is not needed. +@@ -280,11 +280,11 @@ + } + DUPGETOPT2 + +- ./libtool --mode=compile ${CC-cc} conftest1.c -c -o conftest1.lo > /dev/null 2>&1 +- ./libtool --mode=compile ${CC-cc} conftest2.c -c -o conftest2.lo > /dev/null 2>&1 ++ libtool --mode=compile ${CC-cc} conftest1.c -c -o conftest1.lo > /dev/null 2>&1 ++ libtool --mode=compile ${CC-cc} conftest2.c -c -o conftest2.lo > /dev/null 2>&1 + +- ./libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest1.lo -o libconftest1.la > /dev/null 2>&1 +- ./libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest2.lo libconftest1.la -o libconftest2.la > /dev/null 2>&1 ++ libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest1.lo -o libconftest1.la > /dev/null 2>&1 ++ libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest2.lo libconftest1.la -o libconftest2.la > /dev/null 2>&1 + + if test $? = 0; then + diff --git a/app-emulation/hercules/files/hercules-3.13-user-install.patch b/app-emulation/hercules/files/hercules-3.13-user-install.patch new file mode 100644 index 000000000000..bcde1181e873 --- /dev/null +++ b/app-emulation/hercules/files/hercules-3.13-user-install.patch @@ -0,0 +1,21 @@ +the ebuild will handle these, so no need to do it directly which will fail when +building as non-root. + +--- a/Makefile.am ++++ b/Makefile.am +@@ -730,15 +730,6 @@ endif + (cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) cfba2fba$(EXEEXT)) + rm -f $(DESTDIR)$(bindir)/cckd2ckd$(EXEEXT) + (cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) cckd2ckd$(EXEEXT)) +-if SETUID_HERCIFC +- chown root $(DESTDIR)$(bindir)/hercifc +-if HERCIFC_GROUPSET +- chgrp $(HERCIFC_GROUPNAME) $(DESTDIR)$(bindir)/hercifc +-endif +- chmod 0750 $(DESTDIR)$(bindir)/hercifc +- chmod +s $(DESTDIR)$(bindir)/hercifc +- rm hercifc +-endif + + uninstall-local: + diff --git a/app-emulation/hercules/hercules-3.12.ebuild b/app-emulation/hercules/hercules-3.12.ebuild deleted file mode 100644 index d121c6a69fa7..000000000000 --- a/app-emulation/hercules/hercules-3.12.ebuild +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit flag-o-matic - -DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator" -HOMEPAGE="http://www.hercules-390.eu/" -SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz" - -LICENSE="QPL-1.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~x64-macos ~x86-macos" -IUSE="bzip2 custom-cflags +suid" - -RDEPEND="bzip2? ( app-arch/bzip2 ) - net-libs/libnsl:0= - sys-libs/zlib" -DEPEND="${RDEPEND}" - -PATCHES=( - "${FILESDIR}"/${PN}-3.09-aliasing.patch -) - -src_prepare() { - default - - # The local modules need local libs, so when doing a parallel install - # of the modules and libs breaks during relinking. Force the libs to - # install first, and then the modules that use those libs. #488126 - echo "install-modexecLTLIBRARIES: install-libLTLIBRARIES" >> Makefile.in || die -} - -src_configure() { - use custom-cflags || strip-flags - ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2) \ - econf \ - $(use_enable bzip2 cckd-bzip2) \ - $(use_enable bzip2 het-bzip2) \ - $(use_enable suid setuid-hercifc) \ - --enable-custom="Gentoo ${PF}.ebuild" \ - --disable-optimization -} - -src_install() { - default - insinto /usr/share/hercules - doins hercules.cnf - dodoc README.* RELEASE.NOTES - docinto html - dodoc -r html -} diff --git a/app-emulation/hercules/hercules-3.10.ebuild b/app-emulation/hercules/hercules-3.13-r1.ebuild index d165c020c390..608739f4b314 100644 --- a/app-emulation/hercules/hercules-3.10.ebuild +++ b/app-emulation/hercules/hercules-3.13-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI="7" -inherit flag-o-matic +inherit autotools flag-o-matic DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator" HOMEPAGE="http://www.hercules-390.eu/" @@ -11,21 +11,30 @@ SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz" LICENSE="QPL-1.0" SLOT="0" -KEYWORDS="~alpha amd64 ppc sparc x86 ~x64-macos ~x86-macos" +KEYWORDS="~alpha amd64 ppc sparc x86 ~x64-macos" IUSE="bzip2 custom-cflags +suid" -RDEPEND="bzip2? ( app-arch/bzip2 ) +RDEPEND=" + dev-libs/libltdl:= net-libs/libnsl:0= - sys-libs/zlib" + sys-libs/zlib:= + bzip2? ( app-arch/bzip2:= )" DEPEND="${RDEPEND}" PATCHES=( - "${FILESDIR}"/${PN}-3.09-aliasing.patch + "${FILESDIR}"/${PN}-3.13-htmldir.patch + "${FILESDIR}"/${PN}-3.13-posix-test.patch + "${FILESDIR}"/${PN}-3.13-unbundle-libltdl.patch + "${FILESDIR}"/${PN}-3.13-user-install.patch ) src_prepare() { default + # delete bundled libltdl, #252716 + rm ltdl.{c,h} || die + eautoreconf + # The local modules need local libs, so when doing a parallel install # of the modules and libs breaks during relinking. Force the libs to # install first, and then the modules that use those libs. #488126 @@ -34,7 +43,7 @@ src_prepare() { src_configure() { use custom-cflags || strip-flags - ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2) \ + local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2) econf \ $(use_enable bzip2 cckd-bzip2) \ $(use_enable bzip2 het-bzip2) \ @@ -45,9 +54,13 @@ src_configure() { src_install() { default + dodoc RELEASE.NOTES + + use suid && fperms 4711 /usr/bin/hercifc + insinto /usr/share/hercules doins hercules.cnf - dodoc README.* RELEASE.NOTES - docinto html - dodoc -r html + + # No static archives. Have to leave .la files for modules. #720342 + rm "${ED}/usr/$(get_libdir)/"*.la || die } diff --git a/app-emulation/hercules/hercules-3.13.ebuild b/app-emulation/hercules/hercules-3.13.ebuild deleted file mode 100644 index 90fb943156a9..000000000000 --- a/app-emulation/hercules/hercules-3.13.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools flag-o-matic - -DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator" -HOMEPAGE="http://www.hercules-390.eu/" -SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz" - -LICENSE="QPL-1.0" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~x64-macos ~x86-macos" -IUSE="bzip2 custom-cflags +suid" - -RDEPEND=" - dev-libs/libltdl - net-libs/libnsl:0= - sys-libs/zlib - bzip2? ( app-arch/bzip2 )" -DEPEND="${RDEPEND}" - -PATCHES=( - "${FILESDIR}"/${PN}-3.13-htmldir.patch - "${FILESDIR}"/${PN}-3.13-unbundle-libltdl.patch -) - -src_prepare() { - default - - # delete bundled libltdl, #252716 - rm ltdl.{c,h} || die - eautoreconf -} - -src_configure() { - use custom-cflags || strip-flags - local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2) - econf \ - $(use_enable bzip2 cckd-bzip2) \ - $(use_enable bzip2 het-bzip2) \ - $(use_enable suid setuid-hercifc) \ - --enable-custom="Gentoo ${PF}.ebuild" \ - --disable-optimization -} - -src_install() { - default - dodoc RELEASE.NOTES - - insinto /usr/share/hercules - doins hercules.cnf - - # no static archives - find "${D}" -name '*.la' -delete || die -} diff --git a/app-emulation/hercules/metadata.xml b/app-emulation/hercules/metadata.xml index cb2f36c44dd8..d03df75ce618 100644 --- a/app-emulation/hercules/metadata.xml +++ b/app-emulation/hercules/metadata.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>s390@gentoo.org</email> - <name>Gentoo Linux s390 Development</name> + <name>s390 architecture team</name> </maintainer> <longdescription> Hercules is an emulator for the IBM System/360, System/370, ESA/390, and diff --git a/app-emulation/hyperd/metadata.xml b/app-emulation/hyperd/metadata.xml index 2babf919ffdd..8367f3593c1c 100644 --- a/app-emulation/hyperd/metadata.xml +++ b/app-emulation/hyperd/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> <use> diff --git a/app-emulation/img/Manifest b/app-emulation/img/Manifest deleted file mode 100644 index 4f0b1fbab893..000000000000 --- a/app-emulation/img/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST img-0.5.7.tar.gz 3875988 BLAKE2B dd8f13f6861eadc3a4c3d2d07ac826e53a8f3b83d66974717e9312c579967e0c9b57657c8fe6e86f03bb91fd7a82bc6d8d7d87a70be4dd85da10800d8909a51d SHA512 a42247c2ceac0ccfcc2cfd6a561a058855869f0219994cd8fa2bdd5092be17803057e4cb48a2d5277fdfded74dd06eb7c3c3db590fbde91502aebcaf593ddef7 diff --git a/app-emulation/img/img-0.5.7-r1.ebuild b/app-emulation/img/img-0.5.7-r1.ebuild deleted file mode 100644 index 4b2367c13e4e..000000000000 --- a/app-emulation/img/img-0.5.7-r1.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGO_PN="github.com/genuinetools/img" - -inherit golang-vcs-snapshot - -DESCRIPTION="Standalone daemon-less unprivileged Dockerfile and OCI container image builder" -HOMEPAGE="https://github.com/genuinetools/img" -SRC_URI="https://github.com/genuinetools/img/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -KEYWORDS="~amd64" -LICENSE="MIT" -SLOT="0" -IUSE="seccomp" - -DEPEND="seccomp? ( sys-libs/libseccomp )" -RDEPEND="${DEPEND} - app-emulation/runc" - -src_compile() { - GOPATH="${S}:$(get_golibdir_gopath)" \ - GOCACHE="${T}/go-cache" \ - IMG_DISABLE_EMBEDDED_RUNC=1 \ - go build -v -work -x -tags "noembed $(usev seccomp)" \ - -ldflags="-s -w -X ${EGO_PN}/version.VERSION=${PV}" "${EGO_PN}" || die -} - -src_install() { - dobin img - dodoc "src/${EGO_PN}"/{README.md,AUTHORS} -} diff --git a/app-emulation/img/metadata.xml b/app-emulation/img/metadata.xml deleted file mode 100644 index 236a80be46df..000000000000 --- a/app-emulation/img/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>email@linxon.ru</email> - <name>Yury Martynov</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <upstream> - <remote-id type="github">genuinetools/img</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/kompose/Manifest b/app-emulation/kompose/Manifest deleted file mode 100644 index 4975b9db5488..000000000000 --- a/app-emulation/kompose/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST kompose-1.16.0.tar.gz 5241785 BLAKE2B 9958b200827b70c94a499981880cc7a5d8137354205d96657d854aefebbd877e332ac3047f59e13b62dd6b9a9235d1ed83bb8b8de973d59f81906b3f376176a0 SHA512 267601ba51f5cfcbb95b9fbf52bbb99f9c810de8edb301b635a50936d7a714dc8410352ff3a4aa8819de1659a45cbb42caf5e552023cfa594a0eb8e99db57522 -DIST kompose-1.19.0.tar.gz 5314491 BLAKE2B c03f7ece6dc91979a147bb1689525318b7c31b22242e6fbf5387469d3196dfc569178235b5a52ccdd9647ceb626be313017484451f149e375edf3b48da063328 SHA512 571c5f23a19ba1f7a403e2369d74a5f6ba051c5e9c27b79bf5ab05f8dfc9abd523862dad7da3cd0d503e4de2e76666cd1eea8d8921b0bbe79db81f11a23fbe64 diff --git a/app-emulation/kompose/kompose-1.16.0.ebuild b/app-emulation/kompose/kompose-1.16.0.ebuild deleted file mode 100644 index 8804d097f4eb..000000000000 --- a/app-emulation/kompose/kompose-1.16.0.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit golang-build golang-vcs-snapshot - -EGO_PN="github.com/kubernetes/kompose" -EGIT_COMMIT="v${PV}" -GIT_COMMIT="0c01309fe899c587e8cb02e9c31196ee66ab5093" -ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -KEYWORDS="~amd64" - -DESCRIPTION="Tool to move from docker-compose to Kubernetes" -HOMEPAGE="https://github.com/kubernetes/kompose https://kompose.io" -SRC_URI="${ARCHIVE_URI}" -LICENSE="Apache-2.0" -SLOT="0" -IUSE="hardened" - -RESTRICT="test" - -src_compile() { - export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')" - GOPATH="${S}" go build -v -ldflags="-X github.com/kubernetes/kompose/cmd.GITCOMMIT=${GIT_COMMIT}" -o bin/kompose src/${EGO_PN}/main.go || die -} - -src_install() { - dobin bin/* - dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,ROADMAP,CHANGELOG,CONTRIBUTING}.md} -} diff --git a/app-emulation/kompose/kompose-1.19.0.ebuild b/app-emulation/kompose/kompose-1.19.0.ebuild deleted file mode 100644 index d6b2bc22f6a7..000000000000 --- a/app-emulation/kompose/kompose-1.19.0.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit golang-build golang-vcs-snapshot - -EGO_PN="github.com/kubernetes/kompose" -EGIT_COMMIT="v${PV}" -GIT_COMMIT="f63a961ca7972cb243507755c69cd066aa792289" -ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" -KEYWORDS="~amd64" - -DESCRIPTION="Tool to move from docker-compose to Kubernetes" -HOMEPAGE="https://github.com/kubernetes/kompose https://kompose.io" -SRC_URI="${ARCHIVE_URI}" -LICENSE="Apache-2.0" -SLOT="0" -IUSE="hardened" - -RESTRICT="test" - -src_compile() { - export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')" - GOPATH="${S}" go build -v -ldflags="-X github.com/kubernetes/kompose/cmd.GITCOMMIT=${GIT_COMMIT}" -o bin/kompose src/${EGO_PN}/main.go || die -} - -src_install() { - dobin bin/* - dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,CHANGELOG,CONTRIBUTING}.md} -} diff --git a/app-emulation/kompose/metadata.xml b/app-emulation/kompose/metadata.xml deleted file mode 100644 index 35b5754e5e51..000000000000 --- a/app-emulation/kompose/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <upstream> - <remote-id type="github">kubernetes/kompose</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/libcacard/Manifest b/app-emulation/libcacard/Manifest index 14387566c0ec..58cdf557c643 100644 --- a/app-emulation/libcacard/Manifest +++ b/app-emulation/libcacard/Manifest @@ -1 +1 @@ -DIST libcacard-2.6.0.tar.xz 364828 BLAKE2B 3a07243abb91dab05d89bf073fabb4a0ef7e820765066a8d87e72086b88cc726de77d1fdc5118e05ed47077d76ae0a57ff591a2e4e8623c3484c6cbf00cd025e SHA512 d6dfe6fe6cd2711bf8f71edc134a7caf459fc2a9c4f664ab2f1c28cc9ee8efe7a2d5a15c4dc735956638176e07e22416cad5e8e926aa7cab3fa95ded853f5982 +DIST libcacard-2.8.1.tar.xz 396472 BLAKE2B 49b1c0c9184f0a926df85de6146dd31a7127ee5e40a172e3d9e47f33ef4cdef57ee85f34c9c53719b4a8c5a1de695b8936cfcfce141cd558e6d53d215421621b SHA512 6deddd3319dbd74165eeaa2e8ab10de4a6eb111e980edd608801f7fe3c4fa896c9fb239110d17763864887f5eb0b77c03c680d83fd58a3913b48deb5a225ec74 diff --git a/app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch b/app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch deleted file mode 100644 index 40e2a9d21e26..000000000000 --- a/app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/tests/simpletlv.c b/tests/simpletlv.c -index cd0cd69c4dfb504a52e3f7314e4a01657377eb68..9ddc5b999f73d56f35f85810479760b301330282 100644 ---- a/tests/simpletlv.c -+++ b/tests/simpletlv.c -@@ -48,7 +48,7 @@ static void test_length_simple(void) - - static void test_length_nested(void) - { -- size_t length = 0; -+ int length = 0; - unsigned char simple_value[] = "\x12\x14"; - static struct simpletlv_member simple[1] = { - {0x25, 2, {/*.value = simple_value*/}, SIMPLETLV_TYPE_LEAF} -@@ -102,7 +102,7 @@ static void test_length_skipped(void) - static void test_encode_simple(void) - { - unsigned char *result = NULL; -- size_t result_len = 0; -+ int result_len = 0; - unsigned char simple_value[] = "\x10\x11"; - unsigned char simple_encoded[] = "\x25\x02\x10\x11"; - unsigned char long_value[256] = "Long data value"; -@@ -168,7 +168,7 @@ static void test_encode_simple(void) - static void test_encode_nested(void) - { - unsigned char *result = NULL; -- size_t result_len = 0; -+ int result_len = 0; - unsigned char simple_value[] = "\x12\x14"; - unsigned char encoded[] = "\x72\x04\x25\x02\x12\x14"; - static struct simpletlv_member simple[1] = { diff --git a/app-emulation/libcacard/libcacard-2.6.0.ebuild b/app-emulation/libcacard/libcacard-2.6.0.ebuild deleted file mode 100644 index c196a512a7ca..000000000000 --- a/app-emulation/libcacard/libcacard-2.6.0.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -DESCRIPTION="virtual Common Access Card (CAC) library emulator" -HOMEPAGE="https://www.spice-space.org/" -SRC_URI="https://www.spice-space.org/download/libcacard/${P}.tar.xz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ppc ppc64 sparc x86" -IUSE="+passthrough static-libs" - -RDEPEND=">=dev-libs/nss-3.13 - >=dev-libs/glib-2.22 - passthrough? ( >=sys-apps/pcsc-lite-1.8 )" -DEPEND="${RDEPEND} - virtual/pkgconfig" - -PATCHES=( - "${FILESDIR}/${P}-simpletlv-test-fix.patch" - ) - -src_prepare() { - default - - # remove test requiring SoftHSMv2 which is not in the tree atm - sed -i \ - -e 's|tests/hwtests$(EXEEXT) \($(am__EXEEXT_1)\)|\1|' \ - Makefile.in || die -} - -src_configure() { - econf \ - $(use_enable passthrough pcsc) \ - $(use_enable static-libs static) -} - -src_install() { - default - dodoc docs/*.txt - use static-libs || find "${ED}"/usr/ -name 'lib*.la' -delete -} diff --git a/app-emulation/libcacard/libcacard-2.8.1.ebuild b/app-emulation/libcacard/libcacard-2.8.1.ebuild new file mode 100644 index 000000000000..11c365e0c4e9 --- /dev/null +++ b/app-emulation/libcacard/libcacard-2.8.1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +DESCRIPTION="Virtual Common Access Card (CAC) library emulator" +HOMEPAGE="https://gitlab.freedesktop.org/spice/libcacard https://www.spice-space.org/" +SRC_URI="https://www.spice-space.org/download/libcacard/${P}.tar.xz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~loong ppc ppc64 ~riscv sparc x86" +IUSE="+passthrough static-libs test" +RESTRICT="!test? ( test )" + +RDEPEND=" + >=dev-libs/nss-3.12.8 + >=dev-libs/glib-2.32 + passthrough? ( >=sys-apps/pcsc-lite-1.8 ) +" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +src_configure() { + local emesonargs=( + -Ddefault_library=$(usex static-libs both shared) + $(meson_feature passthrough pcsc) + $(meson_use !test disable_tests) + ) + + meson_src_configure +} + +src_install() { + meson_src_install + + dodoc docs/*.txt +} diff --git a/app-emulation/libcacard/metadata.xml b/app-emulation/libcacard/metadata.xml index 0fa99318f0a7..1a71034e745b 100644 --- a/app-emulation/libcacard/metadata.xml +++ b/app-emulation/libcacard/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>virtualization@gentoo.org</email> @@ -8,4 +8,7 @@ <use> <flag name="passthrough">Enable smartcard passthrough support via <pkg>sys-apps/pcsc-lite</pkg></flag> </use> + <upstream> + <remote-id type="freedesktop-gitlab">spice/libcacard</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/libdsk/Manifest b/app-emulation/libdsk/Manifest index 948efc2aaff9..085523245587 100644 --- a/app-emulation/libdsk/Manifest +++ b/app-emulation/libdsk/Manifest @@ -1 +1 @@ -DIST libdsk-1.5.8.tar.gz 1212684 BLAKE2B 52a2687d8ade0378096215d362df21b6eb477b3304910bb98c56264fb05bec6ad2d2b7254dd132fe50e60d5179b4875a1a91088f8ed93f68886054bf1df060f4 SHA512 6bb332dcd58b88272130a950ed686852f66a1e97030aaa280db3bc65a7f82513d57055c2cc3e653e1e06843c453e46a52ce280b45b42c0bb671d1e0f6d7c9520 +DIST libdsk-1.5.18.tar.gz 1295474 BLAKE2B 36dd2a0c5a53899b721dc46848c79a36b80ebb30d8210eacf7462d5785c607f00b69ca26ea4ec35bd3e03f5203043e6aa0687b2212672b274305e9f5aad8ce6e SHA512 5d845084f6c7791813be7c2afcd34a52cebb217ddcdafe1953fcbd55ce5b7df944e2b3abd253d2a7cd376e6e111f9d6f2e0b6474ceb84a5b5f4dcb5609922d4e diff --git a/app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch b/app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch deleted file mode 100644 index e52b92bf2e33..000000000000 --- a/app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -Nuar a/lib/compress.c b/lib/compress.c ---- a/lib/compress.c 2017-02-13 20:34:21.000000000 +0100 -+++ b/lib/compress.c 2018-01-28 15:22:15.571892254 +0100 -@@ -23,6 +23,7 @@ - #include "drvi.h" /* For LINUXFLOPPY and WIN32FLOPPY */
- #include "compi.h"
- #include "comp.h"
-+#include <sys/sysmacros.h>
- /* LibDsk generalised compression support */
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
-diff -Nuar a/lib/drvlinux.c b/lib/drvlinux.c ---- a/lib/drvlinux.c 2017-02-26 01:43:39.000000000 +0100 -+++ b/lib/drvlinux.c 2018-01-28 15:22:08.661892284 +0100 -@@ -26,6 +26,7 @@ - - #include "drvi.h" - #include "drvlinux.h" -+#include <sys/sysmacros.h> - - #ifdef LINUXFLOPPY - diff --git a/app-emulation/libdsk/libdsk-1.5.18.ebuild b/app-emulation/libdsk/libdsk-1.5.18.ebuild new file mode 100644 index 000000000000..6e18e9b1aed0 --- /dev/null +++ b/app-emulation/libdsk/libdsk-1.5.18.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="LIBDSK is a library for accessing discs and disc image files" +HOMEPAGE="https://www.seasip.info/Unix/LibDsk/" +SRC_URI="https://www.seasip.info/Unix/LibDsk/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="doc" + +DOCS=( doc/${PN}.{txt,pdf} ) + +src_install() { + default + find "${ED}" -name '*.la' -delete || die +} diff --git a/app-emulation/libdsk/libdsk-1.5.8.ebuild b/app-emulation/libdsk/libdsk-1.5.8.ebuild deleted file mode 100644 index e09295e8440b..000000000000 --- a/app-emulation/libdsk/libdsk-1.5.8.ebuild +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="LIBDSK is a library for accessing discs and disc image files" -HOMEPAGE="http://www.seasip.info/Unix/LibDsk/" -SRC_URI="http://www.seasip.info/Unix/LibDsk/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64" -IUSE="doc" - -src_prepare() { - eapply "${FILESDIR}"/${P}-include-sysmacros.patch - eapply_user -} - -src_install() { - emake DESTDIR="${D}" install - DOCS="doc/${PN}.txt doc/${PN}.pdf" einstalldocs -} diff --git a/app-emulation/libdsk/metadata.xml b/app-emulation/libdsk/metadata.xml index 7a38bb900964..115e9d64a669 100644 --- a/app-emulation/libdsk/metadata.xml +++ b/app-emulation/libdsk/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> </pkgmetadata> diff --git a/app-emulation/libguestfs-appliance/Manifest b/app-emulation/libguestfs-appliance/Manifest index 2a14246054e3..6f9b2b913935 100644 --- a/app-emulation/libguestfs-appliance/Manifest +++ b/app-emulation/libguestfs-appliance/Manifest @@ -1 +1 @@ -DIST appliance-1.38.0.tar.xz 96537604 BLAKE2B 8b425b624dec274f2913ab9ff89cc02fea6c9244d6e3ee64f054d2a91f7959d9dbc03d55e9f5b4f5df835007581a18914b5c790f55b01c3398412ce5a7e9309d SHA512 a423fd54627ffb9c2ae05b26ad60b9089f8119a99d30612a33921a2662ba42332ad0a7a7ad6c33b7042fc02a5c4dc9b563158650c6cb4a3eaaae6b764f7d7082 +DIST appliance-1.46.0.tar.xz 145436856 BLAKE2B d9ed31f533a2772b0f506176b39bfdfdec1421fe4ff7934ccdb1db0cb2644d477211ec1a2d372d7e5dd0a8f278f47a39bff813b7bc4c9a038258a5f6358b4e91 SHA512 842119bdf95dbbd61328891e9bd0b557bed90ba79c6419ee18d1a79cd4a301ea6922339b9e80ac314ff3e16498e9d3c594861aebe8e0fc2db41d285eb8e5d578 diff --git a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild index 31e8b16bfd51..b688b1daac9c 100644 --- a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild +++ b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild @@ -1,7 +1,9 @@ -# Copyright 1999-2018 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=8 + +# Bump with app-emulation/libguestfs and app-emulation/guestfs-tools (if any new release there) CHECKREQS_DISK_USR=500M CHECKREQS_DISK_BUILD=500M @@ -9,20 +11,18 @@ CHECKREQS_DISK_BUILD=500M inherit check-reqs DESCRIPTION="VM appliance disk image used in libguestfs package" -HOMEPAGE="http://libguestfs.org/" -SRC_URI="http://libguestfs.org/download/binaries/appliance/appliance-${PV}.tar.xz" +HOMEPAGE="https://libguestfs.org/" +SRC_URI="https://download.libguestfs.org/binaries/appliance/appliance-${PV}.tar.xz" +S="${WORKDIR}" LICENSE="GPL-2 LGPL-2" SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" +KEYWORDS="amd64 ~ppc64 ~x86" -DEPEND="app-arch/xz-utils" -# Mixing libguestfs versions causes weird problems. #501588 +BDEPEND="app-arch/xz-utils" +# Mixing libguestfs versions causes weird problems, bug #501588 RDEPEND="!<app-emulation/libguestfs-${PV}" -S="${WORKDIR}" - src_unpack() { # We'll unpack the tarball directly into ${D} to speed up install. # Otherwise we need to duplicate hundreds of data. @@ -31,8 +31,9 @@ src_unpack() { src_install() { dodir /usr/share/guestfs - cd "${ED}"/usr/share/guestfs + cd "${ED}"/usr/share/guestfs || die unpack ${A} + cd appliance || die dodoc README* # Don't rm README.* here, at least README.fixed is needed for libguestfs, see @@ -40,5 +41,10 @@ src_install() { chmod 755 . || die chmod 644 * || die - newenvd "${FILESDIR}"/env.file 99"${PN}" + newenvd "${FILESDIR}"/env.file 99${PN} +} + +pkg_postinst() { + # bug #776790 + elog "Please run . ${EROOT}/etc/profile before attempting to use this package!" } diff --git a/app-emulation/libguestfs-appliance/metadata.xml b/app-emulation/libguestfs-appliance/metadata.xml index d6547078667a..1e35cd5e94fd 100644 --- a/app-emulation/libguestfs-appliance/metadata.xml +++ b/app-emulation/libguestfs-appliance/metadata.xml @@ -1,13 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> - <email>maksbotan@gentoo.org</email> - <name>Maxim Koltsov</name> -</maintainer> -<maintainer type="person"> - <email>rich@annexia.org</email> - <name>Richard Jones</name> - <description>Upstream - please CC on bugs that concerns upstream</description> -</maintainer> + <!-- maintainer-needed --> + <upstream> + <maintainer> + <email>rjones@redhat.com</email> + <name>Richard Jones</name> + </maintainer> + </upstream> </pkgmetadata> diff --git a/app-emulation/libguestfs/Manifest b/app-emulation/libguestfs/Manifest index b72e0e457692..5e4dfc6354e9 100644 --- a/app-emulation/libguestfs/Manifest +++ b/app-emulation/libguestfs/Manifest @@ -1,3 +1 @@ -DIST libguestfs-1.36.13.tar.gz 22886310 BLAKE2B b0961cc6b941f1b68bba23af72e8b5478ed33da6f343e453f90decd7454cfc6a94cf67a81ad59c443df744727afa9bd4e98c77411efc4134e3422eaae59ffff5 SHA512 7c9799d5d563ffd8296f70a8402582aba85f3bf3c0dcaa18c44ecff5b7f771a3bc3f297aa85a4056351758298c79752d456a4b46e41924ff9acf196c992d51fb -DIST libguestfs-1.36.15.tar.gz 22256729 BLAKE2B 7ed9c0010ffe6b904b055068e86544f12a884ff52f1f3322a3014574310de9a69077d1865e641ad8304149d1a2eb0d0fbc5e107c93a9790135dc543592da68a6 SHA512 a918bc886b60340d748093bdcca3a048ed26b31508ba256cd7903b76798816e54f836446d9286f7c452fa0d4fa82c0c1216606d01fce2ada9d7386fa463857c7 -DIST libguestfs-1.38.6.tar.gz 23284845 BLAKE2B 005aaef731e1711dc5f4552dbecff80f2c7a79fd8a13f6b79675b0a381dcd7b9ad16867ed0dda73a9f20ab0a7e03892b5ebffa5436b870613233fbd2024ca846 SHA512 20a254f1d6a4628a11f42c08947d1165430a020030da7e6ee7b22859b552245e8f3822a2d86c60055878ca00d8f17d346a0ad8274e8f0bb03ef4a9410b9630f1 +DIST libguestfs-1.48.6.tar.gz 19179600 BLAKE2B 22359ed4b55e29f985dbbbc4f0337eaec32f21a1413bd778656c3f0270891bec520a0b9590e104836eaf9367aeb9ac681b0bf85852fb7a2059da3f7062bc5111 SHA512 7d929db183fbb1d4d1c9159f28871ab4f1bd0be5b3d9fbc5137271666f50c067fd0906674cb1a52c1e070c11a18da4d2aa11bc64ddabda5cac54e72252c6abf2 diff --git a/app-emulation/libguestfs/files/1.28/0000_bug_499150.patch b/app-emulation/libguestfs/files/1.28/0000_bug_499150.patch deleted file mode 100644 index 1e0f1a32185e..000000000000 --- a/app-emulation/libguestfs/files/1.28/0000_bug_499150.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/configure.ac 2014-01-24 19:04:05.633056872 +0100 -+++ b/configure.ac 2014-01-24 19:04:34.685691757 +0100 -@@ -24,6 +24,7 @@ - - AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release) - AC_CONFIG_AUX_DIR([build-aux]) -+AM_GNU_GETTEXT_VERSION(0.18.3) - - dnl Initialize automake. automake < 1.12 didn't have serial-tests and - dnl gives an error if it sees this, but for automake >= 1.13 diff --git a/app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch b/app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch deleted file mode 100644 index 9d209ff53584..000000000000 --- a/app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/configure.ac b/configure.ac ---- a/configure.ac -+++ b/configure.ac -@@ -482,6 +482,11 @@ - DISTRO=UBUNTU - fi - fi -+ -+if test -f /etc/gentoo-release; then -+ DISTRO=GENTOO -+fi -+ - if test -f /etc/arch-release; then - DISTRO=ARCHLINUX - fi diff --git a/app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch b/app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch deleted file mode 100644 index 38a591b811ed..000000000000 --- a/app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/configure.ac b/configure.ac ---- a/configure.ac -+++ b/configure.ac -@@ -1487,8 +1487,10 @@ - - dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files - dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html --LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool' --AC_SUBST([LIBTOOL]) -+dnl LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool' -+dnl AC_SUBST([LIBTOOL]) -+LT_INIT -+ - - dnl Produce output files. - AC_CONFIG_HEADERS([config.h]) diff --git a/app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch b/app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch deleted file mode 100644 index 69b3ae6d0d2d..000000000000 --- a/app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/configure.ac b/configure.ac ---- a/configure.ac -+++ b/configure.ac -@@ -1491,11 +1491,12 @@ - ]) - - # check for gtk-doc --m4_ifdef([GTK_DOC_CHECK], [ -- GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) --],[ -- AM_CONDITIONAL([ENABLE_GTK_DOC], false) --]) -+#m4_ifdef([GTK_DOC_CHECK], [ -+# GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) -+#],[ -+# AM_CONDITIONAL([ENABLE_GTK_DOC], false) -+#]) -+GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) - - dnl Library versioning. - MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR` diff --git a/app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch b/app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch deleted file mode 100644 index 34ab42d27903..000000000000 --- a/app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Makefile.am b/Makefile.am ---- a/Makefile.am -+++ b/Makefile.am -@@ -88,9 +88,6 @@ - if HAVE_HASKELL - SUBDIRS += haskell - endif --if HAVE_PHP --SUBDIRS += php --endif - if HAVE_ERLANG - SUBDIRS += erlang erlang/examples - endif diff --git a/app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch b/app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch deleted file mode 100644 index 24da76fbab5e..000000000000 --- a/app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch +++ /dev/null @@ -1,29 +0,0 @@ -From a5fd133e001bb62d13c47ebc392fbb696a513640 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr> -Date: Wed, 30 Aug 2017 11:30:56 +0200 -Subject: [PATCH 1/3] Update libtool initialization - -Use the recommanded macro post libtool-2 release. ---- - m4/guestfs_misc.m4 | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/m4/guestfs_misc.m4 b/m4/guestfs_misc.m4 -index 5dce207d7..a2bb39c0d 100644 ---- a/m4/guestfs_misc.m4 -+++ b/m4/guestfs_misc.m4 -@@ -17,10 +17,7 @@ - - dnl Miscellaneous configuration that doesn't fit anywhere else. - --dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files --dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html --LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool' --AC_SUBST([LIBTOOL]) -+LT_INIT - - dnl Only build boot-analysis program on x86-64 and aarch64. It - dnl requires custom work to port to each architecture. --- -2.14.1 - diff --git a/app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch b/app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch deleted file mode 100644 index bf265f718c73..000000000000 --- a/app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 9c423cd2d24b6de924afc6e0d715594bb056288d Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr> -Date: Wed, 30 Aug 2017 11:27:50 +0200 -Subject: [PATCH 2/3] Add support for Gentoo in distribution detection - ---- - m4/guestfs_appliance.m4 | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/m4/guestfs_appliance.m4 b/m4/guestfs_appliance.m4 -index 890b1999c..9b79e1a41 100644 ---- a/m4/guestfs_appliance.m4 -+++ b/m4/guestfs_appliance.m4 -@@ -114,6 +114,8 @@ elif test -f /etc/frugalware-release; then - DISTRO=FRUGALWARE - elif test -f /etc/mageia-release; then - DISTRO=MAGEIA -+elif test -f /etc/gentoo-release; then -+ DISTRO=GENTOO - else - dnl fallback option - DISTRO=REDHAT --- -2.14.1 - diff --git a/app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch b/app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch deleted file mode 100644 index 093a53f11632..000000000000 --- a/app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch +++ /dev/null @@ -1,40 +0,0 @@ -From dc35ce2ba774a9284360bfd6532acb527a2f73d7 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Fri, 7 Dec 2018 11:21:25 +0100 -Subject: [PATCH 3/4] Fix install failure when not built with OCaml support - -Makefile rules in po/ require builder/index-parse.c to be generated to -allow translation utilities to work on it, however builder/ is -completely masked behind OCaml conditional build even if some tools do -not require it and proper guards are in place already. - -Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1614502 ---- - Makefile.am | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index 7eefacbeb..c0a68151f 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -155,7 +155,6 @@ if HAVE_OCAML - SUBDIRS += \ - mllib \ - customize \ -- builder builder/templates \ - get-kernel \ - resize \ - sparsify \ -@@ -169,6 +168,9 @@ SUBDIRS += dib - endif - endif - -+# Tools mixed with more OCAML based tools -+SUBDIRS += builder builder/templates -+ - # Perl tools. - if HAVE_TOOLS - SUBDIRS += tools --- -2.19.2 - diff --git a/app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch b/app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch deleted file mode 100644 index 087708db396a..000000000000 --- a/app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 9bfa78095f6090c377fb40970653d1105a343cb7 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr> -Date: Wed, 30 Aug 2017 11:33:58 +0200 -Subject: [PATCH 3/3] Workaround autotools-utils detection of gtk-doc - ---- - configure.ac | 3 +++ - m4/guestfs_gobject.m4 | 7 ------- - 2 files changed, 3 insertions(+), 7 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 268e6a182..65f4231bc 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -121,6 +121,9 @@ m4_include([m4/guestfs_lua.m4]) - m4_include([m4/guestfs_golang.m4]) - m4_include([m4/guestfs_gobject.m4]) - -+dnl check for gtk-doc -+GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) -+ - dnl Bash completion. - m4_include([m4/guestfs_bash_completion.m4]) - -diff --git a/m4/guestfs_gobject.m4 b/m4/guestfs_gobject.m4 -index 4b4eab80d..4304f7b00 100644 ---- a/m4/guestfs_gobject.m4 -+++ b/m4/guestfs_gobject.m4 -@@ -59,10 +59,3 @@ m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [ - ],[ - AM_CONDITIONAL([HAVE_INTROSPECTION], [false]) - ]) -- --# check for gtk-doc --m4_ifdef([GTK_DOC_CHECK], [ -- GTK_DOC_CHECK([1.14],[--flavour no-tmpl]) --],[ -- AM_CONDITIONAL([ENABLE_GTK_DOC], false) --]) --- -2.14.1 - diff --git a/app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch b/app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch deleted file mode 100644 index 9bce9b05b051..000000000000 --- a/app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 1f51b8ef921ad804022fc39b7465f9f731cbb6be Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Fri, 7 Dec 2018 12:14:15 +0100 -Subject: [PATCH 4/5] Loosen build time requirement on bash-completion - -Distributions might avoid pulling bash-completion during build as it is -an optional feature and would only make sense at runtime anyway. Since -this setting is well-known across a given distribution, allow them to -provide the value and avoid the dependency. ---- - m4/guestfs_bash_completion.m4 | 21 ++++++++++----------- - 1 file changed, 10 insertions(+), 11 deletions(-) - -diff --git a/m4/guestfs_bash_completion.m4 b/m4/guestfs_bash_completion.m4 -index 1f171b79d..9e877f6ab 100644 ---- a/m4/guestfs_bash_completion.m4 -+++ b/m4/guestfs_bash_completion.m4 -@@ -16,14 +16,13 @@ - # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - dnl Bash completion. --PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ -- bash_completion=yes -- AC_MSG_CHECKING([for bash-completions directory]) -- BASH_COMPLETIONS_DIR="`pkg-config --variable=completionsdir bash-completion`" -- AC_MSG_RESULT([$BASH_COMPLETIONS_DIR]) -- AC_SUBST([BASH_COMPLETIONS_DIR]) --],[ -- bash_completion=no -- AC_MSG_WARN([bash-completion not installed]) --]) --AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) -+AC_ARG_WITH([bashcompletiondir], -+ AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]), -+ [], -+ [AS_IF([$($PKG_CONFIG --exists bash-completion)], [ -+ with_bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion) -+ ] , [ -+ with_bashcompletiondir=${datadir}/bash-completion/completions -+ ])]) -+AC_SUBST([BASH_COMPLETIONS_DIR], [$with_bashcompletiondir]) -+AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test -n "$with_bashcompletiondir"]) --- -2.19.2 - diff --git a/app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch b/app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch deleted file mode 100644 index cb608beca08f..000000000000 --- a/app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 3b06e1cbb25615495ef108d6ee194bb718e46408 Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Fri, 7 Dec 2018 11:21:25 +0100 -Subject: [PATCH 1/2] Fix install failure when not built with OCaml support - -Makefile rules in po/ require builder/index-parse.c to be generated to -allow translation utilities to work on it, however builder/ is -completely masked behind OCaml conditional build even if some tools do -not require it and proper guards are in place already. - -Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1614502 ---- - Makefile.am | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Makefile.am b/Makefile.am -index cc363341f..5d96093a1 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -164,7 +164,6 @@ SUBDIRS += common/mlvisit - SUBDIRS += common/mlxml - SUBDIRS += common/mltools - SUBDIRS += customize --SUBDIRS += builder builder/templates - SUBDIRS += get-kernel - SUBDIRS += resize - SUBDIRS += sparsify -@@ -178,6 +177,9 @@ SUBDIRS += dib - endif - endif - -+# Tools mixed with more OCAML based tools -+SUBDIRS += builder builder/templates -+ - # Perl tools. - if HAVE_TOOLS - SUBDIRS += tools --- -2.19.2 - diff --git a/app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch b/app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch deleted file mode 100644 index e68a4b0bded4..000000000000 --- a/app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch +++ /dev/null @@ -1,45 +0,0 @@ -From b8a31fcfe81a680ffed1fa0879ac20a3e0e8753a Mon Sep 17 00:00:00 2001 -From: Gilles Dartiguelongue <eva@gentoo.org> -Date: Fri, 7 Dec 2018 12:14:15 +0100 -Subject: [PATCH 2/2] Loosen build time requirement on bash-completion - -Distributions might avoid pulling bash-completion during build as it is -an optional feature and would only make sense at runtime anyway. Since -this setting is well-known across a given distribution, allow them to -provide the value and avoid the dependency. ---- - m4/guestfs-bash-completion.m4 | 21 ++++++++++----------- - 1 file changed, 10 insertions(+), 11 deletions(-) - -diff --git a/m4/guestfs-bash-completion.m4 b/m4/guestfs-bash-completion.m4 -index 1975b8c03..9a38ab2d6 100644 ---- a/m4/guestfs-bash-completion.m4 -+++ b/m4/guestfs-bash-completion.m4 -@@ -16,14 +16,13 @@ - # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - - dnl Bash completion. --PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [ -- bash_completion=yes -- AC_MSG_CHECKING([for bash-completions directory]) -- BASH_COMPLETIONS_DIR="`pkg-config --variable=completionsdir bash-completion`" -- AC_MSG_RESULT([$BASH_COMPLETIONS_DIR]) -- AC_SUBST([BASH_COMPLETIONS_DIR]) --],[ -- bash_completion=no -- AC_MSG_WARN([bash-completion not installed]) --]) --AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"]) -+AC_ARG_WITH([bashcompletiondir], -+ AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]), -+ [], -+ [AS_IF([$($PKG_CONFIG --exists bash-completion)], [ -+ with_bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion) -+ ] , [ -+ with_bashcompletiondir=${datadir}/bash-completion/completions -+ ])]) -+AC_SUBST([BASH_COMPLETIONS_DIR], [$with_bashcompletiondir]) -+AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test -n "$with_bashcompletiondir"]) --- -2.19.2 - diff --git a/app-emulation/libguestfs/libguestfs-1.36.13.ebuild b/app-emulation/libguestfs/libguestfs-1.36.13.ebuild deleted file mode 100644 index 21857f1bb62d..000000000000 --- a/app-emulation/libguestfs/libguestfs-1.36.13.ebuild +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_6 ) - -inherit eutils autotools linux-info perl-functions python-single-r1 versionator - -MY_PV_1="$(get_version_component_range 1-2)" -MY_PV_2="$(get_version_component_range 2)" -[[ $(( $(get_version_component_range 2) % 2 )) -eq 0 ]] && SD="stable" || SD="development" - -DESCRIPTION="Tools for accessing, inspect and modifying virtual machine (VM) disk images" -HOMEPAGE="http://libguestfs.org/" -SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz" - -LICENSE="GPL-2 LGPL-2" -SLOT="0/"${MY_PV_1}"" - -KEYWORDS="~amd64" -IUSE="bash-completion debug doc erlang +fuse gtk inspect-icons introspection lua ocaml +perl python ruby selinux static-libs systemtap test" -RESTRICT="!test? ( test )" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# Failures - doc -# Failures - bash-completion, see GBZ #486306 - -# FIXME: selinux support is automagic -COMMON_DEPEND=" - sys-libs/ncurses:0= - sys-devel/gettext - >=app-misc/hivex-1.3.1 - dev-libs/libpcre:3 - app-arch/cpio - dev-lang/perl:= - virtual/cdrtools - >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps] - sys-apps/fakeroot - sys-apps/file - app-emulation/libvirt - dev-libs/libxml2:2 - >=sys-apps/fakechroot-2.8 - >=app-admin/augeas-1.0.0 - sys-fs/squashfs-tools:* - dev-libs/libconfig - sys-libs/readline:0= - >=sys-libs/db-4.6:* - app-arch/xz-utils - app-arch/lzma - app-crypt/gnupg - app-arch/unzip[natspec] - perl? ( - virtual/perl-ExtUtils-MakeMaker - >=dev-perl/Sys-Virt-0.2.4 - virtual/perl-Getopt-Long - virtual/perl-Data-Dumper - dev-perl/libintl-perl - >=app-misc/hivex-1.3.1[perl?] - dev-perl/String-ShellQuote - ) - python? ( ${PYTHON_DEPS} ) - fuse? ( sys-fs/fuse:= ) - introspection? ( - >=dev-libs/glib-2.26:2 - >=dev-libs/gobject-introspection-1.30.0:= - dev-libs/gjs - ) - selinux? ( - sys-libs/libselinux - sys-libs/libsemanage - ) - systemtap? ( dev-util/systemtap ) - ocaml? ( - >=dev-lang/ocaml-4.02[ocamlopt] - dev-ml/findlib[ocamlopt] - dev-ml/ocaml-gettext - >=dev-ml/ounit-2 - ) - erlang? ( dev-lang/erlang ) - inspect-icons? ( - media-libs/netpbm - media-gfx/icoutils - ) - virtual/acl - sys-libs/libcap - lua? ( dev-lang/lua:* ) - >=app-shells/bash-completion-2.0 - >=dev-libs/yajl-2.0.4 - gtk? ( - sys-apps/dbus - x11-libs/gtk+:3 - ) - net-libs/libtirpc - sys-libs/libxcrypt - " -DEPEND="${COMMON_DEPEND} - dev-util/gperf - doc? ( app-text/po4a ) - ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake ) - " -RDEPEND="${COMMON_DEPEND} - app-emulation/libguestfs-appliance - " - -DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO ) - -pkg_setup() { - CONFIG_CHECK="~KVM ~VIRTIO" - [ -n "${CONFIG_CHECK}" ] && check_extra_config; - - use python && python-single-r1_pkg_setup -} - -src_prepare() { - eapply "${FILESDIR}"/${MY_PV_1}/0001-Update-libtool-initialization.patch - eapply "${FILESDIR}"/${MY_PV_1}/0002-Add-support-for-Gentoo-in-distribution-detection.patch - eapply_user - eautoreconf -} - -src_configure() { - # Disable feature test for kvm for more reason - # i.e: not loaded module in __build__ time, - # build server not supported kvm, etc. ... - # - # In fact, this feature is virtio support and requires - # configured kernel. - export vmchannel_test=no - - econf \ - --with-libvirt \ - --with-default-backend=libvirt \ - --disable-appliance \ - --disable-daemon \ - --with-extra="-gentoo" \ - --with-readline \ - --disable-php \ - $(use_enable python) \ - --without-java \ - $(use_enable perl) \ - $(use_enable fuse) \ - $(use_enable ocaml) \ - $(use_enable ruby) \ - --disable-haskell \ - --disable-golang \ - $(use_enable introspection gobject) \ - $(use_enable introspection) \ - $(use_enable erlang) \ - $(use_enable systemtap probes) \ - $(use_enable lua) \ - --with-gtk=$(usex gtk 3 no) \ - $(usex doc '' PO4A=no) -} - -src_install() { - strip-linguas -i po - emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}""" - - use perl && perl_delete_localpod -} - -pkg_postinst() { - if ! use gtk ; then - einfo "virt-p2v NOT installed" - fi - if ! use ocaml ; then - einfo "Ocaml based tools ( sysprep , ... ) NOT installed" - fi - if ! use perl ; then - einfo "Perl based tools NOT build" - fi -} diff --git a/app-emulation/libguestfs/libguestfs-1.36.15.ebuild b/app-emulation/libguestfs/libguestfs-1.36.15.ebuild deleted file mode 100644 index e2ae26f43a8f..000000000000 --- a/app-emulation/libguestfs/libguestfs-1.36.15.ebuild +++ /dev/null @@ -1,179 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_6 ) - -inherit autotools bash-completion-r1 eapi7-ver eutils linux-info perl-functions python-single-r1 xdg-utils - -MY_PV_1="$(ver_cut 1-2)" -MY_PV_2="$(ver_cut 2)" -[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development" - -DESCRIPTION="Tools for accessing, inspect and modifying virtual machine (VM) disk images" -HOMEPAGE="http://libguestfs.org/" -SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz" - -LICENSE="GPL-2 LGPL-2" -SLOT="0/"${MY_PV_1}"" - -KEYWORDS="~amd64" -IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua ocaml +perl python ruby selinux static-libs systemtap test" -RESTRICT="!test? ( test )" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# Failures - doc - -# FIXME: selinux support is automagic -COMMON_DEPEND=" - sys-libs/ncurses:0= - sys-devel/gettext - >=app-misc/hivex-1.3.1 - dev-libs/libpcre:3 - app-arch/cpio - dev-lang/perl:= - virtual/cdrtools - >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps] - sys-apps/fakeroot - sys-apps/file - libvirt? ( app-emulation/libvirt ) - dev-libs/libxml2:2 - >=sys-apps/fakechroot-2.8 - >=app-admin/augeas-1.0.0 - sys-fs/squashfs-tools:* - dev-libs/libconfig - sys-libs/readline:0= - >=sys-libs/db-4.6:* - app-arch/xz-utils - app-arch/lzma - app-crypt/gnupg - app-arch/unzip[natspec] - perl? ( - virtual/perl-ExtUtils-MakeMaker - >=dev-perl/Sys-Virt-0.2.4 - virtual/perl-Getopt-Long - virtual/perl-Data-Dumper - dev-perl/libintl-perl - >=app-misc/hivex-1.3.1[perl?] - dev-perl/String-ShellQuote - ) - python? ( ${PYTHON_DEPS} ) - fuse? ( sys-fs/fuse:= ) - introspection? ( - >=dev-libs/glib-2.26:2 - >=dev-libs/gobject-introspection-1.30.0:= - ) - selinux? ( - sys-libs/libselinux - sys-libs/libsemanage - ) - systemtap? ( dev-util/systemtap ) - ocaml? ( - >=dev-lang/ocaml-4.02[ocamlopt] - dev-ml/findlib[ocamlopt] - dev-ml/ocaml-gettext - >=dev-ml/ounit-2 - ) - erlang? ( dev-lang/erlang ) - inspect-icons? ( - media-libs/netpbm - media-gfx/icoutils - ) - virtual/acl - sys-libs/libcap - lua? ( dev-lang/lua:* ) - >=dev-libs/yajl-2.0.4 - gtk? ( - sys-apps/dbus - x11-libs/gtk+:3 - ) - net-libs/libtirpc - sys-libs/libxcrypt - " -DEPEND="${COMMON_DEPEND} - dev-util/gperf - doc? ( app-text/po4a ) - ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake ) - test? ( introspection? ( dev-libs/gjs ) ) - " -RDEPEND="${COMMON_DEPEND} - app-emulation/libguestfs-appliance - " - -DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO ) - -PATCHES=( - "${FILESDIR}"/${MY_PV_1}/0001-Update-libtool-initialization.patch - "${FILESDIR}"/${MY_PV_1}/0002-Add-support-for-Gentoo-in-distribution-detection.patch - "${FILESDIR}"/${MY_PV_1}/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch - "${FILESDIR}"/${MY_PV_1}/0004-Loosen-build-time-requirement-on-bash-completion.patch -) - -pkg_setup() { - CONFIG_CHECK="~KVM ~VIRTIO" - [ -n "${CONFIG_CHECK}" ] && check_extra_config; - - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - xdg_environment_reset - eautoreconf -} - -src_configure() { - # Disable feature test for kvm for more reason - # i.e: not loaded module in __build__ time, - # build server not supported kvm, etc. ... - # - # In fact, this feature is virtio support and requires - # configured kernel. - export vmchannel_test=no - - econf \ - --with-bashcompletiondir="$(get_bashcompdir)" \ - $(use_with libvirt) \ - --disable-appliance \ - --disable-daemon \ - --with-extra="-gentoo" \ - --with-readline \ - --disable-php \ - $(use_enable python) \ - --without-java \ - $(use_enable perl) \ - $(use_enable fuse) \ - $(use_enable ocaml) \ - $(use_enable ruby) \ - --disable-haskell \ - --disable-golang \ - $(use_enable introspection gobject) \ - $(use_enable introspection) \ - $(use_enable erlang) \ - $(use_enable static-libs static) \ - $(use_enable systemtap probes) \ - $(use_enable lua) \ - --with-gtk=$(usex gtk 3 no) \ - $(usex doc '' PO4A=no) -} - -src_install() { - strip-linguas -i po - emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}""" - find "${ED}" -name '*.la' -delete || die - use perl && perl_delete_localpod -} - -pkg_postinst() { - if ! use gtk ; then - einfo "virt-p2v NOT installed" - fi - if ! use ocaml ; then - einfo "Ocaml based tools ( sysprep , ... ) NOT installed" - fi - if ! use perl ; then - einfo "Perl based tools NOT build" - fi -} diff --git a/app-emulation/libguestfs/libguestfs-1.38.6.ebuild b/app-emulation/libguestfs/libguestfs-1.38.6.ebuild deleted file mode 100644 index 13777175b45e..000000000000 --- a/app-emulation/libguestfs/libguestfs-1.38.6.ebuild +++ /dev/null @@ -1,175 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_6 ) - -inherit autotools bash-completion-r1 eapi7-ver eutils linux-info perl-functions python-single-r1 xdg-utils - -MY_PV_1="$(ver_cut 1-2)" -MY_PV_2="$(ver_cut 2)" -[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development" - -DESCRIPTION="Tools for accessing, inspect and modifying virtual machine (VM) disk images" -HOMEPAGE="http://libguestfs.org/" -SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz" - -LICENSE="GPL-2 LGPL-2" -SLOT="0/"${MY_PV_1}"" - -KEYWORDS="~amd64" -IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua ocaml +perl python ruby selinux static-libs systemtap test" -RESTRICT="!test? ( test )" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -# Failures - doc - -# FIXME: selinux support is automagic -COMMON_DEPEND=" - sys-libs/ncurses:0= - sys-devel/gettext - >=app-misc/hivex-1.3.1 - dev-libs/libpcre:3 - app-arch/cpio - dev-lang/perl:= - virtual/cdrtools - >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps] - sys-apps/fakeroot - sys-apps/file - libvirt? ( app-emulation/libvirt ) - dev-libs/libxml2:2 - >=sys-apps/fakechroot-2.8 - >=app-admin/augeas-1.8.0 - sys-fs/squashfs-tools:* - dev-libs/libconfig - sys-libs/readline:0= - >=sys-libs/db-4.6:* - app-arch/xz-utils - app-arch/lzma - app-crypt/gnupg - app-arch/unzip[natspec] - perl? ( - virtual/perl-ExtUtils-MakeMaker - >=dev-perl/Sys-Virt-0.2.4 - virtual/perl-Getopt-Long - virtual/perl-Data-Dumper - dev-perl/libintl-perl - >=app-misc/hivex-1.3.1[perl?] - dev-perl/String-ShellQuote - ) - python? ( ${PYTHON_DEPS} ) - fuse? ( sys-fs/fuse:= ) - introspection? ( - >=dev-libs/glib-2.26:2 - >=dev-libs/gobject-introspection-1.30.0:= - ) - selinux? ( - sys-libs/libselinux - sys-libs/libsemanage - ) - systemtap? ( dev-util/systemtap ) - ocaml? ( >=dev-lang/ocaml-4.03[ocamlopt] ) - erlang? ( dev-lang/erlang ) - inspect-icons? ( - media-libs/netpbm - media-gfx/icoutils - ) - virtual/acl - sys-libs/libcap - lua? ( dev-lang/lua:* ) - >=dev-libs/yajl-2.0.4 - gtk? ( - sys-apps/dbus - x11-libs/gtk+:3 - ) - net-libs/libtirpc - sys-libs/libxcrypt - " -DEPEND="${COMMON_DEPEND} - dev-util/gperf - >=dev-lang/ocaml-4.03[ocamlopt] - dev-ml/findlib[ocamlopt] - dev-ml/ocaml-gettext - >=dev-ml/ounit-2 - doc? ( app-text/po4a ) - ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake ) - test? ( introspection? ( dev-libs/gjs ) ) - " -RDEPEND="${COMMON_DEPEND} - app-emulation/libguestfs-appliance - " - -DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO ) - -PATCHES=( - "${FILESDIR}"/${MY_PV_1}/ -) - -pkg_setup() { - CONFIG_CHECK="~KVM ~VIRTIO" - [ -n "${CONFIG_CHECK}" ] && check_extra_config; - - use python && python-single-r1_pkg_setup -} - -src_prepare() { - default - xdg_environment_reset - eautoreconf -} - -src_configure() { - # Disable feature test for kvm for more reason - # i.e: not loaded module in __build__ time, - # build server not supported kvm, etc. ... - # - # In fact, this feature is virtio support and requires - # configured kernel. - export vmchannel_test=no - - econf \ - --with-bashcompletiondir="$(get_bashcompdir)" \ - $(use_with libvirt) \ - --disable-appliance \ - --disable-daemon \ - --with-extra="-gentoo" \ - --with-readline \ - --disable-php \ - $(use_enable python) \ - --without-java \ - $(use_enable perl) \ - $(use_enable fuse) \ - $(use_enable ocaml) \ - $(use_enable ruby) \ - --disable-haskell \ - --disable-golang \ - $(use_enable introspection gobject) \ - $(use_enable introspection) \ - $(use_enable erlang) \ - $(use_enable static-libs static) \ - $(use_enable systemtap probes) \ - $(use_enable lua) \ - --with-gtk=$(usex gtk 3 no) \ - $(usex doc '' PO4A=no) -} - -src_install() { - strip-linguas -i po - emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}""" - find "${ED}" -name '*.la' -delete || die - use perl && perl_delete_localpod -} - -pkg_postinst() { - if ! use gtk ; then - einfo "virt-p2v NOT installed" - fi - if ! use ocaml ; then - einfo "Ocaml based tools and bindings (sysprep, ...) NOT installed" - fi - if ! use perl ; then - einfo "Perl based tools NOT build" - fi -} diff --git a/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild new file mode 100644 index 000000000000..5ebf7d85f162 --- /dev/null +++ b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild @@ -0,0 +1,255 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Bump with app-emulation/guestfs-tools and app-emulation/libguestfs-appliance (if any new release there) + +LUA_COMPAT=( lua5-1 ) +PYTHON_COMPAT=( python3_{10..11} ) + +inherit autotools flag-o-matic linux-info lua-single perl-functions python-single-r1 strip-linguas toolchain-funcs + +MY_PV_1="$(ver_cut 1-2)" +MY_PV_2="$(ver_cut 2)" +[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development" + +DESCRIPTION="Tools for accessing, inspecting, and modifying virtual machine (VM) disk images" +HOMEPAGE="https://libguestfs.org/" +SRC_URI="https://download.libguestfs.org/${MY_PV_1}-${SD}/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0/${MY_PV_1}" +if [[ ${SD} == "stable" ]] ; then + KEYWORDS="amd64 ~ppc64 ~x86" +fi +IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua +ocaml +perl python ruby selinux static-libs systemtap test" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +# Failures - doc +COMMON_DEPEND=" + >=app-admin/augeas-1.8.0 + app-alternatives/cpio + app-arch/lzma + app-arch/rpm + app-arch/unzip[natspec] + app-arch/xz-utils + app-forensics/yara + app-cdr/cdrtools + app-crypt/gnupg + >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps] + >=app-misc/hivex-1.3.1 + dev-lang/perl:= + dev-libs/libconfig:= + dev-libs/libpcre2 + dev-libs/libxml2:2= + dev-libs/jansson:= + >=dev-libs/yajl-2.0.4 + net-libs/libtirpc:= + sys-libs/ncurses:0= + >=sys-apps/fakechroot-2.8 + sys-apps/fakeroot + sys-apps/file + sys-devel/gettext + sys-fs/squashfs-tools:* + sys-libs/libcap + sys-libs/readline:= + virtual/acl + virtual/libcrypt:= + erlang? ( dev-lang/erlang ) + perl? ( + virtual/perl-ExtUtils-MakeMaker + >=dev-perl/Sys-Virt-0.2.4 + virtual/perl-Getopt-Long + virtual/perl-Data-Dumper + dev-perl/libintl-perl + >=app-misc/hivex-1.3.1[perl?] + dev-perl/String-ShellQuote + ) + python? ( ${PYTHON_DEPS} ) + fuse? ( sys-fs/fuse:0 ) + gtk? ( + sys-apps/dbus + x11-libs/gtk+:3 + ) + introspection? ( + >=dev-libs/glib-2.26:2 + >=dev-libs/gobject-introspection-1.30.0:= + ) + inspect-icons? ( + media-libs/netpbm + media-gfx/icoutils + ) + libvirt? ( app-emulation/libvirt ) + lua? ( ${LUA_DEPS} ) + ocaml? ( >=dev-lang/ocaml-4.03:=[ocamlopt] ) + selinux? ( + sys-libs/libselinux:= + sys-libs/libsemanage + ) + systemtap? ( dev-debug/systemtap ) +" +# Some OCaml is always required +# bug #729674 +DEPEND=" + ${COMMON_DEPEND} + >=dev-lang/ocaml-4.03:=[ocamlopt] + dev-util/gperf + dev-ml/findlib[ocamlopt] + doc? ( app-text/po4a ) + ocaml? ( + dev-ml/ounit2[ocamlopt] + || ( + <dev-ml/ocaml-gettext-0.4.2 + dev-ml/ocaml-gettext-stub[ocamlopt] + ) + ) + ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake ) + test? ( introspection? ( dev-libs/gjs ) ) +" +RDEPEND=" + ${COMMON_DEPEND} + app-emulation/libguestfs-appliance + acct-group/kvm +" +# Upstream build scripts compile and install Lua bindings for the ABI version +# obtained by running 'lua' on the build host +BDEPEND=" + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + lua? ( ${LUA_DEPS} ) +" + +DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO ) + +PATCHES=( + #"${FILESDIR}"/${MY_PV_1}/ + #"${FILESDIR}"/1.44/ +) + +pkg_setup() { + CONFIG_CHECK="~KVM ~VIRTIO" + [[ -n "${CONFIG_CHECK}" ]] && check_extra_config + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + default + + eautoreconf +} + +src_configure() { + # bug #794877 + tc-export AR + + # Needs both bison+flex (bug #915339, see configure too) + unset LEX YACC + + # Skip Bash test + # (See 13-test-suite.log in linked bug) + # bug #794874 + export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=1 + + # Need to investigate (fails w/ 1.48.4) + export SKIP_TEST_QEMU_DRIVE_SH=1 + export SKIP_TEST_BIG_HEAP=1 + export SKIP_TEST_NOEXEC_STACK_PL=1 + + # Need to be in KVM group + export SKIP_TEST_MOUNTABLE_INSPECT_SH=1 + + # Missing test data (Fedora image) + export SKIP_TEST_JOURNAL_PL=1 + + # Disable feature test for kvm for more reason + # i.e: not loaded module in __build__ time, + # build server not supported kvm, etc. ... + # + # In fact, this feature is virtio support and requires + # configured kernel. + export vmchannel_test=no + + # Give a nudge to help find libxcrypt[-system] + # We have a := dep on virtual/libcrypt to ensure this doesn't become stale. + # bug #703118, bug #789354 + if ! has_version 'sys-libs/libxcrypt[system]' ; then + append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/xcrypt" + append-ldflags "-Wl,-R${ESYSROOT}/usr/$(get_libdir)/xcrypt" + fi + + # Avoid automagic SELinux dependency + export ac_cv_header_selinux_selinux_h=$(usex selinux) + + # Test suite at least has a bunch of bashisms + SHELL="${BROOT}"/bin/bash CONFIG_SHELL="${BROOT}"/bin/bash econf \ + --disable-appliance \ + --disable-daemon \ + --disable-haskell \ + --disable-golang \ + --disable-rust \ + --disable-php \ + --without-java \ + --with-extra="-gentoo" \ + --with-readline \ + $(usex doc '' PO4A=no) \ + $(use_enable ocaml) \ + $(use_enable erlang) \ + $(use_enable fuse) \ + $(use_enable introspection gobject) \ + $(use_enable introspection) \ + $(use_with libvirt) \ + $(use_enable lua) \ + $(use_enable python) \ + $(use_enable perl) \ + $(use_enable ruby) \ + $(use_enable static-libs static) \ + $(use_enable systemtap probes) +} + +src_test() { + local -x LIBGUESTFS_DEBUG=1 + local -x LIBGUESTFS_TRACE=1 + local -x LIBVIRT_DEBUG=1 + + # Try this? + #emake quickcheck + + default +} + +src_install() { + strip-linguas -i po + + emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}""" + + find "${ED}" -name '*.la' -delete || die + + if use perl ; then + perl_delete_localpod + + # Workaround Build.PL for now + doman "${ED}"/usr/man/man3/Sys::Guestfs.3pm + rm -rf "${ED}"/usr/man || die + fi + + use python && python_optimize +} + +pkg_postinst() { + einfo "Please ensure you are in the 'kvm' group for decent performance!" + + if ! use gtk ; then + einfo "virt-p2v NOT installed" + fi + + einfo "Note that common tools like virt-resize are now part of app-emulation/guestfs-tools" +} diff --git a/app-emulation/libguestfs/metadata.xml b/app-emulation/libguestfs/metadata.xml index 5a7068237965..67f481aca2fb 100644 --- a/app-emulation/libguestfs/metadata.xml +++ b/app-emulation/libguestfs/metadata.xml @@ -1,20 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> - <email>maksbotan@gentoo.org</email> - <name>Maxim Koltsov</name> -</maintainer> -<maintainer type="person"> - <email>rich@annexia.org</email> - <name>Richard Jones</name> - <description>Upstream - please CC on bugs that concerns upstream</description> -</maintainer> -<use> - <flag name="erlang">Build Erlang bindings</flag> - <flag name="fuse">Enable image mount support via fuse</flag> - <flag name="inspect-icons">Use <pkg>media-gfx/icoutils</pkg> for acces icon file in image and inspect it</flag> - <flag name="libvirt">Use <pkg>app-emulation/libvirt</pkg> to manipulate VMs</flag> - <flag name="systemtap">Use <pkg>dev-util/systemtap</pkg> to inspect VM via "probes" way</flag> -</use> + <!-- maintainer-needed --> + <use> + <flag name="erlang">Build Erlang bindings</flag> + <flag name="fuse">Enable image mount support via <pkg>sys-fs/fuse</pkg></flag> + <flag name="inspect-icons">Use <pkg>media-gfx/icoutils</pkg> for accessing/inspecting icon file within images</flag> + <flag name="libvirt">Use <pkg>app-emulation/libvirt</pkg> to manipulate VMs</flag> + <flag name="systemtap">Use <pkg>dev-debug/systemtap</pkg> to inspect VM via "probes"</flag> + </use> + <upstream> + <remote-id type="github">libguestfs/libguestfs</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/libpod/Manifest b/app-emulation/libpod/Manifest deleted file mode 100644 index 6afb95c4974d..000000000000 --- a/app-emulation/libpod/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST podman-2.1.0.tar.gz 9444707 BLAKE2B 62dacd316a8d6ae8aab0523338d818c69cf1228120e828a89301c9fdbb98082b85328c03c61f9f2a36c7a50105ce5fd025ad2b0e9ba2705c86b0d7e263fc92a6 SHA512 eb9b0cb184138af022e6d8e145fc6c4188c75c0695e0c6e62d54112a6b143424dd0caf9686f83637d08ff1fdbc24afca564c89f8cb4ab68b8f8d07345856398e diff --git a/app-emulation/libpod/files/podman.initd b/app-emulation/libpod/files/podman.initd deleted file mode 100644 index b590be16a1ba..000000000000 --- a/app-emulation/libpod/files/podman.initd +++ /dev/null @@ -1,17 +0,0 @@ -#!/sbin/openrc-run -# Copyright 2015-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -description="Podman Remote API Service" -LOG_PATH="/var/log/${RC_SVCNAME}" -RUN_PATH="/run/${RC_SVCNAME}" -pidfile="${RUN_PATH}/${RC_SVCNAME}.pid" -command="/usr/bin/podman" -command_args="--log-level debug varlink -t 0 unix:/run/podman/io.podman" -command_background="true" -start_stop_daemon_args="--stdout ${LOG_PATH}/${RC_SVCNAME}.log --stderr ${LOG_PATH}/${RC_SVCNAME}.log" - -start() { - checkpath -d "${RUN_PATH}" "${LOG_PATH}" - default_start -} diff --git a/app-emulation/libpod/files/podman.logrotated b/app-emulation/libpod/files/podman.logrotated deleted file mode 100644 index b9d723451b0a..000000000000 --- a/app-emulation/libpod/files/podman.logrotated +++ /dev/null @@ -1,7 +0,0 @@ -/var/log/podman/podman.log { - missingok - size 5M - rotate 3 - compress - copytruncate -} diff --git a/app-emulation/libpod/libpod-2.1.0.ebuild b/app-emulation/libpod/libpod-2.1.0.ebuild deleted file mode 100644 index 8335388f9f6f..000000000000 --- a/app-emulation/libpod/libpod-2.1.0.ebuild +++ /dev/null @@ -1,154 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -EGIT_COMMIT="d8868746fd3f45b9bfd79e37bf2aa0c7103245fd" - -inherit bash-completion-r1 flag-o-matic go-module - -DESCRIPTION="Library and podman tool for running OCI-based containers in Pods" -HOMEPAGE="https://github.com/containers/podman/" -MY_PN=podman -MY_P=${MY_PN}-${PV} -SRC_URI="https://github.com/containers/podman/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz" -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0" -SLOT="0" - -KEYWORDS="~amd64 ~arm64" -IUSE="apparmor btrfs +fuse +rootless selinux" -RESTRICT="test" - -COMMON_DEPEND=" - app-crypt/gpgme:= - >=app-emulation/conmon-2.0.0 - || ( >=app-emulation/runc-1.0.0_rc6 app-emulation/crun ) - dev-libs/libassuan:= - dev-libs/libgpg-error:= - >=net-misc/cni-plugins-0.8.6 - sys-fs/lvm2 - sys-libs/libseccomp:= - - apparmor? ( sys-libs/libapparmor ) - btrfs? ( sys-fs/btrfs-progs ) - rootless? ( app-emulation/slirp4netns ) - selinux? ( sys-libs/libselinux:= ) -" -DEPEND=" - ${COMMON_DEPEND} - dev-go/go-md2man" -RDEPEND="${COMMON_DEPEND} - fuse? ( sys-fs/fuse-overlayfs )" - -S=${WORKDIR}/${MY_P} - -src_prepare() { - default - - # Disable installation of python modules here, since those are - # installed by separate ebuilds. - local makefile_sed_args=( - -e '/^GIT_.*/d' - -e 's/$(GO) build/$(GO) build -v -work -x/' - -e 's/^\(install:.*\) install\.python$/\1/' - -e 's|^pkg/varlink/iopodman.go: .gopathok pkg/varlink/io.podman.varlink$|pkg/varlink/iopodman.go: pkg/varlink/io.podman.varlink|' - ) - - has_version -b '>=dev-lang/go-1.13.9' || makefile_sed_args+=(-e 's:GO111MODULE=off:GO111MODULE=on:') - - sed "${makefile_sed_args[@]}" -i Makefile || die - - sed -e 's|OUTPUT="${CIRRUS_TAG:.*|OUTPUT='v${PV}'|' \ - -i hack/get_release_info.sh || die -} - -src_compile() { - # Filter unsupported linker flags - filter-flags '-Wl,*' - - [[ -f hack/apparmor_tag.sh ]] || die - if use apparmor; then - echo -e "#!/bin/sh\necho apparmor" > hack/apparmor_tag.sh || die - else - echo -e "#!/bin/sh\ntrue" > hack/apparmor_tag.sh || die - fi - - [[ -f hack/btrfs_installed_tag.sh ]] || die - if use btrfs; then - echo -e "#!/bin/sh\ntrue" > hack/btrfs_installed_tag.sh || die - else - echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \ - hack/btrfs_installed_tag.sh || die - fi - - [[ -f hack/selinux_tag.sh ]] || die - if use selinux; then - echo -e "#!/bin/sh\necho selinux" > hack/selinux_tag.sh || die - else - echo -e "#!/bin/sh\ntrue" > hack/selinux_tag.sh || die - fi - - # Avoid this error when generating pkg/varlink/iopodman.go: - # cannot find package "github.com/varlink/go/varlink/idl" - mkdir -p _output || die - ln -snf ../vendor _output/src || die - GO111MODULE=off GOPATH=${PWD}/_output go generate ./pkg/varlink/... || die - rm _output/src || die - - export -n GOCACHE GOPATH XDG_CACHE_HOME - GOBIN="${S}/bin" \ - emake all \ - GIT_BRANCH=master \ - GIT_BRANCH_CLEAN=master \ - COMMIT_NO="${EGIT_COMMIT}" \ - GIT_COMMIT="${EGIT_COMMIT}" -} - -src_install() { - emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install - - insinto /etc/containers - newins test/registries.conf registries.conf.example - newins test/policy.json policy.json.example - - insinto /usr/share/containers - doins vendor/github.com/containers/common/pkg/seccomp/seccomp.json - - newinitd "${FILESDIR}"/podman.initd podman - - insinto /etc/logrotate.d - newins "${FILESDIR}/podman.logrotated" podman - - dobashcomp completions/bash/* - - keepdir /var/lib/containers -} - -pkg_preinst() { - LIBPOD_ROOTLESS_UPGRADE=false - if use rootless; then - has_version 'app-emulation/libpod[rootless]' || LIBPOD_ROOTLESS_UPGRADE=true - fi -} - -pkg_postinst() { - local want_newline=false - if [[ ! ( -e ${EROOT%/*}/etc/containers/policy.json && -e ${EROOT%/*}/etc/containers/registries.conf ) ]]; then - elog "You need to create the following config files:" - elog "/etc/containers/registries.conf" - elog "/etc/containers/policy.json" - elog "To copy over default examples, use:" - elog "cp /etc/containers/registries.conf{.example,}" - elog "cp /etc/containers/policy.json{.example,}" - want_newline=true - fi - if [[ ${LIBPOD_ROOTLESS_UPGRADE} == true ]] ; then - ${want_newline} && elog "" - elog "For rootless operation, you need to configure subuid/subgid" - elog "for user running podman. In case subuid/subgid has only been" - elog "configured for root, run:" - elog "usermod --add-subuids 1065536-1131071 <user>" - elog "usermod --add-subgids 1065536-1131071 <user>" - want_newline=true - fi -} diff --git a/app-emulation/libpod/metadata.xml b/app-emulation/libpod/metadata.xml deleted file mode 100644 index 8b673ef7a51a..000000000000 --- a/app-emulation/libpod/metadata.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - <name>Zac Medico</name> - </maintainer> - <longdescription lang="en"> - libpod provides a library for applications looking to use the - Container Pod concept popularized by Kubernetes. libpod also - contains a tool called podman for managing Pods, Containers, - and Container Images. - </longdescription> - <use> - <flag name="apparmor"> - Enable AppArmor support. - </flag> - <flag name="btrfs"> - Enables dependencies for the "btrfs" graph driver, including - necessary kernel flags. - </flag> - <flag name="fuse"> - Enables fuse dependencies (fuse-overlayfs is especially useful - for rootless mode). - </flag> - <flag name="rootless"> - Enables dependencies for running in rootless mode. - </flag> - </use> - <upstream> - <remote-id type="github">containers/libpod</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/libspectrum/Manifest b/app-emulation/libspectrum/Manifest index 975b3240ae85..9ac9f648158c 100644 --- a/app-emulation/libspectrum/Manifest +++ b/app-emulation/libspectrum/Manifest @@ -1 +1 @@ -DIST libspectrum-1.4.4.tar.gz 568684 BLAKE2B b6ab4fc4173e7de9a7c3b14fda03420a56f02c5c590770158443bc37bee99a55dd3bdf6864f8ca33adb5ed59f4abd5c5b97736456ba2e6e6aaa2b49e07097cc4 SHA512 83bb9242010d49898531bb62e0d4d55439b0b6a548b57a7932f074429aca70cf252dfb195e9751384510b08c98bd6bc8eefd8cb3f82b0c8d07fa245ba66e9fe2 +DIST libspectrum-1.5.0.tar.gz 602354 BLAKE2B fc62437ececfe2c86b475efa512bf7aa7c5af182e16a00f75f77f78656fca01d46a71ac90b38008ff46e5fd0710b1c671b283d65544b5556d98e8c5b66525c35 SHA512 55f4cf623bc6c469a0fd80751ada694259d834c19d98400ba244aabf2ac21fed7cdd6de069d9ed7326e099bd3bd62c42cfb8a669b64ae002f90a52563fa2dcd1 diff --git a/app-emulation/libspectrum/libspectrum-1.4.4.ebuild b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild index f830494fd23b..02418ce56fb4 100644 --- a/app-emulation/libspectrum/libspectrum-1.4.4.ebuild +++ b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 inherit autotools @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~ppc ~x86" +KEYWORDS="~amd64 ~ppc ~riscv ~x86" IUSE="audiofile bzip2 gcrypt zlib" RDEPEND="dev-libs/glib:2 @@ -19,8 +19,8 @@ RDEPEND="dev-libs/glib:2 bzip2? ( >=app-arch/bzip2-1.0 ) gcrypt? ( dev-libs/libgcrypt:0 ) zlib? ( sys-libs/zlib )" -DEPEND="${RDEPEND} - dev-lang/perl +DEPEND="${RDEPEND}" +BDEPEND="dev-lang/perl virtual/pkgconfig" PATCHES=( @@ -34,7 +34,6 @@ src_prepare() { src_configure() { local myconf=( - --disable-static $(use_with audiofile libaudiofile) $(use_with bzip2) $(use_with gcrypt libgcrypt) @@ -52,4 +51,5 @@ src_test() { src_install() { default dodoc doc/*.txt *.txt + find "${ED}" -type f -name "*.la" -delete || die } diff --git a/app-emulation/libspectrum/metadata.xml b/app-emulation/libspectrum/metadata.xml index 68b09e35fe36..b5a8a89f49af 100644 --- a/app-emulation/libspectrum/metadata.xml +++ b/app-emulation/libspectrum/metadata.xml @@ -1,13 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>0xe2.0x9a.0x9b@gmail.com</email> - <name>Jan Ziak</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Gentoo Proxy Maintainers Project</name> + + <email>marecki@gentoo.org</email> + <name>Marek Szuba</name> </maintainer> <longdescription> libspectrum is a library designed to make the input and output of some ZX diff --git a/app-emulation/libvirt-glib/Manifest b/app-emulation/libvirt-glib/Manifest index 7978802829e3..7d53986ff7c6 100644 --- a/app-emulation/libvirt-glib/Manifest +++ b/app-emulation/libvirt-glib/Manifest @@ -1,3 +1,2 @@ -DIST libvirt-glib-1.0.0.tar.gz 860450 BLAKE2B 417a3bd0df41787fbec456f301af744a04649db02192ef9c80bf42214a112a050a9f054c81549a114e7a1236c86e0066e8002f0c7f09317abb672fe5f6a76789 SHA512 72f53a90d3e40aa93d4afe5b29f631afe859532fbdb4e27086da3bd4cdaf0fb25fc808a82a1994b7c2648a1e864876ce95de28acb3b4876dac47b0f4d1c97ba5 -DIST libvirt-glib-2.0.0.tar.gz 868946 BLAKE2B 1ff4695b25766d6caa603826dcc63e64aa3ce022e6623eb31017fb67a490baeb546a9bc67e16fc16c7b86040db971748b1ef4303a21b5dec098cf732f77c92ec SHA512 6ead4c37c314eb5670c5aa282ce039a0182a71a20b349a5d9c78367381eb674fad0f2ca0f2e20e1e89ff7df2ac9f1640f20fdfa63d599d8a2538fb4c0fba4c3f -DIST libvirt-glib-3.0.0.tar.gz 899180 BLAKE2B ef10b3d9bad48e49dd1898733aacb2f51f1826330eda9c63a7f8df5f11c96812f8cc7fe6a867961efa85a433f45c934d75cf605eb523ec723459da4646335b1a SHA512 b9e7d782c25b5c3a9b2829f1be8162352438ab3505510a1ca7dd64d741eaab158dc9206fdd4b0e3e27b0c049e4bcfc47db0c9a7fa1a84888864e23d3c35c079e +DIST libvirt-glib-4.0.0.tar.xz 161836 BLAKE2B e196d1f02f6f202b1883500241bbfda963b34ee12bd945b3fa897f84f55a049f98e0429132ccfad7168e5ba2b41245e9e7e3817a7f057e0dc40b674ca6c9b661 SHA512 e1b99e80aa671fa5a4d7f7f7a4ea70ce7c5fdaf97574407f79aa11a75dd177e1e3f92027728a83ded62e305852bbda76eb90326aaa1f5f19b77272b008351810 +DIST libvirt-glib-5.0.0.tar.xz 169416 BLAKE2B e80ac0cd8d39432d554e566f4e1e045ada14e66917735c1c8a6306a65272216d095f21170e1b5294e09f41aaf2a3259ad395b134087a1bc13b176afd675dcc26 SHA512 bb09474c0d6d4bc00844e7a1ede882f0834d0810804b70b8f8607f2e764f72cc9da14883794e58dd53640433ffaecc13dd3c1c147b82e86fa2fdca6e5903933c diff --git a/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch new file mode 100644 index 000000000000..654436a65d99 --- /dev/null +++ b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch @@ -0,0 +1,64 @@ +From 56acbe8a0765a02418f80fb3599b3cf7160ef446 Mon Sep 17 00:00:00 2001 +Message-ID: <56acbe8a0765a02418f80fb3599b3cf7160ef446.1701156704.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Sat, 25 Nov 2023 07:13:33 +0100 +Subject: [glib PATCH 1/2] Make xmlError structs constant + +In libxml2 commits v2.12.0~14 and v2.12.0~77 the API changed so +that: + +1) xmlGetLastError() returns pointer to a constant xmlError + struct, and + +2) xmlSetStructuredErrorFunc() changed the signature of callback + (gvir_xml_structured_error_nop()), it too is passed pointer to + a constant xmlError struct. + +But of course, older libxml2 expects different callback +signature. Therefore, we need to typecast it anyway. + +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + libvirt-gconfig/libvirt-gconfig-helpers.c | 2 +- + libvirt-gconfig/libvirt-gconfig-object.c | 5 +++-- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/libvirt-gconfig/libvirt-gconfig-helpers.c b/libvirt-gconfig/libvirt-gconfig-helpers.c +index e8f9664..37075e3 100644 +--- a/libvirt-gconfig/libvirt-gconfig-helpers.c ++++ b/libvirt-gconfig/libvirt-gconfig-helpers.c +@@ -41,7 +41,7 @@ static GError *gvir_config_error_new_literal(GQuark domain, + gint code, + const gchar *message) + { +- xmlErrorPtr xerr = xmlGetLastError(); ++ const xmlError *xerr = xmlGetLastError(); + + if (!xerr) + return NULL; +diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c +index eb8763e..1fcc667 100644 +--- a/libvirt-gconfig/libvirt-gconfig-object.c ++++ b/libvirt-gconfig/libvirt-gconfig-object.c +@@ -59,7 +59,7 @@ static void gvir_xml_generic_error_nop(void *userData G_GNUC_UNUSED, + } + + static void gvir_xml_structured_error_nop(void *userData G_GNUC_UNUSED, +- xmlErrorPtr error G_GNUC_UNUSED) ++ const xmlError *error G_GNUC_UNUSED) + { + } + +@@ -197,7 +197,8 @@ void gvir_config_object_validate(GVirConfigObject *config, + priv = config->priv; + + xmlSetGenericErrorFunc(NULL, gvir_xml_generic_error_nop); +- xmlSetStructuredErrorFunc(NULL, gvir_xml_structured_error_nop); ++ /* Drop this typecast when >=libxml2-2.12.0 is required */ ++ xmlSetStructuredErrorFunc(NULL, (xmlStructuredErrorFunc) gvir_xml_structured_error_nop); + + if (!priv->node) { + gvir_config_set_error_literal(err, +-- +2.41.0 + diff --git a/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch new file mode 100644 index 000000000000..7a13eb211e20 --- /dev/null +++ b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch @@ -0,0 +1,50 @@ +From bcc82de1d74057f6d124c2eaff0ac97cbbf52657 Mon Sep 17 00:00:00 2001 +Message-ID: <bcc82de1d74057f6d124c2eaff0ac97cbbf52657.1701156704.git.mprivozn@redhat.com> +In-Reply-To: <56acbe8a0765a02418f80fb3599b3cf7160ef446.1701156704.git.mprivozn@redhat.com> +References: <56acbe8a0765a02418f80fb3599b3cf7160ef446.1701156704.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Sat, 25 Nov 2023 07:15:46 +0100 +Subject: [glib PATCH 2/2] libvirt-gconfig: Add more libxml/ includes + +In its 2.12.0 release, libxml reworked their header files (some +might even call it cleaning up, I call it API incompatible +change) and now we don't get all declarations we need by just +including one file. Add missing includes. + +Resolves: https://gitlab.com/libvirt/libvirt-glib/-/issues/6 +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + libvirt-gconfig/libvirt-gconfig-helpers.c | 1 + + libvirt-gconfig/libvirt-gconfig-object.c | 3 +++ + 2 files changed, 4 insertions(+) + +diff --git a/libvirt-gconfig/libvirt-gconfig-helpers.c b/libvirt-gconfig/libvirt-gconfig-helpers.c +index 37075e3..4dbb177 100644 +--- a/libvirt-gconfig/libvirt-gconfig-helpers.c ++++ b/libvirt-gconfig/libvirt-gconfig-helpers.c +@@ -25,6 +25,7 @@ + + #include <string.h> + ++#include <libxml/parser.h> + #include <libxml/xmlerror.h> + #include <glib/gi18n-lib.h> + +diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c +index 1fcc667..4dd189d 100644 +--- a/libvirt-gconfig/libvirt-gconfig-object.c ++++ b/libvirt-gconfig/libvirt-gconfig-object.c +@@ -25,7 +25,10 @@ + + #include <string.h> + ++#include <libxml/tree.h> ++#include <libxml/entities.h> + #include <libxml/relaxng.h> ++ + #include <glib/gi18n-lib.h> + + #include "libvirt-gconfig/libvirt-gconfig.h" +-- +2.41.0 + diff --git a/app-emulation/libvirt-glib/libvirt-glib-1.0.0-r1.ebuild b/app-emulation/libvirt-glib/libvirt-glib-1.0.0-r1.ebuild deleted file mode 100644 index c18bd71005a4..000000000000 --- a/app-emulation/libvirt-glib/libvirt-glib-1.0.0-r1.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GNOME2_LA_PUNT="yes" - -inherit gnome2 vala - -DESCRIPTION="GLib and GObject mappings for libvirt" -HOMEPAGE="http://libvirt.org/git/?p=libvirt-glib.git" -SRC_URI="ftp://libvirt.org/libvirt/glib/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="+introspection nls +vala" -REQUIRED_USE="vala? ( introspection )" - -# https://bugzilla.redhat.com/show_bug.cgi?id=1093633 -RESTRICT="test" - -RDEPEND=" - dev-libs/libxml2:2 - >=app-emulation/libvirt-1.2.6:= - >=dev-libs/glib-2.38.0:2 - introspection? ( >=dev-libs/gobject-introspection-0.10.8:= )" -DEPEND="${RDEPEND} - dev-util/glib-utils - dev-util/gtk-doc-am - >=dev-util/intltool-0.35.0 - virtual/pkgconfig - vala? ( $(vala_depend) )" - -src_prepare() { - gnome2_src_prepare - use vala && vala_src_prepare -} - -src_configure() { - gnome2_src_configure \ - --disable-test-coverage \ - --disable-static \ - $(use_enable introspection) \ - $(use_enable nls) \ - $(use_enable vala) -} diff --git a/app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild deleted file mode 100644 index 219f71992ece..000000000000 --- a/app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild +++ /dev/null @@ -1,46 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GNOME2_LA_PUNT="yes" - -inherit gnome2 vala - -DESCRIPTION="GLib and GObject mappings for libvirt" -HOMEPAGE="http://libvirt.org/git/?p=libvirt-glib.git" -SRC_URI="ftp://libvirt.org/libvirt/glib/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 ~ppc64 x86" -IUSE="+introspection nls +vala" -REQUIRED_USE="vala? ( introspection )" - -# https://bugzilla.redhat.com/show_bug.cgi?id=1093633 -RESTRICT="test" - -RDEPEND=" - dev-libs/libxml2:2 - >=app-emulation/libvirt-1.2.6:= - >=dev-libs/glib-2.38.0:2 - introspection? ( >=dev-libs/gobject-introspection-0.10.8:= )" -DEPEND="${RDEPEND} - dev-util/glib-utils - dev-util/gtk-doc-am - >=dev-util/intltool-0.35.0 - virtual/pkgconfig - vala? ( $(vala_depend) )" - -src_prepare() { - gnome2_src_prepare - use vala && vala_src_prepare -} - -src_configure() { - gnome2_src_configure \ - --disable-test-coverage \ - --disable-static \ - $(use_enable introspection) \ - $(use_enable nls) \ - $(use_enable vala) -} diff --git a/app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild deleted file mode 100644 index 4ac16f7d9556..000000000000 --- a/app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -GNOME2_LA_PUNT="yes" - -inherit gnome2 vala - -DESCRIPTION="GLib and GObject mappings for libvirt" -HOMEPAGE="http://libvirt.org/git/?p=libvirt-glib.git" -SRC_URI="ftp://libvirt.org/libvirt/glib/${P}.tar.gz" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 ~arm64 ~ppc64 x86" -IUSE="+introspection nls +vala" -REQUIRED_USE="vala? ( introspection )" - -RDEPEND=" - dev-libs/libxml2:2 - >=app-emulation/libvirt-1.2.6:= - >=dev-libs/glib-2.38.0:2 - introspection? ( >=dev-libs/gobject-introspection-1.36.0:= )" -DEPEND="${RDEPEND} - dev-util/glib-utils - dev-util/gtk-doc-am - >=dev-util/intltool-0.35.0 - virtual/pkgconfig - vala? ( $(vala_depend) )" - -src_prepare() { - gnome2_src_prepare - use vala && vala_src_prepare -} - -src_configure() { - gnome2_src_configure \ - --disable-test-coverage \ - --disable-static \ - $(use_enable introspection) \ - $(use_enable nls) \ - $(use_enable vala) -} diff --git a/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild new file mode 100644 index 000000000000..c1c823159096 --- /dev/null +++ b/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit meson vala + +DESCRIPTION="GLib and GObject mappings for libvirt" +HOMEPAGE="https://libvirt.org/ https://gitlab.com/libvirt/libvirt-glib/" +SRC_URI="https://libvirt.org/sources/glib/${P}.tar.xz" +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="amd64 arm64 ppc64 x86" +IUSE="gtk-doc +introspection test +vala" +RESTRICT="!test? ( test )" +REQUIRED_USE="vala? ( introspection )" + +RDEPEND=" + >=dev-libs/libxml2-2.9.1 + >=app-emulation/libvirt-1.2.8:= + >=dev-libs/glib-2.48.0:2 + introspection? ( >=dev-libs/gobject-introspection-1.48.0:= ) +" +DEPEND="${RDEPEND}" + +BDEPEND=" + dev-util/glib-utils + virtual/pkgconfig + gtk-doc? ( dev-util/gtk-doc + app-text/docbook-xml-dtd:4.3 ) + vala? ( $(vala_depend) ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-4.0.0-Make-xmlError-structs-constant.patch + "${FILESDIR}"/${PN}-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch +) + +src_prepare() { + default + use vala && vala_src_prepare +} + +src_configure() { + local emesonargs=( + $(meson_feature gtk-doc docs) + $(meson_feature introspection) + $(meson_feature test tests) + $(meson_feature vala vapi) + ) + + meson_src_configure +} diff --git a/app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild new file mode 100644 index 000000000000..8b22083a5ab3 --- /dev/null +++ b/app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit meson vala + +DESCRIPTION="GLib and GObject mappings for libvirt" +HOMEPAGE="https://libvirt.org/ https://gitlab.com/libvirt/libvirt-glib/" +SRC_URI="https://libvirt.org/sources/glib/${P}.tar.xz" +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" +IUSE="gtk-doc +introspection test +vala" +RESTRICT="!test? ( test )" +REQUIRED_USE="vala? ( introspection )" + +RDEPEND=" + >=dev-libs/libxml2-2.9.1 + >=app-emulation/libvirt-2.3.0:= + >=dev-libs/glib-2.48.0:2 + introspection? ( >=dev-libs/gobject-introspection-1.48.0:= ) +" +DEPEND="${RDEPEND}" + +BDEPEND=" + dev-util/glib-utils + virtual/pkgconfig + gtk-doc? ( dev-util/gtk-doc + app-text/docbook-xml-dtd:4.3 ) + vala? ( $(vala_depend) ) +" + +src_prepare() { + default + use vala && vala_src_prepare +} + +src_configure() { + local emesonargs=( + $(meson_feature gtk-doc docs) + $(meson_feature introspection) + $(meson_feature test tests) + $(meson_feature vala vapi) + ) + + meson_src_configure +} diff --git a/app-emulation/libvirt-glib/metadata.xml b/app-emulation/libvirt-glib/metadata.xml index 8f96b900ccf3..08a5f06bdf97 100644 --- a/app-emulation/libvirt-glib/metadata.xml +++ b/app-emulation/libvirt-glib/metadata.xml @@ -1,12 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="project"> - <email>gnome@gentoo.org</email> - <name>Gentoo GNOME Desktop</name> -</maintainer> -<maintainer type="person"> - <email>tamiko@gentoo.org</email> - <name>Matthias Maier</name> -</maintainer> + <maintainer type="project"> + <email>gnome@gentoo.org</email> + <name>Gentoo GNOME Desktop</name> + </maintainer> + <maintainer type="person"> + <email>tamiko@gentoo.org</email> + <name>Matthias Maier</name> + </maintainer> + <upstream> + <remote-id type="gitlab">libvirt/libvirt-glib</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/libvirt-snmp/Manifest b/app-emulation/libvirt-snmp/Manifest deleted file mode 100644 index 29aa01ee3da6..000000000000 --- a/app-emulation/libvirt-snmp/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST libvirt-snmp-0.0.4.tar.gz 157859 BLAKE2B e2c8fcdd97ba9b55bd4d318c63f7738024c1360ee10aa4e685c2ea6ca02478206febff30f3e1a82eb1a2dadaa52a377cfbce538e12e33f4ea2fe10b1a089945d SHA512 dbf47e7983f9bd6fcff205fffd1f6006268cca774cf427d39dec84dc7de37b545c0dfcbb2c6f171f55d73487cdec13341097137e24de2dea58ce90494d281162 diff --git a/app-emulation/libvirt-snmp/files/libvirt-snmp.confd b/app-emulation/libvirt-snmp/files/libvirt-snmp.confd deleted file mode 100644 index f1685bb5e9d9..000000000000 --- a/app-emulation/libvirt-snmp/files/libvirt-snmp.confd +++ /dev/null @@ -1,6 +0,0 @@ - -# Specify the URI where your libvirt instance is listening -LIBVIRT_DEFAULT_URI="qemu:///system" - -# additional options -LIBVIRT_SNMP_OPTIONS="" diff --git a/app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r1 b/app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r1 deleted file mode 100644 index 27b877991ae2..000000000000 --- a/app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r1 +++ /dev/null @@ -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 $? -} diff --git a/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild b/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild deleted file mode 100644 index 8539f42de690..000000000000 --- a/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit eutils - -DESCRIPTION="Provides SNMP functionality for libvirt" -HOMEPAGE="http://libvirt.org" -SRC_URI="http://www.libvirt.org/sources/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" -} diff --git a/app-emulation/libvirt-snmp/metadata.xml b/app-emulation/libvirt-snmp/metadata.xml deleted file mode 100644 index 1b2becffa26c..000000000000 --- a/app-emulation/libvirt-snmp/metadata.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <!-- maintainer-needed --> -</pkgmetadata> diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest index d865d5950769..bc9979d66286 100644 --- a/app-emulation/libvirt/Manifest +++ b/app-emulation/libvirt/Manifest @@ -1,2 +1,10 @@ -DIST libvirt-6.7.0.tar.xz 8362140 BLAKE2B d0afe33fcdaab3cc0f2ea8c552e7550bcece018b049a3b58e5c05ee85b39e2b3ebf42fa1b70ddb1d2a541d1114b6b49734f23a889b3589397a30a672f27a3a56 SHA512 cabfb6aa65a3a1412b0111654ad3a7d0a6dfc63399a892c540ca39ab4e56f87626a067037e4480bb55418a371d2b5e9ac74862c92a3cdea69822ec3d158d769f -DIST libvirt-6.8.0.tar.xz 8412092 BLAKE2B c118ca6b263054bb6941c62f3d1415f7ed1a3f29a35294272d04bc726643247ee5691e0310a1bf013faeba856d7aadd00a90fe8dbdca6ff4c7eb480e94d92fa2 SHA512 9b69f3dcceb5e40470a78908654faf51b643f6793e556f3115daa4bfe08743af290882dd51f15eb27c38d589eb210d495de7c44a40b363420ab4f4d3a6393cc9 +DIST libvirt-10.0.0.tar.xz 9395076 BLAKE2B bfbea7805a949999481293a31e52a5511bcf86db2c96486cbc3b9cb776719ec973b1208cfcb4a8ae2c9220d1d68053980eaf68893f7919c3ef354efbd1abf642 SHA512 4ab28539ff0e9a78ac231b11b4ec88b91d76ff2607cabd0226f04aaece73b05cab4aa9cfcf05073cd257ea270a377cd5d2cb915971583dbec04dadf2cf7ad252 +DIST libvirt-10.0.0.tar.xz.asc 833 BLAKE2B e6377fe80a96025fe643d9bb14b3d64da3cf7f53000d8ee55606b4bc635d735943c4a7baa3796cbb7ce5812f03e2efd700aeef72e5bfcce68938b873aeca3f1f SHA512 08681d45c39695b07c88b27fddc471284ed66caa091a73ea3957e42ec92776d435ecb4dc71b6bb18a825322468fccb09263f612aa1bde53deea3d6c5305313d8 +DIST libvirt-10.1.0.tar.xz 9444244 BLAKE2B bfdce9d067e3a319b81d867d27f1a6b4e724ab6aaa25d19d7383c9be26ad7dc92b3c0aaa92894b772f09e20c3c2eb0ea0a8707feee4c63be58578fa22854305f SHA512 08e73ae15de5681430b62db85ec9901242dca5e9a4ca9685614f4a67092c6e28f27f9187144b3ceb18ad6b40e6eb1a90b1a4b056b0888724d04a62002ee2bc48 +DIST libvirt-10.1.0.tar.xz.asc 833 BLAKE2B 1046403fb6ee084eb68e081a0fa4a1cfbf30378faf2f54591917ab6a4648a4c2a23da055cfe2577ec7ec80922c29ca7a918386259f747f052abfdfc420ff7749 SHA512 40ec184b4c33f21bf99d38fec0722e165854f723017f3cddaef63120cdf8dcf6df0c03b7e4aea5c3706f65d46f5335db667321b1ece1c123d9517fcd303b2bd8 +DIST libvirt-10.2.0.tar.xz 9466588 BLAKE2B 7ee6f4bdbb6a22f1b3c5c0326d41e269e8a5a07e41bc4f9a17fd023f3e33e46735066656dffa3004e1f36d46324270351593c89f60106933042e8a19a2aa64e6 SHA512 65faf2346e66bdba606ba99b9e4da2be8bd94ef42ac49c2801f9e9253ceea10f5fe772d5c7ada59f48aa34ff528726719b690c3acfd3e63a5c3580db17b023ae +DIST libvirt-10.2.0.tar.xz.asc 833 BLAKE2B 34031ed3c1896d3bb86d05b3efc158a48a70084bd6ea0308df779c351142e0f04395f62d62b4bb225c731a6f259f7ccb950428292691a656799eed06ecb2c3b2 SHA512 d366b0b64642f3358bdaee0ed5e06c4c3eba8b5ce2d1791f3d83d74c139a00282e45d7382af26706657c18e32ab956761d26f5b8595e32ad545c2f27f214fb76 +DIST libvirt-9.8.0.tar.xz 9307064 BLAKE2B aae47e8d4eeaf97532a0356de23ed5a9eea71b369d025eda95b5fd74576779eb4b843d05df6c87b79a14f218c341953749e319ee7244846a2db410a74a746880 SHA512 0118725073de33eec3fa3e4616d3154707f9828fdb9ec973f503fe68f18eab72b9704da660f281152630ddc95e605c786673af9d23dc9bdfc0108422e0efbd41 +DIST libvirt-9.8.0.tar.xz.asc 833 BLAKE2B 3ecd0a925992eeadd50675f7ad8e815bde532c0f66e331ea766fff8e613b6a60b002bedee82fd03684e703057bc13d4e92191268dcd5efe2611ce9bd3cf6b505 SHA512 e041db13281eae9323c22189b7a258caf8d0e2a350cbd31b6cbed7054ccaf09d05c155c3c09daea07940affdf15e8d42bb2339945480cd141a6e8cb417a78536 +DIST libvirt-9.9.0.tar.xz 9321556 BLAKE2B 21eae5a95feaf7f5c6ba8dd48732c08212904882a11c48eccfa827d85ddc3df7e064503f21710dbe1b678670e02f003674de915a43a7403fbf85685c4832e21d SHA512 77cea28acf4f3e8c92fbd5bd72ad084be183c07f14e3a9ce35d6d9d62d36ee97a30cef55fb204b3e43f282890ecd7d5827a784a517e7f4ed8b22ee502c3f09d7 +DIST libvirt-9.9.0.tar.xz.asc 833 BLAKE2B 3de3674d33c595692e71eeb9c312de76e865d3859d2482ec5b4d29d3cd7644cde080cba0001668efe7876b462f78c0233ab76076ef32943e118b34cca8c1ab4d SHA512 357fc2d1bdbbc26c6e0119a1b5c42e86a116f94bb714da855ab27ca83da0e50c7239d1b8abde3cee8a460ac537f63d518f43470d8329b727b39491771ad191e5 diff --git a/app-emulation/libvirt/files/README.gentoo-r3 b/app-emulation/libvirt/files/README.gentoo-r3 index 1fec12f0c025..0eab21d3a006 100644 --- a/app-emulation/libvirt/files/README.gentoo-r3 +++ b/app-emulation/libvirt/files/README.gentoo-r3 @@ -5,7 +5,7 @@ host. In order to reenable client handling, edit /etc/conf.d/libvirt-guests and enable the service and start it: $ rc-update add libvirt-guests - $ service libvirt-guests start + $ rc-service libvirt-guests start For the basic networking support (bridged and routed networks) you don't diff --git a/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch b/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch new file mode 100644 index 000000000000..7ef0652faa38 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch @@ -0,0 +1,42 @@ +From 2127032ed8cd49001465dc0dce9f842e13467bc2 Mon Sep 17 00:00:00 2001 +Message-ID: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com> +From: Martin Kletzander <mkletzan@redhat.com> +Date: Tue, 27 Feb 2024 16:20:12 +0100 +Subject: [PATCH 1/2] Fix off-by-one error in udevListInterfacesByStatus +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Ever since this function was introduced in 2012 it could've tried +filling in an extra interface name. That was made worse in 2019 when +the caller functions started accepting NULL arrays of size 0. + +This is assigned CVE-2024-1441. + +Signed-off-by: Martin Kletzander <mkletzan@redhat.com> +Reported-by: Alexander Kuznetsov <kuznetsovam@altlinux.org> +Fixes: 5a33366f5c0b18c93d161bd144f9f079de4ac8ca +Fixes: d6064e2759a24e0802f363e3a810dc5a7d7ebb15 +Reviewed-by: Ján Tomko <jtomko@redhat.com> +(cherry picked from commit c664015fe3a7bf59db26686e9ed69af011c6ebb8) +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + src/interface/interface_backend_udev.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c +index fb6799ed94..4091483060 100644 +--- a/src/interface/interface_backend_udev.c ++++ b/src/interface/interface_backend_udev.c +@@ -222,7 +222,7 @@ udevListInterfacesByStatus(virConnectPtr conn, + g_autoptr(virInterfaceDef) def = NULL; + + /* Ensure we won't exceed the size of our array */ +- if (count > names_len) ++ if (count >= names_len) + break; + + path = udev_list_entry_get_name(dev_entry); +-- +2.43.2 + diff --git a/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch b/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch new file mode 100644 index 000000000000..3e0426634f42 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch @@ -0,0 +1,222 @@ +From 10fa5f6ba64b354b99b0f7b372e66e45bb4d9379 Mon Sep 17 00:00:00 2001 +Message-ID: <10fa5f6ba64b354b99b0f7b372e66e45bb4d9379.1713033988.git.mprivozn@redhat.com> +In-Reply-To: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com> +References: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com> +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> +Date: Fri, 15 Mar 2024 10:47:50 +0000 +Subject: [PATCH 2/2] remote: check for negative array lengths before + allocation +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +While the C API entry points will validate non-negative lengths +for various parameters, the RPC server de-serialization code +will need to allocate memory for arrays before entering the C +API. These allocations will thus happen before the non-negative +length check is performed. + +Passing a negative length to the g_new0 function will usually +result in a crash due to the negative length being treated as +a huge positive number. + +This was found and diagnosed by ALT Linux Team with AFLplusplus. + +CVE-2024-2494 +Reviewed-by: Michal Privoznik <mprivozn@redhat.com> +Found-by: Alexandr Shashkin <dutyrok@altlinux.org> +Co-developed-by: Alexander Kuznetsov <kuznetsovam@altlinux.org> +Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> +(cherry picked from commit 8a3f8d957507c1f8223fdcf25a3ff885b15557f2) +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + src/remote/remote_daemon_dispatch.c | 65 +++++++++++++++++++++++++++++ + src/rpc/gendispatch.pl | 5 +++ + 2 files changed, 70 insertions(+) + +diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c +index 7daf503b51..7542caa952 100644 +--- a/src/remote/remote_daemon_dispatch.c ++++ b/src/remote/remote_daemon_dispatch.c +@@ -2291,6 +2291,10 @@ remoteDispatchDomainGetSchedulerParameters(virNetServer *server G_GNUC_UNUSED, + if (!conn) + goto cleanup; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -2339,6 +2343,10 @@ remoteDispatchDomainGetSchedulerParametersFlags(virNetServer *server G_GNUC_UNUS + if (!conn) + goto cleanup; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -2497,6 +2505,10 @@ remoteDispatchDomainBlockStatsFlags(virNetServer *server G_GNUC_UNUSED, + goto cleanup; + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_BLOCK_STATS_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -2717,6 +2729,14 @@ remoteDispatchDomainGetVcpuPinInfo(virNetServer *server G_GNUC_UNUSED, + if (!(dom = get_nonnull_domain(conn, args->dom))) + goto cleanup; + ++ if (args->ncpumaps < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("ncpumaps must be non-negative")); ++ goto cleanup; ++ } ++ if (args->maplen < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maplen must be non-negative")); ++ goto cleanup; ++ } + if (args->ncpumaps > REMOTE_VCPUINFO_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("ncpumaps > REMOTE_VCPUINFO_MAX")); + goto cleanup; +@@ -2811,6 +2831,11 @@ remoteDispatchDomainGetEmulatorPinInfo(virNetServer *server G_GNUC_UNUSED, + if (!(dom = get_nonnull_domain(conn, args->dom))) + goto cleanup; + ++ if (args->maplen < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maplen must be non-negative")); ++ goto cleanup; ++ } ++ + /* Allocate buffers to take the results */ + if (args->maplen > 0) + cpumaps = g_new0(unsigned char, args->maplen); +@@ -2858,6 +2883,14 @@ remoteDispatchDomainGetVcpus(virNetServer *server G_GNUC_UNUSED, + if (!(dom = get_nonnull_domain(conn, args->dom))) + goto cleanup; + ++ if (args->maxinfo < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo must be non-negative")); ++ goto cleanup; ++ } ++ if (args->maplen < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo must be non-negative")); ++ goto cleanup; ++ } + if (args->maxinfo > REMOTE_VCPUINFO_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo > REMOTE_VCPUINFO_MAX")); + goto cleanup; +@@ -3096,6 +3129,10 @@ remoteDispatchDomainGetMemoryParameters(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_MEMORY_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -3156,6 +3193,10 @@ remoteDispatchDomainGetNumaParameters(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_NUMA_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -3216,6 +3257,10 @@ remoteDispatchDomainGetBlkioParameters(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_BLKIO_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -3277,6 +3322,10 @@ remoteDispatchNodeGetCPUStats(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_NODE_CPU_STATS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -3339,6 +3388,10 @@ remoteDispatchNodeGetMemoryStats(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_NODE_MEMORY_STATS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -3514,6 +3567,10 @@ remoteDispatchDomainGetBlockIoTune(virNetServer *server G_GNUC_UNUSED, + if (!conn) + goto cleanup; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_BLOCK_IO_TUNE_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -5079,6 +5136,10 @@ remoteDispatchDomainGetInterfaceParameters(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_DOMAIN_INTERFACE_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +@@ -5299,6 +5360,10 @@ remoteDispatchNodeGetMemoryParameters(virNetServer *server G_GNUC_UNUSED, + + flags = args->flags; + ++ if (args->nparams < 0) { ++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative")); ++ goto cleanup; ++ } + if (args->nparams > REMOTE_NODE_MEMORY_PARAMETERS_MAX) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large")); + goto cleanup; +diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl +index fa45d15a92..294e21f8a1 100755 +--- a/src/rpc/gendispatch.pl ++++ b/src/rpc/gendispatch.pl +@@ -1070,6 +1070,11 @@ elsif ($mode eq "server") { + print "\n"; + + if ($single_ret_as_list) { ++ print " if (args->$single_ret_list_max_var < 0) {\n"; ++ print " virReportError(VIR_ERR_RPC,\n"; ++ print " \"%s\", _(\"max$single_ret_list_name must be non-negative\"));\n"; ++ print " goto cleanup;\n"; ++ print " }\n"; + print " if (args->$single_ret_list_max_var > $single_ret_list_max_define) {\n"; + print " virReportError(VIR_ERR_RPC,\n"; + print " \"%s\", _(\"max$single_ret_list_name > $single_ret_list_max_define\"));\n"; +-- +2.43.2 + diff --git a/app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch deleted file mode 100644 index f3d2e3c39162..000000000000 --- a/app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch +++ /dev/null @@ -1,169 +0,0 @@ ---- a/src/interface/virtinterfaced.service.in -+++ b/src/interface/virtinterfaced.service.in -@@ -13,7 +13,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtinterfaced - ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/libxl/virtxend.service.in -+++ b/src/libxl/virtxend.service.in -@@ -17,7 +17,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtxend - ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/locking/virtlockd.service.in -+++ b/src/locking/virtlockd.service.in -@@ -7,8 +7,7 @@ - Documentation=https://libvirt.org - - [Service] --EnvironmentFile=-@sysconfdir@/sysconfig/virtlockd --ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS -+ExecStart=@sbindir@/virtlockd - ExecReload=/bin/kill -USR1 $MAINPID - # Loosing the locks is a really bad thing that will - # cause the machine to be fenced (rebooted), so make ---- a/src/logging/virtlogd.service.in -+++ b/src/logging/virtlogd.service.in -@@ -7,8 +7,7 @@ - Documentation=https://libvirt.org - - [Service] --EnvironmentFile=-@sysconfdir@/sysconfig/virtlogd --ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS -+ExecStart=@sbindir@/virtlogd - ExecReload=/bin/kill -USR1 $MAINPID - # Loosing the logs is a really bad thing that will - # cause the machine to be fenced (rebooted), so make ---- a/src/lxc/virtlxcd.service.in -+++ b/src/lxc/virtlxcd.service.in -@@ -18,7 +18,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd - ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - KillMode=process ---- a/src/network/virtnetworkd.service.in -+++ b/src/network/virtnetworkd.service.in -@@ -16,7 +16,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtnetworkd - ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/node_device/virtnodedevd.service.in -+++ b/src/node_device/virtnodedevd.service.in -@@ -13,7 +13,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtnodedevd - ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/nwfilter/virtnwfilterd.service.in -+++ b/src/nwfilter/virtnwfilterd.service.in -@@ -13,7 +13,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtnwfilterd - ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/qemu/virtqemud.service.in -+++ b/src/qemu/virtqemud.service.in -@@ -18,7 +18,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud - ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - KillMode=process ---- a/src/remote/libvirtd.service.in -+++ b/src/remote/libvirtd.service.in -@@ -28,8 +28,7 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd --ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS -+ExecStart=@sbindir@/libvirtd - ExecReload=/bin/kill -HUP $MAINPID - KillMode=process - Restart=on-failure ---- a/src/remote/virtproxyd.service.in -+++ b/src/remote/virtproxyd.service.in -@@ -13,7 +13,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtproxyd - ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/secret/virtsecretd.service.in -+++ b/src/secret/virtsecretd.service.in -@@ -13,7 +13,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtsecretd - ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/storage/virtstoraged.service.in -+++ b/src/storage/virtstoraged.service.in -@@ -15,7 +15,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtstoraged - ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/src/vbox/virtvboxd.service.in -+++ b/src/vbox/virtvboxd.service.in -@@ -14,7 +14,6 @@ - - [Service] - Type=notify --EnvironmentFile=-@sysconfdir@/sysconfig/virtvboxd - ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS - ExecReload=/bin/kill -HUP $MAINPID - Restart=on-failure ---- a/tools/libvirt-guests.service.in -+++ b/tools/libvirt-guests.service.in -@@ -10,7 +10,7 @@ - Documentation=https://libvirt.org - - [Service] --EnvironmentFile=-@sysconfdir@/sysconfig/libvirt-guests -+EnvironmentFile=-/etc/libvirt/libvirt-guests.conf - # Hack just call traditional service until we factor - # out the code - ExecStart=@libexecdir@/libvirt-guests.sh start ---- a/tools/libvirt-guests.sysconf -+++ b/tools/libvirt-guests.sysconf -@@ -1,3 +1,9 @@ -+# -+# Warning: This configuration file is only sourced by the systemd -+# libvirt-guests.service unit. The coresponding openrc facility is in -+# /etc/init.d/libvirtd and /etc/conf.d/libvirtd -+# -+ - # Customizations for the libvirt-guests.service systemd unit - - # URIs to check for running guests diff --git a/app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch b/app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch deleted file mode 100644 index 65eb35f3e346..000000000000 --- a/app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- a/meson.build 2020-09-26 21:25:08.557345415 +0000 -+++ b/meson.build 2020-09-26 21:25:59.507348156 +0000 -@@ -84,7 +84,7 @@ sbindir = prefix / get_option('sbindir') - sharedstatedir = prefix / get_option('sharedstatedir') - - confdir = sysconfdir / meson.project_name() --docdir = datadir / 'doc' / meson.project_name() -+docdir = datadir / 'doc' / '@0@-@1@'.format(meson.project_name(), meson.project_version()) - pkgdatadir = datadir / meson.project_name() diff --git a/app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch b/app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch deleted file mode 100644 index 18e7ef2daa0b..000000000000 --- a/app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch +++ /dev/null @@ -1,51 +0,0 @@ -diff --git a/src/security/apparmor/libvirt-qemu b/src/security/apparmor/libvirt-qemu -index 80986ae..d550d8c 100644 ---- a/src/security/apparmor/libvirt-qemu -+++ b/src/security/apparmor/libvirt-qemu -@@ -88,6 +88,7 @@ - /usr/share/sgabios/** r, - /usr/share/slof/** r, - /usr/share/vgabios/** r, -+ /usr/share/seavgabios/** r, - - # pki for libvirt-vnc and libvirt-spice (LP: #901272, #1690140) - /etc/pki/CA/ r, - ---- a/src/security/apparmor/meson.build 2020-10-06 17:45:18.590000000 +0100 -+++ b/src/security/apparmor/meson.build 2020-10-06 17:45:07.044000000 +0100 -@@ -1,5 +1,5 @@ - apparmor_gen_profiles = [ -- 'usr.lib.libvirt.virt-aa-helper', -+ 'usr.libexec.libvirt.virt-aa-helper', - 'usr.sbin.libvirtd', - ] - -@@ -32,7 +32,7 @@ install_data( - ) - - install_data( -- 'usr.lib.libvirt.virt-aa-helper.local', -+ 'usr.libexec.libvirt.virt-aa-helper.local', - install_dir: apparmor_dir / 'local', -- rename: 'usr.lib.libvirt.virt-aa-helper', -+ rename: 'usr.libexec.libvirt.virt-aa-helper', - ) - -diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in -similarity index 97% -rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in -rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in -index dd18c8a..d06f9cb 100644 ---- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in -+++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in -@@ -69,5 +69,5 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper { - /**.[iI][sS][oO] r, - /**/disk{,.*} r, - -- #include <local/usr.lib.libvirt.virt-aa-helper> -+ #include <local/usr.libexec.libvirt.virt-aa-helper> - } -diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local -similarity index 100% -rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local -rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local diff --git a/app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch b/app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch new file mode 100644 index 000000000000..b24236be8751 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch @@ -0,0 +1,36 @@ +From 7a5f232be2269e74943a029c0e8b1b0124674a6c Mon Sep 17 00:00:00 2001 +Message-ID: <7a5f232be2269e74943a029c0e8b1b0124674a6c.1700576185.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Mon, 20 Nov 2023 03:18:12 +0100 +Subject: [PATCH] virxml: include <libxml/xmlsave.h> for xmlIndentTreeOutput + declaration +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +After libxml2's commit of v2.12.0~101 we no longer get +xmlIndentTreeOutput declaration by us including just +libxml/xpathInternals.h and libxml2's header files leakage. + +Resolves: https://bugs.gentoo.org/917516 +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +Reviewed-by: Ján Tomko <jtomko@redhat.com> +--- + src/util/virxml.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/util/virxml.c b/src/util/virxml.c +index 0c1eae8c3c..4f215a0e59 100644 +--- a/src/util/virxml.c ++++ b/src/util/virxml.c +@@ -24,6 +24,7 @@ + #include <math.h> /* for isnan() */ + #include <sys/stat.h> + ++#include <libxml/xmlsave.h> + #include <libxml/xpathInternals.h> + + #include "virerror.h" +-- +2.41.0 + diff --git a/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch new file mode 100644 index 000000000000..cfd12efb3de7 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch @@ -0,0 +1,209 @@ +From 09e34bcb43b3c0fb3bf139f218ebc75e9e9f9a39 Mon Sep 17 00:00:00 2001 +Message-Id: <09e34bcb43b3c0fb3bf139f218ebc75e9e9f9a39.1683631803.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Wed, 2 Mar 2022 10:01:04 +0100 +Subject: [PATCH] libvirt-8.2.0-do-not-use-sysconfig.patch + +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + src/interface/virtinterfaced.service.in | 1 - + src/libxl/virtxend.service.in | 1 - + src/locking/virtlockd.service.in | 1 - + src/logging/virtlogd.service.in | 1 - + src/lxc/virtlxcd.service.in | 1 - + src/network/virtnetworkd.service.in | 1 - + src/node_device/virtnodedevd.service.in | 1 - + src/nwfilter/virtnwfilterd.service.in | 1 - + src/qemu/virtqemud.service.in | 1 - + src/remote/libvirtd.service.in | 1 - + src/remote/virtproxyd.service.in | 1 - + src/secret/virtsecretd.service.in | 1 - + src/storage/virtstoraged.service.in | 1 - + src/vbox/virtvboxd.service.in | 1 - + tools/libvirt-guests.service.in | 2 +- + 15 files changed, 1 insertion(+), 15 deletions(-) + +diff --git a/src/interface/virtinterfaced.service.in b/src/interface/virtinterfaced.service.in +index 1be3ab32dc..090b198ac7 100644 +--- a/src/interface/virtinterfaced.service.in ++++ b/src/interface/virtinterfaced.service.in +@@ -14,7 +14,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTINTERFACED_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtinterfaced + ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in +index abb1972777..dbbc2ab5b7 100644 +--- a/src/libxl/virtxend.service.in ++++ b/src/libxl/virtxend.service.in +@@ -19,7 +19,6 @@ ConditionPathExists=/proc/xen/capabilities + [Service] + Type=notify + Environment=VIRTXEND_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtxend + ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in +index 23054369d5..87193952cb 100644 +--- a/src/locking/virtlockd.service.in ++++ b/src/locking/virtlockd.service.in +@@ -8,7 +8,6 @@ Documentation=https://libvirt.org + + [Service] + Environment=VIRTLOCKD_ARGS= +-EnvironmentFile=-@initconfdir@/virtlockd + ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS + ExecReload=/bin/kill -USR1 $MAINPID + # Losing the locks is a really bad thing that will +diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in +index e4aecd46a7..d97a98e856 100644 +--- a/src/logging/virtlogd.service.in ++++ b/src/logging/virtlogd.service.in +@@ -8,7 +8,6 @@ Documentation=https://libvirt.org + + [Service] + Environment=VIRTLOGD_ARGS= +-EnvironmentFile=-@initconfdir@/virtlogd + ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS + ExecReload=/bin/kill -USR1 $MAINPID + # Losing the logs is a really bad thing that will +diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in +index 2623f7375a..b48ce6958a 100644 +--- a/src/lxc/virtlxcd.service.in ++++ b/src/lxc/virtlxcd.service.in +@@ -18,7 +18,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTLXCD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtlxcd + ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + KillMode=process +diff --git a/src/network/virtnetworkd.service.in b/src/network/virtnetworkd.service.in +index 48423e777d..ee4cd9bca1 100644 +--- a/src/network/virtnetworkd.service.in ++++ b/src/network/virtnetworkd.service.in +@@ -17,7 +17,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTNETWORKD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtnetworkd + ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/node_device/virtnodedevd.service.in b/src/node_device/virtnodedevd.service.in +index 3ceed30f29..7693aa52c4 100644 +--- a/src/node_device/virtnodedevd.service.in ++++ b/src/node_device/virtnodedevd.service.in +@@ -14,7 +14,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTNODEDEVD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtnodedevd + ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/nwfilter/virtnwfilterd.service.in b/src/nwfilter/virtnwfilterd.service.in +index 37fa54d684..16d8b377b0 100644 +--- a/src/nwfilter/virtnwfilterd.service.in ++++ b/src/nwfilter/virtnwfilterd.service.in +@@ -14,7 +14,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTNWFILTERD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtnwfilterd + ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in +index 032cbcbbf0..85a1049567 100644 +--- a/src/qemu/virtqemud.service.in ++++ b/src/qemu/virtqemud.service.in +@@ -20,7 +20,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTQEMUD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtqemud + ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + KillMode=process +diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in +index 11507207a1..9cda330e0b 100644 +--- a/src/remote/libvirtd.service.in ++++ b/src/remote/libvirtd.service.in +@@ -28,7 +28,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=LIBVIRTD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/libvirtd + ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + KillMode=process +diff --git a/src/remote/virtproxyd.service.in b/src/remote/virtproxyd.service.in +index dd3bdf3429..0eddf5ee93 100644 +--- a/src/remote/virtproxyd.service.in ++++ b/src/remote/virtproxyd.service.in +@@ -14,7 +14,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTPROXYD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtproxyd + ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/secret/virtsecretd.service.in b/src/secret/virtsecretd.service.in +index 774cfc3ecd..92e54f175f 100644 +--- a/src/secret/virtsecretd.service.in ++++ b/src/secret/virtsecretd.service.in +@@ -14,7 +14,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTSECRETD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtsecretd + ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/storage/virtstoraged.service.in b/src/storage/virtstoraged.service.in +index e1a1ea6820..abe91e3d80 100644 +--- a/src/storage/virtstoraged.service.in ++++ b/src/storage/virtstoraged.service.in +@@ -16,7 +16,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTSTORAGED_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtstoraged + ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/src/vbox/virtvboxd.service.in b/src/vbox/virtvboxd.service.in +index e73206591a..54fbd0be4a 100644 +--- a/src/vbox/virtvboxd.service.in ++++ b/src/vbox/virtvboxd.service.in +@@ -15,7 +15,6 @@ Documentation=https://libvirt.org + [Service] + Type=notify + Environment=VIRTVBOXD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/virtvboxd + ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in +index c547218f2a..f5a1a60abe 100644 +--- a/tools/libvirt-guests.service.in ++++ b/tools/libvirt-guests.service.in +@@ -14,7 +14,7 @@ Documentation=man:libvirt-guests(8) + Documentation=https://libvirt.org + + [Service] +-EnvironmentFile=-@initconfdir@/libvirt-guests ++EnvironmentFile=-/etc/libvirt/libvirt-guests.conf + # Hack just call traditional service until we factor + # out the code + ExecStart=@libexecdir@/libvirt-guests.sh start +-- +2.39.3 + diff --git a/app-emulation/libvirt/files/libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch b/app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch index bf7a328f7759..d40d2f1b63ec 100644 --- a/app-emulation/libvirt/files/libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch +++ b/app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch @@ -1,10 +1,7 @@ -From e97700d867ffa949c97f8a635a76b9ce510e806f Mon Sep 17 00:00:00 2001 -Message-Id: <e97700d867ffa949c97f8a635a76b9ce510e806f.1580460243.git.mprivozn@redhat.com> -In-Reply-To: <5965f20fe0275b324c9b84ab7f48dd7db0494495.1580460243.git.mprivozn@redhat.com> -References: <5965f20fe0275b324c9b84ab7f48dd7db0494495.1580460243.git.mprivozn@redhat.com> +From 7f22569453720994ba49ca1d3c64c010ed7cc5d0 Mon Sep 17 00:00:00 2001 From: Michal Privoznik <mprivozn@redhat.com> Date: Fri, 31 Jan 2020 09:42:14 +0100 -Subject: [PATCH 2/3] Fix paths in libvirt-guests.sh.in +Subject: [PATCH] Fix paths in libvirt-guests.sh.in Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- @@ -12,15 +9,15 @@ Signed-off-by: Michal Privoznik <mprivozn@redhat.com> 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in -index a881f6266e..79d38b3e9a 100644 +index 016014215f..24dd706d6f 100644 --- a/tools/libvirt-guests.sh.in +++ b/tools/libvirt-guests.sh.in -@@ -39,11 +39,11 @@ START_DELAY=0 +@@ -40,11 +40,11 @@ START_DELAY=0 BYPASS_CACHE=0 SYNC_TIME=0 --test -f "$sysconfdir"/sysconfig/libvirt-guests && -- . "$sysconfdir"/sysconfig/libvirt-guests +-test -f "$initconfdir"/libvirt-guests && +- . "$initconfdir"/libvirt-guests +test -f "$sysconfdir"/libvirt/libvirt-guests.conf && + . "$sysconfdir"/libvirt/libvirt-guests.conf @@ -31,5 +28,5 @@ index a881f6266e..79d38b3e9a 100644 RETVAL=0 -- -2.24.1 +2.39.3 diff --git a/app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch b/app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch new file mode 100644 index 000000000000..2ffe279e74b0 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch @@ -0,0 +1,97 @@ +From 4927c28a30fe469b512b49346f321661ca865769 Mon Sep 17 00:00:00 2001 +Message-ID: <4927c28a30fe469b512b49346f321661ca865769.1689058931.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Tue, 15 Mar 2022 05:23:29 +0100 +Subject: [PATCH] libvirt-9.5.0-fix-paths-for-apparmor.patch + +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + src/security/apparmor/libvirt-qemu.in | 1 + + src/security/apparmor/meson.build | 6 +++--- + src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local | 1 - + ...t-aa-helper.in => usr.libexec.libvirt.virt-aa-helper.in} | 6 +++--- + .../apparmor/usr.libexec.libvirt.virt-aa-helper.local | 1 + + 5 files changed, 8 insertions(+), 7 deletions(-) + delete mode 100644 src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local + rename src/security/apparmor/{usr.lib.libvirt.virt-aa-helper.in => usr.libexec.libvirt.virt-aa-helper.in} (92%) + create mode 100644 src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local + +diff --git a/src/security/apparmor/libvirt-qemu.in b/src/security/apparmor/libvirt-qemu.in +index 53f45c3a28..7882e811fc 100644 +--- a/src/security/apparmor/libvirt-qemu.in ++++ b/src/security/apparmor/libvirt-qemu.in +@@ -96,6 +96,7 @@ + /usr/share/sgabios/** r, + /usr/share/slof/** r, + /usr/share/vgabios/** r, ++ /usr/share/seavgabios/** r, + + # pki for libvirt-vnc and libvirt-spice (LP: #901272, #1690140) + /etc/pki/CA/ r, +diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build +index b9257c816d..c1b79fef27 100644 +--- a/src/security/apparmor/meson.build ++++ b/src/security/apparmor/meson.build +@@ -1,5 +1,5 @@ + apparmor_gen_profiles = [ +- 'usr.lib.libvirt.virt-aa-helper', ++ 'usr.libexec.libvirt.virt-aa-helper', + 'usr.sbin.libvirtd', + 'usr.sbin.virtqemud', + 'usr.sbin.virtxend', +@@ -82,8 +82,8 @@ if not conf.has('WITH_APPARMOR_3') + # AppArmor 3.x, upstream's preference is to avoid creating these + # files in order to limit the amount of filesystem clutter. + install_data( +- 'usr.lib.libvirt.virt-aa-helper.local', ++ 'usr.libexec.libvirt.virt-aa-helper.local', + install_dir: apparmor_dir / 'local', +- rename: 'usr.lib.libvirt.virt-aa-helper', ++ rename: 'usr.libexec.libvirt.virt-aa-helper', + ) + endif +diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local +deleted file mode 100644 +index c0990e51d0..0000000000 +--- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local ++++ /dev/null +@@ -1 +0,0 @@ +-# Site-specific additions and overrides for 'usr.lib.libvirt.virt-aa-helper' +diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in +similarity index 92% +rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in +rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in +index 26ee20a17d..38fd3bfb88 100644 +--- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in ++++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in +@@ -41,7 +41,7 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper { + deny /dev/mapper/* r, + + @libexecdir@/virt-aa-helper mr, +- /{usr/,}sbin/apparmor_parser Ux, ++ /{usr/,}{s,}bin/apparmor_parser Ux, + + @sysconfdir@/apparmor.d/libvirt/* r, + @sysconfdir@/apparmor.d/libvirt/libvirt-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]* rw, +@@ -72,9 +72,9 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper { + /**/disk{,.*} r, + + @BEGIN_APPARMOR_3@ +- include if exists <local/usr.lib.libvirt.virt-aa-helper> ++ include if exists <local/usr.libexec.libvirt.virt-aa-helper> + @END_APPARMOR_3@ + @BEGIN_APPARMOR_2@ +- #include <local/usr.lib.libvirt.virt-aa-helper> ++ #include <local/usr.libexec.libvirt.virt-aa-helper> + @END_APPARMOR_2@ + } +diff --git a/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local +new file mode 100644 +index 0000000000..974653d797 +--- /dev/null ++++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local +@@ -0,0 +1 @@ ++# Site-specific additions and overrides for 'usr.libexec.libvirt.virt-aa-helper' +-- +2.41.0 + diff --git a/app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch new file mode 100644 index 000000000000..debca8c80146 --- /dev/null +++ b/app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch @@ -0,0 +1,79 @@ +From bdc0f6b9c91615c601ea3a625220097f5cb0eeb0 Mon Sep 17 00:00:00 2001 +Message-ID: <bdc0f6b9c91615c601ea3a625220097f5cb0eeb0.1696413637.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Wed, 2 Mar 2022 10:01:04 +0100 +Subject: [PATCH] libvirt-9.9.0-do-not-use-sysconfig.patch + +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +--- + src/locking/virtlockd.service.in | 1 - + src/logging/virtlogd.service.in | 1 - + src/remote/libvirtd.service.in | 1 - + src/virtd.service.in | 1 - + tools/libvirt-guests.service.in | 2 +- + 5 files changed, 1 insertion(+), 5 deletions(-) + +diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in +index ce00b6def9..9dee9189db 100644 +--- a/src/locking/virtlockd.service.in ++++ b/src/locking/virtlockd.service.in +@@ -10,7 +10,6 @@ After=virtlockd-admin.socket + [Service] + Type=notify + Environment=VIRTLOCKD_ARGS= +-EnvironmentFile=-@initconfdir@/virtlockd + ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS + ExecReload=/bin/kill -USR1 $MAINPID + # Losing the locks is a really bad thing that will +diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in +index 52c9e5bb9e..90c63f0483 100644 +--- a/src/logging/virtlogd.service.in ++++ b/src/logging/virtlogd.service.in +@@ -10,7 +10,6 @@ After=virtlogd-admin.socket + [Service] + Type=notify + Environment=VIRTLOGD_ARGS= +-EnvironmentFile=-@initconfdir@/virtlogd + ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS + ExecReload=/bin/kill -USR1 $MAINPID + # Losing the logs is a really bad thing that will +diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in +index 24a6712b75..e4b4a189e1 100644 +--- a/src/remote/libvirtd.service.in ++++ b/src/remote/libvirtd.service.in +@@ -28,7 +28,6 @@ Conflicts=xendomains.service + [Service] + Type=notify + Environment=LIBVIRTD_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/libvirtd + ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS + ExecReload=/bin/kill -HUP $MAINPID + KillMode=process +diff --git a/src/virtd.service.in b/src/virtd.service.in +index 651a8d82d7..b87c7e0553 100644 +--- a/src/virtd.service.in ++++ b/src/virtd.service.in +@@ -17,7 +17,6 @@ After=apparmor.service + [Service] + Type=notify + Environment=@SERVICE@_ARGS="--timeout 120" +-EnvironmentFile=-@initconfdir@/@service@ + ExecStart=@sbindir@/@service@ $@SERVICE@_ARGS + ExecReload=/bin/kill -HUP $MAINPID + Restart=on-failure +diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in +index c547218f2a..f5a1a60abe 100644 +--- a/tools/libvirt-guests.service.in ++++ b/tools/libvirt-guests.service.in +@@ -14,7 +14,7 @@ Documentation=man:libvirt-guests(8) + Documentation=https://libvirt.org + + [Service] +-EnvironmentFile=-@initconfdir@/libvirt-guests ++EnvironmentFile=-/etc/libvirt/libvirt-guests.conf + # Hack just call traditional service until we factor + # out the code + ExecStart=@libexecdir@/libvirt-guests.sh start +-- +2.41.0 + diff --git a/app-emulation/libvirt/files/libvirtd.init-r19 b/app-emulation/libvirt/files/libvirtd.init-r19 index 60dad6a791dc..12bd1d34fa2b 100644 --- a/app-emulation/libvirt/files/libvirtd.init-r19 +++ b/app-emulation/libvirt/files/libvirtd.init-r19 @@ -16,7 +16,7 @@ retry="${LIBVIRTD_TERMTIMEOUT}" depend() { need virtlogd use ceph dbus iscsid virtlockd - after cgconfig corosync ebtables iptables ip6tables nfs nfsmount ntp-client ntpdportmap rpc.statd sanlock xenconsoled + after cgconfig corosync ebtables iptables ip6tables shorewall nfs ntp-client ntpdportmap rpc.statd sanlock xenconsoled USE_FLAG_FIREWALLD } diff --git a/app-emulation/libvirt/files/virtlockd.init-r2 b/app-emulation/libvirt/files/virtlockd.init-r2 index 385dc1e62319..0445b9d02261 100644 --- a/app-emulation/libvirt/files/virtlockd.init-r2 +++ b/app-emulation/libvirt/files/virtlockd.init-r2 @@ -12,7 +12,7 @@ description_reload="re-exec the daemon, while maintaining locks and clients" depend() { - after ntp-client ntpd nfs nfsmount corosync + after ntp-client ntpd nfs corosync } reload() { diff --git a/app-emulation/libvirt/files/virtlogd.init-r2 b/app-emulation/libvirt/files/virtlogd.init-r2 index 442dcb8de48c..abc293e13ae5 100644 --- a/app-emulation/libvirt/files/virtlogd.init-r2 +++ b/app-emulation/libvirt/files/virtlogd.init-r2 @@ -12,7 +12,7 @@ description_reload="re-exec the daemon, while maintaining open connections" depend() { - after ntp-client ntpd nfs nfsmount corosync + after ntp-client ntpd nfs corosync } reload() { diff --git a/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild b/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild new file mode 100644 index 000000000000..baf260598704 --- /dev/null +++ b/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild @@ -0,0 +1,367 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Packages which get releases together: +# app-emacs/nxml-libvirt-schemas +# dev-python/libvirt-python +# dev-perl/Sys-Virt +# app-emulation/libvirt +# Please bump them together! + +PYTHON_COMPAT=( python3_{9..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc +inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git" + EGIT_BRANCH="master" +else + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +fi + +DESCRIPTION="C toolkit to manipulate virtual machines" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" +LICENSE="LGPL-2.1" +SLOT="0/${PV}" +IUSE=" + apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs + iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa + openvz parted pcap policykit +qemu rbd sasl selinux test +udev + virtiofsd virtualbox +virt-network wireshark-plugins xen zfs +" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + firewalld? ( virt-network ) + libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) + lxc? ( caps libvirtd ) + openvz? ( libvirtd ) + qemu? ( libvirtd ) + virt-network? ( libvirtd ) + virtualbox? ( libvirtd ) + xen? ( libvirtd )" + +BDEPEND=" + app-text/xhtml1 + dev-lang/perl + dev-libs/libxslt + dev-perl/XML-XPath + dev-python/docutils + virtual/pkgconfig + bash-completion? ( >=app-shells/bash-completion-2.0 ) + verify-sig? ( sec-keys/openpgp-keys-libvirt )" + +# gettext.sh command is used by the libvirt command wrappers, and it's +# non-optional, so put it into RDEPEND. +# We can use both libnl:1.1 and libnl:3, but if you have both installed, the +# package will use 3 by default. Since we don't have slot pinning in an API, +# we must go with the most recent. +RDEPEND=" + acct-user/qemu + app-misc/scrub + >=dev-libs/glib-2.56.0 + dev-libs/libgcrypt + dev-libs/libnl:3 + >=dev-libs/libxml2-2.9.1 + >=net-analyzer/openbsd-netcat-1.105-r1 + >=net-libs/gnutls-3.2.0:= + net-libs/libtirpc:= + >=net-misc/curl-7.18.0 + sys-apps/dbus + sys-apps/dmidecode + sys-devel/gettext + >=sys-libs/readline-7.0:= + virtual/acl + apparmor? ( sys-libs/libapparmor ) + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap-ng ) + dtrace? ( dev-debug/systemtap ) + firewalld? ( >=net-firewall/firewalld-0.6.3 ) + fuse? ( sys-fs/fuse:= ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.1 ) + iscsi? ( >=sys-block/open-iscsi-1.18.0 ) + iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) + libssh? ( >=net-libs/libssh-0.8.1:= ) + libssh2? ( >=net-libs/libssh2-1.3 ) + lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) + nbd? ( sys-block/nbdkit ) + nfs? ( net-fs/nfs-utils ) + numa? ( + >sys-process/numactl-2.0.2 + sys-process/numad + ) + parted? ( + >=sys-block/parted-1.8[device-mapper] + sys-fs/lvm2[lvm] + ) + pcap? ( >=net-libs/libpcap-1.8.0 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 + ) + qemu? ( + >=app-emulation/qemu-4.2 + app-crypt/swtpm + >=dev-libs/yajl-2.0.3:= + ) + rbd? ( sys-cluster/ceph ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26 ) + selinux? ( >=sys-libs/libselinux-2.0.85 ) + virt-network? ( + net-dns/dnsmasq[dhcp,ipv6(+),script] + net-firewall/ebtables + >=net-firewall/iptables-1.4.10[ipv6(+)] + net-misc/radvd + sys-apps/iproute2[-minimal] + ) + virtiofsd? ( app-emulation/virtiofsd ) + wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= ) + xen? ( + >=app-emulation/xen-4.9.0 + app-emulation/xen-tools:= + ) + udev? ( + virtual/libudev:= + >=x11-libs/libpciaccess-0.10.9 + ) + zfs? ( sys-fs/zfs ) + kernel_linux? ( sys-apps/util-linux )" +DEPEND=" + ${BDEPEND} + ${RDEPEND} + ${PYTHON_DEPS} +" +# The 'circular' dependency on dev-python/libvirt-python is because of +# virt-qemu-qmp-proxy. +PDEPEND=" + qemu? ( dev-python/libvirt-python ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch + "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch + "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch +) + +pkg_setup() { + # Check kernel configuration: + CONFIG_CHECK="" + use fuse && CONFIG_CHECK+=" + ~FUSE_FS" + + use lvm && CONFIG_CHECK+=" + ~BLK_DEV_DM + ~DM_MULTIPATH + ~DM_SNAPSHOT" + + use lxc && CONFIG_CHECK+=" + ~BLK_CGROUP + ~CGROUP_CPUACCT + ~CGROUP_DEVICE + ~CGROUP_FREEZER + ~CGROUP_NET_PRIO + ~CGROUP_PERF + ~CGROUPS + ~CGROUP_SCHED + ~CPUSETS + ~IPC_NS + ~MACVLAN + ~NAMESPACES + ~NET_CLS_CGROUP + ~NET_NS + ~PID_NS + ~POSIX_MQUEUE + ~SECURITYFS + ~USER_NS + ~UTS_NS + ~VETH + ~!GRKERNSEC_CHROOT_MOUNT + ~!GRKERNSEC_CHROOT_DOUBLE + ~!GRKERNSEC_CHROOT_PIVOT + ~!GRKERNSEC_CHROOT_CHMOD + ~!GRKERNSEC_CHROOT_CAPS" + + kernel_is lt 4 7 && use lxc && CONFIG_CHECK+=" + ~DEVPTS_MULTIPLE_INSTANCES" + + use virt-network && CONFIG_CHECK+=" + ~BRIDGE_EBT_MARK_T + ~BRIDGE_NF_EBTABLES + ~NETFILTER_ADVANCED + ~NETFILTER_XT_CONNMARK + ~NETFILTER_XT_MARK + ~NETFILTER_XT_TARGET_CHECKSUM + ~IP_NF_FILTER + ~IP_NF_MANGLE + ~IP_NF_NAT + ~IP6_NF_FILTER + ~IP6_NF_MANGLE + ~IP6_NF_NAT" + + # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6 + if use virt-network ; then + if kernel_is -lt 5 2 ; then + CONFIG_CHECK+=" + ~IP_NF_TARGET_MASQUERADE" + else + CONFIG_CHECK+=" + ~NETFILTER_XT_TARGET_MASQUERADE" + fi + fi + + # Bandwidth Limiting Support + use virt-network && CONFIG_CHECK+=" + ~BRIDGE_EBT_T_NAT + ~IP_NF_TARGET_REJECT + ~NET_ACT_POLICE + ~NET_CLS_FW + ~NET_CLS_U32 + ~NET_SCH_HTB + ~NET_SCH_INGRESS + ~NET_SCH_SFQ" + + ERROR_USER_NS="Optional depending on LXC configuration." + + if [[ -n ${CONFIG_CHECK} ]]; then + linux-info_pkg_setup + fi + + python-any-r1_pkg_setup +} + +src_prepare() { + touch "${S}/.mailmap" || die + + default + python_fix_shebang . + + # Skip fragile tests which relies on pristine environment + # (Breaks because of sandbox environment variables) + # bug #802876 + sed -i -e "/commandtest/d" tests/meson.build || die + + # Tweak the init script: + cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die + sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \ + -i "${S}/libvirtd.init" || die "sed failed" +} + +src_configure() { + local emesonargs=( + $(meson_feature apparmor) + $(meson_feature apparmor apparmor_profiles) + $(meson_feature audit) + $(meson_feature caps capng) + $(meson_feature dtrace) + $(meson_feature firewalld) + $(meson_feature fuse) + $(meson_feature glusterfs) + $(meson_feature glusterfs storage_gluster) + $(meson_feature iscsi storage_iscsi) + $(meson_feature iscsi-direct storage_iscsi_direct) + $(meson_feature libvirtd driver_libvirtd) + $(meson_feature libssh) + $(meson_feature libssh2) + $(meson_feature lvm storage_lvm) + $(meson_feature lvm storage_mpath) + $(meson_feature lxc driver_lxc) + $(meson_feature nbd nbdkit) + $(meson_feature nls) + $(meson_feature numa numactl) + $(meson_feature numa numad) + $(meson_feature openvz driver_openvz) + $(meson_feature parted storage_disk) + $(meson_feature pcap libpcap) + $(meson_feature policykit polkit) + $(meson_feature qemu driver_qemu) + $(meson_feature qemu yajl) + $(meson_feature rbd storage_rbd) + $(meson_feature sasl) + $(meson_feature selinux) + $(meson_feature test tests) + $(meson_feature udev) + $(meson_feature virt-network driver_network) + $(meson_feature virtualbox driver_vbox) + $(meson_feature wireshark-plugins wireshark_dissector) + $(meson_feature xen driver_libxl) + $(meson_feature zfs storage_zfs) + + -Dnetcf=disabled + -Dsanlock=disabled + -Dopenwsman=disabled + + -Ddriver_esx=enabled + -Dinit_script=systemd + -Dqemu_user=$(usex caps qemu root) + -Dqemu_group=$(usex caps qemu root) + -Ddriver_remote=enabled + -Dstorage_fs=enabled + -Ddriver_vmware=enabled + + --localstatedir="${EPREFIX}/var" + -Dinitconfdir="${EPREFIX}/etc/systemd" + -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + ) + + meson_src_configure +} + +src_test() { + export VIR_TEST_DEBUG=1 + # Don't run the syntax check tests, they're fragile and not relevant + # to us downstream anyway. + # We also crank up the timeout (as Fedora does) just to preempt failures + # on slower arches. + meson_src_test --no-suite syntax-check --timeout-multiplier 10 +} + +src_install() { + meson_src_install + + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run + + use libvirtd || return 0 + # From here, only libvirtd-related instructions, be warned! + + newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf + + newinitd "${S}/libvirtd.init" libvirtd + newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests + newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd + newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd + + newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd + newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests + + DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3") + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +pkg_postinst() { + if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then + touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die + fi + + use libvirtd || return 0 + # From here, only libvirtd-related instructions, be warned! + tmpfiles_process libvirtd.conf + readme.gentoo_print_elog +} diff --git a/app-emulation/libvirt/libvirt-6.7.0.ebuild b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild index 0133c49ee602..128f76475972 100644 --- a/app-emulation/libvirt/libvirt-6.7.0.ebuild +++ b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild @@ -1,88 +1,96 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{7,8,9} ) +# Packages which get releases together: +# app-emacs/nxml-libvirt-schemas +# dev-python/libvirt-python +# dev-perl/Sys-Virt +# app-emulation/libvirt +# Please bump them together! -inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd +PYTHON_COMPAT=( python3_{10..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc +inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig if [[ ${PV} = *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git" - SRC_URI="" - SLOT="0" + EGIT_BRANCH="master" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" - KEYWORDS="amd64 ~arm64 ~ppc64 x86" - SLOT="0/${PV}" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" fi DESCRIPTION="C toolkit to manipulate virtual machines" -HOMEPAGE="https://www.libvirt.org/" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" LICENSE="LGPL-2.1" +SLOT="0/${PV}" IUSE=" - apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi - iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz - parted pcap policykit +qemu rbd sasl selinux +udev +vepa - virtualbox virt-network wireshark-plugins xen zfs + apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs + iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa + openvz parted pcap policykit +qemu rbd sasl selinux test +udev + virtiofsd virtualbox +virt-network wireshark-plugins xen zfs " +RESTRICT="!test? ( test )" REQUIRED_USE=" firewalld? ( virt-network ) libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) lxc? ( caps libvirtd ) openvz? ( libvirtd ) - policykit? ( dbus ) qemu? ( libvirtd ) - vepa? ( macvtap ) virt-network? ( libvirtd ) virtualbox? ( libvirtd ) xen? ( libvirtd )" BDEPEND=" - acct-user/qemu - policykit? ( acct-group/libvirt ) app-text/xhtml1 dev-lang/perl dev-libs/libxslt dev-perl/XML-XPath dev-python/docutils - virtual/pkgconfig" + virtual/pkgconfig + bash-completion? ( >=app-shells/bash-completion-2.0 ) + verify-sig? ( sec-keys/openpgp-keys-libvirt )" # gettext.sh command is used by the libvirt command wrappers, and it's # non-optional, so put it into RDEPEND. # We can use both libnl:1.1 and libnl:3, but if you have both installed, the # package will use 3 by default. Since we don't have slot pinning in an API, -# we must go with the most recent +# we must go with the most recent. RDEPEND=" + acct-user/qemu app-misc/scrub - >=dev-libs/glib-2.48.0 - dev-libs/libgcrypt:0 + >=dev-libs/glib-2.56.0 + dev-libs/libgcrypt dev-libs/libnl:3 - >=dev-libs/libxml2-2.7.6 + >=dev-libs/libxml2-2.9.1 >=net-analyzer/openbsd-netcat-1.105-r1 - >=net-libs/gnutls-1.0.25:0= - net-libs/libssh2 - net-libs/libtirpc - net-libs/rpcsvc-proto + >=net-libs/gnutls-3.2.0:= + net-libs/libtirpc:= >=net-misc/curl-7.18.0 + sys-apps/dbus sys-apps/dmidecode sys-devel/gettext - sys-libs/ncurses:0= - sys-libs/readline:= + >=sys-libs/readline-7.0:= + virtual/acl apparmor? ( sys-libs/libapparmor ) audit? ( sys-process/audit ) caps? ( sys-libs/libcap-ng ) - dbus? ( sys-apps/dbus ) - dtrace? ( dev-util/systemtap ) + dtrace? ( dev-debug/systemtap ) firewalld? ( >=net-firewall/firewalld-0.6.3 ) - fuse? ( sys-fs/fuse:0= ) + fuse? ( sys-fs/fuse:= ) glusterfs? ( >=sys-cluster/glusterfs-3.4.1 ) - iscsi? ( sys-block/open-iscsi ) + iscsi? ( >=sys-block/open-iscsi-1.18.0 ) iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) - libssh? ( net-libs/libssh ) - lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] ) + libssh? ( >=net-libs/libssh-0.8.1:= ) + libssh2? ( >=net-libs/libssh2-1.3 ) + lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) + nbd? ( sys-block/nbdkit ) nfs? ( net-fs/nfs-utils ) numa? ( >sys-process/numactl-2.0.2 @@ -90,44 +98,56 @@ RDEPEND=" ) parted? ( >=sys-block/parted-1.8[device-mapper] - sys-fs/lvm2[-device-mapper-only(-)] + sys-fs/lvm2[lvm] + ) + pcap? ( >=net-libs/libpcap-1.8.0 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 ) - pcap? ( >=net-libs/libpcap-1.0.0 ) - policykit? ( >=sys-auth/polkit-0.9 ) qemu? ( - >=app-emulation/qemu-1.5.0 - dev-libs/yajl + >=app-emulation/qemu-4.2 + app-crypt/swtpm + >=dev-libs/yajl-2.0.3:= ) rbd? ( sys-cluster/ceph ) - sasl? ( dev-libs/cyrus-sasl ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26 ) selinux? ( >=sys-libs/libselinux-2.0.85 ) virt-network? ( - net-dns/dnsmasq[script] + net-dns/dnsmasq[dhcp,ipv6(+),script] net-firewall/ebtables - >=net-firewall/iptables-1.4.10[ipv6] + >=net-firewall/iptables-1.4.10[ipv6(+)] net-misc/radvd sys-apps/iproute2[-minimal] ) - wireshark-plugins? ( net-analyzer/wireshark:= ) + virtiofsd? ( app-emulation/virtiofsd ) + wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= ) xen? ( - >=app-emulation/xen-4.6.0 + >=app-emulation/xen-4.9.0 app-emulation/xen-tools:= ) udev? ( - virtual/libudev + virtual/libudev:= >=x11-libs/libpciaccess-0.10.9 ) - zfs? ( sys-fs/zfs )" - -DEPEND="${BDEPEND} + zfs? ( sys-fs/zfs ) + kernel_linux? ( sys-apps/util-linux )" +DEPEND=" + ${BDEPEND} ${RDEPEND} - ${PYTHON_DEPS}" + ${PYTHON_DEPS} +" +# The 'circular' dependency on dev-python/libvirt-python is because of +# virt-qemu-qmp-proxy. +PDEPEND=" + qemu? ( dev-python/libvirt-python ) +" PATCHES=( - "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch - "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch - "${FILESDIR}"/${PN}-6.7.0-doc-path.patch - "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch + "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch ) pkg_setup() { @@ -171,9 +191,6 @@ pkg_setup() { kernel_is lt 4 7 && use lxc && CONFIG_CHECK+=" ~DEVPTS_MULTIPLE_INSTANCES" - use macvtap && CONFIG_CHECK+=" - ~MACVTAP" - use virt-network && CONFIG_CHECK+=" ~BRIDGE_EBT_MARK_T ~BRIDGE_NF_EBTABLES @@ -184,10 +201,21 @@ pkg_setup() { ~IP_NF_FILTER ~IP_NF_MANGLE ~IP_NF_NAT - ~IP_NF_TARGET_MASQUERADE ~IP6_NF_FILTER ~IP6_NF_MANGLE ~IP6_NF_NAT" + + # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6 + if use virt-network ; then + if kernel_is -lt 5 2 ; then + CONFIG_CHECK+=" + ~IP_NF_TARGET_MASQUERADE" + else + CONFIG_CHECK+=" + ~NETFILTER_XT_TARGET_MASQUERADE" + fi + fi + # Bandwidth Limiting Support use virt-network && CONFIG_CHECK+=" ~BRIDGE_EBT_T_NAT @@ -199,24 +227,25 @@ pkg_setup() { ~NET_SCH_INGRESS ~NET_SCH_SFQ" - # Handle specific kernel versions for different features - kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR" - if kernel_is ge 3 6; then - CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP " - kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM " - fi - ERROR_USER_NS="Optional depending on LXC configuration." if [[ -n ${CONFIG_CHECK} ]]; then linux-info_pkg_setup fi + + python-any-r1_pkg_setup } src_prepare() { touch "${S}/.mailmap" || die default + python_fix_shebang . + + # Skip fragile tests which relies on pristine environment + # (Breaks because of sandbox environment variables) + # bug #802876 + sed -i -e "/commandtest/d" tests/meson.build || die # Tweak the init script: cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die @@ -227,10 +256,9 @@ src_prepare() { src_configure() { local emesonargs=( $(meson_feature apparmor) - $(meson_use apparmor apparmor_profiles) + $(meson_feature apparmor apparmor_profiles) $(meson_feature audit) $(meson_feature caps capng) - $(meson_feature dbus) $(meson_feature dtrace) $(meson_feature firewalld) $(meson_feature fuse) @@ -240,10 +268,11 @@ src_configure() { $(meson_feature iscsi-direct storage_iscsi_direct) $(meson_feature libvirtd driver_libvirtd) $(meson_feature libssh) + $(meson_feature libssh2) $(meson_feature lvm storage_lvm) $(meson_feature lvm storage_mpath) $(meson_feature lxc driver_lxc) - $(meson_feature macvtap) + $(meson_feature nbd nbdkit) $(meson_feature nls) $(meson_feature numa numactl) $(meson_feature numa numad) @@ -256,17 +285,17 @@ src_configure() { $(meson_feature rbd storage_rbd) $(meson_feature sasl) $(meson_feature selinux) + $(meson_feature test tests) $(meson_feature udev) - $(meson_feature vepa virtualport) $(meson_feature virt-network driver_network) $(meson_feature virtualbox driver_vbox) $(meson_feature wireshark-plugins wireshark_dissector) $(meson_feature xen driver_libxl) $(meson_feature zfs storage_zfs) - -Dhal=disabled -Dnetcf=disabled -Dsanlock=disabled + -Dopenwsman=disabled -Ddriver_esx=enabled -Dinit_script=systemd @@ -277,40 +306,40 @@ src_configure() { -Ddriver_vmware=enabled --localstatedir="${EPREFIX}/var" + -Dinitconfdir="${EPREFIX}/etc/systemd" -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" ) meson_src_configure } src_test() { - # remove problematic tests, bug #591416, bug #591418 - sed -i -e 's#commandtest$(EXEEXT) # #' \ - -e 's#virfirewalltest$(EXEEXT) # #' \ - -e 's#nwfilterebiptablestest$(EXEEXT) # #' \ - -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \ - tests/Makefile - export VIR_TEST_DEBUG=1 - meson_src_test + # Don't run the syntax check tests, they're fragile and not relevant + # to us downstream anyway. + # We also crank up the timeout (as Fedora does) just to preempt failures + # on slower arches. + meson_src_test --no-suite syntax-check --timeout-multiplier 10 } src_install() { meson_src_install - # Remove bogus, empty directories. They are either not used, or - # libvirtd is able to create them on demand - rm -rf "${D}"/etc/sysconfig || die - rm -rf "${D}"/var || die - rm -rf "${D}"/run || die - - newbashcomp "${S}/tools/bash-completion/vsh" virsh - bashcomp_alias virsh virt-admin + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! - systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf + newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf newinitd "${S}/libvirtd.init" libvirtd newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests @@ -325,13 +354,6 @@ src_install() { readme.gentoo_create_doc } -pkg_preinst() { - # we only ever want to generate this once - if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then - rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml || die - fi -} - pkg_postinst() { if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die @@ -339,6 +361,6 @@ pkg_postinst() { use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! - + tmpfiles_process libvirtd.conf readme.gentoo_print_elog } diff --git a/app-emulation/libvirt/libvirt-6.8.0.ebuild b/app-emulation/libvirt/libvirt-10.2.0.ebuild index 0ac6ec64febf..f1c08714d713 100644 --- a/app-emulation/libvirt/libvirt-6.8.0.ebuild +++ b/app-emulation/libvirt/libvirt-10.2.0.ebuild @@ -1,88 +1,96 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{7,8,9} ) +# Packages which get releases together: +# app-emacs/nxml-libvirt-schemas +# dev-python/libvirt-python +# dev-perl/Sys-Virt +# app-emulation/libvirt +# Please bump them together! -inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd +PYTHON_COMPAT=( python3_{10..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc +inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig if [[ ${PV} = *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git" - SRC_URI="" - SLOT="0" + EGIT_BRANCH="master" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" - KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" - SLOT="0/${PV}" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" fi DESCRIPTION="C toolkit to manipulate virtual machines" -HOMEPAGE="https://www.libvirt.org/" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" LICENSE="LGPL-2.1" +SLOT="0/${PV}" IUSE=" - apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi - iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz - parted pcap policykit +qemu rbd sasl selinux +udev +vepa - virtualbox virt-network wireshark-plugins xen zfs + apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs + iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa + openvz parted pcap policykit +qemu rbd sasl selinux test +udev + virtiofsd virtualbox +virt-network wireshark-plugins xen zfs " +RESTRICT="!test? ( test )" REQUIRED_USE=" firewalld? ( virt-network ) libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) lxc? ( caps libvirtd ) openvz? ( libvirtd ) - policykit? ( dbus ) qemu? ( libvirtd ) - vepa? ( macvtap ) virt-network? ( libvirtd ) virtualbox? ( libvirtd ) xen? ( libvirtd )" BDEPEND=" - acct-user/qemu - policykit? ( acct-group/libvirt ) app-text/xhtml1 dev-lang/perl dev-libs/libxslt dev-perl/XML-XPath dev-python/docutils - virtual/pkgconfig" + virtual/pkgconfig + bash-completion? ( >=app-shells/bash-completion-2.0 ) + verify-sig? ( sec-keys/openpgp-keys-libvirt )" # gettext.sh command is used by the libvirt command wrappers, and it's # non-optional, so put it into RDEPEND. # We can use both libnl:1.1 and libnl:3, but if you have both installed, the # package will use 3 by default. Since we don't have slot pinning in an API, -# we must go with the most recent +# we must go with the most recent. RDEPEND=" + acct-user/qemu app-misc/scrub - >=dev-libs/glib-2.48.0 - dev-libs/libgcrypt:0 + >=dev-libs/glib-2.56.0 + dev-libs/libgcrypt dev-libs/libnl:3 - >=dev-libs/libxml2-2.7.6 + >=dev-libs/libxml2-2.9.1 >=net-analyzer/openbsd-netcat-1.105-r1 - >=net-libs/gnutls-1.0.25:0= - net-libs/libssh2 - net-libs/libtirpc - net-libs/rpcsvc-proto + >=net-libs/gnutls-3.2.0:= + net-libs/libtirpc:= >=net-misc/curl-7.18.0 + sys-apps/dbus sys-apps/dmidecode sys-devel/gettext - sys-libs/ncurses:0= - sys-libs/readline:= + >=sys-libs/readline-7.0:= + virtual/acl apparmor? ( sys-libs/libapparmor ) audit? ( sys-process/audit ) caps? ( sys-libs/libcap-ng ) - dbus? ( sys-apps/dbus ) - dtrace? ( dev-util/systemtap ) + dtrace? ( dev-debug/systemtap ) firewalld? ( >=net-firewall/firewalld-0.6.3 ) - fuse? ( sys-fs/fuse:0= ) + fuse? ( sys-fs/fuse:= ) glusterfs? ( >=sys-cluster/glusterfs-3.4.1 ) - iscsi? ( sys-block/open-iscsi ) + iscsi? ( >=sys-block/open-iscsi-1.18.0 ) iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) - libssh? ( net-libs/libssh ) - lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] ) + libssh? ( >=net-libs/libssh-0.8.1:= ) + libssh2? ( >=net-libs/libssh2-1.3 ) + lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) + nbd? ( sys-block/nbdkit ) nfs? ( net-fs/nfs-utils ) numa? ( >sys-process/numactl-2.0.2 @@ -90,44 +98,55 @@ RDEPEND=" ) parted? ( >=sys-block/parted-1.8[device-mapper] - sys-fs/lvm2[-device-mapper-only(-)] + sys-fs/lvm2[lvm] + ) + pcap? ( >=net-libs/libpcap-1.8.0 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 ) - pcap? ( >=net-libs/libpcap-1.0.0 ) - policykit? ( >=sys-auth/polkit-0.9 ) qemu? ( - >=app-emulation/qemu-1.5.0 - dev-libs/yajl + >=app-emulation/qemu-4.2 + app-crypt/swtpm + >=dev-libs/yajl-2.0.3:= ) rbd? ( sys-cluster/ceph ) - sasl? ( dev-libs/cyrus-sasl ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26 ) selinux? ( >=sys-libs/libselinux-2.0.85 ) virt-network? ( - net-dns/dnsmasq[script] + net-dns/dnsmasq[dhcp,ipv6(+),script] net-firewall/ebtables - >=net-firewall/iptables-1.4.10[ipv6] + >=net-firewall/iptables-1.4.10[ipv6(+)] net-misc/radvd sys-apps/iproute2[-minimal] ) - wireshark-plugins? ( net-analyzer/wireshark:= ) + virtiofsd? ( app-emulation/virtiofsd ) + wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= ) xen? ( - >=app-emulation/xen-4.6.0 + >=app-emulation/xen-4.9.0 app-emulation/xen-tools:= ) udev? ( - virtual/libudev + virtual/libudev:= >=x11-libs/libpciaccess-0.10.9 ) - zfs? ( sys-fs/zfs )" - -DEPEND="${BDEPEND} + zfs? ( sys-fs/zfs ) + kernel_linux? ( sys-apps/util-linux )" +DEPEND=" + ${BDEPEND} ${RDEPEND} - ${PYTHON_DEPS}" + ${PYTHON_DEPS} +" +# The 'circular' dependency on dev-python/libvirt-python is because of +# virt-qemu-qmp-proxy. +PDEPEND=" + qemu? ( dev-python/libvirt-python ) +" PATCHES=( - "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch - "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch - "${FILESDIR}"/${PN}-6.7.0-doc-path.patch - "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch + "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch ) pkg_setup() { @@ -171,9 +190,6 @@ pkg_setup() { kernel_is lt 4 7 && use lxc && CONFIG_CHECK+=" ~DEVPTS_MULTIPLE_INSTANCES" - use macvtap && CONFIG_CHECK+=" - ~MACVTAP" - use virt-network && CONFIG_CHECK+=" ~BRIDGE_EBT_MARK_T ~BRIDGE_NF_EBTABLES @@ -184,10 +200,21 @@ pkg_setup() { ~IP_NF_FILTER ~IP_NF_MANGLE ~IP_NF_NAT - ~IP_NF_TARGET_MASQUERADE ~IP6_NF_FILTER ~IP6_NF_MANGLE ~IP6_NF_NAT" + + # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6 + if use virt-network ; then + if kernel_is -lt 5 2 ; then + CONFIG_CHECK+=" + ~IP_NF_TARGET_MASQUERADE" + else + CONFIG_CHECK+=" + ~NETFILTER_XT_TARGET_MASQUERADE" + fi + fi + # Bandwidth Limiting Support use virt-network && CONFIG_CHECK+=" ~BRIDGE_EBT_T_NAT @@ -199,24 +226,25 @@ pkg_setup() { ~NET_SCH_INGRESS ~NET_SCH_SFQ" - # Handle specific kernel versions for different features - kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR" - if kernel_is ge 3 6; then - CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP " - kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM " - fi - ERROR_USER_NS="Optional depending on LXC configuration." if [[ -n ${CONFIG_CHECK} ]]; then linux-info_pkg_setup fi + + python-any-r1_pkg_setup } src_prepare() { touch "${S}/.mailmap" || die default + python_fix_shebang . + + # Skip fragile tests which relies on pristine environment + # (Breaks because of sandbox environment variables) + # bug #802876 + sed -i -e "/commandtest/d" tests/meson.build || die # Tweak the init script: cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die @@ -227,10 +255,9 @@ src_prepare() { src_configure() { local emesonargs=( $(meson_feature apparmor) - $(meson_use apparmor apparmor_profiles) + $(meson_feature apparmor apparmor_profiles) $(meson_feature audit) $(meson_feature caps capng) - $(meson_feature dbus) $(meson_feature dtrace) $(meson_feature firewalld) $(meson_feature fuse) @@ -240,10 +267,11 @@ src_configure() { $(meson_feature iscsi-direct storage_iscsi_direct) $(meson_feature libvirtd driver_libvirtd) $(meson_feature libssh) + $(meson_feature libssh2) $(meson_feature lvm storage_lvm) $(meson_feature lvm storage_mpath) $(meson_feature lxc driver_lxc) - $(meson_feature macvtap) + $(meson_feature nbd nbdkit) $(meson_feature nls) $(meson_feature numa numactl) $(meson_feature numa numad) @@ -256,17 +284,17 @@ src_configure() { $(meson_feature rbd storage_rbd) $(meson_feature sasl) $(meson_feature selinux) + $(meson_feature test tests) $(meson_feature udev) - $(meson_feature vepa virtualport) $(meson_feature virt-network driver_network) $(meson_feature virtualbox driver_vbox) $(meson_feature wireshark-plugins wireshark_dissector) $(meson_feature xen driver_libxl) $(meson_feature zfs storage_zfs) - -Dhal=disabled -Dnetcf=disabled -Dsanlock=disabled + -Dopenwsman=disabled -Ddriver_esx=enabled -Dinit_script=systemd @@ -277,40 +305,40 @@ src_configure() { -Ddriver_vmware=enabled --localstatedir="${EPREFIX}/var" + -Dinitconfdir="${EPREFIX}/etc/systemd" -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" ) meson_src_configure } src_test() { - # remove problematic tests, bug #591416, bug #591418 - sed -i -e 's#commandtest$(EXEEXT) # #' \ - -e 's#virfirewalltest$(EXEEXT) # #' \ - -e 's#nwfilterebiptablestest$(EXEEXT) # #' \ - -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \ - tests/Makefile - export VIR_TEST_DEBUG=1 - meson_src_test + # Don't run the syntax check tests, they're fragile and not relevant + # to us downstream anyway. + # We also crank up the timeout (as Fedora does) just to preempt failures + # on slower arches. + meson_src_test --no-suite syntax-check --timeout-multiplier 10 } src_install() { meson_src_install - # Remove bogus, empty directories. They are either not used, or - # libvirtd is able to create them on demand - rm -rf "${D}"/etc/sysconfig || die - rm -rf "${D}"/var || die - rm -rf "${D}"/run || die - - newbashcomp "${S}/tools/bash-completion/vsh" virsh - bashcomp_alias virsh virt-admin + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! - systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf + newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf newinitd "${S}/libvirtd.init" libvirtd newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests @@ -325,13 +353,6 @@ src_install() { readme.gentoo_create_doc } -pkg_preinst() { - # we only ever want to generate this once - if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then - rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml || die - fi -} - pkg_postinst() { if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die @@ -339,6 +360,6 @@ pkg_postinst() { use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! - + tmpfiles_process libvirtd.conf readme.gentoo_print_elog } diff --git a/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild b/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild new file mode 100644 index 000000000000..500ab7f572ad --- /dev/null +++ b/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild @@ -0,0 +1,366 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Packages which get releases together: +# app-emacs/nxml-libvirt-schemas +# dev-python/libvirt-python +# dev-perl/Sys-Virt +# app-emulation/libvirt +# Please bump them together! + +PYTHON_COMPAT=( python3_{10..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc +inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git" + EGIT_BRANCH="master" +else + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="amd64 ~arm arm64 ppc64 x86" +fi + +DESCRIPTION="C toolkit to manipulate virtual machines" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" +LICENSE="LGPL-2.1" +SLOT="0/${PV}" +IUSE=" + apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs + iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nfs nls numa openvz + parted pcap policykit +qemu rbd sasl selinux test +udev + virtualbox +virt-network wireshark-plugins xen zfs +" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + firewalld? ( virt-network ) + libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) + lxc? ( caps libvirtd ) + openvz? ( libvirtd ) + qemu? ( libvirtd ) + virt-network? ( libvirtd ) + virtualbox? ( libvirtd ) + xen? ( libvirtd )" + +BDEPEND=" + app-text/xhtml1 + dev-lang/perl + dev-libs/libxslt + dev-perl/XML-XPath + dev-python/docutils + virtual/pkgconfig + net-libs/rpcsvc-proto + bash-completion? ( >=app-shells/bash-completion-2.0 ) + verify-sig? ( sec-keys/openpgp-keys-libvirt )" + +# gettext.sh command is used by the libvirt command wrappers, and it's +# non-optional, so put it into RDEPEND. +# We can use both libnl:1.1 and libnl:3, but if you have both installed, the +# package will use 3 by default. Since we don't have slot pinning in an API, +# we must go with the most recent. +RDEPEND=" + acct-user/qemu + app-misc/scrub + >=dev-libs/glib-2.56.0 + dev-libs/libgcrypt + dev-libs/libnl:3 + >=dev-libs/libxml2-2.9.1 + >=net-analyzer/openbsd-netcat-1.105-r1 + >=net-libs/gnutls-3.2.0:= + net-libs/libtirpc:= + >=net-misc/curl-7.18.0 + sys-apps/dbus + sys-apps/dmidecode + sys-devel/gettext + >=sys-libs/readline-7.0:= + virtual/acl + apparmor? ( sys-libs/libapparmor ) + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap-ng ) + dtrace? ( dev-debug/systemtap ) + firewalld? ( >=net-firewall/firewalld-0.6.3 ) + fuse? ( sys-fs/fuse:= ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.1 ) + iscsi? ( >=sys-block/open-iscsi-1.18.0 ) + iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) + libssh? ( >=net-libs/libssh-0.8.1:= ) + libssh2? ( >=net-libs/libssh2-1.3 ) + lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) + nfs? ( net-fs/nfs-utils ) + numa? ( + >sys-process/numactl-2.0.2 + sys-process/numad + ) + parted? ( + >=sys-block/parted-1.8[device-mapper] + sys-fs/lvm2[lvm] + ) + pcap? ( >=net-libs/libpcap-1.8.0 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 + ) + qemu? ( + >=app-emulation/qemu-4.2 + app-crypt/swtpm + >=dev-libs/yajl-2.0.3:= + ) + rbd? ( sys-cluster/ceph ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26 ) + selinux? ( >=sys-libs/libselinux-2.0.85 ) + virt-network? ( + net-dns/dnsmasq[dhcp,ipv6(+),script] + net-firewall/ebtables + >=net-firewall/iptables-1.4.10[ipv6(+)] + net-misc/radvd + sys-apps/iproute2[-minimal] + ) + wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= ) + xen? ( + >=app-emulation/xen-4.9.0 + app-emulation/xen-tools:= + ) + udev? ( + virtual/libudev:= + >=x11-libs/libpciaccess-0.10.9 + ) + zfs? ( sys-fs/zfs ) + kernel_linux? ( sys-apps/util-linux )" +DEPEND=" + ${BDEPEND} + ${RDEPEND} + ${PYTHON_DEPS} +" +# The 'circular' dependency on dev-python/libvirt-python is because of +# virt-qemu-qmp-proxy. +PDEPEND=" + qemu? ( dev-python/libvirt-python ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.4.0-do-not-use-sysconfig.patch + "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch + "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch + "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch +) + +pkg_setup() { + # Check kernel configuration: + CONFIG_CHECK="" + use fuse && CONFIG_CHECK+=" + ~FUSE_FS" + + use lvm && CONFIG_CHECK+=" + ~BLK_DEV_DM + ~DM_MULTIPATH + ~DM_SNAPSHOT" + + use lxc && CONFIG_CHECK+=" + ~BLK_CGROUP + ~CGROUP_CPUACCT + ~CGROUP_DEVICE + ~CGROUP_FREEZER + ~CGROUP_NET_PRIO + ~CGROUP_PERF + ~CGROUPS + ~CGROUP_SCHED + ~CPUSETS + ~IPC_NS + ~MACVLAN + ~NAMESPACES + ~NET_CLS_CGROUP + ~NET_NS + ~PID_NS + ~POSIX_MQUEUE + ~SECURITYFS + ~USER_NS + ~UTS_NS + ~VETH + ~!GRKERNSEC_CHROOT_MOUNT + ~!GRKERNSEC_CHROOT_DOUBLE + ~!GRKERNSEC_CHROOT_PIVOT + ~!GRKERNSEC_CHROOT_CHMOD + ~!GRKERNSEC_CHROOT_CAPS" + + kernel_is lt 4 7 && use lxc && CONFIG_CHECK+=" + ~DEVPTS_MULTIPLE_INSTANCES" + + use virt-network && CONFIG_CHECK+=" + ~BRIDGE_EBT_MARK_T + ~BRIDGE_NF_EBTABLES + ~NETFILTER_ADVANCED + ~NETFILTER_XT_CONNMARK + ~NETFILTER_XT_MARK + ~NETFILTER_XT_TARGET_CHECKSUM + ~IP_NF_FILTER + ~IP_NF_MANGLE + ~IP_NF_NAT + ~IP6_NF_FILTER + ~IP6_NF_MANGLE + ~IP6_NF_NAT" + + # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6 + if use virt-network ; then + if kernel_is -lt 5 2 ; then + CONFIG_CHECK+=" + ~IP_NF_TARGET_MASQUERADE" + else + CONFIG_CHECK+=" + ~NETFILTER_XT_TARGET_MASQUERADE" + fi + fi + + # Bandwidth Limiting Support + use virt-network && CONFIG_CHECK+=" + ~BRIDGE_EBT_T_NAT + ~IP_NF_TARGET_REJECT + ~NET_ACT_POLICE + ~NET_CLS_FW + ~NET_CLS_U32 + ~NET_SCH_HTB + ~NET_SCH_INGRESS + ~NET_SCH_SFQ" + + ERROR_USER_NS="Optional depending on LXC configuration." + + if [[ -n ${CONFIG_CHECK} ]]; then + linux-info_pkg_setup + fi + + python-any-r1_pkg_setup +} + +src_prepare() { + touch "${S}/.mailmap" || die + + default + python_fix_shebang . + + # Skip fragile tests which relies on pristine environment + # (Breaks because of sandbox environment variables) + # bug #802876 + sed -i -e "/commandtest/d" tests/meson.build || die + + # Tweak the init script: + cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die + sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \ + -i "${S}/libvirtd.init" || die "sed failed" +} + +src_configure() { + local emesonargs=( + $(meson_feature apparmor) + $(meson_feature apparmor apparmor_profiles) + $(meson_feature audit) + $(meson_feature caps capng) + $(meson_feature dtrace) + $(meson_feature firewalld) + $(meson_feature fuse) + $(meson_feature glusterfs) + $(meson_feature glusterfs storage_gluster) + $(meson_feature iscsi storage_iscsi) + $(meson_feature iscsi-direct storage_iscsi_direct) + $(meson_feature libvirtd driver_libvirtd) + $(meson_feature libssh) + $(meson_feature libssh2) + $(meson_feature lvm storage_lvm) + $(meson_feature lvm storage_mpath) + $(meson_feature lxc driver_lxc) + $(meson_feature nls) + $(meson_feature numa numactl) + $(meson_feature numa numad) + $(meson_feature openvz driver_openvz) + $(meson_feature parted storage_disk) + $(meson_feature pcap libpcap) + $(meson_feature policykit polkit) + $(meson_feature qemu driver_qemu) + $(meson_feature qemu yajl) + $(meson_feature rbd storage_rbd) + $(meson_feature sasl) + $(meson_feature selinux) + $(meson_feature test tests) + $(meson_feature udev) + $(meson_feature virt-network driver_network) + $(meson_feature virtualbox driver_vbox) + $(meson_feature wireshark-plugins wireshark_dissector) + $(meson_feature xen driver_libxl) + $(meson_feature zfs storage_zfs) + + -Dnetcf=disabled + -Dsanlock=disabled + -Dopenwsman=disabled + + -Ddriver_esx=enabled + -Dinit_script=systemd + -Dqemu_user=$(usex caps qemu root) + -Dqemu_group=$(usex caps qemu root) + -Ddriver_remote=enabled + -Dstorage_fs=enabled + -Ddriver_vmware=enabled + + --localstatedir="${EPREFIX}/var" + -Dinitconfdir="${EPREFIX}/etc/systemd" + -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + ) + + meson_src_configure +} + +src_test() { + export VIR_TEST_DEBUG=1 + # Don't run the syntax check tests, they're fragile and not relevant + # to us downstream anyway. + # We also crank up the timeout (as Fedora does) just to preempt failures + # on slower arches. + meson_src_test --no-suite syntax-check --timeout-multiplier 10 +} + +src_install() { + meson_src_install + + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run + + use libvirtd || return 0 + # From here, only libvirtd-related instructions, be warned! + + newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf + + newinitd "${S}/libvirtd.init" libvirtd + newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests + newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd + newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd + + newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd + newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests + + DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3") + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +pkg_postinst() { + if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then + touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die + fi + + use libvirtd || return 0 + # From here, only libvirtd-related instructions, be warned! + tmpfiles_process libvirtd.conf + readme.gentoo_print_elog +} diff --git a/app-emulation/libvirt/libvirt-9.9.0-r2.ebuild b/app-emulation/libvirt/libvirt-9.9.0-r2.ebuild new file mode 100644 index 000000000000..684c0dc7afe2 --- /dev/null +++ b/app-emulation/libvirt/libvirt-9.9.0-r2.ebuild @@ -0,0 +1,367 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Packages which get releases together: +# app-emacs/nxml-libvirt-schemas +# dev-python/libvirt-python +# dev-perl/Sys-Virt +# app-emulation/libvirt +# Please bump them together! + +PYTHON_COMPAT=( python3_{10..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc +inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git" + EGIT_BRANCH="master" +else + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" +fi + +DESCRIPTION="C toolkit to manipulate virtual machines" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" +LICENSE="LGPL-2.1" +SLOT="0/${PV}" +IUSE=" + apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs + iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nfs nls numa openvz + parted pcap policykit +qemu rbd sasl selinux test +udev virtiofsd + virtualbox +virt-network wireshark-plugins xen zfs +" +RESTRICT="!test? ( test )" + +REQUIRED_USE=" + firewalld? ( virt-network ) + libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) + lxc? ( caps libvirtd ) + openvz? ( libvirtd ) + qemu? ( libvirtd ) + virt-network? ( libvirtd ) + virtualbox? ( libvirtd ) + xen? ( libvirtd )" + +BDEPEND=" + app-text/xhtml1 + dev-lang/perl + dev-libs/libxslt + dev-perl/XML-XPath + dev-python/docutils + virtual/pkgconfig + net-libs/rpcsvc-proto + bash-completion? ( >=app-shells/bash-completion-2.0 ) + verify-sig? ( sec-keys/openpgp-keys-libvirt )" + +# gettext.sh command is used by the libvirt command wrappers, and it's +# non-optional, so put it into RDEPEND. +# We can use both libnl:1.1 and libnl:3, but if you have both installed, the +# package will use 3 by default. Since we don't have slot pinning in an API, +# we must go with the most recent. +RDEPEND=" + acct-user/qemu + app-misc/scrub + >=dev-libs/glib-2.56.0 + dev-libs/libgcrypt + dev-libs/libnl:3 + >=dev-libs/libxml2-2.9.1 + >=net-analyzer/openbsd-netcat-1.105-r1 + >=net-libs/gnutls-3.2.0:= + net-libs/libtirpc:= + >=net-misc/curl-7.18.0 + sys-apps/dbus + sys-apps/dmidecode + sys-devel/gettext + >=sys-libs/readline-7.0:= + virtual/acl + apparmor? ( sys-libs/libapparmor ) + audit? ( sys-process/audit ) + caps? ( sys-libs/libcap-ng ) + dtrace? ( dev-debug/systemtap ) + firewalld? ( >=net-firewall/firewalld-0.6.3 ) + fuse? ( sys-fs/fuse:= ) + glusterfs? ( >=sys-cluster/glusterfs-3.4.1 ) + iscsi? ( >=sys-block/open-iscsi-1.18.0 ) + iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) + libssh? ( >=net-libs/libssh-0.8.1:= ) + libssh2? ( >=net-libs/libssh2-1.3 ) + lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) + nfs? ( net-fs/nfs-utils ) + numa? ( + >sys-process/numactl-2.0.2 + sys-process/numad + ) + parted? ( + >=sys-block/parted-1.8[device-mapper] + sys-fs/lvm2[lvm] + ) + pcap? ( >=net-libs/libpcap-1.8.0 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 + ) + qemu? ( + >=app-emulation/qemu-4.2 + app-crypt/swtpm + >=dev-libs/yajl-2.0.3:= + ) + rbd? ( sys-cluster/ceph ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26 ) + selinux? ( >=sys-libs/libselinux-2.0.85 ) + virt-network? ( + net-dns/dnsmasq[dhcp,ipv6(+),script] + net-firewall/ebtables + >=net-firewall/iptables-1.4.10[ipv6(+)] + net-misc/radvd + sys-apps/iproute2[-minimal] + ) + virtiofsd? ( app-emulation/virtiofsd ) + wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= ) + xen? ( + >=app-emulation/xen-4.9.0 + app-emulation/xen-tools:= + ) + udev? ( + virtual/libudev:= + >=x11-libs/libpciaccess-0.10.9 + ) + zfs? ( sys-fs/zfs ) + kernel_linux? ( sys-apps/util-linux )" +DEPEND=" + ${BDEPEND} + ${RDEPEND} + ${PYTHON_DEPS} +" +# The 'circular' dependency on dev-python/libvirt-python is because of +# virt-qemu-qmp-proxy. +PDEPEND=" + qemu? ( dev-python/libvirt-python ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch + "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch + "${FILESDIR}"/${PN}-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch + "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch + "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch +) + +pkg_setup() { + # Check kernel configuration: + CONFIG_CHECK="" + use fuse && CONFIG_CHECK+=" + ~FUSE_FS" + + use lvm && CONFIG_CHECK+=" + ~BLK_DEV_DM + ~DM_MULTIPATH + ~DM_SNAPSHOT" + + use lxc && CONFIG_CHECK+=" + ~BLK_CGROUP + ~CGROUP_CPUACCT + ~CGROUP_DEVICE + ~CGROUP_FREEZER + ~CGROUP_NET_PRIO + ~CGROUP_PERF + ~CGROUPS + ~CGROUP_SCHED + ~CPUSETS + ~IPC_NS + ~MACVLAN + ~NAMESPACES + ~NET_CLS_CGROUP + ~NET_NS + ~PID_NS + ~POSIX_MQUEUE + ~SECURITYFS + ~USER_NS + ~UTS_NS + ~VETH + ~!GRKERNSEC_CHROOT_MOUNT + ~!GRKERNSEC_CHROOT_DOUBLE + ~!GRKERNSEC_CHROOT_PIVOT + ~!GRKERNSEC_CHROOT_CHMOD + ~!GRKERNSEC_CHROOT_CAPS" + + kernel_is lt 4 7 && use lxc && CONFIG_CHECK+=" + ~DEVPTS_MULTIPLE_INSTANCES" + + use virt-network && CONFIG_CHECK+=" + ~BRIDGE_EBT_MARK_T + ~BRIDGE_NF_EBTABLES + ~NETFILTER_ADVANCED + ~NETFILTER_XT_CONNMARK + ~NETFILTER_XT_MARK + ~NETFILTER_XT_TARGET_CHECKSUM + ~IP_NF_FILTER + ~IP_NF_MANGLE + ~IP_NF_NAT + ~IP6_NF_FILTER + ~IP6_NF_MANGLE + ~IP6_NF_NAT" + + # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6 + if use virt-network ; then + if kernel_is -lt 5 2 ; then + CONFIG_CHECK+=" + ~IP_NF_TARGET_MASQUERADE" + else + CONFIG_CHECK+=" + ~NETFILTER_XT_TARGET_MASQUERADE" + fi + fi + + # Bandwidth Limiting Support + use virt-network && CONFIG_CHECK+=" + ~BRIDGE_EBT_T_NAT + ~IP_NF_TARGET_REJECT + ~NET_ACT_POLICE + ~NET_CLS_FW + ~NET_CLS_U32 + ~NET_SCH_HTB + ~NET_SCH_INGRESS + ~NET_SCH_SFQ" + + ERROR_USER_NS="Optional depending on LXC configuration." + + if [[ -n ${CONFIG_CHECK} ]]; then + linux-info_pkg_setup + fi + + python-any-r1_pkg_setup +} + +src_prepare() { + touch "${S}/.mailmap" || die + + default + python_fix_shebang . + + # Skip fragile tests which relies on pristine environment + # (Breaks because of sandbox environment variables) + # bug #802876 + sed -i -e "/commandtest/d" tests/meson.build || die + + # Tweak the init script: + cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die + sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \ + -i "${S}/libvirtd.init" || die "sed failed" +} + +src_configure() { + local emesonargs=( + $(meson_feature apparmor) + $(meson_feature apparmor apparmor_profiles) + $(meson_feature audit) + $(meson_feature caps capng) + $(meson_feature dtrace) + $(meson_feature firewalld) + $(meson_feature fuse) + $(meson_feature glusterfs) + $(meson_feature glusterfs storage_gluster) + $(meson_feature iscsi storage_iscsi) + $(meson_feature iscsi-direct storage_iscsi_direct) + $(meson_feature libvirtd driver_libvirtd) + $(meson_feature libssh) + $(meson_feature libssh2) + $(meson_feature lvm storage_lvm) + $(meson_feature lvm storage_mpath) + $(meson_feature lxc driver_lxc) + $(meson_feature nls) + $(meson_feature numa numactl) + $(meson_feature numa numad) + $(meson_feature openvz driver_openvz) + $(meson_feature parted storage_disk) + $(meson_feature pcap libpcap) + $(meson_feature policykit polkit) + $(meson_feature qemu driver_qemu) + $(meson_feature qemu yajl) + $(meson_feature rbd storage_rbd) + $(meson_feature sasl) + $(meson_feature selinux) + $(meson_feature test tests) + $(meson_feature udev) + $(meson_feature virt-network driver_network) + $(meson_feature virtualbox driver_vbox) + $(meson_feature wireshark-plugins wireshark_dissector) + $(meson_feature xen driver_libxl) + $(meson_feature zfs storage_zfs) + + -Dnetcf=disabled + -Dsanlock=disabled + -Dopenwsman=disabled + + -Ddriver_esx=enabled + -Dinit_script=systemd + -Dqemu_user=$(usex caps qemu root) + -Dqemu_group=$(usex caps qemu root) + -Ddriver_remote=enabled + -Dstorage_fs=enabled + -Ddriver_vmware=enabled + + --localstatedir="${EPREFIX}/var" + -Dinitconfdir="${EPREFIX}/etc/systemd" + -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" + ) + + meson_src_configure +} + +src_test() { + export VIR_TEST_DEBUG=1 + # Don't run the syntax check tests, they're fragile and not relevant + # to us downstream anyway. + # We also crank up the timeout (as Fedora does) just to preempt failures + # on slower arches. + meson_src_test --no-suite syntax-check --timeout-multiplier 10 +} + +src_install() { + meson_src_install + + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run + + use libvirtd || return 0 + # From here, only libvirtd-related instructions, be warned! + + newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf + + newinitd "${S}/libvirtd.init" libvirtd + newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests + newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd + newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd + + newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd + newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests + + DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3") + DISABLE_AUTOFORMATTING=true + readme.gentoo_create_doc +} + +pkg_postinst() { + if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then + touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die + fi + + use libvirtd || return 0 + # From here, only libvirtd-related instructions, be warned! + tmpfiles_process libvirtd.conf + readme.gentoo_print_elog +} diff --git a/app-emulation/libvirt/libvirt-9999.ebuild b/app-emulation/libvirt/libvirt-9999.ebuild index de48572e6c52..f1c08714d713 100644 --- a/app-emulation/libvirt/libvirt-9999.ebuild +++ b/app-emulation/libvirt/libvirt-9999.ebuild @@ -1,88 +1,96 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{7,8,9} ) +# Packages which get releases together: +# app-emacs/nxml-libvirt-schemas +# dev-python/libvirt-python +# dev-perl/Sys-Virt +# app-emulation/libvirt +# Please bump them together! -inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd +PYTHON_COMPAT=( python3_{10..12} ) +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc +inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig if [[ ${PV} = *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git" - SRC_URI="" - SLOT="0" + EGIT_BRANCH="master" else - SRC_URI="https://libvirt.org/sources/${P}.tar.xz" - KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" - SLOT="0/${PV}" + SRC_URI="https://libvirt.org/sources/${P}.tar.xz + verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" fi DESCRIPTION="C toolkit to manipulate virtual machines" -HOMEPAGE="https://www.libvirt.org/" +HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/" LICENSE="LGPL-2.1" +SLOT="0/${PV}" IUSE=" - apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi - iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz - parted pcap policykit +qemu rbd sasl selinux +udev +vepa - virtualbox virt-network wireshark-plugins xen zfs + apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs + iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa + openvz parted pcap policykit +qemu rbd sasl selinux test +udev + virtiofsd virtualbox +virt-network wireshark-plugins xen zfs " +RESTRICT="!test? ( test )" REQUIRED_USE=" firewalld? ( virt-network ) libvirtd? ( || ( lxc openvz qemu virtualbox xen ) ) lxc? ( caps libvirtd ) openvz? ( libvirtd ) - policykit? ( dbus ) qemu? ( libvirtd ) - vepa? ( macvtap ) virt-network? ( libvirtd ) virtualbox? ( libvirtd ) xen? ( libvirtd )" BDEPEND=" - acct-user/qemu - policykit? ( acct-group/libvirt ) app-text/xhtml1 dev-lang/perl dev-libs/libxslt dev-perl/XML-XPath dev-python/docutils - virtual/pkgconfig" + virtual/pkgconfig + bash-completion? ( >=app-shells/bash-completion-2.0 ) + verify-sig? ( sec-keys/openpgp-keys-libvirt )" # gettext.sh command is used by the libvirt command wrappers, and it's # non-optional, so put it into RDEPEND. # We can use both libnl:1.1 and libnl:3, but if you have both installed, the # package will use 3 by default. Since we don't have slot pinning in an API, -# we must go with the most recent +# we must go with the most recent. RDEPEND=" + acct-user/qemu app-misc/scrub - >=dev-libs/glib-2.48.0 - dev-libs/libgcrypt:0 + >=dev-libs/glib-2.56.0 + dev-libs/libgcrypt dev-libs/libnl:3 - >=dev-libs/libxml2-2.7.6 + >=dev-libs/libxml2-2.9.1 >=net-analyzer/openbsd-netcat-1.105-r1 - >=net-libs/gnutls-1.0.25:0= - net-libs/libssh2 - net-libs/libtirpc - net-libs/rpcsvc-proto + >=net-libs/gnutls-3.2.0:= + net-libs/libtirpc:= >=net-misc/curl-7.18.0 + sys-apps/dbus sys-apps/dmidecode sys-devel/gettext - sys-libs/ncurses:0= - sys-libs/readline:= + >=sys-libs/readline-7.0:= + virtual/acl apparmor? ( sys-libs/libapparmor ) audit? ( sys-process/audit ) caps? ( sys-libs/libcap-ng ) - dbus? ( sys-apps/dbus ) - dtrace? ( dev-util/systemtap ) + dtrace? ( dev-debug/systemtap ) firewalld? ( >=net-firewall/firewalld-0.6.3 ) - fuse? ( sys-fs/fuse:0= ) + fuse? ( sys-fs/fuse:= ) glusterfs? ( >=sys-cluster/glusterfs-3.4.1 ) - iscsi? ( sys-block/open-iscsi ) + iscsi? ( >=sys-block/open-iscsi-1.18.0 ) iscsi-direct? ( >=net-libs/libiscsi-1.18.0 ) - libssh? ( net-libs/libssh ) - lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] ) + libssh? ( >=net-libs/libssh-0.8.1:= ) + libssh2? ( >=net-libs/libssh2-1.3 ) + lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] ) + lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] ) + nbd? ( sys-block/nbdkit ) nfs? ( net-fs/nfs-utils ) numa? ( >sys-process/numactl-2.0.2 @@ -90,41 +98,55 @@ RDEPEND=" ) parted? ( >=sys-block/parted-1.8[device-mapper] - sys-fs/lvm2[-device-mapper-only(-)] + sys-fs/lvm2[lvm] + ) + pcap? ( >=net-libs/libpcap-1.8.0 ) + policykit? ( + acct-group/libvirt + >=sys-auth/polkit-0.9 ) - pcap? ( >=net-libs/libpcap-1.0.0 ) - policykit? ( >=sys-auth/polkit-0.9 ) qemu? ( - >=app-emulation/qemu-1.5.0 - dev-libs/yajl + >=app-emulation/qemu-4.2 + app-crypt/swtpm + >=dev-libs/yajl-2.0.3:= ) rbd? ( sys-cluster/ceph ) - sasl? ( dev-libs/cyrus-sasl ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26 ) selinux? ( >=sys-libs/libselinux-2.0.85 ) virt-network? ( - net-dns/dnsmasq[script] + net-dns/dnsmasq[dhcp,ipv6(+),script] net-firewall/ebtables - >=net-firewall/iptables-1.4.10[ipv6] + >=net-firewall/iptables-1.4.10[ipv6(+)] net-misc/radvd sys-apps/iproute2[-minimal] ) - wireshark-plugins? ( net-analyzer/wireshark:= ) + virtiofsd? ( app-emulation/virtiofsd ) + wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= ) xen? ( - >=app-emulation/xen-4.6.0 + >=app-emulation/xen-4.9.0 app-emulation/xen-tools:= ) udev? ( - virtual/libudev + virtual/libudev:= >=x11-libs/libpciaccess-0.10.9 ) - zfs? ( sys-fs/zfs )" - -DEPEND="${BDEPEND} + zfs? ( sys-fs/zfs ) + kernel_linux? ( sys-apps/util-linux )" +DEPEND=" + ${BDEPEND} ${RDEPEND} - ${PYTHON_DEPS}" + ${PYTHON_DEPS} +" +# The 'circular' dependency on dev-python/libvirt-python is because of +# virt-qemu-qmp-proxy. +PDEPEND=" + qemu? ( dev-python/libvirt-python ) +" PATCHES=( - "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch + "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch + "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch ) pkg_setup() { @@ -168,9 +190,6 @@ pkg_setup() { kernel_is lt 4 7 && use lxc && CONFIG_CHECK+=" ~DEVPTS_MULTIPLE_INSTANCES" - use macvtap && CONFIG_CHECK+=" - ~MACVTAP" - use virt-network && CONFIG_CHECK+=" ~BRIDGE_EBT_MARK_T ~BRIDGE_NF_EBTABLES @@ -181,10 +200,21 @@ pkg_setup() { ~IP_NF_FILTER ~IP_NF_MANGLE ~IP_NF_NAT - ~IP_NF_TARGET_MASQUERADE ~IP6_NF_FILTER ~IP6_NF_MANGLE ~IP6_NF_NAT" + + # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6 + if use virt-network ; then + if kernel_is -lt 5 2 ; then + CONFIG_CHECK+=" + ~IP_NF_TARGET_MASQUERADE" + else + CONFIG_CHECK+=" + ~NETFILTER_XT_TARGET_MASQUERADE" + fi + fi + # Bandwidth Limiting Support use virt-network && CONFIG_CHECK+=" ~BRIDGE_EBT_T_NAT @@ -196,24 +226,25 @@ pkg_setup() { ~NET_SCH_INGRESS ~NET_SCH_SFQ" - # Handle specific kernel versions for different features - kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR" - if kernel_is ge 3 6; then - CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP " - kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM " - fi - ERROR_USER_NS="Optional depending on LXC configuration." if [[ -n ${CONFIG_CHECK} ]]; then linux-info_pkg_setup fi + + python-any-r1_pkg_setup } src_prepare() { touch "${S}/.mailmap" || die default + python_fix_shebang . + + # Skip fragile tests which relies on pristine environment + # (Breaks because of sandbox environment variables) + # bug #802876 + sed -i -e "/commandtest/d" tests/meson.build || die # Tweak the init script: cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die @@ -224,10 +255,9 @@ src_prepare() { src_configure() { local emesonargs=( $(meson_feature apparmor) - $(meson_use apparmor apparmor_profiles) + $(meson_feature apparmor apparmor_profiles) $(meson_feature audit) $(meson_feature caps capng) - $(meson_feature dbus) $(meson_feature dtrace) $(meson_feature firewalld) $(meson_feature fuse) @@ -237,10 +267,11 @@ src_configure() { $(meson_feature iscsi-direct storage_iscsi_direct) $(meson_feature libvirtd driver_libvirtd) $(meson_feature libssh) + $(meson_feature libssh2) $(meson_feature lvm storage_lvm) $(meson_feature lvm storage_mpath) $(meson_feature lxc driver_lxc) - $(meson_feature macvtap) + $(meson_feature nbd nbdkit) $(meson_feature nls) $(meson_feature numa numactl) $(meson_feature numa numad) @@ -253,17 +284,17 @@ src_configure() { $(meson_feature rbd storage_rbd) $(meson_feature sasl) $(meson_feature selinux) + $(meson_feature test tests) $(meson_feature udev) - $(meson_feature vepa virtualport) $(meson_feature virt-network driver_network) $(meson_feature virtualbox driver_vbox) $(meson_feature wireshark-plugins wireshark_dissector) $(meson_feature xen driver_libxl) $(meson_feature zfs storage_zfs) - -Dhal=disabled -Dnetcf=disabled -Dsanlock=disabled + -Dopenwsman=disabled -Ddriver_esx=enabled -Dinit_script=systemd @@ -274,40 +305,40 @@ src_configure() { -Ddriver_vmware=enabled --localstatedir="${EPREFIX}/var" + -Dinitconfdir="${EPREFIX}/etc/systemd" -Drunstatedir="${EPREFIX}/run" + -Ddocdir="${EPREFIX}/usr/share/doc/${PF}" ) meson_src_configure } src_test() { - # remove problematic tests, bug #591416, bug #591418 - sed -i -e 's#commandtest$(EXEEXT) # #' \ - -e 's#virfirewalltest$(EXEEXT) # #' \ - -e 's#nwfilterebiptablestest$(EXEEXT) # #' \ - -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \ - tests/Makefile - export VIR_TEST_DEBUG=1 - meson_src_test + # Don't run the syntax check tests, they're fragile and not relevant + # to us downstream anyway. + # We also crank up the timeout (as Fedora does) just to preempt failures + # on slower arches. + meson_src_test --no-suite syntax-check --timeout-multiplier 10 } src_install() { meson_src_install - # Remove bogus, empty directories. They are either not used, or - # libvirtd is able to create them on demand - rm -rf "${D}"/etc/sysconfig || die - rm -rf "${D}"/var || die - rm -rf "${D}"/run || die - - newbashcomp "${S}/tools/bash-completion/vsh" virsh - bashcomp_alias virsh virt-admin + # Depending on configuration option, libvirt will create some bogus + # directoreis. They are either not used, or libvirtd is able to create + # them on demand, so let's remove them. + # + # Note, we are using -f here so that rm does not fail or warn if the + # directory is nonexistent. + rm -rf "${D}"/etc/sysconfig + rm -rf "${D}"/var + rm -rf "${D}"/run use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! - systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf + newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf newinitd "${S}/libvirtd.init" libvirtd newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests @@ -322,13 +353,6 @@ src_install() { readme.gentoo_create_doc } -pkg_preinst() { - # we only ever want to generate this once - if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then - rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml || die - fi -} - pkg_postinst() { if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die @@ -336,6 +360,6 @@ pkg_postinst() { use libvirtd || return 0 # From here, only libvirtd-related instructions, be warned! - + tmpfiles_process libvirtd.conf readme.gentoo_print_elog } diff --git a/app-emulation/libvirt/metadata.xml b/app-emulation/libvirt/metadata.xml index 5151b9df4986..16610185fea3 100644 --- a/app-emulation/libvirt/metadata.xml +++ b/app-emulation/libvirt/metadata.xml @@ -1,97 +1,106 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> - <email>tamiko@gentoo.org</email> - <name>Matthias Maier</name> -</maintainer> -<maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> -</maintainer> -<use> - <!-- Pool backend flags --> - <flag name="iscsi-direct"> - Allow using libiscsi for iSCSI storage pool backend - </flag> - <flag name="iscsi"> - Allow using an iSCSI remote storage server as pool for disk image storage - </flag> - <flag name="lvm"> - Allow using the Logical Volume Manager (<pkg>sys-fs/lvm2</pkg>) as pool for disk image - storage - </flag> - <flag name="nfs"> - Allow using Network File System mounts as pool for disk image storage - </flag> - <flag name="parted"> - Allow using real disk partitions as pool for disk image storage, using - <pkg>sys-block/parted</pkg> to create, resize and delete them. - </flag> - <flag name="rbd"> - Enable rados block device support via <pkg>sys-cluster/ceph</pkg> - </flag> - <!-- Virtualisation backends --> - <flag name="lxc"> - Support management of Linux Containers virtualisation (<pkg>app-emulation/lxc</pkg>) - </flag> - <flag name="openvz"> - Support management of OpenVZ virtualisation (openvz-sources) - </flag> - <flag name="qemu"> - Support management of QEMU virtualisation (<pkg>app-emulation/qemu</pkg>) - </flag> - <flag name="xen"> - Support management of Xen virtualisation (<pkg>app-emulation/xen</pkg>) - </flag> - <flag name="virtualbox"> - Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>) - </flag> - <!-- Miscellaneous flags --> - <flag name="apparmor">Enable AppArmor support</flag> - <flag name="dtrace">Enable dtrace support via <pkg>dev-util/systemtap</pkg></flag> - <flag name="fuse">Allow LXC to use <pkg>sys-fs/fuse</pkg> for mount - points</flag> - <flag name="numa"> - Use NUMA for memory segmenting via <pkg>sys-process/numactl</pkg> and - <pkg>sys-process/numad</pkg> - </flag> - <flag name="libvirtd"> - Builds the libvirtd daemon as well as the client utilities instead of just the client - utilities - </flag> - <flag name="libssh"> - Use <pkg>net-libs/libssh</pkg> to communicate with remote libvirtd hosts, - for example: qemu+libssh://server/system - </flag> - <flag name="pcap"> - Support auto learning IP addreses for routing - </flag> - <flag name="macvtap"> - Support for MAC-based TAP (macvlan/macvtap). For networking instead - of the normal TUN/TAP. - </flag> - <flag name="vepa">Virtual Ethernet Port Aggregator (VEPA) / 802.1Qbg - support. Relies on macvtap support.</flag> - <flag name="virt-network"> - Enable virtual networking (NAT) support for guests. Includes all - the dependencies for NATed network mode. Effectively any network - setup that relies on libvirt to setup and configure network - interfaces on your host. This can include bridged and routed - networks ONLY if you are allowing libvirt to create and manage - the underlying devices for you. In some cases this requires - enabling the 'netcf' USE flag (currently unavailable). - </flag> - <flag name="firewalld">DBus interface to iptables/ebtables allowing - for better runtime management of your firewall.</flag> - <flag name="wireshark-plugins"> - Build the <pkg>net-analyzer/wireshark</pkg> plugin for the Libvirt RPC protocol - </flag> - <flag name="glusterfs"> - Enable GlusterFS support via <pkg>sys-cluster/glusterfs</pkg> - </flag> - <flag name="zfs"> - Enable ZFS backend storage <pkg>sys-fs/zfs</pkg> - </flag> -</use> + <maintainer type="person"> + <email>tamiko@gentoo.org</email> + <name>Matthias Maier</name> + </maintainer> + <maintainer type="person" proxied="yes"> + <email>michal.privoznik@gmail.com</email> + <name>Michal Prívozník</name> + </maintainer> + <maintainer type="project"> + <email>virtualization@gentoo.org</email> + <name>Gentoo Virtualization Project</name> + </maintainer> + <use> + <!-- Pool backend flags --> + <flag name="iscsi-direct"> + Allow using libiscsi for iSCSI storage pool backend + </flag> + <flag name="iscsi"> + Allow using an iSCSI remote storage server as pool for disk image storage + </flag> + <flag name="lvm"> + Allow using the Logical Volume Manager (<pkg>sys-fs/lvm2</pkg>) as pool for disk image + storage + </flag> + <flag name="nbd"> + Allow using <pkg>sys-block/nbdkit</pkg> to access network disks + </flag> + <flag name="nfs"> + Allow using Network File System mounts as pool for disk image storage + </flag> + <flag name="parted"> + Allow using real disk partitions as pool for disk image storage, using + <pkg>sys-block/parted</pkg> to create, resize and delete them. + </flag> + <flag name="rbd"> + Enable rados block device support via <pkg>sys-cluster/ceph</pkg> + </flag> + <!-- Virtualisation backends --> + <flag name="lxc"> + Support management of Linux Containers virtualisation (<pkg>app-containers/lxc</pkg>) + </flag> + <flag name="openvz"> + Support management of OpenVZ virtualisation (openvz-sources) + </flag> + <flag name="qemu"> + Support management of QEMU virtualisation (<pkg>app-emulation/qemu</pkg>) + </flag> + <flag name="xen"> + Support management of Xen virtualisation (<pkg>app-emulation/xen</pkg>) + </flag> + <flag name="virtualbox"> + Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>) + </flag> + <!-- Miscellaneous flags --> + <flag name="dtrace">Enable dtrace support via <pkg>dev-debug/systemtap</pkg></flag> + <flag name="fuse">Allow LXC to use <pkg>sys-fs/fuse</pkg> for mountpoints</flag> + <flag name="numa"> + Use NUMA for memory segmenting via <pkg>sys-process/numactl</pkg> and + <pkg>sys-process/numad</pkg> + </flag> + <flag name="libvirtd"> + Builds the libvirtd daemon as well as the client utilities instead of just the client + utilities + </flag> + <flag name="libssh"> + Use <pkg>net-libs/libssh</pkg> to communicate with remote libvirtd hosts, + for example: qemu+libssh://server/system + </flag> + <flag name="libssh2"> + Use <pkg>net-libs/libssh2</pkg> to communicate with remote libvirtd hosts, + for example: qemu+libssh2://server/system + </flag> + <flag name="pcap"> + Support auto learning IP addreses for routing + </flag> + <flag name="virt-network"> + Enable virtual networking (NAT) support for guests. Includes all + the dependencies for NATed network mode. Effectively any network + setup that relies on libvirt to setup and configure network + interfaces on your host. This can include bridged and routed + networks ONLY if you are allowing libvirt to create and manage + the underlying devices for you. In some cases this requires + enabling the 'netcf' USE flag (currently unavailable). + </flag> + <flag name="firewalld">DBus interface to iptables/ebtables allowing + for better runtime management of your firewall.</flag> + <flag name="wireshark-plugins"> + Build the <pkg>net-analyzer/wireshark</pkg> plugin for the Libvirt RPC protocol + </flag> + <flag name="glusterfs"> + Enable GlusterFS support via <pkg>sys-cluster/glusterfs</pkg> + </flag> + <flag name="zfs"> + Enable ZFS backend storage <pkg>sys-fs/zfs</pkg> + </flag> + <flag name="virtiofsd"> + Drag in virtiofsd dependency <pkg>app-emulation/virtiofsd</pkg> + </flag> + </use> + <upstream> + <remote-id type="gitlab">libvirt/libvirt</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/lxc-templates/Manifest b/app-emulation/lxc-templates/Manifest deleted file mode 100644 index 292a5eb8bce9..000000000000 --- a/app-emulation/lxc-templates/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST lxc-templates-3.0.4.tar.gz 257015 BLAKE2B 599c0cb083cf358c8252467b3870450e754b2aa30daf8d72e07e746ce37e2fb26fecc0adf416325c9e02b1f98f5745af5985360e9494e5ed54a242a3e17330d4 SHA512 e5b628b40e7108fca858dbd9ae92495016069ff3cba7feb34e9559c7f61dfc36944a9ef441369952a988e821f8b5d883ae97b81f6eef0683a22f1f702b5b913e -DIST lxc-templates-3.0.4.tar.gz.asc 833 BLAKE2B a125e46200cbc1bce6a721ba338b6c896098711a7454ee18a153b9e7a3d25e08ea29cf13accf25e8af085865237fe4b20d633c92d71103213a49ba7d80de0154 SHA512 1195a3d835935606af405af77d5ee629dc7b7c0f05a17c05df191f6275c8e7ebec9eb05201bbfb46060af5a36aba4f17b53122904fd10f2d8b28524f4e5b5e71 diff --git a/app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch b/app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch deleted file mode 100644 index d7e50fd3712b..000000000000 --- a/app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/Makefile.am -+++ b/Makefile.am -@@ -10,9 +10,5 @@ EXTRA_DIST = \ - CONTRIBUTING \ - MAINTAINERS - --install-data-local: -- $(MKDIR_P) $(DESTDIR)$(LXCPATH) -- $(MKDIR_P) $(DESTDIR)$(localstatedir)/cache/lxc -- - ChangeLog:: - @touch ChangeLog diff --git a/app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild b/app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild deleted file mode 100644 index 744cb45be222..000000000000 --- a/app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools verify-sig - -DESCRIPTION="Old style template scripts for LXC" -HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc-templates" -SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz - verify-sig? ( https://linuxcontainers.org/downloads/lxc/${P}.tar.gz.asc )" - -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86" - -LICENSE="LGPL-3" -SLOT="0" - -RDEPEND=">=app-emulation/lxc-3.0" -DEPEND="${RDEPEND}" -BDEPEND="verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )" - -PATCHES=( "${FILESDIR}/${PN}-3.0.1-no-cache-dir.patch" ) -DOCS=() - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc - -src_prepare() { - default - eautoreconf -} diff --git a/app-emulation/lxc-templates/metadata.xml b/app-emulation/lxc-templates/metadata.xml deleted file mode 100644 index 8c511deb056f..000000000000 --- a/app-emulation/lxc-templates/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>juippis@gentoo.org</email> - <name>Joonas Niilola</name> - </maintainer> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> - <upstream> - <remote-id type="github">lxc/lxc-templates</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/lxc/Manifest b/app-emulation/lxc/Manifest deleted file mode 100644 index b220bf8a4686..000000000000 --- a/app-emulation/lxc/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST lxc-4.0.4.tar.gz 844684 BLAKE2B 438f9c79787cfab493a159a03dad214519b979c192264cb4acff21174f5642e2c10a899504ed2ac697906ca1ea9ad5cd92e01dbb8c6420651e7130b56022032a SHA512 5c5bb3c474b37284e862cbaf35daab01be7606992eb101cbea7097951ccee81dad8ab8d2624ba5f62279ece17889b1245fd6b2b63e8b17ed728560c5d40309b2 -DIST lxc-4.0.5.tar.gz 1368909 BLAKE2B 9fdef5600fe5fd427703312f07ed6499285a59d74c7c0572f036a108454192347166fe08df4551fa8df4e414167b7b081b8a1902036c7c8a012f27b99cc83335 SHA512 d536e767f4b7c1ea974469a19f89ddbcebbc3f8c7922b174b966fb2e80ae33199a8a915a962da9cbc7e075442555bc355525f2d4f8e76498b8a7e49f46dc006f -DIST lxc-4.0.5.tar.gz.asc 833 BLAKE2B 8cc3f00e3a3359b525f7ead48f4cce7b386a75c04b43eefe0ec939786e368712c2674a17fe9e9ef58649147c7f2d5682f5a0c280ddc8ca8c34664069d5efd4b5 SHA512 9e67932fa424224d39ec6c5c32a6e6c3cdf305d3e4d7c8ddbb8ab86a38392c30b56a20b11e4f85e3645a97c106a13ef868a5d3c78ac57bc8cb44cee20e83a700 diff --git a/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch b/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch deleted file mode 100644 index 3ec81356499e..000000000000 --- a/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch +++ /dev/null @@ -1,5 +0,0 @@ ---- /config/Makefile.am.orig 2016-05-19 02:56:11.891113982 +0000 -+++ /config/Makefile.am 2016-05-19 02:56:32.596115476 +0000 -@@ -1 +1 @@ --SUBDIRS = apparmor bash etc init selinux templates yum sysconfig -+SUBDIRS = apparmor bash etc init selinux templates yum diff --git a/app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch b/app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch deleted file mode 100644 index 2a08eedb1c2d..000000000000 --- a/app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/config/bash/lxc.in b/config/bash/lxc.in -index 43056882..0a22d4ad 100644 ---- a/config/bash/lxc.in -+++ b/config/bash/lxc.in -@@ -1,4 +1,3 @@ --_have lxc-start && { - _lxc_names() { - COMPREPLY=( $( compgen -W "$( lxc-ls )" "$cur" ) ) - } -@@ -108,4 +107,3 @@ _have lxc-start && { - complete -o default -F _lxc_generic_t lxc-create - - complete -o default -F _lxc_generic_o lxc-copy --} -diff --git a/configure.ac b/configure.ac -index 50c99836..0569caec 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -395,7 +395,7 @@ AM_CONDITIONAL([ENABLE_BASH], [test "x$enable_bash" = "xyes"]) - AM_COND_IF([ENABLE_BASH], - [AC_MSG_CHECKING([bash completion directory]) - PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], , -- bashcompdir="${sysconfdir}/bash_completion.d") -+ bashcompdir="$datadir/bash-completion/completions") - AC_MSG_RESULT([$bashcompdir]) - AC_SUBST(bashcompdir) - ]) diff --git a/app-emulation/lxc/files/lxc.initd.8 b/app-emulation/lxc/files/lxc.initd.8 deleted file mode 100644 index 727f6d504fb3..000000000000 --- a/app-emulation/lxc/files/lxc.initd.8 +++ /dev/null @@ -1,131 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -CONTAINER=${SVCNAME#*.} - -LXC_PATH=`lxc-config lxc.lxcpath` - -lxc_get_configfile() { - if [ -f "${LXC_PATH}/${CONTAINER}.conf" ]; then - echo "${LXC_PATH}/${CONTAINER}.conf" - elif [ -f "${LXC_PATH}/${CONTAINER}/config" ]; then - echo "${LXC_PATH}/${CONTAINER}/config" - else - eerror "Unable to find a suitable configuration file." - eerror "If you set up the container in a non-standard" - eerror "location, please set the CONFIGFILE variable." - return 1 - fi -} - -[ $CONTAINER != $SVCNAME ] && CONFIGFILE=${CONFIGFILE:-$(lxc_get_configfile)} - -lxc_get_var() { - awk 'BEGIN { FS="[ \t]*=[ \t]*" } $1 == "'$1'" { print $2; exit }' ${CONFIGFILE} -} - -lxc_get_net_link_type() { - awk 'BEGIN { FS="[ \t]*=[ \t]*"; _link=""; _type="" } - $1 == "lxc.network.type" {_type=$2;} - $1 == "lxc.network.link" {_link=$2;} - match($1, /lxc\.net\.[[:digit:]]+\.type/) {_type=$2;} - match($1, /lxc\.net\.[[:digit:]]+\.link/) {_link=$2;} - {if(_link != "" && _type != ""){ - printf("%s:%s\n", _link, _type ); - _link=""; _type=""; - }; }' <${CONFIGFILE} -} - -checkconfig() { - if [ ${CONTAINER} = ${SVCNAME} ]; then - eerror "You have to create an init script for each container:" - eerror " ln -s lxc /etc/init.d/lxc.container" - return 1 - fi - - # no need to output anything, the function takes care of that. - [ -z "${CONFIGFILE}" ] && return 1 - - utsname=$(lxc_get_var lxc.uts.name) - if [ -z "$utsname" ] ; then - utsname=$(lxc_get_var lxc.utsname) - fi - - if [ "${CONTAINER}" != "${utsname}" ]; then - eerror "You should use the same name for the service and the" - eerror "container. Right now the container is called ${utsname}" - return 1 - fi -} - -depend() { - # be quiet, since we have to run depend() also for the - # non-muxed init script, unfortunately. - checkconfig 2>/dev/null || return 0 - - config ${CONFIGFILE} - need localmount - use lxcfs - - local _x _if - for _x in $(lxc_get_net_link_type); do - _if=${_x%:*} - case "${_x##*:}" in - # when the network type is set to phys, we can make use of a - # network service (for instance to set it up before we disable - # the net_admin capability), but we might also not set it up - # at all on the host and leave the net_admin capable service - # to take care of it. - phys) use net.${_if} ;; - *) need net.${_if} ;; - esac - done -} - -start() { - checkconfig || return 1 - rm -f /var/log/lxc/${CONTAINER}.log - - rootpath=$(lxc_get_var lxc.rootfs) - - # Check the format of our init and the chroot's init, to see - # if we have to use linux32 or linux64; always use setarch - # when required, as that makes it easier to deal with - # x32-based containers. - case $(scanelf -BF '%a#f' ${rootpath}/sbin/init) in - EM_X86_64) setarch=linux64;; - EM_386) setarch=linux32;; - esac - - ebegin "Starting LXC container ${CONTAINER}" - env -i ${setarch} $(which lxc-start) -n ${CONTAINER} -f ${CONFIGFILE} -d -o /var/log/lxc/${CONTAINER}.log - sleep 1 - - # lxc-start -d will _always_ report a correct startup, even if it - # failed, so rather than trust that, check that the cgroup exists. - # fix for LXC 3.1 - - STATE="$(lxc-info -s -H ${CONTAINER})" - [ "$STATE" = "RUNNING" ] - - eend $? -} - -stop() { - checkconfig || return 1 - - STATE="$(lxc-info -s -H ${CONTAINER})" - - if ! [ "$STATE" = "RUNNING" ]; then - ewarn "${CONTAINER} doesn't seem to be started." - return 0 - fi - - # 30s should be enough to shut everything down - # lxc-stop will return back anyway as soon as successful shutdown - # after 30s, lxc-stop sends SIGKILL (dirty shotdown) - ebegin "Stopping LXC container ${CONTAINER}" - lxc-stop -t 30 -n ${CONTAINER} - eend $? -} diff --git a/app-emulation/lxc/files/lxc_at.service.4.0.0 b/app-emulation/lxc/files/lxc_at.service.4.0.0 deleted file mode 100644 index b354bc53e080..000000000000 --- a/app-emulation/lxc/files/lxc_at.service.4.0.0 +++ /dev/null @@ -1,15 +0,0 @@ -[Unit] -Description=Linux Container %i -After=network.target -Wants=lxcfs.service - -[Service] -Type=forking -ExecStart=/usr/bin/lxc-start -d -n %i -p /run/lxc-%i.pid -PIDFile=/run/lxc-%i.pid -ExecStop=/usr/bin/lxc-stop -n %i -Delegate=true -TasksMax=32768 - -[Install] -WantedBy=multi-user.target diff --git a/app-emulation/lxc/lxc-4.0.4.ebuild b/app-emulation/lxc/lxc-4.0.4.ebuild deleted file mode 100644 index fe6b7eea0236..000000000000 --- a/app-emulation/lxc/lxc-4.0.4.ebuild +++ /dev/null @@ -1,171 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools bash-completion-r1 linux-info flag-o-matic pam readme.gentoo-r1 systemd - -DESCRIPTION="LinuX Containers userspace utilities" -HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc" -SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz - https://github.com/lxc/lxc/archive/${P}.tar.gz" - -KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86" - -LICENSE="LGPL-3" -SLOT="0" -IUSE="apparmor +caps doc examples libressl pam seccomp selinux +ssl +templates +tools" - -RDEPEND="app-misc/pax-utils - sys-apps/util-linux - sys-libs/libcap - virtual/awk - caps? ( sys-libs/libcap ) - pam? ( sys-libs/pam ) - seccomp? ( sys-libs/libseccomp ) - selinux? ( sys-libs/libselinux ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - )" -DEPEND="${RDEPEND} - >=app-text/docbook-sgml-utils-0.6.14-r2 - >=sys-kernel/linux-headers-3.2 - apparmor? ( sys-apps/apparmor )" -BDEPEND="doc? ( app-doc/doxygen )" -PDEPEND="templates? ( app-emulation/lxc-templates )" - -CONFIG_CHECK="~!NETPRIO_CGROUP - ~CGROUPS - ~CGROUP_CPUACCT - ~CGROUP_DEVICE - - ~CGROUP_FREEZER - ~CGROUP_SCHED - ~CPUSETS - ~IPC_NS - - ~MACVLAN - ~MEMCG - ~NAMESPACES - ~NET_NS - - ~PID_NS - ~POSIX_MQUEUE - ~USER_NS - ~UTS_NS - - ~VETH" - -ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers" -ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking" -ERROR_MEMCG="CONFIG_MEMCG: needed for memory resource control in containers" -ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network" -ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command" -ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info" -ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking" - -DOCS=( AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt ) - -pkg_setup() { - linux-info_pkg_setup -} - -PATCHES=( - "${FILESDIR}"/${PN}-3.0.0-bash-completion.patch - "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch # bug 558854 -) - -S="${WORKDIR}/lxc-${P}" - -src_prepare() { - default - eautoreconf -} - -src_configure() { - append-flags -fno-strict-aliasing - - # --enable-doc is for manpages which is why we don't link it to a "doc" - # USE flag. We always want man pages. - local myeconfargs=( - --bindir=/usr/bin - --localstatedir=/var - --sbindir=/usr/bin - - --with-config-path=/var/lib/lxc - --with-distro=gentoo - --with-init-script=systemd - --with-rootfs-path=/var/lib/lxc/rootfs - --with-runtime-path=/run - --with-systemdsystemunitdir=$(systemd_get_systemunitdir) - - --disable-asan - --disable-coverity-build - --disable-dlog - --disable-mutex-debugging - --disable-rpath - --disable-tests - --disable-ubsan - --disable-werror - - --enable-bash - --enable-commands - --enable-doc - --enable-memfd-rexec - --enable-thread-safety - - $(use_enable apparmor) - $(use_enable caps capabilities) - $(use_enable doc api-docs) - $(use_enable examples) - $(use_enable pam) - $(use_enable seccomp) - $(use_enable selinux) - $(use_enable ssl openssl) - $(use_enable tools) - - $(use_with pam pamdir $(getpam_mod_dir)) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die - bashcomp_alias ${PN}-start \ - ${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,stop,unfreeze,wait} - - keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc - rmdir "${D}"/var/cache/lxc "${D}"/var/cache || die "rmdir failed" - - find "${D}" -name '*.la' -delete -o -name '*.a' -delete || die - - # Gentoo-specific additions! - newinitd "${FILESDIR}/${PN}.initd.8" ${PN} - - # Remember to compare our systemd unit file with the upstream one - # config/init/systemd/lxc.service.in - systemd_newunit "${FILESDIR}"/${PN}_at.service.4.0.0 "lxc@.service" - - DOC_CONTENTS=" - For openrc, there is an init script provided with the package. - You _should_ only need to symlink /etc/init.d/lxc to - /etc/init.d/lxc.configname to start the container defined in - /etc/lxc/configname.conf. - - Correspondingly, for systemd a service file lxc@.service is installed. - Enable and start lxc@configname in order to start the container defined - in /etc/lxc/configname.conf. - - If you want checkpoint/restore functionality, please install criu - (sys-process/criu)." - DISABLE_AUTOFORMATTING=true - readme.gentoo_create_doc -} - -pkg_postinst() { - readme.gentoo_print_elog -} diff --git a/app-emulation/lxc/lxc-4.0.5.ebuild b/app-emulation/lxc/lxc-4.0.5.ebuild deleted file mode 100644 index 5b2fa2cc8dfa..000000000000 --- a/app-emulation/lxc/lxc-4.0.5.ebuild +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools bash-completion-r1 linux-info flag-o-matic optfeature pam readme.gentoo-r1 systemd verify-sig - -DESCRIPTION="LinuX Containers userspace utilities" -HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc" -SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz - verify-sig? ( https://linuxcontainers.org/downloads/lxc/${P}.tar.gz.asc )" - -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" - -LICENSE="LGPL-3" -SLOT="0" -IUSE="apparmor +caps doc examples libressl man pam seccomp selinux +ssl +tools verify-sig" - -RDEPEND="app-misc/pax-utils - sys-apps/util-linux - sys-libs/libcap - virtual/awk - caps? ( sys-libs/libcap ) - pam? ( sys-libs/pam ) - seccomp? ( sys-libs/libseccomp ) - selinux? ( sys-libs/libselinux ) - ssl? ( - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - )" -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-4 - apparmor? ( sys-apps/apparmor )" -BDEPEND="doc? ( app-doc/doxygen ) - man? ( app-text/docbook-sgml-utils ) - verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )" - -CONFIG_CHECK="~!NETPRIO_CGROUP - ~CGROUPS - ~CGROUP_CPUACCT - ~CGROUP_DEVICE - ~CGROUP_FREEZER - - ~CGROUP_SCHED - ~CPUSETS - ~IPC_NS - ~MACVLAN - - ~MEMCG - ~NAMESPACES - ~NET_NS - ~PID_NS - - ~POSIX_MQUEUE - ~USER_NS - ~UTS_NS - ~VETH" - -ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers" -ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking" -ERROR_MEMCG="CONFIG_MEMCG: needed for memory resource control in containers" -ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network" -ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command" -ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info" -ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking" - -DOCS=( AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt ) - -pkg_setup() { - linux-info_pkg_setup -} - -PATCHES=( - "${FILESDIR}"/${PN}-3.0.0-bash-completion.patch - "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch # bug 558854 -) - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc - -src_prepare() { - default - eautoreconf -} - -src_configure() { - append-flags -fno-strict-aliasing - - local myeconfargs=( - --bindir=/usr/bin - --localstatedir=/var - --sbindir=/usr/bin - - --with-config-path=/var/lib/lxc - --with-distro=gentoo - --with-init-script=systemd - --with-rootfs-path=/var/lib/lxc/rootfs - --with-runtime-path=/run - --with-systemdsystemunitdir=$(systemd_get_systemunitdir) - - --disable-asan - --disable-coverity-build - --disable-dlog - --disable-mutex-debugging - --disable-rpath - --disable-tests - --disable-ubsan - --disable-werror - - --enable-bash - --enable-commands - --enable-memfd-rexec - --enable-thread-safety - - $(use_enable apparmor) - $(use_enable caps capabilities) - $(use_enable doc api-docs) - $(use_enable examples) - $(use_enable man doc) - $(use_enable pam) - $(use_enable seccomp) - $(use_enable selinux) - $(use_enable ssl openssl) - $(use_enable tools) - - $(use_with pam pamdir $(getpam_mod_dir)) - ) - - econf "${myeconfargs[@]}" -} - -src_install() { - default - - mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die - bashcomp_alias ${PN}-start \ - ${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,stop,unfreeze,wait} - - keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc - rmdir "${D}"/var/cache/lxc "${D}"/var/cache || die "rmdir failed" - - find "${D}" -name '*.la' -delete -o -name '*.a' -delete || die - - # Gentoo-specific additions! - newinitd "${FILESDIR}/${PN}.initd.8" ${PN} - - # Remember to compare our systemd unit file with the upstream one - # config/init/systemd/lxc.service.in - systemd_newunit "${FILESDIR}"/${PN}_at.service.4.0.0 "lxc@.service" - - DOC_CONTENTS=" - For openrc, there is an init script provided with the package. - You should only need to symlink /etc/init.d/lxc to - /etc/init.d/lxc.configname to start the container defined in - /etc/lxc/configname.conf. - - Correspondingly, for systemd a service file lxc@.service is installed. - Enable and start lxc@configname in order to start the container defined - in /etc/lxc/configname.conf." - DISABLE_AUTOFORMATTING=true - readme.gentoo_create_doc -} - -pkg_postinst() { - readme.gentoo_print_elog - - elog "Please run 'lxc-checkconfig' to see optional kernel features." - elog - elog "Optional uninstalled dependencies:" - optfeature "automatic template scripts" app-emulation/lxc-templates - optfeature "Debian-based distribution container image support" dev-util/debootstrap - optfeature "snapshot & restore functionality" sys-process/criu -} diff --git a/app-emulation/lxc/metadata.xml b/app-emulation/lxc/metadata.xml deleted file mode 100644 index 3cd200c1cd21..000000000000 --- a/app-emulation/lxc/metadata.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>juippis@gentoo.org</email> - <name>Joonas Niilola</name> - </maintainer> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> - <use> - <flag name="apparmor">Enable AppArmor support</flag> - <flag name="man">Build manpages</flag> - <flag name="templates">Install old style templates through <pkg>app-emulation/lxc-templates</pkg></flag> - <flag name="tools">Build and install additional command line tools</flag> - </use> - <upstream> - <remote-id type="github">lxc/lxc</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/lxd/Manifest b/app-emulation/lxd/Manifest deleted file mode 100644 index b7b2ca464c08..000000000000 --- a/app-emulation/lxd/Manifest +++ /dev/null @@ -1,4 +0,0 @@ -DIST lxd-4.0.3.tar.gz 25468067 BLAKE2B 5c3d8a2841d3222d070be39fb6cb63c99450a7edea86915a808230012f1a3b7a66c2c4a3c56be378f586c8ca033c4f547ed6eeb14bb09a091b3ae28c62fda7ae SHA512 aaf7fe7473e04765263ff99f02041748f0e57abdd0311d734fbf1cbc461516bf6adad1bc42c9cfa58b4e87c28efb5186d9436fb0a1d309b23eb37fe95299ad6f -DIST lxd-4.0.3.tar.gz.asc 833 BLAKE2B b889b7c3a85f325a4c47319b45c4828c4fc0cac2bae77341734827e737243802852c20a766ab72ce1a12e643502d108fec41b715d8eb820ec273c651b7745fb2 SHA512 993ad833832a551e0804f9e565542b5779352cad2bb32989a440a0be11b1ae6539e46fa3332d35e8be365026dacc21d847db544b62b3e11493100d3c9cb313e1 -DIST lxd-4.0.4.tar.gz 14166577 BLAKE2B 5a04efa1bf70d416b328f5f85379a7c697667978a2b7571c05f8d834ccea51c65ce3df447787ccad5c0a9cc524bc396eb5c90b26b92d6252fc07a5be0157e0ea SHA512 800768b923de920e04d676d9c87beedd2ddd164661799c429616f6fa00b36f23ae1d9cff56f2ed16172585b9b3c058ee955eb3e5f8d98c84109c4405c5aae23f -DIST lxd-4.0.4.tar.gz.asc 833 BLAKE2B bac0b63fc7fe61290bd399ef09eaf0bae12ac962b1188c49fa94c9132b002c278dcdb271d35a1784848591a315a8e88eab823c1c653ef814d454a0af607e461b SHA512 7fc9b9b27305d7637efeaf4024a8a26e2f891599fe50fa22e2f9defa6d451a015d74d068f63a9547fce312ed5fb5da82b99be9dc13601f807695cf1b675baf15 diff --git a/app-emulation/lxd/files/lxd-4.0.0.confd b/app-emulation/lxd/files/lxd-4.0.0.confd deleted file mode 100644 index 68cf344995be..000000000000 --- a/app-emulation/lxd/files/lxd-4.0.0.confd +++ /dev/null @@ -1,23 +0,0 @@ -# Group which owns the shared socket -LXD_OPTIONS+=" --group lxd" - -# Enable cpu profiling into the specified file -#LXD_OPTIONS+=" --cpuprofile /tmp/lxc_cpu_profile" - -# Enable memory profiling into the specified file -#LXD_OPTIONS+=" --memprofile /tmp/lxc_mem_profile" - -# Enable debug mode -#LXD_OPTIONS+=" --debug" - -# For debugging, print a complete stack trace every n seconds -#LXD_OPTIONS+=" --print-goroutines-every 5" - -# Enable verbose mode -#LXD_OPTIONS+=" -v" - -# Logfile to log to -#LXD_OPTIONS+=" --logfile /var/log/lxd/lxd.log" - -# Enable syslog logging -#LXD_OPTIONS+=" --syslog" diff --git a/app-emulation/lxd/files/lxd-4.0.0.initd b/app-emulation/lxd/files/lxd-4.0.0.initd deleted file mode 100644 index 03ec12e44f56..000000000000 --- a/app-emulation/lxd/files/lxd-4.0.0.initd +++ /dev/null @@ -1,54 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -DAEMON=/usr/sbin/lxd -PIDFILE=/run/lxd.pid -TIMEOUT=10 - -extra_commands="stopall" - -depend() { - need net - need lxcfs -} - -start() { - ebegin "Starting lxd service" - - modprobe -f loop > /dev/null 2>&1 - - # fix permissions on /var/lib/lxd and make sure it exists - install -d /var/lib/lxd --group lxd --owner root --mode 0775 - start-stop-daemon --start \ - --pidfile ${PIDFILE} \ - --exec ${DAEMON} \ - --background \ - --make-pidfile \ - -- \ - ${LXD_OPTIONS} - eend ${?} -} - -stop() { - if [[ ${RC_GOINGDOWN} = YES ]] || [[ ${RC_REBOOT} = YES ]]; then - stopall - else - ebegin "Stopping lxd service (but not containers)." - start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE} - eend ${?} - fi -} - -stopall() { - ebegin "Stopping lxd service and containers." - lxc stop --all --timeout $TIMEOUT >/dev/null 2>&1 - if [[ ${?} -ne 0 ]]; then - lxc stop --all --force || eerror "Could not stop all containers." - fi - if "${DAEMON}" shutdown; then - rm -f ${PIDFILE} - eend 0 - fi - eend ${?} -} diff --git a/app-emulation/lxd/files/lxd-4.0.0.service b/app-emulation/lxd/files/lxd-4.0.0.service deleted file mode 100644 index c2e9db8aa8ae..000000000000 --- a/app-emulation/lxd/files/lxd-4.0.0.service +++ /dev/null @@ -1,20 +0,0 @@ -[Unit] -Description=LXD - main daemon -After=network-online.target lxcfs.service lxd.socket -Requires=network-online.target lxcfs.service lxd.socket -Documentation=man:lxd(1) - -[Service] -EnvironmentFile=-/etc/environment -ExecStart=/usr/sbin/lxd --group lxd --logfile=/var/log/lxd/lxd.log -ExecStartPost=/usr/sbin/lxd waitready --timeout=600 -KillMode=process -TimeoutStartSec=600s -TimeoutStopSec=30s -Restart=on-failure -LimitNOFILE=1048576 -LimitNPROC=infinity -TasksMax=infinity - -[Install] -Also=lxd-containers.service lxd.socket diff --git a/app-emulation/lxd/files/lxd-4.0.0.socket b/app-emulation/lxd/files/lxd-4.0.0.socket deleted file mode 100644 index 3207c9453d11..000000000000 --- a/app-emulation/lxd/files/lxd-4.0.0.socket +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=LXD - unix socket -Documentation=man:lxd(1) - -[Socket] -ListenStream=/var/lib/lxd/unix.socket -SocketGroup=lxd -SocketMode=0660 -Service=lxd.service - -[Install] -WantedBy=sockets.target diff --git a/app-emulation/lxd/files/lxd-4.0.0_apparmor.service b/app-emulation/lxd/files/lxd-4.0.0_apparmor.service deleted file mode 100644 index 5e688d9c098c..000000000000 --- a/app-emulation/lxd/files/lxd-4.0.0_apparmor.service +++ /dev/null @@ -1,21 +0,0 @@ -[Unit] -Description=LXD - main daemon -After=network-online.target lxcfs.service lxd.socket -Requires=network-online.target lxcfs.service lxd.socket -Documentation=man:lxd(1) - -[Service] -EnvironmentFile=-/etc/environment -ExecStartPre=/usr/libexec/lxc/lxc-apparmor-load -ExecStart=/usr/sbin/lxd --group lxd --logfile=/var/log/lxd/lxd.log -ExecStartPost=/usr/sbin/lxd waitready --timeout=600 -KillMode=process -TimeoutStartSec=600s -TimeoutStopSec=30s -Restart=on-failure -LimitNOFILE=1048576 -LimitNPROC=infinity -TasksMax=infinity - -[Install] -Also=lxd-containers.service lxd.socket diff --git a/app-emulation/lxd/files/lxd-containers-4.0.0.service b/app-emulation/lxd/files/lxd-containers-4.0.0.service deleted file mode 100644 index 894760c3506b..000000000000 --- a/app-emulation/lxd/files/lxd-containers-4.0.0.service +++ /dev/null @@ -1,16 +0,0 @@ -[Unit] -Description=LXD - container startup/shutdown -Documentation=man:lxd(1) -After=lxd.socket lxd.service -Requires=lxd.socket - -[Service] -Type=oneshot -ExecStart=/usr/sbin/lxd activateifneeded -ExecStop=/usr/sbin/lxd shutdown -TimeoutStartSec=600s -TimeoutStopSec=600s -RemainAfterExit=yes - -[Install] -WantedBy=multi-user.target diff --git a/app-emulation/lxd/lxd-4.0.3-r2.ebuild b/app-emulation/lxd/lxd-4.0.3-r2.ebuild deleted file mode 100644 index fa42646855b0..000000000000 --- a/app-emulation/lxd/lxd-4.0.3-r2.ebuild +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools bash-completion-r1 linux-info optfeature systemd verify-sig - -DESCRIPTION="Fast, dense and secure container management" -HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd" -SRC_URI="https://linuxcontainers.org/downloads/lxd/${P}.tar.gz - verify-sig? ( https://linuxcontainers.org/downloads/lxd/${P}.tar.gz.asc )" - -# Needs to include licenses for all bundled programs and libraries. -LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0" -SLOT="0" -KEYWORDS="amd64" -IUSE="apparmor +ipv6 nls verify-sig" - -DEPEND="app-arch/xz-utils - >=app-emulation/lxc-3.0.0[apparmor?,seccomp] - dev-lang/tcl - dev-libs/libuv - dev-libs/lzo - net-dns/dnsmasq[dhcp,ipv6?]" -RDEPEND="${DEPEND} - acct-group/lxd - net-firewall/ebtables - net-firewall/iptables[ipv6?] - sys-apps/iproute2[ipv6?] - sys-fs/fuse:0= - sys-fs/lxcfs - sys-fs/squashfs-tools - virtual/acl" -BDEPEND=">=dev-lang/go-1.13 - nls? ( sys-devel/gettext ) - verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )" - -CONFIG_CHECK=" - ~BRIDGE - ~DUMMY - ~IP6_NF_NAT - ~IP6_NF_TARGET_MASQUERADE - ~IPV6 - ~IP_NF_NAT - ~IP_NF_TARGET_MASQUERADE - ~MACVLAN - ~NETFILTER_XT_MATCH_COMMENT - ~NET_IPGRE - ~NET_IPGRE_DEMUX - ~NET_IPIP - ~NF_NAT_MASQUERADE - ~VSOCKETS - ~VXLAN -" - -# 4.0.3: Network fetching fixed, but tests don't work when ran inside container. -RESTRICT="test" - -# Go magic. -QA_PREBUILT="/usr/lib/lxd/libdqlite.so.0.0.1 - /usr/bin/fuidshift - /usr/bin/lxc - /usr/bin/lxc-to-lxd - /usr/bin/lxd-agent - /usr/bin/lxd-benchmark - /usr/bin/lxd-p2c - /usr/sbin/lxd" - -EGO_PN="github.com/lxc/lxd" -GOPATH="${S}/_dist" # this seems to reset every now and then, though - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc - -common_op() { - local i - for i in dqlite raft; do - cd "${GOPATH}"/deps/${i} || die "failed to switch dir to ${i}" - "${@}" - cd "${S}" || die "failed to switch dir back from ${i} to ${S}" - done -} - -src_prepare() { - default - - export GOPATH="${S}/_dist" - - sed -i \ - -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ - -e "s:make:make ${MAKEOPTS}:g" \ - Makefile || die - - sed -i 's#lib$#lib/lxd#' "${GOPATH}"/deps/libco/Makefile || die - sed -i 's#zfs version 2>/dev/null | cut -f 2 -d - | head -1#< /sys/module/zfs/version cut -f 1#' "${GOPATH}"/deps/raft/configure.ac || die - - common_op eautoreconf -} - -src_configure() { - export GOPATH="${S}/_dist" - - export CO_CFLAGS="-I${GOPATH}/deps/libco/" - export CO_LIBS="${GOPATH}/deps/libco/" - - export RAFT_CFLAGS="-I${GOPATH}/deps/raft/include/" - export RAFT_LIBS="${GOPATH}/deps/raft/.libs" - - export SQLITE_CFLAGS="-I${GOPATH}/deps/sqlite" - export SQLITE_LIBS="${GOPATH}/deps/sqlite/.libs" - - export PKG_CONFIG_PATH="${GOPATH}/sqlite/:${GOPATH}/libco/:${GOPATH}/raft/" - - cd "${GOPATH}/deps/sqlite" || die - econf --enable-replication --disable-amalgamation --disable-tcl --libdir="${EPREFIX}/usr/lib/lxd" - - common_op econf --libdir="${EPREFIX}"/usr/lib/lxd -} - -src_compile() { - export GOPATH="${S}/_dist" - - export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/" - export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd" - export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}" - - local j - for j in sqlite raft libco; do - cd "${GOPATH}"/deps/${j} || die - emake - done - - ln -s libco.so.0.1.0 libco.so || die - ln -s libco.so.0.1.0 libco.so.0 || die - - cd "${GOPATH}/deps/dqlite" || die - emake CFLAGS="-I${GOPATH}/deps/sqlite -I${GOPATH}/deps/raft/include" LDFLAGS="-L${GOPATH}/deps/sqlite -L${GOPATH}/deps/raft" - - cd "${S}" || die - - for k in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do - go install -v -x ${EGO_PN}/${k} || die "failed compiling ${k}" - done - - go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon" - - use nls && emake build-mo -} - -src_test() { - export GOPATH="${S}/_dist" - - export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/" - export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd" - export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}" - - go test -v ${EGO_PN}/lxd || die -} - -src_install() { - local bindir="_dist/bin" - export GOPATH="${S}/_dist" - - dosbin ${bindir}/lxd - - for l in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do - dobin ${bindir}/${l} - done - - for m in dqlite libco raft sqlite; do - cd "${GOPATH}"/deps/${m} || die "failed switching into ${GOPATH}/${m}" - emake DESTDIR="${D}" install - done - - cd "${S}" || die - - # We only need bundled libs during src_compile, and we don't want anything - # to link against these. - rm "${ED}"/usr/bin/sqlite3 || die - rm -r "${ED}"/usr/include || die - rm -r "${ED}"/usr/lib/lxd/*.a || die - rm -r "${ED}"/usr/lib/lxd/pkgconfig || die - - newbashcomp scripts/bash/lxd-client lxc - - newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd - newinitd "${FILESDIR}"/lxd-4.0.0.initd lxd - - if use apparmor; then - systemd_newunit "${FILESDIR}"/lxd-4.0.0_apparmor.service lxd.service - else - systemd_newunit "${FILESDIR}"/lxd-4.0.0.service lxd.service - fi - - systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service - systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket - - dodoc AUTHORS 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 - elog "Optional features:" - optfeature "btrfs storage backend" sys-fs/btrfs-progs - 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." -} diff --git a/app-emulation/lxd/lxd-4.0.4-r1.ebuild b/app-emulation/lxd/lxd-4.0.4-r1.ebuild deleted file mode 100644 index e287cc4458a8..000000000000 --- a/app-emulation/lxd/lxd-4.0.4-r1.ebuild +++ /dev/null @@ -1,144 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools bash-completion-r1 linux-info optfeature systemd verify-sig - -DESCRIPTION="Fast, dense and secure container management" -HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd" -SRC_URI="https://linuxcontainers.org/downloads/lxd/${P}.tar.gz - verify-sig? ( https://linuxcontainers.org/downloads/lxd/${P}.tar.gz.asc )" - -# Needs to include licenses for all bundled programs and libraries. -LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0" -SLOT="0" -KEYWORDS="~amd64" -IUSE="apparmor ipv6 nls verify-sig" - -DEPEND="app-arch/xz-utils - >=app-emulation/lxc-3.0.0[apparmor?,seccomp] - dev-libs/dqlite - dev-libs/lzo - dev-libs/raft - net-dns/dnsmasq[dhcp,ipv6?]" -RDEPEND="${DEPEND} - acct-group/lxd - net-firewall/ebtables - net-firewall/iptables[ipv6?] - sys-apps/iproute2[ipv6?] - sys-fs/fuse:0= - sys-fs/lxcfs - sys-fs/squashfs-tools - virtual/acl" -BDEPEND="dev-lang/go - nls? ( sys-devel/gettext ) - verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )" - -CONFIG_CHECK=" - ~CGROUPS - ~IPC_NS - ~NET_NS - ~PID_NS - - ~SECCOMP - ~USER_NS - ~UTS_NS -" - -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." - -# 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-p2c - /usr/sbin/lxd" - -EGO_PN="github.com/lxc/lxd" -GOPATH="${S}/_dist" # this seems to reset every now and then, though - -VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc - -src_prepare() { - default - - export GOPATH="${S}/_dist" - - sed -i \ - -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \ - -e "s:make:make ${MAKEOPTS}:g" \ - Makefile || die -} - -src_configure() { :; } - -src_compile() { - export GOPATH="${S}/_dist" - - cd "${S}" || die - - for k in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do - go install -v -x ${EGO_PN}/${k} || die "failed compiling ${k}" - done - - go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon" - - use nls && emake build-mo -} - -src_test() { - export GOPATH="${S}/_dist" - go test -v ${EGO_PN}/lxd || die -} - -src_install() { - local bindir="_dist/bin" - export GOPATH="${S}/_dist" - - dosbin ${bindir}/lxd - - for l in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do - dobin ${bindir}/${l} - done - - cd "${S}" || die - - newbashcomp scripts/bash/lxd-client lxc - - newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd - newinitd "${FILESDIR}"/lxd-4.0.0.initd lxd - - if use apparmor; then - systemd_newunit "${FILESDIR}"/lxd-4.0.0_apparmor.service lxd.service - else - systemd_newunit "${FILESDIR}"/lxd-4.0.0.service lxd.service - fi - - systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service - systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket - - dodoc AUTHORS 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 - elog "Please run 'lxc-checkconfig' to see all optional kernel features." - elog - elog "Optional features:" - optfeature "btrfs storage backend" sys-fs/btrfs-progs - 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." -} diff --git a/app-emulation/lxd/metadata.xml b/app-emulation/lxd/metadata.xml deleted file mode 100644 index db7a11f18d78..000000000000 --- a/app-emulation/lxd/metadata.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>juippis@gentoo.org</email> - <name>Joonas Niilola</name> - </maintainer> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> - <use> - <flag name="apparmor">Enable AppArmor support</flag> - </use> - <longdescription> - By combining the speed and density of containers with - the security of traditional virtual machines, LXD is - the next-generation of container hypervisor for Linux - from Canonical. - </longdescription> - <upstream> - <remote-id type="github">lxc/lxd</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/metadata.xml b/app-emulation/metadata.xml index 4b1893efa085..bab7a830325e 100644 --- a/app-emulation/metadata.xml +++ b/app-emulation/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <catmetadata> <longdescription lang="en"> The app-emulation category contains emulation software. @@ -29,4 +29,3 @@ Kategoria app-emulation zawiera programy służące do emulacji. </longdescription> </catmetadata> - diff --git a/app-emulation/nemu/Manifest b/app-emulation/nemu/Manifest index e9544c5670d0..4f629d031470 100644 --- a/app-emulation/nemu/Manifest +++ b/app-emulation/nemu/Manifest @@ -1 +1,3 @@ -DIST nemu-2.2.1.tar.gz 94600 BLAKE2B 16060ee1ed00f97a442d9f6b9a3f940d9777d24dea70336e382071ce7e9f7e077d58827110f4b0d64091c5777d516e95968ed0e1d4886b9fe2a3709fb466229d SHA512 e6f244c01582351f9e0f61a0a6848937a68b8d077500d0f8095784b871e9c9809bf5830c27918e84a77a64fcee3d6f81d8a06a031160f0beddc48614eb86624a +DIST nemu-3.0.0.tar.gz 151223 BLAKE2B a71875eb727eed13bc252cee072e1c5b25bf7ea106f51ddddfb8e8bfacf21e030b1c4045de2353d40121b78756b131de1a376891197f6d553430b4b30f53bf3e SHA512 59dae5364659dda5d7c05ba6378b6e20c5d2c5b619cb919c49036918a887574b75f5d568cbfa8f21ecf790778c9de55266f5c5e3e90cc991f613a6408b10a1df +DIST nemu-3.1.0.tar.gz 164222 BLAKE2B 32600bcdcf2a4f963612a13d89375df2cb4a49a376aec694ada01a86f6c27d6c4198250834cc924bb20e7b60b11ff8643e3bbd30aa883b437cf7828ab00509f2 SHA512 b764e94133e4ab4f052fca77d3dbc64dbbd6a52349828e8ccfe9892f1a9bb290b6578cd8afec7bac84ac339daf9ae11520fce28e842bfa649178fe471014fad1 +DIST nemu-3.3.0.tar.gz 174431 BLAKE2B 62f69bb4789d8b1ce369bca5f82f11e4fc41813ae2732d61f6ae1819bc8e3e052420e6f1a2582c5460dfccd9dd3b98c350968c5a732aad654493f7b03bcacec2 SHA512 3b497d3edccb41ca9b34d6c51079caadc893effd2c026d9b199538574fad173d1c3fe5e5db36b60f07debc774473082b338553e269d1d462203470dee292e107 diff --git a/app-emulation/nemu/metadata.xml b/app-emulation/nemu/metadata.xml index b2ce9edb9146..29430bd2b950 100644 --- a/app-emulation/nemu/metadata.xml +++ b/app-emulation/nemu/metadata.xml @@ -1,15 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>monsieurp@gentoo.org</email> - <name>Patrice Clement</name> + <maintainer type="person" proxied="yes"> + <email>mail@void.so</email> + <name>Pavel Balaev</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> </maintainer> <use> - <flag name="vnc-client">Adds support for external VNC client</flag> - <flag name="savevm">Adds support for QEMU savevm snapshots (experimental, QEMU must be patched)</flag> - <flag name="spice">Adds Spice protocol support</flag> <flag name="ovf">Adds support for OVA/OVF import</flag> <flag name="network-map">Adds possibility of exporting network map to SVG</flag> + <flag name="remote-api">Adds API for remote control</flag> + <flag name="spice">Adds Spice protocol support</flag> + <flag name="vnc-client">Adds support for external VNC client</flag> </use> </pkgmetadata> diff --git a/app-emulation/nemu/nemu-2.2.1.ebuild b/app-emulation/nemu/nemu-3.0.0.ebuild index 7b191e31dc57..54d5c3502eb7 100644 --- a/app-emulation/nemu/nemu-2.2.1.ebuild +++ b/app-emulation/nemu/nemu-3.0.0.ebuild @@ -1,36 +1,41 @@ -# Copyright 2019-2020 Gentoo Authors +# Copyright 2019-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -inherit cmake-utils linux-info +inherit cmake linux-info + +MY_PV="${PV/_rc/-RC}" DESCRIPTION="ncurses interface for QEMU" -HOMEPAGE="https://lib.void.so/nemu/ https://bitbucket.org/PascalRD/nemu/" -SRC_URI="https://lib.void.so/src/${P}.tar.gz" +HOMEPAGE="https://github.com/nemuTUI/nemu" +SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" LICENSE="BSD-2" SLOT="0" KEYWORDS="amd64 x86" -IUSE="debug network-map +ovf savevm spice +vnc-client" +IUSE="dbus network-map +ovf spice +vnc-client remote-api" -RDEPEND="app-emulation/qemu[vnc,virtfs,spice?] +RDEPEND=" + >=app-emulation/qemu-6.0.0-r3[vnc,virtfs,spice?] dev-db/sqlite:3= - sys-libs/ncurses:0=[unicode] + dev-libs/json-c + sys-libs/ncurses:=[unicode(+)] virtual/libusb:1 virtual/libudev:= - network-map? ( media-gfx/graphviz ) + dbus? ( sys-apps/dbus ) + network-map? ( media-gfx/graphviz[svg] ) ovf? ( - - dev-libs/libxml2:2 - app-arch/libarchive - + dev-libs/libxml2:2 + app-arch/libarchive:= ) - vnc-client? ( net-misc/tigervnc )" - + remote-api? ( dev-libs/openssl ) + spice? ( app-emulation/virt-viewer ) + vnc-client? ( net-misc/tigervnc ) +" DEPEND="${RDEPEND}" - BDEPEND="sys-devel/gettext" +S="${WORKDIR}/${PN}-${MY_PV}/" pkg_pretend() { if use kernel_linux; then @@ -42,32 +47,35 @@ pkg_pretend() { ERROR_VETH+=" into your kernel or loaded as a module to use the" ERROR_VETH+=" local network settings feature." ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver." - check_extra_config fi fi } src_configure() { + # -DNM_WITH_QEMU: Do not embbed qemu. local mycmakeargs=( - -DNM_DEBUG=$(usex debug) + -DNM_WITH_DBUS=$(usex dbus) -DNM_WITH_NETWORK_MAP=$(usex network-map) + -DNM_WITH_REMOTE=$(usex remote-api) -DNM_WITH_OVF_SUPPORT=$(usex ovf) - -DNM_SAVEVM_SNAPSHOTS=$(usex savevm) + -DNM_WITH_QEMU=off -DNM_WITH_SPICE=$(usex spice) -DNM_WITH_VNC_CLIENT=$(usex vnc-client) ) - cmake-utils_src_configure + cmake_src_configure +} + +src_install() { + cmake_src_install + docompress -x /usr/share/man/man1/nemu.1.gz } pkg_postinst() { elog "For non-root usage execute script:" elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>" elog "and add udev rule:" - elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /lib/udev/rules.d" - if use savevm; then - elog "" - elog "QEMU must be patched with qemu-qmp-savevm-VERSION.patch" - elog "Get this patch from nEMU repository" - fi + elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /etc/udev/rules.d" + elog "Afterwards reboot or reload udev with" + elog "udevadm control --reload-rules && udevadm trigger" } diff --git a/app-emulation/nemu/nemu-3.1.0.ebuild b/app-emulation/nemu/nemu-3.1.0.ebuild new file mode 100644 index 000000000000..9bd6d23031a3 --- /dev/null +++ b/app-emulation/nemu/nemu-3.1.0.ebuild @@ -0,0 +1,77 @@ +# Copyright 2019-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake linux-info + +MY_PV="${PV/_rc/-RC}" + +DESCRIPTION="ncurses interface for QEMU" +HOMEPAGE="https://github.com/nemuTUI/nemu" +SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="amd64" +IUSE="dbus network-map +ovf remote-api" + +RDEPEND=" + >=app-emulation/qemu-6.0.0-r3[vnc,virtfs,spice] + dev-db/sqlite:3= + dev-libs/json-c + sys-libs/ncurses:=[unicode(+)] + virtual/libusb:1 + virtual/libudev:= + dbus? ( sys-apps/dbus ) + network-map? ( media-gfx/graphviz[svg] ) + ovf? ( + dev-libs/libxml2:2 + app-arch/libarchive:= + ) + remote-api? ( dev-libs/openssl ) +" +DEPEND="${RDEPEND}" +BDEPEND="sys-devel/gettext" +S="${WORKDIR}/${PN}-${MY_PV}/" + +pkg_pretend() { + if use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel" + else + CONFIG_CHECK="~VETH ~MACVTAP" + ERROR_VETH="You will need the Virtual ethernet pair device driver compiled" + ERROR_VETH+=" into your kernel or loaded as a module to use the" + ERROR_VETH+=" local network settings feature." + ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver." + check_extra_config + fi + fi +} + +src_configure() { + # -DNM_WITH_QEMU: Do not embbed qemu. + local mycmakeargs=( + -DNM_WITH_DBUS=$(usex dbus) + -DNM_WITH_NETWORK_MAP=$(usex network-map) + -DNM_WITH_REMOTE=$(usex remote-api) + -DNM_WITH_OVF_SUPPORT=$(usex ovf) + -DNM_WITH_QEMU=off + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + docompress -x /usr/share/man/man1/nemu.1.gz +} + +pkg_postinst() { + elog "For non-root usage execute script:" + elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>" + elog "and add udev rule:" + elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /etc/udev/rules.d" + elog "Afterwards reboot or reload udev with" + elog "udevadm control --reload-rules && udevadm trigger" +} diff --git a/app-emulation/nemu/nemu-3.3.0.ebuild b/app-emulation/nemu/nemu-3.3.0.ebuild new file mode 100644 index 000000000000..e42882861528 --- /dev/null +++ b/app-emulation/nemu/nemu-3.3.0.ebuild @@ -0,0 +1,80 @@ +# Copyright 2019-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake linux-info + +MY_PV="${PV/_rc/-RC}" + +DESCRIPTION="Ncurses interface for QEMU" +HOMEPAGE="https://github.com/nemuTUI/nemu" +SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/${PN}-${MY_PV}/" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64" +IUSE="dbus network-map +ovf remote-api +usb" + +RDEPEND=" + >=app-emulation/qemu-6.0.0-r3[vnc,virtfs,spice] + dev-db/sqlite:3= + dev-libs/json-c + sys-libs/ncurses:=[unicode(+)] + usb? ( + virtual/libusb:1 + virtual/libudev:= + ) + dbus? ( sys-apps/dbus ) + network-map? ( media-gfx/graphviz[svg] ) + ovf? ( + dev-libs/libxml2:2 + app-arch/libarchive:= + ) + remote-api? ( dev-libs/openssl ) +" +DEPEND="${RDEPEND}" +BDEPEND="sys-devel/gettext" + +pkg_pretend() { + if use kernel_linux; then + if ! linux_config_exists; then + eerror "Unable to check your kernel" + else + CONFIG_CHECK="~VETH ~MACVTAP" + ERROR_VETH="You will need the Virtual ethernet pair device driver compiled" + ERROR_VETH+=" into your kernel or loaded as a module to use the" + ERROR_VETH+=" local network settings feature." + ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver." + check_extra_config + fi + fi +} + +src_configure() { + # -DNM_WITH_QEMU: Do not embbed qemu. + local mycmakeargs=( + -DNM_WITH_DBUS=$(usex dbus) + -DNM_WITH_NETWORK_MAP=$(usex network-map) + -DNM_WITH_REMOTE=$(usex remote-api) + -DNM_WITH_OVF_SUPPORT=$(usex ovf) + -DNM_WITH_QEMU=off + -DNM_WITH_USB=$(usex usb) + ) + cmake_src_configure +} + +src_install() { + cmake_src_install + docompress -x /usr/share/man/man1/nemu.1.gz +} + +pkg_postinst() { + elog "For non-root usage execute script:" + elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>" + elog "and add udev rule:" + elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /etc/udev/rules.d" + elog "Afterwards reboot or reload udev with" + elog "udevadm control --reload-rules && udevadm trigger" +} diff --git a/app-emulation/nemu/nemu-9999.ebuild b/app-emulation/nemu/nemu-9999.ebuild deleted file mode 100644 index b171fc8f123e..000000000000 --- a/app-emulation/nemu/nemu-9999.ebuild +++ /dev/null @@ -1,71 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-utils linux-info git-r3 - -DESCRIPTION="ncurses interface for QEMU" -HOMEPAGE="https://github.com/nemuTUI/nemu" -EGIT_REPO_URI="https://github.com/nemuTUI/nemu" -SRC_URI="" - -LICENSE="BSD-2" -SLOT="0" -IUSE="+vnc-client +ovf +spice savevm svg debug" - -RDEPEND=" - sys-libs/ncurses:0=[unicode] - dev-db/sqlite:3= - virtual/libusb:1 - || ( sys-fs/eudev sys-fs/udev sys-apps/systemd ) - >=app-emulation/qemu-2.12.0[vnc,virtfs,spice?] - ovf? ( - dev-libs/libxml2 - app-arch/libarchive - ) - svg? ( media-gfx/graphviz[svg] )" - -DEPEND=" - ${RDEPEND} - sys-devel/gettext" - -src_configure() { - local mycmakeargs=( - -DNM_WITH_VNC_CLIENT=$(usex vnc-client) - -DNM_DEBUG=$(usex debug) - -DNM_SAVEVM_SNAPSHOTS=$(usex savevm) - -DNM_WITH_OVF_SUPPORT=$(usex ovf) - -DNM_WITH_NETWORK_MAP=$(usex svg) - -DNM_WITH_SPICE=$(usex spice) - ) - cmake-utils_src_configure -} - -pkg_pretend() { - if use kernel_linux; then - if ! linux_config_exists; then - eerror "Unable to check your kernel" - else - CONFIG_CHECK="~VETH ~MACVTAP" - ERROR_VETH="You will need the Virtual ethernet pair device driver compiled" - ERROR_VETH+=" into your kernel or loaded as a module to use the" - ERROR_VETH+=" local network settings feature." - ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver." - - check_extra_config - fi - fi -} - -pkg_postinst() { - elog "For non-root usage execute script:" - elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>" - elog "and add udev rule:" - elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /lib/udev/rules.d" - if use savevm; then - elog "" - elog "QEMU must be patched with qemu-qmp-savevm-VERSION.patch" - elog "Get this patch from nEMU repository" - fi -} diff --git a/app-emulation/open-vm-tools/Manifest b/app-emulation/open-vm-tools/Manifest index 3860659e62e1..bdbc4e5c9a51 100644 --- a/app-emulation/open-vm-tools/Manifest +++ b/app-emulation/open-vm-tools/Manifest @@ -1,2 +1,2 @@ -DIST open-vm-tools-11.0.1-14773994.tar.gz 3972888 BLAKE2B 8ead9b37e9fa861386087d50af4e20274a9ee9fafd929da3ca0652ea2c4eecff4c203cadf02d38401bfd7ff0129ebcc7895d2819785cf2d818aac91a46f8d163 SHA512 3f500b3f0daaed01f787cf271d094b693baa18304491c3b58c79b64ab7db41b1b4a4747440e0039b2d9f9cc7e1474ee15f0ee7413544a34c2c9402443c145276 -DIST open-vm-tools-11.1.0-16036546.tar.gz 3986835 BLAKE2B f02e9426fb324ec0f4f78f43554a55ce0b615f609f888c008e8ecaf59332b9e25b0c865730cd263be1936d223c9cd5e078d304d1ddd8903cec88512cd63c258b SHA512 cd1f8399b9660ecac8222cfdc0d6331dce67db2f3a1788f21b18b201066dbcd059f429130f1fb5b416bb9a06b4882ec462a134aa8ca595f17dc48af0b7f59e8e +DIST open-vm-tools-12.2.0-21223074.tar.gz 4365836 BLAKE2B ecac1ada523b9ba6e6f9e880f700a9c35200e9093c81f3367ce3b196365166f682f7d8ba290f624417b83c3573894020fe6b4cbd82a117412ebe80df283f32db SHA512 d663d8ea455264cad7d3eaac16c5d08672e8e10f7a9171be40fff69e208ae697bc0e8af498c978d8de470ed273351b42c54994b2c552fdc05b828c80f4826b84 +DIST open-vm-tools-12.2.5-21855600.tar.gz 4365531 BLAKE2B 1df621aea3d349af45c41268f3ab9ef6dc012bc7b74b8ff399a3819f75c92b408f272c03e31ff74d7f1aceda8a88e5755064236b87403d8ef2717567de174434 SHA512 72db3b88f61624d26e8ff7e37e4fc52ecd0bec0b6f076d935870c03312321c5e0b406d05eae7012872734a50626ed760dff2cf872e26ec18ebf200aff5ed12ef diff --git a/app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch b/app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch deleted file mode 100644 index bff97811771b..000000000000 --- a/app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 1805ab024b10e8185175de7ce9c9b9db87fd0897 Mon Sep 17 00:00:00 2001 -From: Bernd Zeimetz <bernd@bzed.de> -Date: Sun, 10 Jan 2016 22:18:04 +0100 -Subject: [PATCH] Fix mount.vmhgfs symlinks if DESTDIR is used - -Without this change symlinks in the form of -sbin/mount.vmhgfs -> /build/open-vm-tools-10.0.5-3227872/debian/open-vm-tools/usr/sbin/mount.vmhgfs -are being produced, if DESTDIR was uset while running make install. ---- - open-vm-tools/hgfsmounter/Makefile.am | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/open-vm-tools/hgfsmounter/Makefile.am b/open-vm-tools/hgfsmounter/Makefile.am -index e48417e..fe70892 100644 ---- a/open-vm-tools/hgfsmounter/Makefile.am -+++ b/open-vm-tools/hgfsmounter/Makefile.am -@@ -33,14 +33,14 @@ install-exec-hook: - mv $(DESTDIR)$(sbindir)/mount.vmhgfs \ - $(DESTDIR)$(sbindir)/mount_vmhgfs - -$(MKDIR_P) $(DESTDIR)/sbin -- -$(LN_S) $(DESTDIR)$(sbindir)/mount_vmhgfs \ -+ -$(LN_S) $(sbindir)/mount_vmhgfs \ - $(DESTDIR)/sbin/mount_vmhgfs &> /dev/null - uninstall-hook: - rm -f $(DESTDIR)$(sbindir)/mount_vmhgfs - else - install-exec-hook: - -$(MKDIR_P) $(DESTDIR)/sbin -- -$(LN_S) $(DESTDIR)$(sbindir)/mount.vmhgfs \ -+ -$(LN_S) $(sbindir)/mount.vmhgfs \ - $(DESTDIR)/sbin/mount.vmhgfs &> /dev/null - uninstall-hook: - rm -f $(DESTDIR)/sbin/mount.vmhgfs diff --git a/app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch b/app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch deleted file mode 100644 index b34e06d1a227..000000000000 --- a/app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch +++ /dev/null @@ -1,60 +0,0 @@ -From f1dab8ded45aaaa4b6993a4d96d0aefc700f1796 Mon Sep 17 00:00:00 2001 -From: Oliver Kurth <okurth@vmware.com> -Date: Mon, 28 Oct 2019 16:12:42 -0700 -Subject: [PATCH] stop systemd-243 udev complaints #371 - -Address issues from pull request #371 on github: -- fix substiution variables for systemd-243 -- fix permissions of rules file -See https://github.com/vmware/open-vm-tools/pull/371 ---- - open-vm-tools/AUTHORS | 4 ++++ - open-vm-tools/udev/99-vmware-scsi-udev.rules | 6 +++--- - open-vm-tools/udev/Makefile.am | 4 ++-- - 3 files changed, 9 insertions(+), 5 deletions(-) - -diff --git a/open-vm-tools/AUTHORS b/open-vm-tools/AUTHORS -index 08cc28ef2..026de07e6 100644 ---- a/open-vm-tools/AUTHORS -+++ b/open-vm-tools/AUTHORS -@@ -49,3 +49,7 @@ Josh Paetzel Additional changes to vmmemctl.ko for FreeBSD 12.0 API changes. - - Haruki Tsurumoto Fix Asianux identification - - https://github.com/vmware/open-vm-tools/pull/325 -+ -+MilhouseVH stop systemd-243 udev complaints -+ - https://github.com/vmware/open-vm-tools/pull/371 -+ -diff --git a/open-vm-tools/udev/99-vmware-scsi-udev.rules b/open-vm-tools/udev/99-vmware-scsi-udev.rules -index 053b59706..fb4ed6844 100644 ---- a/open-vm-tools/udev/99-vmware-scsi-udev.rules -+++ b/open-vm-tools/udev/99-vmware-scsi-udev.rules -@@ -1,7 +1,7 @@ --# Copyright (C) 2016 VMware, Inc. All rights reserved. -+# Copyright (C) 2016,2019 VMware, Inc. All rights reserved. - # - # This file is part of open-vm-tools - --ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="Virtual disk*", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'" --ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="VMware Virtual S", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'" -+ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="Virtual disk*", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$env{DEVPATH}/device/timeout'" -+ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="VMware Virtual S", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$env{DEVPATH}/device/timeout'" - -diff --git a/open-vm-tools/udev/Makefile.am b/open-vm-tools/udev/Makefile.am -index 68fbc3e27..c3baadf16 100644 ---- a/open-vm-tools/udev/Makefile.am -+++ b/open-vm-tools/udev/Makefile.am -@@ -1,5 +1,5 @@ - ################################################################################ --### Copyright (C) 2016 VMware, Inc. All rights reserved. -+### Copyright (C) 2016,2019 VMware, Inc. All rights reserved. - ### - ### This program is free software; you can redistribute it and/or modify - ### it under the terms of version 2 of the GNU General Public License as -@@ -17,5 +17,5 @@ - - install-data-local: - $(INSTALL) -d $(DESTDIR)$(UDEVRULESDIR) -- $(INSTALL) $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR) -+ $(INSTALL) -m 644 $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR) - diff --git a/app-emulation/open-vm-tools/files/11.3.5-icu.patch b/app-emulation/open-vm-tools/files/11.3.5-icu.patch new file mode 100644 index 000000000000..d51c0cc60a37 --- /dev/null +++ b/app-emulation/open-vm-tools/files/11.3.5-icu.patch @@ -0,0 +1,26 @@ +From 08caf83eaa0e66cee8f3e49479cd201a10bb3919 Mon Sep 17 00:00:00 2001 +From: Mike Gilbert <floppym@gentoo.org> +Date: Sat, 25 Sep 2021 21:14:25 -0400 +Subject: [PATCH] lib/unicode: add ICU_LIBS to LDADD + +--- + open-vm-tools/lib/unicode/Makefile.am | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/open-vm-tools/lib/unicode/Makefile.am b/open-vm-tools/lib/unicode/Makefile.am +index 4284c51c..40261fba 100644 +--- a/open-vm-tools/lib/unicode/Makefile.am ++++ b/open-vm-tools/lib/unicode/Makefile.am +@@ -25,7 +25,9 @@ libUnicode_la_SOURCES += unicodeSimpleTypes.c + libUnicode_la_SOURCES += unicodeSimpleOperations.c + libUnicode_la_SOURCES += unicodeSimpleTransforms.c + libUnicode_la_SOURCES += unicodeStatic.c ++libUnicode_la_LIBADD = + + if HAVE_ICU + libUnicode_la_SOURCES += unicodeICU.c ++libUnicode_la_LIBADD += @ICU_LIBS@ + endif +-- +2.33.0 + diff --git a/app-emulation/open-vm-tools/metadata.xml b/app-emulation/open-vm-tools/metadata.xml index b3da7a11a515..f53e431f81a1 100644 --- a/app-emulation/open-vm-tools/metadata.xml +++ b/app-emulation/open-vm-tools/metadata.xml @@ -1,10 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>floppym@gentoo.org</email> - <name>Mike Gilbert</name> - </maintainer> + <!-- maintainer-needed --> <longdescription> The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools. They are a set of guest operating system @@ -23,5 +20,6 @@ </use> <upstream> <remote-id type="github">vmware/open-vm-tools</remote-id> + <remote-id type="cpe">cpe:/a:vmware:tools</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/open-vm-tools/open-vm-tools-11.1.0.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild index b9f5c70c0417..3b96f8c85ee9 100644 --- a/app-emulation/open-vm-tools/open-vm-tools-11.1.0.ebuild +++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild @@ -1,19 +1,19 @@ -# Copyright 2007-2020 Gentoo Authors +# Copyright 2007-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools linux-info pam systemd toolchain-funcs +inherit autotools linux-info pam systemd udev -DESCRIPTION="Opensourced tools for VMware guests" +DESCRIPTION="Tools for VMware guests" HOMEPAGE="https://github.com/vmware/open-vm-tools" -MY_P="${P}-16036546" +MY_P="${P}-21223074" SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV}/${MY_P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl static-libs +vgauth" +KEYWORDS="amd64 x86" +IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth" REQUIRED_USE=" multimon? ( X ) vgauth? ( ssl ) @@ -25,10 +25,11 @@ RDEPEND=" deploypkg? ( dev-libs/libmspack ) fuse? ( sys-fs/fuse:0 ) pam? ( sys-libs/pam ) - ssl? ( dev-libs/openssl:0 ) + !pam? ( virtual/libcrypt:= ) + ssl? ( dev-libs/openssl:0= ) vgauth? ( dev-libs/libxml2 - dev-libs/xmlsec + dev-libs/xmlsec:= ) X? ( x11-libs/libXext @@ -39,7 +40,7 @@ RDEPEND=" x11-libs/libXtst x11-libs/libSM x11-libs/libXcomposite - x11-libs/gdk-pixbuf:2 + x11-libs/gdk-pixbuf-xlib x11-libs/gtk+:3 gtkmm? ( dev-cpp/gtkmm:3.0 @@ -61,14 +62,14 @@ DEPEND="${RDEPEND} BDEPEND=" dev-util/glib-utils virtual/pkgconfig - doc? ( app-doc/doxygen ) + doc? ( app-text/doxygen ) " S="${WORKDIR}/${MY_P}" PATCHES=( - "${FILESDIR}/10.1.0-mount.vmhgfs.patch" "${FILESDIR}/10.1.0-Werror.patch" + "${FILESDIR}/11.3.5-icu.patch" ) pkg_setup() { @@ -88,6 +89,7 @@ src_prepare() { src_configure() { local myeconfargs=( + --disable-glibc-check --without-root-privileges $(use_enable multimon) $(use_with X x) @@ -96,12 +98,13 @@ src_configure() { $(use_enable doc docs) --disable-tests $(use_enable resolutionkms) - $(use_enable static-libs static) + --disable-static $(use_enable deploypkg) $(use_with pam) $(use_enable vgauth) $(use_with dnet) $(use_with icu) + --with-udev-rules-dir="$(get_udevdir)/rules.d" ) # Avoid a bug in configure.ac use ssl || myeconfargs+=( --without-ssl ) @@ -128,10 +131,6 @@ src_install() { systemd_dounit "${FILESDIR}"/vmtoolsd.service fi - # Replace mount.vmhgfs with a wrapper - mv "${ED}"/usr/sbin/{mount.vmhgfs,hgfsmounter} || die - dosbin "${FILESDIR}/mount.vmhgfs" - # Make fstype = vmhgfs-fuse work in fstab dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse @@ -140,3 +139,11 @@ src_install() { dobin scripts/common/vmware-xdg-detect-de fi } + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/open-vm-tools/open-vm-tools-11.0.1-r1.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild index 3fb3beb6d1d3..3808185eb0fb 100644 --- a/app-emulation/open-vm-tools/open-vm-tools-11.0.1-r1.ebuild +++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild @@ -1,19 +1,19 @@ -# Copyright 2007-2019 Gentoo Authors +# Copyright 2007-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools linux-info pam systemd toolchain-funcs +inherit autotools linux-info pam systemd udev -DESCRIPTION="Opensourced tools for VMware guests" +DESCRIPTION="Tools for VMware guests" HOMEPAGE="https://github.com/vmware/open-vm-tools" -MY_P="${P}-14773994" +MY_P="${P}-21855600" SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV}/${MY_P}.tar.gz" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl static-libs +vgauth" +KEYWORDS="amd64 x86" +IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth" REQUIRED_USE=" multimon? ( X ) vgauth? ( ssl ) @@ -25,10 +25,11 @@ RDEPEND=" deploypkg? ( dev-libs/libmspack ) fuse? ( sys-fs/fuse:0 ) pam? ( sys-libs/pam ) - ssl? ( dev-libs/openssl:0 ) + !pam? ( virtual/libcrypt:= ) + ssl? ( dev-libs/openssl:0= ) vgauth? ( dev-libs/libxml2 - dev-libs/xmlsec + dev-libs/xmlsec:= ) X? ( x11-libs/libXext @@ -39,7 +40,7 @@ RDEPEND=" x11-libs/libXtst x11-libs/libSM x11-libs/libXcomposite - x11-libs/gdk-pixbuf:2 + x11-libs/gdk-pixbuf-xlib x11-libs/gtk+:3 gtkmm? ( dev-cpp/gtkmm:3.0 @@ -61,15 +62,14 @@ DEPEND="${RDEPEND} BDEPEND=" dev-util/glib-utils virtual/pkgconfig - doc? ( app-doc/doxygen ) + doc? ( app-text/doxygen ) " S="${WORKDIR}/${MY_P}" PATCHES=( - "${FILESDIR}/10.1.0-mount.vmhgfs.patch" "${FILESDIR}/10.1.0-Werror.patch" - "${FILESDIR}/11.0.1-udev-complaints.patch" + "${FILESDIR}/11.3.5-icu.patch" ) pkg_setup() { @@ -77,6 +77,7 @@ pkg_setup() { use X && CONFIG_CHECK+=" ~DRM_VMWGFX" kernel_is -lt 3 9 || CONFIG_CHECK+=" ~VMWARE_VMCI ~VMWARE_VMCI_VSOCKETS" kernel_is -lt 3 || CONFIG_CHECK+=" ~FUSE_FS" + kernel_is -lt 5 5 || CONFIG_CHECK+=" ~X86_IOPL_IOPERM" linux-info_pkg_setup } @@ -88,6 +89,7 @@ src_prepare() { src_configure() { local myeconfargs=( + --disable-glibc-check --without-root-privileges $(use_enable multimon) $(use_with X x) @@ -96,12 +98,13 @@ src_configure() { $(use_enable doc docs) --disable-tests $(use_enable resolutionkms) - $(use_enable static-libs static) + --disable-static $(use_enable deploypkg) $(use_with pam) $(use_enable vgauth) $(use_with dnet) $(use_with icu) + --with-udev-rules-dir="$(get_udevdir)/rules.d" ) # Avoid a bug in configure.ac use ssl || myeconfargs+=( --without-ssl ) @@ -128,10 +131,6 @@ src_install() { systemd_dounit "${FILESDIR}"/vmtoolsd.service fi - # Replace mount.vmhgfs with a wrapper - mv "${ED}"/usr/sbin/{mount.vmhgfs,hgfsmounter} || die - dosbin "${FILESDIR}/mount.vmhgfs" - # Make fstype = vmhgfs-fuse work in fstab dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse @@ -140,3 +139,11 @@ src_install() { dobin scripts/common/vmware-xdg-detect-de fi } + +pkg_postinst() { + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/pcem/Manifest b/app-emulation/pcem/Manifest index 3129bda1758a..a350cb7eb993 100644 --- a/app-emulation/pcem/Manifest +++ b/app-emulation/pcem/Manifest @@ -1 +1 @@ -DIST PCemV16Linux.tar.gz 1859892 BLAKE2B e388031e661b9320cc783e6400bdb7c191a2f946d9c207d9a58daa9270115b32ed55ac6a0b87227b51d10168e7d161bb03811eb83f5405ed1a71f7bfc6fd8aa5 SHA512 97d33ae1c4b59f281abe553ed4297c0d6c3956cf32b44474bfd5773700dd5c4ea6c209c679b9add5d4a7cba61748ee9794afa3c59af3230fa2a15812e13fd1c5 +DIST PCemV17Linux.tar.gz 1880868 BLAKE2B 64068f0f98e8fe3e9bfe42a04f462375a7ee0cb8259b103237f3b0542f54ad13ed625a55c8379e2c54a87348ed504496a6b163419855ceeda8e4f18e1ea5dcd9 SHA512 6d84c8cbe9b6116f6439f542ac08139cfc5652a34b615a1ed841a6f8c227e77f1d26573ec35d57511b9a69e7472fbe51f2abb9307f8f8c1207c74fbe8107cadd diff --git a/app-emulation/pcem/files/pcem-15-respect-cflags.patch b/app-emulation/pcem/files/pcem-15-respect-cflags.patch deleted file mode 100644 index 734812a69daa..000000000000 --- a/app-emulation/pcem/files/pcem-15-respect-cflags.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/configure.ac 2019-05-19 18:40:05.000000000 +0200 -+++ b/configure.ac 2019-09-21 17:34:53.499993726 +0200 -@@ -31,8 +31,8 @@ - CXXFLAGS="-Wall -O0 -g -D_DEBUG" - AC_MSG_RESULT([yes]) - else -- CFLAGS="-O3" -- CXXFLAGS="-O3" -+ CFLAGS?="-O3" -+ CXXFLAGS?="-O3" - AC_MSG_RESULT([no]) - fi - diff --git a/app-emulation/pcem/files/pcem-17-respect-cflags.patch b/app-emulation/pcem/files/pcem-17-respect-cflags.patch new file mode 100644 index 000000000000..0e9d28885595 --- /dev/null +++ b/app-emulation/pcem/files/pcem-17-respect-cflags.patch @@ -0,0 +1,11 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -31,8 +31,6 @@ + CXXFLAGS="-Wall -O0 -g -D_DEBUG -fcommon" + AC_MSG_RESULT([yes]) + else +- CFLAGS="-O3 -fcommon" +- CXXFLAGS="-O3 -fcommon" + AC_MSG_RESULT([no]) + fi + diff --git a/app-emulation/pcem/metadata.xml b/app-emulation/pcem/metadata.xml index b25ac367e489..2e2c78f17257 100644 --- a/app-emulation/pcem/metadata.xml +++ b/app-emulation/pcem/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>conikost@gentoo.org</email> diff --git a/app-emulation/pcem/pcem-16-r1.ebuild b/app-emulation/pcem/pcem-17-r2.ebuild index 42c969775c84..47e17b588639 100644 --- a/app-emulation/pcem/pcem-16-r1.ebuild +++ b/app-emulation/pcem/pcem-17-r2.ebuild @@ -1,11 +1,10 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools desktop wxwidgets - -WX_GTK_VER="3.0-gtk3" +WX_GTK_VER="3.2-gtk3" +inherit autotools desktop flag-o-matic wxwidgets DESCRIPTION="A PC emulator that specializes in running old operating systems and software" HOMEPAGE=" @@ -13,26 +12,25 @@ HOMEPAGE=" https://github.com/sarah-walker-pcem/pcem/ " SRC_URI="https://pcem-emulator.co.uk/files/PCemV${PV}Linux.tar.gz" +S="${WORKDIR}" LICENSE="GPL-2+" SLOT="0" KEYWORDS="amd64" IUSE="alsa networking" -S="${WORKDIR}" - RDEPEND=" alsa? ( media-libs/alsa-lib ) media-libs/libsdl2 media-libs/openal x11-libs/wxGTK:${WX_GTK_VER}[tiff,X] " - -DEPEND="${DEPEND}" - +DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" -PATCHES=( "${FILESDIR}/${PN}-15-respect-cflags.patch" ) +DOCS=( "README.md" "TESTED.md" ) + +PATCHES=( "${FILESDIR}/${PN}-17-respect-cflags.patch" ) src_prepare() { default @@ -41,14 +39,22 @@ src_prepare() { } src_configure() { + setup-wxwidgets + # Does not compile with -fno-common. # See https://pcem-emulator.co.uk/phpBB3/viewtopic.php?f=3&t=3443 append-cflags -fcommon + # LTO needs to be filtered + # See https://bugs.gentoo.org/854528 + filter-lto + append-flags -fno-strict-aliasing + local myeconfargs=( --enable-release-build $(use_enable alsa) $(use_enable networking) + --with-wx-config="${WX_CONFIG}" ) econf "${myeconfargs[@]}" @@ -63,7 +69,7 @@ src_install() { newicon src/icons/32x32/motherboard.png pcem.png make_desktop_entry "pcem" "PCem" pcem "Development;Utility" - dodoc readme.txt + einstalldocs } pkg_postinst() { diff --git a/app-emulation/phpvirtualbox/metadata.xml b/app-emulation/phpvirtualbox/metadata.xml index 2ee0da8b117c..ead318766d1d 100644 --- a/app-emulation/phpvirtualbox/metadata.xml +++ b/app-emulation/phpvirtualbox/metadata.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> <upstream> - <remote-id type="google-code">phpvirtualbox</remote-id> + <remote-id type="github">phpvirtualbox/phpvirtualbox</remote-id> <remote-id type="sourceforge">phpvirtualbox</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/plus42/Manifest b/app-emulation/plus42/Manifest new file mode 100644 index 000000000000..a39ba8b0a7ae --- /dev/null +++ b/app-emulation/plus42/Manifest @@ -0,0 +1,2 @@ +DIST plus42-upstream-1.1.3.tgz 7610112 BLAKE2B 6c55a8c2acebbc0e442308e0f078d2ac86f9866d9dbe808a17007a3c3729114f24379401267787107d11e4f3559e14c86f39051da3a956928a7c4c97c1867c31 SHA512 05fd0fb3f330ad0842d28df46ec89d3347cbfca776c6e73092261a96f860677d8f9a6de96ee98adfed4abe5d950a45cec6e6056bb97dd471204d644cbdb82d10 +DIST plus42-upstream-1.1.9.tgz 7612675 BLAKE2B d6b05221b11705c553be2cabe8adc81b892861b86aeb3b234e7fef44bb79551b74f94caaa563f3fa55bc62f988545493d118bab488818cc835ccbfd309c95874 SHA512 bbfd519006c3f24de469a0c928271edb9a2ee92c32bf1eccb313fffb4e13e461875f608561149b8d8de57565cb835c407c7ee2bcf959b198a728669160ff85f6 diff --git a/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch new file mode 100644 index 000000000000..283c6c1435be --- /dev/null +++ b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch @@ -0,0 +1,65 @@ +diff -Naur free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh free42-nologo-3.0.16/gtk/build-intel-lib.sh +--- free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh 2022-10-29 17:03:11.000000000 +0200 ++++ free42-nologo-3.0.16/gtk/build-intel-lib.sh 2022-11-06 22:09:42.384802729 +0100 +@@ -10,13 +10,6 @@ + fi + fi + +-which gcc >/dev/null +-if [ $? -eq 0 ]; then +- CC=gcc +-else +- CC=cc +-fi +- + # Hack to support FreeBSD; not 100% sure what this does, but it produces a + # library that passes all tests. + +@@ -64,8 +57,11 @@ + ;; + esac + ++patch -p0 <../intel-lib-custom-cc.patch ++ + cd LIBRARY +-$MK $OS_ARG CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG ++echo $MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG ++$MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG + mv libbid.a ../../gcc111libbid.a + cd ../.. + ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc +diff -Naur free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch +--- free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch 1970-01-01 01:00:00.000000000 +0100 ++++ free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch 2022-11-06 22:18:35.428433045 +0100 +@@ -0,0 +1,31 @@ ++diff -Naur orig/LIBRARY/makefile.iml_head LIBRARY/makefile.iml_head ++--- orig/LIBRARY/makefile.iml_head 2011-07-12 17:26:21.000000000 +0200 +++++ LIBRARY/makefile.iml_head 2022-11-06 22:18:17.048411637 +0100 ++@@ -527,12 +527,8 @@ ++ CC_TYPES := gcc cl ++ INTEL_CC_LIST := icc icl ++ ++-CC_NAME_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST)) ++-ifeq ($(CC_NAME_INDEX),) ++- $(error "Unknown CC_NAME ($(CC_NAME)). Must be one of $(CC_NAME_LIST)) ++-endif ++ ++-CC_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST)) +++CC_INDEX := 3 ++ CC_TYPE := $(word $(CC_INDEX),$(CC_TYPE_LIST)) ++ CC_TYPE_INDEX := $(call GetIndex,$(CC_TYPE),$(CC_TYPES)) ++ ++@@ -543,13 +539,6 @@ ++ _CPP := $(CC_NAME) $(call CcNameSelect,-EP,-EP,-E -P,-EP) ++ _CC := $(CC_NAME) $(call CcNameSelect,, -nologo,, -nologo) ++ ++-ifeq ($(origin CC),default) ++- CC := $(_CC) ++-endif ++-ifeq ($(origin CPP),default) ++- CPP := $(_CPP) ++-endif ++- ++ CselCc = $(call Cset,$1,$(call CcTypeSelect,$2,$3)) ++ ++ QOPT := $(call CselCc, QOPT, -, /Q ) diff --git a/app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch b/app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch new file mode 100644 index 000000000000..b66c15b89b5a --- /dev/null +++ b/app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch @@ -0,0 +1,25 @@ +diff -Naur plus42-upstream-1.0.9.orig/gtk/Makefile plus42-upstream-1.0.9/gtk/Makefile +--- plus42-upstream-1.0.9.orig/gtk/Makefile 2022-06-19 14:44:32.000000000 +0200 ++++ plus42-upstream-1.0.9/gtk/Makefile 2022-07-04 19:37:35.533799322 +0200 +@@ -40,9 +40,10 @@ + -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \ + -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 + +-CXXFLAGS = $(CFLAGS) \ ++CXXFLAGS := $(CFLAGS) \ + -fno-rtti \ +- -D_WCHAR_T_DEFINED ++ -D_WCHAR_T_DEFINED \ ++ ${CXXFLAGS} + + LIBS = gcc111libbid.a $(shell $(PKG_CONFIG) --libs gtk+-3.0) + +@@ -121,7 +122,7 @@ + ./keymap2cc + + gcc111libbid.a: +- sh ./build-intel-lib.sh ++ +sh ./build-intel-lib.sh + ln -s IntelRDFPMathLib20U1/TESTS/readtest.c + + symlinks: diff --git a/app-emulation/plus42/metadata.xml b/app-emulation/plus42/metadata.xml new file mode 100644 index 000000000000..3104198ce549 --- /dev/null +++ b/app-emulation/plus42/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>voyageur@gentoo.org</email> + <name>Bernard Cafarelli</name> + </maintainer> + <upstream> + <remote-id type="github">thomasokken/plus42desktop</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/plus42/plus42-1.1.3.ebuild b/app-emulation/plus42/plus42-1.1.3.ebuild new file mode 100644 index 000000000000..b779379a5982 --- /dev/null +++ b/app-emulation/plus42/plus42-1.1.3.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_PV="${PN}-upstream-${PV}" + +DESCRIPTION="An Enhanced HP-42S Calculator Simulator" +HOMEPAGE="https://thomasokken.com/plus42/" +SRC_URI="https://thomasokken.com/plus42/upstream/${MY_PV}.tgz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+alsa" + +DEPEND="app-accessibility/at-spi2-core + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/gtk+:3 + alsa? ( media-libs/alsa-lib )" + +RDEPEND="${DEPEND}" + +DOCS=( CREDITS HISTORY README ) +S="${WORKDIR}/${MY_PV}" + +PATCHES=( + "${FILESDIR}/${PN}-1.0.9-fix-makefile.patch" + "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch" +) + +src_prepare() { + default +} + +src_compile() { + local myconf + use alsa && myconf="AUDIO_ALSA=yes" + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk + emake -C gtk clean + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk +} + +src_install() { + default + dobin gtk/plus42bin gtk/plus42dec +} diff --git a/app-emulation/plus42/plus42-1.1.9.ebuild b/app-emulation/plus42/plus42-1.1.9.ebuild new file mode 100644 index 000000000000..3916a804001b --- /dev/null +++ b/app-emulation/plus42/plus42-1.1.9.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +MY_PV="${PN}-upstream-${PV}" + +DESCRIPTION="An Enhanced HP-42S Calculator Simulator" +HOMEPAGE="https://thomasokken.com/plus42/" +SRC_URI="https://thomasokken.com/plus42/upstream/${MY_PV}.tgz" +S=${WORKDIR}/${MY_PV} + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+alsa" + +DEPEND="app-accessibility/at-spi2-core + x11-libs/cairo + x11-libs/gdk-pixbuf + x11-libs/gtk+:3 + alsa? ( media-libs/alsa-lib )" +RDEPEND="${DEPEND}" + +DOCS=( CREDITS HISTORY README ) + +PATCHES=( + "${FILESDIR}/${PN}-1.0.9-fix-makefile.patch" + "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch" +) + +src_prepare() { + default +} + +src_compile() { + local myconf + use alsa && myconf="AUDIO_ALSA=yes" + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk + emake -C gtk clean + emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk +} + +src_install() { + default + dobin gtk/plus42bin gtk/plus42dec +} diff --git a/app-emulation/protontricks/Manifest b/app-emulation/protontricks/Manifest index afc7360b5036..792b86075eb6 100644 --- a/app-emulation/protontricks/Manifest +++ b/app-emulation/protontricks/Manifest @@ -1,2 +1,2 @@ -DIST protontricks-1.4.1.tar.gz 31838 BLAKE2B b8c94a1b96fa7df14eaf1cc6d11cb96e43ae4e8c7bd232687a50cae9c79cf2d0e7864b1af0e1dc4cc20086952e1fcefeb16cb71a9c3a977f6feafad1b17d6857 SHA512 7635c9830afa3c64617514cd86edc7d7f9f33e6e81a1da995ec8bee70adc1cf8b5d9de92036c372134e408d735615b267b46a9afc9246f14ff161cb2ee1fc8f9 -DIST protontricks-1.4.2.gh.tar.gz 41381 BLAKE2B 9030c5cc0781303834af3b478e78f9ba43f01c68c5e203df20a9db80492dd5e641134b796158011a15e65f6907f27a67c542323ea8f9e10c49dca3f5c663458a SHA512 8b60233723130e5f7cd1a7ce7b9563ba1cc8595352b6d942d9ce66a6906f18d86cf97e2b49cbdb8e276fad6cd038eaf1de8a704a8b900b29de5dfb7327b045d0 +DIST protontricks-1.10.5.tar.gz 163931 BLAKE2B 299fd6c77460de3d2fa1b585a1ad3dae857e4b78898c753007b358cc25b82918d33cb31c2028a4b1b562ee6c20b95ebafc532d97e2bc1fa5358464c6a4c1da5c SHA512 305b27ceaf428946a0ed09994173c861da1097c0bd21eebcc8b255bed3c4c50a920f0cc422601fbd44e0af373b71e928096fdd6f4cc2aa05c88126212fb4401f +DIST protontricks-1.11.1.tar.gz 166843 BLAKE2B af6692b081d1d819bef39fd69c2108454b6dfcc29b004415a73aa0c0463e3887ddffe0e10864799f665f81fc90e5365accab1722af046f50a08bb7ba221f7e23 SHA512 eb0233180ba41c91ba78072ea2aabe9e8fea5b452fba0fd56aaf17e0282b0ee04e81d3665a7be546e3112382e0b574bb077af6b6be6ad2156dabc3112a1b831b diff --git a/app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch b/app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch deleted file mode 100644 index fac3ed813d4e..000000000000 --- a/app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch +++ /dev/null @@ -1,36 +0,0 @@ -Since version 1.4.1 upstream has used setuptools-scm to determine the -current version number. Unfortunately the package in question does not -support GitHub release archives, using GitHub VCS snapshots would require -retrieving and updating commit hashes corresponding to release tags, and -PyPI tarballs do not contain tests. setuptools_scm_git_archive does not -help because it requires extra files to be included in the repository, -which upstream has not done. - -Seeing as we already know the version number, bypass setuptools_scm -altogether and create the version file ourselves. For obvious reasons the -latter cannot be done with a patch alone - have to call sed in src_prepare. - ---- a/setup.py -+++ b/setup.py -@@ -16,9 +16,6 @@ - - setup( - name="protontricks", -- use_scm_version={ -- "write_to": "src/protontricks/_version.py" -- }, - description=DESCRIPTION, - long_description=LONG_DESCRIPTION, - author=AUTHOR, -@@ -28,7 +25,6 @@ - packages=["protontricks"], - package_data={"": ["LICENSE"]}, - package_dir={"protontricks": "src/protontricks"}, -- setup_requires=["setuptools_scm"], - install_requires=["vdf>=2.4"], - entry_points={ - "console_scripts": [ ---- /dev/null -+++ b/src/protontricks/_version.py -@@ -0,0 +1 @@ -+version = '@VERSION@' diff --git a/app-emulation/protontricks/metadata.xml b/app-emulation/protontricks/metadata.xml index e18d1ed94ac5..c813e008582a 100644 --- a/app-emulation/protontricks/metadata.xml +++ b/app-emulation/protontricks/metadata.xml @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>marecki@gentoo.org</email> <name>Marek Szuba</name> </maintainer> + <stabilize-allarches/> <longdescription lang="en"> A simple wrapper script that allows you to easily run Winetricks commands for Steam Play/Proton games. This is often useful when a game requires closed-source runtime libraries that are not diff --git a/app-emulation/protontricks/protontricks-1.4.1.ebuild b/app-emulation/protontricks/protontricks-1.10.5.ebuild index cd8f8b2402a3..4c4ddf7953ad 100644 --- a/app-emulation/protontricks/protontricks-1.4.1.ebuild +++ b/app-emulation/protontricks/protontricks-1.10.5.ebuild @@ -1,31 +1,27 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) +EAPI=8 +PYTHON_COMPAT=( python3_{10..12} pypy3 ) DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_SETUPTOOLS=rdepend -inherit distutils-r1 +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 pypi xdg-utils DESCRIPTION="app-emulation/winetricks wrapper for Proton (Steam Play) games" HOMEPAGE="https://github.com/Matoking/protontricks" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" LICENSE="GPL-3" SLOT="0" KEYWORDS="amd64" IUSE="+gui" -BDEPEND=" - $(python_gen_cond_dep ' - dev-python/setuptools_scm[${PYTHON_USEDEP}] - ')" -RDEPEND="${PYTHON_DEPS} - app-emulation/winetricks +RDEPEND="app-emulation/winetricks $(python_gen_cond_dep ' - dev-python/vdf[${PYTHON_MULTI_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/vdf[${PYTHON_USEDEP}] ') gui? ( gnome-extra/zenity || ( @@ -33,14 +29,17 @@ RDEPEND="${PYTHON_DEPS} app-emulation/winetricks[kde] ) )" +BDEPEND="$(python_gen_cond_dep ' + dev-python/setuptools-scm[${PYTHON_USEDEP}] +')" -# Tarballs from PyPI do not contain tests, and we cannot use GitHub releases -# any more because they are incompatible with setuptools_scm. -RESTRICT="test" +DOCS=( CHANGELOG.md README.md ) -DOCS=(CHANGELOG.md README.md) +distutils_enable_tests pytest pkg_postinst() { + xdg_desktop_database_update + elog if ! use gui; then @@ -53,3 +52,7 @@ pkg_postinst() { elog "Make sure to run a Proton game at least once before trying to use protontricks on it." elog } + +pkg_postrm() { + xdg_desktop_database_update +} diff --git a/app-emulation/protontricks/protontricks-1.4.2.ebuild b/app-emulation/protontricks/protontricks-1.11.1.ebuild index aff61b39a84c..fc9689a51050 100644 --- a/app-emulation/protontricks/protontricks-1.4.2.ebuild +++ b/app-emulation/protontricks/protontricks-1.11.1.ebuild @@ -1,18 +1,16 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6..9} pypy3 ) +PYTHON_COMPAT=( python3_{10..12} pypy3 ) DISTUTILS_SINGLE_IMPL=1 -DISTUTILS_USE_SETUPTOOLS=rdepend +DISTUTILS_USE_PEP517=setuptools -inherit distutils-r1 +inherit distutils-r1 pypi xdg-utils DESCRIPTION="app-emulation/winetricks wrapper for Proton (Steam Play) games" HOMEPAGE="https://github.com/Matoking/protontricks" -# Will remove the .gh bit come next version bump -SRC_URI="https://github.com/Matoking/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz" LICENSE="GPL-3" SLOT="0" @@ -21,6 +19,8 @@ IUSE="+gui" RDEPEND="app-emulation/winetricks $(python_gen_cond_dep ' + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] dev-python/vdf[${PYTHON_USEDEP}] ') gui? ( gnome-extra/zenity @@ -29,21 +29,17 @@ RDEPEND="app-emulation/winetricks app-emulation/winetricks[kde] ) )" - -PATCHES=( - "${FILESDIR}"/${PN}-1.4.1_no-setuptools-scm.patch -) +BDEPEND="$(python_gen_cond_dep ' + dev-python/setuptools-scm[${PYTHON_USEDEP}] +')" DOCS=( CHANGELOG.md README.md ) distutils_enable_tests pytest -python_prepare_all() { - distutils-r1_python_prepare_all - sed -i -e "s/@VERSION@/${PV}/" "${S}"/src/${PN}/_version.py || die -} - pkg_postinst() { + xdg_desktop_database_update + elog if ! use gui; then @@ -56,3 +52,7 @@ pkg_postinst() { elog "Make sure to run a Proton game at least once before trying to use protontricks on it." elog } + +pkg_postrm() { + xdg_desktop_database_update +} diff --git a/app-emulation/punes/Manifest b/app-emulation/punes/Manifest index 44c8a05db29c..8161798f4ed7 100644 --- a/app-emulation/punes/Manifest +++ b/app-emulation/punes/Manifest @@ -1 +1 @@ -DIST punes-0.106.tar.gz 5595484 BLAKE2B aa3bb5c869e679b19829a3d1de970517d6d626e0ed2404a9ed09d16af8fabb1ee3258ec8fbb4027fb6b70b5449b2bb7ac6880f43c3ba846687c65d8a0eeaf3f2 SHA512 f35c5cee05464cb11f130938cf7aa519d4dea35dbf52ce3606c3c6bb2596bc59b75e11816a5b44c7b1c9d402a299b4db49727087b4c93c3cb2ba473adfdd4fa2 +DIST punes-0.111.tar.gz 57538299 BLAKE2B a900fe2bc9117e6739e58a43e457bfa466053d5a96ae5ad1333d7e0bc11eafb2408a96dc7e35ddf1a3cee50cafe99549a43d2abb629b106bbb1082878a845cc6 SHA512 6388cdf2b303e217adfe43b1b3b1ef66a75b6adfdb0363b213c47fc129b5815f3e96814ee25a3637147dc184203cef0438930c280f0c6249085ecac1220b435c diff --git a/app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch b/app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch new file mode 100644 index 000000000000..065483ad058f --- /dev/null +++ b/app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch @@ -0,0 +1,33 @@ +From e1516fcefe3dcc9710ae85cce0f536fd2d9fdcd6 Mon Sep 17 00:00:00 2001 +From: Fabio Cavallo <punes.development@gmail.com> +Date: Sat, 23 Mar 2024 10:34:34 +0100 +Subject: [PATCH] Fixed compilation with FULLSCREEN_RESFREQ disabled (#388). + +--- a/src/core/emu.c ++++ b/src/core/emu.c +@@ -43,11 +43,11 @@ + #include "recent_roms.h" + #include "../../c++/crc/crc.h" + #include "gui.h" ++#include "nes20db.h" + #include "video/effects/pause.h" + #include "video/effects/tv_noise.h" + #if defined (FULLSCREEN_RESFREQ) + #include "video/gfx_monitor.h" +-#include "nes20db.h" + #endif + + #define RS_SCALE (1.0f / (1.0f + (float)RAND_MAX)) +--- a/src/gui/wdgOverlayUi.cpp ++++ b/src/gui/wdgOverlayUi.cpp +@@ -34,9 +34,9 @@ + #include "rewind.h" + #include "version.h" + #include "nes.h" ++#include "input/standard_controller.h" + #if defined (FULLSCREEN_RESFREQ) + #include "video/gfx_monitor.h" +-#include "input/standard_controller.h" + #endif + + void overlay_info_append_qstring(BYTE alignment, const QString &msg); diff --git a/app-emulation/punes/metadata.xml b/app-emulation/punes/metadata.xml index 23b1c9a0b21e..5008ea7a724f 100644 --- a/app-emulation/punes/metadata.xml +++ b/app-emulation/punes/metadata.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> + <maintainer type="person" proxied="yes"> <email>azamat.hackimov@gmail.com</email> <name>Azamat H. Hackimov</name> </maintainer> - <maintainer type="project"> + <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> diff --git a/app-emulation/punes/punes-0.106.ebuild b/app-emulation/punes/punes-0.106.ebuild deleted file mode 100644 index 1cdb9cc4f012..000000000000 --- a/app-emulation/punes/punes-0.106.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools xdg-utils - -DESCRIPTION="Nintendo Entertainment System (NES) emulator" -HOMEPAGE="https://github.com/punesemu/puNES" -SRC_URI="https://github.com/punesemu/puNES/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="cg" - -RDEPEND=" - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - media-libs/alsa-lib - virtual/glu - virtual/opengl" -DEPEND="${RDEPEND}" -BDEPEND=" - cg? ( media-gfx/nvidia-cg-toolkit ) - dev-qt/linguist-tools:5 - virtual/pkgconfig" - -S="${WORKDIR}/puNES-${PV}" - -src_prepare() { - default - - sed -i "/update-desktop-database/d" misc/Makefile.am || die - eautoreconf - # FIXME why eautoreconf can't handle this? - cd "src/extra/lib7zip-1.6.5" || die - eautoreconf -} - -src_configure() { - econf \ - $(use_with cg opengl-nvidia-cg) -} - -pkg_postinst() { - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update -} - -pkg_postrm() { - xdg_icon_cache_update - xdg_desktop_database_update - xdg_mimeinfo_database_update -} diff --git a/app-emulation/punes/punes-0.111.ebuild b/app-emulation/punes/punes-0.111.ebuild new file mode 100644 index 000000000000..03071411bec5 --- /dev/null +++ b/app-emulation/punes/punes-0.111.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake xdg + +DESCRIPTION="Nintendo Entertainment System (NES) emulator" +HOMEPAGE="https://github.com/punesemu/puNES" +SRC_URI="https://github.com/punesemu/puNES/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/puNES-${PV}" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="X cg ffmpeg qt6" + +RDEPEND=" + media-libs/alsa-lib + media-libs/libglvnd[X?] + virtual/glu + virtual/udev + X? ( + x11-libs/libX11 + x11-libs/libXrandr + ) + cg? ( media-gfx/nvidia-cg-toolkit ) + ffmpeg? ( media-video/ffmpeg:= ) + qt6? ( + dev-qt/qtbase:6[gui,network,opengl,widgets] + dev-qt/qtsvg:6 + ) + !qt6? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtnetwork:5 + dev-qt/qtsvg:5 + dev-qt/qtwidgets:5 + )" + +DEPEND=" + ${RDEPEND} + X? ( x11-base/xorg-proto )" +BDEPEND=" + virtual/pkgconfig + qt6? ( dev-qt/qttools[linguist] ) + !qt6? ( dev-qt/linguist-tools:5 )" + +PATCHES=( + "${FILESDIR}/punes-0.111-FULLSCREEN_RESFREQ-fix.patch" +) + +src_configure() { + local mycmakeargs=( + -DENABLE_GIT_INFO=OFF + -DENABLE_QT6_LIBS=$(usex qt6) + -DDISABLE_PORTABLE_MODE=OFF + -DENABLE_FFMPEG=$(usex ffmpeg) + -DENABLE_FULLSCREEN_RESFREQ=$(usex X) + -DENABLE_OPENGL_CG=$(usex cg) + ) + cmake_src_configure +} diff --git a/app-emulation/q4wine/Manifest b/app-emulation/q4wine/Manifest index 354fecf5321e..5f97e112b9a9 100644 --- a/app-emulation/q4wine/Manifest +++ b/app-emulation/q4wine/Manifest @@ -1 +1 @@ -DIST q4wine-1.3.12.tar.bz2 2875348 BLAKE2B 0656574542c218163a0d7bef6d09459e7816a936f1d4c2fcf3ee15416aca23f6c97895b7f2f34e9a40b64f904cad579062ab173cc93f00c543a1ae861bf3f179 SHA512 c384c5c57b3bbea9f5ba2940e990c7ff28c9f410c9abd33fe1f17973b67bdf85dad4c74809ad3a225eaea49796221ab04e2e29dd81ea8ef7015e9b7adf9ab44e +DIST q4wine-1.3.13.tar.bz2 2862153 BLAKE2B ad70ec0c4122d7eb6acc14976fc8194e1250beadd38762f726ccb9f40fe0f61e5c46fa40727fd2323521db4ba01a759c678d5ead7cb247fdd2e7da6ae47d9e05 SHA512 1e364519889713192f39115093740827c96ee33092ac0a3ee6c548790fc380687481e999bfb0e9df725e6497877d6b3808714a698f794e97ad86c360d505509b diff --git a/app-emulation/q4wine/metadata.xml b/app-emulation/q4wine/metadata.xml index 098a455159e2..d5f783f41ca2 100644 --- a/app-emulation/q4wine/metadata.xml +++ b/app-emulation/q4wine/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>qt@gentoo.org</email> diff --git a/app-emulation/q4wine/q4wine-1.3.12.ebuild b/app-emulation/q4wine/q4wine-1.3.13.ebuild index 81b76c34c437..b5d1301ef420 100644 --- a/app-emulation/q4wine/q4wine-1.3.12.ebuild +++ b/app-emulation/q4wine/q4wine-1.3.13.ebuild @@ -1,25 +1,23 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 # Upstream names the package PV-rX. We change that to # PV_pX so we can use portage revisions. MY_P=${PN}-${PV/_p/-r} -inherit xdg cmake +inherit cmake xdg DESCRIPTION="Qt GUI configuration tool for Wine" HOMEPAGE="https://q4wine.brezblock.org.ua/" SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2" +S="${WORKDIR}"/${MY_P} LICENSE="GPL-3" SLOT="0" KEYWORDS="amd64 x86" IUSE="+dbus debug +ico +iso +wineappdb" -BDEPEND=" - dev-qt/linguist-tools:5 -" DEPEND=" dev-qt/qtcore:5 dev-qt/qtgui:5 @@ -37,8 +35,7 @@ RDEPEND="${DEPEND} >=sys-apps/which-2.19 iso? ( sys-fs/fuseiso ) " - -S="${WORKDIR}"/${MY_P} +BDEPEND="dev-qt/linguist-tools:5" DOCS=( AUTHORS ChangeLog README ) diff --git a/app-emulation/qemu-guest-agent/Manifest b/app-emulation/qemu-guest-agent/Manifest index 51faa0caf06a..44032f6790ed 100644 --- a/app-emulation/qemu-guest-agent/Manifest +++ b/app-emulation/qemu-guest-agent/Manifest @@ -1,4 +1,6 @@ -DIST qemu-3.1.0.tar.xz 36070104 BLAKE2B 9ed7d1b3256d84f2b73d61763e20f5e4bc5b47d56e4e0d56cf4c29cd25669457b0f08e90d7255589c9666400bb310df3dba3b9290232cad18057b20f08013a3b SHA512 7e8dae823937cfac2f0c60406bd3bdcb89df40313dab2a4bed327d5198f7fcc68ac8b31e44692caa09299cc71256ee0b8c17e4f49f78ada8043d424f5daf82fe -DIST qemu-4.0.0.tar.xz 55628624 BLAKE2B 8afd1f54aa13d2e61fd36c4f4544b7c4ffb1a7eee5c69d3aa1d40a432ca296ad8abe6cb83d7c66ac4045ca624d2a00e737f51e4e62ed46fef9766ef71f43b98b SHA512 952e94194ce9e64c15388c59035cb31fb9f761d30095c2fb9441012b609c18c9976285727b93bf37b95e15675802d73f8e1c4619ebecd23606675bb503646b13 -DIST qemu-4.2.0.tar.xz 62222068 BLAKE2B 27c9fbcd5093af425764674817ab9299224bd03f37b5983786f6f437fff1fab3b7da247c55c4ca8b8c42726b9867005944a2f7f04f2d0d94d753961615f901ef SHA512 2a79973c2b07c53e8c57a808ea8add7b6b2cbca96488ed5d4b669ead8c9318907dec2b6109f180fc8ca8f04c0f73a56e82b3a527b5626b799d7e849f2474ec56 -DIST qemu-5.0.0.tar.xz 62426192 BLAKE2B 785d02ef79c95b5c4f0556186054885f9893d4e8a9f4b4f2d6199a4e1ae9c31d7c79dd900305469217f85d61bbe74134b601d5c6c1b0eee2b74792d010f1fd63 SHA512 21ef0cbe107c468a40f0fa2635db2a40048c8790b629dfffca5cd62bb1b502ea8eb133bfc40df5ecf1489e2bffe87f6829aee041cb8a380ff04a8afa23b39fcf +DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4 +DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f +DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27 +DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a +DIST qemu-8.0.3.tar.xz 126710536 BLAKE2B 071cc1a35209a02e8c5dd4f43cb112f110b4655adb0f870a04fdf9a6e2c761699574e8c9426f70f60787a99acf252d7a64d94a8e837cdfeda93d89428d7866f3 SHA512 18b2ccb65f7ec2ae92f0e04406539620c881e2b75f63816588c86043a07464bb99d16a83e792ed9508de393f4b694c46d52f4d07edf52741e85224c8b8d5d5c3 +DIST qemu-8.2.0.tar.xz 130008888 BLAKE2B a63667042e1e19c635568072d8dcc117320117e81e374a93cfb79e2363ebf505df3217fb098638e53c899eb6f83435221e8031f2aae003c27ec25af8654683b3 SHA512 92ec41196ff145cdbb98948f6b6e43214fa4b4419554a8a1927fb4527080c8212ccb703e184baf8ee0bdfa50ad7a84689e8f5a69eba1bd7bbbdfd69e3b91256c diff --git a/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch b/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch new file mode 100644 index 000000000000..b6ef6214af55 --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch @@ -0,0 +1,10 @@ +This gets confused by python-any-r1 and tries to find sphinx-build in ${T}. +--- a/docs/meson.build ++++ b/docs/meson.build +@@ -1,5 +1,4 @@ +-sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build', +- required: get_option('docs')) ++sphinx_build = find_program('sphinx-build', required: get_option('docs')) + + # Check if tools are available to build documentation. + build_docs = false diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-2.5.0-sysmacros.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-2.5.0-sysmacros.patch deleted file mode 100644 index 4d5690c59ae4..000000000000 --- a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-2.5.0-sysmacros.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/580924 - -Linux C libs are moving away from implicit header pollution with sys/types.h - ---- a/include/qemu/osdep.h -+++ b/include/qemu/osdep.h -@@ -78,6 +78,10 @@ extern int daemon(int, int); - #include <assert.h> - #include <signal.h> - -+#ifdef __linux__ -+#include <sys/sysmacros.h> -+#endif -+ - #ifdef __OpenBSD__ - #include <sys/signal.h> - #endif diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch deleted file mode 100644 index f69781694f1d..000000000000 --- a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qemu-4.2.0/qga/commands-posix.c.orig 2020-03-23 11:15:05.972610989 +0300 -+++ qemu-4.2.0/qga/commands-posix.c 2020-03-23 11:15:39.676015087 +0300 -@@ -108,7 +108,7 @@ - reopen_fd_to_null(1); - reopen_fd_to_null(2); - -- execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0", -+ execle("/sbin/shutdown", "shutdown", "-h", "now", shutdown_flag, "+0", - "hypervisor initiated shutdown", (char*)NULL, environ); - _exit(EXIT_FAILURE); - } else if (pid < 0) { diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch deleted file mode 100644 index 94b6a2c8bb3f..000000000000 --- a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch +++ /dev/null @@ -1,17 +0,0 @@ -https://bugs.gentoo.org/580924 - -Linux C libs are moving away from implicit header pollution with sys/types.h - ---- a/include/qemu/osdep.h -+++ b/include/qemu/osdep.h -@@ -118,6 +118,10 @@ extern int daemon(int, int); - #include <setjmp.h> - #include <signal.h> - -+#ifdef __linux__ -+#include <sys/sysmacros.h> -+#endif -+ - #ifdef __OpenBSD__ - #include <sys/signal.h> - #endif diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch new file mode 100644 index 000000000000..dff62304a5c7 --- /dev/null +++ b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch @@ -0,0 +1,85 @@ +From 33ab5f24913db8d5590fe4155829bd38e7902506 Mon Sep 17 00:00:00 2001 +Message-Id: <33ab5f24913db8d5590fe4155829bd38e7902506.1666164897.git.mprivozn@redhat.com> +From: Michal Privoznik <mprivozn@redhat.com> +Date: Fri, 14 Oct 2022 09:30:15 +0200 +Subject: [PATCH] configure: Avoid using strings binary + +When determining the endiandness of the target architecture we're +building for a small program is compiled, which in an obfuscated +way declares two strings. Then, we look which string is in +correct order (using strings binary) and deduct the endiandness. +But using the strings binary is problematic, because it's part of +toolchain (strings is just a symlink to +x86_64-pc-linux-gnu-strings or llvm-strings). And when +(cross-)compiling, it requires users to set the symlink to the +correct toolchain. + +Fortunately, we have a better alternative anyways. We can mimic +what compiler.h is already doing: comparing __BYTE_ORDER__ +against values for little/big endiandness. + +Bug: https://bugs.gentoo.org/876933 +Signed-off-by: Michal Privoznik <mprivozn@redhat.com> +Message-Id: <d6d9c7043cfe6d976d96694f2b4ecf85cf3206f1.1665732504.git.mprivozn@redhat.com> +Cc: qemu-stable@nongnu.org +Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> +--- + configure | 35 ++++++++++++++++++----------------- + 1 file changed, 18 insertions(+), 17 deletions(-) + +diff --git a/configure b/configure +index f9ec050bf8..81561be7c1 100755 +--- a/configure ++++ b/configure +@@ -1423,30 +1423,31 @@ if test "$tcg" = "enabled"; then + git_submodules="$git_submodules tests/fp/berkeley-softfloat-3" + fi + +-# --- ++########################################## + # big/little endian test + cat > $TMPC << EOF +-#include <stdio.h> +-short big_endian[] = { 0x4269, 0x4765, 0x4e64, 0x4961, 0x4e00, 0, }; +-short little_endian[] = { 0x694c, 0x7454, 0x654c, 0x6e45, 0x6944, 0x6e41, 0, }; +-int main(int argc, char *argv[]) +-{ +- return printf("%s %s\n", (char *)big_endian, (char *)little_endian); +-} ++#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ++# error LITTLE ++#endif ++int main(void) { return 0; } + EOF + +-if compile_prog ; then +- if strings -a $TMPE | grep -q BiGeNdIaN ; then +- bigendian="yes" +- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then +- bigendian="no" +- else +- echo big/little test failed +- exit 1 +- fi ++if ! compile_prog ; then ++ bigendian="no" + else ++ cat > $TMPC << EOF ++#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++# error BIG ++#endif ++int main(void) { return 0; } ++EOF ++ ++ if ! compile_prog ; then ++ bigendian="yes" ++ else + echo big/little test failed + exit 1 ++ fi + fi + + ########################################## +-- +2.37.3 + diff --git a/app-emulation/qemu-guest-agent/metadata.xml b/app-emulation/qemu-guest-agent/metadata.xml index 88bcd95b4c70..8995a7240036 100644 --- a/app-emulation/qemu-guest-agent/metadata.xml +++ b/app-emulation/qemu-guest-agent/metadata.xml @@ -1,7 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> + <email>ajak@gentoo.org</email> + <name>John Helmert III</name> + </maintainer> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <maintainer type="person"> <email>tamiko@gentoo.org</email> <name>Matthias Maier</name> </maintainer> diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild index bef260b3de02..e1c778871839 100644 --- a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.0.0.ebuild +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild @@ -1,11 +1,11 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI="7" -PYTHON_COMPAT=( python3_6 ) +PYTHON_COMPAT=( python3_{9..11} ) -inherit eutils systemd toolchain-funcs udev python-any-r1 +inherit systemd toolchain-funcs udev python-any-r1 MY_PN="qemu" MY_P="${MY_PN}-${PV}" @@ -27,10 +27,6 @@ DEPEND="${RDEPEND} S="${WORKDIR}/${MY_P}" -PATCHES=( - "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch #580924 -) - src_configure() { tc-export AR LD OBJCOPY RANLIB @@ -43,7 +39,7 @@ src_configure() { --disable-linux-user --disable-system --disable-strip - --disable-tools + --enable-tools --disable-werror --enable-guest-agent --python="${PYTHON}" @@ -55,12 +51,8 @@ src_configure() { ./configure "${myconf[@]}" || die } -src_compile() { - emake V=1 qemu-ga -} - src_install() { - dobin qemu-ga + dobin build/qga/qemu-ga # Normal init stuff newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent @@ -79,4 +71,9 @@ src_install() { pkg_postinst() { elog "You should add 'qemu-guest-agent' to the default runlevel." elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload } diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.2.0-r1.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild index 46783392cf0b..89b3517badc9 100644 --- a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.2.0-r1.ebuild +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild @@ -1,35 +1,33 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) +PYTHON_COMPAT=( python3_{9..11} ) -inherit eutils systemd toolchain-funcs udev python-any-r1 +inherit edo systemd toolchain-funcs python-any-r1 udev MY_PN="qemu" MY_P="${MY_PN}-${PV}" -SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" -KEYWORDS="amd64 ~ppc ~ppc64 x86" - DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" LICENSE="GPL-2 BSD-2" SLOT="0" -IUSE="" +KEYWORDS="amd64 ~ppc ~ppc64 x86" RDEPEND="dev-libs/glib" - -DEPEND="${RDEPEND} - ${PYTHON_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + app-alternatives/ninja" S="${WORKDIR}/${MY_P}" PATCHES=( - "${FILESDIR}"/${PN}-4.2.0-sysmacros.patch #580924 - "${FILESDIR}"/${PN}-4.2.0-fix-shutdown.patch #681874 + "${FILESDIR}"/${PN}-7.1.0-configure-Avoid-using-strings-binary.patch ) src_configure() { @@ -44,7 +42,7 @@ src_configure() { --disable-linux-user --disable-system --disable-strip - --disable-tools + --enable-tools --disable-werror --enable-guest-agent --python="${PYTHON}" @@ -52,16 +50,12 @@ src_configure() { --cxx="$(tc-getCXX)" --host-cc="$(tc-getBUILD_CC)" ) - echo "./configure ${myconf[*]}" - ./configure "${myconf[@]}" || die -} -src_compile() { - emake V=1 qemu-ga + edo ./configure "${myconf[@]}" } src_install() { - dobin qemu-ga + dobin build/qga/qemu-ga # Normal init stuff newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent @@ -80,4 +74,9 @@ src_install() { pkg_postinst() { elog "You should add 'qemu-guest-agent' to the default runlevel." elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload } diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-3.1.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild index bef260b3de02..4b64963e345a 100644 --- a/app-emulation/qemu-guest-agent/qemu-guest-agent-3.1.0.ebuild +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild @@ -1,34 +1,32 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -PYTHON_COMPAT=( python3_6 ) +PYTHON_COMPAT=( python3_{9..11} ) -inherit eutils systemd toolchain-funcs udev python-any-r1 +inherit edo systemd toolchain-funcs python-any-r1 udev MY_PN="qemu" MY_P="${MY_PN}-${PV}" -SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" -KEYWORDS="amd64 ~ppc ~ppc64 x86" - DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" LICENSE="GPL-2 BSD-2" SLOT="0" -IUSE="" +KEYWORDS="amd64 ~ppc ~ppc64 x86" RDEPEND="dev-libs/glib" - -DEPEND="${RDEPEND} - ${PYTHON_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + app-alternatives/ninja" S="${WORKDIR}/${MY_P}" PATCHES=( - "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch #580924 ) src_configure() { @@ -43,7 +41,7 @@ src_configure() { --disable-linux-user --disable-system --disable-strip - --disable-tools + --enable-tools --disable-werror --enable-guest-agent --python="${PYTHON}" @@ -51,16 +49,12 @@ src_configure() { --cxx="$(tc-getCXX)" --host-cc="$(tc-getBUILD_CC)" ) - echo "./configure ${myconf[*]}" - ./configure "${myconf[@]}" || die -} -src_compile() { - emake V=1 qemu-ga + edo ./configure "${myconf[@]}" } src_install() { - dobin qemu-ga + dobin build/qga/qemu-ga # Normal init stuff newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent @@ -79,4 +73,9 @@ src_install() { pkg_postinst() { elog "You should add 'qemu-guest-agent' to the default runlevel." elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload } diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-5.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild index 513caae41cee..cbca89288f83 100644 --- a/app-emulation/qemu-guest-agent/qemu-guest-agent-5.0.0.ebuild +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild @@ -1,35 +1,32 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) +PYTHON_COMPAT=( python3_{9..11} ) -inherit eutils systemd toolchain-funcs udev python-any-r1 +inherit edo systemd toolchain-funcs python-any-r1 udev MY_PN="qemu" MY_P="${MY_PN}-${PV}" -SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" -KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" - DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" LICENSE="GPL-2 BSD-2" SLOT="0" -IUSE="" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" RDEPEND="dev-libs/glib" - -DEPEND="${RDEPEND} - ${PYTHON_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + app-alternatives/ninja" S="${WORKDIR}/${MY_P}" PATCHES=( - "${FILESDIR}"/${PN}-4.2.0-sysmacros.patch #580924 - "${FILESDIR}"/${PN}-4.2.0-fix-shutdown.patch #681874 ) src_configure() { @@ -44,7 +41,7 @@ src_configure() { --disable-linux-user --disable-system --disable-strip - --disable-tools + --enable-tools --disable-werror --enable-guest-agent --python="${PYTHON}" @@ -52,16 +49,12 @@ src_configure() { --cxx="$(tc-getCXX)" --host-cc="$(tc-getBUILD_CC)" ) - echo "./configure ${myconf[*]}" - ./configure "${myconf[@]}" || die -} -src_compile() { - emake V=1 qemu-ga + edo ./configure "${myconf[@]}" } src_install() { - dobin qemu-ga + dobin build/qga/qemu-ga # Normal init stuff newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent @@ -80,4 +73,9 @@ src_install() { pkg_postinst() { elog "You should add 'qemu-guest-agent' to the default runlevel." elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload } diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild new file mode 100644 index 000000000000..86f9742a3e18 --- /dev/null +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit edo systemd toolchain-funcs python-any-r1 udev + +MY_PN="qemu" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" +HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" + +LICENSE="GPL-2 BSD-2" +SLOT="0" +KEYWORDS="amd64 ~ppc ~ppc64 x86" + +RDEPEND="dev-libs/glib" +DEPEND="${RDEPEND}" +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + app-alternatives/ninja" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( +) + +src_configure() { + tc-export AR LD OBJCOPY RANLIB + + local myconf=( + --prefix=/usr + --sysconfdir=/etc + --libdir="/usr/$(get_libdir)" + --localstatedir=/ + --disable-bsd-user + --disable-linux-user + --disable-system + --disable-strip + --enable-tools + --disable-werror + --without-default-features + --enable-guest-agent + --python="${PYTHON}" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --host-cc="$(tc-getBUILD_CC)" + ) + + edo ./configure "${myconf[@]}" +} + +src_install() { + dobin build/qga/qemu-ga + + # Normal init stuff + newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent + newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent + + insinto /etc/logrotate.d + newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent + + # systemd stuff + udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules + + systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \ + qemu-guest-agent.service +} + +pkg_postinst() { + elog "You should add 'qemu-guest-agent' to the default runlevel." + elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild new file mode 100644 index 000000000000..19ce1d04753c --- /dev/null +++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit edo systemd toolchain-funcs python-any-r1 udev + +MY_PN="qemu" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM" +HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent" +SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz" + +LICENSE="GPL-2 BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86" + +RDEPEND="dev-libs/glib" +DEPEND="${RDEPEND}" +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + app-alternatives/ninja" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/qemu-8.1.0-find-sphinx.patch +) + +src_configure() { + tc-export AR LD OBJCOPY RANLIB + + local myconf=( + --prefix=/usr + --sysconfdir=/etc + --libdir="/usr/$(get_libdir)" + --localstatedir=/ + --disable-bsd-user + --disable-linux-user + --disable-system + --disable-strip + --enable-tools + --disable-werror + --without-default-features + --enable-guest-agent + --python="${PYTHON}" + --cc="$(tc-getCC)" + --cxx="$(tc-getCXX)" + --host-cc="$(tc-getBUILD_CC)" + ) + + edo ./configure "${myconf[@]}" +} + +src_test() { + # qga only uses generic code covered by qobject tests, + # the full test suite requires at least one softmmu binary + emake check-unit +} + +src_install() { + dobin build/qga/qemu-ga + + # Normal init stuff + newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent + newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent + + insinto /etc/logrotate.d + newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent + + # systemd stuff + udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules + + systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \ + qemu-guest-agent.service +} + +pkg_postinst() { + elog "You should add 'qemu-guest-agent' to the default runlevel." + elog "e.g. rc-update add qemu-guest-agent default" + udev_reload +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/qemu-init-scripts/metadata.xml b/app-emulation/qemu-init-scripts/metadata.xml index 7a38bb900964..115e9d64a669 100644 --- a/app-emulation/qemu-init-scripts/metadata.xml +++ b/app-emulation/qemu-init-scripts/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> </pkgmetadata> diff --git a/app-emulation/qemu-riscv64-bin/Manifest b/app-emulation/qemu-riscv64-bin/Manifest deleted file mode 100644 index dca4fafb8830..000000000000 --- a/app-emulation/qemu-riscv64-bin/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST qemu-riscv64-bin-3.1.0-r4.tar.xz 889764 BLAKE2B 888fef2f27f44be098e9b834b083558ce18d98337612b4de2278ffe5d6599248d9ed4e99153ad9b2c1a5b773131c420bb23ce6d080943af744df34464660bc42 SHA512 bc92110f6730c61bd39056d0bf3f84b35ed340a47af51b28b27554f9f2f72409221d2c81826b718742475d0fc48040c81e8f051e29b4f13412c3a39e282471e0 -DIST qemu-riscv64-bin-5.0.0.tar.xz 922240 BLAKE2B d4ff41c8e45ca99bc1b9e795d9e218b05be283b32d179e8ab88d07bd333a52fce7893739e6572219083d5d56a7abb7cc1870df7c585ca41af15b56a5dc30369d SHA512 1ba28679ce4bf1f11b77059dae8cb76f0095cc4427159d769947b8a1b1212c9de0a25a236c69ff9780dd111a22fa6e01519a3017b0b0a5d29069575501552f40 diff --git a/app-emulation/qemu-riscv64-bin/metadata.xml b/app-emulation/qemu-riscv64-bin/metadata.xml deleted file mode 100644 index 304c5d2c5ff3..000000000000 --- a/app-emulation/qemu-riscv64-bin/metadata.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>riscv@gentoo.org</email> - <name>RISC-V</name> - </maintainer> - <maintainer type="person"> - <email>tamiko@gentoo.org</email> - <name>Matthias Maier</name> - </maintainer> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild b/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild deleted file mode 100644 index 650e2af57e19..000000000000 --- a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2019-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Statically linked x86-64 binary of app-emulation/qemu, riscv64 emulator" - -HOMEPAGE="http://www.qemu.org" -SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${PN}-${PVR}.tar.xz" -LICENSE="GPL-2 LGPL-2 BSD-2" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND="!app-emulation/qemu[qemu_user_targets_riscv64]" - -QA_PREBUILT="*" - -S=${WORKDIR} - -src_install() { - dobin qemu-riscv64 -} diff --git a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild b/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild deleted file mode 100644 index 650e2af57e19..000000000000 --- a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2019-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Statically linked x86-64 binary of app-emulation/qemu, riscv64 emulator" - -HOMEPAGE="http://www.qemu.org" -SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${PN}-${PVR}.tar.xz" -LICENSE="GPL-2 LGPL-2 BSD-2" -SLOT="0" -KEYWORDS="~amd64" - -RDEPEND="!app-emulation/qemu[qemu_user_targets_riscv64]" - -QA_PREBUILT="*" - -S=${WORKDIR} - -src_install() { - dobin qemu-riscv64 -} diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest index 5dd8a4c2408c..a6d749083741 100644 --- a/app-emulation/qemu/Manifest +++ b/app-emulation/qemu/Manifest @@ -1 +1,15 @@ -DIST qemu-5.1.0.tar.xz 62911540 BLAKE2B 6a3ecbda2d9274f2736ffbc88d2006be31f153e7687e1425c1a297975f0e828cd2eafc11d11b589991acda87a489dd256ccf5a8947f91bb9431e515e979d8f29 SHA512 e213edb71d93d5167ddce7546220ecb7b52a7778586a4f476f65bd1e510c9cfc6d1876238a7b501d9cc3fd31cc2ae4b7fb9e753bc3f12cc17cd16dfce2a96ba3 +DIST berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037.tar.bz2 84094 BLAKE2B 396f9df2e6ad559545054e89916915c3a3c8ff80e5e409498fec497b564d8b3ac9dd3cb966e26dce232ddff82af18a0e84e864ca18a80c2a2f4fe47e320249c2 SHA512 93c20d50a356c90f4293d8c7593611b2e0a9bc7567b6d946319f8ae06962ae1e297c8788f66fd38a1d3a0d44661bff9a07a63eaa84c8bb40ae01a45476be446c +DIST berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263.tar.bz2 90086 BLAKE2B ab2070622453a7a0a1fbcf234df68cc7316474c04482b2ac13c700edbb5624968c5274f337dc84f06c4ab6c3e82698cd7b0b30fe206d004b0715f15a2cc7cfd1 SHA512 969892af9fdf16d45660753ed02bbd8d6159928e5e6ef2f87aed8a08d995bb19d2115fb6b559522074492b2595716d314c5c059bfa69c7fbb5aab9275582c22e +DIST keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6.tar.bz2 27971 BLAKE2B 0ed69ad24c53bd459c8753565814bcc1cd858f20d3a046c38912a35bcb0ba6d388ef5d2b93157cd028959284b330caf5467d82071c3df56a405dd8e08fd177c7 SHA512 8f2cc14e8bd46cb045e3ebfe32e463793ab7472ebda9b57b8ea0b06fa107a1a99c3ebcacb9c4548e30698d8ec154c0e56f789385201182b680819b8068a103f2 +DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585 +DIST qemu-7.2.10.tar.xz 121311584 BLAKE2B e3b5156302cc699c38ad966340f68b1c72d00a2c420732368a22a9671a27d87ccd64e06c97b2e47d1dddf2d1d202b5103a6fc51221502b1c812d1c63a082d976 SHA512 d402dc49b9ed5da773785ce9c8ed75b66985286ab8a2f0956cb88277b9da88a5a86cf02226c6b24fe63635405f2fe89ebac9288cf2d4b59df22b4d05c2a8fe30 +DIST qemu-7.2.4.tar.xz 121849100 BLAKE2B a9c5ffce9ff0fac4e2d1fa4be1a1dcee2f5d7f793ddf726871c5ae9a68c22f7ba03692a8a5096de3051030d3c2f34e46697d5af2d66c34984b8161ae3bb07b42 SHA512 fa765673833a1f2cbecdb9d47dc7dc29d7613be5a5c8fc63925ae70e1f5aafb4f9f02e45b212a329f17b689351b8a9cdf5f5235ab6adb71bb40e41868898d95b +DIST qemu-7.2.9.tar.xz 121870204 BLAKE2B 3336541124f96c09aec05721ce77e8187f8d29c716a05419fcb2b9510976683e58dd791205971d9daa11d3053eb211343225597de1bae72b07467e5acac2a851 SHA512 b1aa2316f6e2fe1e972b6d1aabf7c04b06bca3863143c6a523b5fda40bb8841bec27e0774f24adc4b3267cf1f1d39ba81246eb3d15d7273904a0df8e8503077d +DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054 +DIST qemu-8.0.4.tar.xz 126179324 BLAKE2B dfb98964c629b251f0004b4630ae4500a52465579417d6f5c7dbbb1f672e10d8d7ffb98a4b00e26fb98b3c867208146dbdca026e4d30cbf1752ac733c4d9b915 SHA512 bd5ed682d51f974abd4be93f949701f9b5bfb87fd9929e31df130534da2f2c03b99adc9f924b3efd47d3b254e0e3c0046f4e69fbe9f6d0c4ac1f6babecb29449 +DIST qemu-8.0.5.tar.xz 126175064 BLAKE2B 1d1f78c185ab64b4ca946a44ad04d0bbb6ea48de058037e4ba18176abeb0f0528754c6e832f742f93227182bbce145544eca5b908a366006e7ee58876aca0bda SHA512 ec9679473dda84a2f56ae8ee0039ec4dafb056414bfc5a3a147b2b6bb45ae3b130dd80f6385e8567b5d18f4be94f3536bc8acc45c61eddf40c9678b46cb8bddc +DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9 +DIST qemu-8.1.5.tar.xz 124007248 BLAKE2B 0d5db3e18c4dc1035fed442116be98b7e7bbfae905e4facef3278ef5a488332fa2d8e6599169fa1f740e96a035027e989c5cdffc0bfd4e0ca0fca1d0a537e8da SHA512 1005e0602a763979c4d0ec6e79a390e4232dcc3d0b8461fe42856c58e54ad25a2079f3850d27023fce8a2b382b36e3baa7882b69d48cbb72002984c160241c92 +DIST qemu-8.2.0-docs.tar.xz 2233352 BLAKE2B 22b9499fdf4ff93e72399dab3803f3171c855859dc7fe111612e2f9146db244ca6d2e0aad16aefdf29b231d2b3a2fbc22171fe6bac13b03445d54555ce798d16 SHA512 f57e78c28277c153fff00b25097d0df5c6ad36cb4e9f3acf30382bfb1c99508503c186c1bbecf266810ef24fd618428fdf3e0eee41c715a552918c9e6ef9e8e5 +DIST qemu-8.2.1.tar.xz 129848448 BLAKE2B af5b03fecd41c376daece7598c01755c458d38e045486f33e2915cc7d4856f23b4478a2c1a32a7eb600c4fc675c24df55007840c8a3c6d1fd2d585c74848f02e SHA512 e72d3e13339c03e8d371ca060ac700c45af2ca37523cddb6b02dcaf8430d75c8cef194cf496df9816440b281f368457def1126677db757928805d93ceca2f9af +DIST qemu-8.2.2.tar.xz 129398020 BLAKE2B ceecbae945d9ac1bd85935266c33b91aedbc201796b38a9cb721d778ba8b35f07d01af8c5ce572e68e637ae94455c70ddcf9087579231613f92828bccafa93f4 SHA512 dfd2e1305f9e51bfbc90a7738c69336d5f805481a626ea527b971bdfb6dbe6867e5df7461d48d1c22b79be2dc18e057ea9fa36ef593127cd8b262a5c33f1aa41 diff --git a/app-emulation/qemu/files/65-kvm.rules-r1 b/app-emulation/qemu/files/65-kvm.rules-r2 index ab3776ac29e3..15c89b201879 100644 --- a/app-emulation/qemu/files/65-kvm.rules-r1 +++ b/app-emulation/qemu/files/65-kvm.rules-r2 @@ -1,2 +1,3 @@ KERNEL=="kvm", GROUP="kvm", MODE="0660" KERNEL=="vhost-net", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-net" +KERNEL=="vhost-vsock", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-vsock" diff --git a/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch b/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch deleted file mode 100644 index d79570ebb8aa..000000000000 --- a/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qemu-2.11.1/include/disas/capstone.h 2018-02-14 22:53:22.000000000 +0100 -+++ qemu-2.11.1/include/disas/capstone.h 2018-02-17 20:12:12.754703951 +0100 -@@ -3,7 +3,7 @@ - - #ifdef CONFIG_CAPSTONE - --#include <capstone.h> -+#include <capstone/capstone.h> - - #else - diff --git a/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch b/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch deleted file mode 100644 index 95ccdd7a4b1c..000000000000 --- a/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Makefile b/Makefile -index 04a0d450..e0013a59 100644 ---- a/Makefile -+++ b/Makefile -@@ -803,6 +802,7 @@ - $(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir)) - endif - ifdef CONFIG_TRACE_SYSTEMTAP -+ mkdir -p $(DESTDIR)$(bindir) - $(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir) - endif - ifneq ($(BLOBS),) diff --git a/app-emulation/qemu/files/qemu-4.2.0-cflags.patch b/app-emulation/qemu/files/qemu-4.2.0-cflags.patch deleted file mode 100644 index 101926589a61..000000000000 --- a/app-emulation/qemu/files/qemu-4.2.0-cflags.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git i/configure w/configure -index a72a5def57..546d757603 100755 ---- i/configure -+++ w/configure -@@ -6093,10 +6093,6 @@ write_c_skeleton - if test "$gcov" = "yes" ; then - QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS" - QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS" --elif test "$fortify_source" = "yes" ; then -- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS" --elif test "$debug" = "no"; then -- CFLAGS="-O2 $CFLAGS" - fi - - if test "$have_asan" = "yes"; then - diff --git a/app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch b/app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch deleted file mode 100644 index 4eb644fde543..000000000000 --- a/app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch +++ /dev/null @@ -1,62 +0,0 @@ -https://bugs.gentoo.org/735146 - -From 4fd46e6cdd976f4aecdc3fbbad728e00a7bc4ee0 Mon Sep 17 00:00:00 2001 -From: Rafael Kitover <rkitover@gmail.com> -Date: Thu, 13 Aug 2020 20:19:24 +0000 -Subject: [PATCH] configure: Require pixman for vhost-user-gpu. - -Use the test from Makefile to check if vhost-user-gpu is being built, -and if so require pixman. - -Signed-off-by: Rafael Kitover <rkitover@gmail.com> ---- - configure | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - ---- a/configure -+++ b/configure -@@ -4062,20 +4062,6 @@ if test "$modules" = yes; then - fi - fi - --########################################## --# pixman support probe -- --if test "$softmmu" = "no"; then -- pixman_cflags= -- pixman_libs= --elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then -- pixman_cflags=$($pkg_config --cflags pixman-1) -- pixman_libs=$($pkg_config --libs pixman-1) --else -- error_exit "pixman >= 0.21.8 not present." \ -- "Please install the pixman devel package." --fi -- - ########################################## - # libmpathpersist probe - -@@ -4491,6 +4477,20 @@ if test "$opengl" = "yes" && test "$have_x11" = "yes"; then - done - fi - -+########################################## -+# pixman support probe -+ -+if test "$softmmu" = "no" && ! test "${linux} ${virglrenderer} ${gbm} ${want_tools}" = "yes yes yes yes"; then -+ pixman_cflags= -+ pixman_libs= -+elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then -+ pixman_cflags=$($pkg_config --cflags pixman-1) -+ pixman_libs=$($pkg_config --libs pixman-1) -+else -+ error_exit "pixman >= 0.21.8 not present." \ -+ "Please install the pixman devel package." -+fi -+ - ########################################## - # libxml2 probe - if test "$libxml2" != "no" ; then --- -2.28.0 - diff --git a/app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch b/app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch deleted file mode 100644 index d1d23ec6f0e5..000000000000 --- a/app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch +++ /dev/null @@ -1,90 +0,0 @@ -https://bugs.gentoo.org/743649 - -From b946434f2659a182afc17e155be6791ebfb302eb Mon Sep 17 00:00:00 2001 -From: Gerd Hoffmann <kraxel@redhat.com> -Date: Tue, 25 Aug 2020 07:36:36 +0200 -Subject: [PATCH] usb: fix setup_len init (CVE-2020-14364) - -Store calculated setup_len in a local variable, verify it, and only -write it to the struct (USBDevice->setup_len) in case it passed the -sanity checks. - -This prevents other code (do_token_{in,out} functions specifically) -from working with invalid USBDevice->setup_len values and overrunning -the USBDevice->setup_buf[] buffer. - -Fixes: CVE-2020-14364 -Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> -Tested-by: Gonglei <arei.gonglei@huawei.com> -Reviewed-by: Li Qiang <liq3ea@gmail.com> -Message-id: 20200825053636.29648-1-kraxel@redhat.com ---- - hw/usb/core.c | 16 ++++++++++------ - 1 file changed, 10 insertions(+), 6 deletions(-) - -diff --git a/hw/usb/core.c b/hw/usb/core.c -index 5abd128b6b..5234dcc73f 100644 ---- a/hw/usb/core.c -+++ b/hw/usb/core.c -@@ -129,6 +129,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream) - static void do_token_setup(USBDevice *s, USBPacket *p) - { - int request, value, index; -+ unsigned int setup_len; - - if (p->iov.size != 8) { - p->status = USB_RET_STALL; -@@ -138,14 +139,15 @@ static void do_token_setup(USBDevice *s, USBPacket *p) - usb_packet_copy(p, s->setup_buf, p->iov.size); - s->setup_index = 0; - p->actual_length = 0; -- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; -- if (s->setup_len > sizeof(s->data_buf)) { -+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; -+ if (setup_len > sizeof(s->data_buf)) { - fprintf(stderr, - "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", -- s->setup_len, sizeof(s->data_buf)); -+ setup_len, sizeof(s->data_buf)); - p->status = USB_RET_STALL; - return; - } -+ s->setup_len = setup_len; - - request = (s->setup_buf[0] << 8) | s->setup_buf[1]; - value = (s->setup_buf[3] << 8) | s->setup_buf[2]; -@@ -259,26 +261,28 @@ static void do_token_out(USBDevice *s, USBPacket *p) - static void do_parameter(USBDevice *s, USBPacket *p) - { - int i, request, value, index; -+ unsigned int setup_len; - - for (i = 0; i < 8; i++) { - s->setup_buf[i] = p->parameter >> (i*8); - } - - s->setup_state = SETUP_STATE_PARAM; -- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; - s->setup_index = 0; - - request = (s->setup_buf[0] << 8) | s->setup_buf[1]; - value = (s->setup_buf[3] << 8) | s->setup_buf[2]; - index = (s->setup_buf[5] << 8) | s->setup_buf[4]; - -- if (s->setup_len > sizeof(s->data_buf)) { -+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6]; -+ if (setup_len > sizeof(s->data_buf)) { - fprintf(stderr, - "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n", -- s->setup_len, sizeof(s->data_buf)); -+ setup_len, sizeof(s->data_buf)); - p->status = USB_RET_STALL; - return; - } -+ s->setup_len = setup_len; - - if (p->pid == USB_TOKEN_OUT) { - usb_packet_copy(p, s->data_buf, s->setup_len); --- -2.28.0 - diff --git a/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch new file mode 100644 index 000000000000..4b5676be4d29 --- /dev/null +++ b/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch @@ -0,0 +1,25 @@ +Do not use system's 'qemu-keymap' in native case. +--- a/meson.build ++++ b/meson.build +@@ -337,6 +337,8 @@ if 'CONFIG_LIBCAP_NG' in config_host + endif + if get_option('xkbcommon').auto() and not have_system and not have_tools + xkbcommon = not_found ++elif get_option('xkbcommon').disabled() ++ xkbcommon = not_found + else + xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'), + method: 'pkg-config', static: enable_static) +--- a/pc-bios/keymaps/meson.build ++++ b/pc-bios/keymaps/meson.build +@@ -33,7 +33,9 @@ keymaps = { + 'tr': '-l tr', + } + +-if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host ++if meson.is_cross_build() + native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true) ++elif get_option('xkbcommon').disabled() ++ native_qemu_keymap = not_found + else + native_qemu_keymap = qemu_keymap diff --git a/app-emulation/qemu/files/qemu-6.0.0-make.patch b/app-emulation/qemu/files/qemu-6.0.0-make.patch new file mode 100644 index 000000000000..2dac1ca11d99 --- /dev/null +++ b/app-emulation/qemu/files/qemu-6.0.0-make.patch @@ -0,0 +1,14 @@ +Allow MAKE='make V=1' and similar. + +https://bugs.gentoo.org/795678 +--- a/configure ++++ b/configure +@@ -1953,7 +1953,7 @@ if test -z "$python" + then + error_exit "Python not found. Use --python=/path/to/python" + fi +-if ! has "$make" ++if ! has $make + then + error_exit "GNU make ($make) not found" + fi diff --git a/app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch new file mode 100644 index 000000000000..b6f3078a6906 --- /dev/null +++ b/app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch @@ -0,0 +1,32 @@ +From d02ea89239768c93651a161d057f2bf04d56a024 Mon Sep 17 00:00:00 2001 +From: Matthias Maier <tamiko@43-1.org> +Date: Mon, 4 Apr 2022 12:56:59 +0200 +Subject: [PATCH] also build virtfs-proxy-helper + +The Gentoo ebuild splits the qemu build into a softmmu, user and tool +phase in order to be able to build and link some of the qemu emulators +statically. This unfortunately has the consequence that we never +configure with "have_virtfs" and "have_tools" at the same time. + +As a workaround, simply build the virtfs userland unconditionally. After +all, it is a tiny executable +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 65a885ea69..29ce7a5a8e 100644 +--- a/meson.build ++++ b/meson.build +@@ -1684,7 +1684,7 @@ have_virtfs = get_option('virtfs') \ + .disable_auto_if(not have_tools and not have_system) \ + .allowed() + +-have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools ++have_virtfs_proxy_helper = have_tools and libattr.found() and libcap_ng.found() + + if get_option('block_drv_ro_whitelist') == '' + config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') +-- +2.35.1 + diff --git a/app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch b/app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch new file mode 100644 index 000000000000..585e798345f4 --- /dev/null +++ b/app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch @@ -0,0 +1,31 @@ +Forward ported from qemu-2.11.1-capstone_include_path.patch. +This time also fix the capstone.h header check to use the path we're +already patching in. + +Bug: https://bugs.gentoo.org/873157 +diff --git a/include/disas/capstone.h b/include/disas/capstone.h +index e29068dd97..d8fdc5d537 100644 +--- a/include/disas/capstone.h ++++ b/include/disas/capstone.h +@@ -3,7 +3,7 @@ + + #ifdef CONFIG_CAPSTONE + +-#include <capstone.h> ++#include <capstone/capstone.h> + + #else + +diff --git a/meson.build b/meson.build +index 20fddbd707..50ce96bbd1 100644 +--- a/meson.build ++++ b/meson.build +@@ -2605,7 +2605,7 @@ if not get_option('capstone').auto() or have_system or have_user + # that reports a wrong -I path, causing the #include to + # fail later. If the system has such a broken version + # do not use it. +- if capstone.found() and not cc.compiles('#include <capstone.h>', ++ if capstone.found() and not cc.compiles('#include <capstone/capstone.h>', + dependencies: [capstone]) + capstone = not_found + if get_option('capstone').enabled() diff --git a/app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch b/app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch new file mode 100644 index 000000000000..3050228b4e0c --- /dev/null +++ b/app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch @@ -0,0 +1,45 @@ +commit 433c2acd1b9c3f7f5903273e85fed9a7f9157b23 +Author: John Helmert III <ajak@gentoo.org> +Date: Wed Jan 4 12:25:08 2023 -0600 + + meson.build: disable gmp + + gmp isn't required, and we want to avoid linking to it automatigcally + in Gentoo. + + Bug: https://bugs.gentoo.org/886207 + Signed-off-by: John Helmert III <ajak@gentoo.org> + +diff --git a/meson.build b/meson.build +index 5c6b5a1c75..2f9550362d 100644 +--- a/meson.build ++++ b/meson.build +@@ -1234,15 +1234,6 @@ if not gnutls_crypto.found() + endif + endif + +-gmp = dependency('gmp', required: false, method: 'pkg-config', kwargs: static_kwargs) +-if nettle.found() and gmp.found() +- hogweed = dependency('hogweed', version: '>=3.4', +- method: 'pkg-config', +- required: get_option('nettle'), +- kwargs: static_kwargs) +-endif +- +- + gtk = not_found + gtkx11 = not_found + vte = not_found +diff --git a/meson_options.txt b/meson_options.txt +index 4b749ca549..e06b274960 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -277,6 +277,8 @@ option('vduse_blk_export', type: 'feature', value: 'auto', + + option('capstone', type: 'feature', value: 'auto', + description: 'Whether and how to find the capstone library') ++option('gmp', type: 'feature', value: 'auto', ++ description: 'Whether or not to find the gmp library') + option('fdt', type: 'combo', value: 'auto', + choices: ['disabled', 'enabled', 'auto', 'system', 'internal'], + description: 'Whether and how to find the libfdt library') diff --git a/app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch b/app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch new file mode 100644 index 000000000000..2a58ca1ad735 --- /dev/null +++ b/app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch @@ -0,0 +1,137 @@ +https://bugs.gentoo.org/895662 +https://gitlab.com/qemu-project/qemu/-/commit/9f0246539ae84a5e21efd1cc4516fc343f08115a +https://gitlab.com/qemu-project/qemu/-/commit/6003159ce18faad4e1bc7bf9c85669019cd4950e + +From 9f0246539ae84a5e21efd1cc4516fc343f08115a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> +Date: Tue, 10 Jan 2023 12:49:00 -0500 +Subject: [PATCH] Revert "linux-user: add more compat ioctl definitions" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit c5495f4ecb0cdaaf2e9dddeb48f1689cdb520ca0. + +glibc has fixed (in 2.36.9000-40-g774058d729) the problem +that caused a clash when both sys/mount.h annd linux/mount.h +are included, and backported this to the 2.36 stable release +too: + + https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E + +It is saner for QEMU to remove the workaround it applied for +glibc 2.36 and expect distros to ship the 2.36 maint release +with the fix. This avoids needing to add a further workaround +to QEMU to deal with the fact that linux/brtfs.h now also pulls +in linux/mount.h via linux/fs.h since Linux 6.1 + +Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> +Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> +Message-Id: <20230110174901.2580297-2-berrange@redhat.com> +Signed-off-by: Laurent Vivier <laurent@vivier.eu> +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -111,31 +111,6 @@ + #define FS_IOC32_SETFLAGS _IOW('f', 2, int) + #define FS_IOC32_GETVERSION _IOR('v', 1, int) + #define FS_IOC32_SETVERSION _IOW('v', 2, int) +- +-#define BLKGETSIZE64 _IOR(0x12,114,size_t) +-#define BLKDISCARD _IO(0x12,119) +-#define BLKIOMIN _IO(0x12,120) +-#define BLKIOOPT _IO(0x12,121) +-#define BLKALIGNOFF _IO(0x12,122) +-#define BLKPBSZGET _IO(0x12,123) +-#define BLKDISCARDZEROES _IO(0x12,124) +-#define BLKSECDISCARD _IO(0x12,125) +-#define BLKROTATIONAL _IO(0x12,126) +-#define BLKZEROOUT _IO(0x12,127) +- +-#define FIBMAP _IO(0x00,1) +-#define FIGETBSZ _IO(0x00,2) +- +-struct file_clone_range { +- __s64 src_fd; +- __u64 src_offset; +- __u64 src_length; +- __u64 dest_offset; +-}; +- +-#define FICLONE _IOW(0x94, 9, int) +-#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range) +- + #else + #include <linux/fs.h> + #endif +-- +GitLab + +From 6003159ce18faad4e1bc7bf9c85669019cd4950e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com> +Date: Tue, 10 Jan 2023 12:49:01 -0500 +Subject: [PATCH] Revert "linux-user: fix compat with glibc >= 2.36 + sys/mount.h" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This reverts commit 3cd3df2a9584e6f753bb62a0028bd67124ab5532. + +glibc has fixed (in 2.36.9000-40-g774058d729) the problem +that caused a clash when both sys/mount.h annd linux/mount.h +are included, and backported this to the 2.36 stable release +too: + + https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E + +It is saner for QEMU to remove the workaround it applied for +glibc 2.36 and expect distros to ship the 2.36 maint release +with the fix. This avoids needing to add a further workaround +to QEMU to deal with the fact that linux/brtfs.h now also pulls +in linux/mount.h via linux/fs.h since Linux 6.1 + +Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> +Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> +Message-Id: <20230110174901.2580297-3-berrange@redhat.com> +Signed-off-by: Laurent Vivier <laurent@vivier.eu> +--- a/linux-user/syscall.c ++++ b/linux-user/syscall.c +@@ -95,25 +95,7 @@ + #include <linux/soundcard.h> + #include <linux/kd.h> + #include <linux/mtio.h> +- +-#ifdef HAVE_SYS_MOUNT_FSCONFIG +-/* +- * glibc >= 2.36 linux/mount.h conflicts with sys/mount.h, +- * which in turn prevents use of linux/fs.h. So we have to +- * define the constants ourselves for now. +- */ +-#define FS_IOC_GETFLAGS _IOR('f', 1, long) +-#define FS_IOC_SETFLAGS _IOW('f', 2, long) +-#define FS_IOC_GETVERSION _IOR('v', 1, long) +-#define FS_IOC_SETVERSION _IOW('v', 2, long) +-#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) +-#define FS_IOC32_GETFLAGS _IOR('f', 1, int) +-#define FS_IOC32_SETFLAGS _IOW('f', 2, int) +-#define FS_IOC32_GETVERSION _IOR('v', 1, int) +-#define FS_IOC32_SETVERSION _IOW('v', 2, int) +-#else + #include <linux/fs.h> +-#endif + #include <linux/fd.h> + #if defined(CONFIG_FIEMAP) + #include <linux/fiemap.h> +--- a/meson.build ++++ b/meson.build +@@ -2046,8 +2046,6 @@ config_host_data.set('HAVE_OPTRESET', + cc.has_header_symbol('getopt.h', 'optreset')) + config_host_data.set('HAVE_IPPROTO_MPTCP', + cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP')) +-config_host_data.set('HAVE_SYS_MOUNT_FSCONFIG', +- cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG')) + + # has_member + config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID', +-- +GitLab diff --git a/app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch new file mode 100644 index 000000000000..6a5437056e6f --- /dev/null +++ b/app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch @@ -0,0 +1,29 @@ +diff --git a/meson.build b/meson.build +index c44d05a13..5c5c09894 100644 +--- a/meson.build ++++ b/meson.build +@@ -671,6 +671,8 @@ endif + + if get_option('xkbcommon').auto() and not have_system and not have_tools + xkbcommon = not_found ++elif get_option('xkbcommon').disabled() ++ xkbcommon = not_found + else + xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'), + method: 'pkg-config', kwargs: static_kwargs) +diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build +index 158a3b410..3bb318a23 100644 +--- a/pc-bios/keymaps/meson.build ++++ b/pc-bios/keymaps/meson.build +@@ -33,8 +33,10 @@ keymaps = { + 'tr': '-l tr', + } + +-if meson.is_cross_build() or not xkbcommon.found() ++if meson.is_cross_build() + native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true) ++elif get_option('xkbcommon').disabled() ++ native_qemu_keymap = not_found + else + native_qemu_keymap = qemu_keymap + endif diff --git a/app-emulation/qemu/files/qemu-8.0.0-make.patch b/app-emulation/qemu/files/qemu-8.0.0-make.patch new file mode 100644 index 000000000000..40bafd490052 --- /dev/null +++ b/app-emulation/qemu/files/qemu-8.0.0-make.patch @@ -0,0 +1,13 @@ +diff --git a/configure b/configure +index 800b5850f..331e8950d 100755 +--- a/configure ++++ b/configure +@@ -1069,7 +1069,7 @@ then + fi + fi + +-if ! has "$make" ++if ! has $make + then + error_exit "GNU make ($make) not found" + fi diff --git a/app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch b/app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch new file mode 100644 index 000000000000..07d3836c57e4 --- /dev/null +++ b/app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch @@ -0,0 +1,40 @@ +diff --git a/configure b/configure +index 4369fa5..7807ad5 100755 +--- a/configure ++++ b/configure +@@ -1095,34 +1095,7 @@ has_meson() { + fi + } + +-if test -z "$meson"; then +- if test "$explicit_python" = no && has_meson && version_ge "$(meson --version)" 0.61.5; then +- meson=meson +- elif test "$git_submodules_action" != 'ignore' ; then +- meson=git +- elif test -e "${source_path}/meson/meson.py" ; then +- meson=internal +- else +- if test "$explicit_python" = yes; then +- error_exit "--python requires using QEMU's embedded Meson distribution, but it was not found." +- else +- error_exit "Meson not found. Use --meson=/path/to/meson" +- fi +- fi +-else +- # Meson uses its own Python interpreter to invoke other Python scripts, +- # but the user wants to use the one they specified with --python. +- # +- # We do not want to override the distro Python interpreter (and sometimes +- # cannot: for example in Homebrew /usr/bin/meson is a bash script), so +- # just require --meson=git|internal together with --python. +- if test "$explicit_python" = yes; then +- case "$meson" in +- git | internal) ;; +- *) error_exit "--python requires using QEMU's embedded Meson distribution." ;; +- esac +- fi +-fi ++meson=meson + + if test "$meson" = git; then + git_submodules="${git_submodules} meson" diff --git a/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch new file mode 100644 index 000000000000..61ea0f36d90a --- /dev/null +++ b/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch @@ -0,0 +1,32 @@ +From d02ea89239768c93651a161d057f2bf04d56a024 Mon Sep 17 00:00:00 2001 +From: Matthias Maier <tamiko@43-1.org> +Date: Mon, 4 Apr 2022 12:56:59 +0200 +Subject: [PATCH] also build virtfs-proxy-helper + +The Gentoo ebuild splits the qemu build into a softmmu, user and tool +phase in order to be able to build and link some of the qemu emulators +statically. This unfortunately has the consequence that we never +configure with "have_virtfs" and "have_tools" at the same time. + +As a workaround, simply build the virtfs userland unconditionally. After +all, it is a tiny executable +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 063c736aee..fda8639293 100644 +--- a/meson.build ++++ b/meson.build +@@ -2008,8 +2008,6 @@ have_virtfs = get_option('virtfs') \ + .allowed() + + have_virtfs_proxy_helper = get_option('virtfs_proxy_helper') \ +- .require(targetos != 'darwin', error_message: 'the virtfs proxy helper is incompatible with macOS') \ +- .require(have_virtfs, error_message: 'the virtfs proxy helper requires that virtfs is enabled') \ + .disable_auto_if(not have_tools) \ + .require(libcap_ng.found(), error_message: 'the virtfs proxy helper requires libcap-ng') \ + .allowed() +-- +2.35.1 + diff --git a/app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch b/app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch new file mode 100644 index 000000000000..b6ef6214af55 --- /dev/null +++ b/app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch @@ -0,0 +1,10 @@ +This gets confused by python-any-r1 and tries to find sphinx-build in ${T}. +--- a/docs/meson.build ++++ b/docs/meson.build +@@ -1,5 +1,4 @@ +-sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build', +- required: get_option('docs')) ++sphinx_build = find_program('sphinx-build', required: get_option('docs')) + + # Check if tools are available to build documentation. + build_docs = false diff --git a/app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch b/app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch new file mode 100644 index 000000000000..f668584e8d4b --- /dev/null +++ b/app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch @@ -0,0 +1,64 @@ +* netdev-socket.c +qtest-i386/netdev-socket fails with: +``` +stderr: +qemu-system-i386: -netdev dgram,id=st0,remote.type=inet,remote.host=230.0.0.1,remote.port=1234: can't add socket to multicast group 230.0.0.1: No such device +Broken pipe +../tests/qtest/libqtest.c:191: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0) +``` + +* vhost-user-test.c +qtest-x86_64/qos-test fails with a timeout: +``` +qemu-system-x86_64: Failed to set msg fds. +qemu-system-x86_64: vhost VQ 0 ring restore failed: -22: Invalid argument (22) +qemu-system-x86_64: Failed to set msg fds. +qemu-system-x86_64: vhost VQ 1 ring restore failed: -22: Invalid argument (22) +** +ERROR:../tests/qtest/vhost-user-test.c:892:wait_for_rings_started: assertion failed (ctpop64(s->rings) == count): (1 == 2) +** +ERROR:../tests/qtest/qos-test.c:191:subprocess_run_one_test: child process (/x86_64/pc/i440FX-pcihost/pci-bus-pc/pci-bus/virtio-net-pci/virtio-net/virtio-net-tests/vhost-user/reconnect/subprocess [6082]) failed unexpectedl +``` + +--- a/tests/qtest/netdev-socket.c ++++ b/tests/qtest/netdev-socket.c +@@ -498,6 +498,10 @@ int main(int argc, char **argv) + socket_init(); + g_test_init(&argc, &argv, NULL); + ++ /* XXX: Skip test for now on Gentoo, fails with "No such device" */ ++ g_test_skip("Skipping test known to fail on Gentoo"); ++ return 0; ++ + if (socket_check_protocol_support(&has_ipv4, &has_ipv6) < 0) { + g_error("socket_check_protocol_support() failed\n"); + } +--- a/tests/qtest/vhost-user-test.c ++++ b/tests/qtest/vhost-user-test.c +@@ -243,7 +243,7 @@ static bool wait_for_fds(TestServer *s) + + g_mutex_lock(&s->data_mutex); + +- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND; ++ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND; + while (!s->fds_num) { + if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) { + /* timeout has passed */ +@@ -672,7 +672,7 @@ static void wait_for_log_fd(TestServer *s) + gint64 end_time; + + g_mutex_lock(&s->data_mutex); +- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND; ++ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND; + while (s->log_fd == -1) { + if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) { + /* timeout has passed */ +@@ -885,7 +885,7 @@ static void wait_for_rings_started(TestServer *s, size_t count) + gint64 end_time; + + g_mutex_lock(&s->data_mutex); +- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND; ++ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND; + while (ctpop64(s->rings) != count) { + if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) { + /* timeout has passed */ diff --git a/app-emulation/qemu/metadata.xml b/app-emulation/qemu/metadata.xml index 930ce2797949..adb556795249 100644 --- a/app-emulation/qemu/metadata.xml +++ b/app-emulation/qemu/metadata.xml @@ -1,25 +1,23 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>tamiko@gentoo.org</email> - <name>Matthias Maier</name> - </maintainer> - <maintainer type="person"> - <email>slyfox@gentoo.org</email> - <name>Sergei Trofimovich</name> - </maintainer> <maintainer type="project"> <email>virtualization@gentoo.org</email> <name>Gentoo Virtualization Project</name> </maintainer> + <maintainer type="person"> + <email>dilfridge@gentoo.org</email> + <name>Andreas K. Hüttel</name> + </maintainer> <use> <flag name="accessibility">Adds support for braille displays using brltty</flag> <flag name="aio">Enables support for Linux's Async IO</flag> <flag name="alsa">Enable alsa output for sound emulation</flag> + <flag name="bpf">Enable eBPF support for RSS implementation.</flag> <flag name="capstone">Enable disassembly support with <pkg>dev-libs/capstone</pkg></flag> - <flag name="curl">Support ISOs / -cdrom directives vis HTTP or HTTPS.</flag> + <flag name="curl">Support ISOs / -cdrom directives via HTTP or HTTPS.</flag> <flag name="fdt">Enables firmware device tree support</flag> + <flag name="fuse">Enables FUSE block device export</flag> <flag name="glusterfs">Enables GlusterFS cluster fileystem via <pkg>sys-cluster/glusterfs</pkg></flag> <flag name="gnutls">Enable TLS support for the VNC console server. @@ -29,6 +27,7 @@ <pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux block layer that <pkg>sys-block/open-iscsi</pkg> does.</flag> <flag name="io-uring">Enable efficient I/O via <pkg>sys-libs/liburing</pkg>.</flag> + <flag name="keyutils">Support Linux keyrings via <pkg>sys-apps/keyutils</pkg></flag> <flag name="multipath">Enable multipath persistent reservation passthrough via <pkg>sys-fs/multipath-tools</pkg>.</flag> <flag name="ncurses">Enable the ncurses-based console</flag> @@ -37,9 +36,10 @@ <flag name="pin-upstream-blobs">Pin the versions of BIOS firmware to the version included in the upstream release. This is needed to sanely support migration/suspend/resume/snapshotting/etc... of instances. When the blobs are different, random corruption/bugs/crashes/etc... may be observed.</flag> + <flag name="pipewire">Enable pipewire output for sound emulation</flag> <flag name="plugins">Enable qemu plugin API via shared library loading.</flag> <flag name="pulseaudio">Enable pulseaudio output for sound emulation</flag> - <flag name="rbd">Enable rados block device backend support, see http://ceph.newdream.net/wiki/QEMU-RBD</flag> + <flag name="rbd">Enable rados block device backend support, see https://docs.ceph.com/en/mimic/rbd/qemu-rbd/</flag> <flag name="sdl">Enable the SDL-based console</flag> <flag name="sdl-image">SDL Image support for icons</flag> <flag name="slirp">Enable TCP/IP in hypervisor via <pkg>net-libs/libslirp</pkg></flag> @@ -54,16 +54,15 @@ <flag name="usb">Enable USB passthrough via <pkg>dev-libs/libusb</pkg></flag> <flag name="usbredir">Use <pkg>sys-apps/usbredir</pkg> to redirect USB devices to another machine over TCP</flag> <flag name="vde">Enable VDE-based networking</flag> - <flag name="vhost-net">Enable accelerated networking using vhost-net, see http://www.linux-kvm.org/page/VhostNet</flag> - <flag name="vhost-user-fs">Enable shared file system access using the FUSE protocol carried over virtio.</flag> + <flag name="vhost-net">Enable accelerated networking using vhost-net, see https://www.linux-kvm.org/page/VhostNet</flag> <flag name="virgl">Enable experimental Virgil 3d (virtual software GPU)</flag> - <flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See http://wiki.qemu.org/Documentation/9psetup</flag> + <flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See https://wiki.qemu.org/Documentation/9psetup</flag> <flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag> <flag name="xattr">Add support for getting and setting POSIX extended attributes, through <pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.</flag> <flag name="xen">Enables support for Xen backends</flag> - <flag name="xfs">Support xfsctl() notification and syncing for XFS backed - virtual disks.</flag> - <flag name="xkb">Depend on x11-libs/libxkbcommon to build qemu-keymap tool for converting xkb keymaps</flag> </use> + <upstream> + <remote-id type="gitlab">qemu-project/qemu</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/qemu/qemu-5.1.0-r1.ebuild b/app-emulation/qemu/qemu-7.2.10.ebuild index 33685210022a..ac517632fb22 100644 --- a/app-emulation/qemu/qemu-5.1.0-r1.ebuild +++ b/app-emulation/qemu/qemu-7.2.10.ebuild @@ -1,65 +1,125 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8,9} ) +# 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_{10,11} ) PYTHON_REQ_USE="ncurses,readline" -PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN" +FIRMWARE_ABI_VERSION="7.2.0" -FIRMWARE_ABI_VERSION="4.0.0-r50" +inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ + pax-utils xdg-utils -inherit eutils linux-info toolchain-funcs multilib python-r1 \ - udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://git.qemu.org/git/qemu.git" + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" EGIT_SUBMODULES=( - tests/fp/berkeley-{test,soft}float-3 + tests/fp/berkeley-softfloat-3 + tests/fp/berkeley-testfloat-3 ui/keycodemapdb ) inherit git-r3 SRC_URI="" else - SRC_URI="https://download.qemu.org/${P}.tar.xz" - KEYWORDS="amd64 arm64 ~ppc ~ppc64 x86" + 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="http://www.qemu.org http://www.linux-kvm.org" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" LICENSE="GPL-2 LGPL-2 BSD-2" SLOT="0" -IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc - +fdt glusterfs gnutls gtk infiniband iscsi io-uring - jack jemalloc +jpeg kernel_linux - kernel_FreeBSD lzo multipath - ncurses nfs nls numa opengl +oss +pin-upstream-blobs +[[ ${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 usb - usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen - xfs +xkb zstd" - -COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel - mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x - sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb" -IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} - avr lm32 moxie rx tricore unicore32" -IUSE_USER_TARGETS="${COMMON_TARGETS} - aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus - tilegx" + 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} +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} qemu_softmmu_targets_arm? ( fdt ) qemu_softmmu_targets_microblaze? ( fdt ) qemu_softmmu_targets_mips64el? ( fdt ) @@ -67,12 +127,20 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE} qemu_softmmu_targets_ppc? ( fdt ) qemu_softmmu_targets_riscv32? ( fdt ) qemu_softmmu_targets_riscv64? ( fdt ) - static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy ) + 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 ) - virtfs? ( caps xattr ) + 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-*). @@ -83,17 +151,16 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE} # respected). This is because qemu supports using the C library's API # when available rather than always using the external library. ALL_DEPEND=" - >=dev-libs/glib-2.0[static-libs(+)] + dev-libs/glib:2[static-libs(+)] sys-libs/zlib[static-libs(+)] python? ( ${PYTHON_DEPS} ) - systemtap? ( dev-util/systemtap ) + systemtap? ( dev-debug/systemtap ) xattr? ( sys-apps/attr[static-libs(+)] )" # Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) # softmmu targets (qemu-system-*). SOFTMMU_TOOLS_DEPEND=" - dev-libs/libxml2[static-libs(+)] - xkb? ( x11-libs/libxkbcommon[static-libs(+)] ) + sys-libs/libcap-ng[static-libs(+)] >=x11-libs/pixman-0.28.0[static-libs(+)] accessibility? ( app-accessibility/brltty[api] @@ -101,35 +168,35 @@ SOFTMMU_TOOLS_DEPEND=" ) aio? ( dev-libs/libaio[static-libs(+)] ) alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( dev-libs/libbpf:= ) bzip2? ( app-arch/bzip2[static-libs(+)] ) - capstone? ( dev-libs/capstone:= ) - caps? ( sys-libs/libcap-ng[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) - fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) gnutls? ( - dev-libs/nettle:=[static-libs(+)] >=net-libs/gnutls-3.0:=[static-libs(+)] + 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-fabric/libibumad:=[static-libs(+)] - sys-fabric/libibverbs:=[static-libs(+)] - sys-fabric/librdmacm:=[static-libs(+)] - ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) iscsi? ( net-libs/libiscsi ) - io-uring? ( sys-libs/liburing[static-libs(+)] ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) jack? ( virtual/jack ) jemalloc? ( dev-libs/jemalloc ) - jpeg? ( virtual/jpeg:0=[static-libs(+)] ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) lzo? ( dev-libs/lzo:2[static-libs(+)] ) multipath? ( sys-fs/multipath-tools ) ncurses? ( - sys-libs/ncurses:0=[unicode] - sys-libs/ncurses:0=[static-libs(+)] + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] ) nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) numa? ( sys-process/numactl[static-libs(+)] ) @@ -137,10 +204,11 @@ SOFTMMU_TOOLS_DEPEND=" virtual/opengl media-libs/libepoxy[static-libs(+)] media-libs/mesa[static-libs(+)] - media-libs/mesa[egl,gbm] + media-libs/mesa[egl(+),gbm(+)] ) + pam? ( sys-libs/pam ) png? ( media-libs/libpng:0=[static-libs(+)] ) - pulseaudio? ( media-sound/pulseaudio ) + pulseaudio? ( media-libs/libpulse ) rbd? ( sys-cluster/ceph ) sasl? ( dev-libs/cyrus-sasl[static-libs(+)] ) sdl? ( @@ -157,48 +225,64 @@ SOFTMMU_TOOLS_DEPEND=" >=app-emulation/spice-0.12.0[static-libs(+)] ) ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) - usb? ( >=virtual/libusb-1-r2[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:= ) - xfs? ( sys-fs/xfsprogs[static-libs(+)] ) 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-201905[binary] - ~sys-firmware/ipxe-1.0.0_p20190728[binary] - ~sys-firmware/seabios-1.12.0[binary,seavgabios] - ~sys-firmware/sgabios-0.1_pre8[binary] + ~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 - sys-firmware/ipxe - >=sys-firmware/seabios-1.10.2[seavgabios] + || ( + >=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 )" -PPC64_FIRMWARE_DEPEND=" +PPC_FIRMWARE_DEPEND=" pin-upstream-blobs? ( - ~sys-firmware/seabios-1.12.0[binary,seavgabios] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} ) !pin-upstream-blobs? ( - >=sys-firmware/seabios-1.10.2[seavgabios] + || ( + >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios] + >=sys-firmware/seabios-bin-${SEABIOS_VERSION} + ) ) " BDEPEND=" $(python_gen_impl_dep) dev-lang/perl + dev-build/meson sys-apps/texinfo virtual/pkgconfig - doc? ( dev-python/sphinx ) + 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 + app-alternatives/bc ) " CDEPEND=" @@ -208,7 +292,8 @@ CDEPEND=" ) qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} ) qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} ) - qemu_softmmu_targets_ppc64? ( ${PPC64_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 ) @@ -219,14 +304,17 @@ DEPEND="${CDEPEND} static-user? ( ${ALL_DEPEND} )" RDEPEND="${CDEPEND} acct-group/kvm - selinux? ( sec-policy/selinux-qemu )" + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + )" PATCHES=( - "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch - "${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902 - "${FILESDIR}"/${PN}-4.2.0-cflags.patch - "${FILESDIR}"/${PN}-5.1.0-pixman-for-vhost-user-gpu.patch - "${FILESDIR}"/${PN}-5.1.0-usb-oob-CVE-2020-14364.patch #743649 + "${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 ) QA_PREBUILT=" @@ -234,10 +322,13 @@ QA_PREBUILT=" 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" + usr/share/qemu/u-boot.e500 +" QA_WX_LOAD="usr/bin/qemu-i386 usr/bin/qemu-x86_64 @@ -252,7 +343,6 @@ QA_WX_LOAD="usr/bin/qemu-i386 usr/bin/qemu-or1k usr/bin/qemu-ppc usr/bin/qemu-ppc64 - usr/bin/qemu-ppc64abi32 usr/bin/qemu-sh4 usr/bin/qemu-sh4eb usr/bin/qemu-sparc @@ -260,7 +350,8 @@ QA_WX_LOAD="usr/bin/qemu-i386 usr/bin/qemu-armeb usr/bin/qemu-sparc32plus usr/bin/qemu-s390x - usr/bin/qemu-unicore32" + 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 @@ -335,7 +426,7 @@ check_targets() { local var=$1 mak=$2 local detected sorted - pushd "${S}"/default-configs >/dev/null || die + 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)) @@ -350,29 +441,6 @@ check_targets() { popd >/dev/null } -handle_locales() { - # Make sure locale list is kept up-to-date. - local detected sorted - detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u)) - sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u)) - if [[ ${sorted} != "${detected}" ]] ; then - eerror "The ebuild needs to be kept in sync." - eerror "PLOCALES: ${sorted}" - eerror " po/*.po: ${detected}" - die "sync PLOCALES" - fi - - # Deal with selective install of locales. - if use nls ; then - # Delete locales the user does not want. #577814 - rm_loc() { rm po/$1.po || die; } - l10n_for_each_disabled_locale_do rm_loc - else - # Cheap hack to disable gettext .mo generation. - rm -f po/*.po - fi -} - src_prepare() { check_targets IUSE_SOFTMMU_TARGETS softmmu check_targets IUSE_USER_TARGETS linux-user @@ -380,17 +448,19 @@ src_prepare() { default # Use correct toolchain to fix cross-compiling - tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS export WINDRES=${CHOST}-windres # Verbose builds MAKEOPTS+=" V=1" - # Run after we've applied all patches. - handle_locales + # 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 copy of libfdt - rm -r dtc || die + # Remove bundled modules + rm -r dtc meson roms/*/ || die } ## @@ -403,7 +473,7 @@ qemu_src_configure() { local buildtype=$1 local builddir="${S}/${buildtype}-build" - mkdir "${builddir}" + mkdir "${builddir}" || die local conf_opts=( --prefix=/usr @@ -413,12 +483,12 @@ qemu_src_configure() { --datadir=/usr/share --docdir=/usr/share/doc/${PF}/html --mandir=/usr/share/man - --with-confsuffix=/qemu --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 @@ -435,14 +505,19 @@ qemu_src_configure() { # are enabled), but it's not really worth the hassle. Disable it # all the time to avoid automatically detecting it. #568856 --disable-gcrypt - --python="${PYTHON}" --cc="$(tc-getCC)" --cxx="$(tc-getCXX)" --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) $(use_enable debug debug-info) $(use_enable debug debug-tcg) - $(use_enable doc docs) + $(use_enable jack) + $(use_enable nls gettext) + $(use_enable oss) $(use_enable plugins) + $(use_enable pulseaudio pa) + $(use_enable selinux) $(use_enable xattr attr) ) @@ -455,14 +530,39 @@ qemu_src_configure() { use_enable "$@" fi } + # Enable option only for softmmu build, but not 'user' or 'tools' + conf_softmmu() { + if [[ ${buildtype} == "softmmu" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } conf_opts+=( $(conf_notuser accessibility brlapi) $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) $(conf_notuser bzip2) $(conf_notuser capstone) - $(conf_notuser caps cap-ng) $(conf_notuser curl) + $(conf_tools doc docs) $(conf_notuser fdt) + $(conf_notuser fuse) $(conf_notuser glusterfs) $(conf_notuser gnutls) $(conf_notuser gnutls nettle) @@ -470,7 +570,7 @@ qemu_src_configure() { $(conf_notuser infiniband rdma) $(conf_notuser iscsi libiscsi) $(conf_notuser io-uring linux-io-uring) - $(conf_notuser jemalloc jemalloc) + $(conf_malloc jemalloc) $(conf_notuser jpeg vnc-jpeg) $(conf_notuser kernel_linux kvm) $(conf_notuser lzo) @@ -479,39 +579,34 @@ qemu_src_configure() { $(conf_notuser nfs libnfs) $(conf_notuser numa) $(conf_notuser opengl) - $(conf_notuser png vnc-png) + $(conf_notuser pam auth-pam) + $(conf_notuser png) $(conf_notuser rbd) $(conf_notuser sasl vnc-sasl) $(conf_notuser sdl) - $(conf_notuser sdl-image) + $(conf_softmmu sdl-image) $(conf_notuser seccomp) - $(conf_notuser slirp slirp system) + $(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 vhost-user-fs) $(conf_notuser virgl virglrenderer) - $(conf_notuser virtfs) + $(conf_softmmu virtfs) $(conf_notuser vnc) $(conf_notuser vte) $(conf_notuser xen) $(conf_notuser xen xen-pci-passthrough) - $(conf_notuser xfs xfsctl) - $(conf_notuser xkb xkbcommon) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon $(conf_notuser zstd) ) - if [[ ${buildtype} == "user" ]] ; then - conf_opts+=( --disable-libxml2 ) - else - conf_opts+=( --enable-libxml2 ) - fi - if [[ ! ${buildtype} == "user" ]] ; then # audio options local audio_opts=( @@ -524,7 +619,7 @@ qemu_src_configure() { $(usev oss) ) conf_opts+=( - --audio-drv-list=$(printf "%s," "${audio_opts[@]}") + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") ) fi @@ -535,6 +630,8 @@ qemu_src_configure() { --disable-system --disable-blobs --disable-tools + --disable-cap-ng + --disable-seccomp ) local static_flag="static-user" ;; @@ -543,6 +640,8 @@ qemu_src_configure() { --disable-linux-user --enable-system --disable-tools + --enable-cap-ng + --enable-seccomp ) local static_flag="static" ;; @@ -552,6 +651,7 @@ qemu_src_configure() { --disable-system --disable-blobs --enable-tools + --enable-cap-ng ) local static_flag="static" ;; @@ -572,6 +672,9 @@ qemu_src_configure() { 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} ) @@ -579,11 +682,6 @@ qemu_src_configure() { echo "../configure ${conf_opts[*]}" cd "${builddir}" ../configure "${conf_opts[@]}" || die "configure failed" - - # FreeBSD's kernel does not support QEMU assigning/grabbing - # host USB devices yet - use kernel_FreeBSD && \ - sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak } src_configure() { @@ -618,22 +716,22 @@ src_configure() { src_compile() { if [[ -n ${user_targets} ]]; then - cd "${S}/user-build" + cd "${S}/user-build" || die default fi if [[ -n ${softmmu_targets} ]]; then - cd "${S}/softmmu-build" + cd "${S}/softmmu-build" || die default fi - cd "${S}/tools-build" + cd "${S}/tools-build" || die default } src_test() { if [[ -n ${softmmu_targets} ]]; then - cd "${S}/softmmu-build" + cd "${S}/softmmu-build" || die pax-mark m */qemu-system-* #515550 emake check fi @@ -722,7 +820,7 @@ src_install() { [[ -e check-report.html ]] && dodoc check-report.html if use kernel_linux; then - udev_newrules "${FILESDIR}"/65-kvm.rules-r1 65-kvm.rules + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules fi if use python; then @@ -730,20 +828,25 @@ src_install() { fi fi - cd "${S}/tools-build" + 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 + pushd "${ED}"/usr/bin >/dev/null || die pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 - popd >/dev/null + popd >/dev/null || die # Install config file example for qemu-bridge-helper insinto "/etc/qemu" doins "${FILESDIR}/bridge.conf" - cd "${S}" - dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt + cd "${S}" || die + dodoc MAINTAINERS docs/specs/pci-ids.txt newdoc pc-bios/README README.pc-bios # Disallow stripping of prebuilt firmware files. @@ -751,10 +854,7 @@ src_install() { if [[ -n ${softmmu_targets} ]]; then # Remove SeaBIOS since we're using the SeaBIOS packaged one - rm "${ED}/usr/share/qemu/bios.bin" - rm "${ED}/usr/share/qemu/bios-256k.bin" if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then - dosym ../seabios/bios.bin /usr/share/qemu/bios.bin dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin fi @@ -765,8 +865,9 @@ src_install() { rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" rm "${ED}/usr/share/qemu/vgabios-virtio.bin" rm "${ED}/usr/share/qemu/vgabios-vmware.bin" - # PPC64 loads vgabios-stdvga - if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then + + # 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 @@ -776,13 +877,11 @@ src_install() { fi # Remove sgabios since we're using the sgabios packaged one - rm "${ED}/usr/share/qemu/sgabios.bin" if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin fi # Remove iPXE since we're using the iPXE packaged one - rm "${ED}"/usr/share/qemu/pxe-*.rom if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom @@ -800,7 +899,7 @@ src_install() { firmware_abi_change() { local pv for pv in ${REPLACING_VERSIONS}; do - if ver_test $pv -lt ${FIRMWARE_ABI_VERSION}; then + if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then return 0 fi done @@ -815,16 +914,27 @@ pkg_postinst() { xdg_icon_cache_update [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ - fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper + fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper DISABLE_AUTOFORMATTING=true readme.gentoo_print_elog if use pin-upstream-blobs && firmware_abi_change; then ewarn "This version of qemu pins new versions of firmware blobs:" - ewarn " $(best_version sys-firmware/edk2-ovmf)" + + 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/seabios)" ewarn " $(best_version sys-firmware/sgabios)" ewarn "This might break resume of hibernated guests (started with a different" ewarn "firmware version) and live migration to/from qemu versions with different" @@ -838,22 +948,24 @@ pkg_postinst() { pkg_info() { echo "Using:" echo " $(best_version app-emulation/spice-protocol)" - echo " $(best_version sys-firmware/edk2-ovmf)" - if has_version 'sys-firmware/edk2-ovmf[binary]'; then - echo " USE=binary" + + if has_version 'sys-firmware/edk2-ovmf-bin'; then + echo " $(best_version sys-firmware/edk2-ovmf-bin)" else - echo " USE=''" + echo " $(best_version sys-firmware/edk2-ovmf)" fi - echo " $(best_version sys-firmware/ipxe)" - echo " $(best_version sys-firmware/seabios)" - if has_version 'sys-firmware/seabios[binary]'; then - echo " USE=binary" + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" else - echo " USE=''" + 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 } diff --git a/app-emulation/qemu/qemu-7.2.4.ebuild b/app-emulation/qemu/qemu-7.2.4.ebuild new file mode 100644 index 000000000000..ecb35f27987f --- /dev/null +++ b/app-emulation/qemu/qemu-7.2.4.ebuild @@ -0,0 +1,972 @@ +# Copyright 1999-2024 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_{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-debug/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-build/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] + app-alternatives/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 +} diff --git a/app-emulation/qemu/qemu-7.2.9.ebuild b/app-emulation/qemu/qemu-7.2.9.ebuild new file mode 100644 index 000000000000..ac517632fb22 --- /dev/null +++ b/app-emulation/qemu/qemu-7.2.9.ebuild @@ -0,0 +1,971 @@ +# Copyright 1999-2024 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_{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-debug/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-build/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] + app-alternatives/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 +) + +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 +} diff --git a/app-emulation/qemu/qemu-8.0.4.ebuild b/app-emulation/qemu/qemu-8.0.4.ebuild new file mode 100644 index 000000000000..592f8ef9cdb7 --- /dev/null +++ b/app-emulation/qemu/qemu-8.0.4.ebuild @@ -0,0 +1,970 @@ +# Copyright 1999-2024 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-debug/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-build/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] + app-alternatives/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 +} diff --git a/app-emulation/qemu/qemu-8.0.5.ebuild b/app-emulation/qemu/qemu-8.0.5.ebuild new file mode 100644 index 000000000000..6c943ce3a21c --- /dev/null +++ b/app-emulation/qemu/qemu-8.0.5.ebuild @@ -0,0 +1,972 @@ +# Copyright 1999-2024 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-debug/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-build/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] + app-alternatives/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" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + 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 +} diff --git a/app-emulation/qemu/qemu-8.1.5.ebuild b/app-emulation/qemu/qemu-8.1.5.ebuild new file mode 100644 index 000000000000..05d55122f855 --- /dev/null +++ b/app-emulation/qemu/qemu-8.1.5.ebuild @@ -0,0 +1,972 @@ +# Copyright 1999-2024 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 keyutils + 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-debug/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(+)] ) + keyutils? ( sys-apps/keyutils[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-build/meson-0.63.0 + app-alternatives/ninja + 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] + app-alternatives/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" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" + + 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 keyutils libkeyutils) + $(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 +} diff --git a/app-emulation/qemu/qemu-8.2.1.ebuild b/app-emulation/qemu/qemu-8.2.1.ebuild new file mode 100644 index 000000000000..9523cdbfcf5e --- /dev/null +++ b/app-emulation/qemu/qemu-8.2.1.ebuild @@ -0,0 +1,991 @@ +# Copyright 1999-2024 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-2).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=() + inherit git-r3 + SRC_URI="" + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +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 keyutils + 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-debug/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(+)] ) + keyutils? ( sys-apps/keyutils[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-build/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] + app-alternatives/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_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +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 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 keyutils libkeyutils) + $(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 +} diff --git a/app-emulation/qemu/qemu-8.2.2.ebuild b/app-emulation/qemu/qemu-8.2.2.ebuild new file mode 100644 index 000000000000..b62207759882 --- /dev/null +++ b/app-emulation/qemu/qemu-8.2.2.ebuild @@ -0,0 +1,992 @@ +# Copyright 1999-2024 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-2).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=() + inherit git-r3 + SRC_URI="" + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done +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 keyutils + 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-debug/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(+)] ) + keyutils? ( sys-apps/keyutils[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-build/meson-0.63.0 + app-alternatives/ninja + 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] + app-alternatives/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_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die + else + default + fi +} + +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 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 keyutils libkeyutils) + $(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 +} diff --git a/app-emulation/qemu/qemu-9999.ebuild b/app-emulation/qemu/qemu-9999.ebuild index 0bf87946b777..381a891e0191 100644 --- a/app-emulation/qemu/qemu-9999.ebuild +++ b/app-emulation/qemu/qemu-9999.ebuild @@ -1,67 +1,131 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI="7" +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8,9} ) +# 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:-0} +QEMU_DOCS_PREBUILT_DEV=sam +QEMU_DOCS_VERSION=$(ver_cut 1-3) +# 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" -PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN" +FIRMWARE_ABI_VERSION="7.2.0" -FIRMWARE_ABI_VERSION="4.0.0-r50" +inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \ + pax-utils xdg-utils -inherit eutils linux-info toolchain-funcs multilib python-r1 \ - udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils +if [[ ${PV} == *9999* ]]; then + QEMU_DOCS_PREBUILT=0 -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://git.qemu.org/git/qemu.git" - EGIT_SUBMODULES=( - meson - tests/fp/berkeley-softfloat-3 - tests/fp/berkeley-testfloat-3 - ui/keycodemapdb - ) + EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/" + EGIT_SUBMODULES=() inherit git-r3 SRC_URI="" + declare -A SUBPROJECTS=( + [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6" + [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037" + [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263" + ) + + for proj in "${!SUBPROJECTS[@]}"; do + c=${SUBPROJECTS[${proj}]} + SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2" + done else - SRC_URI="https://download.qemu.org/${P}.tar.xz" - KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86" + 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="http://www.qemu.org http://www.linux-kvm.org" +HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org" LICENSE="GPL-2 LGPL-2 BSD-2" SLOT="0" -IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc - +fdt glusterfs gnutls gtk infiniband iscsi io-uring - jack jemalloc +jpeg kernel_linux - kernel_FreeBSD lzo multipath - ncurses nfs nls numa opengl +oss +pin-upstream-blobs +[[ ${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 keyutils + 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 static-user systemtap test usb - usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen - xfs +xkb zstd" - -COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel - mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x - sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb" -IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS} - avr lm32 moxie rx tricore unicore32" -IUSE_USER_TARGETS="${COMMON_TARGETS} - aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus - tilegx" + 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} +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} qemu_softmmu_targets_arm? ( fdt ) qemu_softmmu_targets_microblaze? ( fdt ) qemu_softmmu_targets_mips64el? ( fdt ) @@ -69,12 +133,19 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE} qemu_softmmu_targets_ppc? ( fdt ) qemu_softmmu_targets_riscv32? ( fdt ) qemu_softmmu_targets_riscv64? ( fdt ) - static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy ) + qemu_softmmu_targets_x86_64? ( fdt ) + sdl-image? ( sdl ) static-user? ( !plugins ) - virtfs? ( caps xattr ) + virgl? ( opengl ) + virtfs? ( xattr ) + vnc? ( gnutls ) vte? ( gtk ) - plugins? ( !static !static-user ) + 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-*). @@ -85,17 +156,16 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE} # respected). This is because qemu supports using the C library's API # when available rather than always using the external library. ALL_DEPEND=" - >=dev-libs/glib-2.0[static-libs(+)] + dev-libs/glib:2[static-libs(+)] sys-libs/zlib[static-libs(+)] python? ( ${PYTHON_DEPS} ) - systemtap? ( dev-util/systemtap ) - xattr? ( sys-apps/attr[static-libs(+)] )" + systemtap? ( dev-debug/systemtap ) + xattr? ( sys-apps/attr[static-libs(+)] ) +" # Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...) # softmmu targets (qemu-system-*). SOFTMMU_TOOLS_DEPEND=" - dev-libs/libxml2[static-libs(+)] - xkb? ( x11-libs/libxkbcommon[static-libs(+)] ) >=x11-libs/pixman-0.28.0[static-libs(+)] accessibility? ( app-accessibility/brltty[api] @@ -103,35 +173,34 @@ SOFTMMU_TOOLS_DEPEND=" ) aio? ( dev-libs/libaio[static-libs(+)] ) alsa? ( >=media-libs/alsa-lib-1.0.13 ) + bpf? ( dev-libs/libbpf:= ) bzip2? ( app-arch/bzip2[static-libs(+)] ) - capstone? ( dev-libs/capstone:= ) - caps? ( sys-libs/libcap-ng[static-libs(+)] ) + capstone? ( dev-libs/capstone:=[static-libs(+)] ) curl? ( >=net-misc/curl-7.15.4[static-libs(+)] ) - fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] ) + fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] ) + fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] ) glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] ) gnutls? ( - dev-libs/nettle:=[static-libs(+)] >=net-libs/gnutls-3.0:=[static-libs(+)] + dev-libs/nettle:=[static-libs(+)] ) gtk? ( x11-libs/gtk+:3 vte? ( x11-libs/vte:2.91 ) ) - infiniband? ( - sys-fabric/libibumad:=[static-libs(+)] - sys-fabric/libibverbs:=[static-libs(+)] - sys-fabric/librdmacm:=[static-libs(+)] - ) + infiniband? ( sys-cluster/rdma-core[static-libs(+)] ) iscsi? ( net-libs/libiscsi ) - io-uring? ( sys-libs/liburing[static-libs(+)] ) + io-uring? ( sys-libs/liburing:=[static-libs(+)] ) jack? ( virtual/jack ) jemalloc? ( dev-libs/jemalloc ) - jpeg? ( virtual/jpeg:0=[static-libs(+)] ) + jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] ) + kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] ) + keyutils? ( sys-apps/keyutils[static-libs(+)] ) lzo? ( dev-libs/lzo:2[static-libs(+)] ) multipath? ( sys-fs/multipath-tools ) ncurses? ( - sys-libs/ncurses:0=[unicode] - sys-libs/ncurses:0=[static-libs(+)] + sys-libs/ncurses:=[unicode(+)] + sys-libs/ncurses:=[static-libs(+)] ) nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] ) numa? ( sys-process/numactl[static-libs(+)] ) @@ -139,10 +208,12 @@ SOFTMMU_TOOLS_DEPEND=" virtual/opengl media-libs/libepoxy[static-libs(+)] media-libs/mesa[static-libs(+)] - media-libs/mesa[egl,gbm] + media-libs/mesa[egl(+),gbm(+)] ) - png? ( media-libs/libpng:0=[static-libs(+)] ) - pulseaudio? ( media-sound/pulseaudio ) + 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? ( @@ -155,76 +226,101 @@ SOFTMMU_TOOLS_DEPEND=" 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(+)] + >=app-emulation/spice-protocol-0.14.0 + >=app-emulation/spice-0.14.0[static-libs(+)] ) ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] ) - usb? ( >=virtual/libusb-1-r2[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:= ) - xfs? ( sys-fs/xfsprogs[static-libs(+)] ) 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-201905[binary] - ~sys-firmware/ipxe-1.0.0_p20190728[binary] - ~sys-firmware/seabios-1.12.0[binary,seavgabios] - ~sys-firmware/sgabios-0.1_pre8[binary] + ~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 - sys-firmware/ipxe - >=sys-firmware/seabios-1.10.2[seavgabios] + || ( + >=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 - )" -PPC64_FIRMWARE_DEPEND=" + ) +" +PPC_FIRMWARE_DEPEND=" pin-upstream-blobs? ( - ~sys-firmware/seabios-1.12.0[binary,seavgabios] + ~sys-firmware/seabios-bin-${SEABIOS_VERSION} ) !pin-upstream-blobs? ( - >=sys-firmware/seabios-1.10.2[seavgabios] + || ( + >=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 - sys-apps/texinfo + >=dev-build/meson-0.63.0 + app-alternatives/ninja + dev-python/pip[${PYTHON_USEDEP}] virtual/pkgconfig - doc? ( dev-python/sphinx ) + 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 + app-alternatives/bc ) " CDEPEND=" - !static? ( - ${ALL_DEPEND//\[static-libs(+)]} - ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]} - ) + ${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_ppc64? ( ${PPC64_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} ) + qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} ) " -DEPEND="${CDEPEND} +DEPEND=" + ${CDEPEND} kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 ) - static? ( - ${ALL_DEPEND} - ${SOFTMMU_TOOLS_DEPEND} - ) - static-user? ( ${ALL_DEPEND} )" -RDEPEND="${CDEPEND} + static-user? ( ${ALL_DEPEND} ) +" +RDEPEND=" + ${CDEPEND} acct-group/kvm - selinux? ( sec-policy/selinux-qemu )" + selinux? ( + sec-policy/selinux-qemu + sys-libs/libselinux + ) +" PATCHES=( - "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch + "${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=" @@ -232,12 +328,16 @@ QA_PREBUILT=" 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" + usr/share/qemu/u-boot.e500 +" -QA_WX_LOAD="usr/bin/qemu-i386 +QA_WX_LOAD=" + usr/bin/qemu-i386 usr/bin/qemu-x86_64 usr/bin/qemu-alpha usr/bin/qemu-arm @@ -250,7 +350,6 @@ QA_WX_LOAD="usr/bin/qemu-i386 usr/bin/qemu-or1k usr/bin/qemu-ppc usr/bin/qemu-ppc64 - usr/bin/qemu-ppc64abi32 usr/bin/qemu-sh4 usr/bin/qemu-sh4eb usr/bin/qemu-sparc @@ -258,7 +357,8 @@ QA_WX_LOAD="usr/bin/qemu-i386 usr/bin/qemu-armeb usr/bin/qemu-sparc32plus usr/bin/qemu-s390x - usr/bin/qemu-unicore32" + 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 @@ -302,6 +402,8 @@ pkg_pretend() { use vhost-net && CONFIG_CHECK+=" ~VHOST_NET" ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net" ERROR_VHOST_NET+=" support" + use test && CONFIG_CHECK+=" IP_MULTICAST" + ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST" if use amd64 || use x86 || use amd64-linux || use x86-linux; then if grep -q AuthenticAMD /proc/cpuinfo; then @@ -333,7 +435,7 @@ check_targets() { local var=$1 mak=$2 local detected sorted - pushd "${S}"/default-configs/targets/ >/dev/null || die + 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)) @@ -348,26 +450,20 @@ check_targets() { popd >/dev/null } -handle_locales() { - # Make sure locale list is kept up-to-date. - local detected sorted - detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u)) - sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u)) - if [[ ${sorted} != "${detected}" ]] ; then - eerror "The ebuild needs to be kept in sync." - eerror "PLOCALES: ${sorted}" - eerror " po/*.po: ${detected}" - die "sync PLOCALES" - fi - - # Deal with selective install of locales. - if use nls ; then - # Delete locales the user does not want. #577814 - rm_loc() { rm po/$1.po || die; } - l10n_for_each_disabled_locale_do rm_loc +src_unpack() { + if [[ ${PV} == 9999 ]] ; then + git-r3_src_unpack + for file in ${A}; do + unpack "${file}" + done + cd "${WORKDIR}" || die + for proj in "${!SUBPROJECTS[@]}"; do + mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die + done + cd "${S}" || die + meson subprojects packagefiles --apply || die else - # Cheap hack to disable gettext .mo generation. - rm -f po/*.po + default fi } @@ -378,17 +474,14 @@ src_prepare() { default # Use correct toolchain to fix cross-compiling - tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB + tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS export WINDRES=${CHOST}-windres # Verbose builds MAKEOPTS+=" V=1" - # Run after we've applied all patches. - handle_locales - - # Remove bundled copy of libfdt - rm -r dtc || die + # Remove bundled modules + rm -r roms/*/ || die } ## @@ -401,7 +494,7 @@ qemu_src_configure() { local buildtype=$1 local builddir="${S}/${buildtype}-build" - mkdir "${builddir}" + mkdir "${builddir}" || die local conf_opts=( --prefix=/usr @@ -416,6 +509,7 @@ qemu_src_configure() { --disable-containers # bug #732972 --disable-guest-agent --disable-strip + --disable-download # bug #746752: TCG interpreter has a few limitations: # - it does not support FPU @@ -432,14 +526,21 @@ qemu_src_configure() { # are enabled), but it's not really worth the hassle. Disable it # all the time to avoid automatically detecting it. #568856 --disable-gcrypt - --python="${PYTHON}" --cc="$(tc-getCC)" --cxx="$(tc-getCXX)" + --objcc="$(tc-getCC)" --host-cc="$(tc-getBUILD_CC)" + + $(use_enable alsa) $(use_enable debug debug-info) $(use_enable debug debug-tcg) - $(use_enable doc docs) + $(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) ) @@ -460,14 +561,31 @@ qemu_src_configure() { echo "--disable-${2:-$1}" fi } + # Enable option only for tools build, but not 'user' or 'softmmu' + conf_tools() { + if [[ ${buildtype} == "tools" ]] ; then + use_enable "$@" + else + echo "--disable-${2:-$1}" + fi + } + # Special case for the malloc flag, because the --disable flag does + # not exist and trying like above will break configuring. + conf_malloc() { + if [[ ! ${buildtype} == "user" ]] ; then + usex "${1}" "--enable-malloc=${1}" "" + fi + } conf_opts+=( $(conf_notuser accessibility brlapi) $(conf_notuser aio linux-aio) + $(conf_softmmu bpf) $(conf_notuser bzip2) $(conf_notuser capstone) - $(conf_notuser caps cap-ng) $(conf_notuser curl) + $(conf_tools doc docs) $(conf_notuser fdt) + $(conf_notuser fuse) $(conf_notuser glusterfs) $(conf_notuser gnutls) $(conf_notuser gnutls nettle) @@ -475,61 +593,58 @@ qemu_src_configure() { $(conf_notuser infiniband rdma) $(conf_notuser iscsi libiscsi) $(conf_notuser io-uring linux-io-uring) - $(conf_notuser jemalloc jemalloc) + $(conf_malloc jemalloc) $(conf_notuser jpeg vnc-jpeg) $(conf_notuser kernel_linux kvm) + $(conf_notuser keyutils libkeyutils) $(conf_notuser lzo) $(conf_notuser multipath mpath) $(conf_notuser ncurses curses) $(conf_notuser nfs libnfs) $(conf_notuser numa) $(conf_notuser opengl) - $(conf_notuser png vnc-png) + $(conf_notuser pam auth-pam) + $(conf_notuser png) $(conf_notuser rbd) $(conf_notuser sasl vnc-sasl) $(conf_notuser sdl) $(conf_softmmu sdl-image) $(conf_notuser seccomp) - $(conf_notuser slirp slirp system) + $(conf_notuser 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 vhost-user-fs) $(conf_notuser virgl virglrenderer) - $(conf_notuser virtfs) + $(conf_softmmu virtfs) $(conf_notuser vnc) $(conf_notuser vte) $(conf_notuser xen) $(conf_notuser xen xen-pci-passthrough) - $(conf_notuser xfs xfsctl) - $(conf_notuser xkb xkbcommon) + # use prebuilt keymaps, bug #759604 + --disable-xkbcommon $(conf_notuser zstd) ) - if [[ ${buildtype} == "user" ]] ; then - conf_opts+=( --disable-libxml2 ) - else - conf_opts+=( --enable-libxml2 ) - fi - if [[ ! ${buildtype} == "user" ]] ; then # audio options local audio_opts=( # Note: backend order matters here: #716202 # We iterate from higher-level to lower level. $(usex pulseaudio pa "") + $(usev pipewire) $(usev jack) $(usev sdl) $(usev alsa) $(usev oss) ) conf_opts+=( - --audio-drv-list=$(printf "%s," "${audio_opts[@]}") + --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}") ) fi @@ -538,8 +653,9 @@ qemu_src_configure() { conf_opts+=( --enable-linux-user --disable-system - --disable-blobs --disable-tools + --disable-cap-ng + --disable-seccomp ) local static_flag="static-user" ;; @@ -548,17 +664,19 @@ qemu_src_configure() { --disable-linux-user --enable-system --disable-tools + --enable-cap-ng + --enable-seccomp ) - local static_flag="static" + local static_flag="none" ;; tools) conf_opts+=( --disable-linux-user --disable-system - --disable-blobs --enable-tools + --enable-cap-ng ) - local static_flag="static" + local static_flag="none" ;; esac @@ -566,17 +684,20 @@ qemu_src_configure() { [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" ) # Add support for SystemTAP - use systemtap && conf_opts+=( --enable-trace-backend=dtrace ) + 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 use ${static_flag}; then + 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} ) @@ -584,11 +705,6 @@ qemu_src_configure() { echo "../configure ${conf_opts[*]}" cd "${builddir}" ../configure "${conf_opts[@]}" || die "configure failed" - - # FreeBSD's kernel does not support QEMU assigning/grabbing - # host USB devices yet - use kernel_FreeBSD && \ - sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak } src_configure() { @@ -623,22 +739,22 @@ src_configure() { src_compile() { if [[ -n ${user_targets} ]]; then - cd "${S}/user-build" + cd "${S}/user-build" || die default fi if [[ -n ${softmmu_targets} ]]; then - cd "${S}/softmmu-build" + cd "${S}/softmmu-build" || die default fi - cd "${S}/tools-build" + cd "${S}/tools-build" || die default } src_test() { if [[ -n ${softmmu_targets} ]]; then - cd "${S}/softmmu-build" + cd "${S}/softmmu-build" || die pax-mark m */qemu-system-* #515550 emake check fi @@ -727,7 +843,7 @@ src_install() { [[ -e check-report.html ]] && dodoc check-report.html if use kernel_linux; then - udev_newrules "${FILESDIR}"/65-kvm.rules-r1 65-kvm.rules + udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules fi if use python; then @@ -735,20 +851,25 @@ src_install() { fi fi - cd "${S}/tools-build" + 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 + pushd "${ED}"/usr/bin >/dev/null || die pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594 - popd >/dev/null + popd >/dev/null || die # Install config file example for qemu-bridge-helper insinto "/etc/qemu" doins "${FILESDIR}/bridge.conf" - cd "${S}" - dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt + cd "${S}" || die + dodoc MAINTAINERS newdoc pc-bios/README README.pc-bios # Disallow stripping of prebuilt firmware files. @@ -756,10 +877,7 @@ src_install() { if [[ -n ${softmmu_targets} ]]; then # Remove SeaBIOS since we're using the SeaBIOS packaged one - rm "${ED}/usr/share/qemu/bios.bin" - rm "${ED}/usr/share/qemu/bios-256k.bin" if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then - dosym ../seabios/bios.bin /usr/share/qemu/bios.bin dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin fi @@ -770,8 +888,9 @@ src_install() { rm "${ED}/usr/share/qemu/vgabios-stdvga.bin" rm "${ED}/usr/share/qemu/vgabios-virtio.bin" rm "${ED}/usr/share/qemu/vgabios-vmware.bin" - # PPC64 loads vgabios-stdvga - if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then + + # 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 @@ -781,13 +900,11 @@ src_install() { fi # Remove sgabios since we're using the sgabios packaged one - rm "${ED}/usr/share/qemu/sgabios.bin" if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin fi # Remove iPXE since we're using the iPXE packaged one - rm "${ED}"/usr/share/qemu/pxe-*.rom if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom @@ -805,7 +922,7 @@ src_install() { firmware_abi_change() { local pv for pv in ${REPLACING_VERSIONS}; do - if ver_test $pv -lt ${FIRMWARE_ABI_VERSION}; then + if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then return 0 fi done @@ -820,16 +937,27 @@ pkg_postinst() { xdg_icon_cache_update [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \ - fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper + fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper DISABLE_AUTOFORMATTING=true readme.gentoo_print_elog if use pin-upstream-blobs && firmware_abi_change; then ewarn "This version of qemu pins new versions of firmware blobs:" - ewarn " $(best_version sys-firmware/edk2-ovmf)" + + 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/seabios)" ewarn " $(best_version sys-firmware/sgabios)" ewarn "This might break resume of hibernated guests (started with a different" ewarn "firmware version) and live migration to/from qemu versions with different" @@ -843,22 +971,24 @@ pkg_postinst() { pkg_info() { echo "Using:" echo " $(best_version app-emulation/spice-protocol)" - echo " $(best_version sys-firmware/edk2-ovmf)" - if has_version 'sys-firmware/edk2-ovmf[binary]'; then - echo " USE=binary" + + if has_version 'sys-firmware/edk2-ovmf-bin'; then + echo " $(best_version sys-firmware/edk2-ovmf-bin)" else - echo " USE=''" + echo " $(best_version sys-firmware/edk2-ovmf)" fi - echo " $(best_version sys-firmware/ipxe)" - echo " $(best_version sys-firmware/seabios)" - if has_version 'sys-firmware/seabios[binary]'; then - echo " USE=binary" + + if has_version 'sys-firmware/seabios-bin'; then + echo " $(best_version sys-firmware/seabios-bin)" else - echo " USE=''" + 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 } diff --git a/app-emulation/qt-virt-manager/metadata.xml b/app-emulation/qt-virt-manager/metadata.xml deleted file mode 100644 index 911710bc8d2c..000000000000 --- a/app-emulation/qt-virt-manager/metadata.xml +++ /dev/null @@ -1,14 +0,0 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> - <use> - <flag name="smartcard">Enable smartcard remoting using <pkg>app-emulation/libcacard</pkg></flag> - </use> - <upstream> - <remote-id type="github">F1ash/qt-virt-manager</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild b/app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild deleted file mode 100644 index 7eb26346c9a9..000000000000 --- a/app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit cmake-utils - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://github.com/F1ash/qt-virt-manager.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - KEYWORDS="" -else - SRC_URI="https://github.com/F1ash/qt-virt-manager/archive/${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="" -fi - -DESCRIPTION="A GUI application for managing virtual machines" -HOMEPAGE="https://github.com/F1ash/qt-virt-manager" - -LICENSE="GPL-2" -SLOT="0" -IUSE="smartcard" - -DEPEND=" - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtmultimedia:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - dev-qt/qtnetwork:5 - >=x11-libs/qtermwidget-0.7.0 - smartcard? ( >=app-emulation/libcacard-2.5.0 ) - dev-libs/glib - net-misc/spice-gtk - net-libs/libvncserver - app-emulation/libvirt -" -RDEPEND="${DEPEND}" - -src_configure() { - local mycmakeargs=( - -DBUILD_QT_VERSION=5 - -DWITH_LIBCACARD="$(usex smartcard ON OFF)" - ) - cmake-utils_src_configure -} diff --git a/app-emulation/qtrvsim/Manifest b/app-emulation/qtrvsim/Manifest new file mode 100644 index 000000000000..762a7e2d5b7d --- /dev/null +++ b/app-emulation/qtrvsim/Manifest @@ -0,0 +1 @@ +DIST qtrvsim-0.9.7.tar.gz 1421805 BLAKE2B 9128dbe513860eafd01e0f37a99547797d385b57a404e06aea310404012e66e6be802920cdea62acb914d355fc842cd3759fc794d2cd417257b941f9ec62fbec SHA512 0d53e21681630cbf97db472472bd96dfe4914e0d275a1094cb18a7f0372cef23b0dea3c33092b6ab6d2403737070ef0b6f2b1f5d9d35eea8923b24a80ac6adfe diff --git a/app-emulation/qtrvsim/metadata.xml b/app-emulation/qtrvsim/metadata.xml new file mode 100644 index 000000000000..38cc1db28ca8 --- /dev/null +++ b/app-emulation/qtrvsim/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>flow@gentoo.org</email> + <name>Florian Schmaus</name> + </maintainer> + <upstream> + <remote-id type="github">cvut/qtrvsim</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild b/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild new file mode 100644 index 000000000000..88e56acd60ea --- /dev/null +++ b/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild @@ -0,0 +1,25 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +DESCRIPTION="RISC-V CPU simulator for education" +HOMEPAGE="https://github.com/cvut/qtrvsim" +SRC_URI="https://github.com/cvut/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" + +DEPEND=" + dev-qt/qtbase:6[gui,widgets] + virtual/libelf:= +" +RDEPEND="${DEPEND}" + +CMAKE_SKIP_TESTS=( + # Fails in 0.9.7, but not in master. + cli_stalls +) diff --git a/app-emulation/reg/Manifest b/app-emulation/reg/Manifest deleted file mode 100644 index aa259755a17d..000000000000 --- a/app-emulation/reg/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST github.com-go-yaml-yaml-eb3733d160e7.tar.gz 64789 BLAKE2B a59db73ba751c932695913770550e115d46df28c4cff402325cf5324c97069e3acccb9faf39826a5da416f8c5b0cc69377cef41a6b1451afa82c7ae8bd620544 SHA512 9e34c34c907d1177e072eb5f3b421b8a3af0e68b490508691d745cdcf1145d9bcfd2592d909a4b05e7f12bfb62355d49861f6d2e1bd29b69cf026ef631965289 -DIST reg-0.16.1.tar.gz 3163977 BLAKE2B b161200e7b96b26054e121853bafb4751865de1146f07fa48418a6624beeebd10eb8fcde1af90f9dd3c20ffd8d5807a106d012bf996944c96b5ff841b0079fb4 SHA512 77fbd543de6e94c504e98a0364895b19099e3cde55a85a4413730de58de8e84f50889fdcfaffa1c76ae412a603ed6d5f4b1d57566ec814cf88df70278e91aee6 diff --git a/app-emulation/reg/files/reg-0.16.0-config.patch b/app-emulation/reg/files/reg-0.16.0-config.patch deleted file mode 100644 index 3ec1bf44d032..000000000000 --- a/app-emulation/reg/files/reg-0.16.0-config.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 0ab86b565f437b9dede5d3a7cef56690d8d19bbb Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Manuel=20R=C3=BCger?= <manuel@rueg.eu> -Date: Tue, 18 Sep 2018 15:42:24 +0200 -Subject: [PATCH 2/2] server: Read config from file - ---- - README.md | 4 ++ - config.yml.example | 37 ++++++++++++++++ - server.go | 107 +++++++++++++++++++++++++++++++-------------- - 3 files changed, 114 insertions(+), 34 deletions(-) - create mode 100644 config.yml.example - -diff --git a/README.md b/README.md -index 3b1b661f..5e0f0175 100644 ---- a/README.md -+++ b/README.md -@@ -228,6 +228,7 @@ Flags: - -u, --username username for the registry (default: <none>) - --listen-address address to listen on (default: <none>) - --asset-path Path to assets and templates (default: <none>) -+ --config Path to config file (default: <none>) - -f, --force-non-ssl force allow use of non-ssl (default: false) - --once generate the templates once and then exit (default: false) - --skip-ping skip pinging the registry while establishing connection (default: false) -@@ -243,6 +244,9 @@ Flags: - -p, --password password for the registry (default: <none>) - ``` - -+Alternatively you can provide configuration to `reg server` via a file passed to -+`reg server` via as `--config`. See also config.yml.example in this repository. -+ - **Screenshots:** - - ![home.png](server/home.png) -diff --git a/config.yml.example b/config.yml.example -new file mode 100644 -index 00000000..9d4be25f ---- /dev/null -+++ b/config.yml.example -@@ -0,0 +1,37 @@ -+### Reg Server Settings -+ -+## Path to server TLS certificate: -+# cert: -+## Path to server TLS key: -+# key: -+## Address to listen on: -+# listen-address: 0.0.0.0 -+## Port to listen on: -+# port: 8080 -+## Path Assets are stored under: -+# asset-path: /var/lib/reg -+## Generate static website and exit: -+# once: false -+## Refresh interval: -+# interval: 1h0m0s -+## Debug output -+# debug: false -+## Skip initial ping -+# skip-ping: false -+## Timeout -+# timeout: 1m0s -+ -+ -+### Registry and Clair Server Settings -+## Registry Server: -+# registry: r.j3ss.co -+## Username to authenticate against registry server -+# username: -+## Password to authenticate against registry server -+# password: -+## If true, do not verify TLS certificates -+# insecure: false -+## Force allow use of non-TLS connections -+# force-nonssl: false -+## Clair Server: -+# clair: -diff --git a/server.go b/server.go -index fcd4cd71..0c84d85d 100644 ---- a/server.go -+++ b/server.go -@@ -4,7 +4,9 @@ import ( - "context" - "flag" - "fmt" -+ "gopkg.in/yaml.v2" - "html/template" -+ "io/ioutil" - "net/http" - "os" - "path/filepath" -@@ -29,39 +31,76 @@ func (cmd *serverCommand) LongHelp() string { return serverHelp } - func (cmd *serverCommand) Hidden() bool { return false } - - func (cmd *serverCommand) Register(fs *flag.FlagSet) { -- fs.DurationVar(&cmd.interval, "interval", time.Hour, "interval to generate new index.html's at") -+ fs.DurationVar(&cmd.Interval, "interval", time.Hour, "interval to generate new index.html's at") - -- fs.StringVar(&cmd.registryServer, "registry", "", "URL to the private registry (ex. r.j3ss.co)") -- fs.StringVar(&cmd.registryServer, "r", "", "URL to the private registry (ex. r.j3ss.co)") -+ fs.StringVar(&cmd.RegistryServer, "registry", "", "URL to the private registry (ex. r.j3ss.co)") -+ fs.StringVar(&cmd.RegistryServer, "r", "", "URL to the private registry (ex. r.j3ss.co)") - -- fs.StringVar(&cmd.clairServer, "clair", "", "url to clair instance") -+ fs.StringVar(&cmd.ClairServer, "clair", "", "url to clair instance") - -- fs.StringVar(&cmd.cert, "cert", "", "path to ssl cert") -- fs.StringVar(&cmd.key, "key", "", "path to ssl key") -- fs.StringVar(&cmd.listenAddress, "listen-address", "", "address to listen on") -- fs.StringVar(&cmd.port, "port", "8080", "port for server to run on") -- fs.StringVar(&cmd.assetPath, "asset-path", "", "Path to assets and templates") -+ fs.StringVar(&cmd.Cert, "cert", "", "path to ssl cert") -+ fs.StringVar(&cmd.Key, "key", "", "path to ssl key") -+ fs.StringVar(&cmd.ListenAddress, "listen-address", "", "address to listen on") -+ fs.StringVar(&cmd.Port, "port", "8080", "port for server to run on") - -- fs.BoolVar(&cmd.generateAndExit, "once", false, "generate the templates once and then exit") -+ fs.StringVar(&cmd.AssetPath, "asset-path", "", "Path to assets and templates") -+ fs.StringVar(&cmd.configPath, "config", "", "Path to config file") -+ -+ fs.BoolVar(&cmd.GenerateAndExit, "once", false, "generate the templates once and then exit") - } - - type serverCommand struct { -- interval time.Duration -- registryServer string -- clairServer string -- -- generateAndExit bool -- -- cert string -- key string -- listenAddress string -- port string -- assetPath string -+ Interval time.Duration `yaml:"interval"` -+ RegistryServer string `yaml:"registry"` -+ ClairServer string `yaml:"clair"` -+ GenerateAndExit bool `yaml:"once"` -+ Cert string `yaml:"cert"` -+ Key string `yaml:"key"` -+ ListenAddress string `yaml:"listen-address"` -+ Port string `yaml:"port"` -+ AssetPath string `yaml:"asset-path"` -+ configPath string -+ -+ Password string `yaml:"password"` -+ Username string `yaml:"username"` -+ Insecure bool `yaml:"insecure"` -+ Debug bool `yaml:"debug"` -+ SkipPing bool `yaml:"skip-ping"` -+ ForceNonSSL bool `yaml:"force-nonssl"` -+ Timeout time.Duration `yaml:"timeout"` - } - - func (cmd *serverCommand) Run(ctx context.Context, args []string) error { - // Create the registry client. -- r, err := createRegistryClient(ctx, cmd.registryServer) -+ if len(cmd.configPath) > 0 { -+ config, err := ioutil.ReadFile(cmd.configPath) -+ if err != nil { -+ return err -+ } -+ yaml.Unmarshal(config, cmd) -+ if err != nil { -+ return err -+ } -+ if len(cmd.Username) > 0 { -+ username = cmd.Username -+ } -+ if len(cmd.Password) > 0 { -+ password = cmd.Password -+ } -+ if cmd.Debug { -+ debug = cmd.Debug -+ } -+ if cmd.Insecure { -+ insecure = cmd.Insecure -+ } -+ if cmd.SkipPing { -+ skipPing = cmd.SkipPing -+ } -+ if cmd.Timeout != 0 { -+ timeout = cmd.Timeout -+ } -+ } -+ r, err := createRegistryClient(ctx, cmd.RegistryServer) - if err != nil { - return err - } -@@ -69,25 +108,25 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error { - // Create the registry controller for the handlers. - rc := registryController{ - reg: r, -- generateOnly: cmd.generateAndExit, -+ generateOnly: cmd.GenerateAndExit, - } - - // Create a clair client if the user passed in a server address. -- if len(cmd.clairServer) > 0 { -- rc.cl, err = clair.New(cmd.clairServer, clair.Opt{ -+ if len(cmd.ClairServer) > 0 { -+ rc.cl, err = clair.New(cmd.ClairServer, clair.Opt{ - Insecure: insecure, - Debug: debug, - Timeout: timeout, - }) - if err != nil { -- return fmt.Errorf("creation of clair client at %s failed: %v", cmd.clairServer, err) -+ return fmt.Errorf("creation of clair client at %s failed: %v", cmd.ClairServer, err) - } - } else { - rc.cl = nil - } - // Get the path to the asset directory. -- assetDir := cmd.assetPath -- if len(cmd.assetPath) <= 0 { -+ assetDir := cmd.AssetPath -+ if len(cmd.AssetPath) <= 0 { - assetDir, err = os.Getwd() - if err != nil { - return err -@@ -131,12 +170,12 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error { - return fmt.Errorf("creating index failed: %v", err) - } - -- if cmd.generateAndExit { -+ if cmd.GenerateAndExit { - logrus.Info("output generated, exiting...") - return nil - } - -- rc.interval = cmd.interval -+ rc.interval = cmd.Interval - ticker := time.NewTicker(rc.interval) - go func() { - // Create more indexes every X minutes based off interval. -@@ -174,12 +213,12 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error { - - // Set up the server. - server := &http.Server{ -- Addr: cmd.listenAddress + ":" + cmd.port, -+ Addr: cmd.ListenAddress + ":" + cmd.Port, - Handler: mux, - } -- logrus.Infof("Starting server on port %q", cmd.port) -- if len(cmd.cert) > 0 && len(cmd.key) > 0 { -- return server.ListenAndServeTLS(cmd.cert, cmd.key) -+ logrus.Infof("Starting server on port %q", cmd.Port) -+ if len(cmd.Cert) > 0 && len(cmd.Key) > 0 { -+ return server.ListenAndServeTLS(cmd.Cert, cmd.Key) - } - return server.ListenAndServe() - } diff --git a/app-emulation/reg/files/reg.confd b/app-emulation/reg/files/reg.confd deleted file mode 100644 index 1bd2475decc4..000000000000 --- a/app-emulation/reg/files/reg.confd +++ /dev/null @@ -1,2 +0,0 @@ -# arguments for reg server -command_args="--asset-path=/var/lib/reg" diff --git a/app-emulation/reg/files/reg.initd b/app-emulation/reg/files/reg.initd deleted file mode 100644 index 7759f44f376c..000000000000 --- a/app-emulation/reg/files/reg.initd +++ /dev/null @@ -1,19 +0,0 @@ -#!/sbin/openrc-run -# Copyright 2016-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -description="Reg server - providing a UI for Docker Registry" -pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"} -user=${user:-${RC_SVCNAME}} -group=${group:-${RC_SVCNAME}} - -command="/usr/bin/reg server" -command_args="${command_args:---asset-path=/var/lib/reg}" -command_background="true" -start_stop_daemon_args="--user ${user} --group ${group} \ - --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \ - --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log" - -depend() { - after net -} diff --git a/app-emulation/reg/metadata.xml b/app-emulation/reg/metadata.xml deleted file mode 100644 index 7496d961803e..000000000000 --- a/app-emulation/reg/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <upstream> - <remote-id type="github">genuinetools/reg</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/reg/reg-0.16.1.ebuild b/app-emulation/reg/reg-0.16.1.ebuild deleted file mode 100644 index bfd5ac25d064..000000000000 --- a/app-emulation/reg/reg-0.16.1.ebuild +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -EGO_VENDOR=( "gopkg.in/yaml.v2 eb3733d160e7 github.com/go-yaml/yaml" ) - -inherit golang-build golang-vcs-snapshot user - -EGO_PN="github.com/genuinetools/reg" -GIT_COMMIT="4203e559f331009df04a3ca47820989c6c43e138" -ARCHIVE_URI="https://${EGO_PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz - ${EGO_VENDOR_URI}" -KEYWORDS="~amd64" - -DESCRIPTION="Docker registry v2 command line client" -HOMEPAGE="https://github.com/genuinetools/reg" -SRC_URI="${ARCHIVE_URI}" -LICENSE="MIT Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC" -SLOT="0" -IUSE="" - -RESTRICT="test" - -pkg_setup() { - enewgroup reg - enewuser reg -1 -1 /var/lib/reg reg -} - -src_prepare() { - pushd src/${EGO_PN} || die - eapply "${FILESDIR}"/reg-0.16.0-config.patch - default - popd || die -} - -src_compile() { - export -n GOCACHE GOPATH XDG_CACHE_HOME - pushd src/${EGO_PN} || die - GO111MODULE=on go build -mod=vendor -v -ldflags "-X ${EGO_PN}/version.GITCOMMIT=${GIT_COMMIT} -X ${EGO_PN}/version.VERSION=${PV}" -o "${S}"/bin/reg . || die - popd || die -} - -src_install() { - dobin bin/* - dodoc src/${EGO_PN}/README.md - insinto /var/lib/${PN} - doins -r src/${EGO_PN}/server/* - newinitd "${FILESDIR}"/reg.initd reg - newconfd "${FILESDIR}"/reg.confd reg - - keepdir /var/log/reg - fowners -R reg:reg /var/log/reg /var/lib/reg/static -} diff --git a/app-emulation/rex-client/metadata.xml b/app-emulation/rex-client/metadata.xml deleted file mode 100644 index 6f49eba8f496..000000000000 --- a/app-emulation/rex-client/metadata.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> -<!-- maintainer-needed --> -</pkgmetadata> diff --git a/app-emulation/rex-client/rex-client-9999.ebuild b/app-emulation/rex-client/rex-client-9999.ebuild deleted file mode 100644 index 4b6505b6105d..000000000000 --- a/app-emulation/rex-client/rex-client-9999.ebuild +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 1999-2015 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -DESCRIPTION="Remote EXexcution agent" -HOMEPAGE="http://mduft.github.io/rex/" - -if [[ ${PV} == 9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/mduft/rex.git" -else - SRC_URI="" - KEYWORDS="~x86-linux" -fi - -LICENSE="MIT" -SLOT="0" -IUSE="" - -REX_EXE=( - "client/rex-exec.sh" - "client/rex-register.sh" - "client/rex-paths.sh" - "client/rex-remote-pconv.sh" - "client/winpath2unix" - "client/unixpath2win" - ) - -src_prepare() { - for x in ${REX_EXE[@]}; do - sed \ - -e "s,\. \${HOME}/rex-config.sh,\. ${EPREFIX}/etc/rex.conf,g" \ - -i "${x}" || die - done -} - -src_install() { - for x in ${REX_EXE[@]}; do - dobin "${S}"/${x} - done - - insinto /etc - newins client/rex-config.sh rex.conf -} diff --git a/app-emulation/ruffle/Manifest b/app-emulation/ruffle/Manifest new file mode 100644 index 000000000000..c5efc51a486f --- /dev/null +++ b/app-emulation/ruffle/Manifest @@ -0,0 +1,896 @@ +DIST ab_glyph-0.2.23.crate 18537 BLAKE2B b11121197c7c2bfbc8096e82fb7321d2e3a56491c8d644d0b83d99663c642ef5813d1952994613c5c2fc98df76f67f0103487cc50c304e59307cc6c5a389a6b5 SHA512 169aaea8daf54cae7b3123b088f95217dda53f5e11b42a962d4607f546b8ecbdbab769d292cd2f50206f58d015785361479b4dfc42915b28bc5bdfff4340c151 +DIST ab_glyph_rasterizer-0.1.8.crate 11010 BLAKE2B 2a20fd3ff646559d704e214ae7c4e5b8297e20be0909c403c140edb67002665447a6a796e5ca5d71f5c8c55000489a14a101ec43dd90101be9c246d1a0138dc4 SHA512 6fd5ff2d068da84c4ac2e6e2c5ad6ab2f4926f1664afb8ba701b60a35c3bd7bf00b200b22c455ca15dfc7d4303c8caa0bb150c18dcce01ce107deaf323cde17f +DIST accesskit-0.12.2.crate 27196 BLAKE2B 1b1526ecae790ef8d211c76747cbd79589cf0e726976448cbdb9e72736f717c472064146f3da8dc19f64b2e6140557f1a8da6c04e4d55d5b9410cbe754987f44 SHA512 539c341278cf25cbd3f9c7549a75bb2c63f8b13e11dead42ce62b23879c72d5e5028a8a76515098133e57e70a98e3aa54fab1a18f2cf0eda4832e1b5feb503a0 +DIST accesskit-0.12.3.crate 27022 BLAKE2B 834c6c46388014047d12e92fa8abc9c3cbba7506834a64cdd9159c0ccf3888f623da82fab106c64e62154be3ea4bb4447f0ddcf5f6ee670b282b94c4e0c3ea4f SHA512 5b271883b13c132be9036f016c4dcef7391287585cd9fc5bdec9a931a5bf1718732a14b09f55ee56c95ffb644ff52e1fe001e3ef1eb6c1518f1c8cf68f244440 +DIST addr2line-0.21.0.crate 40807 BLAKE2B 9796b9a1177a299797902b7f64247d81d63d3f7e0dcc1256990628e84c5f92e3094ee8d753d9b72187b9aaa73b7ca67c0217899f2226ebd1076f8d25b458475b SHA512 afde7660dda30dee240e79df1fb5b92d4572520bf17a134ef3765e2a077af9e13713952d52e27fae420109b40f6e24dbce1056687dbcbead858ffc21cc7dc69b +DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1 +DIST adler32-1.2.0.crate 6411 BLAKE2B 51d44ccfd774158687b8244e83377e40ff896364e3d41e9015665131cc2a176d4ca0ab5a84df027dec0869ee735ee36f5687a06c1d2341de666070cdbab89483 SHA512 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3 +DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79 +DIST ahash-0.8.11.crate 43607 BLAKE2B 7dff8e41798ba25df8c4827ff414a182bb25da4825f0119a74916fe775db5445b87be8fc87f7c7f98d3b5053e1d47546f98873de1a942d36e5f308a3fb7dd620 SHA512 47d211b2422de0b381dfe32229faa346406eb7a22dff867dc04c22389609a8671ce3218e662000c49891a06c259d82e0ff4413740f007729d80e097a6c3f0d9d +DIST ahash-0.8.8.crate 43028 BLAKE2B 598a7f2ef74a9470913d2d4e46d1652a8ea7ccd9843778b7f2f4d9f41703ba4cae552aca8205fef6ff8f601d919a5f141391a942e13e5285c7e053cbbbe4afcc SHA512 b54c8c2cfde8115d2108dca36ab698d1b43eb015caa36e6d02288ff21a67ff54144affd406af704107689888f52548203731d3793e5b881bd267b2f803f478cb +DIST aho-corasick-1.1.2.crate 183136 BLAKE2B 2d4306d8968061b9f7e50190be6a92b3f668169ba1b9f9691de08a57c96185f7a4288d20c64cb8488a260eb18d3ed4b0e8358b0cca47aa44759b2e448049cbaa SHA512 61ef5092673ab5a60bec4e92df28a91fe6171ba59d5829ffe41fc55aff3bfb755533a4ad53dc7bf827a0b789fcce593b17e69d1fcfb3694f06ed3b1bd535d40c +DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69 +DIST allocator-api2-0.2.16.crate 59025 BLAKE2B fda69b52435a7243eb19bc55914a1961e59dbad5ac12c40db39cccdf7a99c742da59c3ef160350808698db24b91e0ce655cd1acedbbcbe20c717604aae23ea5e SHA512 e1eb0df6b44b62115795ebf772f81e9ac0b6d273afd81659dbddb7eb6628b6e5ef6a60ea21413e79ee638afb72e6872ba83a075f6324daf93f2f1eda48daff2f +DIST alsa-0.7.1.crate 70626 BLAKE2B 350f7dccdbba20ec1c0ab4df8ebc136e9b826b24e6561aa1a2b1dcdeb5bd80cff2c0b225efd0dbbe90dc81b32f5cc081124bbaca51e9697458020d7465e9c2e5 SHA512 b94d9a1aef0becf2324cdcd6d20fc7542a017d746e73bad981e0ddcf300e43db5ea5e907487387028439d66871c7d9a05349d0f9ef0d50ed2a43b05cbeb990ee +DIST alsa-0.9.0.crate 72602 BLAKE2B f65921c4d37204f9f8bfbb95cb3cf64952240b516600d9d48d3125c491ba12d476d5717db6cbb1ab58e0d85373a5d4347d5fb64405d5af0639d282de9632b7f9 SHA512 85dba28d451a8fed3b6131dddaedbe8de0fbcbc39dd9c58a9a9d56f132663f8f42f6e647ca26bc25c2558cc4db806894b8062f5f2bea619dc70f2dca32a2cc02 +DIST alsa-sys-0.3.1.crate 32748 BLAKE2B 0c4da9c343d622ddd521fe9332acf97c1ee4a202a909c7a0014a507148ab6ff82d5098660dcba847d938b296adde416ae420d454d6982c33a0456f37840d716b SHA512 6523d909c500fee433f934eedfdc200cfc52e1b55be09434665210c16bb9af3593d8b1346ace184b171c7135a7aa65fdac5ca8c68e64f9d20436e1d8fac961fe +DIST android-activity-0.5.2.crate 258406 BLAKE2B bebcddb062921b10915959704d1339c0d200843b887be4588010a359f8b46fba6dce94d4f87a37e006c01e66e6ec061f33f4aaaf32ff616fdd2f52d2d0287b2b SHA512 281f2c3afaaa80d71f5aa6b531aae8e551897bb10c70da40787ee03ff194129da0df79f2e14d5432c9eb4a92c6227a1f9e1a3bd12e7060bbcae85fef177c009f +DIST android-properties-0.2.2.crate 4563 BLAKE2B 00634bbee4d6dcd3254ee37dd7e5560963b35700aa95c47c84c129f0774cbac436347f0abdaa4ec33216358d9f079559552bd5a95de5026b7dba4e04d9cd674b SHA512 dae9a12ffa7d5fbabc28d3ddcc32f1b5300884cf2b3ef2e123f2dea596b3a796b9c3cb6c5381bf8f6caf04a633c5f2f0b56804fed8fb2a6f06c36d6c76539431 +DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077 +DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191 +DIST anstream-0.6.11.crate 30239 BLAKE2B 4ac585ec56a804239d32ad3e64d93936ef9d5c8e0f0e2df17f7b081b6a3b2c4c32ff4ebc09ec02507bbed22b025628029d859610aed90c024e19a3216de73c8b SHA512 f8dd65cc116a1495782a3bfc98edfdd0973ab22ea2fafd292fb4bd3495af7b5ea410f320d3fa05f7f812fa96c2a20f4cd2af9fc58869a1a306f32714cbe45163 +DIST anstream-0.6.13.crate 30928 BLAKE2B 0c6d0932dc486ccbe8d7e6f97bd8aae03fb84d4db90d0488070b7109de673e0af845a70a39e546af87f71f4c7f7bb159ab8ed68ac0f03a0297457062d9d69dc0 SHA512 4f9ccfd135de9be22a01230f39d571c8d8ccf7c3eba837fbf0868c9660693b60ee0c1c2f9490a587d5307e892ed45cb946da7a0690a9f972619c94fb050bde09 +DIST anstyle-1.0.6.crate 14604 BLAKE2B 0716d0dbb62bf05c63c2bfe1c689896660073a423d26965ce2570f11e1925752a61209d78c2f2fe65ec4eb64ea4ffbb39669e789c0ba5d1b71e75de929153b20 SHA512 dc0e505465be54799b9faad70d0c6f7f0dcf9f5e1aaa43177b826c85dae626b054910244da0499862f066f6723a1560ad12100aec523f28c6198f1ea0d1b78fa +DIST anstyle-parse-0.2.3.crate 24699 BLAKE2B 17e8638187ccc1ca0174a8cec7f7daeee7e0d8b8c430f7e74f9b10d8de4b49fd1c6facfdafde305b7a3e55b1ebf2b4e8ec4975a0cce691514ddae9eb5b5e711e SHA512 4a6d0f706d75c9b3c5144f34efdef3ef8fcd075962c594a23a6209ed56112563a34b3c01e05a08a0868d59204272d06211b2585cb9d06ce075ea875bedb2f399 +DIST anstyle-query-1.0.2.crate 8739 BLAKE2B c06643e8616f1f4469a32f9c0512941ce53ac5db9ebfa7a5b2f19233040cd4438dd2ee69ab89ecbc1c239e92b674dea9df15ed673408c6f3fe21787cc17d76f3 SHA512 f409b624cbeecf58fd87c47f85be28cae1fe48f65d692195fb80854c514e38c40d0e0ffad3a5b388a3929c47bd2060302ebb635aa98dc57329f3a5ed7be3e2dc +DIST anstyle-wincon-3.0.2.crate 11272 BLAKE2B 73e124773f618a744b17017d4680ec6ccc84ff94fbe2e565073fbcc0facecd3cb65356cf27746d07f453bc917cbeb2ade3a618c6b8578d64cff4828c99569868 SHA512 4cc194faacffa01c6989354c1cadbf1134f0945250f67b7020ab5b475e30db34c799176bd335a6265386cb9c5e8b5bcbdf35894ec0c809b140ffe1c406751931 +DIST anyhow-1.0.79.crate 44931 BLAKE2B 9270f04c6fbbecb535e3081f4275c3df28f6a893c1dfc0a9f7c009994de2deb8ebced04fe5e6f62931b33c3707f4fbfb0c3b28da1a611b413d40d27149d1fd2f SHA512 ecd6fb1367d494df18c0e274b336a133f3acf7b6a5487d20bdd06e08c7f1f729877086a0966e998221daff120504fadd2be2dc4219ed621f81b0a50c2bbc2011 +DIST anyhow-1.0.81.crate 45142 BLAKE2B 9b8678c5336fe5fd2823c58eae827f7aba726e12fb6edfa958c6e3b38a96dc3310bc8d044ee2e9db0bc611548f0be9a7b664b75321bd0b8a7e168d27dd3d7e78 SHA512 3d328c6b45a4780cfb6fc8daa5581cb5e45b230cb5f55837b0fcc8331c8d53630950c281115c06b21e655821a46d360c4aa667cbb24e87f3a534206361b08af5 +DIST anyhow-1.0.82.crate 45361 BLAKE2B 558bac4de847a432fc80427e7be4e78cae4b01c4da852eae2121416af4d7e6ddeaeffd7de9bb69e55340b9a228436b975fdea88e380391a77c782a3776b835dd SHA512 e0d25a8c0b9c45e1db2072618097aff3908f70bfcbf0963d3c9dd9c97be27a85c4a763c5cb74e1ccd1b0a2059360e0879df4be80e10e58e0a5346b65f4fa1a69 +DIST approx-0.5.1.crate 15100 BLAKE2B 8fe84d52263521c0b72a1d1e82ed283828f680b8b56f532df2c14ea86ca09e793686d823c5d58ecfd7a829948543bb375e85223c866cf036e9432be5d6aa7399 SHA512 c6d768496c974b6ff4cf7ad8e65f3fc9faf29a1957da497968ee112c6a0b9d7a0ff9a2579206e864976c0f65ed2190bc9d2b63b31a09ced7b57879e207c46407 +DIST arboard-3.3.1.crate 45745 BLAKE2B 9e320a3629e409000bd7f6ac17fed2ed3f792ee679e3857cb7934dbc8a211217a00bf6721fb2bad175f9bfc038f3f94cc04e49fad11ba06b37a21318ea7c4278 SHA512 6e6b36c925f8fff8e45c56bdaf61670be3fb0735fe9d3f640860498e5ab9f56a1b172aa52b80bd3469390fc85d576c9fc739e40b7c271da675ecc4260857554b +DIST arboard-3.3.2.crate 45916 BLAKE2B 4d4b39d9447e7043cc30b6989fdd9955dd6028ec2aea77566ad24d91c31d4bf01306bffefa412d5b494f021dd8a3e51e61036dc64377f86c5ef1ffb1e27ecb4c SHA512 cba3917b302f4f4630275cf64d31d4052a2f7aee1b179bdcef95d5153cf92a9a46f139b76ffdfddab525c1ea36ef8e7fef78ac704222d4fb33fecaeaa8d3af50 +DIST arc-swap-1.6.0.crate 67342 BLAKE2B 6afd6570c3cef4ae722d4168c3320be1343c4f6043892e5e5b52879b8210a896e083d720797b41a41db04a08eefdcfbacbfdee1a7f2180e9755c868d6fded872 SHA512 5e09cef9fa12d1204db24f3397158a3f45d12dd0fa61eadd691bba120a43fdaa916ab09997e7a63d61a3fb7dada4e3266181f4ef413850c4bc5e59d2c6c5b9df +DIST arc-swap-1.7.0.crate 68468 BLAKE2B e0e1685ff648f5ee4dc019bcb0b9828a721692c92dd95737f8e9046ce24cf91a7954dbd47d8fedbb980c5dad0cd75ea8fa24977410837cf6dc0df107aec2e8c5 SHA512 f4fa33638a1d94e32f7a288f4e54544222bca8180247047bece1e5ba999a72509e140f7cf58e2757756af001ea94c193d66bf3bcfbbf6013d24b097156a4c99c +DIST arc-swap-1.7.1.crate 68512 BLAKE2B 5ddeffd2ae8af4125a5b43d4a0a1afc7948533bf037d8cd3e47603c13b57b156618280d99b840bf318b25b6eb29400ad68499695e182acdc05bc5f621c42ee16 SHA512 070fa8dd17b380b6d7d72f6f45c84e591de9a9770b9662351e7a41af03798bf5e34d185a5fcb948f4d8ac5e210a33acd465c39eff6097662c2442b34ee3dbdff +DIST arrayref-0.3.7.crate 9620 BLAKE2B 69d25ca9c15c188ca954a862f320869a448a5d8ed5765a6fc26309abb030e1d846d12800d960c8a97aa3ab422e8d2b883bd154781ed219a858e02b20cc803613 SHA512 dcf1c7de6d1d4b921e26a39cd70070bd460cd27f0a38be9099e41fc8b05fb60ba4f9aa91f92401cdcd0847bad08bffa7db4dca8d7cc84a3c8a1416d1758838ce +DIST arrayvec-0.7.4.crate 29856 BLAKE2B 81ffac1db340e919618351819def3880ab1ef70d0acc47d680f15298eb749bcbc3bf7944ba14159be46b1e734c91b4c0f8cbaf774fd864c17caa3c9fb1fc2e9b SHA512 91e8f70330c515c966d78ae235e890594f9607381ac738a2c3586b53f01411e98d1687494f39ccc365948ae60497df3dfb2be18e26ab7e69bc0966b6c250e1ac +DIST as-raw-xcb-connection-1.0.1.crate 6460 BLAKE2B 678c4c28852bddfb8ec9660742370e480df6cc379bd7d653e12fa00aa99b598d9e5519e15c33e59fbbf43d260fd01856129ad4e9e8dab28af6e043e3ea651fa0 SHA512 79afaab72e5a5af2e70b1b66deed1dcec5b40a4a47516bee4845684c0cb8afcb2f141af0bd4034e7fb76e57a0c7e7778c3deed2e73ab780915e04e3604fb9a98 +DIST ash-0.37.3+1.3.251.crate 449524 BLAKE2B 0f21db7c1e8290b3cf5ae8ee064dc6905fe75d9f6075edf2255451a3cb9c1e7973c6555be6e06a3abe7d29a64e159cf9b6cc9c9ff9808a6fea82216dee41fee4 SHA512 7967df0dbe734d5ed7b60fbaad7a844e0c0c39792828f4764580fdadc3b38d631d4f1a62ea2cf4b08e3a6c0c0f89d771ed9aa97241d6f86031a9d9cb1ef140cc +DIST ashpd-0.8.1.crate 74342 BLAKE2B 853b77be49af0797804c2d2303a21ca2026b99fcff210797e28db6c09bd0142eadbbf85771a3fd2029d44b2a51167d3ccb231179b8ddc92c3a8d0b0fdfa9fcb5 SHA512 287febcd2fb246435092a8c376d628a6fa833ff288dc0b31d0534da95c91385b06c5428a19d490079b4b32c72ed9e4fe56f3c6040e687d30e2ffd41d6669acf1 +DIST async-broadcast-0.7.0.crate 20852 BLAKE2B 5848b71ced51d2a8ba7c5d9e1102b626b450c5412d35362903beecdcb7a7fc89ef33ebc3aa233fa1ae8bdf2da2768b541d16b91dc21c0435751bdda9e1bdce7a SHA512 d1a452db233cd9c1776b0d5931727d8d96a5e7779088fc410eae897a174c5dd80900c86385e270c62f164f340951a5f83860be970e37cd4910cf8a85dd78d89f +DIST async-channel-1.9.0.crate 13664 BLAKE2B 52455c1c9f82bede902a96de0526ce4563184a9da303477110b556b4c877b563c21c32bfd9c6ded446ea0bad416af81a07e5df5a62e7c8f40c8183c1d09ac4f5 SHA512 cc624b87dbf34e4be4e219a82b96036396b92042025eeed2362d91f414ca17884365470fca5014b02659be44b77f20530ca33236dc427f0a2fcff2704c46c3dc +DIST async-channel-2.2.0.crate 14307 BLAKE2B 7973ff2e6d64d033b648b5d8dc91c25fe28d815371f6d22a2ed6342cff116862f2ecd3ba97f8724b30bfef4b80cba38a7452419742daea85793dd776bb8bdf37 SHA512 1fb9af56299f4379c013371c36874c26c59bb6daf53cc552d5138c32da7e3e306200cf6d51d9acde074302dc1c4b720d1487f815a9bf840a8f5d5dbd10c6b4d3 +DIST async-channel-2.2.1.crate 14326 BLAKE2B ff89c3c0daf1b682c6eef8efba42e9fd29a374b6508cf254e69c8e503eb6ae10d96d129baf0c5033af4a9826210c57a6f826eb62241108ca4448f8dc438ad33a SHA512 706aa51402267ee2e7b8995efea8fb950a88d5db5e86302d554850074a2ecc541b02db3b9b28f068d4143de41300f75a405c0f2b9e83cd848ffc98a1d336da71 +DIST async-executor-1.8.0.crate 21870 BLAKE2B 85e24330e50d971239e4b2f7c8f7e524cc41fd51a9a795481286e5dbf932de4b9034c1e1138bf0a53408dab4d613f52349f4ca2c383ee869bb107b6dd34a6fdc SHA512 285361d42c34331b3ef67d9d768f62bc72077046766d44802a7e769d5e56718505751d9019b0867b2c28c08273038ca18a936430ff44b7714b780fe520adface +DIST async-fs-2.1.1.crate 16545 BLAKE2B 1c14543f6f1e86c38fe12cadc988d097ebe3e42d4bacce5c6ed63c6861a7490752b7cd668c28c70d8f864403e7d5c355e387aec65b4213b6d52c1ab6be2fb4da SHA512 0909ffd7961fa5e2b2d29349f21ca08c679c915bcace8f3a518b2a826863c9c990aa27fbf7fa08e6afb9bba473b4dabc8398f48b92158cc6224984b5ebc87cf9 +DIST async-io-2.3.1.crate 49279 BLAKE2B 342daab31d51a3040cd35863f7d9c5dd8653187413d5340cb7929d926e2fc458bfdef1f08bc819a776480760ec3d84fa0f41a76ed0a9c2260803b61bd291379a SHA512 8dff4265b650199292e43a8cb24ece49991d17586ea57bb013d734a2c05e8787a47bbabd60cdeb557521fee376c9310e907aad0fa5ad178f5c6ab0495502e387 +DIST async-io-2.3.2.crate 49298 BLAKE2B cf01d97782405c56261d54800fcefe97c914850d50b49ce2902eda3cfacfbe6800dc0ec9b418f4bc51f579a9d0dca8b2842b17d97c3e046667e539ac67f72a57 SHA512 a7f04de21cd2eea933d7bdddaa548c92ed9a96d4f910d0aebd2ea9ddb7fe75de5f142df7aa4f7afc23b6877a20e68d3376db2e801e2a258e74b3f0ad674630fd +DIST async-lock-2.8.0.crate 29944 BLAKE2B ebb35437caf6bc8db154b21fd17bbe1973490fec06cd34e7385d9028440b0960407d674beaa707a01becb227ef1107686165953658f490902e13d0732a4e80b4 SHA512 f48732dd8e5de0228f56780adb87e4d9870496ddbfe4cc7c6aace8d4cd7198627a05ff0358fb33ed57480c7ac886b57253fc73b2bbcd3e8cfe65624b51847ae1 +DIST async-lock-3.3.0.crate 33286 BLAKE2B 93e66c16a6b1cb759378e198927d2df8ff9f7839a2bcda49d8e013ec7b9b175bb4199864bff585282a471cab6d4f88b70141636413dbcaa7b0453d35f08a94d6 SHA512 0f9e0940e610744fa97c6d2ece9220a2ad91f09155eda66703c2aaf4959f85c17f2cb55ef5fdf29013d4dcd84f8cdb6b16e8692ec7724744b57bf11a86f22f5c +DIST async-net-2.0.0.crate 17787 BLAKE2B 04685e1ffd4c363b3b29bbc4819c7a79ca45a212c1c3094835f2ca8ffe000b8061a4b28de84497d5daaa70139a8d0c036fa4385ba20ea4bdef73b52102cfc349 SHA512 e12163eb7fb526d434c257d82ad0bcc64d3a1fb868b899fc5666c1307f821654f7afff9bf5dd3ca6c8cceac31df29a5027542f6e5901c8801ce2a696ab737479 +DIST async-process-2.1.0.crate 24505 BLAKE2B 4acd4f44d3e7825523f138dc8ec84a58198dc337dc81e473aec52117da7517bda78533ae9e05505af30a72026dbadb2951378aa608aa041a7190bdf205a37b83 SHA512 a81c2081106753ba09807d833c2c0575a8aa0f73c7a50abcdac88c3c9d2d34a4ed67920842c8f86a26bda0ef89302ceb5e9d05516353d793bcf29dcfb7f7d79b +DIST async-recursion-1.1.0.crate 14982 BLAKE2B d27e03f166a8b65d48fc7430845d0d8affa37e8292a37125b71c0f3e26c678a979422163b72c40bcb0a51f5e85331ebf9533ad1d3249b596b86ac9cccee93ef4 SHA512 a6d3d43a1b0e08c9caae950634610ea1eb101af10dfe82f168da3125839f9c3702ae7761b65ed6af191533d1b6e6dd0d668f2605812a666d191e3883ac0d5277 +DIST async-signal-0.2.5.crate 16743 BLAKE2B d767437ec634911781b883450b7a32d6b3c40f52a18840c1d14c2d7cc0984fb25789d3b66e1b3ef776c693337fdbbf2f32f2cb75721864708aafe094f0826ccf SHA512 0529f5bfe74f8ab16e1597db31e997dfb9d6185f96cda3c988cfdb1cde95291533da5ed2934456a2527d5530bc2972effdd34ec955f3bd94a34fde892726b3f0 +DIST async-task-4.7.0.crate 38906 BLAKE2B 6dc02149a64f6ff8d605e74fb7db4fd0e48e6f0b57b0aef27959a7c654f25cfd1f76a403541ad8abf948a2a15bbefacf30c9f5145e2ce276222c53c62e0b30af SHA512 9267434c8785869dd281346adfa2ed79e55e97c6a889db3be8e05597420331596cc9d87547cb1305b172e434359c2d4dac6da6453cdb4e1f1dd4fbc989ee0a3d +DIST async-trait-0.1.78.crate 29593 BLAKE2B e46d11867e564eadfd6cccb994878c911c0c8a33caf799ea0a0900a3e9ffda91d7989c64a2c1ef4953a7f8b27a744976434a6673c131716607cc672f1ccc1333 SHA512 67c33065f1702fa4a3abe979650938d954cab93029f7e6c9b4b70b549a7f2ae3d6691a07a36cd7a64854603fa86c9eba5410bcad06881b4ea28453e38c781ef4 +DIST async-trait-0.1.79.crate 29558 BLAKE2B f6c5c4c28b85e1907f37f9f6e556c8f4304e15d6af8f7535fd201919496fa03fb213a0389644e2d1433a8e528f36dc9aec9699bdfd37082404d4026ec03fe666 SHA512 4c417b01776d939675b0c4717edbb8e11810cf08ccccb26697809fe10898b73e03ba3332ebd20a2cea72e8f4f16903737d9923e0048f1ce6eb9c8f04465f2487 +DIST atk-sys-0.18.0.crate 22910 BLAKE2B 21c1443c7de350db4f3bcb11bade8f1b3ba3e68a72b471bb3c8bd92ebe9a9803231d3c3b60c5737ac380a3b8cbb9cb8c9ac7822316b9e971ea6839b668a0bd49 SHA512 24a3b52e1943cd68a5ef896ff6c9be0f71fe644d6584571816f7a53821516cb986b4ce3591d83ac5c83998875a58ac69722dab505a43e70f25a58c49d7efa3ae +DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c +DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f +DIST autocfg-1.2.0.crate 14808 BLAKE2B 122327d6ffd32e08dc9fbdb4dcf69128b19d56280f9d934311b946741003b40571cdd1f3ef54b2be02c8dc505aea11c962b244d33a92206bf4ee8f6b2b9da432 SHA512 66cbfd13e33b36284cf4c74c8d654f93adcc45893d127d9aaa4c1d183e47336096e72d74e7c17dd481fb7a98931ab6cfec7e4d4165cfb491861d4e3ffe2416fc +DIST backtrace-0.3.69.crate 77299 BLAKE2B 594358f1d9171fc369f50cacffab03b8a10a8fe3da5b915611cb74b0dbad0e048c7dc79c53569d89827db583e0f61fb7269147b6258781a1599a811e642414a8 SHA512 6e86de53e1c5003ef68b6a85479cde1e70bf416bdc50e6e32ead9f9f070fa30ad46de22574041c844ddfeabd5d15de01ef746f19f8cb7f257c491ef0bf071244 +DIST backtrace-0.3.71.crate 86553 BLAKE2B 15ed93574fb9e8e28d5ad901bb1f94013b5fec7a79aa96d17f13f6f11a02d29a274ec14ce51a9f515574839aa41232e5aaf6e6fa3ad9c0483591055bd0a78c8a SHA512 5d9307757349e860fb4cab7e9ba1c9d0f1faf49ebcd935ba879b85fed2a9812786c7458abb59a742842a0796fc29ce9921cf575792402486ecdbd9a2568cdd89 +DIST base64-0.21.7.crate 82576 BLAKE2B 25cc8761c14220981ff4ed332058f6179948080cbfa2b225ec1d1602e4af14cd470c969e8b7049117e6fc51a5a24e06b1d27bab844486ecb76409d12e0581d5d SHA512 c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9 +DIST base64-0.22.0.crate 81568 BLAKE2B 55e6bf8888de846bc14010fd706686544a1706dc9cea034435b5bf97bbbfcdab57210e69b425c9f2adf7b088b6f2cbe0f8148077a8be3aad88114c404738682c SHA512 116928d2fed66b43ecc8ffb4e1cdafb1aec3005e0034e2cacf1cd3cac7a591aed8e423fb2523900c25a4592ada49d3a0e438703afe7bb66dd1ab9fcaade24000 +DIST base64ct-1.6.0.crate 28870 BLAKE2B 60fbd9958f2519f293db2cd86add5160b51ff4f98718591b3e65d866e8bb176670ceecd5f6e365ff3ff488bf813860bf65d375a2159dd28b25e276e027303c4a SHA512 e3a267dce49257b6990d8d0842299d75b49a9af635082dfee25e314f5ab9067b339c877a4c7b012a1eaf9a84a7f8ddf0173c6f9d8695be81b8b4db03df66c92c +DIST bindgen-0.68.1.crate 218997 BLAKE2B e3706a992c166c16cd8b8ef996b2eba6a0d67f493825e7257ba660f597de33002a32df7fea0fc2508fb47155f70ace0765e9ac4e4649d1f24b2bbac8ecf06d8f SHA512 29520e30db93ef3e239273854c926eba7bbbe2ec70e5162a4722e03947461510732319bfcfc20d5dfc0df137d69e8c1ad97daa0236c5bd4da8a1679bfd696a90 +DIST bindgen-0.69.4.crate 221092 BLAKE2B 69ed55a5827bfe850f589e39bc6e2f4445e20363002c765c5475007b75e4d81cac3d9df358505c63bd6a48300ae4988507abf78dd734bb98b33525bf9212237b SHA512 99530060708690f2ce0b87b97c9ce2998ee968df193137f3c9bf4fa66836814e2ae74c7e0b3057dcff1da7d2c4ea38157e21143c5117be35e94b878c0a427a34 +DIST bit-set-0.5.3.crate 14470 BLAKE2B f6525500a494236103df2b27e964bae0b2caf718156879f972b9972fa509794bcc663c2130e3d872ecadb7ead0982b415dfa4468ef12523ee248fb1bbec2559e SHA512 c5ce7ef71559706d996505e138ce95d9f008ac3375928012a36339bfec48986ad935b384e2d21fa0d505d4cf98bd3e93be15955ecd9607d253b8a276351334c6 +DIST bit-vec-0.6.3.crate 19927 BLAKE2B f5bd3bb9c87fdf3b206739b74df20cab50a1a45af3a58b2642a5a061c26207884be58ef8369a3cd06dfd3615bff0ce15915fdd4b6b6f03facc4a0f86c0b7e910 SHA512 b4b4a82c80d0ff13527ae4fff449ac9c1c7bc519c013af6ea3428348e0e5b9306b725c0a13a42d7d9dcf0f895a9eee0c63695a2503eb7fd2200083c9ea3a9aa8 +DIST bit_field-0.10.2.crate 10568 BLAKE2B 4dc92498b5f2befb9e3d8d5a7bcac478b7f905e708cb674e7589f23b60a3ade33b2c660c3f57105520aa863ef19787a00221e1f61914f090f9ec500961e3f70b SHA512 99bacb002aa9ef89cef1403429807042135898614df85e59475772b90d2d21972ddc77ef9b129ca931355ff11bfb3de66b55b828bbf792f76300fc5cfef066a8 +DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 +DIST bitflags-2.4.2.crate 42602 BLAKE2B 768d4ca52aca73d8acf2f494a66957ed2603eefd5a04332ed0880d230c2cc6ef3bfdc0792fa6f288a0eb132913dbb256793e580bc34f4a40e8200e1fbafe97a9 SHA512 ef4c20e6e78a2ecee97e17189b7100a504d8176c7c15d7f17d62157a116d66f83f8b2bba472a4acf02cd3edbd94b20a7047af918c3f3b371e2e04f7474be0214 +DIST bitflags-2.5.0.crate 43821 BLAKE2B 2d2a78b0a19dcb39580e6f73ed6c468b0626043010b34661084944c83561fe49db24bee1ab57fd692d57617be6506d529e095aea27b753a77e26d0b1ebf7ed78 SHA512 75d7a89e53e5e7582591932bc430e6a1db7ed0f914ded6dbcf957125be52975598df7fee14ef816f66544432ef0505f0a081f3794d17138ec429e283fe14fcf9 +DIST bitstream-io-1.10.0.crate 33372 BLAKE2B 9066458b9b39ea04e914f2465a102b56f79cf748ad757d2df9f6f8bd1d3c7c87c1597675213f5769b161c2e4a49477f5fefa5f7bcf30d0c8f7c3a93b9e53163b SHA512 72c73231cc5169e602ad493fdd29e0f63f014f4760988bf6b4094d9492500043e0eda73e94c8add8333631c506f7106c8332ab4513ef851723cd8f162c1e2bfc +DIST bitstream-io-2.2.0.crate 34113 BLAKE2B a449d31429b3aed5ec54c2590d285a532377c7d5e614eb785e11bb208c3541d1df8c439999202ac52227544ca42008a60b0989696ed0888ef2bfdedbc23f6b95 SHA512 51d328fb67df4d89f755769cb8806249349d9d69a4c1c538f72120b058fb7fed81356b867363396234a96061da92446c6e07b6498c7bf9c1f3f99de60aad3f2f +DIST block-0.1.6.crate 4077 BLAKE2B a2c11873b8cb1a1ea399ecc99ed45e5d0b9399bd88435cdea346910b8707b7da94eeef522dafa5cdb09929534472b2a096c03c373744a789962d4175fd1b110e SHA512 c278e3c0346cae423b533a8f5d6b822e788ec450c92ef0f5f559d5705764a0a11df49f0f66bb1c8af7e89bec8ec802934676b969e43f92255a38b210d0fbd710 +DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb +DIST block-sys-0.2.1.crate 9320 BLAKE2B ef7eac006fa851fa18b4efb3795b960e2111128c9a2671757ce281a585bba948ad2cb39e6dfb2426aee52b517e2e53d494f6975a62ef3ff57a8c8122693f70b8 SHA512 51f66e673f08e4ae28dad971ac795aba0eafca4380307cfb0967435768dc7abf172c2d6df06318c9b18aca5f710438acb94645d3ffec3327c7d55db6a9e2667c +DIST block2-0.3.0.crate 10924 BLAKE2B 039f6b38831ad8aa45ba6845031a17af52b172f3f68d98c9ee648fa300ce1c8fb6766736e33813fe9916596ae4388210b7d0d33c9dd44346b551bcd2c15a1645 SHA512 8f1be7f0e147b6689fe999389246dfa57bec002304d4452f668724591b117bc9a5b3d1a4bd9fd5f72e81799d13a7c2893a4fdca5b5131cf6ee275bd396291688 +DIST blocking-1.5.1.crate 17277 BLAKE2B 0eb9ca486e2eaa790b2b74bb32208e5a7df2053b045f5928c78f9b461c964cb8d38737c1a83cecd8f42495b7101a2378883533dd747f2ffac6744551ec164f4c SHA512 b12916db3975a1aefc36fc2a8824a89f5c0eafd83d83e458d1b6b35ddc3acfa92374cf0b5cd82825eec0182bb4ca97b048edf3b8a80cbbe0daa1c07875131ce9 +DIST bstr-1.9.0.crate 380170 BLAKE2B 06ae5065a5d566b6333e911a5b97e3999ad2f0bc19b27023187004c81cd01e5315dcac920ff87a6bb87ccfbb949364f1361dc04d342e24f9f54490b5d44a81d1 SHA512 dc313a16c38ad881128977a20bb390e7c95a96d9530596433a7c4fd7f77d5fffd079d436006dd8d2bfc4aacdd7f0aff229504444250418f6aa3f8d6d4df9abba +DIST bstr-1.9.1.crate 380305 BLAKE2B 52b45bd48874d052636c6b451cc36d8b012808ea5193e0188e5edd09f81d21b8306926cfebb405ad0650ec9aa710f609bacaa773bf854b21f4803dc38bb2eca7 SHA512 67e9f76719310de60f46adf3c39768b4dc078d4c32dc6bdcec1a94cd9f630c5238e427ed84cd6ec25a44f54e84adeb795a0e92060a5372d9fb9ad9f0914e3172 +DIST bumpalo-3.14.0.crate 82400 BLAKE2B 13bde02e2e60ea3099f4e46ff679d07b2e8046740c1855bb81fe8d20a4ef0fb26e565da724f628a00c9154ef16ffc9018f67433d2a32544564b66803b5bab223 SHA512 179c116a5320c5f21163c343ed48add36089d806e35bc303318dcfe09ba1d5f02bf8012726d0c2cb76a73fae05a7c887a91e18f9e5ff3b9f9ad8a2f12838757b +DIST bumpalo-3.15.4.crate 85028 BLAKE2B 9ec98f430fef4e9b59e61d413b3703430f91bc818f3294aea7416cf8a35e0606357bb5b4d1edebe590f07fb614f832da16016c8530ff39ca853aff1d1369cc60 SHA512 59ca9f8e6b74bdd95b9b4ad1bff3bf4be46dacedeb1eea6196a65dfb0ca7b60e86ab6c25d0f91dae3caecd17ab73c48f953be0bc24bdc0ceaaf4c1726b9ffdc8 +DIST bytecount-0.6.7.crate 14642 BLAKE2B eabbc141f2a277d07fd002869d1746e7f743b96c3dc72b8708308e826d3934ecb01407e77653ef46d06b3bdd9d931e121c9c66a784d46116a9e6b98e992512f4 SHA512 afd46ec3f60022a173b57dd954a06c7c86f21fc153a0ee6fc2052ada5a630515a386bc8344680ced57dd19a205480c694b9a04a6da0660b6e854b4a712604d53 +DIST bytemuck-1.14.3.crate 47032 BLAKE2B 7364a8b474013fd1ffd1df66e47f4f3fa516ab762e10e7b31d9135c5a811ebd87d368b1e723ef41095d17a05465b80128893cb76af310c52fd1fb04b57f7e1f2 SHA512 f01f21142273c53daf07bd168068661ab763f4696a39543a73d9341335f6da6f2e3c88e8859bb06ab3c1ddfddec9bbebf00f4cbd42ad49d77618dea612523c13 +DIST bytemuck-1.15.0.crate 47672 BLAKE2B 49f2d92cfd5abfbe3fd94e7e4c9a3d4ac22c67b58e73947f461cf8e5022738b7d38c790de2a1717b731d658f1646066bee2f936a1575e2995e6de39d20f918b2 SHA512 5b6886f252945449c4546c181bbb6c95597e498aba6b1faf81c5a4af69bcb9e3e024d7d6e849d347682e8ca72ecaa9a70d13fb06c174e17846f0c85bb4810433 +DIST bytemuck_derive-1.5.0.crate 17323 BLAKE2B 847cbbe7a4449d17295d9b6082a8f38be8a1a426638a80f0fc097b208533bdf74d2192d5d898c4a7baf69921a56344e52e70c50daedd4818d6d0e0cd9f8959ff SHA512 aec9f0a10da379a0e909430d4f752457221a53a2a44801be1850072e3a0c6e9dbb1bae6c00609c85419f634a88204b9916a63276692399270223e4d67d7dbe29 +DIST bytemuck_derive-1.6.0.crate 21194 BLAKE2B 9cfad9add5c35c2ccaf3615d3273410c14ed1b420dec930d41d5b3456d7c6fc4da04c12b59594e9f591092ce3f2096a7c7ccba55f724ddb7f1aa2c013b749559 SHA512 085ed20e91dbca4619802ad796f79d25e04d5360422e9f8dd7693d5ef536ae93ba00e996353c196bf1f410225f84d23e55ccd0c84df99dcab22cb32b2a0fcd3d +DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f +DIST bytes-1.5.0.crate 58909 BLAKE2B 2931f19e813eff73be407677622fa29e45f9b49434d5b3a04104b56563fc0e941fd8c5f996258a1aa660000ef014668d70b683b751af8e48d28d0aea76890c92 SHA512 6654cf41d8f0d7e19b05fd95044b9a3bfccd81f469c797c6aa763a4dd29e1b34064bed2e094548d147045cca7bc4706059de5bcf9f6579189e6068fbbf1c29a3 +DIST bytes-1.6.0.crate 60605 BLAKE2B 3e4cd094443969c6062b51917ad9df314b61ec9ddcb0336cf2621d8966c568d5b1fdbf16b11b5e2fab01b43ea76f6609f753eb5c2380a5e4aa8fb6e807a2ff5d SHA512 6507bc4274204d0a19b6a95c3284c52245c71cbf5f2dfb5cd372193d989e49869ec557c0c4e449e96ed4e3028c90606dfb0dcdc1d72bb234a36bc5f344c0a7a8 +DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555 +DIST bzip2-sys-0.1.11+1.0.8.crate 633444 BLAKE2B 01578c512443134fc786669bea4f2ec4b9c457b9936c907315299d8b67ed78045d458c83ccc119f0fad511529fb5af5feff5fa2d983fdae832d2fcc1b343e102 SHA512 d0a86b9f03acb1e4e309d5739dc2e88cab582757d467a433afe0017017f0e5d2c0282529e3a117160958ed170d8d695ecae739805888305df0e35e4dc440582b +DIST cairo-sys-rs-0.18.2.crate 11855 BLAKE2B da237a944a6eed675b6812bf8a71f99354c0c41302d222cc0ddf38e47d612d6c49754cb8854c92dbc62d32de5f716bc869cc874949b62c2ac4736104c5996144 SHA512 b101f7a2543793fbc1a1cf86c62a8fa404ce171160603e72f9aae3592736e4d68ae53b8ad91aa8d70e21965d263dc740f96fe001bb049674b4efee1039d3d68a +DIST calloop-0.12.4.crate 69583 BLAKE2B 5cfab752477b0e08af797268b1b4cb1a4cbd866ea789da25b5b42b8579889da8b589d2e843c774cf98f29c78d40749c60a14fb972812216eced717002a92d731 SHA512 657c6a17ca47f633e3bc3e3b6e98160bbae6ec51e496c720c35f2fffd2b9c1c5fa175b69cdd567f6bcef0088fc5af35c2a142c3b9a14ad9720a9ff7dbff2f53d +DIST calloop-wayland-source-0.2.0.crate 11304 BLAKE2B 27ff9165921be61db363be0c93f2250d8d9532cf67af2f3c00ea4f2e2e3575d7698c1669e418e065dd1ead91f473cdda0f681b1dd989a3f5b75ff606377c73ff SHA512 53bd9b57c10fdd0c94d2c6dcc634d6f7b2e64aa9625d15163b76cef5a3bafa6bd8643401bef0b66d6fd42148f6014bec1339baefdc61d6c79334243bf797f6b8 +DIST camino-1.1.6.crate 30519 BLAKE2B 3696bee362c9a6c7331079f86823aede0df06c1c36fdc2d11c0628267ca7635fd78430cc927cf3b2af34591537d3968b3c5f1cf9d500f3e889c202c944fc6138 SHA512 e777cc6e2a01c95931a81521eb278156d1c50ffd0126f914b21e35dbb7644b835f3c26bbe7a487bbca508d26b4c933bbbb9e051fa42825b154c2fa03c04375b0 +DIST cargo-platform-0.1.7.crate 11819 BLAKE2B d165680a5edf71a40087ea3edb3231185b4f4282989f9e0b59fe968ea16693abb059ee003815bba813bc4ac43cd1fb4c33ed1ac84ccaea5ab4609af537d08b37 SHA512 0cbccbfef8316c925aa2ad40723096925b0218c8cb84dca912d18219c0fa27cb8dfd80c1dee949071781e7f783a7f6fae65fe50a2c4d3e0300fbae466b3b4efb +DIST cargo-platform-0.1.8.crate 11813 BLAKE2B b074b49e08b2b93e93e08276f2a79546fe1f9ba0a52b3b4ef0ecdd28fa3fe5e842c0291fed158a1a12b90804e0172d5419b7603fd0d5f87f062f44dcaf3428f6 SHA512 187acf1b8cc81078ede3353997bec9010df32aba82f56f9479d4c8eaa13436590a16f3ab6ea11ed2b31d1d1d2299d824d9ad10f04bf5281c92372cc8334b0dd2 +DIST cargo_metadata-0.18.1.crate 24535 BLAKE2B 9d0018e28a3941e269dbd30291054a882a960905a43d4818c874250356a6c203bf08ed77a8041f08607390b2a382864701c519d71a0b88818ee59c6322c74e86 SHA512 43f87d2b84597ec9a27e9fccf06ec5f2630a0147a9c85779622c25493bd61268c266643f8206a17d76a16329af85f0cc563a9af7e17ca77024c0eaf788555f7d +DIST castaway-0.1.2.crate 7124 BLAKE2B 43b5cc2106028b9d69a79235e9b1431fb76de1c2c881a26c158be66f79dadbe67b03c4718a439bd0b48d9de70424872c890956bd6774dd7af88375b0807137be SHA512 548c192c8e746107e4aee4b1e392425a024ea6dac53468cfd399c7dfba01e26a1c2e4a6bb824846d57cd940b6b72e26b66525ddbb14a6e3fcf5fea8659ba88a5 +DIST cc-1.0.83.crate 68343 BLAKE2B 33245b33fa845ea2f36da36e3830ec835f937e4319865b357ee9d5ea29a0f9f8392eadb38bf1d95e3c15ed201e561acaa87aedcef744f8db3dabff87a96c7f02 SHA512 742a248c3a7547bb220a0b9c97b67a831fab9b4ac21daa08c85a3966b9fe576088def33e16132fcabec9a2828a6fc437088bb045bfc98b2cea829df6742565a7 +DIST cc-1.0.90.crate 73954 BLAKE2B 840417889519dec96a745c49ecbc8b0d3da9b37a4b6b0165ee8983c07b8150061690b34409381365ae4c70c5780923d19cddce29d5fbc370eb6b6fff29121436 SHA512 349f3c3f8208632f8754cc05d70976eb14f3f13a14d59413994c656efc36bb32b7310adc7d5f3a6745f15e0aaa88334644c9aba8d29fb961215d74bec605307e +DIST cesu8-1.1.0.crate 10555 BLAKE2B 4fe369d1247c3b30ff9beb644dbe2a517d78632191f3216bb83d632bc8857f9541a1b60d0bb583cf3fc0ae974f7c9d2b07fca5efe2057d9ef281de76fe810a49 SHA512 2d902b624c7ccfe3633c7bcf99b833b120c0ed7760ea825bfb2fa03ae90df543e637efd46e0743782b81e468e0fd3b534956ffca81f9bdfbf742ff3beae8f8b8 +DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886 +DIST cfg-expr-0.15.7.crate 42003 BLAKE2B adbcc2498d6bfd4f3445ba2c406aee1d1f6e12f02496f3bf608f7002e74ce1eae81d32bccbf6da87178ada6ea889642f38daad7f8f96360cd2ef03fe572fbacf SHA512 3e803a741008147a5cc0bd3eeb101fb3e4f24396fd3086e8201c070230a0c92e4eb69e74546421c59e1f039dd8aa9d913df1e9bc76866583100c63063c94ed54 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST cfg_aliases-0.1.1.crate 6009 BLAKE2B 6acfae9a89d3479f7ce1f0b5dbb13bfe27c006b936a96685606a61a06f69d17ab754a8a0d96c54213f758281c2fb32ac74d03a34e0f836dc7e438387955aac37 SHA512 238828445c5b48ca41ff88825af0a1ad30494e423bb6f89b6d5e4d26042afaa1ceb0e32041f7cddd79c3e15c6c82a1ddb9469c4b63a1ac52d4bcc1174900f880 +DIST chrono-0.4.34.crate 228932 BLAKE2B a2feab8d8b079209f8661fd8c5069f2a5fc3e5b0a6233187ace16f8f2ad8b4a147253e47af306cb31aacd82bdf490a8c8a171ad702b8dc22f9b934205d080c55 SHA512 2aaccde5e5ecaec744613429f807b3c34b92632973de7fdbdafd7ca510b917a23a0abc92a6497754d0d3368d684305648aec1fa2a0a61c88a100a20fab2348f1 +DIST chrono-0.4.35.crate 234267 BLAKE2B 92552b9c8fb40160de9ee62ed8c5bea12bf8bae393caf91c1c64596d6b2efd09dce94355fb757ed46eaf4a13d27ee3ebb43af91e2d8c26df1f9a9f429869f319 SHA512 aed8bc3298c8f8dd8146c6a919610b6dda52c038a28b56c837a21590e41fda605cd466dc1b85e407f365e116d741cb82afbeff5d29f95f3f5bce4a62abf80812 +DIST chrono-0.4.38.crate 220559 BLAKE2B ab828bfeed56eb737a1797d5e1132cafe87a1e14bf7a1fe4a5098f50e6ceead50ca2e7f041cc2ff63d5f4e41e2853322f6c345bb31ff12a5b412e3e5202f5fea SHA512 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9 +DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846 +DIST clang-sys-1.7.0.crate 42088 BLAKE2B d1ed314a910c1b676eb780fc1c96f5ac391217ec135480d0a91b11d6f447ad06484b48966ae99115e35d921a506caf6aa7ffbc4ed86aa64367dca321678cfd7d SHA512 e544984d5bd76824ea2093f43f98b59a99e1ca8a5de40e49164b870ed4a91a530f3492faf0678190b91e74aa5d122bdbb32c649998d0ce24912dfb0b83ed6b81 +DIST clap-4.5.0.crate 55379 BLAKE2B cd81a1347f2dbb0fc16ac3263d0dd653d6bd948666c8e05cee9c842550e6dfa2373eb68b16159466ded6c679359421586687204c7945bbd7b7c50fd1fb0e422f SHA512 2956b6e65220188b2d11fc532480b78f0f3574dc4137adbae2519d77b9f581bc89a10ad044e8e533a032633340ff09e21dc35ceba41b8f0f2e2b8917ea00581e +DIST clap-4.5.3.crate 55388 BLAKE2B c0de02441b38bf4a4c7879997e70a8c0b55d41ac60ea2d918a3eaf7933ac9105a22cd59def6e7260066ab2d12ba32f13b26f4fffaa6303ed4e4f33622ac9c9c8 SHA512 735be90c75211cd8d77f014c8b91782246c652e92da810877a44ab4c9dc0b4ff9637640da04d57a17cd1550df1eba73d91d49d2e7a73815010c5d6a5017aaa9d +DIST clap-4.5.4.crate 55401 BLAKE2B e9ece2eee6be16c366888f6140080c43a182aa758a971ab2f60fa5c8f5e00460c3e6ae6bface1f36445306265ce13d8145ac24cef833b68b2b2c32c13a7a4a00 SHA512 c1e88968a86598a6541cd8f8144909872fe71fc707dc5327293a71425f6ff9d4957491f93c36326a9f615c1cce1a453cc85740ff18e1ca571e91bf8f7a6ad7c0 +DIST clap_builder-4.5.0.crate 163521 BLAKE2B 597b64b2bf727186d9bf1c4b55227d96dbb819313ed1f952b2753d24cf6c7737075acdbd0091a919e6e4fdd60bbee4a1e7707bc09860e49068556a1112842204 SHA512 d0df594d0c15687d2b9c19c51f86a9fe1cfb9b8b78a8220d77b0e4d9252a850e217312fd3e1d1aae57703ce973f194241acd4e6ae0c9ab79e45d0c14ea8dae57 +DIST clap_builder-4.5.2.crate 163566 BLAKE2B 5eb81df416f3da0bb7e53c59ef4e914f03e2bb0563bb3707fbf70215f249aa523e3f5ef2205d0a8e25c23db6c6d0d344181c1c771566453505c769c55b355374 SHA512 af7eb8326a980cf461442a4dd6d224e61ae31a2fe4a45b34210a2c1f747eed49e00b6254699e82f986f441667f290a5de747b5e9d9d0360ed049504343385864 +DIST clap_derive-4.5.0.crate 29042 BLAKE2B 80a7646b2e30432008d52e27494e2563637e408a90557e5b0009a9db6a39abfdc79c04139f99caedd433a94b45f7d95fa11b49cfd33d203fbc4bc911fad4f9d1 SHA512 0a9d79f957067b929f8e1340b0e0623f78808c5d287cae252e6508fe8e07c4f11bfa39b1d3b60bb6a531d888d809c43ad3f6a491a7dd1e3d3ce89af7e1b670f6 +DIST clap_derive-4.5.3.crate 29043 BLAKE2B 22001d5b0bd7a53dfa4b146014a668e64411deff0b16f0f4645145855b6d52a0166cb9f01ee8aa434b516a68d487219d133455cec1f57984f2a652b92f4e4db0 SHA512 c9c5357225494d4cd4141dc5e3017c78966c53b04b9f43ea4e42e7d83f2a2b69b2668e2a25572c3957038eacab054524cd9b56044404d74cb7efbb19ceb7bbf2 +DIST clap_derive-4.5.4.crate 29159 BLAKE2B 6f7087d553102f24c9de37e1ba85c0d540ea42d9df9af26b5234ccde23175180efe21df93513df49f6ba83e46cc85cedcead29c902e426c39b25086c9f79a51c SHA512 670411136c819577c0129c6fcf5a8216cac82a47ae11ce3cd97cffd038644e06c5a21f7a69948628f01fb77f1e656678ffbfe441385866fdf90d247bda036c4d +DIST clap_lex-0.7.0.crate 11915 BLAKE2B 03287f02067f6cb33bb3889e8032b0848e9a9cc17446eb0e2767768cf6ea8c579a7455d33c8af735fb8d0c16095b19f991a5e2528dee3a7628d68c16f9307fa4 SHA512 638feb2e4571677dbe15ef0423866d2f0df309723e5ad65ddeaff7fd5e2e83adcb973a32d52a5f3924ea88fcff865e956b7d30dcd569df0412ef47848af14036 +DIST clipboard-win-5.1.0.crate 16809 BLAKE2B 78a966132e4f46ac8c944cd627b8f41a372d9f6bdf724e56595b07a3def65833565182d3022a81742d64d2253bce2628f2a47a8518dad8f7fb7684590bbcdeac SHA512 0e2ca2b56dec070a90c957b4986194d593182762c5a18b76a4fa32eae1f3cfcd947eae27458e8cb17ebf6283c1515dbba58e2caf5a7360781e2f23e42468e849 +DIST clipboard-win-5.3.0.crate 19597 BLAKE2B 1f61d0c7049e6b2d9f09d6ef47196153ca4f592cb0eff7602317cb871cf06a54ecf7b49a121f45842cf49555c171f27db38e41975ba13920e5eed456283b6c10 SHA512 decd0b73e2d879c7b650f525b74e2ff20d271ac21598a64d447d863cd3d1fe344b3f4b4420514644c777d1d1793b585336e877759734c7234627ada0510daffc +DIST codespan-reporting-0.11.1.crate 48963 BLAKE2B 39deb717a853ffbe3585e20a67fd7a75b62e2d796a66b5004876501fd7476acde9f126804f2ef6220ebab66821a3ccf058d544d689a2705eae44285f34b510cb SHA512 0869789f5c50d3523d3ee16a8fe64756498a13704efbe82bb0845eaa87c7b6b1d075b3b6b80567cd9fce6cb09c5179e9c07e485fd17ce56c8139ade0f8bc6844 +DIST color_quant-1.1.0.crate 6649 BLAKE2B 9a2488dd00b7a33e15e05531ea49ef1961131f0be0922ba41e2d74d2b1a047daed483ac3a9dd87c847a81cce70a347395c557cad8228ab9a8dc5be7cc0f1bcaa SHA512 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201 +DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551 +DIST colored-2.1.0.crate 23348 BLAKE2B e2778d83b28571501adb4e9ec3fa95d684faf5730f093f6e608ec631e58b883d2b9f17ed7e2c1612da285a58251f479a365aa90fa7be24a2adbb69e426e0fc89 SHA512 fa70f18fb29f6870a727d8243808c96e9497f8302f5f2b1748f9d9e396031e9c53a025b8edc9c8c9a0f8cfca12e5da73250a71e382b3074e9415b85bc004769e +DIST com-0.6.0.crate 24855 BLAKE2B 3cb2eaae6864f05a6d47819d58c83c9be2ecff8e382ed84dec93763f605d1392947dc5025198ccff4b28be5b37287725ee4cc7d7f8e057f1804351b82ed0bd2c SHA512 3ca186fdfb130863ab62fabb2c266f2258ee45482fa9b925dc0d5d7ff492a49fde5c75f8850b18895a27f804aea16fe7bd4c53011e8badfc5114a9740b5b52d9 +DIST com_macros-0.6.0.crate 1075 BLAKE2B e271f5e11a62d666bfcb530879b0f41dbb2d81b94b6cbea15a306a72c97cde9eb77360cd8b5b169f861dd1d5c422c3de07442f016ae169287f243b0e9ebbe7df SHA512 737df65d1281fcb0b636ec1dd908ac48dfc020681022d64de1e327605604cecf9100c6ed629a991716693cd251563e259c4ff5611410117a6e585c94de03faff +DIST com_macros_support-0.6.0.crate 17334 BLAKE2B a786a331c0080b0803684d1447efbe2f6903ce5139242b6c81773727fa61c7721cb198050119f3cefdaed32753f756f9862debf5e8f91d49e39804291080d572 SHA512 e4ec9f58d8ee25b0447854db8f528fe4e989d8944b3fc2b74ef8ea899d3bf6e082e8b516a51a7f77a09073f18c1ad7efdc62d6da8c82e52bbfee02cd7a552cb3 +DIST combine-4.6.6.crate 132428 BLAKE2B fb52e724a52f1a551255591fedc134178080ea5efc0c488efbc369e6272f7f2b87dd7d0ce63361754d8ff0cf1b0a59bbc7b0396c50c53210f3e2c28ac965e0e6 SHA512 ff9ef9329de2cfc103271a25ad1fcb7e478f3328843bd8a65653e80b74112728ad4a33326a58ed7ef8cf39eec7c3b797fc287295ba149ee0dccb1de9721b5819 +DIST concurrent-queue-2.4.0.crate 20244 BLAKE2B b30b97eeaabf0205bbd8f4eddcc57e59b6863f18969731be66b134cdc5bcac9eb543493c54b17bb394b6e227e808f016e4f3c1da2fd6b40269b9b24a5c433f7f SHA512 5821bb396a73692e5b033d8406c2996bc4318cebf8807e596e441a2bdc28715fc6bb8eb29b575ea318f84b748ce47341a8d23f5c4de65660f86056e99b6a8b78 +DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9 +DIST console_error_panic_hook-0.1.7.crate 507196 BLAKE2B 90f2855b54c78258f9e4983849a0c0b41f842990d622bef0ea16ae5e3a93914919022d21b1437bb2ce644333d4e0c6e7b55d960452c4fa437e23bcd0da83a4dd SHA512 49f4fb2175c0068981678f291422ace3737dab7033b1a49d78fd821512c92fdd023c3fe28c7daed88c8f338c30a9c7f82f18bb4583c3fe7839ad8dcd0addd6b9 +DIST constant_time_eq-0.1.5.crate 4936 BLAKE2B 882dbf33f20954205fcc5b6e39863db8969d184b697fd51ef462f6890c1a754e3fae67bcc7db685d8cc26abe6e3871d3b80aa542489ba9551a0c95a49f7a6dc2 SHA512 a4e0155a7ad72babcfd418d832d362b3fca7333aaaf36c246b00e948983837c3c93378b86e37c5fa7626fe137e3b6d77276ccc61624a7f4ab914605905a88a01 +DIST convert_case-0.6.0.crate 18675 BLAKE2B 5e5ab159a61e68b801f1c95dc5336f3af7ffe6fee212c8ffb9905af1121f0b272b234b4e70a30f29f5ed24f4825ccfb59722057b69549fec0fc3472857ee1ce9 SHA512 3b17449195a9a36e3965db89eeb967979c192ad7743217ea08e8c8b91ecae1ac1674362d05dc6f32f1f361fface3f783398285bb78060403f65a777a9d29adf2 +DIST cookie-0.17.0.crate 36545 BLAKE2B 55ca885f4ec63da16c795ac1ab223b41af425506f0597e4c1fe743443cdb95a8644bc035e0c8af70125afbf080d81a3610548da4572c7f67c1b143db1091dca7 SHA512 a0f8e6458b97dcfb70e2046ed121cec35a291666880d39a2acde32781ce55ae24218c5db9cd804f93523392de27071281c89224f9f332d4c9eabc061d7a11e47 +DIST cookie-factory-0.3.2.crate 14325 BLAKE2B 34a45c00e033b7d684b1bfd61a60d5969d3f5cf72532239d09f4f9f803b8cdff4858d1c827bdccc991b562c3ecad3b308995430775080c06fd5ad03538e6e9de SHA512 8c3eb5ac052368a426158ec23c4d2cd3d74f14b426782cab4b89de6070611cbdaf4360a668dc3c76d9168f738cd10389eb56094f72014c7e5c249ee1616aebc7 +DIST cookie-factory-0.3.3.crate 19084 BLAKE2B 795a6f0cd4e93fe8ee257ddaf1f76852499137bcfe47d25e3188f3822f3d92b191cb9f3894163de39386584fcb899ec01d0cabe5757f534dfcee9fa28aef8132 SHA512 25f79e74be133b780373c1277a00538d9faa19b77868d62b16d60037d4890b57aeba2eeaf52d78d3f8523285b033e88b680195a67ba5bb8ffa7c0ffb2070831c +DIST cookie_store-0.20.0.crate 31374 BLAKE2B c9adddf2ee5f0ee146fb813536d7793a5ca1f9e70529e1a8ce84a50a605223c909e02d8b87e2c560b069ad87eabaf12230c56addb5d06e5aa194d1c4309658d3 SHA512 c2da6bd8e42c52ce91ef2a1a5c68bfdfa6a0125847cd5d3a8dc49ff9e46ac865ce5d10f9d4376ba640e4c0efbd6868ac88dcfa9ca85d91cedaea37d30be452e4 +DIST core-foundation-0.9.4.crate 27743 BLAKE2B 5b695e671cc833170bc6bad436b2d0d8d386ffb8181bfcf2e92a1d93cee67c3ba1768cf57064fb91b0897c6aec1be7db40b5bd256a052c1bdaf872ec19f6e15e SHA512 82d0878a1b9e3d56b3666fb5a78f92c6f7806d01665c242c06a640bd6b1fd36260211e92dc05e1a16d1430622bfdd650aabb0b5bd8e5592f74abdcf412448e33 +DIST core-foundation-sys-0.8.6.crate 37629 BLAKE2B 683d5a84b6a3816317f87359532a8339f08bb4043f1d70a8588636eb5dbe6ebb3843e2a12d9a7e5fd1637a912c52a5aefbb8d44796330b09593e7adefd3babd8 SHA512 24a8958cb16b081862a9000affb0147b8b3be1a664b834c3dbddbff03e709de3f4060ff4800e5a35453f4392ccf33168e8b864be71b17be38cb264a39b915100 +DIST core-graphics-0.23.1.crate 30714 BLAKE2B 291e5cc4cfcf1a6507dc0e4dbeb304fb445530c60d7bef79dbaa53524233fc453d1ee977e7ed43513319e1d5641e756749f43b536535fee730308322190462e8 SHA512 2b0e2c00900d4a9e09c718197692ab2aa0d009a43fc03a30075eb33ed7648f6ef640bc2d827fd9cf17f752b810eaecb77107096aeb1daa0348b3b7e17ae47fe4 +DIST core-graphics-types-0.1.3.crate 7063 BLAKE2B a2bb17838745a28a59e85d884ea60069c33f548d41f98548956eaca4178409c74556039a5a731a9c1e9f26de8c69d45f458a90a3f7b358065202b660c62431eb SHA512 e56b96662fcb892b73bae3292478a9ba4c7e92f5967b6438546f229fce115b09f997734c40f8f776be6ede2c6512e837632eacc8ec15b5c3311f9f24fd22a397 +DIST core2-0.4.0.crate 37075 BLAKE2B 89ad26bf5eb5ee48dff32d3b6b11e0a84b68e4f29c39fb9db79c64f3c445fde248b33b1ba9d1410673c3fe823ecca25dea637237c384b7cb419de9bceab8a570 SHA512 53c9d2599d87c37d8b6fc8b2293fc16928a97754240e35af770f7e969e4d91ffffe3afbb4e04312de828d1d43ca6c9b734e0725ac5ac9d74f252449ce296ab7b +DIST coreaudio-rs-0.11.3.crate 42844 BLAKE2B bae10c9b7670651e78f24426378708a2c14b6b1a7da9d4e359611a8bb4df8354af5b409eb20bdf1e9b05a6117c59b6cd7d3a79851682a217732986602c8cf3ed SHA512 41b3ade3b6e157be533bd25352ad76a01de28cb3c8d60d7789a3f3b5aa868d6a7dd71456b90d6453684d2022e0f0a94b3e830b3920918c18a4693c2de0258a1e +DIST coreaudio-sys-0.2.15.crate 5532 BLAKE2B c7c3f67a6db3b9d9b604989812b45d75b02a04565d1dfcca4698abdf540d1deef1c93b6a9b02a3689a32f033495411a5dc11efe4871e907f8bc0fec6b5fc4f25 SHA512 060379c57ee110ac413fbd24b48edef283ffba17692672f9ea3f6f0a627cad8f827ae2d375c341b0180bd4de7b3b5d55a06ed7b171fcf3cc20264826f2489436 +DIST cpal-0.15.2.crate 98128 BLAKE2B af06ea384069ece983a4008f5a0a18a5a7213446beaac163594d159d0e8fc6ffc60058246019ba54e0889872f796ad4c60837e5332dfff8f34e621636ed3d5cd SHA512 a2a92dc2a506cacba143253a9e71de8ca6993ef8a1f936b29ee26476c59a4204db307063fb22a30740716bcb9408bafb3ceada5be5f7ee843693ccadc60f35ec +DIST cpal-0.15.3.crate 100083 BLAKE2B eeca832ced49c8b4913125b948a4c5996783361105d106ec7bac263c2a81ab87e5e2485229c3742f1d600037993abfedabed10ddc175ac507234d720e8f7f18b SHA512 c4461e740dbc8528b753074f3e53fa863ac6318b11a786250c520aaf32f33af98e830016ec92711dc5ebd631068275dae66d3d9c1d452191869c8a0b5879feea +DIST cpufeatures-0.2.12.crate 12837 BLAKE2B 5b518c58c548d9116f94cefc2214fe2faf87c3aaf3fffbb0bf4085f75372cf7fc5144bc3f827101a3a14a51363d06d8075db94ff5ed853ab2ccffaf597728093 SHA512 52742595702fc3371d4126fb355f3d7a6da514a94e43170f1db041cc6c560027f92115eab7846131dba1018ca5c72003ae36f945c1de88d57a0e7f66331623c6 +DIST crc-3.0.1.crate 9950 BLAKE2B 2afbaee34f754953396e452260290422d19416dad4b88333e4501592deff3b3350363ca4c2b37d573ecd4e64a762b702b79445460f15fc90bdb8214fe43c0945 SHA512 aabe9d4058fb4710405146e978ec5881bce5ce8971618b69a7ff873b0fff15fc78e5c48ff0136ca6d37663a53905bc3c5daa0ed3a2ed4d8d721e90c3b0ec28a5 +DIST crc-catalog-2.4.0.crate 10155 BLAKE2B a9c3ef81871d72635addf1ded611fa6e963b9b128dda198eaa3a256512c8759608bae95df95524704aeb38f81e2fb6c2da2e29e306a8ed3dea595e63cdf05638 SHA512 25536456fe71c44fd8ec527299339c1d186f6e12f1f90142de60eabce337d836c2497ddd6307473b57a6cc720cfc8e29b059f378c70b8165bc171420ccb40a29 +DIST crc32fast-1.4.0.crate 38665 BLAKE2B 77398dedfa5e61357fb9abe3415ee53e45d3f1f7aaee959cbc9774f31a10ed324da2a558d20fd7c0674d450c8985b1e9c78b0b65e6ae2d9da6c873fe631c5ce7 SHA512 3e0bf1d2411ad9c651e0242c574cfda09403db24ab4b55560145ee73b31b08be45e5e12ce2db991d165ff056c7f2f67203fb2c048651f1c66ce90ec3276c455e +DIST crossbeam-channel-0.5.11.crate 90434 BLAKE2B 8666f039a0e4ac6f0f8be2d08ce3349d8ad4aa7d0f38c638dfa6dc6a7f30a1629e42f87757d9e054e836941dff6a8efa53b5337706bc5958d33dee61f38e7bcd SHA512 1d37bae1c946d402c1fce37f22a82037d68896770757aa91d209387f947d39c514df52e0ce94317141513784511ac626482f16099cc3b62ca28a52f387b69c71 +DIST crossbeam-channel-0.5.12.crate 90515 BLAKE2B 5a302e58411d99d52630cd154f4f642ec925af3330ced9456a16e417e2e43a37dc2b2288ccc88137a75e682e7b10ab2979f1f90c0bd42ceca8fa84c700b7dd0d SHA512 e17b0e41901b2b41e89913a0a50cd1eaacbf64cd07f454605a85781b8b1373c35bedd16ccf6b24029404a3171e0d670fc2b1474a6448d0feb40ba0e41f99019c +DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864 +DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2 +DIST crossbeam-utils-0.8.19.crate 42328 BLAKE2B b2846f569555818fe7a3ef4aa29f68c638f933ee0251713c2c92624bee5f8013def5527027022963f572815991abb98d5e68d0fa00f478b2762133f84ffc84c0 SHA512 6e742fbb0d2a6371db87e81f8ac583259530a288237d0e8347394581c60004703a822318ec945936c410bb44001b115d8d986bb264e5b2d8091bb63a8edd93a9 +DIST crunchy-0.2.2.crate 2995 BLAKE2B 74ddf8c5e0deb2ceab65c20a2743e1230739ac6aa3af60c9e867a7852270697a1278b7dee00df8949fc4268f9756a4a098df1211ab3b3e31a122652c3ba0a6fb SHA512 36dc0aebc41a3aac5f1b178a7e61b65bcd9bb5c8539b2024f79428200f7c62daa7098af55c6ab0765febd2f8969bd6c0ac8096f73cdc0958e5c4e4eb6a4f7025 +DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f +DIST csv-1.3.0.crate 888212 BLAKE2B df05956223c50cde32f4ae6df922fbdedd8b50008a8898dd49bcc8bb7430d25727a03430c32ec23cc44ced043709de1f80f4d750e335bd12b22d0b06050881c6 SHA512 1b9e870c433e4d37e61cd604d2712c59ccd392cab55b8c88596a7094245072dcae02ecc80d3ee7cdaaa083ec2c2865b71712330c55e93715917a86106a2230ed +DIST csv-core-0.1.11.crate 25852 BLAKE2B 9f56cea786b5b35f6fd5c4f41fc3cc06d777f6d643d939ca7d57b1f1a24d4ee16ae3a4de629e484b0e4cf87009abf4911dc4d1bc199968ef5c7f4100cd238d1a SHA512 0445c8a4d4d0f90f03e5d6507c26454aaeac0b355fb39d19e1676a7cb27b4372db3541367ce838d38151862b7bfbf19750cb550e24e74ab5e07ae9bb4edeedee +DIST curl-0.4.46.crate 94864 BLAKE2B bcfc97c19ce299abd3e8a9769a30c0ec5dc6692b5c1d81423f47aeea39066d1840ca7ec1d4713132519f3bea94d43aebd8d733a19028280e2e6c2a8e91eb1948 SHA512 c08f857b385582ba635a76744c940017b74c3f241d28cc7c8c6eeff958c76c01a1a51df41b3a7a6a9a38a31f8cf5b9b3b639eaa163c441fdec29d0b3f14c8336 +DIST curl-sys-0.4.72+curl-8.6.0.crate 3269599 BLAKE2B 07f7d22f787ba9f329af1e3f477ec877dcebd0c6f0cb32d284cce364c1d3fd4f9eba153753655405e06d0b759eee8ddb0e6f8600864ce8fa18ae727f985927e2 SHA512 d77db758acab7cacbab724bf9d6f5a3a40083be7290c9b6dfdf91370f1d965e21d8ce01f1d3df79eb40da2ec759c2b0609d3c6176a0517acbcdc5a2bbb66a1ce +DIST cursor-icon-1.1.0.crate 11453 BLAKE2B 964bae7d3fe138e00c51e52ad187ddf5b71a86d9b1bc9bb394fd27869d714cafdcbd539e2c62eca9b0912593d08187d550f5507e73754a00112560acb83912d7 SHA512 4e3b74cb17773ec2b89312fd4fe60330b785cff850102e9643bd06e99b5d96c11cce14a9350f295c6063c4133dc0179cbca13fefd7ab816e57c915f75d066d2e +DIST d3d12-0.19.0.crate 16772 BLAKE2B da5466148c3bfdd47a9a70d8eea4599b68cd0381a8fc0e5f7e27893d6a5d35b9507712cdeb1d753c4e321fca07cbddc898daf0ede1bba0ac3ca6ea746950b6bf SHA512 8d36d0ddad5da12fde6db6dbcf0493059221bae91b16ab2832dcb73e692d47344c407882b25cae9e95e4554f4c8ffe96721b1dbe8053caff931956adb53e365b +DIST darling-0.20.5.crate 27737 BLAKE2B f3b5dfcb8313e8eb74edbd49322d45ed814ef63df642b27c27c1e464c8db155b536fb6d53133f070f3edea749cf6f15d465908119cc1c30156a2acfd4b93d536 SHA512 394bccf43738ce63d7d0647e828f6606daa1d1b2be85ac2839fd5ed22450e93191c33e25bd32e61ab9b82a4546a3f84acc6b376cc0029b9a236db31a38923a5a +DIST darling-0.20.8.crate 31234 BLAKE2B 13e8ec124715f743486d740241273fa5ff046b5ede86c39ad5413b3e767166dd90e7ba7344a69c1e14991f0572f7ffa24b081ef54236712c5286f211fcfbafd2 SHA512 2b4cf37cf7cce9af8e93f576dcf36b539816e1ee7b8881b5b8480c45e038c97ca2d3a80c54e243d7c6e1ae23782947efaf0d67a37c0d4dc66301c8a86ce0fcc3 +DIST darling_core-0.20.5.crate 61089 BLAKE2B 00dffe93c0bfd97c856f8f4e070c2cec02928389fed26b3680ed6505e1618688f76438c4ea85ed68ea01f8f574cde375fc7f227a6510361e1727510960fa0531 SHA512 9179e08ada4e4871242d3be176109c8c6a94e1ce2451ab18e553061b40f004d1d725c50eb7f91668a43a90b548a0ba6a2a05728ef631c857a53116ff7dec08b7 +DIST darling_core-0.20.8.crate 64442 BLAKE2B bf1844eba6bac260104e2ef310721d3aae7ff222d99b01b9bb66e3c71ab700095af7dd5b3a77043d6751d94af131f02f23bd321fe9d4a7066f93d1fb7c0c605b SHA512 6f2d047758541355b81e43273cd1eb8865624096c951643e6ce777d716e17256528c47fe012f33eeb1f63883ca08f532b1ca52f43394dff82fd1bbf323763751 +DIST darling_macro-0.20.5.crate 1857 BLAKE2B 540369edd7ae25f16024008b0e6c8d0ee2d338cc1e28edfbfde1b72449e4f4b40dc6a8e12ac19851eadcf97e620bdfcb5e8877c6b05c190a4116728143f6d073 SHA512 ef8d3433d4020decd186f842a0c590b6c44778252afadda0a6dab840f874bb0d7aaabaf3bdfa28f66f19ee8108930b5605a7f733a516b9c0c53955f229c5d4cc +DIST darling_macro-0.20.8.crate 1856 BLAKE2B d7087fa67033c897aae582e5f4d3126e06e024b7db203de7e7513308af7a0ff6ef0584a150c6f30ce434ba6ce4cc2a438f89f024c9d6338198aba3bd15cdd116 SHA512 97d18bb22b79dd95dc5ab23ea7226f9fd2d6e418b7ce9aecd4d43b7a15b37cb91e509607b89eb3a914a5d3dc562b2a292d1343f87f594ab32d41fb583d7cbdc0 +DIST dary_heap-0.3.6.crate 23683 BLAKE2B dad2fc57dc12fb6e8c7f15fe4b1c6ed292c1057274423d9985149a843e82040dedbbe6f76a74888735fd294de9af5af80969593213521b7ade19320f2f027be6 SHA512 76ab17e04f79f8d52f88db3bbb7cb6b6dab1191f1363ebdd6487407e68d716446d043a9e8f43dbc06ed91e1e9d3e0d077f3fb246bb2cc83e831a1553c09cff65 +DIST dasp-0.11.0.crate 3212 BLAKE2B 2c24091fabf4f0bfbe7067a7a244e988d59e5dea3b588235c6abba8a5c4458691786300226824dc1f9c69057f60480ce8a66a44a436025d26efd1b7eee6f8941 SHA512 35e4c90abfb965a5810e1245ee64e030c47f5b6c3ba4b27577647a9a8a9eb7b0dd5a2d4db75067c6344bc117e5081bb47fbe053d5b151932ff39927bce2da2eb +DIST dasp_envelope-0.11.0.crate 3331 BLAKE2B 44606b58f13ae3e9483d8aea7b3dad77b5ce3b597306a9825ff305ea8d7358f11dddc919ba294ed0e9e8cbacf8482fe87c2f36c7d08ae8f2d95a5df654737897 SHA512 e7a13a00b4ad8462f74ae1f87a66a21c548d963cd11070cc7c49a2846a41e33a4d52673d32a6567db3562f3a7f922dc15dcf838bd7782f9b3ae79676a981110b +DIST dasp_frame-0.11.0.crate 4910 BLAKE2B 124cc78a826ff5926a7a9dcd9ae35ff23834640ec18ff4b64a7b1c1ba7d73c15e15515b6bade82849cc3b352ebe1707339f1f1c90d3c77daad649e939f12e871 SHA512 aec23bafef3d7aa4c0f1c1c9c4bed1cbf5e57731bb904c8ccf66ce908ccbb374b58e662654af5e940800de30cfb9726881bb2ddc155b80fe1d2d3e0351a57d47 +DIST dasp_interpolate-0.11.0.crate 3602 BLAKE2B 3ec024698f6daafb2d61a179a2a7b1ec61d3d9f7c3e644705d1e71a0c452c5acd2b119cad4a25a8891fe67a6648070ba4072c11103fa45acfcce6672133c4c48 SHA512 7ef2eb3fee5f22a02e6be437896478d5bd049c64776346dad925eaab0d5a7b2adf70f58e846e45925e97254b1863be7ee6364c2678ef199bf5579750141699a6 +DIST dasp_peak-0.11.0.crate 1602 BLAKE2B 7bf98534442705c2b5929e7476ea33eb711381fb4f17f789d5c0618fff973976a2f4d4c80fffa37188e5022d4e4462d31e940ab0a70e9cc7b015ee328b128f4a SHA512 9e7bc940f4ab5fbfd663b475fcb52fefdea52be6ed21e96e06843f4730c7b587a5317a74cd4d08a529641444544d01804f9be44af86fc407ba495148f3ad7de6 +DIST dasp_ring_buffer-0.11.0.crate 6319 BLAKE2B c1d0e0dcb1280fcde1e6817fe9c6279151ee95b95fcaae97885bb597ab63f02b58e7c974e4e94414c3103d0879554f6ea56a699964cb9a449129c1600c1d8cb6 SHA512 8a0f3ee73c432073eef5eaa64a744e21d1fddab1bbf18ce2a04ddd64f106e4b60fa27c6a603b51c33c5f1e4e3ed701ca156a3515b7625cfd5e88c1506b987f34 +DIST dasp_rms-0.11.0.crate 2798 BLAKE2B 21c71b5052ca11a7902fa0f8574159e4751673732347082e7613a89d5b17f70e68e26062acc6389038411ddc9162baf0d2d1c62d56fb689a1f860b15cbba52f9 SHA512 1d097935e43515040228104eed8003cae2b6a7c55b49a37a580bc1b21a5df042077a273c7aac8fee09a73ffb22e908f200b7f69915c806938569944c481489d6 +DIST dasp_sample-0.11.0.crate 11617 BLAKE2B 30bad992ba12c78769ff2f72e187f5ba0775a45f0af9d346d3e56271f414d3deb607415e73d40eb09023149c261ab02240f112386c0acec26e99d666cf8cb959 SHA512 438a2ed44fa3cc97edff6c6b6c2869dd06a5df790457e339a36ebcff024c152ade36740d889cdbedddb5dd7bd706dcd61778e68f5f42aa100eeb76213f5fefbe +DIST dasp_signal-0.11.0.crate 22544 BLAKE2B 07841590ca78df87a5d39f8784d94a548fc1c487dbd14e11fdc48b695892d4deabb78016e355a4078752b01ad3b1c63c6f2abaeb9883e4347c0b44101a3b6a5c SHA512 40aa9d759a5edc1652d8bb8411cbceeb4789c876bec7806fb00d4746e10f9572d1a3b70d3c47bb272bd74885bf5072d8b9cad07d1f39f418172072c906089059 +DIST dasp_slice-0.11.0.crate 5637 BLAKE2B 07fec1b3390075d4ee0f6f1a6e76453604759c1bc995564f055cd1860288da75f5cee39cd16f84880dd6f0b23326e6e83ea8d1d0e0fc371757e0ddd89d8ae2a5 SHA512 6cb51d3d3573f13fc23b6d9a5eae3a543167afe944f59410a79c84ca4150aab042f0f1f7ea5f1e92720ddcf6da388b4cd1a470b18a83372051d096ff1f62f213 +DIST dasp_window-0.11.1.crate 2247 BLAKE2B d8596948e7d559ff76d89529b2f6276dfda3ad7f06ba665f3120900aadd4abfa3656cf3577fea1d8868c2c7c5311d744b39bee32c4d6d0d265fd896eb6f32dfb SHA512 b3f318e85b73dbdc3ed12b127c43471a10eb76a4a0a4c72311dccb5bea0d8c861b68f02cbdff1ff3bb6f1716445842fbb07bb342edba8d52b9983668e54e233d +DIST data-encoding-2.5.0.crate 20632 BLAKE2B 16ea08dd12f09f2e6f8ba2910b3db07d4e7c9916e6a70d41420ef1a0e5393284b49787c47af0868bceb7f5d3f1fadf203f5a547dc8cb97713d5225dc9181fdef SHA512 b1de8bcfd7cfbfb988091fdb550eb98dfa5739ff58c4b789663e5db0d539c9acf145ccd72d87f7e1cdefd09d5771772d131d2b2e2589ac8f0bc6972c801ee0ae +DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43 +DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da +DIST derive-new-0.5.9.crate 7733 BLAKE2B 3f0a19b794c10e529da5b3618cfeaa4e575ee31597d2ff1f95618eb5163568c6c8836c5a634323dda65f448bf3fba2bbf066df5f815feb07f59ff99d1f46da26 SHA512 9ce0991fe63d8339a88d9552fcd8cc744d8bbc2c6525f60959faf519e1ffa84256c773291df2101912483c0d9accd4fe5f7dbb199dbd36d299ceae8f607e0b30 +DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb +DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c +DIST dirs-5.0.1.crate 12255 BLAKE2B eadd38e85211ed5aee7fab964e90342273320644c36262aa7b436e493512851a4751a09d22aa8bae0495f4b22df6e7395d13715ca8b8c6196107b1be03af9328 SHA512 cfc329518e85a25c296521b9aeb6e5d5f60b4525aa786ebfa8b9f198446a1ff5892160d1bb4790d7f3fc4a0abdb5921b2e4896e271a3fc3a3225897313b77bd1 +DIST dirs-sys-0.4.1.crate 10719 BLAKE2B 30334f2192698d7d03bd4e8bc8a682482da7d13baacb8547a132f55019d3727ac35579926ba4367fe0a5b7fa917945abc03e010cb7363683753c87440581df42 SHA512 53c7c8bc76d7211d08a0e6b25caaed12eeb7283cb4b352c12311db3c796794330943259a08e48ff9d3a280917920a088e5aede32677a4b2f9f819c2dca6adb9a +DIST dispatch-0.2.0.crate 10229 BLAKE2B 3a3f011bbd994f6620619d5bd26d95eda7ba21f1a4874b69e3a654e04611ec7af7257300a669ee95ae04ce35a91e033dddddb4a14da48036a5d19c4bad721386 SHA512 cf2b4c624f92808e43a0a4828ee1085e115540d5df5a0ad6a3593c9e5109951b26e8afbabcfb0a1fde41207d5c060566bf9260bf4c2a95907e3a822d84364b3d +DIST displaydoc-0.2.4.crate 23200 BLAKE2B 91b0ae7018109d407095060b6bbd6aed1cc21120bc30348e8b16b5121f7c35ab72b65e80bf97dbea6cb4ee6b4d5215e8e5c4374f92a569697bc9c862348620cd SHA512 a1de2c200584bfac640f8b84b5103d8687919cd29f59a14898e98d480f476a8e4dc06e3b929af479d536cd02186e2a9be72e6414338bc117b97bc0d160029592 +DIST dlib-0.5.2.crate 5806 BLAKE2B 2a8be2d76c44c95d5b1b9a5439a99a75daa703a341980d8af1c050d6096d45fb748f0acee7f7de2f9433f97ec19faec9e028f57c8149229eecb1827a1ef8eb60 SHA512 4a8f1c09007ecce1d7c829899aafb90081fe4fd89cfac3550638018760e24f63985e3060c4056b55bf58cf4622b1b31595e1c524a75b1b4354b8f3c35fc267ae +DIST doc-comment-0.3.3.crate 4123 BLAKE2B a82d1c1a7a90af6e111b5e684a1298d7eac5fd8e4bf7d5baf6c7403d26b609958716d57e51122fe7ad7626fe00a2d824dcfef3cc2fd7679fdb7b5099603de1cd SHA512 e98ff9646a3612bd41bb6f278e7b6e9a0c58747f8b82524da814cf51b7f06c76ad4d65b502ac5740e818744abb295f78f15f8262d0b50ced1523f6d1a26939ba +DIST document-features-0.2.8.crate 12979 BLAKE2B 6387136adc2f2d82dcf58a5c4b4f30ab8f918649b5fda02b31b0a412c516c1c4344f4a5cbdc9be777000252f32db6826aa588ce260021b16538afb01d873b754 SHA512 7d564698eca8d20ae66f533071b8ac27243889eb41fc419e929280aa54f508398924456e6f63cc174aef9f2df294b56d6ffdb3064ae7b68583ff1f3790dd03f6 +DIST downcast-rs-1.2.0.crate 11670 BLAKE2B 7d44d708c1ac068a02ea5d72dd3caa8a7f6d18b7ee653d520600acc9c52365824f5b8d3c68143d1d13aa438a18b16ff9975e15131cac7ec48b2d995184673d37 SHA512 b80b72f30b42c5e6b2bd33287f2dd22be5673b2fa5c1a8c75c5de224fc7eca46a55f2fce63c02d225dfbc94ac3462b4b2fec53d63331c70da6307ebcdcc6cb14 +DIST downcast-rs-1.2.1.crate 11821 BLAKE2B e8a78afcd8d2f17c9505973359e2151d59b233e1757b4c7019047f148b1c8a4f28dc3a0d6eff6cc7f4a7ed986bf592ccf0481dc112768a9751475e1b0dbe27f2 SHA512 f37804c1b1e2cb0ecf2460fd6ab274c843c43e94aa7dfbf4e3c53529cca9b5624c4ea5ab5ceaafd72481165c7335f3cd1f846ae43deaabd18f363572825a5f86 +DIST ecolor-0.26.2.crate 10173 BLAKE2B 93124e6aacdbcdd6e394eefd477302fb276f32e33f0b87757d3188735ad9c692752544c441d1352bf0583eaa0955b821d92bb97614155f73d52c5425efc16bb7 SHA512 21b50e25df65996f9fc077c8f7afb752a4a95b481fb394a9bff7d5efad181993a668e47ca056e3f43f8765fb3044c213985d1c36286229043fb1af3b72f8fdc7 +DIST ecolor-0.27.2.crate 10172 BLAKE2B a0e04c2902e1eba70a554a03c3dd619cd88720f2bc323b7ef0e54be54e0a45ec0253a76a0a8bf36ca06e6c868f1d1422bf04d6ade4617efc9fbd03852c05170f SHA512 5bb1e6d08edd4b7238af9938c3fd4d79255e1190b40ae23ce35a914eab530ca3964ff030b079990b173973facf8774a0e7beaeb68776c51b1fb0d923fc72ec1c +DIST egui-0.26.2.crate 287876 BLAKE2B c90f689bf83a5d06ce12a1922d04c781d5f0f527f7d5bbcee9909f6bd2d227b08248ccac2af9b34fbd56855607b107079687e89c67141db3d8b800902d694155 SHA512 86d0f3df9322540bf8bf844574e279088ef32839d57e287769456defd9c3eda0c06aedd0293a1ede63ed75f1cb1234e409cfabfa21816f914760c9bf3f0af73b +DIST egui-0.27.2.crate 301121 BLAKE2B d4b7f511a7f6305476ea7d5b168edffe973d1884f2bb816d0a337709cf330ebad74576fbe97aa5de20e6186ea6ed0e3911566d0422de0c59099000b74c90fae7 SHA512 27246cc8fddbbbced96e6671aef72ea8bde7fd698143718f629386c0aacfd47d46ca1e39fdee24f474fef5327fdd1a8ffeeaa5615f5bc805e620a6c43414da03 +DIST egui-wgpu-0.26.2.crate 21225 BLAKE2B 2fb3393006698cb2cf091bf9c61b37f616230ca4234585fdb38cd7ce196edeaa1f689b5d5990a61ff7f533ee552d5bfd7383ce38eb25b095bc63139bb5c092b4 SHA512 84d5aceb267d95c07a8b9b019819e0bf6de848720ff6518b932708ce6298fcf893c0b9a678377456cc299ffab6dfa53bedf9055f8385faf3636018439bedeefa +DIST egui-wgpu-0.27.2.crate 21227 BLAKE2B 3c93eaf15291436cdd55d7d6967998835639f8461f68b13eb2e5bfb328dcfc8825945afd4d91ce9bfa69a5dcf1bd053b24e86c27694bca117556db8d6cf94107 SHA512 76a982536a76fd79de636bb1dbc217717b00faddbc15a6cf3fb44f30f435c9d5277ef0ef9c999d76d01dbe8ea22c3e44aadc7d72486d810bb28f79fcfa6bfdd7 +DIST egui-winit-0.26.2.crate 18826 BLAKE2B 18ca4b274928ad4ddf4fbf3b22d837402df0c9366ac35c0ffd1e3293c48bf57ec0effee5c63e73c2f81b57cc2912ff0fa829e75b5d603cd607b1dc8ca908d817 SHA512 6e15a7a56a22224cb9beb9102e9cac38c4652b5be5c6f53bcc664a4e3e838be8a617118411a11e24cdb2f1a28caf694ac5bed47bbb28926fffd7408ef8211dff +DIST egui-winit-0.27.2.crate 19368 BLAKE2B 522df61925c0a4482ac724d1e71f8f3063791ab23996ade77eeb5642c2a11d8d30c9c810fb192df72c1b099e5af1e2386657b3a8abdc41dd47c484e18c89b0b8 SHA512 d36e7ee81010b30ef90673aea33f5e3581e97ef8881325e66f9bdf3f2202ab0fde46920514db8e06e87405b76b6732db8a90373ea14366136789654f39bcf6fc +DIST egui_extras-0.26.2.crate 32011 BLAKE2B e2e1d5b778c506229180124cff1bd1c6ddbc7406dbc9c20f2b9e2ab34050f6113d911bf38e069251193bf5a96fda9e70a0af78ee5d5637ba1e4834c7a5a6e0f4 SHA512 7762ec30a889cddcab51abaab15a5613a38991a24162844f408c58716a480ba628d561fd4d266680ba7b9e65155d9ec813e4db53ca59b49a750fa1369a5ae07a +DIST egui_extras-0.27.2.crate 32589 BLAKE2B 689af5de768b65bc33d968a3d96c152725430364393bb58bac9d91da2408f848aa80f2ecfb2927e299584670c534d93498061474a3318486d545057da7673976 SHA512 f831c0e88d954c39dfd319804d4b3ecf8e9c268fc375c258594c9ffd541e4a7b8dd4f02c3ecb6d4b93fc956f5ee5b835c42580f23decc2a1d95b9b08bcfd6bf8 +DIST either-1.10.0.crate 18334 BLAKE2B ac5d81e0822132846e29f8959671b14ac6047330d54020ea7d4ad790ef985ecb4ddcb96ec7e327b1a66b9c89d37b112dae33c9ac35232c136f60ad9baab7d5a2 SHA512 2de38a37b7f3e61effa89648acadbf220eacfda1ca7c82fb77484e45577769b724f7dbaa297e73e3d355d6b1bd5109373c3e96e4c1a13a918176162b33ea2432 +DIST either-1.11.0.crate 18973 BLAKE2B 31ece6eb44a367926b5f9ee817f6ac9d93746f5b95c95fab360361f6b3a02160c682d298d115f39615e5b4758953f3f29ece22a72fe4285875dce03483f87486 SHA512 f62a3859afdba762b004d4c766090a25d3bd81e4a14509c3bd0f39b0d433aeff997b39759f7dbc5a012bf3b680fc4510a4b2643d63dda8171bad7403554905ff +DIST emath-0.26.2.crate 20427 BLAKE2B 63dad036d39092b85f5cb007b98ccab20bc6091478b798c3ecb6823b6a6c4e1d6533b1cbead958f547c47268d500e90724700cc9ede4d509a672afd77de46336 SHA512 a268f1cd19ae296b907a095ef2861ea8403c31d1e2af6dcfb8b4a4b8d9f42dd1c4715161b566d3b99ebdbd909cd91e91d3cd6d44e6690e581d0ab090a5523edb +DIST emath-0.27.2.crate 22041 BLAKE2B b286f5613c6235223103e8cb13f044f78691011ec44696eaa237a6c278f426d8a33892d82120f2efba97872b9c78653b138dc0e44434455e99545c10a69dac4f SHA512 683c090187251e1dc4d95023e07cdb50d9b9cf7e0743c6de8fcc5a489a8e892c39260ad2fffa058c15a94372d6a728f05feb4c94314fbec6b77033f4b8e9334c +DIST embed-resource-2.4.1.crate 16561 BLAKE2B 40bae940866d3bebb274f8359ddc27429b16a498caa565e432e88b291e55a5e936f9aedcd8c56f406d731c30d45376997c6cf3db27afe72f19a83c9999e451a4 SHA512 bde01d763f4440abf838a4261e9eee49280289ee97792c28a997961be95ccb5033bb00b8ee23b7598ff63dad415274e50f634cf66772f81a40194d439a560e36 +DIST embed-resource-2.4.2.crate 16553 BLAKE2B 8a69faacabda9ba6560e352229f91121348ae40358156bacb560ad135364d82059f503f46aaa323e327c5f7a39886d779e1a77a8bed5c2f24d150f07b30af33e SHA512 22e821ff36fcc39638358946972295b20020c4851f39a66329405d39ba1916453f3c0b11bd9d31f94b787d8fd8fe7800ef13a7b0207edd00934e747cf50fb0bf +DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77 +DIST encoding_rs-0.8.33.crate 1370071 BLAKE2B 0e81419086ca6e18f2aba5194b87eaba49ddf20493fd6ee09d479db86306e39dff9b23f399594afc42f1fdb33855e070beaa1871794dc0b0371c35d296a6369a SHA512 20d28a4c0ff0710f911f510be56c2bc5e7514b76d370493d2b89b7f25d1c0cd46ffa64862e54fc472f07f928a2cc24cf9d790a37751cafafc81f263705aac4bc +DIST encoding_rs-0.8.34.crate 1378166 BLAKE2B 528692170cdb1d74ffb0b122a5aee61f50a2a7e4ce6db049ebea4a185e5c43d4ed99e515f08524053a110e061f788f861e62e0b04eb016e7a9e2678235a04577 SHA512 e23b87003814dd6e7e17924bd1f53989a5008dd1da07baa23c40d2a18dc1ab2d786d61e2c304b3f60e73be5f180ae2deea3b4499c0157b6afe3c9273d2f739f6 +DIST endi-1.1.0.crate 4872 BLAKE2B 8bbffc45ceb70777c6606714a7bb8f9b26ff33a295fd722958a5e9c556d5bb1e97a34e216514e5acaea51811d78fb4aac927c1f8315fcfd8000fda3741c53b4e SHA512 1a4b65cf77f530a2d15cfe968aecfcc9120957d23d2b442cd3d8f23d7039e832e7d6ab29aa5ad8570468421095650e26fa07f29bf75ae361416072241726c61a +DIST enum-map-2.7.3.crate 21792 BLAKE2B 5cee4f4f5b3f29c5f73197de22a7559fd6264fbc3b146c683d93579d5d2e5e208ba0d6965a028aedb9536620b089fab81e7899a5be631217f193648f6ced32ef SHA512 cafb9346ef17ebc8940efc542d5613c32f13775a684db186f30a632daca1c17feef6e0e77ecede646fc688e1cd1b189ac0914e79c0263333a75bc50c1c6a9568 +DIST enum-map-derive-0.17.0.crate 10781 BLAKE2B df77d362cfee0cfbcd9354f65530424af9b501351544d97d5cf04c4a4fbd5f1862968bce42b719b9159892490e69c06c47d9fe1be4ecff16212e26906329e572 SHA512 270f2e9130e5c0124be707b7b4f642992768d2dde3b429cd86a192410c3618cabe24a914ffa79578f14cce72c28a55d5a44df8d66ccf3178c4c68bf4da61c065 +DIST enumflags2-0.7.9.crate 16555 BLAKE2B fc9d888285be03c9b47c6f2192467361bd4e67d41053a046508d0d431ac15b8cba69c265123a5403cdeac213d6c3ace8a94130267bd891e576b6d4cd34ffb082 SHA512 3899b6af180e239673d10cef2b02c848c79325f50dc40ce1ed07d00775d157679f1aee83b3fb79b8e432419810309d3ffd1bdde8c866aff723c2a3cc9d4c735b +DIST enumflags2_derive-0.7.9.crate 7901 BLAKE2B e71ecdabe6c4e5ff7e01b1a820da948b000d614fb9ca6dd53c2a6dee215269d392a1e15c724ded3caae3b08dfdf796e1f61e04fc4a887956eeed8666fbf25868 SHA512 4bb89eba5b22cef199b19cd0d92605b5a11ec3738002b4fc2426c6aefbe6017f8b7156b3ac83fa7ecbb5abe54643b3456a8700ec831cf1dc27a518e621446be0 +DIST enumn-0.1.13.crate 8391 BLAKE2B fd02b908c615ae0565a78bf3d9977169be81ce1f176b45ff165c45df231d8a90601ba226aa449d52c929710ba796a08e0d81a6ab9dc59e4f6506f2096cec1492 SHA512 c0b453e3c5f37b5037d39327d239718775f2c554ff8c2f454447720b323c3452d6a04b124a5577960bde078e312f4f5d4a59ec8c269d5d0ad77c602f344db505 +DIST enumset-1.1.3.crate 26976 BLAKE2B 4e40cec8a6db10a04b598eed3aa7b9a81235ed95e433571ee4c92a699c4687a004dffb94721aafceadc4a6c68dcf08fd622385a802ad330208d55f7c0cea0436 SHA512 1fcc39050a75d73febf9f1976913872269f41916fbfe936b7ab67d7d61bd67de9ffc71a1cbf34eef92b2fdb0313b5c77ce9dc7adafae5992fbeb6fcf7b31c180 +DIST enumset_derive-0.8.1.crate 12711 BLAKE2B 752eeac1d1215a041962e3386ac95c1b8673921b76bc4ecb14acd98895f01ed3be24a95b5ac127af9f4fbacf65bb5035e60b989e3cc7d732db6015d92106ef38 SHA512 9ff87a0a5dbee945b58987f9d26200efa5e8d5c085ceda6e44ff9cc1b05bd903cdda632e459b26415e7e2195af79aa51b8e95fb9ee7917fc74a6102f220e5148 +DIST env_filter-0.1.0.crate 11553 BLAKE2B 8e358517c0aeda431239f14610925bcfd6be3bd346c7628e1818cdbaa1796bfdf2454db99cd06bc6ffdca95e7ff47c0a621d1f4c3bb50ecd1641f9d19efe4b4d SHA512 a0ab51c2b905466d23c75fd77b430dff2956556b7687ea434050c78a497cbe63018c5730be950724c0ca6aefe29bbc379ac01c8a7cd2779a69c5a03e92a21bf1 +DIST env_logger-0.11.2.crate 28310 BLAKE2B 8fcfb9a7fd96928e500b59ebe4cc86c5bddcf685a57bdb65b458e5299da3993172e207442ed3129bb6d683b39163c3456512ba4973402f0993ba2eab52c596e4 SHA512 12029a99de8eb2c5514d138869cc3242a32799bbf94932c3d8030fa8ed7cd10e9026738a9591116a2397c4875c0cb22b2c64faf120246e88a63ad420aa17e427 +DIST env_logger-0.11.3.crate 29704 BLAKE2B fd23d377d258ead87e820dd89e4175c0596b284d629563b7d04be10f80bf859d84a6e71a21d1c333a94779262608554e95bf7b44c35b3336cbedf545184ea6d1 SHA512 50df911455429a83088c87d30137fda6fc73971ffd32eb66f21e0d006bce92580c519d4a3a3fddadb7bdcce5d6dc33df853dff6373fe66f128cfd60ca26f9f02 +DIST epaint-0.26.2.crate 856811 BLAKE2B 52809849c37908c342324a7ce212cd015edde60a5af7f8b1a850bd2fdc87a92934076edff31321b2dd2df4c5560165181944464fedfe90773be6fea9034afc89 SHA512 5f69b1dc7f2cacf5d846181a3d295ecf2b1b52348183eb396cc55fd73e61fcb32923f3af238c1084134d409d5b0d916f6bdb6303860b5518a469102b3abc69a5 +DIST epaint-0.27.2.crate 859742 BLAKE2B 5247bdc719f01eb803f23c1af84090451d954110f262c611c430d8580b6cfb8f095f47184a215490de7f1b1e2c039a1641e673b330a0189c52e7c4b6393a3ded SHA512 119bf8434afd490cdd363adfede22d7ecd1b8d9eaeb23f8de28ebf2b746ed01d71842231880d6cb72690381b88878eecca6032fdc8ba9b21db445934c608de9e +DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140 +DIST errno-0.3.8.crate 10645 BLAKE2B 4a7af10845f11b3d8f177a75a692be468e8ef0ee53fb84a4d212335f1499456b6739a59af260894b5c3853d3bf21ef3490d1e3a613305561203ca334a636c3b3 SHA512 29753c421c6f929760cd7565f8171696e4f70e677654a7507253f4fc495edbcf214ace27be46bdfe5c1a0d782f4b688f591476e56f4a1096471cb353c643328d +DIST error-code-3.0.0.crate 6176 BLAKE2B 569fbc0fe97c3e9369ea751e04b5cb7e523bb00e6b2f5e7b866c4eec2e98b453b85f5efdcb4efeab8da6399cd7a9e77965896233c0cae668d0bf1514ccfe41ee SHA512 86a9c6ab7d7e229646ba193d5376bc9e705315858e3920c2cf6b284f1fa529942764b68f0a95ccb1bc92f8e2b73f4fd138654dfb03bba7e4361549aee620c908 +DIST error-code-3.2.0.crate 7569 BLAKE2B 815e83d67a1f257b4e9b3058ff849b3c37a44a0339b8a3ba175b7c3cf4794ffbc76369ddb433ec278002200702b83e32042d62e5603af5010ad4df4c9364c501 SHA512 d3a6dbfdbc1626d9502964dd4615fa5d39f8507996fe6e727bc694c1da54c1760b000d4827bca7a2190db5f04b8549c6345f262702eaca88d8b83a43649c37e2 +DIST escape8259-0.5.2.crate 5462 BLAKE2B 799d4dce6e7be45f96558ab665fa629c21a08748f953ceb34d8c5cfba2a1ec63a3fae125a27d2df9e820a8a9f53b0823f5e829f79877099ecb602818ac4c8980 SHA512 46e000a93a8ed9175807f7dc1f63787c084fe55ac6cc994aca772bce8a941fc81c1f277459af218b051952e78ab02cf9ee9b0b7a254f6c249f91e3fc2e4e9a9b +DIST euclid-0.22.9.crate 76671 BLAKE2B 784f79bc10c04fd438007a566bca8fcf58de149d414306726a211bb822f5de62f91d6fe15d623fe36b82757d6b2426279914352555abe1bd582b64c6f196293b SHA512 19fa3756085051c86a58c4ea00cf459b43a6326c9b916e17e15160b43813dfd3edf113379dfdf5f345b7c96d294a75f1ca96f1065f5bac9e44cf340434a2dc33 +DIST event-listener-2.5.3.crate 15392 BLAKE2B c56ed5eafa64014141e869dcf952e86f755eb35ed1722f8139260cb502ba226351ed1bea301618e94c9ca7f3309747057eb5f7d7986cfcdb7f6b79d13d52b439 SHA512 ddd67c1139ffe2aba95d763b73db0e2a9985dd2e57cf8f72030047d53d46d833df4b4192730cf0af4e060ce52e4f2df23aab6509abb94a6cd02e0d8cc3559d22 +DIST event-listener-4.0.3.crate 39784 BLAKE2B 2924aa196726f3a6404536dbf494a52d266014b2097ea1f4a42e0f5d54bc2d14d6722deb4e40f1b1fb539ec12af7348275a75a9fe3e619a7f6a6a9156e0d30ac SHA512 2ed4f1624fde0643fc8eaf3275dfe77c15f936e1eeaae43d205f68d90e2a8dd3eee3b39e953a221cd19a88e8b947eabd5b8477dabaf8f30de328c0c13d132d7b +DIST event-listener-5.0.0.crate 39954 BLAKE2B b8113780dd5b6f0dbd76b4e0c6bc540eefbd241c6948e3db58863cb0f2736188b6c11d76e261bcdff74f120aa711341d6a6daa744a9f9096cf7356a96438772c SHA512 00d4eb0cdf7da9b303b145950c27e5bd100b7149e2bb5bf4673f86fc22df00950488b974f743bbad848cea8ea84ac4708306f61940fb44a55398847a2e7d9b1f +DIST event-listener-5.2.0.crate 40217 BLAKE2B e353e1d18f50055ccdc4b061e86f809eb0543422cf67384f8e5dff7345b409d5f5cc3b27aa6bd7370e68a35fc6e924839cbafc73381316b6f48e6102eeac68ab SHA512 fefaf5cdfcad5493fd6f76011881204252b187ad1a1c8d57c567be94c81343490ef992d28538ee47314d6890fbcd288529d776ca9c2c94ef365868d324e9a4c5 +DIST event-listener-strategy-0.4.0.crate 10225 BLAKE2B cedf057e73b7d26ce691c3a5523c7492ba6fea65393ba20ca80ed091d3c4b392c85caf5a526647886547cca22bd703b0a01aaa8d018b07731ef909bc3281243a SHA512 02e8253ce8b680d9df72b786115d8894147483c5b44d530adb600718213424b2d87c899517ddacefe73738ec9c8904d042341d4aab8076fd19876e89972061e9 +DIST event-listener-strategy-0.5.0.crate 10616 BLAKE2B 532e5e73bd6bc8071d0dcbdb13e5b9a3ef1f0930b2d0a27183a9e203b54b0aa8b526f35393147c46c334a793764c338002b00a8df9428d3a7640d713b4f2f774 SHA512 553d7dcc86a9bcca01ff67e5f60bee536d208eb61cc28de1c40d30a8e7488177b8e5e3d50523d055e64da3d9051dccc02b984788f33f8de048fd23b6e964506e +DIST exr-1.72.0.crate 243996 BLAKE2B 53797775fef4e8cd520f4a98d390453b36f9500dbe999a631a54d906476f82a7a975bde0a369116a997db5e383c846de9a7bf4330c68ea7ec2c9e44e4856aaf0 SHA512 eeab15189ca6801d3b3748c88395de9d2a3fd970f182f70bd39ff7dbc960bd27d06191a42d1a5cb895a334787f18dd3ff31af74d223419e1845396a5f696dd1c +DIST fastrand-1.9.0.crate 11910 BLAKE2B 570c66ec1d4ace08b9790299759e3b6f0394aca52c4ec2e02258229c198846cba7c0627807548bac3ef1f86c7e512c4bd105f1e18e35ac0ea6934f76a6838e1f SHA512 321567b5fad8552c0efc4393b1e77d1bce288b0a88c475d432f79e91b3457ee6eb5db9e4d65ac6381b9990c9916f4651b6a76250df44d51ea3e25bd8184bdc52 +DIST fastrand-2.0.1.crate 14664 BLAKE2B 7a5812153500170dcc53ca8d66384fef46eeb5a8f970be43863f22f82bf427672d07cb053f4e04b0fea358ca89178399871235680f57223b8561c07b8d21cf13 SHA512 79a1e1b3f39264f037def236afbd87b732f5e0a2154b1d9e721b3c7990c52be45138320e2571fe628f482e0da7e3cf867abb745e3c277b19015fc031fd4410d9 +DIST fastrand-2.0.2.crate 14674 BLAKE2B ea23f52d745f4fcfd4ec911d48d77c60da837f57942994b17458daac7cae38953cf679459908d68e5f393d03a90cd6eddba23d2a86c2bc11ebfeed0bb41fe4dd SHA512 3ef9c21e4928071619adbad6421165ea82feb04c26ee18893b172f9f8a510b9a2097257ae31647a907680412b68d6662eff13cb27649ed9f5e68c374619701cf +DIST fdeflate-0.3.4.crate 25001 BLAKE2B 69bffdb689dc467bd62738299ea17295bf7dd9d51c78b17e1ef6eee265056308703646791676c44430a686e1d713a8f561c5db972de7ab7c5e7b21050cad70f8 SHA512 a38b493eba656beb97275faf5a2f32c8a2c2cb12c5d5c280d37bbcf1406fe404151fd6312ec496aafdce802ef08745a6927e571890f9b290010ca5ac45ac9bdf +DIST filetime-0.2.23.crate 14942 BLAKE2B e4d2d9c11745dfa5592903f3c3c6a9871292a02f9862607b610ead7562b5d1fc3b64d37e779cad0630bde8012efda72d86af5e687cd2ef5d3627d8a89bca517c SHA512 8d5ac82482758577d1d0669abbe7b880efc44958687bba745c9ee4a5c16bddb44ec0fbe9c29cf424e7120905f3c3da607f3a7ca1e50287154c0475ddf2148bf3 +DIST fixedbitset-0.4.2.crate 15954 BLAKE2B 91270883db5ad0e999ebbca1123d8729d3040eb936034ab8da3cda72a830e45fcb977b3fe3c2b94e870c1fbc366ee8602357bb77e8b9a40cc41a04afad1b266b SHA512 57c5d756b0a202b2506270f0d5e890f7617a1e0c015b6059ea23fab49cf7af47fd06927eb56feb03b37cb2b6c467e326b3f0da1e32cfcb6339cf11a130a3ccab +DIST flate2-1.0.28.crate 73690 BLAKE2B c9f141bde0eda6b9c42da0a3ed69322c12c6c29bc522131f51ad56f6e2758646aa5585382407409257a8301f5f07a1825d150838bbb55822f2d49037f6279aa8 SHA512 9db6f3ddc4e1e91960b07c08712beabd911b297d93db8be3ecb97a392a4262e608c75ed8e9e34d87d58c3e67d1b7987734e14ab3d45fd837a2767e8016380284 +DIST float-cmp-0.9.0.crate 10102 BLAKE2B 46bce5f7e838a947bbbdd22b085435e795b67fd23479780f65bf1586a70e7a35f04f9af086be98bff24e2583eeac7c9688727a2ddbd1ce978526dc01abf67dfd SHA512 f8dad12ecf8a278769054fd78794999dae8dedbcfde5e77bdf6cea12fdeaadeeb2f1f3ca62df9aadc1bc3f61457236c4854d6d6923ad6d03ae7f23af600572e8 +DIST float_next_after-1.0.0.crate 6965 BLAKE2B f13aea22ad07b4f7518e5802ed84838ba8250eaf73354b3144d69c41fd7a2ff378e182139a36e73d6b4a9228aff8a9b720f72d078278ba472f6abba0b1690c1d SHA512 72e5b919c60a66450625603ee739aa17dede02eea34aa75e0ccf4ac07c1f4f3388c28ad7652627b70e0366b046ac3d09ae7611d8c5225527abb952fe5c59f546 +DIST fluent-0.16.0.crate 8321 BLAKE2B 1e91c434d1e006cc0c8939ec5435f55af5226d4a88660c91db2dc7e3c7ad7804786d5f6a1c20185bc54caba9781f601e82c0d7f3399af91dcbb9d0a5b2229995 SHA512 b38bc79635f843e1bbf2abbeba9ac99fd5c3b702cd1699f1424e7ceeba07a548cd3846b4886b9472c7f5bff52dde652acb8a17760c677c5246a235e0f02ff418 +DIST fluent-bundle-0.15.2.crate 32239 BLAKE2B 43cc9f0399c43391256ba76bc1231cd5346d13eddf21b5db1246a5821e61416912c8aaa2e35bb19e2b1220dbc96c3515abee0dda0a58ab9ad9f579270a2385b1 SHA512 95da35b5ef98b79cc37408f92e6fec38e27975d4e447e96d01843d3b08a3c7bf730984eb59690ca9bbef6c24efb1b003367aea22e2f76074dd0192066ecd8d67 +DIST fluent-langneg-0.13.0.crate 11723 BLAKE2B bfa4ec1a3a11360d28b5291e8eed2628ca6007b8afca726ded87d630394773835b3c8aaf818376a93a60de10feab25d7784c8d2b1e34e63b660d581a37d9626d SHA512 397d0a4f3508c7f58105dbb9ef7a32c5c4ebe4a73d80d2a19930479bee325839485c8002b49fb8c55d686ec9f3ed1d26493b56825b65d60ef7fba78a1442f9d5 +DIST fluent-syntax-0.11.0.crate 28524 BLAKE2B ff5762a9feb333aadac587296401d6386c327f93525a9b2243df34f7dc4532cd37a66d865660c7a6b0e775a6cc0e5454ec92808ca7236bf0265314a5be151989 SHA512 cd6157ed27735fe319b115e555760832ee29d5887d8a1a9932a47e880c97f927304320c7ced54b30984c65acfd5ce1b9dc659a8e27b4976330cb803d07f64289 +DIST fluent-template-macros-0.8.0.crate 3710 BLAKE2B ae0ebe8834bfe2c6617e8d7d4635b18f4387d569cd259e907698c1064e4f6c6d6b0b28718e1d91f946dcfe7960349523bfb0eadd8e2633fe7d9b1e0fd65cfda1 SHA512 caeec2323848e5b84cc3876c4cd0d24c13cfe9532e4c93005c03bcdf33a292cb8cd1f0af5e680b5a98a2835430c46a4ef9315de3a95f7c23154ba70c2569d986 +DIST fluent-template-macros-0.9.1.crate 4548 BLAKE2B 4bb8ee526c0614926f1a4294a02644ee13e1c180995c79dbcb6cdbad6d2036b96f895d2c0ccf78ae35f266348a09a6bf80856c07680fba37e3fa594564d35880 SHA512 388df550a2bf8f7b5fdf3ea0a65dcaf04e54e8ea6af7dbe064c39b98efb27028905a6c285577b394ac6f62dbe60c4d69d862c1e3fe7ac609b886e0614fa1585f +DIST fluent-template-macros-0.9.2.crate 4601 BLAKE2B 59dea2cdd7c7aa8bf86606d20deb70c70aa6647f4eea2e64bfbf57955629c0fa38481519eabeb0cde813fed62b990c66a643a16eedea4fa336c69decaeaf6c9a SHA512 f94218b01d9e45b6d5fa5a754c2a7cdfbedc7127c2ee4e841594e77eab2fc095efb65c2528cf022727c125837436d4b7b820b56c0ae3c8d236d9c994a55a3a20 +DIST fluent-templates-0.8.0.crate 20385 BLAKE2B 050ff89d4cf64ede28ee00016178d9bd8527f7515855e54dc14a4140fa0b1163bdc97bafaa2008e1b110fae90ec594d6331ec1b2a0ee1a4b298b8dc216f86be8 SHA512 6dde59bc9cab57aa5db1ad2dc22ad6d73f89f9e71ec0480b3c7f53a79fdcfaa915744f6f23931d2a770440547c178970c880481dacf11778b113051a22c57257 +DIST fluent-templates-0.9.1.crate 23210 BLAKE2B 2fd8824872ae856d3ae872af0b5e53a2d4c007850b1a00387dc2bd198529f890f9f1e1cbf85e4ef80206019000d422afa06db69029b4e2cd0c8f9e970554d3e9 SHA512 496d216b276bd4095f6d2ec98b99922c912e6fc53f159f63027e1ddea7e6cbbdec256c4e7bc77e9f0bc2d700791414205515b124f474f37dad5c22e815157f17 +DIST fluent-templates-0.9.2.crate 23195 BLAKE2B 87235080c46bd6aa8f8846ad74be1d800e91d87ece482453e26521eff51ea7ba58fc12455f897f5aebe4cc736ed4c61192e5f37036faf099294d83d4ae044b30 SHA512 ff2a9c3edc9216baf51998764e5ea7c5952b26f1eb2b308e6ba774fce0cb80cd9787492ef7d9ed38c78c8deb9dc5c3fb8b4d772d6acf07af6b3ee3b409da8da2 +DIST flume-0.10.14.crate 65389 BLAKE2B c88deea78a5713728a6b6a94a4aaef570f6eee1af85fc489534d7b336a9ec9cfdd76890929a456a689ac196bef24cee68efadb30e06ad585063c5bb77fb2699f SHA512 ad31351031683453b77d85a89812304d63a12cce8bbd31dfaa508091cec52bc511739d4d13a085aa8bf9f2438fc1876a99f2e4ab2602bdbfe0d2ebb1df4eab0f +DIST flume-0.11.0.crate 67502 BLAKE2B aadebeda44f899b6290df4ccddfc0fc49c4e55709243e9b1eb26b6a232aee042d2260c9b504d554551be54ad4e4ae1b1dc6ee861fee0cbb6eb92fbebb5a7d9ad SHA512 29e499f3de970d2d400c3826e912a49a01408dae8d933068dc94576cb0c2ca0e42ec4a9ebeffd17a20f56869f09eec04a2b90a335bfaa6462b8df474b2a49fcd +DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334 +DIST fontconfig-parser-0.5.6.crate 39300 BLAKE2B d919f290d09bcfd37b790c03b301dead637543082952339394504b6de9eec2baa27fb79d08cd782b318bd8662df100e40284e929940aec94be551de332d886b4 SHA512 8d58fa2db0d6444025841d460ef3703ed1ff4bab9a7399df9830b8c13155633932e90684530ceb85a6d0803bf8a15f1647650158e5b8aa6288e4300b5201319d +DIST fontdb-0.16.1.crate 107360 BLAKE2B 34e172ddba9793c2b1ddb5c9de69f71ebbc77e59b2a2efb253b17a2c72a9dd131518bee3e94c9904b547ca60b49062d66f75a1f825fe088a89708ecf0b1c34ee SHA512 77d7eaea09103852c5e9de0b30f36602d62fa3209b4c2583611d5c0abc4db7448db3d350a3c8153c2c803548d2ffdc34216474ac8ecf733c274d1cd6b2886193 +DIST fontdb-0.16.2.crate 107447 BLAKE2B 3ad1710274f57bce123e6c9b3c449b7be273955e15da33cead1597dc229bb174dbe7d89d7413f28f7431127a1899d30fad01354f1ea41940fd82bcca7d7a1713 SHA512 7e18eabeb967cf5d2149362c8fd45dc809e8f4b2f0cb2f9753cae1b633dec1e2fa371905bb83ff140851f30d9bb824749a8fb23f90e8d528c24754df3872ea54 +DIST foreign-types-0.5.0.crate 7824 BLAKE2B 01a5111a11e48462914f9877d3228008590093633e957883fdafd3a7017e144c14fbbe713bb8b0061ebae78d20a49978191ce416a4e28317b67ec69e38acb879 SHA512 d07c92cf99c99419a3ebe05ba9154e396ab88116f46af736ffdd958c8e47741bca5d9f478f6719d5361360e844375968c1cbf6ac40995d47128a5e5fda3f6c82 +DIST foreign-types-macros-0.2.3.crate 7635 BLAKE2B ee89f576f2d892209c0f344dcab9dd85a671c976c8034b33dc984b93a5c872ff0353311657fa1dafc499243e55d3293a7bfc532ba55894a719a50ddaa6957589 SHA512 c3965e058d15159f789a8ab1597770ff6325e8ac9e6914c98450225ce27af849698646d53326e07b13eb3a9730452d926b73fd76e5a1fbd8ae4a6083bdce3367 +DIST foreign-types-shared-0.3.1.crate 6006 BLAKE2B 27c26518e0de0a298df2996da4959727dcc6a21bb4efa6c28869a9affe7ee3b427d1bae25ed6928477d07959bd143d5d4fa27325f8f5a5cb0ddd3cdb9e5314df SHA512 c68da34b55230941d6655f6a52d5dcb8ee02149f25c25a5ef782402f9a18b33047905f28b70183a5f45b45977c011a5320cf7283b7901c76ede4d82082ca4c9e +DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1 +DIST futures-0.3.30.crate 53828 BLAKE2B 4e595639500f7147ceb994359ef1656ed096ea679409a5721c05ff84ba439fe4e82563a7cf8dca9aed4cd16b03e89ba1385b0a34feed9d4923871225e131b91e SHA512 98fc67bf1047609c8bb0763c00ab9cb39b6a6d0cb7d993bce4966ddc2492a6578b789e98095981b207ddd73ac4b1dfcd5224b352a0e970eed347537c6fbea43e +DIST futures-channel-0.3.30.crate 31736 BLAKE2B 57461dbb723fd53daa07b2fe6164125508cc3901e0138d2a60da5c814ade415a3611baa45c71487f1853812282ef358c132785ff40c630408e8544d57eee3483 SHA512 689531748821529c528772a6dd0f27362078ff5803d2e0b431ee5a0ecf8787b5a15262d65d52f48486ded46b88f7a9c477ad95cc2c5a3e8f5f9b9f53f367832c +DIST futures-core-0.3.30.crate 14071 BLAKE2B 76a9fa5aedd0d4ae8dd9db9639839b6b342125759c1b9f9bbf58aacb4ecca316ff1f24ff8f3c15f559ffbf974e4c2cd02a5418cb4c4d7612dac8449c8234eeb8 SHA512 3c7259ddacbe02e47a84178b75e5f13523bd0c8f8bc0b2375f7ecca60b7075695ee0a5cc4e1c1de26665cf250271173be803661e2f2f53e2a3b96380a8efe7c4 +DIST futures-executor-0.3.30.crate 17744 BLAKE2B 927abec40eab31251409149179baa95a8d025f9cdb848afa83f95439c4768abbf6da8e2163291a086ea0b83b0b650d1e19cb8e15f70369b70efdc70eb3121f6b SHA512 fa65c038e5eeee695b2673cd65cf7529713bef47da373290595b554bc287267ee5cd015ddeda5a22169cc8828717987364584a91a69685cdbfc0fc779abd764f +DIST futures-io-0.3.30.crate 8910 BLAKE2B c9af4290f45a9fd0839e107fbdfa4abff4f9077ff45b61054670419076f1c4508d7d560d4d86f8cd7ce146e436e531b9f5e0abfed2c4f2406c57be209cfdd498 SHA512 077acf5eab1101917b5b4b4b83347d30d533110d9a34c2de6db1411ffae0f0530f457033c5a5c14249119e89375c9f12127790b46e486dcd003a12a6fad48bc2 +DIST futures-lite-1.13.0.crate 37058 BLAKE2B e1151b6263adfc96494ced26c377eb6582c4529f1c6347c1f920623400d317f6466d11e03c1ed70dd4172c57340b13b1fb1cfceedf430e3b95879bfa120d8e59 SHA512 2c007c62294c86108eba30a850a341e8fb369892bcbacfcd4b7ca39f949bc9a20624c3bb21630706d8240e27dcc402cec542480dbae8867ff933375e4be15fef +DIST futures-lite-2.2.0.crate 38029 BLAKE2B a66919e5fe30a9b44af7363c5550fe8f91735c37ad8bbe2d65a3d3a6c8aca9ea1fc6291a5602e68dfe5ec1e0c3376c64c02fb33d485fd817850f1c7132362e00 SHA512 f507b58537c5ec48ba22d61415fde260ef9393ca4151d2d47b9ecebb5f736d8e1f0f838e0f133b051ef8bee5c32b4c5fdcbc4c4deeaffb35dc3a48f92802ae90 +DIST futures-lite-2.3.0.crate 39181 BLAKE2B 0e4c510d7b640efc6ca8e8b00f4cd51b05b727ce5d25d76e317fd5aec2f515d3b1dac57e4058c323fdd0c5d125ebc4073a9ab1f2ee21aee0e5aa0f9bf2e049ac SHA512 057de40b58d5ae06104c480a0e20a0ee4a962a93af615b04a9a34cd08135359c1f49f1b61577f15277fa73e9b7a93d2a659d3203b490ca4295b88fde2316bc7f +DIST futures-macro-0.3.30.crate 11278 BLAKE2B 6311039db4bd31242e4f45bb7c581bec28eec9da850c47ffd9235c4baef5e5f1c72155f49573b2dc942a9cf246949b79c7d35200d04f91a13b0205cbd33d96c0 SHA512 220b5cc61c744617479d7e8ef9888785a17b9bc26c517c9c4445a39e8be21f111f77e53bfb3d143df18dfde23feccee17e349a84b897eb4d86f94d7ae4f714cc +DIST futures-sink-0.3.30.crate 7852 BLAKE2B dc768e4ec4c9f9dfb22a20c1c977401d859072b9222e6f77978332f495cbd0f764b175a679c9d7c77028d7b56cda5e2d86188ee979c7f323187defa6a0485ce3 SHA512 1c198da8f4118d9a9ab2b597e3f7b4e1ac7094dfa547bb81f3c4148c45216ef55b309255849174a517ebddba6c874283425f1df6e56e2ba5150af091bacf46a3 +DIST futures-task-0.3.30.crate 11126 BLAKE2B c2ded9b9b709fc10c44cfeaa72d4e7477e43331b14f3e72433b25126fef93f2812a09b4fdc3c246b7379d41d3764ba17fa87c3e9c131095864cbb5f54771a204 SHA512 c190fa0acf7ff15fa67fe172911cfae803b2a8c08168570a5518a40767d08134f147259a413ab25c45cac5dbf2f601a9753c77ab0eb2c180cad2fe48cfe3867d +DIST futures-util-0.3.30.crate 159977 BLAKE2B 9012edf76336952dab02cb61db48dfc74b6cfc17c137c36372709e8d575b306a4d7c4da89328067c9482a645aceb7b44ef57deb21a0c25964a5515e738a039d0 SHA512 7faae5aa35641d858d0f5430e4a69acd4ba9037852ad73c5a890bffeed411d28820883e18bad4ca8f7b0a765f9f4c5dbeaf5d0cfaaf90c2c69846434ae091951 +DIST gc-arena-0.5.0.crate 39122 BLAKE2B 729bba3b8ba18a644f826c943bfc2a94c7b0a401ab1bb46604e00f62e099c3a13b710b9836d6bc554cd1b44e3be99da4aec428f4885f1053f54c43f38fa47ac2 SHA512 a8d1eec4d9f9a6234b92a0b46b93d16d1636fe6fd3ccb8b3b6e6eb7543086c05357d7b6a745727fb618d153d7385d4e1a5ccc37aeddf18d6ab29cce56cdc3b85 +DIST gc-arena-derive-0.5.0.crate 6933 BLAKE2B 44780fbb252cb86f1b368d3cfd5eab766e52d34c1c8333aaa39bd88b01c62e0eb4fa3cdf747387fc7e38e23281dceed60263ecd5568e7760da443da4a9634f0c SHA512 55371df8997ec6dfdf11dac4eab5a1c1debb41c7ca9f61c7326831249f14e26596a26e218bb0d76545952e05270d347363438f5c2d7dd7c07ceca8373c6189d1 +DIST gdk-pixbuf-sys-0.18.0.crate 9674 BLAKE2B f9c224988cc2d46181a5d3dde212988785c5cd8fd411ca5d4a55156307ee5895465c5185d761b246a7ebfff81a60ef7c5973ecbe5704b5e0ad77ec72b55025e2 SHA512 ef757be6df8f6ffbe8a0276ccac2b3d4c46b7acc6580876635a10b6782d5afb9ae6e8b11c7dccb0933b6d8767c57bc89b0ab117470f33b73f7a4a141f44fb121 +DIST gdk-sys-0.18.0.crate 73250 BLAKE2B 3a4d1f0524067818be6f48e1bebed35e527f06b7ec0a454d471748a3913dfec1ef5bee8d83855e2236758da5c0574ec385339f699d671361de0ea5da8100c494 SHA512 27820ce9dbe87157785c7a31b9d1b79280e9e4a8fe4bd6027fe661d188a714de7f951694bc42b4ac5e8cef4fadc6f36e1329bdc5a2bf83f2830437cbbd9ec6c0 +DIST generational-arena-0.2.9.crate 21409 BLAKE2B 3c8e0e63f2e91a68676a88547032806200484f5ca08d5790e25dbb0215e6812535a9c65e105af5b53e61b47923de1631847bb5be02b87a4e62b845d13eb8df32 SHA512 f729ac873edebc1ad8e28e6e21d76db8ef1cf785092f2bfdbbfe5eb34955f96fde323ccbc95f5bdc9a86cd7aa870b3e88cb22cf9f0854705b4c067a4dbc1896b +DIST generator-0.7.5.crate 29947 BLAKE2B d6c68ecaa48f30e3657bab1315228194c679e6bdf71cf7ea28273ac20aa34ba416309d6253ac19cb5e940e7c058eed39eff1c0a5594103389136d10148bd1338 SHA512 fb634f5fa252acc3d22ff925cfc06f02c4c82c64c567c98fde9040b457b8248a6199d0ccbdf27d759e75134318c0bc1a9d9cb351af4edf5332cc184c90c89d3e +DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d +DIST gethostname-0.4.3.crate 9336 BLAKE2B 12be5fdca0b6e3788cf3d67a4a80f283d240611b4fd37b6d1c37eb2503e4a7025b17bbb70adf421ac840d8f952434bdedf4691f31362780a267e21e8c4d3a006 SHA512 8c5dc404132f2ecf9bf82d8b89cbd698b4cb6d43141c47a60b95401da2e8c314347ab0a0ad5fba50cf98f01a621faa68293cb78f48977d3ddfe6e6f21926abf7 +DIST getrandom-0.2.12.crate 36163 BLAKE2B 0afef8504932ea0ea051cde1d14bd5b79edde68d6ebae6fe88fa4aaa532605a16f466d0d9c0d0aa619eaa105600b6d5ee4e191865a3fa041549a78f78ca82396 SHA512 dd97d7dae1a7ba653abdaf2db719e1a9c8eb721b08b4af0f1c45b1ed5079069d1b57e4f6d9d879e7fae3a890763f4b6aea9bc2d945392b98e811e7b348589bee +DIST getrandom-0.2.14.crate 37307 BLAKE2B 5904388869335ea904d950ee83ad1867a0d3f6831b7139102b53f4bb4a2c12371c9396f1f1cbcc44e3ce69a4ea316651b1674722071bfa7562385ad4b6a88c33 SHA512 6c334415e09f570e3123e3c6c6eed1727533ac6c9c4142e16ae995c237a16effe146832a891be9fdde4335bd02b454e0fdd9160f20dc02f107ad106756221658 +DIST gif-0.12.0.crate 634734 BLAKE2B 067baacc4a10ad1d992aadecb578034bc820ff2470eb2fe1b63212584ae1f73fb6febe3652a309a3931fc6fc6823533af2c3d567414925118c5086970a09bdf3 SHA512 9cee5c4f68b02252f6214fccabda29087c89cadd8408df4fb6b9479da7958a9759dfc4b13ad2bc7e1447be9050cea6d3757d891b774a7e6fe8c6fd25bca3b74a +DIST gif-0.13.1.crate 36408 BLAKE2B f2544552c177a4e33440b05a949f6b205d3dda1afcb7e6574c92ed9d31cdb3bf536e1914186730bd8777e1c10d86466dffbee34d975884f0125a1dfcce937bda SHA512 7e76ee111c6a94763c4dfe01faf4cb0b5272d5041e2b2b8f4db666debf647e192b963c6fb3228cdde28e1d112830c2aa31eaf0551d712ea9963e41e47e26fb26 +DIST gilrs-0.10.6.crate 127891 BLAKE2B c1e5cd7002eb3d88e27cb814fb73c3fbb7baa2b1ea20d2b89d0e58385869350c6003660a1510a37e2fac99e8e692683561f89601f253f9f260a64c9591924aa2 SHA512 62a6e035f0d438f5c17ad72678c9ffd13bca9fe095ff3fcd563ce1340eeba35eeb1e9ebee329de697fd7ee6e15373ef54b35cedc3de4e9ac3eca62e4d44ca50c +DIST gilrs-core-0.5.11.crate 47123 BLAKE2B 55cc7668cea1cfe5f0a558ed5a9524dff2ba23099c48b05b7f02e8f20af9b2d4776c33debeae75cd7bd747404db6aaa40120778bda161aae9c0532997944b10a SHA512 cc5c96270e246e1b4e94a7b1d613d263607d02638fc7baebcccc990000a35fe52901b3c348c9ff657b97ae5c74b8ff744f64ac93abe1697ab869506f05aead95 +DIST gimli-0.28.1.crate 270497 BLAKE2B 4089e0f871295d464e548610ab5f0c2fd863825416109cf58ca827e482897f00eab23b795295758f1e3af16167b52c77c91df6f707f1f445984a6c4bcd68c6ef SHA512 695e46471fc07813dc4a47744458729b097f6efbfceeb57eb3db4165654e99bebb98dde2d73230b90bb5dd7c0ca0c6e77c7c3dc6f2abf70058b830a2fb386d25 +DIST gio-sys-0.18.1.crate 81369 BLAKE2B 40b7425735f49cab5748130a3edde01713472cb75c2e3f1612ac1699ff2488abcd17addc8b9de1704328f7656e660f90cf33502f8567c22565f15d9f80aa4079 SHA512 f02e9766754d48407e955fc81bb27820a357a1f6cf7b1e89464c0399cd39d4adfb8586d7d7a2a12e98792fcf6e4fe2807816185824967906d45ff936ba3d911c +DIST gl_generator-0.14.0.crate 22330 BLAKE2B d2e84bf81e7c4e2869c3e23872bd86466ede80d6fdbdadaddafb1ae9ab45672613cfda319b15720c35fc26ab103ba106a997ea6f5d4654bc9db19fb86f20d765 SHA512 98779d525a042b47ac373340c6fd2e019a670a5bce643128ae2cde2021c0bc8b2253064819c2b0ff444e62bfb3679dc70f11f268c660050cc891063ed6b45fd0 +DIST glib-sys-0.18.1.crate 60464 BLAKE2B a68df8198874339988cb60ff45b9904607a7852d224e5efa487f22f3bda8d3eb54f7e30f6e2c30bb20dd6e5d48c205b65b7f8c3787915d3a436666d6fbfb797c SHA512 46583979de6d58cb863e522f9f11f9fd2e16ed5d1ec098f9f9511a7a124029671107beba01d5a19dcb082e57c53a2714ad3f75b0ae47c65985c2ab947d3f2c15 +DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b +DIST globset-0.4.14.crate 25090 BLAKE2B 2c3e6f8384a066ebfa1f36bf03125b5eae79329255674e32c58963451d4b342ada10f17524232a953bee133b3c77b678a141543759ebc622b5fd659fe55622ae SHA512 e83e4f5e42a97609e2579b09f49c2cb0a76a94e7e2975c5871f2c5af5d3b809736e0a7b220404c582f4a0c7eebdbfad6cb432e89b26401b58f2b253f8c0151bc +DIST gloo-net-0.5.0.crate 18586 BLAKE2B 8fb6ee702f468cbfb77ba40437f99f2a4c992f4d9787e79db463eee4d3810282569ad3ac0672a04ebefea012cfaf52c93b57220207a1af5b86c287d8de89a1b0 SHA512 9f00e686b0ba473b264752591cdc7bbc609fd998b36e98fd7ecfb09f4c3910050112cf7e2758b4d1dfd990ec2950076e5984ce0ac9d011b7852882b0ac42b557 +DIST gloo-utils-0.2.0.crate 5103 BLAKE2B 2ade2182cc7abd8bff18584a6a22efd185dc3d687461e9ecae86d669e21c007833a2b71320bf71b41d950ebfa23c433792ec140b6f373dab61c236c5f884abf0 SHA512 ffab533a4d05c62ac8096e500608a0e2c28760672afd69cb990b17c978f83db890e7db1175c13fd7ccba365b9363eb704c0b9387d04b8e2522e6f97dbf1cccac +DIST glow-0.13.1.crate 150940 BLAKE2B 30916c62bf166cc5aa07cf2bf7f91b80d3580f0e7d16d43d77e185dd1fab17c96d1a20e7a018725e6822c2910776d27e57bd52677886461cd22b5083b9a605ec SHA512 2a7975f049fa7292dcb15a6f7d6141aac59a316f97a21c4ee65a6cf91594f8340b74a3e3135903be4dae51e6ec73892270531f0f76140dcc1534a93bfc46c49f +DIST glutin_wgl_sys-0.5.0.crate 5469 BLAKE2B 853aeadd1e7a775deb075116d08efc0b17e7032e6a41bcfbc4ea87cd3c466596f083042e3b213f1e33afa4bb106ade7a64f346311c0c1cf6d228820859887a5d SHA512 a8f44456b66a95627f7d0fe3b8a79270368b11343a9f34feeae5675af0e0fc1629b5ccb00e8cddae21ae8e71f61028567d806796595fb94e02b31dc1db03d521 +DIST gobject-sys-0.18.0.crate 18699 BLAKE2B c5578c791f40ebece8210473bb363174ebf6d41db6a7ce64f4a86a2ab5337c45c5b10ff9093712a846cd2cd9bec99e135b4db556a4d18d6d4758a1a66aac08ed SHA512 7b274a6a4c4f38a4c1a5abf6410151d5ecd669c9a2c3ca874faadb0cf31c94b000c7439e1c1d409cf66ba41d8157dc9bd931de5bac58e50bc2ea9cbab13b3f00 +DIST gpu-alloc-0.6.0.crate 19649 BLAKE2B 47fbe3b604b4ffdd2e44d2298e969117688378ef5ed32aaf698106cc06f9973caefbad0cf7ee7a4e75a5602bae9ac0eb3b0661ceaaa82ec1c0d08184d0880ea8 SHA512 b0d19c68c3d122b89dde988d2df53798ba7f3cc9475698eddb0bd116a55509610a9e4edeea81ffd501b3e0a3d50a656161b6f3eabadc7a14e46578f9f5230314 +DIST gpu-alloc-types-0.3.0.crate 4128 BLAKE2B 3f14d804b0d02cd8b2a3532412085db3b6e78a500c9629e3908ab1ac7787d8b807cfc88c8b98bba8b9aea0635787e3d6cdc65d2f565047c6ec74a90ed74002e3 SHA512 9b9f7e81269070269c592c3ded750e0507bf56e1062708ae0f3784fdffa86786f15fd647b07a5d9a4d8c83d5bc277f4062711a5af99e88604e0a0b5d708534e4 +DIST gpu-allocator-0.25.0.crate 44341 BLAKE2B ebc71ad9ce8178c07dd86c5b0db68177809b60d63d8c7094b23a0bbdbbd0c43b50c85a967ff6ba8802e87dfc11d8b2a526c096454dab34931d2135ce9578205a SHA512 b311f10c39cf01afa6d196b3557f3d1193c110ec3d4d8195b55c84eadd9e34a75c1b2fb72e79106d19b3399bb917b5d46dedf73ce3be049db918de4db9fe9f7d +DIST gpu-descriptor-0.2.4.crate 6641 BLAKE2B e80259593e7768e96829e262f1cdcee69fad3e5ba635e61e83d40d1c43e3d50db4f88c7fd0ce70160e65b60f220cafea290bfe286e16267c72dede48dd7cd8e9 SHA512 f68c75425ea5c675a61f7dc0ef23a9b38772acafe6eab15d5a1f74f2c41a5aaf3433f685dad31810df2c82cbaf8ea2b0b15c272fbde38e0d9a02629861e8a83f +DIST gpu-descriptor-types-0.1.2.crate 1928 BLAKE2B 5f36337952eccc0d564d9342932235d26cc01c5234a7ee6f01525cec10236e59b6c039e81c595e3252e5ddfce246c877aaa8af928f6965d4e07b67694df5f7fa SHA512 570308c4f788abeaa0de6df121b8111b73c7c9f81661968a9b3fb40d2ab1f593ac89711407a91693b05ae0a8189b741030b7b8154a5dbbb2e6b3aa794c5d015e +DIST gtk-sys-0.18.0.crate 137104 BLAKE2B 6c77b87f9dcbcbb61bf193a03f8af382ac68a185152e07a33061dfdcb8bed41390861ea07623300677879dc246f7ef611a51637e7f01b6847d17f867cd7e4c88 SHA512 ff51215d62f45685e3165c86d79dde2fa267068bc82495dade45175f8922b427cee90570c5b972c3897bf76125210c0187838ff764bb314ac79397493c277d4d +DIST h2-0.4.4.crate 168905 BLAKE2B aa71ad20ac387054449bce337d9097822d583c5daf7bc3f703f1a8dd204cd616f0f690ca39eb5e3b623b5694ca9c5c070f829d461a1f6fef0b94882b142806e6 SHA512 469ea1d854a70fa8a0510437626b0e0b2fb5409c6eefb0f5a89be5cf24d9082654be6cecba3d817a19604e8778deca6fb10762bb29e0d1bfcf8548031e3ef4e5 +DIST h263-rs-16700664e2b3334f0a930f99af86011aebee14cc.gh.tar.gz 89840 BLAKE2B badfd0134b5af25c3e20b5b785fc717ac6fca399fe7c82a5edc50391973f01e0843731119a0dd48c72488d1f96622bb9d6e1b796151ae58cf9c133ea538af22d SHA512 88aaa8c0dababf9a74d0631d53139126457675c4720bad1da8609c3510a28fd478ffe70036f05443ef01b9afc100edcad68c09dce58836b9ece3aec8e82b77f6 +DIST h263-rs-5c8d9d7d86f62b70ca484df006a75a9c8ff1985c.gh.tar.gz 89864 BLAKE2B fc2f799c7b72b4e039615ec1cc608a45c5f06c5b65c5acfe971f2fece9278094316557e4bc19af7472eaed25057a4ecc7cc0c1d5ffa1a3662b361645c7c8b083 SHA512 43cc6b5b0ba97e086f7ab22a100b4527ae6af095dfa1f9694222414210c989fc80a0001a632074b7a1e9424a7a8b3e34071e0efcb1be02e73be30de8b61f6cb4 +DIST half-2.3.1.crate 50257 BLAKE2B 073192254d98ea786b450eb4e29d36c3a661ee2ac6e57b8f303a7da483ac60451de59a91fb4d4be3fab23ceb109674416162f8224d3e9bc05883e4f998182225 SHA512 b29acbca7b8f8fed6392346d03c710dad0f51cb2e358e7ea74a3aad4e10ffd22edb4154a56f877adc375da831a7597b51f7049335c0781a1b1110103e5eafc35 +DIST hashbrown-0.13.2.crate 105265 BLAKE2B e9ff7e6e753166ab3051a834df6f2da81a19ac6997ba269ab13a65e0abb9ce00839311785aefb451553284ad5ef3a0cda925dc2bc188d2a138a78578e530969c SHA512 21dae7a283326d21e16bb32ae0dd1481c4936939a32a06478a3351c2dec97941be532437b808e99ac40e7900a75433fe0efbd852158659a682461245e19d0e70 +DIST hashbrown-0.14.3.crate 141425 BLAKE2B 23c63a99c6c6b7a6b9b9e8bbbc7f1e342e1eb9d7582fc9eb408d3eec50c99f34502d450170bcfef4da7f2b1e743e1d1619875ec879e4753dffcb84f3c10dc3b2 SHA512 4d344e5c89ce58e04668b80ef10e4e110a3a5daf4d610c52d980577795d0e2050c7d0b151d8ba97128117665e27b92ab0300f85b88bd6e1de943c62d49249356 +DIST hassle-rs-0.11.0.crate 27178 BLAKE2B 5af929f5989f5522fc04aa27631b24dc53aac842a238d2c7e3a5f45221ab56a0725578cf3bde1b070b88a3d151ee6522e914318fcaeb0317c0da9d2cd74d082f SHA512 b4eeed4e47236cfb88087b1b6e4d2ad7c93acd90e55ef4c1b039d3798b3a7c6f81238200c15948e42be69010a7bfc24bc20f309dedd90625160a5a50f35e0930 +DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8 +DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 +DIST hermit-abi-0.3.6.crate 14884 BLAKE2B e46434195f0cd710ad215bb740ae5a012a1cd9d9286f43b5922a90ded832d02f82812790a1682ca5211fd22998a86cf9a03d267d71c69fd302a0e3f0c9c55816 SHA512 ab920f843f7061949322597ccc3b6c64f2cd9be106deb71bade5848c379e0964892fe154ab89eda93d767298ad44db7c66604e6e0c065a8921089d873940e66d +DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045 +DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6 +DIST hexf-parse-0.2.1.crate 4662 BLAKE2B e1b6bfef243b07305d7a8f08c8dbdafb67dc50c284ae70ee7032ee8bdc4e72928b6f45344613db63bbaea49d883f0f54e1c09235fb951c1a65755946c557ff55 SHA512 76e64d95121b0c3cd534a0005df0933bf6430f50969ba7a72f6a8261c9b7830c00a65b9286315cf78dca4a23c02bddf75488004630ca9839cc371c43efc8cade +DIST hmac-0.12.1.crate 42657 BLAKE2B 5d432a666dbcf9077a98e1f8a4aaa3afc88f3d88553cf7a2356d117c66f38efafe686c148598ad67ae89d64ee3edf56387a6f89b75dd9ab5eee63e13953dcead SHA512 77d4bf51f4633a8c36712ce3178945141df31cd645eafcf4bd130b8ecd7cb498bf1ee6f2d9c8dfbbc9f97ac638919fcc81bd3ee600a1b27c3be3fa87313aa0b8 +DIST home-0.5.9.crate 8760 BLAKE2B 02277a6d0e54a88e62a50ceb5b50b08cd5dc1ca5ddc17a799db0f49a17fee8560df53f616ae22cd16020ae2a89ce7c6ec22e5e2c0d513405bc2859a6e3ec61f9 SHA512 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1 +DIST http-0.2.11.crate 100478 BLAKE2B 1ef12d67fc52392322c24f79ca49c52fcd7dcad0145b761c8aea21fef38682919d664161f242c606a1f3737987368c08432f33e2abfa53d681c6c2aa5cb000cb SHA512 71d98f5fa55c7bdb9fb31e36f898e8b2b7596dcb30ef9b5df3e34581b7306b66a782e82c2797732e28626eec5c9e432cc0475703e5a0e0e47aa1d6f22235ef51 +DIST http-0.2.12.crate 101964 BLAKE2B c35c2ae5f9494cafdfacefd778b4b6824588e74685fe5204bc6efa87b667d00b28f59cae667115fe45ae332d8542e7a0c2c7c42fdeb302302f89b00cb716f380 SHA512 e32dd4600aae7e26f1d530871815b30fa0b9bf95293005649bd9a7bc4df7f69a1d8de503d1b8873e67a5496e644d0a47db2a0680fa1e9058bee4dcecccebee58 +DIST http-1.1.0.crate 103144 BLAKE2B 7a8c4ffd3ce664e1f575bf4042ac0f15ff42b200fa8c6aa27a6686d77be2de7cd3df242e36f8cb45cdb822bfa96011d5d5dd7bb03122ae5bdcaa15bbf9d40051 SHA512 1c29f25a8895a69d815e21df427dfff7924e9040d01c55cc3256dd0b5e72b670fe75b1414223fb971c16082e4b26217142628be5e0905994da4f08b52e7f4a33 +DIST http-body-1.0.0.crate 5411 BLAKE2B f560b45bfb1525fbdb209982740dc2da5688034912377b88a1f0e069a003bd3fba3d3f248bae98dde043e6f797f256a219228611e9b8035e6181f4c84381f823 SHA512 b351df7a2ec991787a57232229f80a29a648433de25efc1db2c9453d5a09b75c2e8b0101268b6753251c686a2af9ce346e08bd016f4e93891534f428c1d80183 +DIST http-body-util-0.1.1.crate 11930 BLAKE2B 7e8388c2e15f7cd2d4e4630bd1af25bea49efc2444b18aaecd5fe191d913c7922a34efcf48b69811e1c64923bb7dc1e3aae9a2ca2daa1b1a5c9e12c679dcf787 SHA512 bb3750ab98dcaa7024c1b5a90b3865b303fac8f723dd037960f12815c6e0d1e68ab5e09dad0b7ab3154a820e7ec4a5bc7b39be104e5721c7ef1fb36416fd9b24 +DIST httparse-1.8.0.crate 29954 BLAKE2B 82c48fdd6d28e94c42df180415ea3e30d471ace2fee09d7d8d33aff0a8e9a15d3029c90f3bb036b4f587c8902094a2ec21e4ca6ca7b654a82562bd84fe208ef9 SHA512 849159d9876e0474c71f3c7aa3a7271699b807b293832d88d52e4326ed410b25f9d7b9ad75a143a51fb5c8ea5016c2513348edbc050d3b62dc9a6737ae98ee8f +DIST httpdate-1.0.3.crate 10639 BLAKE2B ce0b401c69f76252639c10f6c2e4a823574a58565d7c5cc3633c72837aa4ec3630b34b148de4378ec498db196e3b2e1413ca0e5a4d9247855380fe19a8c20f94 SHA512 0586888fe89f40b838d5ceb083084d0b8058feff1d2933faedb96896dc86eec68b541a0374a508fd11b86eeadab3c62f88568ffe2c53206fad438373a50b2e5a +DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c +DIST hyper-1.2.0.crate 148064 BLAKE2B d0ea30be277a41a1faf699b306ec84659a4c8b8a90d192c8b187a793103c2cea3670bc7d378db706039f4555dc7c66298fb826bfd330e8cdd4c97e907bd7e375 SHA512 1ad844b0d13206598ea8ee887255f4776f2ed9eac3d07b1e5b07652016655736868e5521aca0c436faa418dc47fb46cae21870cf97858d16a21101d84fbf6263 +DIST hyper-rustls-0.26.0.crate 29538 BLAKE2B 9c6c62097e17b66e7cf9fc1325daa1e0b851ced699fe5c19a42e061dcfa7bdb26d614d6aaa6704bc07b5801b0efe54c87f8f6eafe2462ce01c0ab85418e0c783 SHA512 df6bd4e2e9b5f54315c4235c13fcaab4bf9fcb3b0f1673311da60a34ab22f2e566c4de3d3002e65620fea0b7942d27a83f52187310cfd9d8ee4e06ee6fe384db +DIST hyper-util-0.1.3.crate 61647 BLAKE2B 25821f66f7576e89b5c7a5207a4179a7e86f024b04acd1e8c7cdc8be3bc8c9222df1efdb14de087a0db50029370a84ba5d48ae2a0d85d04c1322bc1701a4c2df SHA512 fa68ae79e56a40beef318ec1b3fa6683ecd49371a64b123e55cb311a739d44226bfd526afbbab661785ce4302ef4bb1bcbff80ae3c6af26a4db62e9d4792a114 +DIST iana-time-zone-0.1.60.crate 27074 BLAKE2B 6f534056e220e2f721fc7c7f3ed24152eea7f07d1f4cb3609ca734ade32a2d6b18fd0164ed831170cdff192cbe48653b2c4eb0903fb6f157292b3b5bf47299bb SHA512 5619b994d3277f56e65322a7903e4c5e03928a87bdb72831cbef88788aaf5573b8460abc0a4d5488c5df7052bb978531d973dd66002b0ec4a3af468928c9b722 +DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2 +DIST icrate-0.0.4.crate 1040120 BLAKE2B bf09a1f5e4dcb6b119f158a6d7c93124d7f8a2434fbdfa19e356c282a3bcd2c191fe028f7c45becbeb313d163339106f8999c159b33920f90d70f7e09123d58c SHA512 2aeb124d3b303311500c163a33b033b8cecabefe53f50da360178c320d884e3b11d064da11c52d7ec87e97d4bdf6e6f47f71d1b7609e226fa3910eb9b7e270fb +DIST id3-1.13.1.crate 61018 BLAKE2B bc7bac0c91cb81d5f0e1920efe02c6b14196e80b0bab3bbc29dce23af2b27efdfc94bbbc2db863a551443e2043b3e36d6cb8963e01eb76aad4b0c93a5882b160 SHA512 a5848324df95bf0d9e693c89d24620b3b235d05ebd2dcbbd699eca2a3d6850f31aa65f0ba9e8416473d30e3b9c10204027ab4f6bb08ec5fda5d4ff48d11fc62d +DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9 +DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441 +DIST idna-0.5.0.crate 271940 BLAKE2B 0b781c2e9bf717af429efb53bdfd18244f2b8c58e5111c3bd3bee50c8a01cc747513fe20db75c38b6b771d5845647bf6c1849ae6667766c9623e018c1f399a9b SHA512 bee6cfbfc99859b113aa8c7b487429a836dabc4e317980f132d28ff8333336f33480bf9f8b186a07115eff33024cd855bc85d346fce85e17c4132e886769c54c +DIST ignore-0.4.22.crate 55462 BLAKE2B a9a29e5286c9a9c132f2fa319226bfa85c9555150afd18e34bd3b37915250842c46f6079208dce75674fef448450dfd23242858ee2e4e2bdb7eb65f89d689d0c SHA512 9647a4887258dd970c87798dee32a16c1cda75ce3e352829f78d97e1b786d67f74d89b2fd76d48a607fe795213965c04c9dfb47713f8fa80561f87ac465956d9 +DIST image-0.24.8.crate 9271035 BLAKE2B a467b3e571b2eb1fea297f3eced0179131467d5cc766a29dc42e6c13eef7820e93a0097fcbcddf3e7f8416fdfabc072f0a6049a65bc4bc5ed571073e5cef7ae2 SHA512 808c25e1b2308b25afa727cf510ee5b5398cc3948e647eea7cd4e651857d158462190a39c2e1d5279c8c7a5144efdcf1943e311504a404d801de76d05692a88e +DIST image-0.24.9.crate 9261055 BLAKE2B b4d95a88fa2fdca01e5d89ba9975be22269e3a5d90d24bc31d5f1168007508a0337d0acc5347be012c2b98de02e4f481a573f012f47a1f1e365d26d89df236d8 SHA512 3f858efceeed54e21543eee065ca6008f40c568e1ece1016b38040eff5625c9fb6de77c7e950c08c9e82b9fcbd4c4ec2f8c4c1157ed5d232bc8e35b4850420d2 +DIST image-0.25.0.crate 9176398 BLAKE2B 87c69ef0d5b68a1cc0d7f89f9c3ecebb426b569bbcf7618ee98fe6e7e874cd7d28ef685685dbc66ddc52249ea89542258223d70500cd2f93cc82d6f674e2ba9e SHA512 c845e16419baa5d4ecd6540a293ac2ab026dd667b5fb4bf028bf08b5415852b2d38f8fc07b9879c31662fc12294058325ab35dd951d7acc901ce8c5eb4bc5387 +DIST image-0.25.1.crate 9176733 BLAKE2B f7daa1982ec510de79c925157f2e1a861c89a92f1cc043617469f3c95cc9158f1ffcf274513556993bbc4bd5ee5f86bcccd406cfec06d98b0330bfc10687acac SHA512 4252672cb5b5fde61e9c7fce1712997ea082e3e7d5350970d597c0a1421b21078e1b4c3088474c4b500f396bce604d0749085fe4cdfe1c3b5f3d1ffcd39c1b04 +DIST indexmap-2.2.3.crate 79019 BLAKE2B cc87bac104efd9aa565e3b8d6071f271b33501e2192b3a478120c41d015537e807bf3ae808ddab930aeb861f353022ac76522e5102e32f72722b93d36d5f2236 SHA512 ddc45ebcfb36d761d8c11b8f61bcef046a51eea71692d89495c897cf9b4cdb5e14287600285297c8a6aab543761d9f5ba3ab45442803837a810b945aa346d48a +DIST indexmap-2.2.5.crate 81498 BLAKE2B 8914a50344951aad58766fbfebe8780298098e3a7c923287e3a84f6de41e2924a6a3bb3ee91ceae9b5b49654b83ddc7516a4cfa6253584b0657995d7c8f63a89 SHA512 84fbb6e61756d5ff746f6ffb2c3c8552f96d3af205075a381f06df85258c7597ce24b0d193127a797f975a3fddc1fa92110738227babc73a7fa37505331f8d78 +DIST indexmap-2.2.6.crate 82420 BLAKE2B fac5cf6339dc3c0a40b100035a5c874cc7b2efeafeb31c51488d25156e392dc9db86a497e76eead351d2126f69d060422faa9c55d73407a0de9f5be18d234123 SHA512 53211c4a9003d751feb6dcdf1a76495764cbf32d24bbfe2be7023946622ef4f2b07a6de57109e5d24ee01892f4b2be0e0692e10cd31fd39c4ffdff4d37abe9ea +DIST indicatif-0.17.8.crate 64869 BLAKE2B c534020b2c7b25bb07cdd0fd4414fc817506647cf5b8e2081c22be58857d5adb170082a3756004c69187619fc5625f8b9a1904566dc51c621838e09ecda5b43e SHA512 487e73445c5c7d3c16d6f93a3d9767f41b37d2832e56851154f8b69e678ab7d9ab04eba225a6bcf8b48842ae0db0249b060e998e29a252dedf8afacdc88b1aaf +DIST inotify-0.10.2.crate 26200 BLAKE2B 8080cace302b0e5aca8ed4188126992fed5b5b4f3624d0e5de70dfb426583428890513faae2fa32c31afbe1051aea03acb7a7f22d0720a24569f020a2a5ec940 SHA512 79692a043787daa67284f9b94892a09a2bebb12feaa5be2e1bcfa213b710af5499a4fb62b837d45793efdc19ed1eee00a014a7a620b5bfc9a594fe0571e96929 +DIST inotify-sys-0.1.5.crate 6965 BLAKE2B d70124656ce3e6f5ea3f430e8e7100d0691003161234b40542ca86c407ecaac1785f3eca98e9fd2914dababbc3f47a0855c99c9f19245d1f2cd5312739c802af SHA512 dae749f32c533b0c9f99963d97a77dcbfcacf173ec8fd7a02f275804f9925e867b4dfdf6be52c3c3c3de136d64e6e7d6b30a3bf804a01608cf974b0cc2e346da +DIST inout-0.1.3.crate 10743 BLAKE2B ac2fa5cadd98088ea3f6eb94ca46b3a9ceb6547ba49f0de311d86474d71024d1a087ce9b8d44ec808008db69146e9c81446bcfeebeb2fd74d2e8d0ad2c4975ed SHA512 1db5bc2bd87aae145b3b0be6669a9a722df2aac8f970fda210aaf945c372e641b941cee822917926dfa1ab8381c6e99cc7df4b18d2f4e2fbef17fdec36ed2beb +DIST insta-1.34.0.crate 550760 BLAKE2B 56ef9742bf38cabfeb26226fcfbe70cb2372964711a9d5f6b9886afdc3134d272a827f77f858c29e7ef2b723e50a7da9030ebec3ffcfbc37db46a7540f848226 SHA512 792eff6de9d7d10212aad14566d0509ae66c0b43b2a38b187e8387ca131162daa097b92abfca801f3b4efa052a1adc1464a07f5e9c6d564832c2310b8a7f544a +DIST insta-1.36.1.crate 552129 BLAKE2B be67a3e26bb691a2f08879d3a57ba212e1bf3d373a0546554624f705f720447ac6e7ee72a6c3f4474837411e711b759d229d0ef331eee3d9a01134ad93023767 SHA512 4f9ae3bf8eb25f81cd262a0c37ce305171a185536b174f07cc96b2129013bd7ec30ffe2620a85887be865ffa12ff7633ce1adcd4f8d29423bcbdf95a4227ba12 +DIST insta-1.38.0.crate 86379 BLAKE2B a0d349fc486dd4dd771b292b3013e7609e44e6db70c661b37123985427004938022f09bf82dcce97124e7acc1d72c7b3895ba0cf7d4dc2ad2e6334a02c85d3ce SHA512 c0604d51c34bcfa696bcf1bb98bfeeb210a91ad8f58ae2df0c81acf99a8380484a0e4bf3697e8363fbcb2a9c946b00ce91883f5ea9fe5b997dd772b230b86827 +DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407 +DIST intl-memoizer-0.5.1.crate 8292 BLAKE2B 32b42caed088028a254c8eca21aab5b44c7e4348255c09009a9e97f205cdb92743c9355f7eabf132bad1a22c4c30335708f1da13b3658a4f0eaa7f77f2721b14 SHA512 3f505dff396039da10ed45c1b99904601dd4784900c0b9f1d0c73d99df656998c56c7644c8d3608d08cf23516b9e35018acdb810e8add48b8435da8e03098a7b +DIST intl_pluralrules-7.0.2.crate 9201 BLAKE2B e80c46d863296008c85dd8738cb1140cd246c588daf2ed531de97b9f07f02d44ed7fa36fb61c05f717d59b870f924745a4babce25f6bbf170698f6d21da50546 SHA512 e03eace1382afa6704cb2118701c2281628c15df753687079eb02cc13a8f80b07c122b44618f2fa85438cb7343eb676f3c09e08216589c480deee36e7896eb43 +DIST io-kit-sys-0.4.1.crate 39052 BLAKE2B 4e5ef7c37b27cd9fa2f53beb2618ce3fb1fbb7c94ae5fdf4d53992b5671da55d2893b84456a622e2a96c6a0cf01aae1492ebdfd4820bb52c0e93ebeb0d93de2d SHA512 fc9bb9b47483c3dce0adb233faa2b47ac9303786771d97e3ff5836c81c04754406cf9ebe5fef32cb879dee5ff3f10d6a81a21a423dd34f3ae1178d94fb151163 +DIST ipnet-2.9.0.crate 27627 BLAKE2B e7e1c74815b965e9cec1cd37cc3dca76671168feb689620d44d5e635f3a5fa92a7276cb3022f25a9512ffbaaa11b0a8719cc1b838a7dacda71a5beb1a992ecc0 SHA512 8ce429ba2bae53cfdaf8a7d6bf980e10b9dd515446ef3ed4e4e11432043a18e09454260567419818f523bc589fc367194bc345660f2cc808d281db235d3e0b54 +DIST isahc-1.7.2.crate 203314 BLAKE2B 60b4b7112581740cad3321a647b71e1ff10c1a7386ae8e9c95012c0a77bb05115f9f09d451db87ad2a19820e0e985748e42898c3e856b47739103d93178ce163 SHA512 c58dac9bf57f6019a215b0d38ba97eb3042933dc327e260c007531a7afe64cb778c27b5f0fbb761ef0794833f8ad049564c3f2268850f949e9697ded61477c7b +DIST itertools-0.11.0.crate 125074 BLAKE2B 8e686f176764e92e4da3697eb781e1bc30d6c57ac61d97343b4fc3a48e4febf669d5771fa8620005c620cce52c236760ee2e1bc344cf602e878bc168a2e69cab SHA512 8ece00ba0a7cf481ad4586da24385a6f0b1719b9c3f0c25b9b5b373dd1a0ca7b9687a77cd179853392890b7bf4d31e0356a4e5fd540465b4ac62bd74ef717fd8 +DIST itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68 +DIST itoa-1.0.10.crate 10534 BLAKE2B 8ffcb345d07070cc01651fd44c19f3e0659185eda733c407fd4be0955a301879ae1272dae7f425279dae8dcb7f7dc954465c9a09b5c521938a503d34fecfe2a7 SHA512 fc496be0873e31afa6ddf7f2958030f8fcb517cadb86a48280a0c50ce50460afda189af1e6c26e5ff6f85c750d772c21503864c32b526c4fe4bcdb5b07918538 +DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311 +DIST jni-0.19.0.crate 65890 BLAKE2B 78f93688f80f123027a5b800b0c3e8fa714a1a06b59ab36de73ab2d02f1f9ae3ceb2d3d4fd19c8d6d951394eb85f986f303987ad1e23b2fc451a237a04a9ef4e SHA512 75b48cd05ffbfa6e220dc4ffce3f37eb89105d42b0ac4e108930ed81c3525c4ee3d1c069342cee203c401c9f2e9bb2c53382fb61155da922ea9585d4fff9b212 +DIST jni-0.20.0.crate 69054 BLAKE2B 171a8592ee150c1022753b44e36d6addcf2b697b118ee3c55e3e3741400f92ca3a909d5f67da09242a32730aece6f1ca6f72917dd004eec95613321d4f6ac287 SHA512 08e4f2b072148e558b79dc4c92fe2e113962bfa02a16d0adbbbf43058b708ec844414db57f9d8c325a0a50d651a4e82f3ce78c8ca35fc157d1122812c0e928c2 +DIST jni-0.21.1.crate 105028 BLAKE2B b384973d4d991de027da3f0c27aaae33a5d1f2ae8037f0121e8c637a96382055611da753c14732cd9fda56f929b307c988f1c3f6bc2c7617e2e5182a66a943b6 SHA512 46897d5fb968e598fe39179307376305f4604db61ea5d7f12050506a6813e242c05785536528ff2d59de8a3877f6b24be15c30f451f1bec40a5c72fa3b772835 +DIST jni-sys-0.3.0.crate 10232 BLAKE2B dd6334daa6db9fae6cf1b31b9c13f09f9dc3f6a0e227bf6779880a6e197189d91583cd463b9876125cf892ffa5f8417dcc51aa010cdb8c99bb4f969990e969b1 SHA512 1e47582ed4dcf608ffd218549f1eef5ee3c87a89e28c65eeb5bba801edd6cabc0f095e213e8df606e050a57608653a59ced6f01a8bc76a5eb32ba1a337a63321 +DIST jobserver-0.1.28.crate 25543 BLAKE2B 90fb1d8696b575b16b5b12d6fa4e7bc7890f5f09110b147d65eef8888a16ace1446a789f8079a3706f0252be8a04061d989bc8fc53e6c004d6b8a4094baf1642 SHA512 8ffb33b8c162935de1226e0ca4048f36e6e90bd1731cc7f06110bc97e2adef904f777df0ca4ed48b3b8ee4f2c243b2f883f6897427867904aa3385098abcbcee +DIST jpeg-decoder-0.3.1.crate 744364 BLAKE2B 0ccc3a7f42e471fc1fc7995fa99573b798da89911667e477a310d10b95745708e583d53776467b9d54a399047b727a3fd4c26a1387382c226f6594770b21ba05 SHA512 103b7602876069603620cc2b5530e84fdab88ec96855a821606560a67cfa26f628b401eace62ee793e6c16ef282f958ed789f5db725ff901124fe6c9b123de00 +DIST jpegxr-688021cb0a4935295f9aa8b488ca05bb4f1e9b34.gh.tar.gz 9321606 BLAKE2B dbcbffbe21d9de5709d9188086144fc56289440b4d34648a524165c24acfd45ef53d204c587403176492a53c6e4d56dda2a2a9b41aa858e4657c1c169b9537a7 SHA512 64e605477e6acda146abc1cce4974581ea0f68a13e944156c0376770559c61f7a5ff9bd2cd5324a4831e27a7467bfd80c176c74b5527a2de596399d1d1e57620 +DIST jpegxr-d49988f40f220e3e9c90d9f3df1d4e3bc41f6ce2.gh.tar.gz 9321582 BLAKE2B ba553a64109fd397b0cb8c7ad88e24c2c88e86d23d18096f359ddb365b99370d7e97ab8b25c41aa9aa4ac4dc6ae97cb59eb54e51508e0f7228cce9d11b4226e5 SHA512 a7b658df30b61a3bd03797e07d829a5ff9b0e08a7511e31ef8118a0a17e603464836151bf6f5f6e313e2ebd57f90bde2cea83043383c4dff27c8b30cf2a405a9 +DIST js-sys-0.3.67.crate 80764 BLAKE2B aee8b96c8c5811020b3ee4277524902e27d96a027add7b21a8ff94eaac7db15e8de08a9e203ff462b05ce10d0a44aff78a355c07514794e41f49fa936a3c8fb2 SHA512 590d947a869c3435166e34c25b3011351f6804b43887ee76bc2be69b7407b5181bbbc3a5bf6c50867c65d73fcd8e65ac7b0d395710ccd52000beb87f8826be96 +DIST js-sys-0.3.69.crate 81083 BLAKE2B 529c94cd2289883b3b43a848d47d8ae025ad0909548a38ba93ebc684ed3edafab16842b922da6c8b6be5ba39c36a1c05057dd3dd93fc8936d5dac372937ab8f6 SHA512 506722e6dc13484828a4147d974822ff9d103d9e7db58a48181b0957770d9fc43b97605ced105c5b680d8b2cda5fa1705f605707611cb48ed8a45a96d5f196b9 +DIST khronos-egl-6.0.0.crate 29315 BLAKE2B 929d825923bce022ce13595a0ad183a3437581af6cdb19ece34af853c793dddf0a63bf8dd9a160ef253bc4e97c38d4973f667340a809455136b07dd248d2fe46 SHA512 be57e604f577ec526f3f2ea81767a5fbef0b609e0c1aff7c14e2fe658e47bbbcf65b5ac9d6dafb83d2b4fe25039550e21a165fb1d503ea08f167b039bd72cdbb +DIST khronos_api-3.1.0.crate 599718 BLAKE2B 945600455c85874c37c7c395162a3e56531b417a1e6ce414386ecf31f8951fb40049604c27d719014b5379028e5da25fb9977c7487433cebcee4ccc49e00c7d5 SHA512 f9ed9e1bac648a82bc608bc7df339d3ef1db868c8ce8bda9598926839b3de9e3c11c2b45886b9a7dfe5ad6900770fd59c690bfe9a87f7c5b479945ffb8dfd292 +DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8 +DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d +DIST lebe-0.5.2.crate 8422 BLAKE2B afa49a1945d623b34139e31406f4780a5ab7b3d34648caf5f73b1504dbec4c4c02fc3aad3fdcdf85509eb8ba733a131a96478d6b9494cc9f69048f9ae28eb880 SHA512 ae8fce41c9a934999dad672ad74acabac9d7998aac4f1d03b54910d4b941375b9e9721cb1bfc8cd7cfcc4206fc0b18d725b0ea256a3a10a125a8d5848ed761ae +DIST libc-0.2.153.crate 740614 BLAKE2B 523a41bc8cff4ebcba0edbbe9e6a2286ec7cb3ba5e90ca5926c972b68e4b34188bc077d20c22376238c3cd91b7455898a95c505ace4ededea88cc496edb4c5a7 SHA512 3f99e3a192974fffdc053ef21e9ad5fb54b7cdbd4755df176704a95dba38047138ccab76763e89c6b565f37f98fd549fe368749f84f6d1638b3209cb07eae9b4 +DIST libflate-2.0.0.crate 42505 BLAKE2B 2ded808b1aed0ce708ce85754359abe470a481eb8aac6572d1b5a525cd68d452da76c2e29d57f40f0568aafb451b9f3989ac16a805486f153a2564e995cbc192 SHA512 62f1222ec0f439ae6c51b89ae2eac7977ad0eb4fe125de21f5decce98cb2f05ee74b4da9b877005b783275ed7eee1e99de386eb927f86bd75d50369820b40441 +DIST libflate_lz77-2.0.0.crate 5893 BLAKE2B 5340b47195ad0af44011906224664d561e6c74145b921656a008f0227fc5d79814c6b189d68f1b5783b167b71b41d1a81fb2eda2035b066c2407435f7bc73498 SHA512 507d24d0e808ac6f3afb9615d325451fe1d02954a48d057c5a04d2cc2416f22b88d0290000379d250ce578ac752b04abaf8c191e97350f0c44b0a839d282cff9 +DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1 +DIST libloading-0.8.1.crate 27893 BLAKE2B afabb6e07ecd390918344388b5fa63e5aa9223bf3ce513d1ed94cf02b1defe9909d94f0fa05e1516a39dfe4f41636834d3de0386b3c58212103263f2b1423f76 SHA512 f17ca367ef8e62fe80f43e5f3e2d1585be7b78b0fe4a733d80acdde38c20f9f72e710cff082442de6afa323aaafa17eda4491c4430b2d12f398d420e057cadab +DIST libloading-0.8.3.crate 28480 BLAKE2B b8588be0e7034e94c808490adb8ee6e81c29e962aec436a0d8f8c7617b3ba9177887ce59b95b2f0af00ab030bc77b73e0a889d8a77b84deb437245211a969c94 SHA512 af8fa5fe2428fa98177d6adfc01bcd6e701b0d77ac18c95b8b8d5abb3a6376f16241ccc71b9fe100782c73c843ca53c9bad465545d8bb7def52320dad0eecef9 +DIST libm-0.2.8.crate 113450 BLAKE2B fc4a55ecc0d4a558b9014b58861341887679c696af6b6539c7cdb70c033c63219b24f6f30cb8d9b335d15e3af42be6f3a6bd719e189667ca0c43ac818730b674 SHA512 753df71bb2c838abbac360db2e4400c2d931185ecff993da51a979870f2c3f7ac017380fadee4622102fb4b37ebcc1960b0cbd295afc9cd1cb3307524e1f39c5 +DIST libnghttp2-sys-0.1.9+1.58.0.crate 1901846 BLAKE2B 82777a0a9e4ae3db2f16829a2514062e487230a826c19248a307ac9f1bcfe540a7aa2bc415f35a5a3aeb17a41eaa9d6ff968655640ce37f253246f3428fad9a3 SHA512 654c08682ff6bc9d417e51492cdb96301cdba3b40774bd094fb971449b00f788146612c27f79dfb2cd6c6f1e693862e11c704c727a61fff3281aa6fa31659a19 +DIST libredox-0.0.1.crate 4212 BLAKE2B fecbb90e2842a69f3967bb2a09b0181dce1720b60c5d762a334a279b52c00a9b4b52de72c6484603981c0c3e1cd8e173ef5e15fa290ce8b8888739204956be92 SHA512 31a9234201f5128f1519e108f7424d1740a67699828265cc725304a70f6a51e139f1d0c0e626b487857a7b421f25ad93e81b95b65cf0d3e0ad912388deecfb41 +DIST libredox-0.0.2.crate 4538 BLAKE2B 3b160b1ed9a476b1d51fb6a107ce2a5955495cd862d01854c79ac4f1cc1aacaff57f83e03be9b14f3c8fbb67c4124946aae19046620eb968fe97745d8cf46fce SHA512 4c321f6072bc4d6c32f9a2a8bc3ea64443e1b1b770e9d2626be86b3506cfb804c3cbafe376c7300efb09788510a57a626ffa65c9eecd447a2ad29532c307dc9f +DIST libtest-mimic-0.7.0.crate 26695 BLAKE2B 74b8915561310ba2a9a889334cd003cf4ddd542f00e1123bff6a2f5a95e0fee10533a4ca0fd80240dcba803dac361c7ebb1446b015ac50b5094263baaca72a1f SHA512 98722d23a27e58f696e32fc5a716ff157db91f7861340d316be398c765a82166b945f87167ccf570cae1d1355d67171be0a03e25d36360850f3684583e5ae912 +DIST libtest-mimic-0.7.2.crate 27619 BLAKE2B 2a7bf5430933eb063015e7c8613a2cab3032c6386fe9cd3bec50b9a894b4220409d1d30fd140a5076dc2b18906338f758a7102ea1abc4987dbbea07a9bbfc772 SHA512 d1078c9481775e44ea1fe7587bb6925c3be792304e620b553c38a8c21083acd686b74a2933dd4155d6330499f496e0989afbdea5b277ecc9a41d057925485611 +DIST libudev-sys-0.1.4.crate 6177 BLAKE2B c513b5cd68fc60a7a33ba281e4fc4f9a5896946aeb1fe31abb8af22d279c39c3d781fd34109f98fd010fe8aa817b9d91726887f0ee8bf0f66a3bf313b01c9ff3 SHA512 185bd84a729a5dda6fb274584c7a731652418da9435d844870a9d09662918c9230287f4ad002273599d0a3e9709a36ae06d59a6686dfba978fb7cd1c51bbc2c7 +DIST libz-sys-1.1.15.crate 3958887 BLAKE2B 989b33d3a0ce09b0268f81d86c33979c7627379d921fce4be83b8c31419aa0613a9e3d82aea400861090fe6b0bf00612396cfbe0b8eff2cf682576b62f81f807 SHA512 316a3b961d8f9b47ac763365d36a4171afc0fb19a01f9570f1962765da0bf67e7f57b848e16f370d653b40a2526fb8720a4625062cd53d4e4f12e1c69d158097 +DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707 +DIST linkme-0.3.22.crate 13673 BLAKE2B 4459bdfb6751aea9bbee13a3cf8361dfea0e8b783ba5cac46aeab7fddb0acfa38c39467107831a2a1c22139cc955ba050096e4504fed864b5ebdc81207679b3b SHA512 f81a786a68defd1e765e95dcf7be9cf2406a404704295882b3fa2d94ed07b9797d71c9e883294d610b7b15de1f9cffdf488f7f03d37ac57197293a435397cefd +DIST linkme-0.3.25.crate 13890 BLAKE2B af9e79f651a3f1d55f48ee2cde91b5c5746419c833d908dfe9fab00918612464e235b46406eb8647c98e56b76db65e12eeafb88895d0941e9f25a9ccc7b8ca3b SHA512 7e700c904cee012005399e73069ba75bf31c583f72c35b36c20e1dec3fc3f32fe3b87d6ee2cafe32ff1f6f8736476d60bc953227c95957162ac036dcfcd18406 +DIST linkme-impl-0.3.22.crate 6868 BLAKE2B 9240ca65bf28b387126682337ef81e4ccd15a6566cd1ad1406797de518e592eaa5aa006691f3866b5b66684264730fd354e69ec689b47308d0d7fbaf69bad01e SHA512 1e0b815c92a2b6c73942b28500e61c3b5fe467da3f2a051af0de28dabd884e5665998636a401251f9d3c8817c1732823fbacb354093e963fd66c25225846d916 +DIST linkme-impl-0.3.25.crate 6912 BLAKE2B bcf05b34894390536cf878b0fc0a363951011fb2f701ddc4e38fbe6103277a4c39b11641278b43a821ed047809a86c5a3bb8a0fb9b0e15728f30631d71118f81 SHA512 799f72e1184a9cb22fb72ab46ed9444e6b3e849f2caebc59104b11e623826cbb0f88cf2281aa767b2cf14d5fbed7a33dba8a6c471dbc47d63e3a72f2a8277d3d +DIST linux-raw-sys-0.4.13.crate 1493855 BLAKE2B 1298a038276e2424eda9873c642fb43d864b343b03b7962446122d2dbea94d58d9fb2b93e890769e6fe4092378755413ed6afba81ce56fd61e512146e44148a3 SHA512 3918da6b667a08ef8a51aa0b087129e2dc5ab101669cbba7690fc98ae2659a36861bf9410a3b87d18522a7549d43ac169b995ea192d3073f7249305a809cac62 +DIST litrs-0.4.1.crate 42603 BLAKE2B bb5c471204b982708e4a9848aaa8ce3699cf929a16d1beb554ff422fc36ca7037c84cd7fa83a19f6c2278b9626e43a4a0524842027b6a079e604147162e6e9ab SHA512 49e03d5307d9cc31d1e7940e7931f062780728530c3de0db92ebb636b7d22581bbd9900c8994e545a8fde5d3d5564500af8fa367f54040ed01d1f18d2e48a22a +DIST lock_api-0.4.11.crate 27487 BLAKE2B 87116cf908f7f1f9c300cedded989df305f855883e3df5a482de2c76814c48739582d3079d76a2bdd14a6999204b7fd31dcd8fd06d1dc7f9418f0e2f70a1450e SHA512 9946adf313a5c67a0dd87a1b679b7d9d16a86149fb95974d3f28aa57a9a1a3932e4a5ee1d332097559329c5e3b2295be2e4b655b115d9f75269f33a758b17fb3 +DIST log-0.4.20.crate 38307 BLAKE2B cb9c9a401b49bd68c18d5e42f2ed94446f1aeb184caa23cefacad4ce54a2a357143af54a5595c45d6f3c3d20b054c451d9e6ccdc09c19cca99ffffdaf8bbfc72 SHA512 8661b0c71d3b7fc0d679aa3d7f06910e6d3da1c53862aa06526000e1bcaa0b0b068415a1a9ab317c318f00d15346dba8a4f5d2a60d8850790bed9cfaaf757b3e +DIST log-0.4.21.crate 43442 BLAKE2B 8429b3270794d3e2c7f7d5b58bd4fa1abb9d4807ab3a1ac980ac81c11d9544635003d8cf2e608c2c0094865459108a2879f280278e121df68d09bc1561d604ba SHA512 0becc1a06b6e7048cff6c0bb8df49a16ac4772133c00239e9e9459c0811e7715c500f440cf1a9aef8d7ad74f57434559ca9b55917f588b8e476cf36eb6d4e10b +DIST loom-0.7.1.crate 73744 BLAKE2B e689335f9e247876650eb1d90cbf406be917ee0060d90855adddc302ec1d215f4303ae52ccaa5a7c6454e032c5fa96adb09dd50de4a737dd981630feb7fb8a2e SHA512 1546c2d1a0043274ca820afe69586cc390331cb4972bd6ee0e42143a59ebf41bf12fba6946d94234df9b7bce6cdf24d95c7e54198b619cae1c6edc446a51eda1 +DIST lru-0.12.2.crate 14826 BLAKE2B 67c2defae452e05c91a8f5af70ef7c07856112f81603a3f5df5d1f45c1a48d0295355b1d1f69b172b571ac54763a9990b8abe46bec49cf22d9404af0efa074ee SHA512 b4df8c6b090d5399dba0270f229d633f872caae91861356743db3b66b1c98c89683a130c56489dc9f38b1ac8d703fe4f15a085b71687ce8425a5370fca748c6f +DIST lru-0.12.3.crate 15009 BLAKE2B 2b2587a602409113a7ed61d0dbc44b8b1740e44897bf9273011e6196db64a51e6973436d6bf34df7a1e534cfc0490e0bec4d83c0dcb0f53f640c80b88713974b SHA512 1768ff09e294ad7b0631a4c7cfc1773be57568329901e9c2034b1cffadaca9963180b3bf8194554bad2f9f42f6c5e67d52dc90ba7d75d929cadf31642f4a688a +DIST lyon-1.0.1.crate 3837 BLAKE2B b7a5a2be4e96ddd974974495a61e50e782f7d3c08d8b5e14b86a2e02c55a6a3848e332405ab61d2f7523eee2291e42869814f208d41efa28050f2ed79e2c8e95 SHA512 f9dbad320ccbcd33d692af4c8d7998745ab8d86d307058ce132432eacc9215c8cfe3c42a6d5edffa7942ef892199625be5a55bbfd13ce383c3e9f1465ae81ae5 +DIST lyon_algorithms-1.0.4.crate 31806 BLAKE2B 4eb255b1c1ded57b7bfd947a503afa6fa4b7a2c6240c2442c28e0bc41797150786510daf741eb518ea7a572b2ad05db95423d5e83fcc4369448c08a73183758b SHA512 cae8b9ea4618304f0025ab8d0fe8eda47ee16fa715e279ad698cc06e8ae7f9799be2b2a786fae0133c7f2e8c6c40ede9b9e06f7a5c20cc7965d4648ddfd01921 +DIST lyon_geom-1.0.5.crate 52658 BLAKE2B 9dc405aff5616913358ee97f57de77ab8876837908640996c732a2e86f048c4a99e01fa7bb54b8f1334be008d0a7365770abc8dc1b7d85e65e0884bbee905626 SHA512 9dd99cafe99596dab3d5b35456383338d6967f6879c4f32a4a64ed9c54486a1b2765e29343799efd6a76de118a23c42399e7c009e2924a78c542e35db966bd74 +DIST lyon_path-1.0.4.crate 35616 BLAKE2B fca069c6b9d2ac3e79d42b81a1f747adba24d0ea11eb207dede801f44d76548b8447ea0180b14d354f0cf1a642483876670d84a72053253ec1931afe65d3fae8 SHA512 1532fb365386a1b9d57145fd36bd0a3e27b9e6af2957c3267f122df1e927ea855d897f61ee1f5282cbb35bee64ca84cb07d53f002406c53c1f87cae97b53cab7 +DIST lyon_tessellation-1.0.13.crate 183135 BLAKE2B c3ff44134b210b7c769b9e721a23a34ea8bd7cb4636e23da9ad6195464f462d5d54684ae50fda395695646616ae1bf7da241a04710276624b2b9133f6bb80ae1 SHA512 f70bd02f5eb630d5c56608c9a98392775feaf748437a39a549ffe37683c7b734dbbf099fd136a3efc38d9d002ac59ac84522d073565bd84815f0eac9adf237d6 +DIST lzma-rs-0.3.0.crate 29080 BLAKE2B 521d9f12a155fb1c9224b155400ada0cabe8be62a6b46f3b9d73704928446bfce653df97c73ae0951b6b1cf793a2b95c37180d5794c07a399ac581d75ef87337 SHA512 1c554b5fe33e6cd6ab069efaafc2826d3cb0bbb13dc55c2438345e1dd17de99cd43da4aa3419841ce50d9fdfa5956baff477b37a09470f48908fc1b7382086ad +DIST mach2-0.4.2.crate 21889 BLAKE2B 137db92691ea6647ca19257abf90402344cc3a8508fe6f8760a02fbe6f56d5341a025fd9e5ef92ea355feff9f36ed6926bf70c79edc17977b65e935ad5f36959 SHA512 5338254f5b9833d41957715898ab4bc52585f99bc8f8fef3ebe526ea36d8a5cbd191aa07a218ebb6f71b7487418223e4279977294b4a6494aee8d01f34cf447b +DIST macro_rules_attribute-0.2.0.crate 15408 BLAKE2B 3a568de49448ec1aaf2abb8c361fd84d2b257a05579b8345cc66a45ecf111e0964e46d1510b458204c95169a67d0c8a3d41b604afefb8db9f642ed60587ac05d SHA512 53dd3b4d271f5aadee7877829660bdf9a6b89f1173494d102a5360866721fc6c02b9bb1c7fb14f50e214bc16a59752e69eedad5dd1d64411a1fdda76f7d62afc +DIST macro_rules_attribute-proc_macro-0.2.0.crate 8264 BLAKE2B c885432d9334a3aa2c1ac66bd3c1f1e186aa259a449aa851a0663b422c9861365216e4dad10e31e7608fd970391508c9ad8a232272057dd9268e0e0299109b66 SHA512 6ce9cd867b5f6fb8459e3103688aa149275718a5bb2290994a02cbd7ae49aa23eaea41aa7247a6f9b15e2572bc95fc2f94c26b401e28a76e229a0907da6021e3 +DIST malloc_buf-0.0.6.crate 1239 BLAKE2B baa59345fd372db162773adbb441caff1f6bad965c3681f244161deaee76282fa09b9af0d0642cd39ef35689f85f5bd7c2efb7ba8119a58e86c7cd12d81b2c6b SHA512 463b3d7666cdd7de618abf0cc4e488060c84d6d93c56d4e922169511a0b03de380ea988cd998f5a162b244088902198763351ac16dea3762f0fa0840fc29d6ed +DIST matchers-0.1.0.crate 6948 BLAKE2B ec3a5d01d2fedbb4dbf5bb185afbb9401410463a61f51674e0df6a571db352b2bbabfb99cdbdcfb4e511ae783165bf0258f5163f240a229b9087f9edbd0df41a SHA512 84214c1a84952d85631aa1ab5115df7cda223ac64e2acf055b6129ba1aa26ddc87615a8b51ca890ce3fee0419053fa7fe1599ae128f1d211b58c07b0c4af3b19 +DIST memchr-2.7.1.crate 96307 BLAKE2B f1a008fbdbfe84852a8ae1d9d9574306b1bf120dd5087903adbcca6af342c9abbb296496eb9bf6cb58915c4444b3edd6ca4e27131ac7d8aed8849815df87a944 SHA512 5120496faa31fc427c8b4178461a262b3a34d70eddb7ad17a19d6db8b9969c9e113d3625b5e6dc677087fc80907377b00ba0421aba9a92cf73ca2849d932f473 +DIST memchr-2.7.2.crate 96220 BLAKE2B 2399064b6db21838d4aa0b25ed0bf04940ee3820741658cc6bf62e5ade08f41320df743ff13f99b2781da7b844e18deb1cfe25fe570f0e93f98ff03ca5d442e3 SHA512 cadcb4239c7f3aaab042592c5186770a225621e32f8583052fd3dbebb4a6d9b99be28f589b39b5ca36cb2d56fb3709e7d4ba91838ebb882e28e51280c02bbc40 +DIST memmap2-0.9.4.crate 32752 BLAKE2B 1b21af908061e6fe09484ce5f84d31ed1751301dffb6439512b38c53f9f090cef7541b591b968d0207c6d8351ee4d5949007caef7832ce130ffda1b3716b5454 SHA512 8bba078dba73253e8ee88f0bd2202dcd2afd0b7b800d08af8af593b882cb4acff7e297a3f299e253f5adf103893fc390dcd73e882a2e7d93ca96099fc2eace4a +DIST memoffset-0.7.1.crate 8556 BLAKE2B 1ef270f1c8dba32e66cf47a1835f10c342024762c0e56953f16e82d575250028154054d4c42b1324c60f955a40fad3bbb1c5fced147c11c9a4ad62f6f0e948c3 SHA512 40ca3c4b1fb929bec75bfcde0135037f81a6c5aa80181bc7dd7bbcd9c0946288eea8d23fca95e296567ccb02155ed0f66c7c23644b5cb3e6d3932be9f9742157 +DIST memoffset-0.9.0.crate 9033 BLAKE2B 19090c1af8b8cf54a2cf7593748aff4d3dc685ec7080aa476139c1721ef71555495e1bc513b1efaddc7e7702f83e0e1c2a8f71ff40009d266539484c9297e0ed SHA512 2f04f9b6fed31e94388c18162ad275897a835df7b9ac827f4df0f4b0ecf71064ef247f7ad11dbc27d7a6d448984a0f29d1c000e3c8d5fa6e121fa9571770ec55 +DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa +DIST metal-0.27.0.crate 3028990 BLAKE2B 10539e6d5196fca56e35037c09ae72ae6bb293e828c50096d16fc053ea9e21e89b900f01e19cab68c1e6531c737598027cd0afc1553f4f81b88fa83957c5c978 SHA512 b90cb1e371fefd548d75a4413ea2a050341fbda6c4627564dc7de89284a8a42a95192014d3f8580bcdb26d9e8be247bb09265591acf373b974cb95159b628a1f +DIST mime-0.3.17.crate 15712 BLAKE2B abb892b75b40657d356b6b53b9a45b2c822a05873453e919f2bbfeed9e5c06104f24db9cef2716f302198020870eaf96b2c62aff55cc11d8ca4f4f614d7c8e17 SHA512 e6d2ca92bb58fc747c1bb65a7f9023e5dbf4b94966003a72e4913bcaaeccdd6752725cdbd5081e0fd69d9e8f364d79664fcbe70061737d5c39e5b3e3a154a0d1 +DIST mime_guess2-2.0.5.crate 26304 BLAKE2B 9428bf658fc2f5b98450a9a39898762fbfdb9108519f7dcf67d97093073a5ecfa06b2ef6210c42946f516d49a3bf65b5e99cf247581e276344aef91a2bad3c44 SHA512 c54e4b401cf994aa18249040f32e5d258073fb10af705c5c052acbb02cf03f0f50ebeb5cff96be91a298840def5895f9b6ffa056f3d78b748113b5374079c4c1 +DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c +DIST miniz_oxide-0.7.2.crate 55731 BLAKE2B e3cbf5983025bee879b8a735fa2912db8975cb60f0499498a73ce4375e7d452c9ed62d4b0b6f6a4fa591aab55e5d7ff20033baa007fd6c839b9d74b31142c0b1 SHA512 2f8f09d7afdb9d78bfc80a228ded85a215fea05e577e907921f1808f84aae30ab118048d7b53295f11aeb5de70ab6cbdec892f3a2417bedf6f53a4576d095432 +DIST mio-0.8.11.crate 102983 BLAKE2B 913a8e0e4843b3b19cce3eeaaff0a0024eaf1bdb4784a710e54ee95b6631edbd763e37669ec7d269e45157907663dd2eb6c9279db850fa47ef4c1eee867ea24a SHA512 9a2806ea78b0637d0cf92448abcd50bc5d09bd80da0f37752c847bc98d014baae7a5cc4d929de98be6283c76d82ccab1f1467aa6ab583a4e782d97d5592b0bb1 +DIST naga-0.19.0.crate 540736 BLAKE2B 66af1debd02f97b9e1f238bdf459c2b880650568292899bbe3982f4e831a623b118655c0db8a268b17055f37875ca0156a28a651a4443ad196b3f4f47247cbf9 SHA512 0bcf6e8795f843a84199d85b97033948ce22719723644dfed17b05cdc68cdd91eb131f930a04c6472bf8bd931946c8dcbf86c35a380bcb85fdffb8a686e98953 +DIST naga-0.19.2.crate 537942 BLAKE2B 0368d7de05f3ba696b1581792ffe8a420e632e287930a53ae2df5de4735783de83e20758eb6f95c1b8d33bd5452f619fb9ce7c6c9d9a2b7d2aab06787372c182 SHA512 521926b6704a6dba2d1dfbf083641bb71e575474a4c44aa5be10285f0be4467c36e68f5b2f4542a2073b7f59ba6d901249d9957ad10d0414c0015a5e1005049b +DIST naga_oil-0.13.0.crate 102295 BLAKE2B 640d0b6d3ab92a6c98174bd9d40abf0fcf847abc8ab35eb8d826b2a89ce9df78c49a5ec9cb523b7ee7beca8cb56a83c508231ac8a1f7509e19aaca8fbea8a925 SHA512 1a09e456fb502dfc63dad209d308440d00b68c9d7facb8d298bddc47e7f7cef4c9a5952b4711e9fc24d755d6279f741ca2c77cea524af1bd8b1ebdf01eaca0d1 +DIST ndk-0.7.0.crate 54683 BLAKE2B 6b8429c4201d3efbf3665025d4126b3fc533884b211901fd167f502f29b76401175123abaaa948b2172b8b6d272174af24def92c8e176e442170867b9171b4ca SHA512 9c32cdd44f5e9d57e2c19dab764db1d4d8ec63bf08021e6f4dea4e5eede85b8bf54002016ca9385f9f6caee47d969780f653f360d866e862f760843798cbd58d +DIST ndk-0.8.0.crate 79770 BLAKE2B 82ad3258f730bc26f91cfe231b3bb811de466ef30244b963c7b78f215cb396a50528129773a986121069d058f5b1d79e7aa8a18f4217e371428520f95c934301 SHA512 bf666942469ebac77eb2ddffed6a276098ac291d459d4b544920fa6644e9fe71a41e556d7d46ae2c23b46865d2825b08d0e2eab3bc3dce2e6f9b2d5786f1d9ec +DIST ndk-context-0.1.1.crate 2205 BLAKE2B 6c1013410459ee13357877654303a04c2ee674eae77911d8c35dc7ebf3df2e8632440c26273f994f90f083fe20b4923240e3b9eaa2ae90faccc7e2f0021b6e0a SHA512 3e15db351492b3f1935424a4c119d878f5d771d6ca0cb6161e4105b263178e96e41cdf1e927e5f3c81a281f55dee25929a9cee911eeb4ff307dcd31fc400398b +DIST ndk-sys-0.4.1+23.1.7779620.crate 291699 BLAKE2B 3292afbb535382167d2a5cc52bf9bed1f17165604cf579c263de0313efa51adfaf96c152d9c00a99d975b92a9977c372ee0aefe525cbc0bbfce9a1aa1fe2d707 SHA512 26af0a3c0d1bae2bd548f075019613a7a9bdd751a6b4fe9cc667dbd7f39223d1468b526cbfe7a57af4db206dfa1407032ad29fd384cfde131470b65d9e14720b +DIST ndk-sys-0.5.0+25.2.9519653.crate 307233 BLAKE2B 884f73ab15acf81b238d0ef06b66942949222506ff0f6deeb009348ac8870b0a8e74b4015ceceb2bf0611609ec4acd0923c2724b1240f314d0b56a42213e0b44 SHA512 380a6c0124df4bc2a835465506c1837ced58f1174ddfd89891c1784ea27508023543dfd229a5440ec1e593461e0e96b07557da72eff4b90032deb8cdf9db9be5 +DIST nellymoser-4a33521c29a918950df8ae9fe07e527ac65553f5.gh.tar.gz 5970 BLAKE2B 70d67cfaea7fb849741fce315494644f094be7dfb653171126122aa00e80cad4ee0107dbb3b0953a046b20177242dc3f73c1253224f2fe60aa39252d9542b303 SHA512 c9c0e2ced1d725dce18ff6202262997e3290c8141dc67a6422e2fc8a0238992c48acb187bb9f12c5eb694fa074d5d89c7ebf3d953c02153115bec57016c7bd7b +DIST nellymoser-754b1184037aa9952a907107284fb73897e26adc.gh.tar.gz 5972 BLAKE2B dd4604ca10d26a1d7def7d6321a1164a6011b48d44f322128f98baccd6b76bb1220515d7f73a1ef31497a6ee030387e31ef03d30b241fdea0a6b74149e20f3d6 SHA512 e031364892d61f973131ee76b7014a90a36bf5ad14ea6d481cbd2ac5c41266a1f195eb71b6cb860ccdd5912edc166e73b420d15a5dd49d450be8ff7f70b3d93a +DIST nihav-vp6-83c7e1094d603d9fc1212d39d99abb17f3a3226b.gh.tar.gz 37669 BLAKE2B b0f2c3598d6946e44406c59da1b74d5f862a1a0403b96009e9b8dbcfdb911c242f036898d60316fc767d1c7ad6d5f098447e1711556dccb7c6164f507a576377 SHA512 97a122659407815aa563120846eae98395f08eb4eb300b0ca1ff59526af2ee002e3932b8ca03c28945eb9394271516fbba43526d230d41c08a3d33bb0d6ca4c1 +DIST nix-0.24.3.crate 266843 BLAKE2B 1eb1667a60d07c4541a0cb0cf0bed2c7c5256411028becdb229febd0f6215e8e176d3bf691f3bad2fc64841209bf364ff8345a3e92afb2bf8d3705fd734c8ef5 SHA512 6ecda3a14ce00002265e46a066b443cd3c092a306e25d9206b74ae31b8468fd5105b597ff1e7097588bbb6ef5e52fa48ebad908303b61db53361b525f44c13ad +DIST nix-0.26.4.crate 279099 BLAKE2B 41debf1f21427ad6c25c6cd26b7867feb8ba46366028c4b74073307e902e526543f536fc0a66db2cdc5a52fbbf9166a6a4843aba57e5e5caada3d914286ddd60 SHA512 cc68ff8e3e8ea8635c6fd4c0a866cf42121aa3e25165666ef3b97b5b2c1d9273cba6f689e80eb812b55b5ee513390924a926d95fce45de0a74b98764dd1fa27d +DIST nix-0.28.0.crate 311086 BLAKE2B a07023566f04896fdb3ef8b2a1ae8dd64adaa5eb48217c58588e1b41733642e03e0637350c0ee83ac47e663c02b24d5668be751f8d199aa773de6df8b2213894 SHA512 73c0c94b360f4fc81ff07a13692b2a5b5ceda3a7203bdf1e526facabd36cdf160f0ae8fa479e31a4e4237c09bde11e9bf821aa496311cac8614f9c5626f8d69a +DIST nohash-hasher-0.2.0.crate 8051 BLAKE2B 5f307e2bd15580f398d53d499b9013a6c62becd4ef0d3edb76f9fdf83a59c8fd86ee4bcf42ba3a8d67bbea522db65828fe7fe324ffc8d5008428570d7b2203a5 SHA512 b1b754262471ac1fb074559c264321f8f08c46c55752187f51a93cdc73509551b43008751ff9db4aa5b47fbfdda783904f5492349546ad14856fe485ccec55d8 +DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad +DIST nu-ansi-term-0.46.0.crate 24311 BLAKE2B d2e678e0eab5ad48534e686b1a4af344996d1b07a0fa40839072df3061bd7e5bc9341363403ea3ef8d19c7725ba3b7a8ed540c63e2209123b1b93f69418288b6 SHA512 b4f37786dc85e0596e2b7b261a5a9fe0265bf1651c39efb358dd649b926b12c3093f307b98bf0c4df3899f0a7cb1854f2596bd5c3e22fbbef42f912ab2eb5043 +DIST num-bigint-0.4.4.crate 99369 BLAKE2B 09a44754e3a3d4f949b3714d96ddd7f3915164d611036675e3df421d6c0863e368eb0180978a4ec27fbfff529b4999d2593e411903516670c24c08fbed6a79de SHA512 0dcef3344a933509fdfe87d6adb0bb1bf67af3c692ccaeec5663a8f18ad0a251199ef9c7a24c25b95d1b255b413947e70f0a205669d549b13e54b6f4864ab3b5 +DIST num-complex-0.4.5.crate 29614 BLAKE2B 32277724d5336443768a299c835cba63906ac91b85c57ff0e57338902e32731a0e67a93c647e6a57ae53a1b4a961c8b9ca2f6937a275e51a58089378a9646e8a SHA512 7b607f240773e4f4ff1954f46b2ee85be1a4f012e2d290343f6178543d10b69c0e9e1a93b0df8efa013c3914ad48321e1d96a4578092ae4d359acdc239ce1ebf +DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100 +DIST num-derive-0.3.3.crate 14545 BLAKE2B 3af73d35ced61f8e4fa2f2bef695f72a3cf1f1a67c77982d3518d9383331f34c1222dd7d72802cec22baa108ae08a87805a11942132c565ab8439c4983e99871 SHA512 e0f4d06fff26c2d2b140ff5ec1ba655a46c8d8fda484f03a8ad4910e8cf1392f0130d5c0bfbbe3bfb95da1f93e964f73364de6551fddd81e6fc27bfa35c15053 +DIST num-derive-0.4.2.crate 14709 BLAKE2B be4abc3c51647f2d4ebe0c0619948cdc994c6ef808d768dd2b9274410716f524ec73c75440f7a780e4871f33055c81f800b0171e4b7a4e2214da5a3007393dab SHA512 55b951470a07dbce489ee43e1540056123d3eb7b5240903cd348951b81ef5aa5b2b1db311d1219bec8ad191373d0079bf40861e3f45380f8d8132f39d33b4f4c +DIST num-integer-0.1.46.crate 22331 BLAKE2B d88c9f84e5d803a3aa8f44dfc1bd6d9b5e336e7cbf47231cb3a7de30dfe263c41c62c586d31f0029459c8c240475cd329b3fce79f355be7643bdccf8d56dcbba SHA512 e27986d91f6c6dc3d5a0900defe28ab5f47905cde3f84d0914b7acee076dca8fec6fdb7b631ac94d3a31eb01ecbc5854e51afc3187cd1abfa21e1bfafdc700ae +DIST num-traits-0.2.18.crate 51930 BLAKE2B 6c40e155d7a52267a7183d8030ef34245492d33f103cc24551b10da3eaa18e3db485062ff87057dc23e6b55e381e5c5d2a2633aaf6f4763c06677a0a0c524f02 SHA512 e395ad9f3b21b0dd1d3a94cefe0d68a42d1b1d429ddb2823696f9cd75042568a635d93d133ddb9497ed357e5b3be5caddb8e4a4af87b65882bbdc60b05c74ebc +DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d +DIST num_enum-0.5.11.crate 16772 BLAKE2B 4f032e0605730dbd72d2e7d6e06085211e885f66ff43193b32c7860905fb85070030371544ad1ce0f926e93ce13a1aad6f70f4c300abeed447373f40a46d02b3 SHA512 962e0e05e7c0eeb8e7520a699066f2b0af2ad0d5d8b4ff174c93aecb609051a1d45992c0cb6a62cbea0ed391d716656047966d5bf4c3467adacd2c5550f33578 +DIST num_enum-0.7.2.crate 18571 BLAKE2B d68d127db218d8c4a34849cbf64a8dae823e9404bb4231504ecbe02236d04d96ac161c3dc6e400a05fb458e42bb24418ff08f937335d37839b0f9174e3a5725f SHA512 a002a35079c81eb39945b3b2a903c1d904924c8417e12f54b9825ccc04a2f1ea1b1b93ec540c746926536851c2f6a9aa71be3c05a29afbd5924236b3e7874389 +DIST num_enum_derive-0.5.11.crate 15552 BLAKE2B 35ea9ca8b1a4e7b40b7c9193f57a466d4436945a8ca1e11e40fafaefff8de6229957594db72e6632dfb49382c52cddac3c0198e9ea063299502ead3b6d958900 SHA512 c2f89d0642c41faf6baf6b718b52b8b09cd17b6753c0098649eb8333cb253c8a166e1f1ebf1be99039e1d7d9c50541a8741645d630df8285905ebff7b26759af +DIST num_enum_derive-0.7.2.crate 17090 BLAKE2B 708f474f6be67cf1f3a63d989b6e84ff33a165f0fce98a2d82d99eee71970f2bcc2c9b58395049d0b6e7e089446a9155ae6b7d6621895326c48049416b5817f9 SHA512 f3d825aad4a04bddaa42d07ef4dbc69c793cc53999cc2b32ef49fb28499cd812896e0c5b89b9118d9def495de0caa05e473109a0937876da4c1a628964a8ba6b +DIST num_threads-0.1.6.crate 7334 BLAKE2B 416efdf395b0299b6b01e1508823afdda08cf67ca54e1d644fc5accbb0490945a492a34bc5ba70c3e838e6405d17ddce164ef87468bd9da27097de8994ad9577 SHA512 b2d9897e29e59353379b6372a629fc7f9afc89f777b4410eaeac7b4729527948a8dbecb175f056899f9076693ef855cc0d40e725cc54f28af588fbac5f7ce3b6 +DIST num_threads-0.1.7.crate 7455 BLAKE2B 282514d1c6ebe67ab2c30f91efd5b6c8880baa078265e22d5d7200eca4f96702aad8b537ba772e5d4e680a6e90fa6919fecfcf37a060668b2a618bb01bbabf2a SHA512 60eecfe49c1afca8efa320c5f4d0cd794f6adf8924193682c903307f484ca0a1ddb56102a772232aca040f29651bbe26ddc1c4939e1f030e229d179837e06bda +DIST number_prefix-0.4.0.crate 6922 BLAKE2B 81bd3b588c788e6865104e5ce87119b5e0c5a526042963d52cd582ff23c2f8c9f32b4c445ef0397fc402b6d047e031d8e2c67ac97e191bde22e17662eec3a554 SHA512 a43b668d7314218b86ca7451daa9dfef71f6c9f6616bc34c12d94ae6030f182bcca9da83905cb46f3d49d0aa81385a787e92e4f3ae239658067adc249f8174df +DIST objc-0.2.7.crate 22036 BLAKE2B 14a41a5ed6beb100d68601af12914dfef67a9f580f80d70c4578ad9df98a6b4496bc3a1003dec762a27f0ae71afe2c9e8fd41ad715bdb310722c8fc092563599 SHA512 7178870c8e4e9154b4c7b4953b3164946b7ce72c956a02b9ba18889353c72be735824bd73e44a485e42ad5f97994820d9153ac684629342755a6a63711ab5988 +DIST objc-foundation-0.1.1.crate 9063 BLAKE2B 876dd217b612278a522f2d08434537d468f8b0fd1efb0e58d0b58216e20f7f9fc80a5ff034ea25d9216d4d53b2d65552684ae5d5212f18d758c7937c91742a84 SHA512 976dcab4e62ad1c387a81723d70b969fb7d332e1f7dbeb2ea9a26c62fa999d91ff6d8f737ac5725a7611334862df16fa8b15765c036d7acfc3e42a745d051f34 +DIST objc-sys-0.3.2.crate 19647 BLAKE2B 217743bd549a7c3ca76e204f8706bc6442f3cc354bfe91c9bfcd5dc8780145a14d9c2b7b98412df548bf6bb7a5dfbdbe7ba5a946c5a1158b505f73efb754a22d SHA512 7cb71e8e11196065fdce0a72f0c903b635d28b673ae9c19529c0e83682d4c03d58a6d310da91fb7c953e2b184b5f02a639aed1da8546a700809579d73e039d3e +DIST objc2-0.4.1.crate 162783 BLAKE2B 45c7475c07b67191bda93d9a92c40eedbaf662048d8aa04ef738494367f899903fd5157b0e2fb1092ce7bed290509e8267fe59f720e8eeccfed10668ab944860 SHA512 12968441fdb26a04f0c0e61195d92f13630fdb034148fc2223ab2807f960bb79a4860ada6d8a365b6932c871a27902d22fae3a61fc8efcfed38f6ca87ee8785d +DIST objc2-encode-3.0.0.crate 17934 BLAKE2B 7522f62b00b69299a15a7f4b7e242b74c25d31b22bbe8f5db62b9533ec2ee5f7a0985ff5ddad02da50e52056ec2b829e24874fa4b74636442a4c124c35304268 SHA512 040421b6df9badbf50ed381775bef64719b508da021e036bb6de3ff09f513ba1751b8a5c663715e79d4e0bd2e67b374718d706defb7c30ab920412db8550274c +DIST objc_exception-0.1.2.crate 2251 BLAKE2B 6e46ab02269b6c3ef7d67f70bdc3b54ed675919b9de979cb60ebec4aaf79fb2f34614ceadbeaae75e6462ba6f09d859e38208d62b1dcb7744db184d5ed34ab50 SHA512 62abb21aef920a6bebe773d4680537f135975e5057af46cf11cec787e5224790a54b1c338d62b0fc8c91b904f018a3fde06e624096af6f5c39fb5aeb4cf40807 +DIST objc_id-0.1.1.crate 3258 BLAKE2B 9a74fc17235ffdd7987c2735a7a9d136376fd13355f0561b4ecf234784aed077d1ab5aa11c1a82fcee7d47d4d36e471ca4ba3e5bb725a2ed0049a5565967326f SHA512 ec36fae6f5cefda00f3e44618b3c9fe6ec8f528f70d1a95def6421704bfa128a6e5b4a32e9dd686bf6ff60c4f87fe8094aa5e1c8070bcde58b17fdc06f49f9f5 +DIST object-0.32.2.crate 286994 BLAKE2B b9085200fe0107ab0f8ddd5c5ac82bc681dc6266c6503e4a803ae4dbdec775ae84ca4a736754b770d858ebb058342af45d485d4c9a41f57966ca1466de40a4c5 SHA512 5d03d998f06dc592c3be141f7163bd72a0e73396f95d22ef1e0ffbfc66489bf727a6f6fb813a32739609b619b8e34a471974b2231dcfa23df8bff52007c25a96 +DIST oboe-0.5.0.crate 24384 BLAKE2B f6c8e34b0fddd2eed7aeca141c2e679494ebccaf735a2551809f4d3f2242b59812fe63bf3e1852200ad1a08bc78af169573548558d8ad51e3c9561bb00971fee SHA512 e73a7a0699199d88b08f74e9073d83a3f565ce861ed05bf8f2f1acfa8b4f4ac42147870e0cf6996bc5f53df4397e506e6f4f0a50916c721517ce93dc60ce9859 +DIST oboe-0.6.1.crate 24588 BLAKE2B caaac8795247ee9c14f02e4c572605f590930686487d7f5f3195b4f1adaa837a024d8fe2043f90b97af7832f9b8624750dbe7def8111536a2cf1f154ac6b43ae SHA512 62b7573b685ff2e64d28337c3c08c556dc6355a11ad31cfb2bf3423ef1eb6a73ff38201dd5c116580b0a540b3f76dbd4a5347758ff40accc1bbd50a893cfdbf7 +DIST oboe-sys-0.5.0.crate 150829 BLAKE2B 8e0b92c76328f398076c4863b04ef68dd4fa5e49404d40e136d74611263017fa95a75bee838d4c37ac25ebcad7337d46a3e14db8c0d91f2f1f8319d6358661af SHA512 4cd1272d4746497da1fcaedbc784fbf802d58bde69749382b1e7a57bc34e7306c558b620c3c2e8eda15aa9c49fe73e8f1ea279b40782dfed3cbb17f7981345f3 +DIST oboe-sys-0.6.1.crate 169091 BLAKE2B bd2ff90400c1a2602cdce23ae7a85528a4913523416a7a2cbd1baf91a07b067f0761a59753dd35dda622b1748415cab8c9b597404a738e6d5684b1efd1635714 SHA512 48378bbc6ad3d9cff907500bc72042a2063ea5a4a0493a577539dc7fd3280cb4e32b13785a793d8a3350656b7b898b46e61ecd20116b753a54cfadfee2c545a9 +DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c +DIST openssl-probe-0.1.5.crate 7227 BLAKE2B d1fd6a9498b3ab7f25b228f19043067604bf20790530fd0ab6fe3d4d3bc27f13e6e94d1e7ef49314c3663477d8916b8790b90427f74976143b54b95350895165 SHA512 7e560314150709a34520472698060c4f29689d4e608dc4dde146140aa690350d3603279c693367deeb0f21ab34ef61956143a3447827a2b7a3d578b9ccd6552c +DIST openssl-sys-0.9.101.crate 68568 BLAKE2B ad80cf56a33c71d6889470e4aaa0b314e67f75ac7921a63d87a94becf9203f4980b6e17b230c0954c126ab8df3c499444ab196958fa645ac9248ea8c245fa34a SHA512 33400053919f7fb2298b84bead88d82231640da6db4efe3dd21a837d0ddb50b2bb21be5befe1734bda15107a9e23cc9f8392647413ceb77451bc36034831b684 +DIST openssl-sys-0.9.99.crate 68158 BLAKE2B 59995535bc24f0ca67ea204193aee4114f88538bbd74ade7c22bc2ea1b0d7e41a79118b6d22917bd1e305a43c16f8aea095c635d27a56fc0481a2baa3092dfa3 SHA512 b91197583135c22d34814e6382dc4ad4be9c3905c979addee8688dbc52ce627815e719b9d0b365195335d4d665eaa79a406f89e4c19cef73988938d51fe2f4ee +DIST option-ext-0.2.0.crate 7345 BLAKE2B cbfc03e7c960fe3023512a4ad816d657b4f54f8ecbde9f9c4df4c5fee3b36b68ab463c67ad650778279e01c7ffaa63a0dacbd0c080c8c3d15b1611de0e71f92d SHA512 f8539f97b01af97e0b80fc96556002251befa60f8ddd19613311e62f9dc9834d71c22f5d8e7c53c4925046e38cdcf834c3c28042a4da862d6f6a21ddff8d8e56 +DIST orbclient-0.3.47.crate 1324509 BLAKE2B 6596cba24e840b64db31ad9791cbfb60d82d46695fa15718918947040d9b8076d3134ad0959e1b7499c457dfe75b270e7feae9fc4474db5ae1a33c21e4de4009 SHA512 dd232376bef63b9d422949eaf2a210625c4b644faed72d58621ac8693ba6095c8f7a4df1a5d1743fca8d6d68e5aa44ccc0f4cd3dd2b2f18e7b10c263edeedb8a +DIST ordered-stream-0.2.0.crate 19077 BLAKE2B 581285d32136bb9c2134f405c5a2d67c952a36eb3613912be029f2826b847919188e1b479506b46f20e0b63d371f476b99d9e7e1ee8d47ddef7b4f48451b0e3e SHA512 99976f90637f0daedeae05d4270d33bc03fad1c06a85bcf2cd7140b149f76c7560d5e60becf05a633a62dc82f7f65900eb8f510c62aea4e630b78c45dc76d83e +DIST os_info-3.7.0.crate 24133 BLAKE2B 321f1c47fbb4425bb7a779a45cbd4edd0c8e57bc97739b80ff28ed19144913af775aabc0f328fafad6afb75f2a54c8b0132c943eaa713b469138144a68497e4f SHA512 46945e48e10677fed222a6f34e428a7fbbadc4535b929f141d98483246d1f3cfc45eee905f1bd75123a101d04c5111b6376233a5cc50df2caa482a461fa49d06 +DIST os_info-3.8.1.crate 26402 BLAKE2B 4b4f021d03433147021394cc25e2f1394e6f7d31683802d86e2b2010c78aa78baf814919d6d2067184d4b4325116b50369032a063c3d60bec0f03acbe188437e SHA512 ba4e33b09d5ee9706ac83f36ed8f08125f69e04116e62c9cad56cbf4f49cf88b658de541a80e769e31dc5eb6f92dbfb900126f5a217069ffeb802c6605b3510c +DIST os_info-3.8.2.crate 26400 BLAKE2B d685f62f4273a75a5820d5445892fa5878cfcf3763730c2eecdf15fee12331884d04906b7c105f437299ee01f2999f77b6a4034e94f781bf694cbad8aab82b10 SHA512 4454fb13dbec94aea5849427742856619abe77b2209dfd0a60a8f446ce5f843b423831632786eb850d0493e023977fae705d0fabff90798774d1c32366984916 +DIST os_pipe-1.1.5.crate 11430 BLAKE2B 45abc371ddd363d193817a339f9e1894ec6fd275b9c9d190283347bb023ec7686e3ca6a5f2bf09cd7ee6abb8843ae52410c203af2310bf3e35c280c5b9874ea5 SHA512 d862484e9a0594f31e45531fac9a892fe247c1003a9c365a28083c0b5132719fe6fcd7ed996716a4baddf1f8ec4857d62d05663d3fd7ecee5802005c55368048 +DIST overload-0.1.1.crate 24439 BLAKE2B acb2dfa6c6c22ea95cf58079f6ec56a2bb5e297a055ce717d40633b789b0d005be2bfd6616448cac61bd032e74aa6eed212f1677461907cea2f7f7cf536c157f SHA512 f79bc3321f45df5e3d0e5fa9c4e60524e4e28dd3729a09956766738adcf99ca42c187a01d48701ebe23d39aee00a19d4a07da798edc781b942e866b339613532 +DIST owned_ttf_parser-0.20.0.crate 150890 BLAKE2B 47ac3309951c24f29151299512f0f54f96b22ed87ddb20d6f1a05861324cb0898ead8b12bd8c64e595b7cecc38cbe3035fd54c13d80ec660e7496fa30f573b4b SHA512 edb121dd4f9fadea578a11c2d9f323c66892b9ccb4b94c1c40ddbea1c57f83e6690b6cde45003024741bde8042f55e2119dc5b5b68e11dbc2a32bd58910ef00e +DIST pango-sys-0.18.0.crate 24709 BLAKE2B f197872258fae7b554be9d62ad2c7a3484fc817430b008263a6b2d20845809ee3c450fa8c65e6845854d5885cdd80f24791a94ee7fa3cde43bf1c7c504f886a0 SHA512 b20df431e744c7b19896b31f487060e0d929c65289520f1fd4d624ff708698d4e082baa73366321206a2a7e3f4ad126ace9b3e55169ff815c9c6b25e5ec5ba3f +DIST parking-2.2.0.crate 9730 BLAKE2B c6da9ea4d8c0a488a64510781b025ce07f283814a09703c58e8d46c625cd74e2c55d7e28a4c09b0886fe4ab415b128bd3114f8283d4c903398e12a11d65489b6 SHA512 184a4514322279ed093a27a9bcad5fce808900a9ebbfb624216dfcb90a5483e8bcc054d82a0bba4da3809364ad1ed0a623328cf983bec3751e4503c9670a3f9a +DIST parking_lot-0.12.1.crate 40967 BLAKE2B 940a112a066e3cbd15e2f6df89bfff37e4ece2194118618a96fa14871813c91798f93181ab0f768d3e1f3d60805508f216724013afb7e3da95678d0d951a42d4 SHA512 07327d3b737a913508dffb66023766348ce7f9d555c224a099cabb05baefd16a28e15fec638e3a148a5169dbd980c4541b0f8820ae9d06dfe0704482838fbd5c +DIST parking_lot_core-0.9.9.crate 32445 BLAKE2B 811d8de671bf6e0911cf0df7dcaee4fb03a3b223173a3bb8cee65a28724eeb7bac87f62aa7b1df5ea3fc93af3cee3ef30b83d06c6773d6b856a7e6fa5fa197ea SHA512 7f0df70f9f1ca8d3da0b9dcc96e49daf05d95c3a995289266b5333f68818d686d32b0c733dfe3a0f62da78fa45caa843a963923b2d0c80899c33413dc749c032 +DIST password-hash-0.4.2.crate 26099 BLAKE2B 3f211d467d43960c1d767111c679d2ee7ca004a14946409e37b4e8ea46848100095bd43ac5d4e4ab31828e6fc09e67eb0b40e677dffb086f711668c4918c8bcb SHA512 f6b7da81fa172ed37229894c426965182be1a445ccaba4351b91ce43ff1ab8cacd205b321721df49dd43ba17dc6a77e9b7cccc3a0c396572aa7ad642af44926d +DIST paste-1.0.14.crate 18157 BLAKE2B 35e8548611c51ee75f4d04926149e5e54870d7073d9b635d550a6fa0f85891f57f326bdbcff3dd8618cf40f8e08cf903ef87d9c034d5921d8b91e1db842cdd7c SHA512 3a793f0e5e773a7f7defc798a4c17ae9a40d715144632ea6cb0a8c785e14c4212046491df016bb9838281f8eaf327a79f01c1e2ac5f26785c028bc880faff9ee +DIST path-slash-0.2.1.crate 8821 BLAKE2B b3564d0f689ad1b943d132fd95adf2ff654b61f182082bd22f7b8f11dc9024cae8e1b9f3551c4424509db17aef899efd3df96a67e1cd588ffe0fe385c957b361 SHA512 c046707586f25f13d2f9fa452ea340198f6d2e6333ca3af806b9d2d1a61d46b033fffad60d1632ec16062fa79a3710d695b923b831a7db52602b728ed31fc3ab +DIST pbkdf2-0.11.0.crate 13229 BLAKE2B 33a9fb386ab9550cf5b8b54a48b8ad4582c95c1de7b15e767caf7b08d5996677f0926b57c556e43e90daa099fadfd1f5bcddec3bf4a48a82e7c71228b5398dda SHA512 f900766e8e84d865670977bbe5816b74036f0c2b3a30df4c8ed73680f76f0ae111472af7aed96524cdf7e1092609c2008c5f40efb9a9c65b3a796b7f3415c087 +DIST peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721 +DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44 +DIST petgraph-0.6.4.crate 185895 BLAKE2B 9ddfb2796c461d2820db8227753113b02024e5dcb694a0bb2826bc1f375f028d8b98a3bd67555485db7fab88eb86043f5b768585dbe0c60703cc655976030a2c SHA512 b5a21572526387af3151dd4f864bd95c94f65eaf0612d96f99926faf646214df205bcc652b98d3b281f2e270779a4c1fdd6a32614ed60b3612e5d594b2bf3f20 +DIST pin-project-1.1.4.crate 54230 BLAKE2B e90fcdc609f42171b18a42626e59dd904555774c4c012a274149d18ee899ade6969c31d9fd706a363ee2d1a510d80d24e438e04cbed5f4ab26b9d645256e2438 SHA512 e378034c6de9148797d874e9a4ecf66039c662c54c263a06413a2ebf5bbbbdf21419e8738d6b2eca6bb5d2043102e52dc6d0e370e7c242830ced0779e13cb6d8 +DIST pin-project-1.1.5.crate 54214 BLAKE2B f4adef2c4f5587ab0523e92b7a662c035882237620fc87aa3919bfd360745b587ab84cce3cd0db24f4f15bd358a46af1cfd196c2071836f4d300be998b6bbcf7 SHA512 103e58f1779cd2d6c63053e9448d0f53edc7f08f29540fe0de2dded1dd0b7de50cd62d31ecaf6cf30b1a7f1f5e4728beb2cab3e40dacf8ad5d5a7a6254527578 +DIST pin-project-internal-1.1.4.crate 28249 BLAKE2B 6d8dae4d59d0b71c9a66414cf5babb45285a8d67f798a25e5521495ae23e983b871bc8f70c20d0785b5b53acf9a5cf734f137b581852a542f98b0492cf6568f6 SHA512 b8a687d1d2fa84bccb41eb7652434036c227268177f2f05a7071b0dfb16672fc8a9762ecac6c4e519478cefe16ed4bcc2c77dd9298057dc42f87021f8e0a603b +DIST pin-project-internal-1.1.5.crate 28280 BLAKE2B fa30a86b1c2d1a66d7e427b04772efb68bfd7c006194dfcc458713b4dfc8c90929e43732e0792a9c33285855857f0979780e854e303322243b7654a120f74ece SHA512 f0c264460bb111ed8d0d3bf57cbb0f6a1adca16500accca4be7e5ec0d292ce6e1319c6b98108c583b85c3211ca1a84a5470f3e31caa63989f52022abafddc032 +DIST pin-project-lite-0.2.13.crate 29141 BLAKE2B c434a336716c9cdd16ebc297fed393e9106ef167a693c4aa0b12c681e03141b8ba3cdf64c310916cb7d5cc43cbbfcaaeb39bb5fb1e8b3efb9e94a3f72af914eb SHA512 7f12595d751d315de6c0d380e2f501b74154661eb676987d2cab6fdc956091a68c9cac658df45dbff73615e982e6ae2ea138c09ebb708cd6c351f0d18dbbdbee +DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70 +DIST piper-0.2.1.crate 15878 BLAKE2B bf63206c72b08a87da7ec5949124bb2742ec0aadb116f4c2ea86b09adeec4f741479b64e92f824a3df87ae9dba07ebdf812cbb6622853f9223f8ed90ee6dc389 SHA512 86d2195b8811bc2d30050e977925a947b175ca674e99497b7202dd8c515e09fb83e42f389ed3c6b554dc2c6480892bfd26c91fee463115ef1c710aaea858afe1 +DIST pkg-config-0.3.30.crate 20613 BLAKE2B e14dd544612f74b038bc7d279d629034237946c261e3e97621d6ac910a12f4fa4e75932dbd5d3339e62325d0ccf33002b07f04b0523f93d2bd3b1a919841ba66 SHA512 e4bce232e1e1cbb17d1c08c3de4dd12613f5a5238f831c2a765b6ede9b494e647d2416a7d9a0c926104e24066dd1b38df8df98a6c55d62f25060f80eb33d064d +DIST png-0.17.11.crate 98834 BLAKE2B 21bc47c7f96c135fed2cf7db902eff0941619ff79e34e439d9a63ebabc8c5967323822446417a87e8c63ff3fed2f99636b86268321f5fb4c91225f1f7db97b93 SHA512 4ff7ad4f207ebedcee68b2b4d8a8ce5bccc48a3931939dc13ba23b486cc1ba92cedfe227fc14a21e780fa74eca8c7dcb336b3da4f7474a475d057b0c98389a37 +DIST png-0.17.13.crate 103176 BLAKE2B 99bfd1c444f5967b715b81607e3c3266fb3b1d8110897e4c93afb5b6e0e28df262f9c9d842aefed922c38a5ff9d16e75cca065d7cc14ddadb3a7e9ea4776e787 SHA512 064a932f4c48c2243286a9b4cdec0487cc976291bc8ecf4753691afdfe43acda4b17ea8d48ec933f309d158df28f40ee93b5b32b3ab5252e2e7aa1ee1c0e4e84 +DIST polling-2.8.0.crate 43554 BLAKE2B 8fc5986db7c34989954bbe84bd69d1f61c59b890d4e5fd21a20f3861bad750aafe2d1a89b3181df97f3659f1a6c980a92e43dcb9ef9e1de3881518024caa6f58 SHA512 c22dc35f39f374f21483c987d43108472dbfc291508e3f5e1d76e2c466f40b396b1ba7c222db5e5a2c0e670e83b4c34e0fbb5c3e93d86435b8a2ebb0890471a2 +DIST polling-3.4.0.crate 56336 BLAKE2B a6dd890abdc3d62587c79188db6e4a50b6af4544df10ae93fa8301595a3679bf482ec5c4f280cd6a313ce67b8ee28cf931d557021efac1a3ebd8c7cd75454c6f SHA512 3e62fa4f498d386dd6710bb14474e6e5e3aa6a4759b45cee16051945fce9710068eb7d36171c6d8108c75b394c01531b031461e8254131b36a5deead1d153842 +DIST polling-3.5.0.crate 56439 BLAKE2B 5a86c9889410c26a667a70a68a0a37f1949a2b74d8256586f0f210a20fa4d4573251303d0282efd63af2809e123cfcc7e782edfde9201d87fd2a542e4eb041cc SHA512 0d9e3e8a2141e1e2796a2a41c076c3e2baa4905b8a7828a52bc557e4a702b600e299e0d9b44c76729d1380975a6654f7a1b2afc5a625332e9be396af15b1400e +DIST polling-3.6.0.crate 58128 BLAKE2B 650221d0589d477a899800f6fd1de0c8c8b16a37fa6d16867e250a5ccd8d95e4814b1ba6c36cb2dce3fbfb089ea0ea76bb61be4906c10c6be5b8f3d595213fca SHA512 68af1b166c7c578fe8d4754122666760c1ba8a206186d38cae3f272ec6d7ffe6f6d585428b023f0055591f0214361d14ea6a953bf5cd1b8b1f2f2677ab66cdcb +DIST pollster-0.3.0.crate 9436 BLAKE2B 5d61b6eeca2bb5eb58728f644cdca2e2090d2b2b719534f55c3c22648c2f9e95ef4b0c42cd0b99aac600f953de49c4001579e4f67edec38530e298a2e3717d80 SHA512 f528a948a912af3d296adbd87fb7f207754fb1464fbad145c906572e205cda82c70c356cd47dc57edc5920e1e4383a2b1fcdae471ba9e35b1733f506e3692038 +DIST portable-atomic-1.6.0.crate 140689 BLAKE2B c91d06e04a87c9a207233d8a850859aa1f5cc43dda8aed34511c3fe9641c27412796539ed045a58e649d2a0c7d71100b6b2d78a0c662fc061fd961a652ae8722 SHA512 b27cf57655a2f1e2d6ea7b45d80b4f9920a836e462f132c50dc1e4d314e162444309de1baecf45dad2defc7a5b99759165e54da9fe759b24092f8cb8755c515c +DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029 +DIST pp-rs-0.2.1.crate 25905 BLAKE2B 6ad747b3a5641c33d0f8815f5e755ab6a0d1750f2eaeab5da69e6b671fbda5ec9acfd3e854655c09914aafbb9f1656c601af080ccad5bba88ea8500090474a3c SHA512 bd4b50ce881812ad6afd3e03d83212ce4987828e379e254591a0ed47f23f16d1b51b555be9ebd347096ca85f6d75ee7a8190564a20383ddff57fca8993483056 +DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a +DIST presser-0.3.1.crate 20946 BLAKE2B 270c86e5b21e660c68fc5c4f6780371041dcb161bc2c3044e80f16bf9ee09bdfca900d2b7813679bf44ad00147df457f73687dd822e8a2af3a707f63bda553a6 SHA512 d21b42169dd0769b2910b04059aa9b920a98fb6487184d61de6e94e1891e49bcf75dd89012554bf2a5fb748d2322a87b24d8a733c34f6294b07b00fd76cf397c +DIST pretty_assertions-1.4.0.crate 78846 BLAKE2B 68583c49f81ab0cf5b90f6de10ef3aae9b525288fec25f9d006f2eed0877c0fa742dad5f878fc78233b54c0cd32dda7ac1f7161bfb475288d8858e8e40aa9e1f SHA512 f76d38c787e91b3739272e3bebeb9763d312b85a43cda5e1311ba8d6b0e4da1ef25bd66208e772b1cf56a34553ee560482b5ad19c5290608b2aaf9c0d0f0e995 +DIST prettyplease-0.2.16.crate 57630 BLAKE2B b3548f37a41d1bf46d58e84297142e8d3addf6134e39c07b7fca809cd2f72004947c31bcf7ee2aeef548bc200dfcb9c888e090d3a96f63289bc15aebe1085075 SHA512 f542640f809de6aa77d34d92d9a4454ef2a92153dba38ab41782d9a3fb73cbae2569c3163c21938b908e666303631ca9393ea1166c7ad5e5970145f26238c79e +DIST prettyplease-0.2.17.crate 57713 BLAKE2B 22cd81941d7ac701ec90b0d24946c4f6c12ae48e90500c58a95e8b04e1b3515872110ffdb9af18c322d0465fdeb4e75c4e57ba987b6e7d904115edc91b6f9e88 SHA512 8d67996d928b7ff6415f067d7bd20c5230f459f4e7f6e2a852427b19b91567e5c2c5bba33c1e51de8bef550a6430ac548156dc0fb5a2550715580b50334ad565 +DIST primal-check-0.3.3.crate 8720 BLAKE2B 9c7b5273a5df414c57b4104b9bf795b853b433da3a5d91a1b878ef9b7cdb6a810572dfb8fae11543a106760e449b886f6e10a12347f043171f5d7947b30f2b20 SHA512 d56fcee65802b1ca272515589574786dfd066099c55a536cb1076193242859074918651c4fa3c1a7dab4fd13ba91c8f6a2a5b0789a6cd24faffc092edf27d75e +DIST proc-macro-crate-1.3.1.crate 9678 BLAKE2B ed617a1930bf28a26e865f6477229566a0c4ade7f2c1e8f70d628c5536985f03c7533c561490415e207c0f58b4885367e7f54ddcf10b058711829f78a34d68a9 SHA512 5306f017933ffa89eb6111ee00b0536179c5cfab56529440630a0bec86b62194ff16f57ebb471b233e88cd886b7b9871de8402ed29073b23e5ca98193e513659 +DIST proc-macro-crate-3.1.0.crate 11084 BLAKE2B 9a9d02f0f34a30668ba94e34d51199c332209c47fd8bef28c452924f75984dcf3aef2c92c4ab3fb03205d589e4f773d960064b4d08fdb2480168f10b84fafe98 SHA512 eb5ad763aa700f2cb1604c32a4bf2fad499a03ad868a22d06b0697b77875b1cc13c739fcf165b2bd547207ef6dc3bd13ceb75e1a59c596daf916f356ed27d8e2 +DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43 +DIST proc-macro2-1.0.78.crate 47158 BLAKE2B c56a24fce3faca9e04db7965cab552d2a976c3764df0a84179b5a89d1230ab355c777a82b4c982e3945414f1f0478473a88821dd176c32d6de394d73a26adb9a SHA512 11956fe03a2e77a925cdff2c3c8bc8804dffab4fa1de963a128fa23f4189976fd2e2102bd346b92c33524beae320b71dadaa5213695a3ec638404196e14fa769 +DIST proc-macro2-1.0.79.crate 47200 BLAKE2B fff8e514d618b8ef60d6a4ca7610607641cb25701fc5e8452e0db5f942a3c38c724acbbfb0474823fe0f4864df07958c1524383e7640105266608f1d5a741368 SHA512 8bfa6fc1022556cbabe0050a37b93c5ef1056ebda9d3dd368e705a7c695df9dfb5cd5adc18ad1eadf7338631ad1d5ed6f63f0adff3616429ef8c50a930b1838f +DIST proc-macro2-1.0.81.crate 48233 BLAKE2B 94319064772c757b6bf57eb9e759e827454f719d82210271ebab9c6ee4ecfddc9099522cdc8595123efe2efb64fd50eadd7e31419c5842ff1cb8fdd32e8daa0c SHA512 7edec4b786d9fe076ced4fa5c0d369c163fd1c27c895431245a8268ab2e16665b7c0a585552d46ceee6b8103979a4201f92abb381f0e678128abed359f514de7 +DIST profiling-1.0.14.crate 14259 BLAKE2B 2bfbcfe1f90135fe032ddff58c172bdff156674a1de94b286f37ac30a293b10e818d45c0516223a33d428f2886dff414f8e58f56cc8c2da436cc6afbc584ed63 SHA512 a25f8ec03c784126be2106cf478284002cec48b4969e1b959418262c0e2d594764b98aefe0d25d1244ad9c27080e15e3633d6eebfe3342994199964678f24db3 +DIST profiling-procmacros-1.0.14.crate 5958 BLAKE2B 510fe173c8b7c553af20b6eaae0454b3a8a01f1657bf15082f24271295dff157db1f7008debe234bbbafef9b6727651d0e9234bd7b10b91b1c1442a2801d5c4d SHA512 1fd6fd545b5f1e7cabd59cde635595d60335ef2e558bd286296e57747f347d9340196c88cc5eb71748f8510b2afcf4120bc81a01bc2937bcd52e4b7d632bf9bb +DIST psl-types-2.0.11.crate 7959 BLAKE2B 287a71add0c75af1266fa1e4089da8f82c8b64e3ae1e880b3a71ebef5fe43bce3bf50f6378a228e131cf857a4cc29f3ff37c2b08b62896196a3e86ef82b1128c SHA512 c609f6a414bc1f5f98c22f9ca73e3908ddaf10e33ef43f408ab8ae2f8c544c0f70cc1a73b1fcfa20ea53f2225f60922f6d28d2e5d31a9877550c2ef3520ee2b7 +DIST publicsuffix-2.2.3.crate 87807 BLAKE2B d2ce617f07f34e5d01cd3257c53c77441dfa537d827a00992cb9e2c46531a0523b506350f85401bd50fbaa7a2af9afd2dd290671dff4ae407bcd6d8dc725185c SHA512 b6455e8d657df9f9f6fcf8a26a26b8753450b53f1ba92bef637886b6ff2c1e0273aff96f53e7fd0c6a9a495518be00f6d8f05dab0c1d76ae7e1d8481b9bbb8a4 +DIST qoi-0.4.1.crate 71135 BLAKE2B 8b4e2ebfdd6df425efb1326912e8db02258e570320fdeef465aa8b03f3248cd811bedaa17c15902f851083cc1db06a2b500aeddf734345eb25af0d835300b2f0 SHA512 884cde33bfb2d02716daa5f309890093bdb7b3f53eb06aca0b6eff0b7a66fd67cb8b9acd510d19e3ae7718930add971e871532a1605e4989639bf72f59329377 +DIST quick-xml-0.31.0.crate 172236 BLAKE2B b83c7f485a30576027a4ae77aa23cd6284942d786f0f0a14faafdfecff646371ba15133b3ba90f820183c8537c8ac47ad3e1e7deaad65e56761bc662be406026 SHA512 9b1f4f9c32694ccb244938a9a4e9373c3902314afb6af5d2f6b1be55e5ec63fee5cf1085f8f32161570cc10fdd96f3375c7564b1d884bb152542b86593f175de +DIST quote-1.0.35.crate 28136 BLAKE2B 81424245e1e2b94459df68bb3a9a866c6a364102b5e1d010ede9c5f8278f8406d7b651957d091c5914e936b494b0f6e9a6a1dd8b7d35cd7d7100f86dee4ec12e SHA512 f5314fb6af17cf36c228e1970c569c29ec248954a450a5f90ba9e2896d04f74904c9cec5a1f74325f2489295a94491eee4ce8fb461e22cd4b34e53f1f881efd2 +DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685 +DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2 +DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075 +DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79 +DIST range-alloc-0.1.3.crate 7664 BLAKE2B 19c453738d48d09d0e076d3cf833a5cec2721627ada1e88eada2a4a5087b00dbd2784594e63c379c2d15977696a83bbacc6cda76e9bf37ca29a20f73ed082781 SHA512 b165ff007057143e1e68e8ccbca955364749cb45d7ca6aecc37c9099478ca3d954e959685941f0e505aa1cdccc9e25e43131c18d3eb447b2486254a32401653e +DIST raw-window-handle-0.5.2.crate 17063 BLAKE2B af6170239d2a2e9db62ed9450cee9be6350fd8f74d6344ddd76acfa873d124996dd8dff798a79e8c03fed50fdf26b2731b150bd20f8dcf905c8d68da351e0861 SHA512 51d93a4609533742178ab15d4454ffca1668e2a03c2a6e742ee2a61554564c74307311a50e3992919451f4f4d30ac112284413fb4310abbf06c0fa24d85d5971 +DIST raw-window-handle-0.6.0.crate 17224 BLAKE2B c4a38ca8921448cbd8430aa2f97acb9d27a006005ebeeb5de0823341f84fb95833c16b3b6fd6adc67aa70482d082438df9a14fac9857e1ddd630191e275f208d SHA512 bd029ac635ca18e8e041fb868c75fdeba9a4540e19d10db614cc14a67b76c887476954f4aa3b42f9014ee07c5d1c002ba9c88a2a7ec8c84a1589bd71bd65c4eb +DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3 +DIST rayon-1.8.1.crate 170448 BLAKE2B 982f7ba7d6a43956e6f438921fea2e40d3b398f4f72a4c89f55657aba6aa0d99912a7240b1c32c1dadafa9852adf440e3153a3f0cc56f6582867fa2794bb5144 SHA512 a83304be8334f5aa1c63468ddc749d8e8124c6947f1472320ba0bd4351c9ae582dba31ff369e9efdafdab439571fbf91b497c2370ec15406cfa810f5161cfb32 +DIST rayon-1.9.0.crate 177770 BLAKE2B 34e20aeb82a548bd80b8ab3faf8fd870201ba3d67f9618e5493332a3c43bcf1443c027b8ccc76cec8df6bff852434531a01c8490f829f57df5cfbc3d8a6e8a42 SHA512 c9763503fb135eefdebebb82d4d19d20e48a182f1125030a7df085ebda4184942d9057598194ab8e8d39b942c83c231834b10a677e89badb6305a2b571fc1abc +DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e +DIST realfft-3.3.0.crate 16539 BLAKE2B 938f007e6857868c6618e70aba4513f4540e832558625119b2fd48bd5f55302f7ed93fbc3d5e1427a8ed3c91600593aa879ca00c33e3ba70599a1354c82e4563 SHA512 daf10b56580b486dbe8cfe3542a77f4a230f1cd19c7b057672908bb2db685b5c44e983c5a7235f404d5780ec9b17fd0e620049bcff62412ad6f093c302744e46 +DIST redox_syscall-0.3.5.crate 23404 BLAKE2B 85aa4299d9816666bf576f523da5cdeae87b3c8fbb2af103e82258d23f73303c068a4b6c3ef4117ad67958cb31e41f836a9f59f2ce1bc52c23605e34399afcf1 SHA512 16f8f4766932bb54e4740cfdb4f0802f76246c0bf88c1d76c69c115949b124b625d8c3b85d8947073c2e9544f425aa16c10f71fabe3c03d29e424c47fe4ccdde +DIST redox_syscall-0.4.1.crate 24858 BLAKE2B c3301137a0b84e03b09d28dfa377ab3bea74d574a08cee21d35713b278d8b5b30ca2a1d73a0981baeb4644cbb88c86c8eb15ab3bb2692e38b93e6b35fab4e0da SHA512 073ed9d96090cf46eab9877742277a013c62d8da86d9caf2310b4fa868af306511936553579e01309f27067d344226cc8dc5e3aef01d9b900da2febd33848f8d +DIST redox_users-0.4.4.crate 15438 BLAKE2B 5f44e9ef20f1a6c8b22239838f8f6a6648dbebd5b4386b3a2c417e39add8c4a0dc32e4369b8bb4e0ea17678140f596b9bc981b1d56f06de6a38a503600420481 SHA512 7c208116d1171b1f52f22aedcf8ad00076a3d1f062f4018f4a9f5fb2c38d7ed83258589062d1559f64e43f3e2a9ddf789799f57cf87a49ad8a37463ea09aa269 +DIST regex-1.10.3.crate 253101 BLAKE2B 390ebb00bf5430048412883b672d80737e783fd36f40895343cb38ef2e26e2713418c2fb4d66792bfd3be4c990b4518ba120de229a72cbeb7fd5c2af325fbcaf SHA512 d090898465013b0975a6de87fbdcdf76b4896578056f4da83424bd5e7832547a3d8ace643c379c4f14700a0a88dc95950a38645508d1675306c377879a90cf5d +DIST regex-1.10.4.crate 253191 BLAKE2B 08bdb925efbea1ee9f885a89ec6b4692e39d7b17039f788e5b3c1dbfb7847d4f53b67f0c61e4085af7ef4901e67e33ea94948668bf706fef19b4102a06ef0447 SHA512 88ef121a51759f418d5dc01607a6e02651bd00343dae92962c02a80f30343d3f079a0375457780ce46bf205ca38f279b03989154638199fe2fcede10554bf21b +DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f +DIST regex-automata-0.4.5.crate 617406 BLAKE2B 21826731ed5439a12cdda5a1ef217dc3239a0884d038170855985bf830f2782bdf4dbfd1b1a8812812db3a2399dadf8c173e75db635dfabc97382fda0561bba3 SHA512 0e9681d5c4529d49ff2555b7b73cf234b1f321a7fc634beccdf76c2bce5094e8501403e8caee2b3a16ac299cbe4701d891f1efa380b54f9dc2d92bbacd4de611 +DIST regex-automata-0.4.6.crate 617565 BLAKE2B 8f1e2a3cc1d2d50478776281d2bf10164ef441dcf7127994f4a0341ec40588ec8dc1c07fdf9f670da9e61a7753551500b80314df130370b61d2c03c2b2e3135a SHA512 b288e1facae2612f73d3de3fe9fd1af13d337107004f990263abe6277b31b948478ad9c2b807dcafa73fa565e48bdf2113139f5ca67eb73165b7d29e2ee5c9f1 +DIST regex-syntax-0.6.29.crate 299752 BLAKE2B 2408ebfe5f0dd6578c33f18e8ea9a0a7a84388420c5b67adcaedde477f3f67fb3e39ba9fab1f6892c7ae7fff754c4aca51314601529cabc6a8fc43af38a11f88 SHA512 28a58950d15df1f0ac4ff4185c05b535e8f5bf0b75f79fad24e40e17a02570d1c9bd9cfc919eed8756a1069bc489c5fdccfd04f6b8266c83e3412b7b4bdc262e +DIST regex-syntax-0.8.2.crate 347228 BLAKE2B 211fd1c35ad0f28874d4b4d276e0fb0a27e5a1608f2f16ba2333641b154624e378419daf8d1c955f21ff5f40f6d49c89569b7e11ea5649850846d0fe447a675c SHA512 301dde555f300298f2594490ccd8b92033e4917fe9b8671b8a97db6c827793c73969be85a92999964dcaf3177edda51abeb576811ad6cab9772964dc0a77e728 +DIST regex-syntax-0.8.3.crate 347497 BLAKE2B 9ac2f63098ffa3fff51fe2bc0bcf9ef164cf9389a909a3f0cb668d2598e7ca65d573e47d571ee2e6bba3a1a96ef7c298b8d681e1ef89c8c53b7d590e0e22839b SHA512 925f7bcc50d94c65d34fcc770c6e58dd5b8a045541c0109e77b8efe842eef4c110087ac9c0f86c7c3022ed013abbc5c0a187d796dce292ad5361a0cdf7153d76 +DIST regress-0.8.0.crate 258285 BLAKE2B c0c8619c940e59ecaeb40099ff1cd329a41c417954f1f7f17dcef8583cdd36e6cb555b72e06522e59ed564da33f9210632ef769680625cdd74c0a6ead01a4c22 SHA512 88cc78d41d144212051b3f8d60eb4b3e6ef0d654d27f40ede5459e683b8ebd0675729381062b8091f4a0759bff5ed934b921d4bd65ef72328df0b0b7bbdf2be2 +DIST regress-0.9.0.crate 328998 BLAKE2B e859a63295a6b57b50fa012207042d9848f5f09f755b9b72ecee46c80ea61c7b3a74c4ccd39cd18592f7b824a1831d96dd80d308f0c2abed6a53f422db725c30 SHA512 736b703c1b2bf6f86e94fe24ef5a2559d9fca4820c54634ee157f812288039b008bdf8b02bb5322ffb422fcda010cf6cb95b41bc03c9866ed76c28efa7af34b5 +DIST regress-0.9.1.crate 329053 BLAKE2B 9122a30c7c3c2b618dcdee2d7a7998f179cc45e9594dc16c9670b32361dbfe747b5461e93e6adefeb39a1c1eea47ee38e30f54f540de6c093465974056be441c SHA512 24882c0867ce3170469c41225a140b836f9e434942020f034c97798591632c2df91502ab454f0062e37fceb5a1f423132ca25ab1ad4afcd9d987b668de8ebc26 +DIST renderdoc-0.11.0.crate 41192 BLAKE2B 07cb2ce7c54f5edc46234c4e79601382058576f92d846a097203891958c4a9e4632a5b2d6683bc1b505ab3ac7d0a1076452cf64dbd5fce87a0fe8ba4018bf568 SHA512 7cb2297ed028b3dbe799755739c66c4c1f320657628ca3ef881fc9908587218fa77922ef20b058098f0ce538e235253c801dbacfee63362053a325de7aca90da +DIST renderdoc-0.12.1.crate 42334 BLAKE2B a964705c16d7cf30ba15740b5cbffb85be8511279890c8a19304e55d832be1a50a7fe3a0d39eb08794fc1f3f51ffe034ffecb717cf0307861f8e47f04666f61e SHA512 e6be1af1828e06a8413b9b485000e93b89d1002dee7b43df4baa7bfbc80b2ead98178b8418311d00f565d1a3412f3f8026a4415f94ba3483c8623f458964b252 +DIST renderdoc-sys-1.0.0.crate 10336 BLAKE2B 9f9b0221f11376093771aa9d91b2122a60fab45ae3363e38a778b2cd647729f6ac8df4e79049079ad1e84b4d60b362b5658f080a91abd5939df11c482c060e8c SHA512 a9e36c82853edf10e143fde02359aceac879ca42d23c95a3a7c66e99ef027a6449937136c9d1c90efc1cc542aa532513690fa235e7cfbcc59ab951c535a26890 +DIST renderdoc-sys-1.1.0.crate 10366 BLAKE2B b8a45b84ed2d258c684b8056eee7f699bbf2381034aefcf77df0481c3f07a0705b46ab89d462d515bec752f22de689ede3535be5e826a75b84adba54ade51abe SHA512 a9535ffe9fb0a7c38133a834419f5b1f9b866e116569e0f31f2238145a63e1392d4f24186504cbf40bc67521842c1a977c0dcc53f5a12f45366b6c44484a64c9 +DIST reqwest-0.12.3.crate 168057 BLAKE2B c86a11a8f27e0a363d9aa8b5018fc1383f60f7098c31e3c550d2ebdb5eb5fb9ee080a54edd7e64e743d254e35bff7eb2470037d79a5c15e7ef578cf8f08fc985 SHA512 1e9db7af229e5f2ab2177adf23a544a6024460a57bd5832f585db513d6124f4b42ee97ed8a3ae3c70cb29abe63a5e7e534a5f834042a8d35c4fb97b37bc83c9d +DIST rfd-0.13.0.crate 49679 BLAKE2B 1dfb5e0551113502fa9658029113fb407da7f921942be09259d065c5ee0fee596f4c723daaa9006571c21faaa44d7514838810f7fc0d9149781a07595c14d0f2 SHA512 8e4db1561a361fe487efa7c1da85edd89c1756dbf9c5ac3b4a9729edf663922ed0b41cfa6cb0d237a9d7ffb27c385ea56496c3483fd7e7d92b944802abe0d627 +DIST rfd-0.14.0.crate 50275 BLAKE2B 004ace61b0dc63cc496f503405d83d932da580d943aa62c4bccf90e5e93bd859eec1e4b87922aa29e8e95a0fa0b3da4a4eca50d25d58f3a8ebdb6750dd04927d SHA512 ef41c6bbca4f18a057ab4a4c2cd88d86c181eac82d203f03e4c8a9f68ea3e9948ffe59ce3dee2a825338fbcda9dd1427b0af156dd03b327fb6513122f877c3b1 +DIST rfd-0.14.1.crate 50342 BLAKE2B 605a73c7419bdfbf67fe05307ed9e7105c5861640e9adec59cb0b71606df94953eea8c2d96d4a3813af9b4a750566ffa558199ff8bb1203e579ad9e226dd9bae SHA512 ea2b7182a44097161a5d6d99f1b770d38539c8d7b34c2c4064a8da2e5d8440a242c6f658dc0de82b82f60c4b43a52c6b7d72ad5d930248f7871715a46686a8c2 +DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358 +DIST rle-decode-fast-1.0.3.crate 62086 BLAKE2B 402d56595936734f36597c18e816a798ade6a8636b27e79acdedd4069da38e22e6ded5f2358ef0f0d509ea752e828fa294a4a9ac6d99cf26472fe21a505302c9 SHA512 f647cfd9ae0bbaca4a189cd1f8d1f8531f6dc0ffa1fd296c75cfe405fc9060e25be74581558a9195364ea90e32c7ccd60e066d21704cae836d41606b5799301a +DIST ron-0.8.1.crate 63251 BLAKE2B 9d9724cff8df112c1590c0e66e897a277a7bf8a180849db4e8834151fb53639d424e19124cc9f3a5c4f977d49c824686c73f337e9ef0f0355acae2b1b43a4d14 SHA512 d0d9eb18632c2458dd3e8fa8ff365a818e5214c88a19c11421c208c31ebd75236bb20fd74ea84942f8e71bfbb02d660f965dd1447318b5372bd16d45d11fb920 +DIST roxmltree-0.19.0.crate 53547 BLAKE2B 0bf23bb050dec29cdfcd66bb231ea81caab40aa54b015c5480fde7dac899128438ecfb10d818dde456db8ec4cbeebc7f32f3c8ff17594b6a78c0f04f0361555f SHA512 c8eeb974d797316a8dc332c4068b2850eee124a13b0792cdc8acaefe521d8b40161f9159bbfee2866ab2c4f6133ceaaa1b5ed704a5f0db5ae3819d76042cbf36 +DIST ruffle-nightly-2024-02-17.tar.gz 89135416 BLAKE2B fca2fa3fd363d2e660f149c4e13d69ab223b9b4cbdc71c004a286fc98beb7a6c30714b2a28f3a16e00f36373afb98cffe37f5d6e11e6ff6771ec9e0c19d2e7ec SHA512 033799805943bc5b3187996d3f475562612c32aee29e18e494349baf39c7ff18e07368c39e42a5bd0ca652592abad7453fbcadaa32af71e216aadef7e50fe395 +DIST ruffle-nightly-2024-03-19.tar.gz 91196452 BLAKE2B cad28d50999d670c153db5dc6db4243e6162b83d9b68c0c87dbd4ea80a413c6b785f84397aa841a65adbd4bf76fe9347a30895ab1bca4353d334baecd1bc42ff SHA512 264e9a29ee0959e2ab66e4cd00db1b48cbc855e205cd542d16789a1c6033658e2212b9c03023d68f2aa02fa80cadbf9411faab272e843c17b3fbe7921451a7f5 +DIST ruffle-nightly-2024-04-22.tar.gz 91389255 BLAKE2B 7ab6a7c2bbaea16e7506037af2e7461d5ff28c283477254a74f7179e910316f8bf73ce9ceaa26fd82c4d53542c26b88617870861db5c9bfe5be6e37415aa75c2 SHA512 9b59e24ce8e0097a052da4506deeca64d5cb35850cbae4cca1938c0ff0f69a202313a6fc2bc8a06e5109aa92af6a6ce50da843c1b578980caace975ca35e3581 +DIST rust-flash-lso-2f770555ea49c6db49c57c1dd46c7cc686e8dacc.gh.tar.gz 688059 BLAKE2B ddb791fa4c455a21d0de0c7e27a61658517f52b672d850a9da08498bfebba4ae054663b9171722617051b61e7a962a2b90be04ef168f53512a35f58ae9e84104 SHA512 6c231443267464760fab0a534c7dfc5cb8bc45cc722201133bd178eb40785ef126341b8a61b80813f6532142290ae8f7033994834f933a3fd0fabb6d02ad2a74 +DIST rust-flash-lso-2f976fb15b30aa4c5cb398710dc5e31a21004e57.gh.tar.gz 687858 BLAKE2B b7bab3e5536c9424964a84ef2613fea9c0bb325c4082ecffb38963d999b0269bbdf96ee91a12915e91e9fcfcc7e4a2e61dbf036cdf9c981a0d8439c989fc7d27 SHA512 2de328130ac33141adf0b562e865e956956bc6167fecb6058bc6d549a8a1b8057616c9bef43bf98e025a673446122fe5ba3304900d020e19309202318d9f966b +DIST rustc-demangle-0.1.23.crate 28970 BLAKE2B 611d2e41a8a9799db2f8bcb8fc8fefcda361d055a417d2bfaaf2dedcce9d6f388c69d905a28c65e6691b4d408d7922ccdc97ce524c87c3cccb8467e314bc87b9 SHA512 8cd29800254b1305ad50f1fc008838c52d9659f97a51a68e9f2bd6d0a60126f3ebdd1c79760f96445b3bf998d0773526ddf663b174acca81babdc0b423247247 +DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544 +DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db +DIST rustdct-0.7.1.crate 41849 BLAKE2B ee952bade816e4bd1fb44f8b95288b5b7c34efe8b2006905ce62f1dfc1d6f6f33d2d9da45d1b32d9ac2cdcf0c3011a0588c56fa84ead89f3c5f0ed582a3ae849 SHA512 6679df13888c1517fd8c8bf458e201b49e1607343f04a8eef1ccb39a1cdda673bd7835452a6eb06c83d4b3ef1e831acf24561721477985d3d52be931ae4f6493 +DIST rustfft-6.2.0.crate 363170 BLAKE2B fb77c741b16d7dd833901914e91e5fdfc297639a91f97e47746a19b678bf12bd408327635f0ae3008113cbdb89b4b5ad606f55f67e835535837f560ea1642bd5 SHA512 c8f4bbf66f3c7c990af36bacd65240bca2c6334cb7139a3f92790e66ffcb5ea62757a469a7aff56ef602a79ebf2f860dc017a1ef8bd5a896f8383183f3b179ec +DIST rustix-0.38.31.crate 375443 BLAKE2B 9e8ba6bb4eb4fdf0bacfbc719124f745f383abbabfeb161bff9908d1948942d358f46191377b90c180a2793a88bb01be20dab556cfabc8da8efa2533af8e460b SHA512 593e0395a7bc5bba949e6f2a5ed9e39ae13140970a598def32ab7d6d91b4ec100752fb05abda407ee2e5e420d950b19e607f963f3974213637423c751df75960 +DIST rustix-0.38.32.crate 376999 BLAKE2B 681ea50f5405b3a749a26a481995d3a85800378067734bb857e32e5d3764687b0da4b3749d227174440e432b374ae9ada154a8288e4353ca2ff1b851698477f4 SHA512 8f028b4df785aa78fc798f3e053d0a4fb9b3c552a47f66f52f1666f4c1324441be6581ed643c4ef0f56d92e1a078c6d3b45be183fc3df0ed1fc89de0d610cad6 +DIST rustls-0.22.4.crate 333681 BLAKE2B 01f84b7f44883c807d8651b6058647180d6e9d48deb51fab0e76d7b587ad11face13215170db3bb7d0216505eb108438dcc3bc08ed2080816401f3955f73fbab SHA512 0b62c741b73dd49dd9d5531c9ae749fc8eedd4a396c5b4c02b1b33062d56c84e327e12f5a984b9ca22c7984103896d4ac69899032397dd6eac1b737e0647e2da +DIST rustls-pemfile-2.1.2.crate 25928 BLAKE2B 790545dd6347badda8f67bbe67b8d4d7de9f24c134857840d7ba2335f2755cf03c05b26c16c8b1e397b3257cd39a6d3a333103c2c3ea32ccf4118bc3d42995c2 SHA512 35127c68250c31f2fd6924355ec37d5318d8a86ad38da48e68b3ea6e241deeb019eb967c510e95230be6d6c3357b0a85aa022942d21a50423632f8e2496177cb +DIST rustls-pki-types-1.4.1.crate 29437 BLAKE2B 82aa975c98e9d583ea77e6811fb6be7f7f35b9535748e38ce67424159f1a4147b0f0ea690312151a331a03b446b7aea60c13490f3ff12ebe6e9f3369c9116337 SHA512 abe47dbd2604fd4db0df59412ec8f44b6dd2cb9bf5d67e01be6c5428daa3924151d4d996b33af387a31564cbe29e1ec1e9ea1a0ce98e7aea19d8bd7dbb0d66fb +DIST rustls-webpki-0.102.2.crate 196881 BLAKE2B 783877064d2cfbc9078d33f081b2b1edfe43218184e60a8a3b3917ba0a3ab97a226f677d4bf4addef5d19d29ac63a8268dab5bd3cf973d64df866e3e71492f9d SHA512 697d44daa5e0a8ea2d12aa6f68026eb63a6e1c4420ee92656c9479df77e3f672ca2525442be55ab6183111fe594ac85661647150326223129ec23686792f6014 +DIST rustversion-1.0.14.crate 17261 BLAKE2B db30d01914059a893bdb4c448ed0bf04852085c2d948bfbed8819a1d2317c34133cf609abdd806ad628b86974a9c1ab9d09f79743cb8e13257ef32cd444f49c6 SHA512 466d753c28c4899ab3da3e9f3366f7ecc435d484f51e0c07acfa5f3367af0de27ea3bc75efda22159b4990c976b1466a27e7c31c834c72a87d8234318357454b +DIST ryu-1.0.16.crate 47351 BLAKE2B 13c72ec8aa608f6c53cf27c95d06b90839c5bec5e54b0441e9c4f779af3dece30d01a2276c717a733f92406a5a02b09c045b2b5f92714fe492d7263b6c6808e6 SHA512 89e3e18346ae6e4035787766f286a6eb62f5294e39ad902cc29e95c53781c4e5dd629f567f22ecc7e9fe9d1c273323da9b867aadc9cd8a066727c58330b51b10 +DIST ryu-1.0.17.crate 47537 BLAKE2B 28408e17a4322f1afb6f21bc8d7328c39d07186de4d464f8e9bd63a69757cb4af61b46e558075e14836f310f020ac824d5ffa616fc0a5ffba59b9df0bb66ffc4 SHA512 6dad725c4fb2d3a33ea30107b63cb702eed56bd2f3c16a72265f648f5aaefcd3d5a7b919b1d037af926cc6311bc68ba58c4e0483da2b2e2135c6a7c2d6601af4 +DIST safe_arch-0.7.1.crate 76930 BLAKE2B 7083fbf6b390dd238f22c499b725cdeb21fd07fe1b17a6fda183ae2cccaec22659dc6c154f4b0dbb902648588a77e0c457c79dfbe3f3fc4029a912e2fb1249bc SHA512 99c9c076c046a29bd8c6430b41ff37e3604490b9cd83ce69edd289ea22b511f1e70ed477164d5edae650fb933a7fb01713ca7a5b3dace5df793a4e80c3154ece +DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c +DIST schannel-0.1.23.crate 41667 BLAKE2B 3f34ecf4cc519f5302f0ab5207907a275c68e6fcbb47630aec4ed5d5f1a1cc7475f6d7a8c22361e9878002f9f54314c1f630ab0c1f77ea309714bdb7ada6c9af SHA512 dfce25e3b8bc09d8dd1fce2783fe02ec83f74697cb24aa212ef9369a628685ba488f821cb3e5f863798e0e59995038c8d748f74b89f7929eb8cfd804d5066b84 +DIST scoped-tls-1.0.1.crate 8202 BLAKE2B 20be49f0546691bcff3f0fc257345e432e200836a60b297ff3fe698699ef6a2fe8a5dc6977902a08f7dc63c578aa27607dae0f1889b849c257c59c48a458e1ed SHA512 342f43d53edd33ea3e2197faf5dce37bfbeb0b20b6f0febad4dc6244c3185df127b2c10488e95561260a0ef968f32707460f2d0d23667cebece19b167c0a0c25 +DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb +DIST sctk-adwaita-0.8.1.crate 53712 BLAKE2B 2d54470cc5b8f3c6bbca1cec1760c5e647973fc1b377bd0397f279213e81d792f0ba31b6b81dd84599b41d93cfd014abba890febd9987c94ac6c6fe8e139bb1e SHA512 7eba66a3f4f7d9f5e33615d0c1245c211e599106573c8d68e7e6a07a9d297261f0a01fd31b90a3ded934b4082e722ac93a5004acfd56e0aff280597a715d58f1 +DIST self_cell-0.10.3.crate 7308 BLAKE2B a7297b9926d4351d4235e5fcc4084929751a0bed37598729ac519f23150464b6369ac055d3218f3ef101c9ebcd7b1b74e03581051d773493e7ff5f11e369f06d SHA512 4806034b1d28cfbdc1d47f32ca0bf9c5a87903d186bfdcab7d79664a1604ebaf8f709ac9e618af81323b247d0eede1e7dd8b113cfaf7a602250aa689bd2b2b6c +DIST self_cell-1.0.3.crate 15147 BLAKE2B 9b53b0568dc4ce0c7372565eef14e593aa25e262d7501da6e4b8cd7807f5385977f9bd3563ed39a6fd4e07c824847d0c09a2a750024a800229c7a57ce5e8e325 SHA512 89a990f8a59cdbb99930ebbf9bb6566b77f03f1f551e49b207c865e7205541fd9f0342d284aca5f3d054a24520fd438b6c53baf48c43fa28dfbe8d79fe8c7e00 +DIST semver-1.0.21.crate 30445 BLAKE2B 1c779c25576723ee7e44e7c831eacc5dc6bb33cbf051bd0748f688573e01595d05808cdef4ae48a6423df15e474cea58a0664ad7fa5cad490a61f89473f426d7 SHA512 bc3ceb11f2b729be086120c06ca2cefc34c5141d2d4af64279b0868456894eb9097b234b326249f2aa83d8b99086fcac4c5b7ef4a1e14b1198ae808fde245c35 +DIST semver-1.0.22.crate 30446 BLAKE2B b77a951d959a3685b0373c80b9991a8567f8926d093b23b7b8fab48595b5d565acf7408fbfc8f4d58331f39e316a8068885d28bcd70c1476d1cda436a2dd88b2 SHA512 7dcf9b6a02650d71d6c9ab3c29e44fdef95af296208f26aa7be6fd6e16773e5e5e66418c303a0589d1165df6dbfd46ad6ebf9eb5b3adab25a51f340947b2d949 +DIST serde-1.0.196.crate 77097 BLAKE2B 22403615511a7621a9d8d54fd2dcc63878cd2de0e43bff6b7921db85e19f34ee5022eb1086890edb6987428cbb707a59277ae007d1536b5d80a7da615fc3f36a SHA512 0917aa36d855ca77726d538fb7fcfcf629722c784d747b3869c0d69444c447d7b1fab556a9eb9594ddf6cc508df636fdde051a1c3909f9c691e4921946ebda19 +DIST serde-1.0.197.crate 77087 BLAKE2B 4a4e04ededf5fefaabfcc4e17457db823239e8eeee7631a905ed47800ca10d26a93632e3a9d1b784b83f84168d0d649cfa2e6f5f1e68ab15a68e837cd5b6c699 SHA512 69e42825fce6a0a5d109979785daceacfd6afc5641e202fe83da32e2b1f968416557cce97fa014839e873e65f85c27494c8f8e20e6e9e4fbedf20d0291880410 +DIST serde-1.0.198.crate 77577 BLAKE2B 10d18e00a17f38e6eca67f78a3df6bea777053b4c510be7fb89ecde7d0ac2ffe37399031ea0cdc6113a0b80f8f3f1095271bc6aa3f2147e2d675cb3f5df713d1 SHA512 561e4ec8858148e9cf59f1b824c489ab259b63819e6b031205db8d89b30a5b0c12c3828fc587cef67316d1b9752f3618d089fa21b3a27cb87a074d943f27c7ff +DIST serde-wasm-bindgen-0.6.3.crate 20941 BLAKE2B ff2dc32e650e815772555ecdadf69c6612dbce7084c5a2f0fcef02b655d907bf8f93f8762b00765b14d4d5ce01a2872fcdecdba2f9dd8d2a1ee10d575f6fba3b SHA512 c2f7ee9ceb64fb6fc4d653946f23bb0ba2e62ab6cb0cfb870cda451251e721546f484e5a70e4d81c367dd6880028c3625366791a0011a0b4ed8af99a91d184c8 +DIST serde-wasm-bindgen-0.6.5.crate 21098 BLAKE2B 34b7a66752422c21031fb21202c8405c43a1e6758eb067b4fafeb24f812280e70bf16c27bbcfa4b4b5723e369bca81e42020677787a79277f32f71eaab6822fd SHA512 c457b1e8c83760d94eaf8eb49169cd620cc1fd8246af8953503c2bea9c4ae916f3de3b9070bfd4102a713f8d843b6ee96404e27b21a48c589b444aae0f9303b1 +DIST serde-xml-rs-0.6.0.crate 20677 BLAKE2B 84e497670bc661b3dff37f081b40679cf1c019e82eb4dc491f78665b46be20b54e826171f51dc03959b1792f4b416b007e9726e41b59074e420bc81416eb47f3 SHA512 a5096bfa71c1e02f3593ef26ee0375ef1bf5d31e42eba76938c51ec9bb507f8f1f20d325a48375b1fd688ee8b79197025ea5d49c537321cdb67ffd16fd53bbd8 +DIST serde_derive-1.0.196.crate 55775 BLAKE2B 3d06b3896f0cdd1b1acdcd0046bdbfd1e8a298d6f07d12a2326ff144baaac07fcbd4af1d18b8b1188d4cc192e253fcd79860d1dbb2ecb148025449c0ac954c72 SHA512 f4df7f835e8416e4662c62a46d5f6e6d45ffd103812d681b220f8080310720e27f738a34a8e622df722fed55a1d8c654dd4abfbd78d1fdc871306bf3985baf22 +DIST serde_derive-1.0.197.crate 55771 BLAKE2B 73708908b6d1e104af4c63b498bd25c5a728e07e22afdf92f15754c0f17636efe44c0560c1f0df1b9a30708e8e8894a62f1ea57c234b6dd861cb9c8dc044eb4b SHA512 669376e248b76a5ee8b9c93fd9fe6d35372e7267fbabc14730539ef28a94e405ee5e9c2cc2846897d59d6153742cdc6799f9e2c87f20b9dad119bd3a86c28994 +DIST serde_derive-1.0.198.crate 55787 BLAKE2B 6fb5b68d3bd0010283a1f61d9af5471845d9f2f5a6b476245348c6bf3d3c5d3026325de87cc8ffab0300d31dfe03e093acc40e4a7f334d33b9d33cb8e03645c0 SHA512 f33fd1e1ced08a305a41114e354ec174e09c8918e28bd486549ffbb859a139e41b5de27932cb24767f4b3db4703c25e6987c55c9b3ea566d60b9f6cd893b38ef +DIST serde_json-1.0.113.crate 146970 BLAKE2B 8d80b0fc913ba4f008175c6b89955870af6476dc8bae0cd711b748cd0a2bf67b1299396bbd492a1ae5a4ff8050fddc85f0a0ab54f7b24e27529ead3e3d7c920e SHA512 82571b025cd598fca635f18881b52db2364e07eff1b961ca7e3b0591dd41f95503f7188ef1ee6fbc060b9a2360cacbc8a5b85c01fef7879ae3392b29c0004b34 +DIST serde_json-1.0.114.crate 146986 BLAKE2B 229f0a8e2c0bc35435b49774fab9d4cec4e2323e85e2f97ccaa2a18277ecfb9cff9e9b165786e782cba043e9ac670717364b0f9c145254eefd74582b728f2186 SHA512 2c35cd0e29ee2af6046ce849b5854b82b90f402b51c04ea86b32ce7d67869736f17a4d028dd8245c31201036bcca7a1d3df11d842a92a45b0eaebd809687d436 +DIST serde_json-1.0.116.crate 146790 BLAKE2B 20492ac3c431fd3666599f079383a9d945549e02357127a58acaa7011684ef0caca221a253218402ceff6956ee8a20cc41ca3394b25bb69669be75ab22b66a1e SHA512 d383de754b0a50cc4ab3e6378b758ebd6178ad32ebed80cb4e32a9d8e81d0c689585ee5cd35f12b376e488d25ecfaca659be943c9bb4104b63a1c4f9ded2f337 +DIST serde_repr-0.1.18.crate 9974 BLAKE2B f6a8b2c8bc759bc8cfb3826489faf67da13b1cbe2432c30ec877036924869b9cf7c1ead2809b8e5852e352b51c91f40fa892ca68832ea567e4a7df29f8590a98 SHA512 09d77ccc60a748f8c95998632459f52268cf45949c0e22250f751eeaceb7336c03a457587af7bdc6fbc188cea4e15e77c8bf63d9741a9ae31fd0b8e787cabcde +DIST serde_spanned-0.6.5.crate 8349 BLAKE2B f4f8f798ae3a02c0d5178aa12a94bd1bc08fef88b6a81d782ba07ba36fb0d89927ecf621087faf376b6e53de12f6a96e0880ce0cd01ecc31c5dab7dadc6f3ff4 SHA512 bffe2398629ae5a5a5bb6d5fc2fa0f4b94d02c96e25d1be2fb9ad95d8ca2fa9bfdeb3af11049ee9c050e497f3beca108f03020f88f6de29b208063c3898af354 +DIST serde_urlencoded-0.7.1.crate 12822 BLAKE2B 38c74ea862f041828467dfa586bad9b8e1d1d64a9f82fb7f98727e3965377d00e59f2dbf20955a9dce976b6911c0a619d2a6e4cc9dfc73cf0f6c449d873fd072 SHA512 b209ad01b6565e95c1d5b431a3f4f8a0df3d11c2a06a44123048bfa4b34ebb6807eec593f0c1c89de3a06ac3786a14747df9c70b4f4d5e4b72b4feb53084eb60 +DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f +DIST sha2-0.10.8.crate 26357 BLAKE2B 1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a SHA512 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785 +DIST sharded-slab-0.1.7.crate 58227 BLAKE2B 9b4c4e4849ed324cf48c2b905f21139d1d65aa5ab13e7fb11817cac9a32ad09f8dbb1e50a93d40cafa0aba872792bc92f7bd2e219f62f80695409e949c07978b SHA512 3be7438d4a75debb14463477f34de6db1ac38abe958ada5d5dae7ae8d5993e245da69fcb989d91aaaffda5f2b085d4bcc88d10e07ec567b7f40a21437de6d4cb +DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a +DIST signal-hook-registry-1.4.1.crate 17987 BLAKE2B f1df8bba55c72a506b9210347f9dcac4d158948e73f6d1e60f43340ddfae368aff1bbb6a109af326af47246d9738d49f76d380c52208efc3c6f79ea0acd31f0b SHA512 e83acec2b0083967555f6c659dfaacc32d851a9485c9f6f4b4cf257742ae3ffba8c14708c75f1a5520e9d132ea9e21d6eb65aba492eec481e8492af8b798c5d1 +DIST simd-adler32-0.3.7.crate 12086 BLAKE2B 8e0ae18603b344fd8a6573cc3fe1f8594ad542619a6e0d6e8f62e356a3a97409f4de3a215d561b8ed0e063ab431d81b63967a5a0b6561c45537a27ee84eaa362 SHA512 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac +DIST similar-2.4.0.crate 53147 BLAKE2B b30771e3c26300f9ad691566af22faf4592225de44dd55abb1231aa3641a32ca71c83fe9253dfcfb0c438b6f599c77358595fa03125d5f343cc617e99354dfbf SHA512 6c8f1cb194c165ff6ad64298d37deb6bab0abdd51921e29395e1c86268c65db1b4a67ac03ba37dbc69a0ea35c0f3770e894de7253f0e410be7bfc7845a45ce7a +DIST similar-2.5.0.crate 51648 BLAKE2B 43515b3014ff75e2a94debb0e40a081d60dfa371bc3bc3b3a7944cfbf2e326a8a56c6aa26ca2b6f9ab6f32929a89da673ec2fd4f037c07f8ff91ca95a77b1fe1 SHA512 7206380b6e4eb496b1dddc4501ac03d716bd6b5228971a35ca71f507940e799410dffad7e50e52c6f8fcd43c570ecef23220962fb057100665343498a5ce118f +DIST simple_asn1-0.6.2.crate 15992 BLAKE2B 3abf422412f51d0f8d3440c245792b817eb3333d58f27146109f11278b8eac4b49898264e266de3d00816319aaa822eeb0d1115e46f96f2c9a971b41a3edce0c SHA512 b2ad0042a4492f8cfdbf475b52c87431dccb91444ba3ed026adc488c844d1182a6ec88fc833b5dc0c2ebfdd6194c5b49289af71c151822228b8ecf89251ee9ae +DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40 +DIST slotmap-1.0.7.crate 61390 BLAKE2B 56f7ee840f848f2331bee7d7e31aa66f2185db5b57fc72694e1514b462dab8f673442c36f7b9260d5db7b68a522ca76f7748aab774246bb12c2ecfbfd3e7bb8f SHA512 f130275c506a3d648b5d66acddf7ed88274fc381d8d0101ea5b3ad931069d4ca46b856d75311e95e09a23c009af343c7a4321023bd1d065d3d516a0b4b8a3080 +DIST sluice-0.5.5.crate 6960 BLAKE2B 0a1ed02c2e0f3f8a90afa1e851cbd6e352881ba00fd4ef824b0768b6ec19a9eca959fa7c215ad4d6ebc8f103f5508766648004bbd897706bb44b98884627af4a SHA512 d0a85db370a921f0591d63a5a78fffedc4c97e5a68915c86753dfb7798cf120542b1fc3193e093655442b34502ce6cadc799b25e39e26c122683e26ebd0383b3 +DIST smallvec-1.13.1.crate 34952 BLAKE2B e0dcf1d26883564cd4f5d20a588562404e193075b1ae011f7f7542009a9466e5df3ade7768e1a8feb8806774b2cee5f15d31779928f83714e7d4b6ed46af9ab9 SHA512 1259ef947400470b8c9e74c5582dbc1a49753aa46420883c1f7d66f320f67bebe733a15a23cd57ba461020fad4ff337a5b298de82754602a78f5e6cec969652d +DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679 +DIST smithay-client-toolkit-0.18.1.crate 129920 BLAKE2B aac37c6705b04e67fa48bbea9e1c276d1b105ba5c53ddcb78983261ccf6fe8139033ecdc7d108f67ce662b3e3d6af63234f0b8b2ec19c1c5d5afde5fec81cfdf SHA512 0a6570af153abcca4162bda695422c321b8040fbd68e1a822ab7409050e2295cc4f89465b2bfae3467f19b114c321fb72901356dba768a30151d5e2c08320297 +DIST smithay-clipboard-0.7.0.crate 18028 BLAKE2B 79b8b1217df2488bb9c25cf133a2cbc93938ffd37836ba27d925a12af82e10eda122929c8c71a9d42471be32a80b3c9da3a6d6b95066ee27a9e8b34a715e6bbc SHA512 b302a6c57810699e2e88077a3301bfed0ce87d0c43d23372ddbb93811f9fc46df2e74bd6bf1b2a9fa94fba05426111ec7eefdc624cbf685e8379c66695c3f5eb +DIST smithay-clipboard-0.7.1.crate 18456 BLAKE2B f9687d74751b279d570f4ed93ef931a0fe4a6d7409f553bb9e4d738a154dd39a244072f3a5bf3d8ed7f1f159a3bd13ef8acf2da3085ffb8b7f00f837b2fc3154 SHA512 c5cc982efb1a68f1f1dc80eb5c1433edcdc48fb36cc9209d0d346c91da895c5b15f9f3dad216cce52a251e64c45d4044720f184d5d6ccd2706b56878fd5c6591 +DIST smol_str-0.2.1.crate 14689 BLAKE2B a1bc1121fcbd42fff6248b74a566ef606470b733a9e37211748512a95f3a0710ebdabe6f96d9b2d2482a8a546618e428e32fedd38ca893f6ae87c52a69948a7f SHA512 97ec765f3244210adac567a36b21436ab3cb387db0810b86258b80161ff4858d34e148fe34f5cf351b4355ef998b017d216749e12c154554fb36abe37bb541d8 +DIST snafu-0.7.5.crate 65229 BLAKE2B 7ab41547d6775fe92a0be3810847a00567cd3c82fe12b7f6f5170f1c5ede011b763fcc8f470c7d4dad9369956e9ce6d5e66edd4d66f4bb6c8a260dbd1deaea2e SHA512 50a10d3d1c13a28136227219da1e43c8655309bd1ca44e81a76516ce7661ba3cda8ba2f4e0ad16b3b1e7d5e07b2dcf50e158bbd6ff54077709a105633e6bcb50 +DIST snafu-derive-0.7.5.crate 28208 BLAKE2B aee0f63ef6fa1c414a42d6bd625067d5c1065ef6df4178ace3c5b2bed733f719126ac428b723d77522cf5b1a384382aaa03c0acfb32a7b5a7703b3212c2c9d9d SHA512 6e07fae7d75ca975bf2b90ba10e2bd7368a0bee7670e1d9f4cc90512d9290c9d131b4fa6accbf6e177cb23a17072e029e879a55c5b1bb595b3e4ab447ce445c4 +DIST socket2-0.5.5.crate 54863 BLAKE2B 4237b540dfaa96d3f8a8b9178519e5ea37b6b96480a2aed5287f462845231427a18f5add26756c7b03c18d4d4aa617a5a36c5462258ebd8be326e8fed1c48641 SHA512 afa8df546234d4e8f89289622448aa42d8c2ba74a0a3a4b13c0ff7bc30fa435a7d6d6e8c9e2a6933cfa23ebdfb4908c865e82c657611defbc16e1f1bf66f9f8c +DIST socket2-0.5.6.crate 55270 BLAKE2B 10eb32486b9a2908e05ab24620ad7a79243e59c2c2db5a7793f87f32765745b21746423d5b3896ef37d3dc9e76410fba97826cc64cafb7dd45adb485900c2282 SHA512 10f14ce7bcb9fabac56f98bd34ccd6368dcf4ca245ba2df80fe0f1157e177056eeffc6fcfb1d1fea6e89c0eaafb99d8056fbd10101031d3ccabb98950ec563dc +DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee +DIST spirv-0.3.0+sdk-1.3.268.0.crate 30802 BLAKE2B 8608a8613b02bb5c9e5258bb604db55c81d289664383606686c70f314e5bd31d5b4b0cd1e0b77c8431c363e023861c18a08f642b690a9ce01ce485d069bb6a25 SHA512 82187b94f32ee784eca112408e61e3c3ca8c825207b4c817b2b87900b252c514d137e6ea5e9384a2e241d5352ebad0e153a72d5b3db2b0dc938aaa472d3c261d +DIST sptr-0.3.2.crate 14598 BLAKE2B 0ede8a60dee9925fcb39377c2e41b2fe5ec760a2c9e3166f4f8dae35c34721848d328522897403fd60808135b11661d373b7fd89c7127367a806cefa8b914d8d SHA512 cc26ba96f808c57d6aa5efe5985ea3e83b65827a7d163837c81a06fdd4f178fd5bd86e4c08d7383a10d94e63bb97a0f6c151b55cd79c9c26f3a8b7a0c6e5b530 +DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee +DIST strength_reduce-0.2.4.crate 17859 BLAKE2B 63ad1af9698ed3ced72f7c0e6d8c62ec35fd564d179286d6cde8975280dbc901303a3be5664b1902c135924dde8a03447a8e837ff0cc8037db50b053ad3c2c9b SHA512 2d44e54e4cf78f718faf482ade6c33fd42e73187a7e4fbbe41fa0905e6bf1ad5f5241c3d8ddfd7b18d9bbfa3f331c54ef2d817b254e1200b50b146f04327f157 +DIST strict-num-0.1.1.crate 5104 BLAKE2B ca255ac7afce45b8e2dec87cbe080730959315f753c69bacf1c941617d5c3513e57532494409bec29acc73928291baf98413cff6d0686ced10804ada2a26d361 SHA512 27ced0b3110094b3d8a22b60c67980b7416debe5a22b0416a025dcfc8264fbc1ada1ff73362383ec605c36d682245b2dface093cb6152852f4d4b28705f8a197 +DIST strsim-0.11.0.crate 13710 BLAKE2B bdc748ffab302c8e1d3412663e300c399ba13bfc0e15b07101a680394204af2df8897ba784dbe57b95c4fa9e732439d0f5aabb090b1b1c81f066bfa125919419 SHA512 ef4165dabaf8cbdd6c58420043cff9c0d1f4bc3ed53de5973b654bd71ac7d462fecaa6e1b750fbcbb8e19b35f6e6b73641a17656b20f5562b6ba7d84e69de226 +DIST subtle-2.5.0.crate 13909 BLAKE2B 660c3a472ca54c9843ce3feea74b802e27fd7f62dd37a30e2a4ba82e4b3a71df63562e8865d5fc675d31d0900998a8730503f91a61450884446a3bdd6af0041b SHA512 f150b1e2037554f8cd3213a54ddbc258f8f670cc4f39e7084cdea4b47538dbc58b834bc93b443d58a4b9087224efc003234042aaf366687dbd32b1e7174082a0 +DIST symphonia-0.5.3.crate 10946 BLAKE2B 2139ffa564b2f6e736482810a9b77ab5c3a18a4fba0226fdf29d2f2036ce3cee4b3fe14cfada8d8d050db226420762df5b4d480ec60cc54689b94d655091d935 SHA512 a417a34730c8f45aee43c6d965da2972f713df841a0c249fd9c89b0e7227859eaf92f6d317be6ce01ad5b798bd58fbba84da27776fb7c6a9f75cdc6f03b922a5 +DIST symphonia-0.5.4.crate 12039 BLAKE2B 9bd9230cad0011a014471ed2e01160a2ac7e31383345e7befdb7e7d44197e12d8de86e9c399743760f79245d85214b6ac99a1209c06e899d1e1044e6e32f6c60 SHA512 fba7aee862ea3225790d6e527f7253a08c3d735e4d3eed8812c551b2fe180bec116bceb1f4718ffd1af53e48156b4f4cbdefe75657ca1487481757f7e8cb9d13 +DIST symphonia-bundle-mp3-0.5.3.crate 59988 BLAKE2B 235d04805f8d95d48ebf8a135aee4cfe4dc38618a0a6dace4d55eb8addbe79528df4ab9a7bb4e9b9c8cf331766bb8568eb686ee2b90f33cf7d7aa59b57ad353d SHA512 a4e8648f40b3c1f6663b7e52b142758250051e4c27f501f195c2869c6c3cf1bfa5de0b16edbc896003496b37c280694a2029a3cd7d4c3d34923d8c58ab062fb9 +DIST symphonia-bundle-mp3-0.5.4.crate 60104 BLAKE2B 1d7a86ee6092c706be3b622326615d161a48aebf16dea96768cf986fc9f7b295a59fdf85b47495d3444e05667d619940220df8c73f7f5a114897fb4257ff2c61 SHA512 19b2132af39be9ae7d74ef0141a637db0a0f3d4df6405331bc928a6bdffefd783e16fb75f60adc08e0235034a9862228355871b30d2adbf4d412a539e7843d56 +DIST symphonia-core-0.5.3.crate 97048 BLAKE2B e5e010ed9ae45c63d221a6a84bd06fb3b7b786eb833980da1a6dc197385154d12080c6daff3182e42d73239bb0922bd521c4dd7eebb0ad6fb15937775567baa3 SHA512 a1aff187ffa3860bf9113801059d9d1eec8b8ee2f127d12b8d4082a342e42ff8ea67bcd7781c18560c448f3cb58cdce152c9f28f964ecb861c6f570502552a33 +DIST symphonia-core-0.5.4.crate 98029 BLAKE2B f65a92cbde4b91865d088c7a7727fedffda325450281ab98f8ec93b1866d88e2ae6ec8bb25ced31a716537d664298f82658914d02c729af9f9bcad0bfa8bd160 SHA512 3f2265b9eecf405d699779d66014017f6654452607e62462bdf7914fee51d812c63773d0d22f78fa099df67a11aef375bf1859258ce1ecfb07a45c175c686888 +DIST symphonia-metadata-0.5.3.crate 21089 BLAKE2B 28f11aff59840c12bbb920ea2555aa8ea258398bee41f6ae69c5a36386c0e50e8e6e5339da601922a8931dd8e1f02e1d686ec9a01a145e35fac9592266a563ff SHA512 d87213ed6b51b14b612b78d6ff81c7e748ec64b86806b1c7425a1c7ea2f3f71643b16cb888d0d505dbcdc5b81336ffba84fd870ab71933a1af8edda37372d46a +DIST symphonia-metadata-0.5.4.crate 23343 BLAKE2B 2861b684047bddd0f4a524be213fc15b1287d9301563ee862a1fa69f50eaf6df07357616c33ace46066373c55868ed7b40655630051e0215ed230a11e2e34d20 SHA512 b1c0f37008d7ef5d21f7da5a93fc68920c0606d9745e79a7f0b9120b3d92e5fcc75a67bb5c0528c9647730fa4212b6a589e3ac299ce3bfa5e9641c1de0bef18f +DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d +DIST syn-2.0.48.crate 250566 BLAKE2B e46b0863af76c3116c84d01b654a9820b7edc51f75c9c5301a7967d12284f78da602409f34fc40524728350dc6b998a4d738f08b8868f95236b3e5d24c460580 SHA512 926c0ad55cc743df20f9166b6d71fd44421aeb1f073fd86b6ddb53e13cd508b539c0360ce64b07b65597bb14639c8f33acf7e60951e1e9128624517aa3aee325 +DIST syn-2.0.53.crate 254828 BLAKE2B 4bbff9a430e12baae231eec35dca4a3130e9977c6272dcad4a25266441959461e6e2b69832492a6895948fada9152abf8630c1d011c93912356397360bfb7b8e SHA512 0c3e40e1af47910b59877246700dd695e2bf03c35e036adb99e9756f8e055c8b3421020fc43f71954aa7adfdc56712d58968f3f39ca2e93c0daedfebd8862b9b +DIST syn-2.0.60.crate 255808 BLAKE2B d7a8e415dd72267fd92da48ba8b3e6feb728f0639797db1aa74aeaa2a57935b7565eec37cbd32eec826154e2c54075b121737369eb15af36c322c34b3cfd7930 SHA512 20bfa02b03c193672a9922f9a5e196185341e082a262f7c00d7c2d467d9e2d77f4af3994634923cfaeee34aa9eab510415165f052ffd9b1ed0b1b581e272898d +DIST sync_wrapper-0.1.2.crate 6933 BLAKE2B 0ec797ddead298a95bde0a508ae942a4e90943948d3c1e4833fb3ad1cefd3566b7fd1aa0b133d614839707e3f416e3e739099ac73441527213da81b6d1c47d50 SHA512 ca7cd7a6dd242fa420e8dba820117d85b1b11ea6a9fd99c92a5a260f12263cac0c034c9f9fe10090d5830fb5bf5eefc8a5a0d0b5a40f3f809d69e5393693d5c8 +DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa +DIST sys-locale-0.3.1.crate 15681 BLAKE2B c60d11812280b8e0c1e5a753c7867351deaa43d26bb3ce0b381f56c2f375ec8db2755636131a13fadd79aa6d90b75c5834dbf52848b9ca50c1ecc5b627fc640a SHA512 c06ff352d5beb9d214f08e82b8d49acd8b83114e6b88c9685f0694d42bba079215e6afd1c5c75a8e8bfbcc72d99cb01de7a3d8f160196adb6db9c34bcf1a1ebd +DIST system-configuration-0.5.1.crate 12618 BLAKE2B fa75a24f8db6eafe578bcbf162fcd110ca059c58af24916acd64959b48d8541e0aa95ce2c929a8a50c62e7e8a967de9101640d1da7805fce2f76b7c5c86c4544 SHA512 af77ed5be890e826b9b8f975bd2e63f3905adb24a597069a887ff2a861820f1ed40582b918f35c3d4eb063800e179b93e5acd7d5b48b147e9b16e3cf4c12840f +DIST system-configuration-sys-0.5.0.crate 6730 BLAKE2B e40c4b5e7897cfe30b2fb6daa9b44fe2b83eb2a12d798a1ad8908b51abc735566becb0e001f52f5f8a0d3596f62a9eec631341c3a9cbd132a4f650f988c74b93 SHA512 764168ee5efe1ba82e847ed74a14d1f5f1892735e98657c3ecaafcb4b405d4f779592dfaade252f6a577ca2cfd5cd5e467c0b6326bbdcfa573c3ab01cdc8fc34 +DIST system-deps-6.2.0.crate 24961 BLAKE2B de59a67e59aeb793dfc7f71aacf93303a4eaa3364aec69fabb7572c07120c447c0b3581ad62aa61292d7c78cda880557e1bc11a3a76bd1a6bd84dd3128c4fa2a SHA512 10bbc503b8f55560a607d764c2575c7b854ae07ed50470d7cededc1e0451e4c7f75e06a655eba90e5470d8c2d1f1911089cd4d82da378a2d15f8e718c8f794c4 +DIST target-lexicon-0.12.13.crate 25424 BLAKE2B 5fcac231c270a59b6589adb79c90cd3bb15ce024e3c5fa3fd267b3226e5514ce77387c57c86ca765b43ee593a55ec99fdc8fbfd464dc01afaa91ad10337b6278 SHA512 323331857bd3db9877a6c7304392e39d378439462ae4f6d6939c02d28914ecddec52696c94ceebfe8a0e7e93ce25c900099bb3922d7783643162e55c7a8769b7 +DIST tempfile-3.10.0.crate 33376 BLAKE2B 303e3bbc2492fd965c5e5ca02229868e94de1b1286175a07b3f9767a174c5a83bb6f6ab59d582f963f9cc4f92362be6a8e898e140397e4314bc18bd8d4e13249 SHA512 0f9bb6420105badfaf7e59f9679b53c6e3f875208ad8b08b9bf38cf67a1512742f1e3dc586136ec9cb760d127da6be69e9f9ed55f18722edf1af3a452e7d93fa +DIST tempfile-3.10.1.crate 33653 BLAKE2B 819b183e7840f70270883ee8b6a91fa09861c3112eaadc65007199885abe099bd593e1cdc4d9ab48c23490a6d484cad9bf0e80cf4e718c369cc2418b72eaf09c SHA512 bac7515b85b0d01ea914b527f0fadd3a4d8e77c9eabe786977d2625d8a3e91decaec502dd15bab4d49a43597fa7cf7660fff4be1b043112d13b542a72443bf39 +DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a +DIST thiserror-1.0.57.crate 20993 BLAKE2B 4eb90b8ee027e39102d6c030176db94510180f2bd2966503501ff89ca6b49afd61e6d9e1ebf18c08d374ff9de4e958dfcb3da8740fdfe31cceace5be456bfe4b SHA512 0ff7e48c3696f4f4c6af29f3142f0a7bb88a07b7a9877ec243e3ea15d89c48f1898b731311da5d4a7c88060628cae3eeea6a4eccf25bd851cb3075920cb1a936 +DIST thiserror-1.0.58.crate 21025 BLAKE2B 2915ed6ab691fe94e97a834ce5874d37a388c3240499889cff633ee6c67d46a2ca88098ba40c225ca0e2e3c1ac7bdcfafcfde3dcefc50867e299dc49505d6fc0 SHA512 3cba2d1f4965bc56bac8fc70540d8cd442ab6b8c7d25d328bde7f4cc108535d83c75f293316d730bbd86eb247400b6e35107d610c7caf47f43a28b1f52fed578 +DIST thiserror-impl-1.0.57.crate 15639 BLAKE2B 2838235c5536fcb16d19382fe286850d6fb882b1d77ca4ade6a62e1d4727ef89f69cf0383cf330996f9e2303226d5fd709557331a45c9a91393db1788fbf4422 SHA512 a850806f09b232546d1e0df5e35cd961a8aa32f1d8ac3b24df360981da53b75325a46dc788c994042c95a5887fdc77234b9f6ee5851242f734a613e579548e3c +DIST thiserror-impl-1.0.58.crate 15645 BLAKE2B 9c6f643a582666ee4eb43330340888e7141f0dd89d927e3345268c3eaca02fa42b018514ef38b3db3ff9722b25ebdd43c36b11ecfc7bcb36950ce2c204ff78e1 SHA512 9bbc623f54c71595e48b33bdb3e4f12eb2e48074b15ebe400d6faab43410b363e5af94df071aaa324c59dc6958173e3c301fd51b216969f095e19cb98a27292b +DIST thread_local-1.1.7.crate 13585 BLAKE2B f497dbcdfaf7dbc8b4b0dd97f77ba93df15b63303e7894c9032c9822a5b8111e0a21db2fa8cfdce5a503f70959ac9cdf48c840b925bdd850dc15e8436ba72379 SHA512 3772452c2a349fb564d29bb06e13c8ae64807db27c3ee217fa04fd0e9847e94adeea582b82ffc2d9116f31ff478eb088550caf1346c263de49b55fa17b431c31 +DIST thread_local-1.1.8.crate 13962 BLAKE2B fce2feddaaebde42bdb83d814929868f06387a4fa25d5becc73ff0b983395aabe076268569c6a89e2d90ce6e68d2ebca7c3e0ba1c9159c61b32631ce39289a9f SHA512 6d7e3941f43c43ac091db5d1cf2a8a3892b54b0634d9200426eadeb82015566532f04b6040085dbdcb10580ac724b6ded8416931d764d795a5f923aced66c492 +DIST threadpool-1.8.1.crate 14408 BLAKE2B 8bd64ede19184e18460f6b2ad5bc888d6facd5fcaa5b43c35269e35909c9c68a884203f5c4b92619c097ad48c19ec29f73085755ee348cc637233ff3b5b50ccc SHA512 adaa5aecdeec25848af15b160e5b39833978454d834974211bd586d81837f2ce89e5590f08b7e0d4868346cf57056913a5d41bc8bf92b89109ed769cce4a8be0 +DIST tiff-0.9.1.crate 1423953 BLAKE2B d01949cc3a76a32f2e802a151a4c1d4bbe47c7f217f198f940293d02fd6a1a6d3087c66b3fbc099da3e155f959774d2a9d4d8c5f5f00cd6486f5f44571a1dedd SHA512 82419e671c6a896f1d639d46a3c5a019e3bff6c75d961b838f5311e5ecb31c3baafc5f88fe928e88f6b3b31881a867ea4ca9905f43e3e24f77f183260dc27b93 +DIST time-0.3.34.crate 118430 BLAKE2B 6d04a20596c9b0961ca104748d9d360f07b16059719d7410fdf1a7a0d5f2aa02aaebf640999464835964bbded2d3257d79c4b0ca3080fbecf13dd2d0aa6962fc SHA512 3997e1b8d9be2f54184ebc9e1355d4b65f0b7bc9439b2b29e4a4acd86ad3a3aa019261112a24d998d76a7f66b266a86536fa50412279911b14d4d7aa7078c116 +DIST time-core-0.1.2.crate 7191 BLAKE2B c477ad3410ff29f3bf4a38fc6ac4a043d49b6d2bdf5cf309ffcd2eec3bb6e4c4b62156ee7f069f0b37ea31c163bc75ccbf35abc1db2833cdd4912135e60ddfc9 SHA512 3861724c23cb806829a01186deb5217ae8252c20af622975264e6670cff528f42155039e4937756a9eb312a5580ffab07949437d5504d684a0e70755046cac52 +DIST time-macros-0.2.17.crate 24443 BLAKE2B 5045af9352961db0c97cae2f6ca3e8d2c4f89a129c7ac2ec1d8d20804292aa9f2901a61f910a564954614b68f39311bd381deeb66fed8bdac423227d077f3d14 SHA512 c81747f0b74e68d3b3f36d378ac5911dece8c6b511e5ac793807f854cc31c812b927d0df941f55ff90d3d67512d0ac6a5f63f2de4322c81b05da42f46b4a661c +DIST tiny-skia-0.11.4.crate 201082 BLAKE2B fe350137665e6229ea707bedbb535b8d5c3fd24752ec9c97e2a6c43b28ce7fb9107935a6f91074e0613dd2a156a45dde695343cde7ca78f3f9079636c5e1f9d9 SHA512 1371fa11934c1223169fb4494accf3b47958003e19a603e8fde446216e2c1253a6ef80da5d7bf3c9c73038f5282e3c47cc5f8eb87f8456cc5706392b28b4ecac +DIST tiny-skia-path-0.11.4.crate 47764 BLAKE2B 55b76adc467fb4c063ac2136271c353b92254f20a68e5205395081582c624481687bc319845e217868e5f2c54ef320728d0b2ddefe32fab1a17b90882168c2dd SHA512 723557dcb08cbdbc4d442ccfbba38481b922e367cec07fa23957f9271a96d1c656fd46bb0e0b5609686e5c830d1a988b0e209f57d0765d0afa738e5b2b0d8dc8 +DIST tinystr-0.7.5.crate 16366 BLAKE2B 00a5eda21da581ab351dbdd2591960c027d0d1e35f00b2b1049cf78ce115b4e7f9583ebec74d0a95c79112d2b4fa60ab8440ec83646542d8c73236790c07ae8c SHA512 f6f5ee490049a3572d13305f1431d4882f201c81bacb0e0a333e949a0a955c98d3a0d347b1f31d1fc8eaeefb4690a3fe6fb18e82163b92d10b757a56bb5610c3 +DIST tinyvec-1.6.0.crate 45991 BLAKE2B e9699d4d80a78978f0ebfd049f5b33d7f23d401cf4f4439ccb168e8c0e322473ad0ea7e2ff0ff69e9aac3e5c4c9ae5a7102185533bfbf96dbe77b3526e700bc9 SHA512 e5acaf353c58c60ae5556130a934f1048abb79cf6668ae467d308bac44b689d8a9997227ea879f4b5fe50f29cde8761801b088d7149bcd063b973056c381921c +DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e +DIST tokio-1.36.0.crate 757286 BLAKE2B be9fccb7c41fa6a48f500509ce7b7ce0e1c831a5ee51772ed10fdf054b5872395d0037864f10da4d8cd160d15e8dd8e2445446de75b8e8613debd01e530fd0b8 SHA512 0687980dd375965647c89cd6f569f74ded6400dbbf73318f02d8221e8f49a03151a4f023fced542cf63197d7bb150ca45417c10dfd91517d10bafe0d329d6848 +DIST tokio-1.37.0.crate 764297 BLAKE2B 725f3b62c52ae962623df84c690db7c54438581b8d2108dda76f05bfabdf1688f2de8b4fed2ab0db5c04c7659af8d95a7e19702654a12fd498d85a1d030c7a45 SHA512 fc3c070ed0c09e57205b76618a93b8b00f4d74c2ad89df3295254ec2a984f4fdfa9ed5472ff935e1644e89cf2abc44354742603c0e006f14861deab2b873cd85 +DIST tokio-macros-2.2.0.crate 11520 BLAKE2B b688669f8bcb44967fe0d3db51fc5d5f86da3cd0c7eb7b5803feb250ea3444d134ecc7f79345f0b947cd3479a46659f3a158a04e0edaaa52deb8d343deac4761 SHA512 7e33fa62e0cf4b829638553a51f849242788d217264437444b3bf478fb40be26800d5cfd954b1bcdca1e5191b3c6c60879050f0f7e707461f7b090ae5025e0c6 +DIST tokio-rustls-0.25.0.crate 30541 BLAKE2B fc85306724dbb91efee7924340e0cbf4557cfeb149cf11dca84e37ca96e6ca54cbe774edaffdaf313da11af98ac03cca23bb7c2ff6ea551f5328a3bf3ee9aa02 SHA512 4e04669ecdd8235edd438075e6b125f6473e117adc2ae13ceaee7668705e81a87f97242253f51dea204fa1bb3b9f8f9f21b587b4edc7c2e58e375f5537ee5f95 +DIST tokio-util-0.7.10.crate 110508 BLAKE2B 073b25e1484d54911bc15fc2a4b3fb7658f24f7f77a2382f9f84c5122871cf8c5d6097d5c784cd75b17a79aa63eca80644ff54bb496b52e53bb89650ce35cab0 SHA512 d77db36cfa5a2ace3090874d8996b9e94058ac31648308da8dd92a7bdc9b9b61adb703dbd2131adfef0b428cd61b4de76fbdb674f718e89b297f762af11ec50c +DIST toml-0.8.10.crate 50667 BLAKE2B 815c850d4e2b8f107729c24ff82a6be81160649fff726f07a2c6e2af0283298fd5eadcc5811ba4ef20ce12914ecb43da79fa1840fea8d1572ca59f02f9e2c310 SHA512 24f3b44244d7e91ae50eaf20bde40c177352592aadd2dac697a831a5de9305ac1c93c8dc407579b9bbd8d9984fe34cfdc42c3243cd0057ad83db14bd899bb546 +DIST toml-0.8.11.crate 51146 BLAKE2B 105dc2202867eee9fda569d8af0cdfa79bea45617de8adc66820e5b75e4ee37b9629302b21016c86bcbb2660a0183b8b8c544c9977f4e619750d2ebe63253abf SHA512 375f38cf272cf62ae4ab6dd5e495e3ec85dfc1effd61581afc5ba3a7e991fb0f6f778405c331b2969946116b43d7777acf5a3bdf43798b987bbdc47322564034 +DIST toml-0.8.12.crate 51145 BLAKE2B bbd5b7c536c16b23f26bc520298172a61a61cf72195191d1d3eddcf54ef0ceef781902ad2c0033fab5aed11229400ec537e3cf86c24645a6d111b387ca8d54c7 SHA512 dd8054e20aac5320a2a6a7d47640cc56e48c2b6db01069786382fe5ae19e9b307fe7f4811ce5b8fd283a307c0aabb2b7f57101e05edadf79636785128b5cc265 +DIST toml_datetime-0.6.5.crate 10910 BLAKE2B 93a21ab2784e96ee2e6b56c7b4f733f6ac4c68c1e7d7dac3fbd8aceedb3580e25b4a9c7d9c3f9b5ed152560353b3e80906e37824956dc4ea90bc6f039768f6cb SHA512 502bdedbcbd2ac9fbaa5f4b51f2e409af185f3633f01f8845de5e3b007f2400215ddeb82ac588bc915ed5a5f9d7251ccf93fe2a57cd40fca2927f4c0966357e6 +DIST toml_edit-0.19.15.crate 95324 BLAKE2B f989f96d571693ff81572af6c05a6f51b673e478f22d20a6b166c45909902ac80280ea92ec5c3567327df90100a47fb7504845fc39bbcff6756af6c1a89e2221 SHA512 46d6bd2fea957392ae0ad7e687dad7743b76ee8e8ec76c80d6374ea294d3d09b6f73df0a82c821b9ee3b5268987a4136aa825034309f3cbc1947dbd1af1505dc +DIST toml_edit-0.21.1.crate 101661 BLAKE2B e794b6121ba7e2b1b3f50966cd40eebacee6968b6b28986cfe4cb7312b51ffff19f74826910d8e4ce307f74940f11e71e6afdd768ac196427bddf44595bbc797 SHA512 10cd3b16f763f55294923ce8f166f96fbd67a0acc4a93a46fb3044d8a38148097c592ebb405ced87030d35154abfcc971eacf0172b624ab477a11e616efbaa07 +DIST toml_edit-0.22.5.crate 103292 BLAKE2B 317770698d6588a39e245e4297f465a61b6fbeca04a28bd3d82dc7a14a8e41c672f0dd23dfc967da125b802769b9477614db05f4e4506f442c923bf7454a4b6b SHA512 bb485b58c44ffd72da3bcda2a6279104e2115f3988b897393ccb5dc029d487b6adbaeb5791fa2603e7ab8dbbba7ae4ed54aae64578e0040a130d64918a37bb01 +DIST toml_edit-0.22.7.crate 104001 BLAKE2B dd1685032655842750c4d5bfd754d7df643eb25cb497fccd48e8a4b1fa9527c60af5514bc250c13f20e2c93eff2da8d7b819a96f8d9af759a3e6e5c6d2958422 SHA512 db3c648ed54301f510769d572b0b0b1ebb445fbb7f38dbd572bc8f15efe1256ba50403fec1288cd8b74c834399386a05da40d472bc9ac726a8124ca6e93d0fcc +DIST toml_edit-0.22.9.crate 104173 BLAKE2B 1d2ae80707a554bfc9b9b66975828cc66e4759e1c2d9475d0ab200710cd9794a2560834802e586a42d8e52eb309497593f6673944101d90948974d21d3f227d7 SHA512 b96b310e18618c5cb75cc827f5bf4565f06e0089577decd38a2669bc51672f3d1500e2ca5e69838ee93d98c966fcaee1584e8fea1fe0b2ae724be0882fd5880e +DIST tower-0.4.13.crate 106906 BLAKE2B 6a8f4455dcc69f6c03af703fcfb0e6b214c2ce599611ef78fd41cf411ccf06bdce241e03a1d85d36cfeadc72db9f3d9b7ed94c4fcec466c070f2357ff6e27360 SHA512 592f23eee5efa6a4f0d2ffb0d965da7e0f75a90a4320a0d0dacdd5add66513ae40902d21af2bf683573133ee984866987df2ae8eb8e632cba7a9d196985aff8c +DIST tower-layer-0.3.2.crate 6023 BLAKE2B 3450211e07a40419526cf1afe063c56357dd5add53470a4146ced3d294edeb95dbd645ab46ae0e42e4877dde63b1577adb21d9cf50116c4cfe4165e115d54ea9 SHA512 d5429b40569f67937e752c2d61c39a474af32bea5ba3940dbdf5a4037fde1ef7173cbd8fcdb87d0ea15c01bf84f2d55abd51fefbab2f27aa54e656eb1748c43e +DIST tower-service-0.3.2.crate 6847 BLAKE2B d4571704eb4bf7f729f4535a04b7eb94f644d71ba8c5604297843351adf4bcce7ff64ec4e5435783ee6ada1b0a5c97726cfaade391525c6b2bca933cd5e8ec19 SHA512 f4578421603067fa708c4ad9eca5ca096b5262b6d51a404f37d9fbb6c64f027cec6114991e4b7f8324cb756c033971a384f1804add28e00d0cd6b2ee01d9e005 +DIST tracing-0.1.40.crate 79459 BLAKE2B 33693ee71564fe5925a63dca351e838dfd8612b4b1e49a33a70095e56ca63287c13c772661ace0e540d08c92942d7cbdc51ff2cce4f4b372164d9aa20ec05dee SHA512 5622188a45dddc0d6d3a8244a9b12db6221f4180944ce1019d18f4e613e4bd113dae5d45fb57dd0754f6e8e153b047cdf00c8f200782bb2b868bc2d423d99275 +DIST tracing-appender-0.2.3.crate 21964 BLAKE2B 7e2e9b759d876731984dd6c7b802fce18b8f233f6d659a220e5f1b338abe928b8f869d1479278eecac2899985d578db0f60dfeb80a1b8eb774265f21fff960d8 SHA512 c00f22d85a29209ec59377dd2f8c9bdfba84a5153ac84e1551266837e30fb931e76d93239a09bd4a27fabaf822bcbfd88d27787d923bc809493b7030b5cdfc02 +DIST tracing-attributes-0.1.27.crate 32241 BLAKE2B a20af0f50a90dcd64e5318e55779142da294ba18d1cd40059a8aa964fd3c92834e03ee563e41caaeef71a30e3f027e5c8d167d90e2844da79e0774b267e179b4 SHA512 7dc59f4234c3bf3434fb352baed2b81db4e931eeb3ed207c4a204e480da734be40847b167b808058d2807b5583815625bcd5153e2bbe79804cfa6f069a74ffa0 +DIST tracing-core-0.1.32.crate 61221 BLAKE2B a7815c46af9852ce62498083103c6d359351f4d33609b4291330073b6abf4b63f5e1bb1a7dfed3bbf4d6913ad5217e96999416261af8a70609408a29109e4db6 SHA512 164f79cacfcca533a53b7dbbdc2015aaf851a16e00c72fbc4e5f515b6a6dedfa464e964810009b54f08cbcdc5a314e50245ac7b1b01a71fce4c63db135bf5521 +DIST tracing-futures-0.2.5.crate 11637 BLAKE2B 2b23233705674cadf5dc8092d3990f375e780de2b9bdfcbfdd5f4bc9bd0f15a14c6bc8e36963bcd332e729b33b90ecd10b2250495e0657eaeb302e666313534e SHA512 8a437a029e18dcac3a3be7a3355a63e75432ff892316c9f2929c7557e3895b1bb5efb59a7588372bd9efc386b5cab54c2b382be99ef8fa643e66ae5656e506bb +DIST tracing-log-0.2.0.crate 17561 BLAKE2B 701bdadd40f1343f3c4901bd8dd188f1dbc0afcdf50807bd0f6df7539635e239b5095696872103125a4d4cfec24af6336fce6f3931363dd5be4f53a09fa584f2 SHA512 0c1f060e8ffb9ff24cee7b85cc2d7d42c69b2f7623a7faecd7422b23b11ae8d5c7691e4635bae76861d444c369d9701ccb147904668023642b223e442e3c8285 +DIST tracing-subscriber-0.3.18.crate 196312 BLAKE2B bc2f04da63b0313d26073eb4a39b549ae37701e4dbf1fe06a2483279a03d9dde981f0efea6ceb5cd441ab313bfe7eaf812971c3ca60dfd4b5d9cf0d2eb7bacd4 SHA512 72f91855637aa476f03077d5f523cbc94989d40b12d7328167f88b081869ed096e6370450831f6cd5f0686cae5628f14eed4696c06a2ec75f56808b64445e0c1 +DIST tracing-tracy-0.10.4.crate 11229 BLAKE2B cb3b73ab9880721c435de731d06a4baac8a985a15709775086873ba8e34c3428f492fc400604a5bf0660aecc6c62048da1785689c8e0a3a39f1dc4ac97f3ef72 SHA512 364aa4e465d8fdba7d38881524dda509bd133dfa0197e8272b48008705d5dab5e57be9b9012063d234a25a9ca1b2ca9302f1ffba2b79082f3a459d61b878bdc9 +DIST tracing-wasm-0.2.1.crate 9372 BLAKE2B 5cdca349f6a4552e2d22812260c7ad94a2f2a4d0e94c9fe7edaea22a840d439e90425ed65ed7f572f46451626689cb1609e85722fac80ea9592746df29d2e5f5 SHA512 9ac4db2c9bd3f19351e5ad40a03da2ec9cf4b7d78c1d6ffd5fe55a4f94524adf90a0acdc9d97ef6e4399b90c70b90c413f2726e5cab9e9c79877105b5d00f342 +DIST tracy-client-0.16.5.crate 20125 BLAKE2B 5627a92881ab34ebe5a493a809260039bee084b55745cf51d5125784edfb4f06bd2eff8cf5bb916d4deb2173e5d11e30cf7c345d63f6c31231ed992fe5417bd1 SHA512 d00d7b4e2d48817e68105e7dd17aabc8942b5d56389b6e057f897fa71f29fdb80eb5ee394acb2a0a6e2e8dbba24f88d16c3e16fe0d45757294fb4a13d8793e8e +DIST tracy-client-sys-0.22.2.crate 308267 BLAKE2B a2f5b6250ed37dbeb526165ac365679d53e5800c8dbfb2780fefc517071f85ed139b5c92ff19ae7bd330d6c6662f3c19aa2d19b2a79d83156974357e458df8d4 SHA512 33fa9f8cfe02594b18dee50629f93f688eaa84fb136a2e526b5ae89ad287038a838726bca5d975197c22473a246fc0dfc7b29d7b2c7c385b78d2211cc8965633 +DIST transpose-0.2.2.crate 10816 BLAKE2B 87c6e1152858048fa188406a3683781b5af1f036c8236db2b4548a452327ba221a0c6ce71a6a191b2fe854a3292119cfe548a9b57266f4857fa0e517c331a6d4 SHA512 a08347773fba17586fd42f8e6ccd17c30f6d6c22faf391c6ff57ece99147754366b4273b41186a206f54b2be0bd3b29b2ef49182d23f0cfd11137cb49368338f +DIST transpose-0.2.3.crate 10913 BLAKE2B 5af25c7e404121acf68caaa5b4109f4f3cd56093575139ce54a68dc14bd2238ef1d3cd2c7626a1a9e860433b15d517b57af264dea1f16cd59827bfa3cc4e93f2 SHA512 1a624e7baf2c74da48489558f9327d935bde67812eec50e205a4060180612d7e6d7d18f18c1b118bd7b08650cd089d8c1574db3fbd504a6915c9cd3b4ec09b59 +DIST tree_magic_mini-3.0.3.crate 15406 BLAKE2B 84b8761c1496e1d771bb7d884a0afd48d1a457b87db26edc23f0db63aeb5780966f330662e9725570bffb0122b8544a4e0828e48cdf7ebb892d70f43aaa1145f SHA512 6299f42c3286a9a4b38a1503810b0eee302e99cfd386256dde275bd5df402ba6800cf94b4bb94444b011898657d687f89642634d20f6f07e2a7719c27188d684 +DIST try-lock-0.2.5.crate 4314 BLAKE2B e75c6c0d7c975e294e3d723e2fb023067530ad6db3c7bdbe89b9558764606fd1a74f0d1ba787d85266db1912dbeda85408e85646d0f7cb24496d743b7a18c705 SHA512 433db3c52f55d78220db414ef6a7367791dd66eac935f41dcda85ec9200f0eefeab6e8342e70aabe35c300069c0e7b7c4f8d63a2334b52a081cc98416371ef08 +DIST ttf-parser-0.20.0.crate 161769 BLAKE2B 0c2cce46dac6ad19335f5d4a0182725d347640976f8d1474472b3b0541bc9b8b4360f25d50166de7ebf5237b537a811bf0a4a55e529825689c375ca3777c0fc2 SHA512 57f8b09a47109da06a4472d6a75de41773bc6a4a976684e5490a19b1b6da4631d381650152914ad8ab04ddd01b7c5cccca971ca45054cfdf027ebcd924037929 +DIST type-map-0.4.0.crate 3177 BLAKE2B 6c56ab2600e36679f37319040a529029bf8432959026c95c98490a5f137c64ae30b889dac7e4bab2b4edc656adc22d2a01c6c7a688f8ac46db1505f5c7ff5642 SHA512 c3e81d6dd94d5d8266bf409efb9e9ce6fb5d5889d672422b1f85f406ab62c58e27af5b6031ba5699af9d70c90bd8fca913c7ae0fb75f64358e3b7989f3d32099 +DIST type-map-0.5.0.crate 3464 BLAKE2B 02eb7aec3b683842cbc2daecc5e778719a353c3f9fd24c76262c980acdac2a303b9156718bf7fc15e0ac66345bf1c04befbc218a358f55a97ae0d172390b5367 SHA512 9d35158412917abfd56833a365c32d06df1ce1b2de3411993a43a675833321d9b3120ae4432a4618a887cf087cffc3470b82786a1f67db29a90ebb7b2555012e +DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508 +DIST uds_windows-1.1.0.crate 17040 BLAKE2B c77914e150d2f0afc5c55680e28ba242238f4f1291948ae492fe63c16791e443ef33bafa6686cb753e53361ce452f2df27d2bf4088fb1ae203a47df3c55856bf SHA512 092c41f6fac2aacd5b83009b4aabe2cfc487cc1ad5ebc8237d9804aff0c5c823d3c079d99748e9ec3bb1c02b8a51f6a22e41441ec9a72c50600c08b1efdeb0ca +DIST unic-char-property-0.9.0.crate 6809 BLAKE2B d2bb66259b66e59e831ad74d89528882336a7cf6dfac7a9f49308a70a3d61d5ab88f3ade9df2c086f27ff4a6eae0d2d2b8e63bd154ce3e700cc525769f34542a SHA512 ef969968c61eae6a7d68e6ccb0b40f6618a69bfc4714b51bf4ee8c5ec4532d10b9c6675a4cd5121c904a578ceec7c6471d1496fedbf121059f076ad1c5ccb70d +DIST unic-char-range-0.9.0.crate 7020 BLAKE2B ab79b4298b999a9fbb769bf191f83e259b40b8d06cc5cb82abac48434162216a283fa82c1bc9af8b40656c2d06e5b6a919ff7888852eabb9001a92db12fa48d7 SHA512 bb0ede1695f4f016bdf9ec83bb49639527248c175c71d24993b8651ea6be0a411251ed8518893101dd5e96fd2913cf15ec27799c677ddb08b8e408da06ae0ceb +DIST unic-common-0.9.0.crate 2558 BLAKE2B 4efd81198a61076ed45f6fff73561de21b5b7500277de206ed41cfb01ce8e5046a1e2c5f90ac75c03eb1897b7f54a14cf0a8f6d9cb39f624b3a9fac375468e58 SHA512 9212f99afd4c694a3a671963d63e5349f81adde6d5f50c92ec39d15e7ee24aa91eee63ba578a857c8b21380937860968a8e13cd16bb0ee0c0ccd96b3094ad155 +DIST unic-langid-0.9.4.crate 8850 BLAKE2B e95ae483eb531b0ec50c53a0c5499cd593815e7ce7c20e2c5655879361bc0fdb9daa415e7641b2573a0912ea7042a53dd09528660b43027cbeef3b8494f736f5 SHA512 4297a84a8ec8479dd88b34380f882a1b2891d15be5089d7a015baaf172f57a003f92beb2faa96360262ff19ecb9542b7e720631609c69580586fe4a496fdca83 +DIST unic-langid-impl-0.9.4.crate 89401 BLAKE2B 8f3eb98a62624c8d3e49169517d0bda2992dc57caf6dbe7c935a0eadceca4df98048fb8ebdc951bd91541f92b6ad4fdd543bc5bef0d5c3403adf0eec542fc23f SHA512 4dcb307390567d474317a5f9c231624ebe524b393aadbc135e0923b474a14a0a593aa05cba2ee04eb195af0445b9058ddb5648a282a7ed0c44b4b6fcbc791e50 +DIST unic-langid-macros-0.9.4.crate 6332 BLAKE2B 864930823d705f9bb8e630d86f2d17508ae995058f288871cc4710811a663a294d22086c500a77ec02fe4ffe19890e088bda75151cf06bb3a655dd2ebae82a3f SHA512 a5e8ce24962ce3b2e26fefe624fe8d4816c81664acb9d0b852a2f4c2ca792a1855769f65efbd8f24df9d4c12dd68640ec600fe16b0fc2812390ff74322d77986 +DIST unic-langid-macros-impl-0.9.4.crate 6202 BLAKE2B fba2c4580e08f474e209ed9599433a8a8d95ef3123448e83157e942aabf3d9a4aaf715ac95dfdf71bb38b3b9a18ea34cc1bb672ab4ff8b00e8ba67276e70ae94 SHA512 8bf869f70bc599b7b55e0d671dc88e24c0cf7e16dfecec84baec5156261c5c2e72fc6314436cedf776afd92a2776367facf26985cf863b7b4f525abd6061c59e +DIST unic-segment-0.9.0.crate 34848 BLAKE2B cf04b1d875ebc835758b17f8fa0937da8e47b5c3aa3d2389b9ee35160805b1a0696c3a654d68b60a515fd31dba0571b0a087e97f6815ebd075e1bfeefd0a623a SHA512 cc2a27459dca554a78ce24fee42f0e4d0fbac37c42b4c5a1275f9e3b412cd1c813a4b4864857ddc33b549d99f10c9ce9c277b00f9fa7d93f130f5e47106d8fb3 +DIST unic-ucd-segment-0.9.0.crate 39262 BLAKE2B 73a2f0bfeb17ee731c17e7eb4b7188a800fcd3745c5c6480916240d087df5a856e4f51556e1aaee1e6668b216377acdaf4879beee6b285da040f6871f0c04e6b SHA512 04aab71f97785453dce7f561acfb2382a23d60a68735f3664577015a256191463dd6b1f90694e4440c4889eb9b6380c16c7a0ec2dfc2d49fc44a284eeca43c09 +DIST unic-ucd-version-0.9.0.crate 2246 BLAKE2B c546ee182387db997e6cd699a25bc201fc943306d8e87f96edc1a3dc1cd5ab8ad96f34e8275721a5604765aa6fb6f81e3d8d9eae690d04e5ba71325a769b065b SHA512 153219ff18be02e23ff3dc90bba11fa8c7cda11b972e0d84500d9a0742fb7d84466f2cc63ee278a24098c39634e50742af3317cd942f4ea882ef5a2a8e003d7b +DIST unicase-2.7.0.crate 23783 BLAKE2B 2b74b932b45c9d5b984b57bfe8249496c192944e2e66916919177eac81c509e2d7a5d30a85ea58e8cd5a0b47fec746bdb18723f3f14002fc64af3a0d320a9e7d SHA512 c2b05a3bbd8996e1cf65d7458f5ad95de9797c8349484f8db04967bde15c1f057f62b2f7a60e7367871512071ed5076c0da042169dbbdcaf4d6c16cae62da828 +DIST unicode-bidi-0.3.15.crate 56811 BLAKE2B 1f1d372c86ec7444f13eb32baf13dfc8699b52156b265a2b53f40c0d771064876405451120fe54739a2679e6991caaf4f63e0644f03729cab814079fef4868c8 SHA512 7a21d5eb05ea8d691dfd54ce4cf7d3693d08067f7a88ef17b8c3044634f46411176b1bde1516c442577910b254007b247f5e40f9932eb601cd96cd574f9d9db8 +DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920 +DIST unicode-normalization-0.1.22.crate 122604 BLAKE2B 3f3430b279cc0ce1595392c869442ce676ab097154c688779ebcf726e10c497df59be2cd7bb2f84f99499a9df0654760a10ac92224c17d74775aeebe291241e1 SHA512 a5810d5e9cd93dbb80e013997aa9d38e60834619483a6623eb2859ec5d59a5aec3fc4db123dc7f4e2fe9f2b8799cf6af48bdff22d69a00a23707240e8bf3bb3c +DIST unicode-normalization-0.1.23.crate 122649 BLAKE2B 22ea5ce3f5a2b371c3c8782321b1bbbee724db1e4d8c1d43af4e6bd8044b99307c227d93631d178d10fda445a941a485882ae0015a6e3d3c347e4bd465bbe1d9 SHA512 539f04010810d73fde7b0ab314faf813f3e7ecd2e51d7975281554b7cba4a8706e2b5523c4b7840568593652360ca59e9db0e1ce342e71c28db635ff55ffb0f5 +DIST unicode-segmentation-1.11.0.crate 102740 BLAKE2B 6ab5de53073ff56da4924e8c6ecbfa4bbd72a66b8d86f2c32b2f0ccfefee8064997a6b5311af5de2b71943089c9f52862e3cb13cf366cd645f57c96f2ac8673a SHA512 4914543cf022680f341c4a235f6d9204b3ac9a9098f34a80ee8c94e3d8ccbb82e78af016978eda910987533044593ac629a35286dc80707d349b33e405e86bef +DIST unicode-width-0.1.11.crate 19187 BLAKE2B 6baf7f3b32eb838925e591792abfe11968206d177facefb89ef51daf44c18f3fef1e41c19a47b88b81be50667af626af2024ccc540b240fb6e1d83fdea57076f SHA512 ee06f4144525424327a17578642565f396802f0eea539b3bebc8d9627376a8bc6c5376d83a6ee577068e99fe75815bd765e6d49fb9ab9b253d00594bb15a5ffe +DIST unicode-xid-0.2.4.crate 15352 BLAKE2B 80c327b39f3b8f2cdb5747cde968cfa1efe7b65b6bee9136adc881fa19f66aa5b1010d9d08de55a61b322d665b5b0cb0395e9ac471f6333c40d8dca5d97e123c SHA512 e67bd1258e1961807d9d5fe583a89ab5b82b2a529ecd32cadfc79aa5331380eb4a2db9fd96b74c8eace47f2f29021587d69bcdbf79f7e2650e92a25f7839d03c +DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416 +DIST url-2.5.0.crate 78605 BLAKE2B f3fec3477248cbbe67866577eebb03f517c284a5e5cb783132b11ef3ad156a03524f4730f188d822dec85169d7474e265099296d6bdd4adf5ffaa0a118821617 SHA512 4aedbc48b85bcc2853189f5fe8265a01c76516b5507f4e958d8d0b860fe2590c69c95f0f4b9fd6fac9b8d5911bcb0a5e9ab7f8e8b600f37a12db1438976ee5c3 +DIST urlencoding-2.1.3.crate 6538 BLAKE2B 65777b0990aa6b3d27a47f36114da8622026ac8946b5ffb6e04172b666ec7244a55c250a7fb626472bb2b636eb32ee945599cee5ce7351c3cef2322366db15ff SHA512 035848d9243ed6a4528377b56edd7f8bcb5f824381b420dc8f5c4bfc3f1246655c54eaa7de0e4aaa7138e0b08fd796b9ace140ab919aed2d94f6952b577386ac +DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e126f1774a4377d41eba3269369862f57515af387ea785d69a8adf46338b5e53761b5ee6f4f4380473f4d9cab0a SHA512 51fba8f1e7eb74b7020fd831e30a67fc8353ac2ee07335c8c3374a5570ac8117f165f6905d4b7f0360095b7b5ed3e739001d02a8cc3c89195baf2cd679136050 +DIST uuid-1.7.0.crate 42627 BLAKE2B 493f6a3a643d3493a2bd7e0e92a1ccfb7bd722e3a1fc8deb7df0ddc875a822daead1cdd35dc3ac6f26346844100a671318d71e5ad760c9587471d4f05bbb0c69 SHA512 2ea704d082b725d98717d772e1af84fe743929ee32658ebeb111c6fa2395ff5f44558b7e375087617f91c6f7bc242f2db96e80a631071722de6fe15af845e856 +DIST uuid-1.8.0.crate 44043 BLAKE2B 6a5e3008f0399d5606ea4ef51e5932aedf2a02e747b9bee4b4c2c6646cd959a720373c346a734c00554ff0359fe42bdf471dea5029e23a9e70164e20895cacee SHA512 fe254f0bf6b863538ce568405569a4c755b33bce561148661b10985bf4485fa7ee7a6ec650d93656552b3cdead46b2074ebfd45b040edef19cd1648300f68ed5 +DIST valuable-0.1.0.crate 27718 BLAKE2B ef5ded994c9a6dd302bed27f0d757447b0c86dfefa499c1ef0d25c3a6745ce61cfa2c926826534c9f605f9b89b4a19f91f06f94ae7c03f1ddc4c58fab3ae58bb SHA512 a97f65db1f1c5049a276dbb0e45e25c6fc6ce9d27ac1fcd77c945324cd8216ef60344065c79799ca04e338455e4f7422c44078eea32d5fc359dd0211ee7eb387 +DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172 +DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9 +DIST vergen-8.3.1.crate 44665 BLAKE2B be409f3e469592d90fa1b839721b23c7d0bf6f23d04ad74ecb0ae275e44f2b7ad7ddf747180d0009ff6621830b26259f379abc85e89797a015a0d00e25eca26c SHA512 63da805fbe324eb7032d98d3c09e1f71b9f9cb4f9a69f2a7e4560442e7a83be37c7f558b7d3bdb4719b4350decb3a562bbbd8f2e8dfc180f8dc58907411df7c7 +DIST version-compare-0.1.1.crate 13224 BLAKE2B 4bb1e7db6a4a5b30f4ef950234fa939bd562e8d5693aad42a5dadddde7caee01b4dc42b28d8ef61a769cf573440e57c0dc321f8a8b4b3dfc0cc035507bfed886 SHA512 efc9441440f702518867e2056c0ab066cd2fa6949112479e463802610f25a4d50c4411eb5fd0ba6ca9b187e358fce8d99579188e0ed9ba0297191172ab7af408 +DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8 +DIST vfs-0.10.0.crate 44427 BLAKE2B e870381164015202942197ac877a7fd79d8d5d0aa122aae58b45826c813d7b56add285b64925bc3dd4cdfe46a5c8af3d06c011939e21f8c0f04d5bf4123d42ef SHA512 ed05149b0d71854d0ddb3dbeeb63fcd3ff08bf47036a1d699ff06b13015ed7fabbc23fa5e6901090ebf150bd95dae6ded75c59af268a7dd2118e918328fa9734 +DIST vfs-0.12.0.crate 47059 BLAKE2B d830cb157cb9b4421b05ad1e59b90c27b33a6c8c0b4d9606ee403feeaa3042c5c2dd19b09ced94000618ed1431ba01e140780709fcf7543ffc621db3ac8feb7a SHA512 1f807681adf20357e4b944bbb1f42790b7134f136bd6b016a434141e7586864da964476486683be38915c35cd6b68ac870ab3decb97e4986381f729f82ee049a +DIST vswhom-0.1.0.crate 9420 BLAKE2B ad748822fa9650d011c5f240f5e52ae1e27380fc1b22db2ceaaece4fbc814ac2f2792cf6772079199202efe88fb968618a13d91609e5245639f25b32640fad44 SHA512 0ac192e6a1d296904246d89a08021b55384b48959f26f1f0dca893f8fa1e71a012a0d731d1e48e41ca8e4427da84e50fa43ced621e435b010cbcda4f19c45a58 +DIST vswhom-sys-0.1.2.crate 15852 BLAKE2B b21fbc0af440d3feac8ffb769f951f504e01f630d6f806d78a8f218eeb09ff8940328d6a9289e195deae9fdc43fdd55cfd037ae9c57b366ae57906b80d2f4785 SHA512 cd7e7b9e1953c70470d2f17210e83d28cd2c5ab8fc34ef0c9e06390e928853e375ed7bc2bda343b2f15820e989b5adc5bd33d9cea078716bc31545ff019435c8 +DIST waker-fn-1.1.1.crate 6323 BLAKE2B a6b60c11d72aa5991ba57036bff589f73ddb5c15c399b8510a7e4d2993af67fcfb9c0d3a85b0ed27a772a98d068b0748f4b43145475e46e4a5ee1ce290875a09 SHA512 293321481eba0b72a4a37b158c76b0a783f0e5e4677d9609e43aafb703d44162e4abfb6b50bed1adda5bd1bff95a3b658fb542cbaa6c684a1bc7a8e8cf4135c8 +DIST walkdir-2.4.0.crate 23550 BLAKE2B b4298c01cb38be0479b7ddfee627af01f889b6b6ff432e368bb67f65134c3958a4fe271a5a7dd61b19259ae88f5680e5ce8e12e50a872b05fcba68f59b7073ec SHA512 09e1bc852c01b452c95b26a369831a97bc5c9e0ada3111c73774570dd73bb5b9e4735317d5572304fb48dca44ce7b9f77bbd17c418b6b047b2ab17b8bb42d9d9 +DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad +DIST want-0.3.1.crate 6398 BLAKE2B bcc1384bbb86db27b5e082b29a8dd4d89c37b40f6cdec4df8a86c8d205b418468b6cd42a78bd14ebaba057b28e151c00b474c098d7596f49a823ce33510c13b9 SHA512 f93f765113f035e134b967e8eb3f4511b8e03e793a47899b614d826afac02348fc02865c298a10410ecec4eb64f35f66c22bcbdbe36ed0c4c1665dca1db4d526 +DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f +DIST wasm-bindgen-0.2.91.crate 182689 BLAKE2B 4ee85709546462be3da2a6f1caa02448fa903c7411eb264894aac402979afae4a0d7f3dbb486266b05d8caa911893ae9bfe9921cd36e03eb5147a8d75d6c17d2 SHA512 80e91e5b6094eddadbafd842a4a1b3284de7bb51bbd795e8716a0adac354dc14ceee0593d7c33090de06aadc8bc61b8eeab8851d066cc4ef4661e64adff1988a +DIST wasm-bindgen-0.2.92.crate 184119 BLAKE2B ca256c686bb3854492bad6afe3cd27dab314561a1ea2e0205579820066b462bacdb2cc01075fb420bd20eb33b03a648ce1ff46feee04d8759ea8aa990ff8232a SHA512 6e46501276c0d4befbf930c816d6ae6c3764e3b5ce0ef4aafa627a6ea371f1a056ecc15970a817e9e9bf51c0a2ffa57df427d758b2d367beb6a474d75b8939a5 +DIST wasm-bindgen-backend-0.2.91.crate 28345 BLAKE2B 912a0471ac64d61f18d1c1749a3614ab70d08f330fd90b903ce5ef51f18288c7d4ef153f1d8100671c02de8fc499928cf925bdab4da4f0352789268dfae87457 SHA512 7d3c8db4503982fae9c86620c964e8f9a4ce542a79c56f21d9f82d26bb9418e78b7fa9922901663bf78516d58652dc3255ef48d1e1f042d8a3c69210f5804204 +DIST wasm-bindgen-backend-0.2.92.crate 28348 BLAKE2B 425497aa7a023b70549c55d5a15dfed80877c5503863b186c0a9d11b29551c4606c1cd5961c7dfdeee2eab5662952ad7ad215513e93abe727a33f84b30bd181e SHA512 22e4f5848d62bd1fd55f4f054ea1293e223b3cd6f916bde2523eec10388e733623492c3a3246d61831e696dffdec5d000b95e9aa1217be6e38dd6459872166aa +DIST wasm-bindgen-futures-0.4.40.crate 15375 BLAKE2B a11cdba684c14f0deaeb22eb490012b1d72d03e0c5307a8b7e1fafbdd19207482770c66fe02b013bd459a073757bbbb1e93031e8f96ffde04dbb6717f282e514 SHA512 8a2cd103e6d2c8c2c4cf1f83897f9cd54319bf1a648078c18b0bbd5f47903d8ec21949b776eaca8c997ddac7b9ffb3cf48348be1e830d485671a73bccc876250 +DIST wasm-bindgen-futures-0.4.42.crate 15380 BLAKE2B a20ba9f2bc814d7aac031f1cbaec90289f63893b76c60b536a65af85379771e102d6c3d949a8528328587ac776d7a3b684c12a217f9e186bf10046a1fcb34652 SHA512 0a77203499381b6bc4e9258480d7ef499d9c26b195baf38d0b7b228872f844d24c827cd57c8e2b0176927fd5957428084f53fe80cf60b35b7ba02d02b27a4682 +DIST wasm-bindgen-macro-0.2.91.crate 13898 BLAKE2B dda8dd5d77dc57324b633f056805bf7892c39c5e70257b6d048c2f8cf885f7306f91f3f17de1b63dc740db66d52fe2250ba981077e03dcc731dcf7c80c047c9d SHA512 6b05e0a2657e7e4f313089787b52cc7f59f5a94be6f716ba007fcbc3bf7c38561225ba3f39245d779e28dd30630b2d4c6be12baa6ea1e6cb47e562ccff48372f +DIST wasm-bindgen-macro-0.2.92.crate 13835 BLAKE2B 1f2202fdaeb78c32813eaf08b2fbd7aa9c469228386df71b8ffd81a46374e39a7104b79991f702505f9b7e97957fda8574517fbb03e3f9e93098c4d6e1e46be3 SHA512 78d2ddac88a9ca3ca5eef8a7af81cdf2366187a67d844e69f65f6893d1949f9723ab5f2be762c2217a5c21aee2f3dbc2d5d55ef0c9cbf0dec0d52d67a6ba7462 +DIST wasm-bindgen-macro-support-0.2.91.crate 20091 BLAKE2B 337b1b2a9e9e9c1350267df0d9f041291a847cf4faa3bcd6fcc8a96e66fda54685da72f6e64e57cde0d4609409ebdc7851e96781f599470f8b0545018bdc2166 SHA512 1277682520d88cb9529adbc054590a732a8890debe33d1d64ebce332c66c02f84065c0f643fa45c01de8b80534b2daf8333979601323b3ed50dc49553233c39c +DIST wasm-bindgen-macro-support-0.2.92.crate 20092 BLAKE2B 8e274a4053e7afc680740e811c3941478caf5342e2206e3d28cdea9f9514bedbfa4f2b6bc608817306a1c455dd7134b7e17f0f04499f6bfb5302f29b041ac7ae SHA512 92543d2aad0b25798ec20e68832b823610c2c01401088cd9cac1684a86ddd1b567b3e2712acb862060f9c645a0df509b01d9834fd3e13cdaab97960f66d8daa7 +DIST wasm-bindgen-shared-0.2.91.crate 7267 BLAKE2B a9dca2db84a33c650a7abbb6dc552bc4bab1446e66aace751d3709d2c63b878b127748a83cb174aae3ff8c5f5ec017b97623e5e9294e6ebf92d669efc618c357 SHA512 97072a8bdfadde104f6e9e760e1ac5ec665fdaff38a93a0bf601c95e652b35403e58a99fa8c0fefea6e47b38fb97f2e1ffcf52736f9ab890b0b9632efb26cb4b +DIST wasm-bindgen-shared-0.2.92.crate 7263 BLAKE2B e54895486b9a31cc4651b7bb042059cc84421708346c06a9764315ebd4f440a1077520c7d325d6889a690b2c06aa185d40cede2dc4d061b363594cbde20fac31 SHA512 70e3a22731ed8aec428433bf30500eb3f62e3b7f4f1be34d8bb3b6f34f99690fc85d49eb413caecab807064494cfec64242c6a42709dffd638046e370bf86e07 +DIST wasm-streams-0.4.0.crate 34328 BLAKE2B a29fc66c00b9fab42ba1691ddbc251bebba429837875989874073427cfcd2ed1874597d7f7a9f1097e0bab74a3cef04ba6d312ee9138a5cd973d71837a545d6c SHA512 9a729b183999bd5cd6a31e69014381371d7c750bd0ff5c3ef0b08682fa4563ad8de1a2db0901bfc53f6721269c937cfdc4742b34388829513dfee1337d30d60d +DIST wayland-backend-0.3.3.crate 70455 BLAKE2B 9c6bbb5c8982411b8d63305cd109d5dba3b396ea1c130e0327dc31d4f6d0df56e8d8fe5992fc80c000bb8127ad4e8d32d2ef5e7fec925fe3b0b508e63b4149d9 SHA512 fb3c7f25074747954b5dbf8455c2faa92862ae53864599f49ed64b74e5f114d7e578ed388cb3b7240fac3fff98a5d231a977154bbe976354938d66fc5da5b8e4 +DIST wayland-client-0.31.2.crate 62976 BLAKE2B f7c4e1f581bace8b491c7ffd393106db44b7be028c136b1ab99c9f091f828c6ff6e5157234882a7926da5cc0de22c1ce14dda7e00ccd5e2ecc5e3356dec86e71 SHA512 1f15b1f8787e1b25b90369106ac6119f208a60ab9c3fe851287fa9c7c8d9fb03217c3f33ffb1dfba5df4f2a749be19402d25ed80e1ed9d7301c1c40e847911b8 +DIST wayland-csd-frame-0.3.0.crate 5696 BLAKE2B cc475e52f9cb0bd06569b7a6996cc78158a07ed2cad7282973806d4b4dd345b968088d5d035ce1f52909aeb3aeb804b93243f6fe98c38c0e8032d961992cbc1a SHA512 2ae56291ebf40e84ff690f15ce43cee36a29fc67975cb1331c47a44cd93aab7c19fc8b385b67149a62836b3bcbe1d5bdb646078b9cf2b00e5288893ba9840bb8 +DIST wayland-cursor-0.31.1.crate 6883 BLAKE2B b70a56f45fc16d0dbb63ac64c69270ef1ef4185101c77751fd063913489e49e0c0257e83a07a136f2f6ac8d923a495d52bfd6bbbaca69b5f3de2f4f50fe0ae44 SHA512 42b975a1c9097b588505243c2923ff3acfe0aa312e8dce5390cb7aea98924f3e29d1cf29245a54a54b617829028c96ad2b5ad51f3854a3e85ce840eaf0edf844 +DIST wayland-protocols-0.31.2.crate 147062 BLAKE2B 62d5ea52833d9edc661d405c83159f97c5bdbc41bdefbc9418a08971236cb74d317efe11e2e23ed6d96f0be27e4a830b4d47bf27d5b269e30e5a4cb97c469c8b SHA512 8f295413b20f308fbf337d8d6e2b6905061d32baa0aeea2aac55edeceadc754a121c56b8b96ca218aa902cfb26fa168c84334ef5033f8cc72e1505f1cfba06fa +DIST wayland-protocols-plasma-0.2.0.crate 59992 BLAKE2B e43993c207db0ab01c09ca2ad523adaefa1b07978fe2bf67c1e16a8d7e24f443e181a4ebaab2555bc45119d0c66a26ac4f91de932d13b3fe1c881d9bcf0a211a SHA512 d72a03ae0c34b9102567b584971714734aa97e0bd85a3447663a0f88b05bc06a295b1aabc46b6c92701e620c2af87ad6a321a5daddab0df08e7e09f1337f3cb6 +DIST wayland-protocols-wlr-0.2.0.crate 25804 BLAKE2B 226af653146d7eef2ee0a7b6d1484048c5f8b1d2618d3bb9d33eca7e019579c9868d42e5488ba8dc830457ca186a0aa07599accef22902b982d653e381b2f4ef SHA512 b1e5025dbe50a9b90bfd7a38d7564ea8a02c84c8c802d2200864dc604847a4b0979f8a0e05d8d76c2b7c1e198c7847e4d59ad49311b00ab2d4d36eceb776a16a +DIST wayland-scanner-0.31.1.crate 35419 BLAKE2B adaf9d19f395c5b11e35113ef31b5e11e76fda4929365e61f5a40fbc3f8505e68cacc4e31eb0137da2a07edaca898a2835a22e7236affddf7fea012f087197b7 SHA512 61521f39f414bce7bf372656544294382676649a42d3e2751b6a33874bf12ea3fe87d55c9389799197bbbab36fade2f386a6a83437434d4e0175347b232f7f62 +DIST wayland-sys-0.31.1.crate 8577 BLAKE2B 9252740742340e1f4a4192f610c3c8e6788e08e9c37528c97371762a8949d5eedcc9c052f2b74edf23218e8a6dfce3c63adea0da769ff805e3f68d689d041fab SHA512 79d6feda8a2a4307218ad51b292efd7d0e80707630908a9ae9bca6c0ceed57af874f3b6467915fefd078279ff4f7d39291d84d6250312f692305d38d7f0bed3e +DIST weak-table-0.3.2.crate 23989 BLAKE2B f5b12d62704a86f77fabaac918d084a4f7471b52994307da20376d48264b811eaeffe2cae2f28ebeeefa4338c758516bcdba5d138cd7ac12ebfccc697009e167 SHA512 78936f2afca36575d3faa823ef4e621d7dea9e3eb4c8c3e1d66af296951fc25476dc8cbadae184322f6e1e8166410df617fe74794b2d3696d599bb2406499562 +DIST web-sys-0.3.67.crate 725967 BLAKE2B 4d9080733645fe5056bef44d7649372ab588ad8642bc8581f15c7d24cbceafbd214569a5f07f968d30999b08588005c5ffa0c63da16d44bdd6d772e8bf712a1c SHA512 9653be945e3c19dd5ff344ee002f41762a5efc24af316424a30246427e15d1c945f6ae25b9d6dec1881867003ea0dc261adef328bc1a1a8f94d7d792faa95e1f +DIST web-sys-0.3.69.crate 728877 BLAKE2B 9f1678cbddb15f5a37331216a43785c72896f87e8ce62c6b9e69007316ca6eeaa7edbb33b9f2d9bf96c98de2a1e10afe491d8734657b186e2c3905ad1ff19ad9 SHA512 78b79ceb6a47485c766ad660bb8b971ba549424542a020c35c7db64a19f7b161617e464eaea0602f433b6ac4973b8d1a86a56e76dcda179ccea60aef1245347b +DIST web-time-0.2.4.crate 15743 BLAKE2B b0255c2d8742c736a2900e32422c439c90878b3bf883943bb6772b91ab13411fbe6617b7801434062b1529843c57d7debfc454cc7a67553c6247047e4def4413 SHA512 d52025a11a11e3286aa0fcd20639eac6cb93ac189b368419adc0ccd2045b288bee9df8c0042a65744a78700e4576f3055478fd52c5a5381088f9a6e28ca3e3c3 +DIST web-time-1.1.0.crate 18026 BLAKE2B cd72e384aca90c79e587448160587531c417f31a32e9ded23e6b78d492d0e517520170fd03177f28870c313b9302b28c32069a2408acccc076a1e4939a2c8f8d SHA512 73e4ef9851de089fde9381a595cb9e37a434f563f1fd350e345f2617b701caf57a9aef739b922b5b10cda131cdf2fd0af42c55603f8973a623a8b6ae70f6cc9f +DIST webbrowser-0.8.12.crate 38923 BLAKE2B cb2908dc0dae7b3f9c9c9f4616a7952f845c0f00048b58ba9cea957e33ce651819b95b1e7fc96279df9c10a84f405e43e564927b39be65e41fedaa3dc7b2debe SHA512 b83488c3f03dd37b7810ddc71788febf5d613073fcf55d356bef89b603335470df651cdc7ea74d2c567cc3d0739bf272427fb86cc90ca789faa09fc712d971bc +DIST webbrowser-0.8.13.crate 39032 BLAKE2B 01477f7b7ab6d49581a679e7af8e0a132bf1d30c7c8b8a84c83b173421a6019537bd06c39aa6ae2282f6815d51bf07cc4b601ec188d34a0514096140f0427007 SHA512 0f7afa20f9bbd2216637374f40f448d6b5cf1ba5d15510d371c70e9f0cf9078db8f2da67d173f9ad51050e39c30a68aa0ee73941d8566a64a13fca38857fde1b +DIST webbrowser-0.8.15.crate 39264 BLAKE2B c33d3def837e89f9c52635a401dc5db56adb3fef4cf57907c0770cbe7b576da4d6147c0a93c24a309b99a59cff91be7756f609c840db0d11c81de7f27a04a0e8 SHA512 b34d6fed1833b03dcc949429443acbabe9f5fc59ab559b87cdc3764303eb817d628f27c46b6361a6163a60cffe6b0f0acc93d2129b8503dbfe9711fda3e21442 +DIST webpki-roots-0.26.1.crate 249748 BLAKE2B 6a2468eb2f868c65c599d2f6664798f75e77cb7a7228a2c7285ee5256cb01d110709474feb389991f12ba0d143211770c6922932c7fab01b4b0e37b612cbd453 SHA512 89ac53267d850953aa78550a60f58f5bcb0f9e885c4c448911dc55bbb8dbc3fb845cd7545fc40ff26998b0c360756de85206adcb148ca6190e50bc2daea7f61f +DIST weezl-0.1.8.crate 42175 BLAKE2B 2a8dc84f018a4364ef814044a590477724b79655cd01d605e02442bdc8de1f7df3003946041dbcc17bc82315f0c11e7fc3c3b0b0375f65436f53bcac11b2bc71 SHA512 6012de47d6bb5177820be9794e70ce6354577247750b8a125dad1d3e093d96cacba62471d8f67f056a72447bb6bf7fffabc6254ae96d93014a5200c71d571c97 +DIST wgpu-0.19.1.crate 109340 BLAKE2B 6b189a25dfe5a9d8ae56c967f509217406451d1160c621e3cca0e8011172212572842190e0e1780960a2f3b4cb46e65806d67bce8671255aaf67419234907510 SHA512 809a762b686ff68c784c96b7f65263448832588b93ccf07150193dbeef515cf9d0f03e82694d6f846d5183e5418689996d3b602576aecdef8b980f7c31021961 +DIST wgpu-0.19.3.crate 140218 BLAKE2B 6f9ee1d9ddad7557caa13ba5d6dd0aa3463d5f6a9fca086f4e1e1fc07f6cb42b28053d829c44804c9e3871d42724b6949a997f83203e03d4c80a37ffa076712b SHA512 8c16820fb25b40c1b870aa25b52538b171dad278f26d2dee69eaf4db46d6d9cab8433077b810bba2acfc10a5b7953659efb22327979553a210cadb71695f7b40 +DIST wgpu-0.19.4.crate 140361 BLAKE2B e1cab07eec353b487f7cec5ef7924dfd8b892a58332ef492ad0ed2baff77766dfcdd4aab4b16c1e28b5704702b12e5f8c0cec6a33836283b628cec4bda2b332b SHA512 6a4e92be70b639ad7870db2a1425f145448e480315ae1d2f5de061c4a2b4be3dd83a2971138dc6de107356947a8bc40ec869b7b0f03a99873065f07217cd8b62 +DIST wgpu-core-0.19.0.crate 237141 BLAKE2B 77d6b885567f7453444837ac7bdd3fcfb559c822242990264235726fc40c738f4272103854e80f9f6631a5423fcc822ec1d4d121abbab470589dcfff8f2cd56e SHA512 8c29bd03f4a62e0f598e967cd3dc4a0b9828d115949858da4116994b8374a9fb703455e01dc188a44ba0b23c782eb9af19b68ea45ff791d066f9d784c58962a1 +DIST wgpu-core-0.19.3.crate 235851 BLAKE2B 40ffb89a2e4b960c4b88239980c007d70dbc4196cab10bedc5fcf9092cf2cba3423261eec34eaae1be098b83d82987f37c18e908a73118007f471cfa545d7d0a SHA512 330df424655981937f11e32c70fc2ada5f21dbfe5e82961eb3c0093ff329f5cd7db69b7e05126bbdca5fd04c4f16a08392daa0b3afee609b18ad67f5cb2091a8 +DIST wgpu-hal-0.19.1.crate 291249 BLAKE2B a1682b55ee892cbd803bdd450f0029928d86d1306b0df7a04ef5b6f011c21481173f5798bb89a655279376a814e34cd6e573d4e76269ee728ef74fd08fecd81f SHA512 1d42d567d2a3762e0ea4abf30da4acdbfc8284723ae34c6aff21ede250de6dc7762b50d8f5d2edf70b214ae2d876c5d22c9c1c23c5ecec2c6c84afdcbcda4a5f +DIST wgpu-hal-0.19.3.crate 289888 BLAKE2B 4fbbecaaa29b3691156a4923d8c9bfed7fe1f84a7bd633449bf70c196ec7e96deb1f85953b2511d1c7fb471f3663431e22d4cb12a6d174507686e448fc846f11 SHA512 372e63533c796859152b21babce39e8decc8e5ee533a9ffd203f08fb7eafbbcffcdf8057008cb0fe36756ccb42eca77baeb35c501bff27b4c6640eaf547ffa08 +DIST wgpu-types-0.19.0.crate 59618 BLAKE2B 0b6cd6d4ad0271cfd5dcb12648bda84e1743b4a51f8c68c47038bfca490cd85ad2e043cef5d39156146b94f5bd6770d5929d217c163b8e290b9a6640a582206f SHA512 b698a1e7ffad00ac61897c11d4128392889f52c64984a62233079df0c3b42660e96b4b54d7a3c2ec29d5b8ea46194308dcd35516ecef8b3b6ca2215a9eb10941 +DIST wgpu-types-0.19.2.crate 59463 BLAKE2B 25d333b889e4fa21a79d0ae2a4b613cc317afa1eb57cfc73e08191facc29a2536a00a0cbb67470da9f98b1dcb11e96e3d63d0b434a6ddaec479db2beea2faa2f SHA512 5476fb614a92cd74197831ee7f7aa16e7cd1ed8258d699458c7a77d2ea2d6224c58076f994e01554cee8010b826a8d0dc15fa2c03a25797f87f4d92060c69ce6 +DIST which-4.4.2.crate 15953 BLAKE2B 40ca22cd2f625cb035a1d919ed457a300b482c7751dcee4441974c53d56ce13f1f502535e1f7c0746a01981f4de2e2f761c3a255902d6353db1a4c3c62637448 SHA512 2d12aa1d4c2dbc140e39c8f15bd4ee1eeb8e8de71bcdf579479ef4be860fb0839eaf4cdb818addba242d50420f6e08acaf2bfc979a889e092c83644819246fd5 +DIST wide-0.7.15.crate 80990 BLAKE2B 6e9321206e1929257130c18074304f69000cf69f61df42b7924fec6cf0416c05cac02062d910b73b90371a7e6fd3c4e7253644516708bbf1cc688bf0d9b7718d SHA512 ba28b5583b524bc32878b07bf183ce293776006c514fe7a6ee95e6fb9abe8ef4e832c4dfb0642b224df3e8f7f39d9023a50492b414c3a77c28caff8eb1f4a19b +DIST widestring-1.0.2.crate 79706 BLAKE2B 64423d0c485d1596015e9fcee691222a2a69b85a1b13a91651c50c1e3c5ec61c5105232904c6239bb442a2b3f2e808379d802856b93bb62ec8779cbf3db77655 SHA512 cbebac37d87808e791d7839ad69e0b86af49b0e8a354a22e11797915c719937ed5b0cb638e5afc9d710cd1e073eaa9f7db76cd3ca1ec35a71b565f0b8f55407b +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-util-0.1.6.crate 12234 BLAKE2B b8db8ec9d7ada5532a22a2d070320174c32ece1f48890e9b028708e194fe72a04287b11910dc2ddc7f9c9674a9d8d39449b3e100725e1f59e59e3047a7e3650b SHA512 b1c949f9bcd34c1949a9d3a7bde6ce62fcf3d2cb66df60af41fe67a9d1acb24e571cdd5ac721be9f1ee4b3af5ef5149b5724ad6e02b558e124ef2a4412d12db9 +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST windows-0.46.0.crate 11668505 BLAKE2B 0f707487e1a2b23f18acb0f8915be9ce180d2a1367909cc639d4168aa98049b1796e4d225cc0ef746209a41a1a60ba492b1c75fadc8ccb40fe176cf751b59631 SHA512 4f4ab7eb7479bff554d2ca20d795753f10944b8e65c6496fdf02436411b598ae09fc174cfe9a75e11999913adb5e1b2b672bc2ff3426ea5408a9a5916d5c4aeb +DIST windows-0.48.0.crate 11864177 BLAKE2B 39c0e4f058f68a829ee08721818a0b04287af20dfe6e03a125b75566b4c8a58b56557d685600f1f9c215811154f9782f12368d42848445d54dcf9bfd6471349d SHA512 7c906f885fa0a730f1cb1ef4e62f5b602a49d44343febe1d38fcd4cbc28e0342766983796042585fe457aa229333558715b6270e378946faa8f398a7ecc2af8c +DIST windows-0.52.0.crate 11843715 BLAKE2B 0d35225f5d61f71b0cb768f03825031101e05c83d7f12e05cb17b14ba28e6bc6a3d5aaee5ba07e54c1a773b6eadde4ce3523ab87e8e313e5578e2de01a3dcdc7 SHA512 8a9d443cfae3b44ab50bdffd70b70ea3b3d536f464e4beb7cfa9e15eb4e4505cbac20266b44d589bb7231790a87f473ead6d2160b8cd18d62f31b78bf61417da +DIST windows-0.54.0.crate 11096265 BLAKE2B d9e2741577ef5a8cdd66ff0dc3de16d92b5005a43c4d521f9c9670ec15fdf0ef5f9656219695d80e2f9bc2ed51e31b5e3b867c484a00dae1a388b647f2eca6b9 SHA512 703d9de3d8624b9179e3b4aae24c8ba384c823d54e9f55133c9ae8bec8090019280674aa6c8e47872d91fb0f194c692ef5cbaff710714bddef12cf3fe98552db +DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36 +DIST windows-core-0.54.0.crate 44015 BLAKE2B 2ec7bdc09eef66ca4360dbe6b6c75548b91abc6cbc7272818108d3f37b97141bf4ee57e1b70cd33a5ee9d637be9f3674067ab26cdd204d97aa195e4f59b98935 SHA512 eb83e67ea04b7fc6cb33fa470e43683588a26c842f6949abd3b5ef26753dab3f8ce6924872a3dfae4b497f7980921027162c6d364a02430d3af7d2f63fa9f45f +DIST windows-result-0.1.0.crate 10486 BLAKE2B d830c0edaf913014dbb61e108b5c8967c50bd8b8741155b1ea6d0d3a0181d1fcd9d6bd260e3c1413697e6c1f8e4828547ae44f5c4c5ec0cec57022d6803ab13c SHA512 69cd05d1ddc61e52d1f5c76d48a8de716aee40874ab6cfa5b72143873fa4b09bcfa82be6744c9ed87b551e0b0d0489f87801ece5b74d4993cfc1a10580c6b29d +DIST windows-sys-0.45.0.crate 2568659 BLAKE2B 6f2d634d121a9bf41e2887e277a73f33aee69b04c7fcfc6ff973d21902787997f1e186f530e9226cddc003ffc3f85a179c069c8a8688de459f617df92d33f94f SHA512 f239346c0141b95aa76e0771e2f4e38b9a592f3cd92c6001de353637cd65cd73b94cbf9917a4eaa9b0c0b2e6e2af920b9cf6b3fccb52770df5160254cffc1c47 +DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed +DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03 +DIST windows-targets-0.42.2.crate 5492 BLAKE2B 42fc4a7d3e287fe2a70637e890304b49737776596f4a94a6d216668247092135e84322bd04caddd19c83b7700b0f27278e600ce8ed326957fabc21bffcae89b0 SHA512 84fbaffcad9a80beca77506aac26d0c5cb75aa0f21a5a70bcd3f6a16e71e8753ae00d3b89da9262c99756624163dcc0d6074fa9f99dfaae0dc098018209025f9 +DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709 +DIST windows-targets-0.52.0.crate 6229 BLAKE2B 4b1efdd32202f112d3782b586ce60667f5d3b6f97ccae0d7da833aee2ae81ceece88b5ef4126db2448c9019de3f77e4fe66ed4286bb6275d9a5e8ab74725b804 SHA512 0ea09552d89b802ec0d419b640fa02d0af7af602704a0e88ba10f81d123dee0c907460f6ec91224177ec9a948970abd7414740eb219148a4d66c269c2362740e +DIST windows-targets-0.52.4.crate 6310 BLAKE2B 0393bf3e7f8823edc455055e9977798bd6cdc1e523127cf840ee1b9e36febe40e01dcad9875a06aea283dd55443d02f643d42752103a5ec1de933285fe410b17 SHA512 4b2c26468df54b9801e6badd120dcffc15429fc78a614f45efa16d5fed1a36983198fbb621cc3beb4a4f9f0161ef8ddeca3a5c6a6ac48b5589681936f4d2bf50 +DIST windows_aarch64_gnullvm-0.42.2.crate 364071 BLAKE2B 97c4e3b2a2dd3f936f9bfcdad23639c9c4c499eed220aec361d26d6013d798efa118e6b298f9cf841ac149d2ae5d58ca653731718450fcf2910bb5f6fa39159f SHA512 75cd7eb1def8ce9d0ff3d7468d2b1cc31cc76c08f981a2460c3d1eb09cff7100d7442863a3591621c1f5f3b3f4badf0b5c95285b6ed583e37283a8403f1095f1 +DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996 +DIST windows_aarch64_gnullvm-0.52.0.crate 430182 BLAKE2B f23370c62c4ab3fd885e3ee22e8ec2fb5a3a837a57044c1df3f9986dd4e7e9d0a44ec58be1648a41e1ea4d037afa3077f0f03de0204199a82fb8395731815a4a SHA512 b7c3fe0a2ad5149be0df48fc7a4d15879eb130bd9441c58c25fc71b8a91483f0b553fb1bf29a9302acd348e9083a547430a840b059b0cfe19867ecaffcae986f +DIST windows_aarch64_gnullvm-0.52.4.crate 433373 BLAKE2B 5678cf2371e4c566b7ff0dd1fabcae92d12ce9f97670524c93fd8c34bf6b09d054e7de2f852302b8d994f52c81015b7cc8a74f529490c7bdd17a3b5d2c88a12e SHA512 dbb914a866873892a8cffecd4ed4977fe6c3fc48a58bb9f88655d86e7f8969cc27e6f5bb7d40eee41ae7d78f6f4be65d46650719321a7697c7b5b99a0f07a5dd +DIST windows_aarch64_msvc-0.42.2.crate 666981 BLAKE2B 9f3cc5592cdede08bcdc1e7c455325279e3b763d96942695e10dccf1dfc37a81c749b69a7d6de883d4c0fa6e8a0d2f578fe2a8d6c42ad8ef6282590bf8fc87b7 SHA512 d2dafa8c94d01c1b65ca1bd631d31f2ef842f1db7accb132ff78c3f8483221b991afd3391563e03dcec42bbc9cbdc0ebdab47b991d25af85b5ba2ac1bbf8db63 +DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff +DIST windows_aarch64_msvc-0.52.0.crate 821663 BLAKE2B e6f772858205f7cd871722136aec4d00daea4793ff9dcae53e6311e74526c46aa11c2b3df7a85e6c577757254cbfa5a713e68c694625ca274b64e7a1c5532c23 SHA512 8446bfe5b9fe538415762c8129ab3bf2fe45482e045bce367475747786602ad4ae1187c6e508dd9d7b6be81bfc8d430e0db9c624e35c7cc52e823023e46f5cf1 +DIST windows_aarch64_msvc-0.52.4.crate 828055 BLAKE2B 3088f2f66fc91ad698906315eae7e6c0dd7da5414c28cfa25b24e138fc4a7da40535be09129cd37b8e331d8d6e8c41d0106fba1ef9e5b4ac561140653e9ded4d SHA512 dcc538d0a9c276e7ec415575ec1392bf476219348984d9567f56d5cc7af0f9beeac523a9a6651f763dd4f50f89535a3ea2275d5321ec022c2ee8814e4e84e95b +DIST windows_i686_gnu-0.42.2.crate 736236 BLAKE2B 4ef0496462afc73d9d72af7e5da1e6d3506a92f8172930e88ae64ab97596ffd31c4f97fb969e9b677e30159c27f00a8e756deb006b630fb98ce83f03c8b762e2 SHA512 ad09d650a05cb91cb6b40f59025c023a4c286bc1194586697c506016df2b9b0d5b02606b81687bc634795a0d9a9b8a73e486599328ae09c853e8e5ba662fc59c +DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a +DIST windows_i686_gnu-0.52.0.crate 870285 BLAKE2B a7688062a128a1b1394b3978210334e4e2aaa10dce131457c4a11ce0cb3f551e7f4962d1ece1846d8e9526983ced0e0a3ee8c933858e9314b62e76381e086ef9 SHA512 fe993f5bb6e039c257be9b35337e0221f718d23866818bfd19c76aaae236aafc2de4bb5014fcdf919563b5901cdaa14a2136cd086eeed3c83e46a5d02f6aa77e +DIST windows_i686_gnu-0.52.4.crate 875736 BLAKE2B 31ee3017a6db246b0d5fc02e10cdb517a69ceac3dbbc9d41b4051f5dfa1196e4a46e7b3f5f90935560c03bb139b897e5dce69989a3698d9c88ebae923e24ef30 SHA512 9d57260744607eb63453040c532bf3693cf3d8d93c56543ee00aa66adf3a71919e72bdef7811f287167403ade893248f189b797a5d2dcb24ef4e6f3d915a88c6 +DIST windows_i686_msvc-0.42.2.crate 724951 BLAKE2B b084286cd4927efd2889b149abf8a9fe9d3d777130db9e592982660dbf9a96a0f5e723ca121465787aa11877d2d29a5a7d7cf066cdc8fa7e90d7ca7dcb7677f1 SHA512 c1706fc36d4b157c020744a11b3eb5d7dfbf05a0b56775bc717e94b7fd725816b20154fdbcd69ac08dbfb8b8bbfa74fab72d7a9c10399aad6a1cc54cf597e804 +DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e +DIST windows_i686_msvc-0.52.0.crate 888693 BLAKE2B 7a6e9d03e503c8f543e80a8c7bcf3f50cfa7eed462e487ae7b581746d7cc4d871b33e307110d3a3a75226d88e837f9452ac56bf3baf71b66cfab2626cc15558a SHA512 817ac796fd00bed51d80133ec873cf3d3d582ba41fec8a6f6407fbd7544f198e928aa5d710f70c13bbf74a1dde4c91c54e65eb9d3b7518a7f011ea42725eb671 +DIST windows_i686_msvc-0.52.4.crate 895530 BLAKE2B 87ec4628472beec8697317662fd599a8ea0ba5a11a0cad6b23f2481f39b3a4e0546d37fade4d715ad06a4798cf7faa6435bafa1e5054105c064cb560468b6025 SHA512 0d5526b21bfb96ab352b5181dcf84ff31007ce338245a374b3b413805239359a689b1a21de56ae998cc13444e40867bc30c4200454b84ef9ffa7117318baef1e +DIST windows_x86_64_gnu-0.42.2.crate 699373 BLAKE2B 01c70809d564b16b268656e47295e99c992d8f9839fac8a51338a0e7c3b9cdcd0429c456ca8c1c139a8c687ed7ed6c43a82250889d881aadaa65bd037223e0a6 SHA512 5767af3c86e717f93137a89d442230e6b60a649057edb3ab104b1f82c0bcd64fe089dcdf2f4fd486a799bece1ddb5f0449641536b678211945e749ae24f35c1f +DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74 +DIST windows_x86_64_gnu-0.52.0.crate 826213 BLAKE2B 3ca03285ef289fc844261142154e710e996c29940b1c0a7dc3016906ff6452fa50b24f8668fce0ca44bf169ab1228c217fece9f7bddac9ab8bdc54fddafaf8a8 SHA512 2d81af56ad0bc9536f6e066776642a546ce6c6d99551edc0603ffcafe6db15d5d5a32a642b204bbfadf34231daa3894ad7897a9c0c575c2b6bc1e3e58a9a3eb7 +DIST windows_x86_64_gnu-0.52.4.crate 831627 BLAKE2B 64d29f6e0837be822d89cc8aaea2514382d2c03b33deb5684df1d6b81573b3817add39d99f66181a762fae7c155e60a8c070affe43a0f2e247fb0c5ddcc7afd9 SHA512 96c673fb330af597fc3c71b53b9b66cacc9f3f64f05dc7cfe4a77447b7545280f065df22b7d91a6b7cf681a442d8b71c9d2dd128e76580664d8598c481cbb95e +DIST windows_x86_64_gnullvm-0.42.2.crate 364068 BLAKE2B 64bc53e98eb3fc649c9b43a6e734de4e65088e41edacabd49f7afcc5dc6e1065c563ecfc682747dda05978dea2dba4f45c16fcc18c3b00684c3d93681e5a7deb SHA512 d39a8bc948110fe612d3f8d6628b3f0d56620df11d8a49e0fabb6c90389ad407582b3af10e4eab46c79b3d11d2e10753d73d9e55963fbeac085f41e9749bdba3 +DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa +DIST windows_x86_64_gnullvm-0.52.0.crate 430165 BLAKE2B af9345a1f6e0ed1392ca1534c68d23f3be0fbb6a42b3c5518cee14373e645038526da15e849d14abe45c53766a30c6c2042a626482ba4a05409f325eb6aa36b1 SHA512 e88af35fd1c694dc189783e5c81aafa61aeffbddce4d7130e1125d0ce3d932fafeb345990ffd98477c41b578b7f5090f4f9c0457b02146309b95549c9f8f44f0 +DIST windows_x86_64_gnullvm-0.52.4.crate 433358 BLAKE2B ffd55fba15ef713bd48caec5ed5f32936e05ac4897b721bd2b041229bc8c7beeca77ca018c3258dcdb09495629aa359d1dadaaf5112d38e7ea54670309d0ddf4 SHA512 f153d86b01e47f17ef08271b69becf7883bab92f96d40cdb1d74432f2bc6a7a65aa4ed931d8f6f4c2679e360bbd8d12037dc2a74a6a444fcaec5e4c784c54c74 +DIST windows_x86_64_msvc-0.42.2.crate 666936 BLAKE2B bc3a456e7f8bc272f8978ec69506ec9d89f97b7582ebbe05d8bd57bdf8156ef62d0d2dc6137a97e81d54059d70db97a24af9a038adff357f5dfd28805d6193b5 SHA512 53a35f438903fceb59e36bd2ac331773fb8e6c8c5a6d984e79021761f91b3b4a23efe49d219667a4d0d23dcdbf906da9c24e74fb1cff93395b5c55ff524e3788 +DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0 +DIST windows_x86_64_msvc-0.52.0.crate 821600 BLAKE2B cc448b65f98fc0fc4949ae622b7020d2dae927ae45310649f6ef71809740eda9d3db0fc035676c201fd9ab9639e9e7f21e2e992b4c789542f12b419d2c752179 SHA512 3aaee31533a1a48a6ab5cd15b3cadfbd906a93a153e53919d0aa74e440d11e29830554e4e014c215f5b88a475bb733fa8ba4ce9d773d3e23a40ea9ad37ddd0a7 +DIST windows_x86_64_msvc-0.52.4.crate 828019 BLAKE2B 08163b63d934114457cd64b1c372f8a0cfc1ebf48a2efb41d79031c58ea64e023acd32d2f5075b8b78536998188138562e584ece95f2021b4bc71087ac45f026 SHA512 0671fa3c0463c6d65b525ece8bc91eab2f75cb534de86ba2b1e854d4136fcb439717441881206dba7cfb602493bc24d2aefa96abf8977f5a0fe38d41eadc90f1 +DIST winit-0.29.10.crate 574116 BLAKE2B 37760ff992bbaf6ecc60304877e3f48b4eafcca1f0f6fe936636f849ed12aca540bfe1cfa77239730d845ff6aeca36c7e8015288b1b398cb8d836fb5fa3cc604 SHA512 faa02eb1904074fea65a5a796c6c503ac8cb2bc32ff79e55a1fb1d55cf16851da39dcb04ac89b5560fa0f155a8db9f54de84a13526d2e37b5c596ec92038e857 +DIST winit-0.29.15.crate 588797 BLAKE2B a22d11d2f6a733624ff093df348e0b4fb2dfb01b40d2e6483a4c72ed93a964df9af6a15d624f99a54c0e0e4cf9a751036be4bd8c3f3bbfd7a3fb8eb41118d9f7 SHA512 eb1ffc450eb4254b45e44d0291e6574247254eea39e0703379c81a14a4ac77429710f5b8e2f25b84c44ad0fa080318cbff12012bcf28b892f56321aa8eb13160 +DIST winnow-0.5.40.crate 159316 BLAKE2B aae5076d59b3459c901d918d8aaa97ba8bfcc993b8484344f52e45f1f37deb96d6cd3a1663a67f3c367be2b05d633286f270274c621bda9f3ab72b98bb652cc2 SHA512 525156f08514b0110697360be6e331a68d08f0cb65ee4ba3ac9d101dd2d42a8c89601e7409bdb5652c5b05145626506651010f58a854c47712065334c61ff39c +DIST winnow-0.6.0.crate 156623 BLAKE2B d6d6e24abcb1b32a8b670ab6e2c1574834e49dc9ca022ad8d754c21f5bd63be69e4e8e23548436c1b8b98ab3cef8fcd553e39a6e30e1e58448394e9f6c24c0d6 SHA512 f9e4cb82e00575834ffeae1e2fb713ecaabc52fd640c8327c9311814dc40a6e010cc81cd11e2acce1a9d3a90ec4a9b1480e633dc3087bd3bfd058723d6ec1b47 +DIST winnow-0.6.5.crate 159316 BLAKE2B d28c6a069e3d557335c09ae04f1d90a9086b1744d711e259da230c031a0302e270e304f8f9e8bc690c01cedcf07b46e05938ab3468b3e388ae8c51ac361b6408 SHA512 5395db16797beb158e9458099279abf53c5ea62c65584bbb9e0111213ab21c88cd0b0674062757e57ceb6c762a349f22db6ef60deef866fe15ebb0818287ab99 +DIST winreg-0.51.0.crate 29194 BLAKE2B 6673128da1316fb5676260cec66e79c2aa3a94bd4c33a51ab823c25015a2b8afa8609c024dff0f64ce21d8e82abd24c3cc58ffa6085796b8be7ab97f9fdca7cf SHA512 3206069ce81adfd5bbe10b706d4d405794be76688cb6d9cf967468401be35a2dc674ac3115cbe3842167929ee9a34efd398d42155723961199ac965e230f61a3 +DIST winreg-0.52.0.crate 30148 BLAKE2B 7b458d356ed1385b23ace88d8a7e2a4e2e3211ba4bd22e6488b60fe508ab2b5f6d93c7547e45e0564f512391a8fbc2af1bbd3e3e3a773865d87adff67b5b2fb5 SHA512 50659afe4fa9671696bb5c6a50d62e493ef5359a324a71f7877e2ff0b522560ad65196ac6d2f7f4117edb2e47e84adce7d1de5ed2ce273f132cb2d5006472e25 +DIST wio-0.2.2.crate 11214 BLAKE2B 7356229f90aa50d6ac8a7651637967de3e06755a7a45eab2a144e13c876058553c22129abffb07717b1715233f6cfc1efe90ff60c1877f4291fabaa4b5ea283d SHA512 13838de6e01b20de8996c7aa9efbaca5bcd9e4551614cfc10bee45ecca4bcc70b953b2c59fe460d1a054b3ecac13445b020aa244ea70686fd19be8d65c539b0e +DIST wl-clipboard-rs-0.8.0.crate 32847 BLAKE2B cc6cef635784d3a14b14b31b5acae436fb9ae556387203c12aabc8664c715d79008cb69c74dbfcd0046c19b98c464557bb59e53d8c86ece85345b18ad0f47460 SHA512 ba08c62cf721e1150761cdde5d6c18369fe9f51d892b14999436b68a4599082602aaea429e8682aa03b43c63d9d27bb3d6e35fc754a75eefda848df22f114221 +DIST x11-dl-2.21.0.crate 66823 BLAKE2B 83305b44ec89e765ecb2dc48fc3aa93bc67d30f12e9782348bca822ca636207e9a9c2b707ab33b6dfc7fadd2b2cdaa599480470eef7a29a15332e923413a7cce SHA512 b864b0865720a9b2afc6d986fb7ebe19734671433449897d7f00488e019f3781f417f8e3763f09fa0db100a1d0c7e709ea9ac43c6dd48775f3daf803ebaebee5 +DIST x11rb-0.13.0.crate 222396 BLAKE2B 279dd73a1b342d773097cbbac7ce3ce198ee503c809f6d3b89c2c69b2e40dd21005e47cde708c0e9b12f2d944c0c1965a815eee774b86d9620d4dd51289cf0fa SHA512 9e86c7fab70d20193804a85608aaf46697b56f3d78eec50dd835c4ddd4a45ff56c0819309b443baa4a58f93e7d37f303e29ef279dbcd5d8c917c559751ca00b8 +DIST x11rb-protocol-0.13.0.crate 507838 BLAKE2B 11955c1908fef177bef859c1207f8fb9e644a8841ccbef885446a021152cb37a113bcb988a0d645e8b9289dc760d03d66ea0a6836e28bc25717e6ba571d02cb0 SHA512 36f412ed83634c402cfb3fea3fc64b9782b348fde3e98617a6c478867a0e93bacd9a69b1feb8d7ee5c01de578ddb85fff1ab86dfaaf88391c3e03dc7aeb3dca7 +DIST xcursor-0.3.5.crate 6256 BLAKE2B 09af0002e0fc70790dd4a132fd74525c18d45cd285fc5ba263e9e6faf83a97aeaaef2ef6e04fc7eb939c501e865623a0f454cbc93913d9821fa6005b8f4445e7 SHA512 284f0012a07776f351d9951de33187636f8410651ed71cee3169c0cc082fda6a01a39fddbed4185dae894f7d5314ce204078ce0848308672ee19789a1fdfb05c +DIST xdg-home-1.1.0.crate 3600 BLAKE2B 9ebd05881f0b835ad8647691d05b168f0cc807ccd02bbeff4da9db0a4f6b9c5458a891d6df2867f8597f70789d7e4d49d4b81dcd266ed05d1c3d4b67ad9f11f6 SHA512 3f4d6d81b84beab8eb549e124c9dcf5dbcad8b6471cd87edcebf5c0011371667718104c7ea6eba7301fde7524137b18484621c820c75b182bafd7b9b2972957a +DIST xkbcommon-dl-0.4.2.crate 5879 BLAKE2B f80fdcd23e71ac64a302f89d572ae8eb61be3115f298c4a6a5b65345cc625bac089c131aa7f77a3601ee898405c0b1a6a1cb4d754fae200c932456964d12ee1e SHA512 71d6a8468bb05d5c1dac130c90135dec88804708f8f2061b861953a980948b1e7c1f893b86ba8bbf251012d834398394deaa26934939ad161fd4ab9a28578cba +DIST xkeysym-0.2.0.crate 101431 BLAKE2B 626c023f399c3fb2dc155934e2b0d14d74e0b4cda25353a03b6bba3060e11e8ebba017571c7e704d5df8e658207149899cf741bc84262734e464be1a7efb55be SHA512 7dc5893f91aacafacce66f14ec27a6c792e7bf82c116e6d2221d2ed5ba3ef2889243f4af3f407d0370b46db6ac27568708b431d59b82c5d056f89d11e42ae44f +DIST xml-rs-0.8.19.crate 54051 BLAKE2B 667358226fd5fa1829110ee9b587dae7d95fe1f010f8106f515af12435d3c49b0f9f3c09bb4ec4fa019f8e9b25575b3c5fc2dd5858b37b5bbca9bfa263df842a SHA512 a46796ed542a7396e760ee327ec191e96d61b3fd8b78cef2ab2da75c5290433f422a34cabef20267e8a6a162e0a48fc8f81cd66a5dcf997ddd539e55d9130199 +DIST yaml-rust-0.4.5.crate 47783 BLAKE2B 3e888c5cc7afb43eaf3aaab2b6f47b86df164a66eb54d4e166b965cc84b1e06cd17bd992a0d6ee175d9a73a76e2b44a13167246383ed054afcf3cc1710b309cb SHA512 7621dc8dfd5e7d4a7a8805b2a7e8319b63b852367655f2359d4e3e8fec6c4fad52d75c46ce1161e4c674eac0780b757ce9d34e664e304d8d2beec7afa0363ea0 +DIST yansi-0.5.1.crate 16525 BLAKE2B 3b5a93b98293daae72f53bf3f13bfc05feba8d5b27921f79595f7448fbcb9a0dfa6cd70f467c5735b914c46b7d3592e6cce080c540a458a904308525eb3aa839 SHA512 7b33005a066cc612408a65df6533e8718d1de43efc0fd57416a19dc2b811497570e6e18f100fb26073565e395e711518c27de7d644ae64777713f1a102eb16d2 +DIST zbus-4.1.2.crate 153356 BLAKE2B c6ca76de9305bcb9d1d8f0b21236feeee339aa1b0ce021336953df858fd3655045bffd7d8d95878d35db19bef264f719f0a74b0585b15a13bec2d612a597502e SHA512 2ac175d2ab04d3ac53567f44420d8cc61d2c67907072b9b08673ec776a6c6e0fc07c776e3893429ae6a488c79b7b382ecf242933803a55bad09b4fb1256f40c7 +DIST zbus_macros-4.1.2.crate 28306 BLAKE2B eb65d96bcb1f28e8cf7ce3196c6a1679d187229cbf66183c10315bed34c5d5f660e0e2920be0522f19aa0ec42ae32ee8f1748c129ee76d8dd42fd7d764b5f992 SHA512 394dcc0ef553e18e4dbed66f480bd444a24160d95498784615dc30c8611cb08a419a34324e8d761580d1c38e7da0489f9479b63b76b968f210590ff06fae85aa +DIST zbus_names-3.0.0.crate 10650 BLAKE2B 0c8a0ee67c9236ef51a1add3038d5ac5a9f00dccd9df059b16454754db44e7c5ac66b74f3f98c317ee73a1c982b8439d6a92995d984b9b9d744c3c9203edbed3 SHA512 e0ebd468f152ef8063faa547f60b58d2d87948e24741d1cec0e97eef1817653d524ce5519795db64a3a7d9101ee2c6b67f0bf2bade894c57b5c37aee19fc82ab +DIST zerocopy-0.7.32.crate 151096 BLAKE2B 12c7c329ec0e0865467af08306ff4b55ce1e39fd77b094ee48ed9c6e266dfa807bda9ea72a3f7ea989916327f4d9e803d8868995728bfe2fb1c2dc1e5ecff78e SHA512 6729b05eb88029555b88c75feff4f8bc28ad9675edb02b07486381f775c8650c95e2e59612906bd9c34c5e390fd339857ca91573ee9f9ca7948572cff4171c82 +DIST zerocopy-derive-0.7.32.crate 37623 BLAKE2B 8b583d39d7bf9c3dbbba578120751c664f87363c5ba3fc45f6506a4059b9e599c43d9fc7bd498a257ff7c9d872af77d39bebdb0e65fb8009eaa2ae9903dece46 SHA512 3ce8528871fd18d6abe92b98503927451d25791c9c4af0ba39a3b6ba2006030bdc137084d080e9b1ac8b5ddf5f2121e0a3ef34bb2033a040f2c72c8149a9fc0d +DIST zeroize-1.7.0.crate 19039 BLAKE2B 2f94a5025f409bd2b96a456d2f78a34c6b05b5554abe7ef3fad2a55a8fcff8a6a1b971be660aa4c2954ab7d6e89bebc431036e349edef74711292f9f64b1dbae SHA512 9d31e3e76e8c861309a3579c21f6da5fd6b056c7d7a350427445a1a832e8827204804783f7f9b808acaa2148efef883d9078bf84943b1db55526bba5bf5a2756 +DIST zip-0.6.6.crate 65789 BLAKE2B acefc076297468d72cb20d8c6234fe5406875056fbf78fc0eac3ac430af78f320ed839f8683bd96fa1a03c457d6ac568d42bd703a902bc37bd126791d8b4c709 SHA512 affd46c17ceaa0545a155250dfd16756f8706dda43bae8a322ec0481dbfb41e4cf3166bf9662fc139ef9d0ab3b0f9f158535b21d2a61b21d38b8b2407813eeef +DIST zstd-0.11.2+zstd.1.5.2.crate 28987 BLAKE2B e04fe25ec6661819efeca08698c207922c38447459aa291961d3512d7c30016c51ddf49a8dadac0b7b2bf677b6a89d22670ec1e214607b476584a7e1b2dbf36d SHA512 d3f053c4acbdb45f3dadc9590db56095c761f0ff8899d22461f664701de766dde2fac2960a4477cd05d0a9c7ec200caa02ff891eb1f04630734996e0c38d10dd +DIST zstd-safe-5.0.2+zstd.1.5.2.crate 17273 BLAKE2B 74dc561046f9bc595c58b62bc6ff291325bc23fd06a1249148426bb853271393eab5121d2e1e29e433eff562c9eab72c1be265f3fe3bf14cc35d4a741db03c38 SHA512 03a6f07ada211fd6c364f03d06acff705fa5b08129aa09c29ad310f05b233553f8ea697e504470d4c104bd947f5d4102328c4df0df5e1da6d8e537f51451a014 +DIST zstd-sys-2.0.10+zstd.1.5.6.crate 749088 BLAKE2B 89ec471502281a65841e1c38b313571ac0ba1d2bb3aacba11297f782db9f0f8ed9cf945b757840e7851da0b7400b8c58fc79a60f24a6535fc271d28f07b2ffe9 SHA512 588008a436a9c7751fa7c088620bf04434751e508c9a729e6840e42a14a2cc26c8ee252e8f129a5ae00eb1f76ae6ecfffaac043d854b61381d386f71d80993f9 +DIST zune-inflate-0.2.54.crate 37973 BLAKE2B 8bdb532fae0da1d61fc9fc72ea72a9339116e1952e76ba7376f0ba0ea65101b88cd1e4766f516f21028a5ea3459e5590e7a54175a47f136cc572ed9abec2da2f SHA512 0de30f310121c1fed42612b7bcb50631d699195a77c7ce4094729f502e63d1ae38034d6054d95b6825e7e9a2afb7bb614ff123e12736163fee04a46ef1dc56bd +DIST zvariant-4.0.2.crate 81443 BLAKE2B 5bf2cb6b2e2b34c2397d9579a60ea7cf28a060456e8dc86498e07c9d1bbf8313d5c2235cadd5be8ec30646cf9e224312efff49ed3c41e010678ec498ed586ae9 SHA512 2811d3b9da164d3848684ceb74ce928f5951b135a40be11502a67f8a6506342efcab0e9c4f9401b5ca0d7b7a14df02f6f4f1c4375c418e5a20ec5faf2a878a3e +DIST zvariant_derive-4.0.2.crate 10974 BLAKE2B ae6c23021ded15d76305e9b3f3fa3a65d4e68f369cc3300e1d17206ca44c632b5ea624affb2df302f955f08a344b235cf01602168618980bc489bf490f3811a1 SHA512 87c17ad302c5f30f7677cc15b8db5b939e579b6bc0261534bb7321440266bfba9f43bbcf19e65603cdca8077bda8a4f3b7c7d4f177cd89980e2bfec39c98409d +DIST zvariant_utils-1.1.0.crate 6858 BLAKE2B ed117144cdd1b3351cddb0403b7b8fa3290e097dc527456ca7580910a0ad07b323c5c221f2c796eefd8dd5c7945e594c5bffe6b72caf26f2d416b58889b8cc34 SHA512 5ab70e347a3251c029688b0e8060f640168da3d20d1f0ceef054096209b9101fbb48ba74eb04aabd4c39f4c8090eb94a0594750b85d9955542f0bf7732a66aa7 diff --git a/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch b/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch new file mode 100644 index 000000000000..ef39453b7d58 --- /dev/null +++ b/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch @@ -0,0 +1,16 @@ +Running renderer tests using mesa's software rendering has a tendency +to misbehave (esp. on tinderboxes) and does not reflect usage on real +hardware. + +These are auto-skipped if mesa[-gles2] and perhaps [-llvm], but pretend +we lack support even if conditions are met. + +https://bugs.gentoo.org/903295 +https://bugs.gentoo.org/911320 +https://bugs.gentoo.org/911367 +--- a/tests/framework/src/options.rs ++++ b/tests/framework/src/options.rs +@@ -170,2 +170,3 @@ + if let Some(render) = &self.with_renderer { ++ if check_renderer { return false; } + // If we don't actually want to check the renderer (ie we're just listing potential tests), diff --git a/app-emulation/ruffle/metadata.xml b/app-emulation/ruffle/metadata.xml new file mode 100644 index 000000000000..b6a06cf293ca --- /dev/null +++ b/app-emulation/ruffle/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ionen@gentoo.org</email> + <name>Ionen Wolkens</name> + </maintainer> + <upstream> + <remote-id type="github">ruffle-rs/ruffle</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/ruffle/ruffle-0_p20240217.ebuild b/app-emulation/ruffle/ruffle-0_p20240217.ebuild new file mode 100644 index 000000000000..7793497c67ed --- /dev/null +++ b/app-emulation/ruffle/ruffle-0_p20240217.ebuild @@ -0,0 +1,735 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + ab_glyph@0.2.23 + ab_glyph_rasterizer@0.1.8 + accesskit@0.12.2 + adler32@1.2.0 + adler@1.0.2 + ahash@0.8.8 + aho-corasick@1.1.2 + allocator-api2@0.2.16 + alsa-sys@0.3.1 + alsa@0.7.1 + android-activity@0.5.2 + android-properties@0.2.2 + android-tzdata@0.1.1 + android_system_properties@0.1.5 + anstream@0.6.11 + anstyle-parse@0.2.3 + anstyle-query@1.0.2 + anstyle-wincon@3.0.2 + anstyle@1.0.6 + anyhow@1.0.79 + approx@0.5.1 + arboard@3.3.1 + arc-swap@1.6.0 + arrayref@0.3.7 + arrayvec@0.7.4 + ash@0.37.3+1.3.251 + async-channel@1.9.0 + async-channel@2.2.0 + async-io@2.3.1 + async-lock@3.3.0 + async-net@2.0.0 + async-task@4.7.0 + as-raw-xcb-connection@1.0.1 + atk-sys@0.18.0 + atomic-waker@1.1.2 + autocfg@1.1.0 + base64@0.21.7 + bindgen@0.68.1 + bindgen@0.69.4 + bitflags@1.3.2 + bitflags@2.4.2 + bitstream-io@1.10.0 + bitstream-io@2.2.0 + bit-set@0.5.3 + bit-vec@0.6.3 + bit_field@0.10.2 + block2@0.3.0 + blocking@1.5.1 + block-buffer@0.10.4 + block-sys@0.2.1 + block@0.1.6 + bstr@1.9.0 + bumpalo@3.14.0 + bytecount@0.6.7 + bytemuck@1.14.3 + bytemuck_derive@1.5.0 + byteorder@1.5.0 + bytes@1.5.0 + cairo-sys-rs@0.18.2 + calloop-wayland-source@0.2.0 + calloop@0.12.4 + camino@1.1.6 + cargo-platform@0.1.7 + cargo_metadata@0.18.1 + castaway@0.1.2 + cc@1.0.83 + cesu8@1.1.0 + cexpr@0.6.0 + cfg-expr@0.15.7 + cfg-if@1.0.0 + cfg_aliases@0.1.1 + chrono@0.4.34 + clang-sys@1.7.0 + clap@4.5.0 + clap_builder@4.5.0 + clap_derive@4.5.0 + clap_lex@0.7.0 + clipboard-win@5.1.0 + codespan-reporting@0.11.1 + colorchoice@1.0.0 + colored@2.1.0 + color_quant@1.1.0 + combine@4.6.6 + com@0.6.0 + com_macros@0.6.0 + com_macros_support@0.6.0 + concurrent-queue@2.4.0 + console@0.15.8 + console_error_panic_hook@0.1.7 + convert_case@0.6.0 + cookie-factory@0.3.2 + core2@0.4.0 + coreaudio-rs@0.11.3 + coreaudio-sys@0.2.15 + core-foundation-sys@0.8.6 + core-foundation@0.9.4 + core-graphics-types@0.1.3 + core-graphics@0.23.1 + cpal@0.15.2 + cpufeatures@0.2.12 + crc32fast@1.4.0 + crc-catalog@2.4.0 + crc@3.0.1 + crossbeam-channel@0.5.11 + crossbeam-deque@0.8.5 + crossbeam-epoch@0.9.18 + crossbeam-utils@0.8.19 + crunchy@0.2.2 + crypto-common@0.1.6 + csv-core@0.1.11 + csv@1.3.0 + curl-sys@0.4.72+curl-8.6.0 + curl@0.4.46 + cursor-icon@1.1.0 + d3d12@0.19.0 + darling@0.20.5 + darling_core@0.20.5 + darling_macro@0.20.5 + dary_heap@0.3.6 + dasp@0.11.0 + dasp_envelope@0.11.0 + dasp_frame@0.11.0 + dasp_interpolate@0.11.0 + dasp_peak@0.11.0 + dasp_ring_buffer@0.11.0 + dasp_rms@0.11.0 + dasp_sample@0.11.0 + dasp_signal@0.11.0 + dasp_slice@0.11.0 + dasp_window@0.11.1 + data-encoding@2.5.0 + deranged@0.3.11 + derive-new@0.5.9 + diff@0.1.13 + digest@0.10.7 + dirs-sys@0.4.1 + dirs@5.0.1 + dispatch@0.2.0 + displaydoc@0.2.4 + dlib@0.5.2 + document-features@0.2.8 + doc-comment@0.3.3 + downcast-rs@1.2.0 + ecolor@0.26.2 + egui-wgpu@0.26.2 + egui-winit@0.26.2 + egui@0.26.2 + egui_extras@0.26.2 + either@1.10.0 + emath@0.26.2 + embed-resource@2.4.1 + encode_unicode@0.3.6 + encoding_rs@0.8.33 + enumn@0.1.13 + enumset@1.1.3 + enumset_derive@0.8.1 + enum-map-derive@0.17.0 + enum-map@2.7.3 + env_filter@0.1.0 + env_logger@0.11.2 + epaint@0.26.2 + equivalent@1.0.1 + errno@0.3.8 + error-code@3.0.0 + escape8259@0.5.2 + euclid@0.22.9 + event-listener-strategy@0.4.0 + event-listener-strategy@0.5.0 + event-listener@2.5.3 + event-listener@4.0.3 + event-listener@5.0.0 + exr@1.72.0 + fastrand@1.9.0 + fastrand@2.0.1 + fdeflate@0.3.4 + fixedbitset@0.4.2 + flate2@1.0.28 + float-cmp@0.9.0 + float_next_after@1.0.0 + fluent-bundle@0.15.2 + fluent-langneg@0.13.0 + fluent-syntax@0.11.0 + fluent-templates@0.8.0 + fluent-template-macros@0.8.0 + fluent@0.16.0 + flume@0.10.14 + flume@0.11.0 + fnv@1.0.7 + fontconfig-parser@0.5.6 + fontdb@0.16.1 + foreign-types-macros@0.2.3 + foreign-types-shared@0.3.1 + foreign-types@0.5.0 + form_urlencoded@1.2.1 + futures-channel@0.3.30 + futures-core@0.3.30 + futures-executor@0.3.30 + futures-io@0.3.30 + futures-lite@1.13.0 + futures-lite@2.2.0 + futures-macro@0.3.30 + futures-sink@0.3.30 + futures-task@0.3.30 + futures-util@0.3.30 + futures@0.3.30 + gc-arena-derive@0.5.0 + gc-arena@0.5.0 + gdk-pixbuf-sys@0.18.0 + gdk-sys@0.18.0 + generational-arena@0.2.9 + generator@0.7.5 + generic-array@0.14.7 + gethostname@0.4.3 + getrandom@0.2.12 + gif@0.12.0 + gif@0.13.1 + gio-sys@0.18.1 + glib-sys@0.18.1 + globset@0.4.14 + glob@0.3.1 + gloo-net@0.5.0 + gloo-utils@0.2.0 + glow@0.13.1 + glutin_wgl_sys@0.5.0 + gl_generator@0.14.0 + gobject-sys@0.18.0 + gpu-allocator@0.25.0 + gpu-alloc-types@0.3.0 + gpu-alloc@0.6.0 + gpu-descriptor-types@0.1.2 + gpu-descriptor@0.2.4 + gtk-sys@0.18.0 + half@2.3.1 + hashbrown@0.13.2 + hashbrown@0.14.3 + hassle-rs@0.11.0 + heck@0.4.1 + hermit-abi@0.3.6 + hexf-parse@0.2.1 + home@0.5.9 + httpdate@1.0.3 + http@0.2.11 + humantime@2.1.0 + iana-time-zone-haiku@0.1.2 + iana-time-zone@0.1.60 + icrate@0.0.4 + ident_case@1.0.1 + idna@0.5.0 + ignore@0.4.22 + image@0.24.8 + indexmap@2.2.3 + indicatif@0.17.8 + instant@0.1.12 + insta@1.34.0 + intl-memoizer@0.5.1 + intl_pluralrules@7.0.2 + isahc@1.7.2 + itertools@0.11.0 + itertools@0.12.1 + itoa@1.0.10 + jni-sys@0.3.0 + jni@0.19.0 + jni@0.20.0 + jni@0.21.1 + jobserver@0.1.28 + jpeg-decoder@0.3.1 + js-sys@0.3.67 + khronos-egl@6.0.0 + khronos_api@3.1.0 + lazycell@1.3.0 + lazy_static@1.4.0 + lebe@0.5.2 + libc@0.2.153 + libflate@2.0.0 + libflate_lz77@2.0.0 + libloading@0.7.4 + libloading@0.8.1 + libm@0.2.8 + libnghttp2-sys@0.1.9+1.58.0 + libredox@0.0.1 + libredox@0.0.2 + libtest-mimic@0.7.0 + libz-sys@1.1.15 + linked-hash-map@0.5.6 + linkme-impl@0.3.22 + linkme@0.3.22 + linux-raw-sys@0.4.13 + litrs@0.4.1 + lock_api@0.4.11 + log@0.4.20 + loom@0.7.1 + lru@0.12.2 + lyon@1.0.1 + lyon_algorithms@1.0.4 + lyon_geom@1.0.5 + lyon_path@1.0.4 + lyon_tessellation@1.0.13 + lzma-rs@0.3.0 + mach2@0.4.2 + malloc_buf@0.0.6 + matchers@0.1.0 + memchr@2.7.1 + memmap2@0.9.4 + memoffset@0.7.1 + metal@0.27.0 + mime@0.3.17 + mime_guess2@2.0.5 + minimal-lexical@0.2.1 + miniz_oxide@0.7.2 + naga@0.19.0 + naga_oil@0.13.0 + ndk-context@0.1.1 + ndk-sys@0.4.1+23.1.7779620 + ndk-sys@0.5.0+25.2.9519653 + ndk@0.7.0 + ndk@0.8.0 + nix@0.24.3 + nix@0.26.4 + nohash-hasher@0.2.0 + nom@7.1.3 + number_prefix@0.4.0 + num-bigint@0.4.4 + num-complex@0.4.5 + num-conv@0.1.0 + num-derive@0.3.3 + num-derive@0.4.2 + num-integer@0.1.46 + num-traits@0.2.18 + num_cpus@1.16.0 + num_enum@0.5.11 + num_enum@0.7.2 + num_enum_derive@0.5.11 + num_enum_derive@0.7.2 + num_threads@0.1.6 + nu-ansi-term@0.46.0 + objc2-encode@3.0.0 + objc2@0.4.1 + objc-foundation@0.1.1 + objc-sys@0.3.2 + objc@0.2.7 + objc_exception@0.1.2 + objc_id@0.1.1 + oboe-sys@0.5.0 + oboe@0.5.0 + once_cell@1.19.0 + openssl-probe@0.1.5 + openssl-sys@0.9.99 + option-ext@0.2.0 + orbclient@0.3.47 + os_info@3.7.0 + os_pipe@1.1.5 + overload@0.1.1 + owned_ttf_parser@0.20.0 + pango-sys@0.18.0 + parking@2.2.0 + parking_lot@0.12.1 + parking_lot_core@0.9.9 + paste@1.0.14 + path-slash@0.2.1 + peeking_take_while@0.1.2 + percent-encoding@2.3.1 + petgraph@0.6.4 + pin-project-internal@1.1.4 + pin-project-lite@0.2.13 + pin-project@1.1.4 + pin-utils@0.1.0 + piper@0.2.1 + pkg-config@0.3.30 + png@0.17.11 + polling@2.8.0 + polling@3.4.0 + portable-atomic@1.6.0 + powerfmt@0.2.0 + ppv-lite86@0.2.17 + pp-rs@0.2.1 + presser@0.3.1 + prettyplease@0.2.16 + pretty_assertions@1.4.0 + primal-check@0.3.3 + proc-macro2@1.0.78 + proc-macro-crate@1.3.1 + proc-macro-crate@3.1.0 + proc-macro-hack@0.5.20+deprecated + profiling-procmacros@1.0.14 + profiling@1.0.14 + qoi@0.4.1 + quick-xml@0.31.0 + quote@1.0.35 + rand@0.8.5 + rand_chacha@0.3.1 + rand_core@0.6.4 + range-alloc@0.1.3 + raw-window-handle@0.5.2 + raw-window-handle@0.6.0 + rayon-core@1.12.1 + rayon@1.8.1 + realfft@3.3.0 + redox_syscall@0.3.5 + redox_syscall@0.4.1 + redox_users@0.4.4 + regex-automata@0.1.10 + regex-automata@0.4.5 + regex-syntax@0.6.29 + regex-syntax@0.8.2 + regex@1.10.3 + regress@0.8.0 + renderdoc-sys@1.0.0 + renderdoc@0.11.0 + rfd@0.13.0 + rle-decode-fast@1.0.3 + ron@0.8.1 + roxmltree@0.19.0 + rustc-hash@1.1.0 + rustc_version@0.4.0 + rustdct@0.7.1 + rustfft@6.2.0 + rustix@0.38.31 + rustversion@1.0.14 + ryu@1.0.16 + safe_arch@0.7.1 + same-file@1.0.6 + schannel@0.1.23 + scoped-tls@1.0.1 + scopeguard@1.2.0 + sctk-adwaita@0.8.1 + self_cell@0.10.3 + self_cell@1.0.3 + semver@1.0.21 + serde-wasm-bindgen@0.6.3 + serde-xml-rs@0.6.0 + serde@1.0.196 + serde_derive@1.0.196 + serde_json@1.0.113 + serde_spanned@0.6.5 + sha2@0.10.8 + sharded-slab@0.1.7 + shlex@1.3.0 + simd-adler32@0.3.7 + similar@2.4.0 + simple_asn1@0.6.2 + slab@0.4.9 + slotmap@1.0.7 + sluice@0.5.5 + smallvec@1.13.1 + smithay-client-toolkit@0.18.1 + smithay-clipboard@0.7.0 + smol_str@0.2.1 + snafu-derive@0.7.5 + snafu@0.7.5 + socket2@0.5.5 + spin@0.9.8 + spirv@0.3.0+sdk-1.3.268.0 + sptr@0.3.2 + static_assertions@1.1.0 + strength_reduce@0.2.4 + strict-num@0.1.1 + strsim@0.11.0 + symphonia-bundle-mp3@0.5.3 + symphonia-core@0.5.3 + symphonia-metadata@0.5.3 + symphonia@0.5.3 + synstructure@0.13.1 + syn@1.0.109 + syn@2.0.48 + system-deps@6.2.0 + sys-locale@0.3.1 + target-lexicon@0.12.13 + tempfile@3.10.0 + termcolor@1.4.1 + thiserror-impl@1.0.57 + thiserror@1.0.57 + threadpool@1.8.1 + thread_local@1.1.7 + tiff@0.9.1 + time-core@0.1.2 + time-macros@0.2.17 + time@0.3.34 + tinystr@0.7.5 + tinyvec@1.6.0 + tinyvec_macros@0.1.1 + tiny-skia-path@0.11.4 + tiny-skia@0.11.4 + toml@0.8.10 + toml_datetime@0.6.5 + toml_edit@0.19.15 + toml_edit@0.21.1 + toml_edit@0.22.5 + tracing-attributes@0.1.27 + tracing-core@0.1.32 + tracing-futures@0.2.5 + tracing-log@0.2.0 + tracing-subscriber@0.3.18 + tracing-tracy@0.10.4 + tracing-wasm@0.2.1 + tracing@0.1.40 + tracy-client-sys@0.22.2 + tracy-client@0.16.5 + transpose@0.2.2 + tree_magic_mini@3.0.3 + ttf-parser@0.20.0 + typenum@1.17.0 + type-map@0.4.0 + type-map@0.5.0 + unicase@2.7.0 + unicode-bidi@0.3.15 + unicode-ident@1.0.12 + unicode-normalization@0.1.22 + unicode-segmentation@1.11.0 + unicode-width@0.1.11 + unicode-xid@0.2.4 + unic-char-property@0.9.0 + unic-char-range@0.9.0 + unic-common@0.9.0 + unic-langid-impl@0.9.4 + unic-langid-macros-impl@0.9.4 + unic-langid-macros@0.9.4 + unic-langid@0.9.4 + unic-segment@0.9.0 + unic-ucd-segment@0.9.0 + unic-ucd-version@0.9.0 + url@2.5.0 + utf8parse@0.2.1 + valuable@0.1.0 + vcpkg@0.2.15 + vergen@8.3.1 + version-compare@0.1.1 + version_check@0.9.4 + vfs@0.10.0 + vswhom-sys@0.1.2 + vswhom@0.1.0 + waker-fn@1.1.1 + walkdir@2.4.0 + wasi@0.11.0+wasi-snapshot-preview1 + wasm-bindgen-backend@0.2.91 + wasm-bindgen-futures@0.4.40 + wasm-bindgen-macro-support@0.2.91 + wasm-bindgen-macro@0.2.91 + wasm-bindgen-shared@0.2.91 + wasm-bindgen@0.2.91 + wasm-streams@0.4.0 + wayland-backend@0.3.3 + wayland-client@0.31.2 + wayland-csd-frame@0.3.0 + wayland-cursor@0.31.1 + wayland-protocols-plasma@0.2.0 + wayland-protocols-wlr@0.2.0 + wayland-protocols@0.31.2 + wayland-scanner@0.31.1 + wayland-sys@0.31.1 + weak-table@0.3.2 + webbrowser@0.8.12 + web-sys@0.3.67 + web-time@0.2.4 + weezl@0.1.8 + wgpu-core@0.19.0 + wgpu-hal@0.19.1 + wgpu-types@0.19.0 + wgpu@0.19.1 + which@4.4.2 + widestring@1.0.2 + wide@0.7.15 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.6 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + windows-core@0.52.0 + windows-sys@0.45.0 + windows-sys@0.48.0 + windows-sys@0.52.0 + windows-targets@0.42.2 + windows-targets@0.48.5 + windows-targets@0.52.0 + windows@0.46.0 + windows@0.48.0 + windows@0.52.0 + windows_aarch64_gnullvm@0.42.2 + windows_aarch64_gnullvm@0.48.5 + windows_aarch64_gnullvm@0.52.0 + windows_aarch64_msvc@0.42.2 + windows_aarch64_msvc@0.48.5 + windows_aarch64_msvc@0.52.0 + windows_i686_gnu@0.42.2 + windows_i686_gnu@0.48.5 + windows_i686_gnu@0.52.0 + windows_i686_msvc@0.42.2 + windows_i686_msvc@0.48.5 + windows_i686_msvc@0.52.0 + windows_x86_64_gnullvm@0.42.2 + windows_x86_64_gnullvm@0.48.5 + windows_x86_64_gnullvm@0.52.0 + windows_x86_64_gnu@0.42.2 + windows_x86_64_gnu@0.48.5 + windows_x86_64_gnu@0.52.0 + windows_x86_64_msvc@0.42.2 + windows_x86_64_msvc@0.48.5 + windows_x86_64_msvc@0.52.0 + winit@0.29.10 + winnow@0.5.40 + winnow@0.6.0 + winreg@0.51.0 + wio@0.2.2 + wl-clipboard-rs@0.8.0 + x11rb-protocol@0.13.0 + x11rb@0.13.0 + x11-dl@2.21.0 + xcursor@0.3.5 + xkbcommon-dl@0.4.2 + xkeysym@0.2.0 + xml-rs@0.8.19 + yaml-rust@0.4.5 + yansi@0.5.1 + zerocopy-derive@0.7.32 + zerocopy@0.7.32 + zune-inflate@0.2.54 +" +declare -A GIT_CRATES=( + [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f976fb15b30aa4c5cb398710dc5e31a21004e57;rust-flash-lso-%commit%/flash-lso" + [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/deblock' + [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/yuv" + [h263-rs]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/h263" + [jpegxr]="https://github.com/ruffle-rs/jpegxr;d49988f40f220e3e9c90d9f3df1d4e3bc41f6ce2;jpegxr-%commit%" + [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;4a33521c29a918950df8ae9fe07e527ac65553f5;nellymoser-%commit%" + [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support" + [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core" + [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck" +) +inherit cargo desktop xdg + +MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Flash Player emulator written in Rust" +HOMEPAGE="https://ruffle.rs/" +SRC_URI=" + https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz + ${CARGO_CRATE_URIS} +" +S="${WORKDIR}/${MY_P}" + +LICENSE="|| ( Apache-2.0 MIT )" +LICENSE+=" + Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0 + CC0-1.0 ISC UbuntuFontLicense-1.0 MIT MPL-2.0 OFL-1.1 + Unicode-DFS-2016 ZLIB curl +" # crates +SLOT="0" +KEYWORDS="amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +# dlopen: libX* (see winit+x11-dl crates) +RDEPEND=" + dev-libs/glib:2 + dev-libs/openssl:= + media-libs/alsa-lib + sys-libs/zlib:= + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXrandr + x11-libs/libXrender +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + virtual/jre:* + virtual/pkgconfig + >=virtual/rust-1.72 +" + +QA_FLAGS_IGNORED="usr/bin/${PN}.*" + +PATCHES=( + "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch +) + +src_configure() { + # see .cargo/config.toml, only needed if RUSTFLAGS is set by the user + [[ -v RUSTFLAGS ]] && RUSTFLAGS+=" --cfg=web_sys_unstable_apis" + + local workspaces=( + ruffle_{desktop,scanner} + exporter + $(usev test tests) + ) + + cargo_src_configure "${workspaces[@]/#/--package=}" +} + +src_test() { + local skip=( + # may need more investigation, strangely "pass" (xfail) when + # RUSTFLAGS is unset, skip for now (bug #915726) + --skip from_avmplus/as3/Types/Int/wraparound + ) + + cargo_src_test -- "${skip[@]}" +} + +src_install() { + dodoc README.md + + newicon web/packages/extension/assets/images/icon180.png ${PN}.png + make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \ + "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;" + + # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510 + cd target/$(usex debug{,} release) || die + + newbin ${PN}_desktop ${PN} + newbin exporter ${PN}_exporter + dobin ${PN}_scanner +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "${PN} is experimental software that is still under heavy development" + elog "and only receiving nightly releases. Plans in Gentoo is to update" + elog "roughly every months if no known major regressions (feel free to" + elog "report if you feel a newer nightly is needed ahead of time)." + elog + elog "There is currently no plans to support wasm builds / browser" + elog "extensions, this provides the desktop viewer and other tools." + fi +} diff --git a/app-emulation/ruffle/ruffle-0_p20240319.ebuild b/app-emulation/ruffle/ruffle-0_p20240319.ebuild new file mode 100644 index 000000000000..615a239180db --- /dev/null +++ b/app-emulation/ruffle/ruffle-0_p20240319.ebuild @@ -0,0 +1,742 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + ab_glyph@0.2.23 + ab_glyph_rasterizer@0.1.8 + accesskit@0.12.3 + addr2line@0.21.0 + adler32@1.2.0 + adler@1.0.2 + ahash@0.8.11 + aho-corasick@1.1.2 + allocator-api2@0.2.16 + alsa-sys@0.3.1 + alsa@0.9.0 + android-activity@0.5.2 + android-properties@0.2.2 + android-tzdata@0.1.1 + android_system_properties@0.1.5 + anstream@0.6.13 + anstyle-parse@0.2.3 + anstyle-query@1.0.2 + anstyle-wincon@3.0.2 + anstyle@1.0.6 + anyhow@1.0.81 + approx@0.5.1 + arboard@3.3.2 + arc-swap@1.7.0 + arrayref@0.3.7 + arrayvec@0.7.4 + ashpd@0.8.1 + ash@0.37.3+1.3.251 + async-broadcast@0.7.0 + async-channel@1.9.0 + async-channel@2.2.0 + async-executor@1.8.0 + async-fs@2.1.1 + async-io@2.3.2 + async-lock@2.8.0 + async-lock@3.3.0 + async-net@2.0.0 + async-process@2.1.0 + async-recursion@1.1.0 + async-signal@0.2.5 + async-task@4.7.0 + async-trait@0.1.78 + as-raw-xcb-connection@1.0.1 + atomic-waker@1.1.2 + autocfg@1.1.0 + backtrace@0.3.69 + base64@0.21.7 + base64@0.22.0 + bindgen@0.69.4 + bitflags@1.3.2 + bitflags@2.4.2 + bitstream-io@2.2.0 + bit-set@0.5.3 + bit-vec@0.6.3 + block2@0.3.0 + blocking@1.5.1 + block-buffer@0.10.4 + block-sys@0.2.1 + block@0.1.6 + bstr@1.9.1 + bumpalo@3.15.4 + bytemuck@1.15.0 + bytemuck_derive@1.6.0 + byteorder@1.5.0 + bytes@1.5.0 + calloop-wayland-source@0.2.0 + calloop@0.12.4 + camino@1.1.6 + cargo-platform@0.1.7 + cargo_metadata@0.18.1 + castaway@0.1.2 + cc@1.0.90 + cesu8@1.1.0 + cexpr@0.6.0 + cfg-if@1.0.0 + cfg_aliases@0.1.1 + chrono@0.4.35 + clang-sys@1.7.0 + clap@4.5.3 + clap_builder@4.5.2 + clap_derive@4.5.3 + clap_lex@0.7.0 + clipboard-win@5.3.0 + codespan-reporting@0.11.1 + colorchoice@1.0.0 + colored@2.1.0 + color_quant@1.1.0 + combine@4.6.6 + com@0.6.0 + com_macros@0.6.0 + com_macros_support@0.6.0 + concurrent-queue@2.4.0 + console@0.15.8 + console_error_panic_hook@0.1.7 + convert_case@0.6.0 + cookie-factory@0.3.2 + core2@0.4.0 + coreaudio-rs@0.11.3 + coreaudio-sys@0.2.15 + core-foundation-sys@0.8.6 + core-foundation@0.9.4 + core-graphics-types@0.1.3 + core-graphics@0.23.1 + cpal@0.15.3 + cpufeatures@0.2.12 + crc32fast@1.4.0 + crc-catalog@2.4.0 + crc@3.0.1 + crossbeam-channel@0.5.12 + crossbeam-deque@0.8.5 + crossbeam-epoch@0.9.18 + crossbeam-utils@0.8.19 + crypto-common@0.1.6 + csv-core@0.1.11 + csv@1.3.0 + curl-sys@0.4.72+curl-8.6.0 + curl@0.4.46 + cursor-icon@1.1.0 + d3d12@0.19.0 + darling@0.20.8 + darling_core@0.20.8 + darling_macro@0.20.8 + dary_heap@0.3.6 + dasp@0.11.0 + dasp_envelope@0.11.0 + dasp_frame@0.11.0 + dasp_interpolate@0.11.0 + dasp_peak@0.11.0 + dasp_ring_buffer@0.11.0 + dasp_rms@0.11.0 + dasp_sample@0.11.0 + dasp_signal@0.11.0 + dasp_slice@0.11.0 + dasp_window@0.11.1 + data-encoding@2.5.0 + deranged@0.3.11 + derivative@2.2.0 + diff@0.1.13 + digest@0.10.7 + dirs-sys@0.4.1 + dirs@5.0.1 + dispatch@0.2.0 + displaydoc@0.2.4 + dlib@0.5.2 + document-features@0.2.8 + doc-comment@0.3.3 + downcast-rs@1.2.0 + ecolor@0.26.2 + egui-wgpu@0.26.2 + egui-winit@0.26.2 + egui@0.26.2 + egui_extras@0.26.2 + either@1.10.0 + emath@0.26.2 + embed-resource@2.4.2 + encode_unicode@0.3.6 + encoding_rs@0.8.33 + endi@1.1.0 + enumflags2@0.7.9 + enumflags2_derive@0.7.9 + enumn@0.1.13 + enumset@1.1.3 + enumset_derive@0.8.1 + enum-map-derive@0.17.0 + enum-map@2.7.3 + env_filter@0.1.0 + env_logger@0.11.3 + epaint@0.26.2 + equivalent@1.0.1 + errno@0.3.8 + error-code@3.2.0 + escape8259@0.5.2 + euclid@0.22.9 + event-listener-strategy@0.4.0 + event-listener-strategy@0.5.0 + event-listener@2.5.3 + event-listener@4.0.3 + event-listener@5.2.0 + fastrand@1.9.0 + fastrand@2.0.1 + fdeflate@0.3.4 + filetime@0.2.23 + flate2@1.0.28 + float-cmp@0.9.0 + float_next_after@1.0.0 + fluent-bundle@0.15.2 + fluent-langneg@0.13.0 + fluent-syntax@0.11.0 + fluent-templates@0.9.1 + fluent-template-macros@0.9.1 + fluent@0.16.0 + flume@0.10.14 + fnv@1.0.7 + fontconfig-parser@0.5.6 + fontdb@0.16.2 + foreign-types-macros@0.2.3 + foreign-types-shared@0.3.1 + foreign-types@0.5.0 + form_urlencoded@1.2.1 + futures-channel@0.3.30 + futures-core@0.3.30 + futures-executor@0.3.30 + futures-io@0.3.30 + futures-lite@1.13.0 + futures-lite@2.3.0 + futures-macro@0.3.30 + futures-sink@0.3.30 + futures-task@0.3.30 + futures-util@0.3.30 + futures@0.3.30 + gc-arena-derive@0.5.0 + gc-arena@0.5.0 + generator@0.7.5 + generic-array@0.14.7 + gethostname@0.4.3 + getrandom@0.2.12 + gif@0.13.1 + gilrs-core@0.5.11 + gilrs@0.10.6 + gimli@0.28.1 + globset@0.4.14 + glob@0.3.1 + gloo-net@0.5.0 + gloo-utils@0.2.0 + glow@0.13.1 + glutin_wgl_sys@0.5.0 + gl_generator@0.14.0 + gpu-allocator@0.25.0 + gpu-alloc-types@0.3.0 + gpu-alloc@0.6.0 + gpu-descriptor-types@0.1.2 + gpu-descriptor@0.2.4 + hashbrown@0.13.2 + hashbrown@0.14.3 + hassle-rs@0.11.0 + heck@0.4.1 + heck@0.5.0 + hermit-abi@0.3.9 + hexf-parse@0.2.1 + hex@0.4.3 + home@0.5.9 + httpdate@1.0.3 + http@0.2.12 + humantime@2.1.0 + iana-time-zone-haiku@0.1.2 + iana-time-zone@0.1.60 + icrate@0.0.4 + id3@1.13.1 + ident_case@1.0.1 + idna@0.5.0 + ignore@0.4.22 + image@0.24.9 + image@0.25.0 + indexmap@2.2.5 + indicatif@0.17.8 + inotify-sys@0.1.5 + inotify@0.10.2 + instant@0.1.12 + insta@1.36.1 + intl-memoizer@0.5.1 + intl_pluralrules@7.0.2 + io-kit-sys@0.4.1 + isahc@1.7.2 + itertools@0.11.0 + itertools@0.12.1 + itoa@1.0.10 + jni-sys@0.3.0 + jni@0.21.1 + jobserver@0.1.28 + jpeg-decoder@0.3.1 + js-sys@0.3.69 + khronos-egl@6.0.0 + khronos_api@3.1.0 + lazycell@1.3.0 + lazy_static@1.4.0 + libc@0.2.153 + libflate@2.0.0 + libflate_lz77@2.0.0 + libloading@0.7.4 + libloading@0.8.3 + libm@0.2.8 + libnghttp2-sys@0.1.9+1.58.0 + libredox@0.0.1 + libredox@0.0.2 + libtest-mimic@0.7.0 + libudev-sys@0.1.4 + libz-sys@1.1.15 + linked-hash-map@0.5.6 + linkme-impl@0.3.25 + linkme@0.3.25 + linux-raw-sys@0.4.13 + litrs@0.4.1 + lock_api@0.4.11 + log@0.4.21 + loom@0.7.1 + lru@0.12.3 + lyon@1.0.1 + lyon_algorithms@1.0.4 + lyon_geom@1.0.5 + lyon_path@1.0.4 + lyon_tessellation@1.0.13 + lzma-rs@0.3.0 + mach2@0.4.2 + macro_rules_attribute-proc_macro@0.2.0 + macro_rules_attribute@0.2.0 + malloc_buf@0.0.6 + matchers@0.1.0 + memchr@2.7.1 + memmap2@0.9.4 + memoffset@0.9.0 + metal@0.27.0 + mime@0.3.17 + mime_guess2@2.0.5 + minimal-lexical@0.2.1 + miniz_oxide@0.7.2 + naga@0.19.2 + naga_oil@0.13.0 + ndk-context@0.1.1 + ndk-sys@0.5.0+25.2.9519653 + ndk@0.8.0 + nix@0.28.0 + nohash-hasher@0.2.0 + nom@7.1.3 + number_prefix@0.4.0 + num-bigint@0.4.4 + num-complex@0.4.5 + num-conv@0.1.0 + num-derive@0.4.2 + num-integer@0.1.46 + num-traits@0.2.18 + num_cpus@1.16.0 + num_enum@0.7.2 + num_enum_derive@0.7.2 + num_threads@0.1.7 + nu-ansi-term@0.46.0 + objc2-encode@3.0.0 + objc2@0.4.1 + objc-foundation@0.1.1 + objc-sys@0.3.2 + objc@0.2.7 + objc_exception@0.1.2 + objc_id@0.1.1 + object@0.32.2 + oboe-sys@0.6.1 + oboe@0.6.1 + once_cell@1.19.0 + openssl-probe@0.1.5 + openssl-sys@0.9.101 + option-ext@0.2.0 + orbclient@0.3.47 + ordered-stream@0.2.0 + os_info@3.8.1 + overload@0.1.1 + owned_ttf_parser@0.20.0 + parking@2.2.0 + parking_lot@0.12.1 + parking_lot_core@0.9.9 + paste@1.0.14 + path-slash@0.2.1 + percent-encoding@2.3.1 + pin-project-internal@1.1.5 + pin-project-lite@0.2.13 + pin-project@1.1.5 + pin-utils@0.1.0 + piper@0.2.1 + pkg-config@0.3.30 + png@0.17.13 + polling@2.8.0 + polling@3.5.0 + pollster@0.3.0 + portable-atomic@1.6.0 + powerfmt@0.2.0 + ppv-lite86@0.2.17 + pp-rs@0.2.1 + presser@0.3.1 + prettyplease@0.2.16 + pretty_assertions@1.4.0 + primal-check@0.3.3 + proc-macro2@1.0.79 + proc-macro-crate@3.1.0 + proc-macro-hack@0.5.20+deprecated + profiling-procmacros@1.0.14 + profiling@1.0.14 + quick-xml@0.31.0 + quote@1.0.35 + rand@0.8.5 + rand_chacha@0.3.1 + rand_core@0.6.4 + range-alloc@0.1.3 + raw-window-handle@0.5.2 + raw-window-handle@0.6.0 + rayon-core@1.12.1 + rayon@1.9.0 + realfft@3.3.0 + redox_syscall@0.3.5 + redox_syscall@0.4.1 + redox_users@0.4.4 + regex-automata@0.1.10 + regex-automata@0.4.6 + regex-syntax@0.6.29 + regex-syntax@0.8.2 + regex@1.10.3 + regress@0.9.0 + renderdoc-sys@1.1.0 + renderdoc@0.12.1 + rfd@0.14.0 + rle-decode-fast@1.0.3 + ron@0.8.1 + roxmltree@0.19.0 + rustc-demangle@0.1.23 + rustc-hash@1.1.0 + rustc_version@0.4.0 + rustdct@0.7.1 + rustfft@6.2.0 + rustix@0.38.31 + rustversion@1.0.14 + ryu@1.0.17 + safe_arch@0.7.1 + same-file@1.0.6 + schannel@0.1.23 + scoped-tls@1.0.1 + scopeguard@1.2.0 + sctk-adwaita@0.8.1 + self_cell@0.10.3 + self_cell@1.0.3 + semver@1.0.22 + serde-wasm-bindgen@0.6.5 + serde-xml-rs@0.6.0 + serde@1.0.197 + serde_derive@1.0.197 + serde_json@1.0.114 + serde_repr@0.1.18 + serde_spanned@0.6.5 + sha1@0.10.6 + sha2@0.10.8 + sharded-slab@0.1.7 + shlex@1.3.0 + signal-hook-registry@1.4.1 + simd-adler32@0.3.7 + similar@2.4.0 + simple_asn1@0.6.2 + slab@0.4.9 + slotmap@1.0.7 + sluice@0.5.5 + smallvec@1.13.1 + smithay-client-toolkit@0.18.1 + smithay-clipboard@0.7.1 + smol_str@0.2.1 + snafu-derive@0.7.5 + snafu@0.7.5 + socket2@0.5.6 + spin@0.9.8 + spirv@0.3.0+sdk-1.3.268.0 + sptr@0.3.2 + static_assertions@1.1.0 + strength_reduce@0.2.4 + strict-num@0.1.1 + strsim@0.11.0 + symphonia-bundle-mp3@0.5.4 + symphonia-core@0.5.4 + symphonia-metadata@0.5.4 + symphonia@0.5.4 + synstructure@0.13.1 + syn@1.0.109 + syn@2.0.53 + sys-locale@0.3.1 + tempfile@3.10.1 + termcolor@1.4.1 + thiserror-impl@1.0.58 + thiserror@1.0.58 + threadpool@1.8.1 + thread_local@1.1.8 + tiff@0.9.1 + time-core@0.1.2 + time-macros@0.2.17 + time@0.3.34 + tinystr@0.7.5 + tinyvec@1.6.0 + tinyvec_macros@0.1.1 + tiny-skia-path@0.11.4 + tiny-skia@0.11.4 + tokio-macros@2.2.0 + tokio@1.36.0 + toml@0.8.11 + toml_datetime@0.6.5 + toml_edit@0.21.1 + toml_edit@0.22.7 + tracing-appender@0.2.3 + tracing-attributes@0.1.27 + tracing-core@0.1.32 + tracing-futures@0.2.5 + tracing-log@0.2.0 + tracing-subscriber@0.3.18 + tracing-tracy@0.10.4 + tracing-wasm@0.2.1 + tracing@0.1.40 + tracy-client-sys@0.22.2 + tracy-client@0.16.5 + transpose@0.2.3 + ttf-parser@0.20.0 + typenum@1.17.0 + type-map@0.4.0 + type-map@0.5.0 + uds_windows@1.1.0 + unicase@2.7.0 + unicode-bidi@0.3.15 + unicode-ident@1.0.12 + unicode-normalization@0.1.23 + unicode-segmentation@1.11.0 + unicode-width@0.1.11 + unicode-xid@0.2.4 + unic-char-property@0.9.0 + unic-char-range@0.9.0 + unic-common@0.9.0 + unic-langid-impl@0.9.4 + unic-langid-macros-impl@0.9.4 + unic-langid-macros@0.9.4 + unic-langid@0.9.4 + unic-segment@0.9.0 + unic-ucd-segment@0.9.0 + unic-ucd-version@0.9.0 + urlencoding@2.1.3 + url@2.5.0 + utf8parse@0.2.1 + uuid@1.7.0 + valuable@0.1.0 + vcpkg@0.2.15 + vec_map@0.8.2 + vergen@8.3.1 + version_check@0.9.4 + vfs@0.12.0 + vswhom-sys@0.1.2 + vswhom@0.1.0 + waker-fn@1.1.1 + walkdir@2.5.0 + wasi@0.11.0+wasi-snapshot-preview1 + wasm-bindgen-backend@0.2.92 + wasm-bindgen-futures@0.4.42 + wasm-bindgen-macro-support@0.2.92 + wasm-bindgen-macro@0.2.92 + wasm-bindgen-shared@0.2.92 + wasm-bindgen@0.2.92 + wasm-streams@0.4.0 + wayland-backend@0.3.3 + wayland-client@0.31.2 + wayland-csd-frame@0.3.0 + wayland-cursor@0.31.1 + wayland-protocols-plasma@0.2.0 + wayland-protocols-wlr@0.2.0 + wayland-protocols@0.31.2 + wayland-scanner@0.31.1 + wayland-sys@0.31.1 + weak-table@0.3.2 + webbrowser@0.8.13 + web-sys@0.3.69 + web-time@0.2.4 + weezl@0.1.8 + wgpu-core@0.19.3 + wgpu-hal@0.19.3 + wgpu-types@0.19.2 + wgpu@0.19.3 + which@4.4.2 + widestring@1.0.2 + wide@0.7.15 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.6 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + windows-core@0.52.0 + windows-core@0.54.0 + windows-result@0.1.0 + windows-sys@0.45.0 + windows-sys@0.48.0 + windows-sys@0.52.0 + windows-targets@0.42.2 + windows-targets@0.48.5 + windows-targets@0.52.4 + windows@0.48.0 + windows@0.52.0 + windows@0.54.0 + windows_aarch64_gnullvm@0.42.2 + windows_aarch64_gnullvm@0.48.5 + windows_aarch64_gnullvm@0.52.4 + windows_aarch64_msvc@0.42.2 + windows_aarch64_msvc@0.48.5 + windows_aarch64_msvc@0.52.4 + windows_i686_gnu@0.42.2 + windows_i686_gnu@0.48.5 + windows_i686_gnu@0.52.4 + windows_i686_msvc@0.42.2 + windows_i686_msvc@0.48.5 + windows_i686_msvc@0.52.4 + windows_x86_64_gnullvm@0.42.2 + windows_x86_64_gnullvm@0.48.5 + windows_x86_64_gnullvm@0.52.4 + windows_x86_64_gnu@0.42.2 + windows_x86_64_gnu@0.48.5 + windows_x86_64_gnu@0.52.4 + windows_x86_64_msvc@0.42.2 + windows_x86_64_msvc@0.48.5 + windows_x86_64_msvc@0.52.4 + winit@0.29.15 + winnow@0.5.40 + winnow@0.6.5 + winreg@0.52.0 + wio@0.2.2 + x11rb-protocol@0.13.0 + x11rb@0.13.0 + x11-dl@2.21.0 + xcursor@0.3.5 + xdg-home@1.1.0 + xkbcommon-dl@0.4.2 + xkeysym@0.2.0 + xml-rs@0.8.19 + yaml-rust@0.4.5 + yansi@0.5.1 + zbus@4.1.2 + zbus_macros@4.1.2 + zbus_names@3.0.0 + zerocopy-derive@0.7.32 + zerocopy@0.7.32 + zvariant@4.0.2 + zvariant_derive@4.0.2 + zvariant_utils@1.1.0 +" +declare -A GIT_CRATES=( + [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f770555ea49c6db49c57c1dd46c7cc686e8dacc;rust-flash-lso-%commit%/flash-lso" + [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/deblock' + [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/yuv" + [h263-rs]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/h263" + [jpegxr]="https://github.com/ruffle-rs/jpegxr;688021cb0a4935295f9aa8b488ca05bb4f1e9b34;jpegxr-%commit%" + [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;754b1184037aa9952a907107284fb73897e26adc;nellymoser-%commit%" + [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support" + [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core" + [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck" +) +inherit cargo desktop optfeature xdg + +MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Flash Player emulator written in Rust" +HOMEPAGE="https://ruffle.rs/" +SRC_URI=" + https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz + ${CARGO_CRATE_URIS} +" +S="${WORKDIR}/${MY_P}" + +LICENSE="|| ( Apache-2.0 MIT )" +LICENSE+=" + Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT + MPL-2.0 OFL-1.1 Unicode-DFS-2016 ZLIB curl +" # crates +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +# dlopen: libX* (see winit+x11-dl crates) +RDEPEND=" + dev-libs/openssl:= + media-libs/alsa-lib + sys-libs/zlib:= + virtual/libudev:= + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXrandr + x11-libs/libXrender +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + virtual/jre:* + virtual/pkgconfig + >=virtual/rust-1.76 +" + +QA_FLAGS_IGNORED="usr/bin/${PN}.*" + +PATCHES=( + "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch +) + +src_configure() { + local workspaces=( + ruffle_{desktop,scanner} + exporter + $(usev test tests) + ) + + cargo_src_configure "${workspaces[@]/#/--package=}" +} + +src_test() { + local skip=( + # may need more investigation, strangely "pass" (xfail) when + # RUSTFLAGS is unset, skip for now (bug #915726) + --skip from_avmplus/as3/Types/Int/wraparound + ) + + cargo_src_test -- "${skip[@]}" +} + +src_install() { + dodoc README.md + + newicon web/packages/extension/assets/images/icon180.png ${PN}.png + make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \ + "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;" + + # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510 + cd target/$(usex debug{,} release) || die + + newbin ${PN}_desktop ${PN} + newbin exporter ${PN}_exporter + dobin ${PN}_scanner +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "${PN} is experimental software that is still under heavy development" + elog "and only receiving nightly releases. Plans in Gentoo is to update" + elog "roughly every months if no known major regressions (feel free to" + elog "report if you feel a newer nightly is needed ahead of time)." + elog + elog "There is currently no plans to support wasm builds / browser" + elog "extensions, this provides the desktop viewer and other tools." + fi + + optfeature "the in-application file picker" sys-apps/xdg-desktop-portal +} diff --git a/app-emulation/ruffle/ruffle-0_p20240422.ebuild b/app-emulation/ruffle/ruffle-0_p20240422.ebuild new file mode 100644 index 000000000000..364a2d9de0bc --- /dev/null +++ b/app-emulation/ruffle/ruffle-0_p20240422.ebuild @@ -0,0 +1,767 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + ab_glyph@0.2.23 + ab_glyph_rasterizer@0.1.8 + accesskit@0.12.3 + addr2line@0.21.0 + adler32@1.2.0 + adler@1.0.2 + aes@0.8.4 + ahash@0.8.11 + aho-corasick@1.1.3 + allocator-api2@0.2.16 + alsa-sys@0.3.1 + alsa@0.9.0 + android-activity@0.5.2 + android-properties@0.2.2 + android-tzdata@0.1.1 + android_system_properties@0.1.5 + anstream@0.6.13 + anstyle-parse@0.2.3 + anstyle-query@1.0.2 + anstyle-wincon@3.0.2 + anstyle@1.0.6 + anyhow@1.0.82 + approx@0.5.1 + arboard@3.3.2 + arc-swap@1.7.1 + arrayref@0.3.7 + arrayvec@0.7.4 + ashpd@0.8.1 + ash@0.37.3+1.3.251 + async-broadcast@0.7.0 + async-channel@2.2.1 + async-executor@1.8.0 + async-fs@2.1.1 + async-io@2.3.2 + async-lock@2.8.0 + async-lock@3.3.0 + async-net@2.0.0 + async-process@2.1.0 + async-recursion@1.1.0 + async-signal@0.2.5 + async-task@4.7.0 + async-trait@0.1.79 + as-raw-xcb-connection@1.0.1 + atomic-waker@1.1.2 + autocfg@1.2.0 + backtrace@0.3.71 + base64ct@1.6.0 + base64@0.21.7 + base64@0.22.0 + bindgen@0.69.4 + bitflags@1.3.2 + bitflags@2.5.0 + bitstream-io@2.2.0 + bit-set@0.5.3 + bit-vec@0.6.3 + block2@0.3.0 + blocking@1.5.1 + block-buffer@0.10.4 + block-sys@0.2.1 + block@0.1.6 + bstr@1.9.1 + bumpalo@3.15.4 + bytemuck@1.15.0 + bytemuck_derive@1.6.0 + byteorder@1.5.0 + bytes@1.6.0 + bzip2-sys@0.1.11+1.0.8 + bzip2@0.4.4 + calloop-wayland-source@0.2.0 + calloop@0.12.4 + camino@1.1.6 + cargo-platform@0.1.8 + cargo_metadata@0.18.1 + cc@1.0.90 + cesu8@1.1.0 + cexpr@0.6.0 + cfg-if@1.0.0 + cfg_aliases@0.1.1 + chrono@0.4.38 + cipher@0.4.4 + clang-sys@1.7.0 + clap@4.5.4 + clap_builder@4.5.2 + clap_derive@4.5.4 + clap_lex@0.7.0 + clipboard-win@5.3.0 + codespan-reporting@0.11.1 + colorchoice@1.0.0 + color_quant@1.1.0 + combine@4.6.6 + com@0.6.0 + com_macros@0.6.0 + com_macros_support@0.6.0 + concurrent-queue@2.4.0 + console@0.15.8 + console_error_panic_hook@0.1.7 + constant_time_eq@0.1.5 + convert_case@0.6.0 + cookie-factory@0.3.3 + cookie@0.17.0 + cookie_store@0.20.0 + core2@0.4.0 + coreaudio-rs@0.11.3 + coreaudio-sys@0.2.15 + core-foundation-sys@0.8.6 + core-foundation@0.9.4 + core-graphics-types@0.1.3 + core-graphics@0.23.1 + cpal@0.15.3 + cpufeatures@0.2.12 + crc32fast@1.4.0 + crc-catalog@2.4.0 + crc@3.0.1 + crossbeam-channel@0.5.12 + crossbeam-deque@0.8.5 + crossbeam-epoch@0.9.18 + crossbeam-utils@0.8.19 + crypto-common@0.1.6 + csv-core@0.1.11 + csv@1.3.0 + cursor-icon@1.1.0 + d3d12@0.19.0 + darling@0.20.8 + darling_core@0.20.8 + darling_macro@0.20.8 + dary_heap@0.3.6 + dasp@0.11.0 + dasp_envelope@0.11.0 + dasp_frame@0.11.0 + dasp_interpolate@0.11.0 + dasp_peak@0.11.0 + dasp_ring_buffer@0.11.0 + dasp_rms@0.11.0 + dasp_sample@0.11.0 + dasp_signal@0.11.0 + dasp_slice@0.11.0 + dasp_window@0.11.1 + data-encoding@2.5.0 + deranged@0.3.11 + derivative@2.2.0 + diff@0.1.13 + digest@0.10.7 + dirs-sys@0.4.1 + dirs@5.0.1 + dispatch@0.2.0 + displaydoc@0.2.4 + dlib@0.5.2 + document-features@0.2.8 + downcast-rs@1.2.1 + ecolor@0.27.2 + egui-wgpu@0.27.2 + egui-winit@0.27.2 + egui@0.27.2 + egui_extras@0.27.2 + either@1.11.0 + emath@0.27.2 + embed-resource@2.4.2 + encode_unicode@0.3.6 + encoding_rs@0.8.34 + endi@1.1.0 + enumflags2@0.7.9 + enumflags2_derive@0.7.9 + enumn@0.1.13 + enumset@1.1.3 + enumset_derive@0.8.1 + enum-map-derive@0.17.0 + enum-map@2.7.3 + env_filter@0.1.0 + env_logger@0.11.3 + epaint@0.27.2 + equivalent@1.0.1 + errno@0.3.8 + error-code@3.2.0 + escape8259@0.5.2 + euclid@0.22.9 + event-listener-strategy@0.4.0 + event-listener-strategy@0.5.0 + event-listener@2.5.3 + event-listener@4.0.3 + event-listener@5.2.0 + fastrand@2.0.2 + fdeflate@0.3.4 + filetime@0.2.23 + flate2@1.0.28 + float-cmp@0.9.0 + float_next_after@1.0.0 + fluent-bundle@0.15.2 + fluent-langneg@0.13.0 + fluent-syntax@0.11.0 + fluent-templates@0.9.2 + fluent-template-macros@0.9.2 + fluent@0.16.0 + flume@0.10.14 + flume@0.11.0 + fnv@1.0.7 + fontconfig-parser@0.5.6 + fontdb@0.16.2 + foreign-types-macros@0.2.3 + foreign-types-shared@0.3.1 + foreign-types@0.5.0 + form_urlencoded@1.2.1 + futures-channel@0.3.30 + futures-core@0.3.30 + futures-executor@0.3.30 + futures-io@0.3.30 + futures-lite@2.3.0 + futures-macro@0.3.30 + futures-sink@0.3.30 + futures-task@0.3.30 + futures-util@0.3.30 + futures@0.3.30 + gc-arena-derive@0.5.0 + gc-arena@0.5.0 + generator@0.7.5 + generic-array@0.14.7 + gethostname@0.4.3 + getrandom@0.2.14 + gif@0.13.1 + gilrs-core@0.5.11 + gilrs@0.10.6 + gimli@0.28.1 + globset@0.4.14 + glob@0.3.1 + gloo-net@0.5.0 + gloo-utils@0.2.0 + glow@0.13.1 + glutin_wgl_sys@0.5.0 + gl_generator@0.14.0 + gpu-allocator@0.25.0 + gpu-alloc-types@0.3.0 + gpu-alloc@0.6.0 + gpu-descriptor-types@0.1.2 + gpu-descriptor@0.2.4 + h2@0.4.4 + hashbrown@0.13.2 + hashbrown@0.14.3 + hassle-rs@0.11.0 + heck@0.4.1 + heck@0.5.0 + hermit-abi@0.3.9 + hexf-parse@0.2.1 + hex@0.4.3 + hmac@0.12.1 + home@0.5.9 + httparse@1.8.0 + http-body-util@0.1.1 + http-body@1.0.0 + http@0.2.12 + http@1.1.0 + humantime@2.1.0 + hyper-rustls@0.26.0 + hyper-util@0.1.3 + hyper@1.2.0 + iana-time-zone-haiku@0.1.2 + iana-time-zone@0.1.60 + icrate@0.0.4 + id3@1.13.1 + ident_case@1.0.1 + idna@0.3.0 + idna@0.5.0 + ignore@0.4.22 + image@0.24.9 + image@0.25.1 + indexmap@2.2.6 + indicatif@0.17.8 + inotify-sys@0.1.5 + inotify@0.10.2 + inout@0.1.3 + instant@0.1.12 + insta@1.38.0 + intl-memoizer@0.5.1 + intl_pluralrules@7.0.2 + io-kit-sys@0.4.1 + ipnet@2.9.0 + itertools@0.12.1 + itoa@1.0.11 + jni-sys@0.3.0 + jni@0.21.1 + jobserver@0.1.28 + jpeg-decoder@0.3.1 + js-sys@0.3.69 + khronos-egl@6.0.0 + khronos_api@3.1.0 + lazycell@1.3.0 + lazy_static@1.4.0 + libc@0.2.153 + libflate@2.0.0 + libflate_lz77@2.0.0 + libloading@0.7.4 + libloading@0.8.3 + libm@0.2.8 + libredox@0.0.1 + libredox@0.0.2 + libtest-mimic@0.7.2 + libudev-sys@0.1.4 + linked-hash-map@0.5.6 + linkme-impl@0.3.25 + linkme@0.3.25 + linux-raw-sys@0.4.13 + litrs@0.4.1 + lock_api@0.4.11 + log@0.4.21 + loom@0.7.1 + lru@0.12.3 + lyon@1.0.1 + lyon_algorithms@1.0.4 + lyon_geom@1.0.5 + lyon_path@1.0.4 + lyon_tessellation@1.0.13 + lzma-rs@0.3.0 + mach2@0.4.2 + macro_rules_attribute-proc_macro@0.2.0 + macro_rules_attribute@0.2.0 + malloc_buf@0.0.6 + matchers@0.1.0 + memchr@2.7.2 + memmap2@0.9.4 + memoffset@0.9.1 + metal@0.27.0 + mime@0.3.17 + mime_guess2@2.0.5 + minimal-lexical@0.2.1 + miniz_oxide@0.7.2 + mio@0.8.11 + naga@0.19.2 + naga_oil@0.13.0 + ndk-context@0.1.1 + ndk-sys@0.5.0+25.2.9519653 + ndk@0.8.0 + nix@0.28.0 + nohash-hasher@0.2.0 + nom@7.1.3 + number_prefix@0.4.0 + num-bigint@0.4.4 + num-complex@0.4.5 + num-conv@0.1.0 + num-derive@0.4.2 + num-integer@0.1.46 + num-traits@0.2.18 + num_cpus@1.16.0 + num_enum@0.7.2 + num_enum_derive@0.7.2 + num_threads@0.1.7 + nu-ansi-term@0.46.0 + objc2-encode@3.0.0 + objc2@0.4.1 + objc-foundation@0.1.1 + objc-sys@0.3.2 + objc@0.2.7 + objc_exception@0.1.2 + objc_id@0.1.1 + object@0.32.2 + oboe-sys@0.6.1 + oboe@0.6.1 + once_cell@1.19.0 + option-ext@0.2.0 + orbclient@0.3.47 + ordered-stream@0.2.0 + os_info@3.8.2 + overload@0.1.1 + owned_ttf_parser@0.20.0 + parking@2.2.0 + parking_lot@0.12.1 + parking_lot_core@0.9.9 + password-hash@0.4.2 + paste@1.0.14 + path-slash@0.2.1 + pbkdf2@0.11.0 + percent-encoding@2.3.1 + pin-project-internal@1.1.5 + pin-project-lite@0.2.13 + pin-project@1.1.5 + pin-utils@0.1.0 + piper@0.2.1 + pkg-config@0.3.30 + png@0.17.13 + polling@3.6.0 + pollster@0.3.0 + portable-atomic@1.6.0 + powerfmt@0.2.0 + ppv-lite86@0.2.17 + pp-rs@0.2.1 + presser@0.3.1 + prettyplease@0.2.17 + pretty_assertions@1.4.0 + primal-check@0.3.3 + proc-macro2@1.0.81 + proc-macro-crate@3.1.0 + proc-macro-hack@0.5.20+deprecated + profiling-procmacros@1.0.14 + profiling@1.0.14 + psl-types@2.0.11 + publicsuffix@2.2.3 + quick-xml@0.31.0 + quote@1.0.36 + rand@0.8.5 + rand_chacha@0.3.1 + rand_core@0.6.4 + range-alloc@0.1.3 + raw-window-handle@0.5.2 + raw-window-handle@0.6.0 + rayon-core@1.12.1 + rayon@1.10.0 + realfft@3.3.0 + redox_syscall@0.3.5 + redox_syscall@0.4.1 + redox_users@0.4.4 + regex-automata@0.1.10 + regex-automata@0.4.6 + regex-syntax@0.6.29 + regex-syntax@0.8.3 + regex@1.10.4 + regress@0.9.1 + renderdoc-sys@1.1.0 + renderdoc@0.12.1 + reqwest@0.12.3 + rfd@0.14.1 + ring@0.17.8 + rle-decode-fast@1.0.3 + ron@0.8.1 + roxmltree@0.19.0 + rustc-demangle@0.1.23 + rustc-hash@1.1.0 + rustc_version@0.4.0 + rustdct@0.7.1 + rustfft@6.2.0 + rustix@0.38.32 + rustls-pemfile@2.1.2 + rustls-pki-types@1.4.1 + rustls-webpki@0.102.2 + rustls@0.22.4 + rustversion@1.0.14 + ryu@1.0.17 + safe_arch@0.7.1 + same-file@1.0.6 + scoped-tls@1.0.1 + scopeguard@1.2.0 + sctk-adwaita@0.8.1 + self_cell@0.10.3 + self_cell@1.0.3 + semver@1.0.22 + serde-wasm-bindgen@0.6.5 + serde@1.0.198 + serde_derive@1.0.198 + serde_json@1.0.116 + serde_repr@0.1.18 + serde_spanned@0.6.5 + serde_urlencoded@0.7.1 + sha1@0.10.6 + sha2@0.10.8 + sharded-slab@0.1.7 + shlex@1.3.0 + signal-hook-registry@1.4.1 + simd-adler32@0.3.7 + similar@2.5.0 + simple_asn1@0.6.2 + slab@0.4.9 + slotmap@1.0.7 + smallvec@1.13.2 + smithay-client-toolkit@0.18.1 + smithay-clipboard@0.7.1 + smol_str@0.2.1 + socket2@0.5.6 + spin@0.9.8 + spirv@0.3.0+sdk-1.3.268.0 + sptr@0.3.2 + static_assertions@1.1.0 + strength_reduce@0.2.4 + strict-num@0.1.1 + strsim@0.11.0 + subtle@2.5.0 + symphonia-bundle-mp3@0.5.4 + symphonia-core@0.5.4 + symphonia-metadata@0.5.4 + symphonia@0.5.4 + sync_wrapper@0.1.2 + synstructure@0.13.1 + syn@1.0.109 + syn@2.0.60 + system-configuration-sys@0.5.0 + system-configuration@0.5.1 + sys-locale@0.3.1 + tempfile@3.10.1 + termcolor@1.4.1 + thiserror-impl@1.0.58 + thiserror@1.0.58 + threadpool@1.8.1 + thread_local@1.1.8 + tiff@0.9.1 + time-core@0.1.2 + time-macros@0.2.17 + time@0.3.34 + tinystr@0.7.5 + tinyvec@1.6.0 + tinyvec_macros@0.1.1 + tiny-skia-path@0.11.4 + tiny-skia@0.11.4 + tokio-macros@2.2.0 + tokio-rustls@0.25.0 + tokio-util@0.7.10 + tokio@1.37.0 + toml@0.8.12 + toml_datetime@0.6.5 + toml_edit@0.21.1 + toml_edit@0.22.9 + tower-layer@0.3.2 + tower-service@0.3.2 + tower@0.4.13 + tracing-appender@0.2.3 + tracing-attributes@0.1.27 + tracing-core@0.1.32 + tracing-log@0.2.0 + tracing-subscriber@0.3.18 + tracing-tracy@0.10.4 + tracing-wasm@0.2.1 + tracing@0.1.40 + tracy-client-sys@0.22.2 + tracy-client@0.16.5 + transpose@0.2.3 + try-lock@0.2.5 + ttf-parser@0.20.0 + typenum@1.17.0 + type-map@0.4.0 + type-map@0.5.0 + uds_windows@1.1.0 + unicase@2.7.0 + unicode-bidi@0.3.15 + unicode-ident@1.0.12 + unicode-normalization@0.1.23 + unicode-segmentation@1.11.0 + unicode-width@0.1.11 + unicode-xid@0.2.4 + unic-char-property@0.9.0 + unic-char-range@0.9.0 + unic-common@0.9.0 + unic-langid-impl@0.9.4 + unic-langid-macros-impl@0.9.4 + unic-langid-macros@0.9.4 + unic-langid@0.9.4 + unic-segment@0.9.0 + unic-ucd-segment@0.9.0 + unic-ucd-version@0.9.0 + untrusted@0.9.0 + urlencoding@2.1.3 + url@2.5.0 + utf8parse@0.2.1 + uuid@1.8.0 + valuable@0.1.0 + vec_map@0.8.2 + vergen@8.3.1 + version_check@0.9.4 + vfs@0.12.0 + vswhom-sys@0.1.2 + vswhom@0.1.0 + walkdir@2.5.0 + want@0.3.1 + wasi@0.11.0+wasi-snapshot-preview1 + wasm-bindgen-backend@0.2.92 + wasm-bindgen-futures@0.4.42 + wasm-bindgen-macro-support@0.2.92 + wasm-bindgen-macro@0.2.92 + wasm-bindgen-shared@0.2.92 + wasm-bindgen@0.2.92 + wasm-streams@0.4.0 + wayland-backend@0.3.3 + wayland-client@0.31.2 + wayland-csd-frame@0.3.0 + wayland-cursor@0.31.1 + wayland-protocols-plasma@0.2.0 + wayland-protocols-wlr@0.2.0 + wayland-protocols@0.31.2 + wayland-scanner@0.31.1 + wayland-sys@0.31.1 + weak-table@0.3.2 + webbrowser@0.8.15 + webpki-roots@0.26.1 + web-sys@0.3.69 + web-time@0.2.4 + web-time@1.1.0 + weezl@0.1.8 + wgpu-core@0.19.3 + wgpu-hal@0.19.3 + wgpu-types@0.19.2 + wgpu@0.19.4 + which@4.4.2 + widestring@1.0.2 + wide@0.7.15 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.6 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + windows-core@0.52.0 + windows-core@0.54.0 + windows-result@0.1.0 + windows-sys@0.45.0 + windows-sys@0.48.0 + windows-sys@0.52.0 + windows-targets@0.42.2 + windows-targets@0.48.5 + windows-targets@0.52.4 + windows@0.48.0 + windows@0.52.0 + windows@0.54.0 + windows_aarch64_gnullvm@0.42.2 + windows_aarch64_gnullvm@0.48.5 + windows_aarch64_gnullvm@0.52.4 + windows_aarch64_msvc@0.42.2 + windows_aarch64_msvc@0.48.5 + windows_aarch64_msvc@0.52.4 + windows_i686_gnu@0.42.2 + windows_i686_gnu@0.48.5 + windows_i686_gnu@0.52.4 + windows_i686_msvc@0.42.2 + windows_i686_msvc@0.48.5 + windows_i686_msvc@0.52.4 + windows_x86_64_gnullvm@0.42.2 + windows_x86_64_gnullvm@0.48.5 + windows_x86_64_gnullvm@0.52.4 + windows_x86_64_gnu@0.42.2 + windows_x86_64_gnu@0.48.5 + windows_x86_64_gnu@0.52.4 + windows_x86_64_msvc@0.42.2 + windows_x86_64_msvc@0.48.5 + windows_x86_64_msvc@0.52.4 + winit@0.29.15 + winnow@0.5.40 + winnow@0.6.5 + winreg@0.52.0 + wio@0.2.2 + x11rb-protocol@0.13.0 + x11rb@0.13.0 + x11-dl@2.21.0 + xcursor@0.3.5 + xdg-home@1.1.0 + xkbcommon-dl@0.4.2 + xkeysym@0.2.0 + xml-rs@0.8.19 + yansi@0.5.1 + zbus@4.1.2 + zbus_macros@4.1.2 + zbus_names@3.0.0 + zerocopy-derive@0.7.32 + zerocopy@0.7.32 + zeroize@1.7.0 + zip@0.6.6 + zstd-safe@5.0.2+zstd.1.5.2 + zstd-sys@2.0.10+zstd.1.5.6 + zstd@0.11.2+zstd.1.5.2 + zvariant@4.0.2 + zvariant_derive@4.0.2 + zvariant_utils@1.1.0 +" +declare -A GIT_CRATES=( + [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f770555ea49c6db49c57c1dd46c7cc686e8dacc;rust-flash-lso-%commit%/flash-lso" + [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/deblock' + [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/yuv" + [h263-rs]="https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/h263" + [jpegxr]="https://github.com/ruffle-rs/jpegxr;688021cb0a4935295f9aa8b488ca05bb4f1e9b34;jpegxr-%commit%" + [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;754b1184037aa9952a907107284fb73897e26adc;nellymoser-%commit%" + [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support" + [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core" + [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck" +) +inherit cargo desktop optfeature xdg + +MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}" +MY_P="${PN}-${MY_PV}" + +DESCRIPTION="Flash Player emulator written in Rust" +HOMEPAGE="https://ruffle.rs/" +SRC_URI=" + https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz + ${CARGO_CRATE_URIS} +" +S="${WORKDIR}/${MY_P}" + +LICENSE="|| ( Apache-2.0 MIT )" +LICENSE+=" + Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT + MPL-2.0 OFL-1.1 openssl Unicode-DFS-2016 ZLIB +" # crates +SLOT="0" +KEYWORDS="~amd64" +IUSE="test" +RESTRICT="!test? ( test )" + +# dlopen: libX* (see winit+x11-dl crates) +RDEPEND=" + media-libs/alsa-lib + virtual/libudev:= + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXrandr + x11-libs/libXrender +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + virtual/jre:* + virtual/pkgconfig + >=virtual/rust-1.76 +" + +QA_FLAGS_IGNORED="usr/bin/${PN}.*" + +PATCHES=( + "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch +) + +src_configure() { + local workspaces=( + ruffle_{desktop,scanner} + exporter + $(usev test tests) + ) + + cargo_src_configure "${workspaces[@]/#/--package=}" +} + +src_test() { + local skip=( + # may need more investigation, strangely "pass" (xfail) when + # RUSTFLAGS is unset, skip for now (bug #915726) + --skip from_avmplus/as3/Types/Int/wraparound + ) + + cargo_src_test -- "${skip[@]}" +} + +src_install() { + dodoc README.md + + newicon web/packages/extension/assets/images/icon180.png ${PN}.png + make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \ + "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;" + + # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510 + cd target/$(usex debug{,} release) || die + + newbin ${PN}_desktop ${PN} + newbin exporter ${PN}_exporter + dobin ${PN}_scanner +} + +pkg_postinst() { + xdg_pkg_postinst + + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "${PN} is experimental software that is still under heavy development" + elog "and only receiving nightly releases. Plans in Gentoo is to update" + elog "roughly every months if no known major regressions (feel free to" + elog "report if you feel a newer nightly is needed ahead of time)." + elog + elog "There is currently no plans to support wasm builds / browser" + elog "extensions, this provides the desktop viewer and other tools." + fi + + optfeature "the in-application file picker" sys-apps/xdg-desktop-portal +} diff --git a/app-emulation/ruffle/ruffle-9999.ebuild b/app-emulation/ruffle/ruffle-9999.ebuild new file mode 100644 index 000000000000..29549b6f4ecb --- /dev/null +++ b/app-emulation/ruffle/ruffle-9999.ebuild @@ -0,0 +1,90 @@ +# Copyright 2021-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cargo desktop git-r3 optfeature xdg + +DESCRIPTION="Flash Player emulator written in Rust" +HOMEPAGE="https://ruffle.rs/" +EGIT_REPO_URI="https://github.com/ruffle-rs/ruffle.git" + +LICENSE="|| ( Apache-2.0 MIT )" +LICENSE+=" + Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT + MPL-2.0 OFL-1.1 openssl Unicode-DFS-2016 ZLIB +" # crates +SLOT="0" +IUSE="test" +RESTRICT="!test? ( test )" + +# dlopen: libX* (see winit+x11-dl crates) +RDEPEND=" + media-libs/alsa-lib + virtual/libudev:= + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXrandr + x11-libs/libXrender +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + virtual/jre:* + virtual/pkgconfig + >=virtual/rust-1.76 +" + +QA_FLAGS_IGNORED="usr/bin/${PN}.*" + +PATCHES=( + "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch +) + +src_unpack() { + git-r3_src_unpack + cargo_live_src_unpack +} + +src_configure() { + local workspaces=( + ruffle_{desktop,scanner} + exporter + $(usev test tests) + ) + + cargo_src_configure "${workspaces[@]/#/--package=}" +} + +src_test() { + local skip=( + # may need more investigation, strangely "pass" (xfail) when + # RUSTFLAGS is unset, skip for now (bug #915726) + --skip from_avmplus/as3/Types/Int/wraparound + ) + + cargo_src_test -- "${skip[@]}" +} + +src_install() { + dodoc README.md + + newicon web/packages/extension/assets/images/icon180.png ${PN}.png + make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \ + "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;" + + # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510 + cd target/$(usex debug{,} release) || die + + newbin ${PN}_desktop ${PN} + newbin exporter ${PN}_exporter + dobin ${PN}_scanner +} + +pkg_postinst() { + xdg_pkg_postinst + + optfeature "the in-application file picker" sys-apps/xdg-desktop-portal +} diff --git a/app-emulation/runc/Manifest b/app-emulation/runc/Manifest deleted file mode 100644 index 0c5009ddfbe3..000000000000 --- a/app-emulation/runc/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST runc-1.0.0_rc10.tar.gz 1929802 BLAKE2B 8399c3d62726bbb6256efef7e15b7496a7172bf25170b12beb60be498967dec4fde2aebd073de4265e132ff864bafc4d2499ab677390a4f7c0a1605d83ae55e5 SHA512 598221071ef07d18bf34bf5d5c68b8ad78ee71716177fc3ce5b6909cd841d5aed93f17ebf1f3d134707d29eef1f54a4ddc21e79621a9bd957df28a8d2e028ab7 diff --git a/app-emulation/runc/metadata.xml b/app-emulation/runc/metadata.xml deleted file mode 100644 index 7cb4581ab75d..000000000000 --- a/app-emulation/runc/metadata.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <longdescription lang="en"> - runc is a CLI tool for spawning and running containers according - to the OCF (Open Container Format) specification. - </longdescription> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <use> - <flag name="ambient"> - Enable support for ambient capabilities set (Requires Linux kernel 4.3 or later). - </flag> - <flag name="apparmor"> - Enable AppArmor support. - </flag> - <flag name="kmem"> - Enable Kernel Memory Accounting. - </flag> - </use> - <upstream> - <remote-id type="github">opencontainers/runc</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/runc/runc-1.0.0_rc10-r1.ebuild b/app-emulation/runc/runc-1.0.0_rc10-r1.ebuild deleted file mode 100644 index 9f60bd86db13..000000000000 --- a/app-emulation/runc/runc-1.0.0_rc10-r1.ebuild +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit golang-vcs-snapshot linux-info - -# update on bump, look for https://github.com/docker\ -# docker-ce/blob/<docker ver OR branch>/components/engine/hack/dockerfile/install/runc.installer -RUNC_COMMIT="dc9208a3303feef5b3839f4323d9beb36df0a9dd" -CONFIG_CHECK="~USER_NS" -EGO_PN="github.com/opencontainers/${PN}" - -DESCRIPTION="runc container cli tools" -HOMEPAGE="http://runc.io" -SRC_URI="https://github.com/opencontainers/${PN}/archive/v${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD-2 BSD MIT" -SLOT="0" -KEYWORDS="amd64 ~arm arm64 ppc64 ~x86" -IUSE="apparmor +ambient hardened +kmem +seccomp selinux test" - -DEPEND="seccomp? ( sys-libs/libseccomp )" - -RDEPEND=" - ${DEPEND} - !app-emulation/docker-runc - apparmor? ( sys-libs/libapparmor ) -" - -BDEPEND=" - dev-go/go-md2man - test? ( "${RDEPEND}" ) -" - -# tests need busybox binary, and portage namespace -# sandboxing disabled: mount-sandbox pid-sandbox ipc-sandbox -# majority of tests pass -RESTRICT+=" test" - -src_compile() { - # Taken from app-emulation/docker-1.7.0-r1 - export CGO_CFLAGS="-I${ROOT}/usr/include" - export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '') - -L${ROOT}/usr/$(get_libdir)" - - # build up optional flags - local options=( - $(usev ambient) - $(usev apparmor) - $(usev seccomp) - $(usev selinux) - $(usex kmem '' 'nokmem') - ) - - myemakeargs=( - BINDIR="${ED}/usr/bin" - BUILDTAGS="${options[*]}" - COMMIT=${RUNC_COMMIT} - DESTDIR="${ED}" - PREFIX="${ED}/usr" - GOPATH="${S}" - -C "src/${EGO_PN}" - ) - - emake "${myemakeargs[@]}" runc man -} - -src_install() { - emake "${myemakeargs[@]}" install install-man install-bash - - local DOCS=( src/"${EGO_PN}"/{README.md,PRINCIPLES.md,docs/.} ) - einstalldocs -} - -src_test() { - emake "${myemakeargs[@]}" localunittest -} diff --git a/app-emulation/runc/runc-1.0.0_rc10.ebuild b/app-emulation/runc/runc-1.0.0_rc10.ebuild deleted file mode 100644 index 903314b0fd14..000000000000 --- a/app-emulation/runc/runc-1.0.0_rc10.ebuild +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit linux-info - -CONFIG_CHECK="~USER_NS" -EGO_PN="github.com/opencontainers/${PN}" - -if [[ ${PV} == *9999 ]]; then - inherit golang-build golang-vcs -else - MY_PV="${PV/_/-}" - # Change this when you update the ebuild - RUNC_COMMIT=dc9208a3303feef5b3839f4323d9beb36df0a9dd - SRC_URI="https://${EGO_PN}/archive/${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz" - KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86" - inherit golang-build golang-vcs-snapshot -fi - -DESCRIPTION="runc container cli tools" -HOMEPAGE="http://runc.io" - -LICENSE="Apache-2.0 BSD-2 BSD MIT" -SLOT="0" -IUSE="+ambient apparmor hardened +kmem +seccomp" - -RDEPEND=" - apparmor? ( sys-libs/libapparmor ) - seccomp? ( sys-libs/libseccomp ) - !app-emulation/docker-runc -" - -src_compile() { - # Taken from app-emulation/docker-1.7.0-r1 - export CGO_CFLAGS="-I${ROOT}/usr/include" - export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '') - -L${ROOT}/usr/$(get_libdir)" - - # build up optional flags - local options=( - $(usex ambient 'ambient' '') - $(usex apparmor 'apparmor' '') - $(usex seccomp 'seccomp' '') - $(usex kmem '' 'nokmem') - ) - - COMMIT=${RUNC_COMMIT} GOPATH="${S}" emake BUILDTAGS="${options[*]}" \ - -C src/${EGO_PN} -} - -src_install() { - pushd src/${EGO_PN} || die - dobin runc - dodoc README.md PRINCIPLES.md - popd || die -} diff --git a/app-emulation/runv/metadata.xml b/app-emulation/runv/metadata.xml index af5a58145e7f..8187312886a3 100644 --- a/app-emulation/runv/metadata.xml +++ b/app-emulation/runv/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> <use> diff --git a/app-emulation/s6-overlay/Manifest b/app-emulation/s6-overlay/Manifest deleted file mode 100644 index 10afae83b5a2..000000000000 --- a/app-emulation/s6-overlay/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST s6-overlay-1.18.1.3.tar.gz 20067 BLAKE2B 7006549052fb27c8e7ec2a756854ebd82a41a88e14be45657c375321f4c18f482aefc8d21f1d57d8432ff1b836f114aac75a28b56bdd7722b14de3c06330024d SHA512 2b17b86a93e1efc27181a100bb86aacbce2e2c58cfd0d0855a293b99ba5c871a2f17bd10fa14b173b297816ae2d1658aaee2e6a6e25b957ad60f93d535955775 diff --git a/app-emulation/s6-overlay/metadata.xml b/app-emulation/s6-overlay/metadata.xml deleted file mode 100644 index eae269410bf0..000000000000 --- a/app-emulation/s6-overlay/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <upstream> - <remote-id type="github">just-containers/s6-overlay</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild b/app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild deleted file mode 100644 index c9dd1445da21..000000000000 --- a/app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild +++ /dev/null @@ -1,58 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -if [[ ${PV} = 9999 ]]; then - EGIT_REPO_URI="https://github.com/just-containers/${PN}" - inherit git-r3 -else - SRC_URI="https://github.com/just-containers/${PN}/archive/v${PV}.tar.gz -> - ${P}.tar.gz" - KEYWORDS="~amd64" - inherit vcs-snapshot -fi - -DESCRIPTION="an s6-based init system for containers" -HOMEPAGE="https://github.com/just-containers/s6-overlay" - -LICENSE="ISC" -SLOT="0" -IUSE="" - -DEPEND="" -RDEPEND="sys-apps/s6 - sys-apps/s6-portable-utils" - -src_install() { - dodoc *.md - cd builder/overlay-rootfs - dobin usr/bin/{fix-attrs,logutil*,print*,with*} - - insinto / - doins -r etc init - - # create must exist directories - dodir /etc/{cont-init.d,cont-finish.d,fix-attrs.d,services.d} - dodir /etc/s6/init/env-stage2 - - # create "supervise" directory in fdholder, its needed for no-catchall - # stage2 wake up - dodir /etc/s6/services/s6-fdholderd/supervise - fperms 0700 /etc/s6/services/s6-fdholderd/supervise - - # fix misc permissions - fperms 0755 /init - fperms 0755 /etc/s6/init/init-stage1 \ - /etc/s6/init/init-stage2 \ - /etc/s6/init/init-stage2-redirfd \ - /etc/s6/init/init-stage3 - fperms 0755 /etc/s6/init-catchall/init-stage1 \ - /etc/s6/init-catchall/init-stage2 - fperms 0755 /etc/s6/init-no-catchall/init-stage1 \ - /etc/s6/init-no-catchall/init-stage2 - fperms 0755 /etc/s6/services/.s6-svscan/crash - fperms 0755 /etc/s6/services/.s6-svscan/finish - fperms 0755 /etc/s6/services/s6-fdholderd/run - fperms 0755 /etc/s6/services/s6-svscan-log/run -} diff --git a/app-emulation/sen/Manifest b/app-emulation/sen/Manifest deleted file mode 100644 index 7618cbd5460b..000000000000 --- a/app-emulation/sen/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST sen-0.6.0.tar.gz 55113 BLAKE2B 5f6affbea94005c0adc9ac544d40d94cd9a9eca930b979c19174d21d73fdd887d21802a5241c02ba212a45c4a7873f22c7372aeb69955e1f97e444ef74d91929 SHA512 5573a0d6da5ae395e947bf34c54313e4e3a0251dc1868c52bbfe9ad11463397da83a0c9ac3f1912da2e6f49341c84d40dcab900d41b4a32ebac44d1dde3ac82b -DIST sen-0.6.1.tar.gz 55357 BLAKE2B 0d58f0ea11eeff29161925018425c918b3260c754d1b658e2ebd3c88e0c371feb0f1815af61979206bee529c369a90ace895d25e645ef0d76c563abd8b74c943 SHA512 2f1cadf745ca7e12d3e92534e76984072b9678055b9911f76b1a6d3cbd43266ad1eeb4d5e7bb8742db91c4da4aef684fa644c33de6fa2494c37688e9747e0efa -DIST sen-0.6.1_p20200905.tar.gz 1913978 BLAKE2B 189bff583770265de29ca3e54cad1283051c05eccab4fc98160801e50b31376188c52e49b43972292fe231b376ba42879fb34d7b1ae70c2246d676a6e25f670b SHA512 cd1899c1b4c5c7cf7f1f2f5e557bd609a7d7619dbc3fc6457f5ef5ce5c9ab43d92a6fbfa228c43d543d4f46c7928d74dbed9ab8346cabc772c8e7c63a7c07bfe diff --git a/app-emulation/sen/metadata.xml b/app-emulation/sen/metadata.xml deleted file mode 100644 index 75bfa9b4d173..000000000000 --- a/app-emulation/sen/metadata.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>nelo@wallus.de</email> - <name>Nelo-Thara Wallus</name> - </maintainer> - <maintainer type="person"> - <email>polynomial-c@gentoo.org</email> - <name>Lars Wendler</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <upstream> - <remote-id type="github">TomasTomecek/sen</remote-id> - <remote-id type="pypi">sen</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/sen/sen-0.6.0.ebuild b/app-emulation/sen/sen-0.6.0.ebuild deleted file mode 100644 index 6a712924ffc1..000000000000 --- a/app-emulation/sen/sen-0.6.0.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_6 ) - -inherit distutils-r1 - -DESCRIPTION="Terminal User Interface for docker engine" -HOMEPAGE="https://github.com/TomasTomecek/sen" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/urwid[${PYTHON_USEDEP}] - dev-python/urwidtrees[${PYTHON_USEDEP}] - dev-python/docker-py[${PYTHON_USEDEP}] - " -DEPEND="${RDEPEND} - test? ( - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/flexmock[${PYTHON_USEDEP}] - ) - " - -python_install_all() { - distutils-r1_python_install_all - dodoc -r docs -} - -python_test() { - pytest -vv tests || die "pytest failed" -} diff --git a/app-emulation/sen/sen-0.6.1.ebuild b/app-emulation/sen/sen-0.6.1.ebuild deleted file mode 100644 index 4bad3d1cae6d..000000000000 --- a/app-emulation/sen/sen-0.6.1.ebuild +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_6 ) - -inherit distutils-r1 - -DESCRIPTION="Terminal User Interface for docker engine" -HOMEPAGE="https://github.com/TomasTomecek/sen" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/urwid[${PYTHON_USEDEP}] - dev-python/urwidtrees[${PYTHON_USEDEP}] - dev-python/docker-py[${PYTHON_USEDEP}] - " -DEPEND="${RDEPEND} - test? ( - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/flexmock[${PYTHON_USEDEP}] - ) - " - -python_install_all() { - distutils-r1_python_install_all - dodoc -r docs -} - -python_test() { - pytest -vv tests || die "pytest failed" -} diff --git a/app-emulation/sen/sen-0.6.1_p20200905.ebuild b/app-emulation/sen/sen-0.6.1_p20200905.ebuild deleted file mode 100644 index 0ce4e0dc2ae1..000000000000 --- a/app-emulation/sen/sen-0.6.1_p20200905.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7,8} ) - -DISTUTILS_USE_SETUPTOOLS=rdepend -inherit distutils-r1 - -COMMIT="02e5872ee2905861e1da06ab5174e1a3f41f0e0b" - -DESCRIPTION="Terminal User Interface for docker engine" -HOMEPAGE="https://github.com/TomasTomecek/sen" -SRC_URI="https://github.com/TomasTomecek/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz" -S="${WORKDIR}/${PN}-${COMMIT}" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="test" -RESTRICT="!test? ( test )" - -RDEPEND="dev-python/urwid[${PYTHON_USEDEP}] - dev-python/urwidtrees[${PYTHON_USEDEP}] - dev-python/docker-py[${PYTHON_USEDEP}] - " -DEPEND="${RDEPEND} - test? ( - dev-python/pytest[${PYTHON_USEDEP}] - dev-python/flexmock[${PYTHON_USEDEP}] - ) - " - -python_install_all() { - distutils-r1_python_install_all - dodoc -r docs -} - -python_test() { - pytest -vv tests || die "pytest failed" -} diff --git a/app-emulation/simh/metadata.xml b/app-emulation/simh/metadata.xml index c5298995d2d4..b67c0c2fbff6 100644 --- a/app-emulation/simh/metadata.xml +++ b/app-emulation/simh/metadata.xml @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>slyfox@gentoo.org</email> - <name>Sergei Trofimovich</name> - </maintainer> + <!-- maintainer-needed --> + <upstream> + <remote-id type="github">simh/simh</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/simplevirt/Manifest b/app-emulation/simplevirt/Manifest deleted file mode 100644 index 4c0da8421552..000000000000 --- a/app-emulation/simplevirt/Manifest +++ /dev/null @@ -1,6 +0,0 @@ -DIST github.com-go-check-check-20d25e2804050c1cd24a7eea1e7a6447dd0e74ec.tar.gz 30367 BLAKE2B c18a0f1aff1bde8e6fc533ea627377ca4de4830d84289355f68163855ec97ac47f537b3b2627568c31714ac3a7672ebf86d60452269c75c80c2cd7565d7c97a0 SHA512 94342de3aad4db1c4442062f4cf4e57c723a43bbcb0069a8bed3b719e3864eef7500a24c9c99c755114708d6822e9b23f296b6d0b2b46f32cc6ffc65944d1729 -DIST github.com-go-yaml-yaml-v2.2.1.tar.gz 70217 BLAKE2B 4ba34bd9432699ec60348d13d8b95498abf751a922f782bf177695e6854faf907c1728d1dc13ad1cb63215fe3a86366cd99068247d15c726ba77bd0cf434b9c6 SHA512 d49267ee361196b0a1e1b9ad6f6cfa903627ccf7925fc3acc8d1bd214b64d362a9dcee10ba524fb8887226235c5baa2c8812a9f62adc7e6719d4ed84baa4ce4b -DIST github.com-inconshreveable-mousetrap-v1.0.0.tar.gz 2290 BLAKE2B bd46103e50dd916bad41aafbf8c1945d835222c131a88f4d3fba35feb4b11ae83c900280c9dafc6f0ef92f71b6a3ba02996dcb31d67eb49314b29d23fda2c8b8 SHA512 6f68bd6b7b1c7aa6651fe83b5230b6c8398b85561b01ca6a36ee638e186c325cc70444818de7a569db240159ba5840ed24f212e0defdf9f9890803a7641285d9 -DIST github.com-spf13-cobra-v0.0.3.tar.gz 101526 BLAKE2B 8613eccdd5bbd31429b7aa8260ee9367e34a5cc78075b394b09db91a97445ed1dadfb53a86105b55cb6ea3b4c2f9d50553e9198d64dfb6033dd1db2805984a2c SHA512 c38db9432a168f913b41a1e1b11d84bedfade82ff70791be9d343a6cc86b8a05b18bae344d67ebd8bae4c98662db7ac664a9dc86fa9b9ad4aa5c96cbf0178efb -DIST github.com-spf13-pflag-v1.0.2.tar.gz 44042 BLAKE2B 157fa6c2b1efa594abebd76ff03121050187974d62475b1aa66af325a2198ea64105655597703c37f25e22c4a07864d9fc31a6a29ba9233fdeefcceef400d5e5 SHA512 fd3cefd683329316eda4ec660193a970e38435515c16805190235e2c969c8d65a6f602fdc7c2f7cf3d9740c5a321ee5be5e8034bd6cd7c05c12722cf64d1e8ae -DIST simplevirt-0.0_p20181012.tar.gz 14652 BLAKE2B a6a648ed159d0648f27174c6598c9ae85e41530b218ef0360962884d1f61cfd16d2534ef4d2a01eb87138d0390fc7fe25e070c602f296344b8285c9dd2804287 SHA512 64c0edfc22ed0347c7335b942b06b6b9fd8c3f2ea7d374bf14b96b98b23248d15b6f38d7d1d809c8cd60b605f1809dfca8ff5c249e2df183c8b1636c26440ca8 diff --git a/app-emulation/simplevirt/files/simplevirtd.confd b/app-emulation/simplevirt/files/simplevirtd.confd deleted file mode 100644 index 9f679f6221ac..000000000000 --- a/app-emulation/simplevirt/files/simplevirtd.confd +++ /dev/null @@ -1,4 +0,0 @@ -# /etc/conf.d/simplevirtd: config file for simplevirtd - -# See `simplevirtd --help` -SIMPLEVIRTD_OPTS="" diff --git a/app-emulation/simplevirt/files/simplevirtd.initd b/app-emulation/simplevirt/files/simplevirtd.initd deleted file mode 100644 index d8dfadbcb69b..000000000000 --- a/app-emulation/simplevirt/files/simplevirtd.initd +++ /dev/null @@ -1,15 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -name="simplevirtd" -pidfile="/run/simplevirtd.pid" -retry="SIGTERM/7200" -command="/usr/sbin/simplevirtd" -command_background="1" -command_args="--syslog ${SIMPLEVIRTD_ARGS}" - -depend() { - need net - use dns logger -} diff --git a/app-emulation/simplevirt/metadata.xml b/app-emulation/simplevirt/metadata.xml deleted file mode 100644 index e45e3daf442e..000000000000 --- a/app-emulation/simplevirt/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>rafaelmartins@gentoo.org</email> - <name>Rafael G. Martins</name> - </maintainer> - <upstream> - <maintainer status="active"> - <email>rafael@rafaelmartins.eng.br</email> - <name>Rafael G. Martins</name> - </maintainer> - <remote-id type="github">rafaelmartins/simplevirt</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild b/app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild deleted file mode 100644 index 45f5a524d281..000000000000 --- a/app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -EGO_VENDOR=( - "github.com/inconshreveable/mousetrap v1.0.0" - "github.com/spf13/cobra v0.0.3" - "github.com/spf13/pflag v1.0.2" - "gopkg.in/check.v1 20d25e2804050c1cd24a7eea1e7a6447dd0e74ec github.com/go-check/check" - "gopkg.in/yaml.v2 v2.2.1 github.com/go-yaml/yaml" -) - -inherit linux-info golang-vcs-snapshot - -EGO_PN="github.com/rafaelmartins/simplevirt" -GIT_COMMIT="78d29d8fa11ce72af5f897430af7bb7d2947a32f" -GIT_VERSION="0.0.26-78d2" -ARCHIVE_URI="https://${EGO_PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz" - -DESCRIPTION="Simple virtual machine manager for Linux (QEMU/KVM)" -HOMEPAGE="https://github.com/rafaelmartins/simplevirt" -SRC_URI=" - ${ARCHIVE_URI} - ${EGO_VENDOR_URI}" - -LICENSE="Apache-2.0 BSD-2 BSD MIT" -SLOT="0" -KEYWORDS="" -IUSE="" - -RDEPEND=" - acct-group/simplevirt - virtual/logger - app-emulation/qemu" - -CONFIG_CHECK="~TUN ~BRIDGE" -ERROR_TUN="CONFIG_TUN: Universal TUN/TAP driver required to setup bridge networking" -ERROR_BRIDGE="CONFIG_BRIDGE: 802.1d Ethernet Bridging required to setup bridge networking" - -src_compile() { - pushd src/${EGO_PN} > /dev/null || die - GOPATH="${S}" go install -v -ldflags "-X ${EGO_PN}.Version=${GIT_VERSION}" ./cmd/... || die - popd > /dev/null || die -} - -src_install() { - dobin bin/simplevirtctl - dosbin bin/simplevirtd - - newinitd "${FILESDIR}/simplevirtd.initd" simplevirtd - newconfd "${FILESDIR}/simplevirtd.confd" simplevirtd - - dodoc "src/${EGO_PN}/README.md" - - keepdir /etc/simplevirt -} - -src_test() { - pushd src/${EGO_PN} > /dev/null || die - GOPATH="${S}" go test -v ./pkg/... || die - popd > /dev/null || die -} - -pkg_postinst() { - elog - elog "To use simplevirt, the simplevirtd daemon must be running as root." - elog "To automatically start the daemon at boot, add it to the default runlevel:" - elog " rc-update add simplevirtd default" - elog - elog "systemd is not supported for now." - elog - elog "To use simplevirtctl as a non-root user, add yourself to the 'simplevirt' group:" - elog " usermod -aG simplevirt youruser" - elog -} diff --git a/app-emulation/ski/Manifest b/app-emulation/ski/Manifest index 3aed4ea18a1c..dbb5bd287253 100644 --- a/app-emulation/ski/Manifest +++ b/app-emulation/ski/Manifest @@ -1 +1,2 @@ DIST ski-1.3.2.tar.gz 2715791 BLAKE2B 5e6b237ea21bf410e44dbaa88150d980f2af66728effeab4e8bcef02f27c24069c4bcaf42d3814ad15c3bd759819d468f163b6c64a89408c09d1ffbdc9302c0f SHA512 21f2e1dd87cb517602d4d6ef62707ec6042c1b6ec5dfd063db7315d13bbc3fb47b491c15b7efb0433fc82f27c7924e2d50b2f57fe24e49aeb864ce2c3c2c8bd0 +DIST ski-1.4.0.tar.xz 2373876 BLAKE2B c9c20582274dd6db6e216c709a1793b55ac2c1aaf26c5e235bffdd190e9e7dca4c7ef37f96309c61ba9b5f03229966710a65405e2a345d65a08b9163f545c85b SHA512 855bc73c2cd93d890cd532db524eecc122d5f3eddf189efdbf34069d1c9bd7b7f98d5e593387fdc31b38fc8630f00b6b126f5c1a1f22dab57447e024b9015cf5 diff --git a/app-emulation/ski/metadata.xml b/app-emulation/ski/metadata.xml index ab1c2fb53a4b..fab9a91d89c3 100644 --- a/app-emulation/ski/metadata.xml +++ b/app-emulation/ski/metadata.xml @@ -1,14 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>slyfox@gentoo.org</email> - <name>Sergei Trofimovich</name> - </maintainer> + <!-- maintainer-needed --> <use> - <flag name='debug'>enable extra binary emulation debugging via <pkg>sys-libs/binutils-libs</pkg></flag> + <flag name="debug">enable extra binary emulation debugging via <pkg>sys-libs/binutils-libs</pkg></flag> </use> <upstream> <remote-id type="sourceforge">ski</remote-id> + <remote-id type="github">trofi/ski</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/ski/ski-1.3.2-r4.ebuild b/app-emulation/ski/ski-1.3.2-r4.ebuild index ed996625c01d..381e6a334a78 100644 --- a/app-emulation/ski/ski-1.3.2-r4.ebuild +++ b/app-emulation/ski/ski-1.3.2-r4.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -6,7 +6,7 @@ EAPI=7 inherit autotools DESCRIPTION="ia64 instruction set simulator" -HOMEPAGE="http://ski.sourceforge.net/ http://www.gelato.unsw.edu.au/IA64wiki/SkiSimulator" +HOMEPAGE="http://ski.sourceforge.net/" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz" LICENSE="GPL-2" @@ -20,8 +20,8 @@ RDEPEND="dev-libs/libltdl:0= debug? ( sys-libs/binutils-libs:0= ) motif? ( x11-libs/motif:0= )" DEPEND="${RDEPEND} - sys-devel/bison - sys-devel/flex + app-alternatives/yacc + app-alternatives/lex dev-util/gperf" # games-sports/ski and app-emulation/ski both install 'ski' binary, bug #653110 diff --git a/app-emulation/ski/ski-1.4.0.ebuild b/app-emulation/ski/ski-1.4.0.ebuild new file mode 100644 index 000000000000..1867d53df65f --- /dev/null +++ b/app-emulation/ski/ski-1.4.0.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic + +DESCRIPTION="ia64 instruction set simulator" +HOMEPAGE="https://github.com/trofi/ski http://ski.sourceforge.net/" +SRC_URI="https://github.com/trofi/ski/releases/download/v${PV}/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="debug motif" + +RDEPEND=" + dev-libs/libltdl:= + sys-libs/ncurses:= + virtual/libelf + debug? ( sys-libs/binutils-libs:= ) + motif? ( x11-libs/motif:= ) +" +DEPEND=" + ${RDEPEND} + dev-util/gperf +" +# games-sports/ski and app-emulation/ski both install 'ski' binary, bug #653110 +RDEPEND=" + ${RDEPEND} + !games-sports/ski +" + +src_configure() { + # bug #854531 + filter-lto + + local myeconfargs=( + --without-gtk + $(use_with motif x11) + $(use_with debug bfd) + ) + + econf "${myeconfargs[@]}" +} diff --git a/app-emulation/skopeo/Manifest b/app-emulation/skopeo/Manifest deleted file mode 100644 index 4bb4f7d6b7c3..000000000000 --- a/app-emulation/skopeo/Manifest +++ /dev/null @@ -1,4 +0,0 @@ -DIST skopeo-0.1.41.tar.gz 4692408 BLAKE2B d5e99be0cb478065f1478beda355abc11c8f13ad8446251048502da1b1af38d407ec46d284e59d2018af5d1ca6a953ad6156a306e9bc1acbdb22b447fe17a59f SHA512 924af178eb9621395cfffcf51aa072886dc8c20746bce1599a503df8c54794e34184a1fc6fd9582b889c7c8efecf8cf192797bc8e208b90c71cca31bb970d8e9 -DIST skopeo-0.2.0.tar.gz 4295805 BLAKE2B 4ad13ff49bec56f3766e8d94f80fe8e22edb011b8862fb1249882e5695fa9260a6e2ce3d8345411ee7717cb92d4c1516268678f0884a62b02bfc8c9a554367ee SHA512 89d416110561dbe967860f752db607634a37b12adc376736de48264ec064abfed6b3db9ae195ffb3e9616dd6d65528660a23f2a5145d4674ed47cf443f17295a -DIST skopeo-1.1.0.tar.gz 4516471 BLAKE2B 665acc925cd4f0a97919bbc03db37ca9b5636d110e4780b5053c4a2773b4e524dd879870262f1760aee7413f52c7614cc4adcd56f20881cfe20b2c9a3af09dc3 SHA512 84ce9d786a471cf7d2551ae884801255b0fe501a21d3d2bbbfe0bb9e9c771105b00cdcfc1bef2cee5bd5ce55d0fd30be49c87c09361be47854dbb5e8e20e13a5 -DIST skopeo-1.1.1.tar.gz 4622784 BLAKE2B 3f72a812409a48d960fe36028355cf7128dabbb466bbb20aae9d8dda81a35e018e5a3cf4d430beaf8834f5355d6293a01b7702e88713557afb58216bffd9f3e5 SHA512 7d38179d550a1461f58d2d590d69ea8445d2c1d399a7cf39fcbcf6aab64da056c6de0f772f28eb60aec04c379d2cf27cbc5678546005ea6c1e8c20b7fe5b8676 diff --git a/app-emulation/skopeo/metadata.xml b/app-emulation/skopeo/metadata.xml deleted file mode 100644 index 6027ac0be078..000000000000 --- a/app-emulation/skopeo/metadata.xml +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> - <use> - <flag name="btrfs">Enables dependencies for the "btrfs" graph driver.</flag> - </use> -</pkgmetadata> diff --git a/app-emulation/skopeo/skopeo-0.1.41.ebuild b/app-emulation/skopeo/skopeo-0.1.41.ebuild deleted file mode 100644 index cc09b12134e3..000000000000 --- a/app-emulation/skopeo/skopeo-0.1.41.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -COMMIT=7d080ca -inherit go-module bash-completion-r1 - -DESCRIPTION="Command line utility foroperations on container images and image repositories" -HOMEPAGE="https://github.com/containers/skopeo" -SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:= - >=dev-libs/libassuan-2.4.3:= - dev-libs/libgpg-error:= - >=sys-fs/btrfs-progs-4.0.1 - >=sys-fs/lvm2-2.02.145:=" -DEPEND="${COMMON_DEPEND} - dev-go/go-md2man" -RDEPEND="${COMMON_DEPEND}" - -RESTRICT="test" - -src_compile() { - local BUILDTAGS="containers_image_ostree_stub" - set -- env -u GOCACHE -u XDG_CACHE_HOME \ - go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \ - -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \ - -o skopeo ./cmd/skopeo - echo "$@" - "$@" || die - cd docs || die - for f in *.1.md; do - go-md2man -in ${f} -out ${f%%.md} || die - done -} - -src_install() { - dobin skopeo - doman docs/*.1 - dobashcomp completions/bash/skopeo - insinto /etc/containers - newins default-policy.json policy.json - insinto /etc/containers/registries.d - doins default.yaml - keepdir /var/lib/atomic/sigstore - einstalldocs -} diff --git a/app-emulation/skopeo/skopeo-0.2.0.ebuild b/app-emulation/skopeo/skopeo-0.2.0.ebuild deleted file mode 100644 index c6caefe701f8..000000000000 --- a/app-emulation/skopeo/skopeo-0.2.0.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -COMMIT=1119299c4b27e16680744e8bcf3b5362344a40d7 -inherit go-module bash-completion-r1 - -DESCRIPTION="Command line utility foroperations on container images and image repositories" -HOMEPAGE="https://github.com/containers/skopeo" -SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="btrfs" - -COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:= - >=dev-libs/libassuan-2.4.3:= - dev-libs/libgpg-error:= - btrfs? ( >=sys-fs/btrfs-progs-4.0.1 ) - >=sys-fs/lvm2-2.02.145:=" -DEPEND="${COMMON_DEPEND} - dev-go/go-md2man" -RDEPEND="${COMMON_DEPEND}" - -RESTRICT="test" - -src_compile() { - local BUILDTAGS - BUILDTAGS="containers_image_ostree_stub $(usex btrfs "" exclude_graphdriver_btrfs)" - set -- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \ - -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \ - -o skopeo ./cmd/skopeo - echo "$@" - "$@" || die - cd docs || die - for f in *.1.md; do - go-md2man -in ${f} -out ${f%%.md} || die - done -} - -src_install() { - dobin skopeo - doman docs/*.1 - dobashcomp completions/bash/skopeo - insinto /etc/containers - newins default-policy.json policy.json - insinto /etc/containers/registries.d - doins default.yaml - keepdir /var/lib/atomic/sigstore - einstalldocs -} diff --git a/app-emulation/skopeo/skopeo-1.1.0.ebuild b/app-emulation/skopeo/skopeo-1.1.0.ebuild deleted file mode 100644 index 7a625ebb1c56..000000000000 --- a/app-emulation/skopeo/skopeo-1.1.0.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -COMMIT=63085f5bef1131aa9ec0907a5c8d66b67de7c4b2 -inherit go-module bash-completion-r1 - -DESCRIPTION="Command line utility foroperations on container images and image repositories" -HOMEPAGE="https://github.com/containers/skopeo" -SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="btrfs" - -COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:= - >=dev-libs/libassuan-2.4.3:= - dev-libs/libgpg-error:= - btrfs? ( >=sys-fs/btrfs-progs-4.0.1 ) - >=sys-fs/lvm2-2.02.145:=" -DEPEND="${COMMON_DEPEND} - dev-go/go-md2man" -RDEPEND="${COMMON_DEPEND}" - -RESTRICT="test" - -src_compile() { - local BUILDTAGS - BUILDTAGS="containers_image_ostree_stub $(usex btrfs "" exclude_graphdriver_btrfs)" - set -- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \ - -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \ - -o skopeo ./cmd/skopeo - echo "$@" - "$@" || die - cd docs || die - for f in *.1.md; do - go-md2man -in ${f} -out ${f%%.md} || die - done -} - -src_install() { - dobin skopeo - doman docs/*.1 - dobashcomp completions/bash/skopeo - insinto /etc/containers - newins default-policy.json policy.json - insinto /etc/containers/registries.d - doins default.yaml - keepdir /var/lib/atomic/sigstore - einstalldocs -} diff --git a/app-emulation/skopeo/skopeo-1.1.1.ebuild b/app-emulation/skopeo/skopeo-1.1.1.ebuild deleted file mode 100644 index e0c555f2bb9c..000000000000 --- a/app-emulation/skopeo/skopeo-1.1.1.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -COMMIT=67abbb3cefbdc876447583d5ea45e76bf441eba7 -inherit go-module bash-completion-r1 - -DESCRIPTION="Command line utility foroperations on container images and image repositories" -HOMEPAGE="https://github.com/containers/skopeo" -SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT" -SLOT="0" -KEYWORDS="~amd64 ~arm64" -IUSE="btrfs" - -COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:= - >=dev-libs/libassuan-2.4.3:= - dev-libs/libgpg-error:= - btrfs? ( >=sys-fs/btrfs-progs-4.0.1 ) - >=sys-fs/lvm2-2.02.145:=" -DEPEND="${COMMON_DEPEND} - dev-go/go-md2man" -RDEPEND="${COMMON_DEPEND}" - -RESTRICT="test" - -src_compile() { - local BUILDTAGS - BUILDTAGS="containers_image_ostree_stub $(usex btrfs "" exclude_graphdriver_btrfs)" - set -- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \ - -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \ - -o skopeo ./cmd/skopeo - echo "$@" - "$@" || die - cd docs || die - for f in *.1.md; do - go-md2man -in ${f} -out ${f%%.md} || die - done -} - -src_install() { - dobin skopeo - doman docs/*.1 - dobashcomp completions/bash/skopeo - insinto /etc/containers - newins default-policy.json policy.json - insinto /etc/containers/registries.d - doins default.yaml - keepdir /var/lib/atomic/sigstore - einstalldocs -} diff --git a/app-emulation/slirp4netns/Manifest b/app-emulation/slirp4netns/Manifest deleted file mode 100644 index 03bceefba8ae..000000000000 --- a/app-emulation/slirp4netns/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST slirp4netns-1.1.4.tar.gz 55346 BLAKE2B 86716ec9f42ae0087e9e7d142683f53b986275bce20b5ab0a33d0cdd63778adfeeadc86e5abb52d4a7e3e89baa0440c1a99bde920eeb2ed5293046e451d8ad01 SHA512 a6a26c55bdd4f50e668f7feeee3cd1d077e1ca9bd5bad5bbb8c47b15d366af4b1f2900241bedcd5a974a7597f43b17f970662271ec1987fbb6291c50470fa0a8 diff --git a/app-emulation/slirp4netns/metadata.xml b/app-emulation/slirp4netns/metadata.xml deleted file mode 100644 index e7dbf873de1f..000000000000 --- a/app-emulation/slirp4netns/metadata.xml +++ /dev/null @@ -1,15 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>zmedico@gentoo.org</email> - <name>Zac Medico</name> - </maintainer> - <maintainer type="person"> - <email>g.braeunlich@disroot.org</email> - <name>Gerhard Bräunlich</name> - </maintainer> - <upstream> - <remote-id type="github">rootless-containers/slirp4netns</remote-id> - </upstream> -</pkgmetadata> diff --git a/app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild b/app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild deleted file mode 100644 index ab7c659fa363..000000000000 --- a/app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools - -DESCRIPTION="User-mode networking for unprivileged network namespaces" -HOMEPAGE="https://github.com/rootless-containers/slirp4netns" -SRC_URI="https://github.com/rootless-containers/slirp4netns/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -KEYWORDS="~amd64 ~arm64" -LICENSE="GPL-2" -SLOT="0" - -RDEPEND=" - dev-libs/glib:2= - dev-libs/libpcre:= - net-libs/libslirp:= - sys-libs/libseccomp:= - sys-libs/libcap:=" - -DEPEND="${RDEPEND} - virtual/pkgconfig" -RESTRICT="test" - -src_prepare() { - # Respect AR variable for bug 722162. - sed -e 's|^AC_PROG_CC$|AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])\nAC_PROG_AR\n\0|' \ - -i configure.ac || die - eautoreconf - default -} - -pkg_postinst() { - if [[ -z ${REPLACING_VERSIONS} ]]; then - elog "You need to have the tun kernel module loaded in order to have" - elog "slirp4netns working" - fi -} diff --git a/app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch b/app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch new file mode 100644 index 000000000000..25bf382eee56 --- /dev/null +++ b/app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch @@ -0,0 +1,148 @@ +Subject: [PATCH] fix declarations with type mismatches + +Type mismatches between declarations prevent the compile from using LTO + +Bug: https://bugs.gentoo.org/854534 +Upstream: https://sourceforge.net/p/softgun/patches/5/ + +# Pascal Jäger <pascal.jaeger@leimstift.de> (2023-09-21) + +--- a/m16c/idecode_m16c.c ++++ b/m16c/idecode_m16c.c +@@ -9,7 +9,7 @@ + #include "sglib.h" + + M16C_InstructionProc **iProcTab; +-M16C_Instruction **iTab; ++M16C_Instruction **iTabM16C; + + static M16C_Instruction instrlist[] = { + {0xfef0,0x76f0,"abs.size_dst",2 ,m16c_abs_size_dst}, +@@ -308,7 +308,7 @@ M16C_IDecoderNew() + int i,j; + int onecount1,onecount2; + iProcTab=(M16C_InstructionProc**)sg_calloc(0x10000*sizeof(M16C_InstructionProc*)); +- iTab=sg_calloc(0x10000*sizeof(M16C_Instruction*)); ++ iTabM16C=sg_calloc(0x10000*sizeof(M16C_Instruction*)); + fprintf(stderr,"Allocated M16C Instruction decoder table\n"); + for(j=0;instrlist[j].proc;j++) { + M16C_Instruction *instr = &instrlist[j]; +@@ -327,8 +327,8 @@ M16C_IDecoderNew() + } + #endif + if((i & instr->mask) == instr->icode) { +- if(iTab[i]) { +- M16C_Instruction *instr2 = iTab[i]; ++ if(iTabM16C[i]) { ++ M16C_Instruction *instr2 = iTabM16C[i]; + specmask1 = instr->mask; + specmask2 = instr2->mask; + onecount1 = SGLib_OnecountU32(instr->mask); +@@ -336,18 +336,18 @@ M16C_IDecoderNew() + fprintf(stderr,"Collission %s, %s\n",instr->name,instr2->name); + #if 0 + if(instr->len > instr2->len) { +- iTab[i] = instr; ++ iTabM16C[i] = instr; + iProcTab[i] = instr->proc; + } else if(instr2->len > instr->len) { +- iTab[i] = instr2; ++ iTabM16C[i] = instr2; + iProcTab[i] = instr2->proc; + } else + #endif + if(onecount1 > onecount2) { +- iTab[i] = instr; ++ iTabM16C[i] = instr; + iProcTab[i] = instr->proc; + } else if(onecount2 > onecount1) { +- iTab[i] = instr2; ++ iTabM16C[i] = instr2; + iProcTab[i] = instr2->proc; + } else { + fprintf(stderr,"Can not decide %s, %s\n",instr->name,instr2->name); +@@ -360,10 +360,10 @@ M16C_IDecoderNew() + specmask2 |= 0xff00; + } + if((specmask2 & specmask1) == specmask1) { +- iTab[i] = instr2; ++ iTabM16C[i] = instr2; + iProcTab[i] = instr2->proc; + } else if((specmask2 & specmask1) == specmask2) { +- iTab[i] = instr; ++ iTabM16C[i] = instr; + iProcTab[i] = instr->proc; + } else { + fprintf(stdout,"%04x: no instruction is more specific %s %s %04x %04x %d %d\n",i,instr->name,instr2->name,instr->icode,instr2->icode,instr->len,instr2->len); +@@ -371,13 +371,13 @@ M16C_IDecoderNew() + } + #endif + } else { +- iTab[i] = instr; ++ iTabM16C[i] = instr; + iProcTab[i] = instr->proc; + } + } + } +- if(iTab[i] == NULL) { +- iTab[i] = &undefined_instr; ++ if(iTabM16C[i] == NULL) { ++ iTabM16C[i] = &undefined_instr; + iProcTab[i] = (&undefined_instr)->proc; + } + } +--- a/m16c/idecode_m16c.h ++++ b/m16c/idecode_m16c.h +@@ -11,14 +11,14 @@ typedef struct M16C_Instruction { + } M16C_Instruction; + + extern M16C_InstructionProc **iProcTab; +-extern M16C_Instruction **iTab; ++extern M16C_Instruction **iTabM16C; + + void M16C_IDecoderNew(void); + + static inline M16C_Instruction * + M16C_InstructionFind(uint16_t icode) + { +- return iTab[icode]; ++ return iTabM16C[icode]; + } + static inline M16C_InstructionProc * + M16C_InstructionProcFind(uint16_t icode) +--- a/m16c/instructions_m16c.h ++++ b/m16c/instructions_m16c.h +@@ -160,7 +160,7 @@ void m16c_smovb_size(void); + void m16c_smovf_size(void); + void m16c_sstr_size(void); + void m16c_stc_srcdst(void); +-void m16c_stc_pcdst(void); ++void m16c_stc_pcdst(uint16_t icode); + void m16c_stctx_abs16abs20(void); + void m16c_ste_size_srcabs20(void); + void m16c_ste_size_srcdsp20(void); +--- a/ppc/mmu_ppc.c ++++ b/ppc/mmu_ppc.c +@@ -587,7 +587,7 @@ PPCMMU_Read8(uint32_t va) { + } + + void +-PPCMMU_Write64(uint32_t value,uint32_t va) { ++PPCMMU_Write64(uint64_t value,uint32_t va) { + uint32_t pa=translate_data(va); + Bus_Write64(value,pa); + } +--- a/printer/decompress.c ++++ b/printer/decompress.c +@@ -55,7 +55,7 @@ enum + eeCachedColor = 0x60 + }; + +-inline uint32_t get3pixel (uint8_t* src) ++static inline uint32_t get3pixel (uint8_t* src) + { + return (src[0] << 16) | (src[1] << 8) | (src[2]); + } +-- +2.41.0 + diff --git a/app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch b/app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch new file mode 100644 index 000000000000..b65ddaf660f3 --- /dev/null +++ b/app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch @@ -0,0 +1,33 @@ +Subject: [PATCH] fix implicit int declarations in function params + +Clang16 does not allow implicit integer declarations by default. + +Bug: https://bugs.gentoo.org/882583 +Upstream: https://sourceforge.net/p/softgun/patches/5/ + +# Pascal Jäger <pascal.jaeger@leimstift.de> (2023-09-21) +--- a/arm/arm9cpu.h ++++ b/arm/arm9cpu.h +@@ -356,7 +356,7 @@ ARM_PostRestartIdecoder() { + } + + static inline void +-ARM_SigDebugMode(value) { ++ARM_SigDebugMode(uint32_t value) { + if(value) { + gcpu.signals_raw |= ARM_SIG_DEBUGMODE; + } else { +--- a/m32c/idecode_m32c.h ++++ b/m32c/idecode_m32c.h +@@ -84,7 +84,7 @@ M32C_InstructionProcFind(uint16_t icode) + #endif + + static inline int +-M32C_InstructionLen(icode) { ++M32C_InstructionLen(uint32_t icode) { + M32C_Instruction *instr = M32C_InstructionFind(icode); + return instr->len; + } +-- +2.41.0 + diff --git a/app-emulation/softgun/metadata.xml b/app-emulation/softgun/metadata.xml index a1d277727e3a..2ac14e132ac2 100644 --- a/app-emulation/softgun/metadata.xml +++ b/app-emulation/softgun/metadata.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>arm@gentoo.org</email> - <name>Gentoo Linux ARM Development</name> + <name>ARM architecture team</name> </maintainer> <upstream> <remote-id type="sourceforge">softgun</remote-id> diff --git a/app-emulation/softgun/softgun-0.22-r1.ebuild b/app-emulation/softgun/softgun-0.22-r1.ebuild new file mode 100644 index 000000000000..653521bd5aa3 --- /dev/null +++ b/app-emulation/softgun/softgun-0.22-r1.ebuild @@ -0,0 +1,38 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +DESCRIPTION="ARM software emulator" +HOMEPAGE="https://softgun.sourceforge.net/" +SRC_URI="mirror://sourceforge/${PN}/${P}.tgz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~x86" + +DEPEND="media-libs/alsa-lib" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-0.22-make.patch + "${FILESDIR}"/${PN}-0.22-fix-implicit-int.patch + "${FILESDIR}"/${PN}-0.22-fix-declarations-with-type-mismatches.patch +) + +src_configure() { + append-cflags -fcommon + default +} + +src_compile() { + emake CC="$(tc-getCC)" +} + +src_install() { + dodir /usr/bin + emake install prefix="${D}/usr" + dodoc README configs/*.sg +} diff --git a/app-emulation/softgun/softgun-0.22.ebuild b/app-emulation/softgun/softgun-0.22.ebuild index 15758fcf1687..adba0132e20a 100644 --- a/app-emulation/softgun/softgun-0.22.ebuild +++ b/app-emulation/softgun/softgun-0.22.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2015 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 +EAPI=7 -inherit toolchain-funcs eutils +inherit flag-o-matic toolchain-funcs DESCRIPTION="ARM software emulator" HOMEPAGE="http://softgun.sourceforge.net/" @@ -12,13 +12,15 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tgz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ppc ~x86" -IUSE="" DEPEND="media-libs/alsa-lib" -RDEPEND="" +RDEPEND="${DEPEND}" -src_prepare() { - epatch "${FILESDIR}"/${PN}-0.22-make.patch +PATCHES=( "${FILESDIR}"/${PN}-0.22-make.patch ) + +src_configure() { + append-cflags -fcommon + default } src_compile() { diff --git a/app-emulation/spectemu/metadata.xml b/app-emulation/spectemu/metadata.xml index 6f49eba8f496..85e4ed814fa2 100644 --- a/app-emulation/spectemu/metadata.xml +++ b/app-emulation/spectemu/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> </pkgmetadata> diff --git a/app-emulation/spice-html5/Manifest b/app-emulation/spice-html5/Manifest deleted file mode 100644 index b206c42b4f8a..000000000000 --- a/app-emulation/spice-html5/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST spice-html5-spice-html5-0.2.1.tar.gz 486871 BLAKE2B 4b44ad772ab5abf13e8d3fe7c651169b340c8978f4163b9b679046efaa554f86d5919d154f16262ea28ddb512ac55ea7b6651ae63f64cf6b69033d8306191dc3 SHA512 c6e17aa465da1a0b882184bb19f2560f43fd3b345fdc00ec71774c7aec37c3453fd87b2448202011e217dda21b602d20dd4d552d49d9a52b64cb91aff092eff7 -DIST spice-html5-spice-html5-0.2.2.tar.gz 487210 BLAKE2B 125e5c2b36970c787897395eb56f71f90067ca5e6a80da4981f26ed3083b3cef4aaa40d2bb9767e775f9739eb15182c2cea874305e6a247c56be00e037bee6d6 SHA512 2a486552055762e44f54a7454d97e49d8f0d92a476b768f8724e6dfb6796851bd143a2c5b74fc2cff0bcec1f86b919428562f82e4b8de51ff95dadcc8b1a8133 diff --git a/app-emulation/spice-html5/metadata.xml b/app-emulation/spice-html5/metadata.xml deleted file mode 100644 index 4567d53b9b82..000000000000 --- a/app-emulation/spice-html5/metadata.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>prometheanfire@gentoo.org</email> - <name>Matthew Thode</name> - </maintainer> - <maintainer type="project"> - <email>openstack@gentoo.org</email> - <name>Openstack</name> - </maintainer> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/spice-html5/spice-html5-0.2.1.ebuild b/app-emulation/spice-html5/spice-html5-0.2.1.ebuild deleted file mode 100644 index f5632403f2a1..000000000000 --- a/app-emulation/spice-html5/spice-html5-0.2.1.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Spice Javascript client" -HOMEPAGE="https://gitlab.freedesktop.org/spice/spice-html5" -SRC_URI="https://gitlab.freedesktop.org/spice/${PN}/-/archive/${P}/${PN}-${P}.tar.gz" -S="${WORKDIR}/${PN}-${P}" - -LICENSE="LGPL-3" -SLOT="0" -KEYWORDS="amd64 ~arm64 x86" -IUSE="" - -DEPEND="" -RDEPEND="${DEPEND}" -BDEPEND="" - -# no compiling -src_compile() { - true -} - -src_install() { - insinto /usr/share/spice-html5 - doins -r src apache.conf.sample spice.css spice.html spice_auto.html -} diff --git a/app-emulation/spice-html5/spice-html5-0.2.2.ebuild b/app-emulation/spice-html5/spice-html5-0.2.2.ebuild deleted file mode 100644 index b14ee2cb65c1..000000000000 --- a/app-emulation/spice-html5/spice-html5-0.2.2.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2019-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Spice Javascript client" -HOMEPAGE="https://gitlab.freedesktop.org/spice/spice-html5" -SRC_URI="https://gitlab.freedesktop.org/spice/${PN}/-/archive/${P}/${PN}-${P}.tar.gz" -S="${WORKDIR}/${PN}-${P}" - -LICENSE="LGPL-3" -SLOT="0" -KEYWORDS="~amd64 ~arm64 ~x86" -IUSE="" - -DEPEND="" -RDEPEND="${DEPEND}" -BDEPEND="" - -# no compiling -src_compile() { - true -} - -src_install() { - insinto /usr/share/spice-html5 - doins -r src apache.conf.sample spice.css spice.html spice_auto.html -} diff --git a/app-emulation/spice-protocol/Manifest b/app-emulation/spice-protocol/Manifest index 2b4cea0ccb8f..b8a9464a18fa 100644 --- a/app-emulation/spice-protocol/Manifest +++ b/app-emulation/spice-protocol/Manifest @@ -1 +1,3 @@ DIST spice-protocol-0.14.1.tar.bz2 73444 BLAKE2B 12050c38ee3d24814b57a340a88423352edae6412b5a20e27d59b7235e753f51aaf757f7e9e6ce702d0b0c0afeadfde7f3937725ae4715ae4dc4da20ee7fd663 SHA512 88b0e652564a1f826ee6d3c165ab05c40d13f366567db3840805f03d433d13d7f722225219c26759770d2cde33221fe6d97528521d0eb14bc069cd7ce9af8482 +DIST spice-protocol-0.14.3.tar.xz 22224 BLAKE2B 32e69c56ea78e21cf2ff9474e34908eababc1dd9667cd8be24c973e9ff006e1a14f55dd23ab16c40d7bcb5bd7f00392edccdd3512218928787ad9162a6519f1c SHA512 9e35fd0d9be14074a482bdb20fe6954e5f0a616d0ad60da63a065435df2b169ec134a95d5756df73e2606c7497c9bf0427023d4e5ebfbb1abb181cf8020879a6 +DIST spice-protocol-0.14.4.tar.xz 23540 BLAKE2B a36ea56f000fbbfd87f3a318ff932332116f5229d89cbf19be53e7605aef52cc650d453982d23d1f2decb7ef1273758b40022dc1dada49f40cd6f75e55f014d6 SHA512 c55677fd6da37303487f8245388cbd555715c736e15bca4a305c4374feafc655b74e549ea401949d72e17b2e6ad76f16c5add3963008a18a1fefedd4b4a001c1 diff --git a/app-emulation/spice-protocol/metadata.xml b/app-emulation/spice-protocol/metadata.xml index 121cd46cb5e1..cfac6f8ac4ff 100644 --- a/app-emulation/spice-protocol/metadata.xml +++ b/app-emulation/spice-protocol/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>virtualization@gentoo.org</email> diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild index 4c27cafcadab..f62cd0b98d8c 100644 --- a/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild +++ b/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild @@ -9,7 +9,7 @@ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2" LICENSE="BSD" SLOT="0" -KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86" +KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ppc64 ~sparc x86" IUSE="" DEPEND="" diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild new file mode 100644 index 000000000000..2d8171ddeca0 --- /dev/null +++ b/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild @@ -0,0 +1,14 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit meson + +DESCRIPTION="Headers defining the SPICE protocol" +HOMEPAGE="https://www.spice-space.org/" +SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ppc64 ~riscv ~sparc x86" diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild new file mode 100644 index 000000000000..3bd2990219d2 --- /dev/null +++ b/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild @@ -0,0 +1,20 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit meson + +if [[ ${PV} = *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice-protocol.git" +else + SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz" + KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~loong ~ppc ppc64 ~riscv ~sparc x86" +fi + +DESCRIPTION="Headers defining the SPICE protocol" +HOMEPAGE="https://spice-space.org/" + +LICENSE="BSD" +SLOT="0" diff --git a/app-emulation/spice-protocol/spice-protocol-9999.ebuild b/app-emulation/spice-protocol/spice-protocol-9999.ebuild index a2dc0bc3006d..8908284a7192 100644 --- a/app-emulation/spice-protocol/spice-protocol-9999.ebuild +++ b/app-emulation/spice-protocol/spice-protocol-9999.ebuild @@ -1,18 +1,16 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 inherit meson if [[ ${PV} = *9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice-protocol.git" - SRC_URI="" - KEYWORDS="" else - SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2" - KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86" + SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" fi DESCRIPTION="Headers defining the SPICE protocol" @@ -20,7 +18,3 @@ HOMEPAGE="https://spice-space.org/" LICENSE="BSD" SLOT="0" -IUSE="" - -DEPEND="" -RDEPEND="${DEPEND}" diff --git a/app-emulation/spice-vdagent/Manifest b/app-emulation/spice-vdagent/Manifest index d62998b6b3ac..49738685af14 100644 --- a/app-emulation/spice-vdagent/Manifest +++ b/app-emulation/spice-vdagent/Manifest @@ -1,2 +1 @@ -DIST spice-vdagent-0.19.0.tar.bz2 151356 BLAKE2B b7a99a7205d955b27edfe483746e3f267a6e0b7885c4b8146ba42d99b581cf4e1748b503a37a3d6b66623ef2515b42756f2e6a5a4775d56def7aa396bd0dfb4f SHA512 f5056dfe66df3ee8205549be22bbc8c17d2196c8448eda97f01659ff30c34d9929f330767d7fafec557dc5f7fb9b65eaf85973193b38df774042de9b72d6e60d -DIST spice-vdagent-0.20.0.tar.bz2 152510 BLAKE2B b00caadab385f4208bd18b78a006831953f99387e55fd86226efffdf537426627f02bb46708173b700eecd21f598a0db94f454c5252b0f4bfb93c30b39d69d16 SHA512 a6288e056645c071834f9ce5800669cb64e0f86a5efeb8eec61ac1e11f1fd56f7da8ea19b28a94c88741d794a0290fac9bcf74d45bcef271c2c5abfb2573a8e1 +DIST spice-vdagent-0.22.1.tar.bz2 165560 BLAKE2B 4fd4318592d20d305d515c65d7491b90ac79bcc7f5bdfafd9df7858bdce24aa57c79f2121bbf9cbadec8e6297890f4b8598b9abcadcce5a9f39712b96deaa396 SHA512 5a4d2661145f33a0583880a128d925b15ca5aec05df83271c80f8baa0fcdd28fab0242301bc38443ccddf70fbdcfd76b5d30bb5a6b4b7c895c3cea0eb38bdf92 diff --git a/app-emulation/spice-vdagent/metadata.xml b/app-emulation/spice-vdagent/metadata.xml index 121cd46cb5e1..cfac6f8ac4ff 100644 --- a/app-emulation/spice-vdagent/metadata.xml +++ b/app-emulation/spice-vdagent/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>virtualization@gentoo.org</email> diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild deleted file mode 100644 index 81ddd00bd633..000000000000 --- a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools linux-info - -DESCRIPTION="SPICE VD Linux Guest Agent" -HOMEPAGE="https://www.spice-space.org/" -SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="gtk selinux systemd" - -CDEPEND=" - dev-libs/glib:2 - >=app-emulation/spice-protocol-0.14.0 - media-libs/alsa-lib - >=x11-libs/libpciaccess-0.10 - x11-libs/libdrm - x11-libs/libXfixes - x11-libs/libXrandr - x11-libs/libX11 - x11-libs/libXinerama - gtk? ( x11-libs/gtk+:3 ) - systemd? ( sys-apps/systemd )" -DEPEND="${CDEPEND} - virtual/pkgconfig" -RDEPEND="${CDEPEND} - selinux? ( sec-policy/selinux-vdagent )" - -CONFIG_CHECK="~INPUT_UINPUT ~VIRTIO_CONSOLE" -ERROR_INPUT_UINPUT="User level input support (INPUT_UINPUT) is required" -ERROR_VIRTIO_CONSOLE="VirtIO console/serial device support (VIRTIO_CONSOLE) is required" - -src_configure() { - local opt=() - if use systemd; then - opt+=( --with-session-info=systemd ) - else - opt+=( --with-session-info=none ) - fi - - econf \ - --with-init-script=systemd \ - --localstatedir="${EPREFIX}"/var \ - $(use_with gtk) \ - "${opt[@]}" -} - -src_install() { - default - - cd "${ED}" && rmdir -p var/run/spice-vdagentd || die - - keepdir /var/log/spice-vdagentd - - newinitd "${FILESDIR}/${PN}.initd-4" "${PN}" - newconfd "${FILESDIR}/${PN}.confd-2" "${PN}" -} diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.20.0.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild index 3365574e5bb4..c58c80ea1479 100644 --- a/app-emulation/spice-vdagent/spice-vdagent-0.20.0.ebuild +++ b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit autotools linux-info +inherit linux-info tmpfiles udev DESCRIPTION="SPICE VD Linux Guest Agent" HOMEPAGE="https://www.spice-space.org/" @@ -11,25 +11,27 @@ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2" LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="~amd64 ~x86" +KEYWORDS="amd64 ~arm64 ~loong x86" IUSE="gtk selinux systemd" -CDEPEND=" +COMMON_DEPEND=" dev-libs/glib:2 >=app-emulation/spice-protocol-0.14.0 media-libs/alsa-lib - >=x11-libs/libpciaccess-0.10 + sys-apps/dbus x11-libs/libdrm + >=x11-libs/libpciaccess-0.10 x11-libs/libXfixes x11-libs/libXrandr x11-libs/libX11 x11-libs/libXinerama gtk? ( x11-libs/gtk+:3 ) systemd? ( sys-apps/systemd )" -DEPEND="${CDEPEND} - virtual/pkgconfig" -RDEPEND="${CDEPEND} +DEPEND="${COMMON_DEPEND} + x11-base/xorg-proto" +RDEPEND="${COMMON_DEPEND} selinux? ( sec-policy/selinux-vdagent )" +BDEPEND="virtual/pkgconfig" CONFIG_CHECK="~INPUT_UINPUT ~VIRTIO_CONSOLE" ERROR_INPUT_UINPUT="User level input support (INPUT_UINPUT) is required" @@ -53,10 +55,19 @@ src_configure() { src_install() { default - cd "${ED}" && rmdir -p var/run/spice-vdagentd || die + rmdir "${ED}"/var/run/spice-vdagentd || die keepdir /var/log/spice-vdagentd newinitd "${FILESDIR}/${PN}.initd-4" "${PN}" newconfd "${FILESDIR}/${PN}.confd-2" "${PN}" } + +pkg_postinst() { + udev_reload + tmpfiles_process spice-vdagentd.conf +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/spice/Manifest b/app-emulation/spice/Manifest index 7b50d54451c4..c75ff310017c 100644 --- a/app-emulation/spice/Manifest +++ b/app-emulation/spice/Manifest @@ -1 +1,2 @@ -DIST spice-0.14.3.tar.bz2 1504304 BLAKE2B be655e1d4c48dae29903ab8e0dc52da63723e3252052afccc9587065531f28c8af7dbab4c585093f26d98f2273c6e734a553c18d4779a9f4464334ae1764f682 SHA512 9ecdc455ff25c71ac1fe6c576654b51efbfb860110bd6828065d23f7462d5c5cac772074d1a40f033386258d970b77275b2007bcfdffb23fdff2137154ea46e4 +DIST spice-0.15.1.tar.bz2 1623290 BLAKE2B 19ddb3cac91be07a4a358ed89a5e4d1a5c406a9831b8c8a518764055354ecf6e09d129ae03ba65d876669da72f2cbf0c307261564097f60951711e9852eebb69 SHA512 362ab2f0b483911830693834515e1d331a6b929c5c63fd4522e843c42bbb7d8a52510d60f5f17d175dd2617c9621630f6a81f3ff7dce11dc28e6fb135e60fa86 +DIST spice-0.15.2.tar.bz2 1663326 BLAKE2B 00f5393ac409590b8fe0203251b811a4fe6dca16e644a30dd8165d57ff28cbef3b2f9c2a92ff7d2f6c8092bbef4f89a4e85ef9228cc8c03b0a163ffa3afaf9f6 SHA512 c8f273b9e97ef38a03b331f7d32c5f0a09d540523fe626568c845152cbd22273a92b3a08bc13fa2e061b913ad16ceb7cbddf142655cd9cdcd8eb5f646fa6aa26 diff --git a/app-emulation/spice/metadata.xml b/app-emulation/spice/metadata.xml index ee309bddf45f..ce2f1efd9185 100644 --- a/app-emulation/spice/metadata.xml +++ b/app-emulation/spice/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>virtualization@gentoo.org</email> @@ -8,4 +8,7 @@ <use> <flag name="smartcard">Enable smartcard remoting using <pkg>app-emulation/libcacard</pkg></flag> </use> + <upstream> + <remote-id type="freedesktop-gitlab">spice/spice</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/spice/spice-0.14.3.ebuild b/app-emulation/spice/spice-0.15.1-r1.ebuild index cfce2f9d50a5..3a1d525ff2a6 100644 --- a/app-emulation/spice/spice-0.14.3.ebuild +++ b/app-emulation/spice/spice-0.15.1-r1.ebuild @@ -1,9 +1,10 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) +PYTHON_COMPAT=( python3_{10..12} ) +# Port to meson once https://gitlab.freedesktop.org/spice/spice/-/issues/75 is fixed inherit autotools python-any-r1 readme.gentoo-r1 xdg-utils DESCRIPTION="SPICE server" @@ -12,30 +13,32 @@ SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2 LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="amd64 arm64 ~ppc64 x86" -IUSE="libressl lz4 sasl smartcard static-libs gstreamer" +KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv x86" +IUSE="gstreamer lz4 sasl smartcard static-libs test" + +RESTRICT="!test? ( test )" # the libspice-server only uses the headers of libcacard -RDEPEND=" - dev-lang/orc[static-libs(+)?] - >=dev-libs/glib-2.22:2[static-libs(+)?] +RDEPEND="dev-lang/orc[static-libs(+)?] + >=dev-libs/glib-2.38:2[static-libs(+)?] + dev-libs/openssl:0=[static-libs(+)?] media-libs/opus[static-libs(+)?] + media-libs/libjpeg-turbo:0=[static-libs(+)?] sys-libs/zlib[static-libs(+)?] - virtual/jpeg:0=[static-libs(+)?] >=x11-libs/pixman-0.17.7[static-libs(+)?] - !libressl? ( dev-libs/openssl:0=[static-libs(+)?] ) - libressl? ( dev-libs/libressl:0=[static-libs(+)?] ) lz4? ( app-arch/lz4:0=[static-libs(+)?] ) - smartcard? ( >=app-emulation/libcacard-0.1.2 ) + smartcard? ( >=app-emulation/libcacard-2.5.1 ) sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] ) gstreamer? ( media-libs/gstreamer:1.0 media-libs/gst-plugins-base:1.0 )" DEPEND="${RDEPEND} - >=app-emulation/spice-protocol-0.14.0 - smartcard? ( app-emulation/qemu[smartcard] )" + >=app-emulation/spice-protocol-0.14.3 + smartcard? ( app-emulation/qemu[smartcard] ) + test? ( net-libs/glib-networking )" BDEPEND="${PYTHON_DEPS} + dev-build/autoconf-archive virtual/pkgconfig $(python_gen_any_dep ' >=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}] @@ -43,8 +46,8 @@ BDEPEND="${PYTHON_DEPS} ')" python_check_deps() { - has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]" - has_version -b "dev-python/six[${PYTHON_USEDEP}]" + python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]" + python_has_version -b "dev-python/six[${PYTHON_USEDEP}]" } pkg_setup() { @@ -65,15 +68,17 @@ src_configure() { xdg_environment_reset - local myconf=" + local myconf=( $(use_enable static-libs static) $(use_enable lz4) $(use_with sasl) $(use_enable smartcard) + $(use_enable test tests) --enable-gstreamer=$(usex gstreamer "1.0" "no") --disable-celt051 - " - econf ${myconf} + ) + + econf "${myconf[@]}" } src_compile() { diff --git a/app-emulation/spice/spice-0.15.2.ebuild b/app-emulation/spice/spice-0.15.2.ebuild new file mode 100644 index 000000000000..69caa30dafc1 --- /dev/null +++ b/app-emulation/spice/spice-0.15.2.ebuild @@ -0,0 +1,97 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +inherit meson python-any-r1 readme.gentoo-r1 xdg-utils + +DESCRIPTION="SPICE server" +HOMEPAGE="https://www.spice-space.org/" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice.git" + inherit git-r3 + + DEPEND="~app-emulation/spice-protocol-9999" +else + SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2" + KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv x86" +fi + +LICENSE="LGPL-2.1" +SLOT="0" +IUSE="gstreamer lz4 sasl smartcard static-libs test" +RESTRICT="!test? ( test )" + +# The libspice-server only uses the headers of libcacard +RDEPEND=" + dev-lang/orc[static-libs(+)?] + >=dev-libs/glib-2.38:2[static-libs(+)?] + dev-libs/openssl:0=[static-libs(+)?] + media-libs/opus[static-libs(+)?] + media-libs/libjpeg-turbo:0=[static-libs(+)?] + sys-libs/zlib[static-libs(+)?] + >=x11-libs/pixman-0.17.7[static-libs(+)?] + lz4? ( app-arch/lz4:0=[static-libs(+)?] ) + smartcard? ( >=app-emulation/libcacard-2.5.1 ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] ) + gstreamer? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) +" +DEPEND+=" + ${RDEPEND} + >=app-emulation/spice-protocol-0.14.3 + smartcard? ( app-emulation/qemu[smartcard] ) + test? ( net-libs/glib-networking ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glib-utils + virtual/pkgconfig + $(python_gen_any_dep ' + >=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + ') +" + +python_check_deps() { + python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]" + python_has_version -b "dev-python/six[${PYTHON_USEDEP}]" +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && python-any-r1_pkg_setup +} + +src_configure() { + # Prevent sandbox violations, bug #586560 + # https://bugzilla.gnome.org/show_bug.cgi?id=744134 + # https://bugzilla.gnome.org/show_bug.cgi?id=744135 + use gstreamer && addpredict /dev + + xdg_environment_reset + + local emesonargs=( + -Ddefault_library=$(usex static-libs both shared) + -Dgstreamer=$(usex gstreamer 1.0 no) + -Dopus=enabled + -Dmanual=false + $(meson_use lz4) + $(meson_use sasl) + $(meson_feature smartcard) + $(meson_use test tests) + ) + + meson_src_configure +} + +src_install() { + meson_src_install + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog +} diff --git a/app-emulation/spice/spice-9999.ebuild b/app-emulation/spice/spice-9999.ebuild index 57eb7a47e64d..22dfed00d335 100644 --- a/app-emulation/spice/spice-9999.ebuild +++ b/app-emulation/spice/spice-9999.ebuild @@ -1,57 +1,64 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit git-r3 meson python-any-r1 readme.gentoo-r1 xdg-utils +PYTHON_COMPAT=( python3_{10..12} ) +inherit meson python-any-r1 readme.gentoo-r1 xdg-utils DESCRIPTION="SPICE server" HOMEPAGE="https://www.spice-space.org/" -SRC_URI="" -EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice.git" +if [[ ${PV} == 9999 ]] ; then + EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice.git" + inherit git-r3 + + DEPEND="~app-emulation/spice-protocol-9999" +else + SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2" + KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86" +fi LICENSE="LGPL-2.1" SLOT="0" -KEYWORDS="" -IUSE="gstreamer libressl lz4 opus sasl smartcard static-libs" +IUSE="gstreamer lz4 sasl smartcard static-libs test" +RESTRICT="!test? ( test )" -# the libspice-server only uses the headers of libcacard +# The libspice-server only uses the headers of libcacard RDEPEND=" - dev-lang/orc - >=dev-libs/glib-2.22:2 - sys-libs/zlib - virtual/jpeg:0= - >=x11-libs/pixman-0.17.7 - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - lz4? ( app-arch/lz4:0= ) - opus? ( media-libs/opus ) - smartcard? ( >=app-emulation/libcacard-0.1.2 ) - sasl? ( dev-libs/cyrus-sasl ) + dev-lang/orc[static-libs(+)?] + >=dev-libs/glib-2.38:2[static-libs(+)?] + dev-libs/openssl:0=[static-libs(+)?] + media-libs/opus[static-libs(+)?] + media-libs/libjpeg-turbo:0=[static-libs(+)?] + sys-libs/zlib[static-libs(+)?] + >=x11-libs/pixman-0.17.7[static-libs(+)?] + lz4? ( app-arch/lz4:0=[static-libs(+)?] ) + smartcard? ( >=app-emulation/libcacard-2.5.1 ) + sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] ) gstreamer? ( media-libs/gstreamer:1.0 media-libs/gst-plugins-base:1.0 - )" -DEPEND="${RDEPEND} - ~app-emulation/spice-protocol-9999 - smartcard? ( app-emulation/qemu[smartcard] )" -BDEPEND="${PYTHON_DEPS} + ) +" +DEPEND+=" + ${RDEPEND} + >=app-emulation/spice-protocol-0.14.3 + smartcard? ( app-emulation/qemu[smartcard] ) + test? ( net-libs/glib-networking ) +" +BDEPEND=" + ${PYTHON_DEPS} + dev-util/glib-utils virtual/pkgconfig $(python_gen_any_dep ' >=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}] dev-python/six[${PYTHON_USEDEP}] - ')" - -DOCS=( - AUTHORS - CHANGELOG.md - README -) + ') +" python_check_deps() { - has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]" - has_version -b "dev-python/six[${PYTHON_USEDEP}]" + python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]" + python_has_version -b "dev-python/six[${PYTHON_USEDEP}]" } pkg_setup() { @@ -69,28 +76,19 @@ src_configure() { local emesonargs=( -Ddefault_library=$(usex static-libs both shared) -Dgstreamer=$(usex gstreamer 1.0 no) + -Dopus=enabled + -Dmanual=false $(meson_use lz4) $(meson_use sasl) - $(meson_feature opus) $(meson_feature smartcard) - -Dmanual=false - -Dtests=false + $(meson_use test tests) ) - meson_src_configure -} -src_compile() { - # Prevent sandbox violations, bug #586560 - # https://bugzilla.gnome.org/show_bug.cgi?id=744134 - # https://bugzilla.gnome.org/show_bug.cgi?id=744135 - use gstreamer && addpredict /dev - - meson_src_compile + meson_src_configure } src_install() { meson_src_install - einstalldocs readme.gentoo_create_doc } diff --git a/app-emulation/spim/metadata.xml b/app-emulation/spim/metadata.xml index 9d9f29c5239c..956e906311b4 100644 --- a/app-emulation/spim/metadata.xml +++ b/app-emulation/spim/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> <longdescription lang="en"> diff --git a/app-emulation/spim/spim-8.0-r3.ebuild b/app-emulation/spim/spim-8.0-r3.ebuild index 2717b50ee23c..a011ed2f09c8 100644 --- a/app-emulation/spim/spim-8.0-r3.ebuild +++ b/app-emulation/spim/spim-8.0-r3.ebuild @@ -1,8 +1,9 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 -inherit toolchain-funcs +EAPI=7 + +inherit desktop toolchain-funcs DESCRIPTION="MIPS Simulator" HOMEPAGE="http://spimsimulator.sourceforge.net/" @@ -10,29 +11,32 @@ SRC_URI="http://www.cs.wisc.edu/~larus/SPIM/${P}.tar.gz" LICENSE="BSD" SLOT="0" -KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos" +KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos" IUSE="doc X" RDEPEND=" X? ( media-fonts/font-adobe-100dpi - x11-libs/libXaw ) -" -DEPEND="${RDEPEND} - X? ( - x11-base/xorg-proto - x11-misc/imake + x11-libs/libXaw ) - sys-devel/bison " +DEPEND=" + ${RDEPEND} + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + app-alternatives/yacc + X? ( x11-misc/imake ) +" + # test hangs forever, disabling it RESTRICT="test" src_prepare() { - # fix bugs 240005 and 243588 + # fix bug #240005 and bug #243588 eapply "${FILESDIR}/${P}-r1-respect_env.patch" - #fix bug 330389 + # fix bug #330389 sed -i -e 's:-12-\*-75-:-14-\*-100-:g' xspim/xspim.c || die default @@ -56,6 +60,10 @@ src_compile() { fi } +src_test() { + emake -C spim test +} + src_install() { emake DESTDIR="${ED}" -C spim install newman Documentation/spim.man spim.1 @@ -74,7 +82,3 @@ src_install() { dodoc Documentation/TeX/{cycle,spim}.ps fi } - -src_test() { - emake -C spim test -} diff --git a/app-emulation/uade/metadata.xml b/app-emulation/uade/metadata.xml index 78274e0fa550..b289c0683468 100644 --- a/app-emulation/uade/metadata.xml +++ b/app-emulation/uade/metadata.xml @@ -1,8 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="project"> - <email>games@gentoo.org</email> - <name>Gentoo Games Project</name> -</maintainer> + <maintainer type="project"> + <email>games@gentoo.org</email> + <name>Gentoo Games Project</name> + </maintainer> + <use> + <flag name="fuse">Enable <pkg>sys-fs/fuse</pkg> uadefs frontend for on-the-fly WAV conversion</flag> + </use> + <upstream> + <remote-id type="gitlab">uade-music-player/uade</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/uade/uade-2.13-r1.ebuild b/app-emulation/uade/uade-2.13-r1.ebuild deleted file mode 100644 index 28ceda581e45..000000000000 --- a/app-emulation/uade/uade-2.13-r1.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit toolchain-funcs - -DESCRIPTION="Unix Amiga Delitracker Emulator - plays old Amiga tunes through UAE emulation" -HOMEPAGE="https://zakalwe.fi/uade" -SRC_URI="https://zakalwe.fi/uade/uade2/${P}.tar.bz2" - -LICENSE="GPL-2+ LGPL-2+" -SLOT="0" -KEYWORDS="amd64 ppc x86" - -RDEPEND="media-libs/libao" -DEPEND="${RDEPEND}" -BDEPEND="virtual/pkgconfig" - -DOCS=( AUTHORS ChangeLog doc/BUGS doc/PLANS ) - -PATCHES=( "${FILESDIR}"/${P}-configure.patch ) - -src_configure() { - tc-export CC - - ./configure \ - --prefix="${EPREFIX}"/usr \ - --package-prefix="${D}" \ - --libdir="${EPREFIX}/usr/$(get_libdir)" \ - --with-text-scope \ - --without-xmms \ - --without-audacious || die -} - -src_install() { - default - doman doc/uade123.1 -} diff --git a/app-emulation/uade/uade-2.13-r2.ebuild b/app-emulation/uade/uade-2.13-r2.ebuild new file mode 100644 index 000000000000..bdefc261f02d --- /dev/null +++ b/app-emulation/uade/uade-2.13-r2.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +DESCRIPTION="Unix Amiga Delitracker Emulator - plays old Amiga tunes through UAE emulation" +HOMEPAGE="https://zakalwe.fi/uade" +SRC_URI="https://zakalwe.fi/uade/uade2/${P}.tar.bz2" + +LICENSE="GPL-2+ LGPL-2+" +SLOT="0" +KEYWORDS="amd64 ppc ppc64 x86" +IUSE="fuse" + +RDEPEND=" + media-libs/libao + fuse? ( sys-fs/fuse:0 )" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig" + +PATCHES=( + "${FILESDIR}"/${P}-configure.patch +) + +DOCS=( AUTHORS ChangeLog doc/BUGS doc/PLANS ) + +src_prepare() { + default + + # needed to avoid ${D} VariableScope undefined behavior in src_configure + find . -name Makefile.in -exec sed -i 's|{PACKAGEPREFIX}|$(DESTDIR)|' {} + || die +} + +src_configure() { + tc-export CC + + # not autotools generated + local configure=( + ./configure + --prefix="${EPREFIX}"/usr + --libdir="${EPREFIX}"/usr/$(get_libdir) + --with-text-scope + --without-audacious + --without-xmms + $(use_with fuse uadefs) + ${EXTRA_ECONF} + ) + echo ${configure[*]} + "${configure[@]}" || die +} diff --git a/app-emulation/umoci/Manifest b/app-emulation/umoci/Manifest deleted file mode 100644 index 826a5a188950..000000000000 --- a/app-emulation/umoci/Manifest +++ /dev/null @@ -1 +0,0 @@ -DIST umoci-0.2.1.tar.gz 241472 BLAKE2B 2802fcb14e717a6460f9dc06226d3b430cce2181838a32064e86987131317947a4b117e91d11f981fa1df027804dbf2d92472b5c21749783b4f2ed371c699e7e SHA512 dfd7bbd1afd232400a9bffaf6c074d28ce4ce696c9f3c70bd436cc41b96928415d0793d57b1cf34dd70efd7d0e5eb567eaeea65d793c27ff9ea46fb190bd1807 diff --git a/app-emulation/umoci/metadata.xml b/app-emulation/umoci/metadata.xml deleted file mode 100644 index c36c37139fad..000000000000 --- a/app-emulation/umoci/metadata.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>williamh@gentoo.org</email> - <name>William Hubbs</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/umoci/umoci-0.2.1.ebuild b/app-emulation/umoci/umoci-0.2.1.ebuild deleted file mode 100644 index ad66e4afe83d..000000000000 --- a/app-emulation/umoci/umoci-0.2.1.ebuild +++ /dev/null @@ -1,42 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -EGO_PN="github.com/openSUSE/umoci" -COMMIT=0465f83826bc4f52e6e3c4dbb1022ec5792c421f -inherit golang-vcs-snapshot - -DESCRIPTION="Manipulation tool for OCI images" -HOMEPAGE="https://github.com/openSUSE/umoci" -SRC_URI="https://github.com/openSUSE/umoci/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -DEPEND="dev-go/go-md2man" - -S="${WORKDIR}/${P}/src/${EGO_PN}" - -RESTRICT="test" - -src_compile() { - set -- env GOPATH="${WORKDIR}/${P}:$(get_golibdir_gopath)" \ - go build -v -work -x \ - -ldflags "-w -X main.gitCommit=${COMMIT} -X main.version=${PV}" \ - -o "bin/${PN}" ./cmd/${PN} - echo "$@" - "$@" || die - cd man - for f in *.1.md; do - go-md2man -in ${f} -out ${f%%.md} || die - done -} - -src_install() { -dobin bin/${PN} -doman man/*.1 -dodoc CHANGELOG.md -einstalldocs -} diff --git a/app-emulation/uxn/Manifest b/app-emulation/uxn/Manifest new file mode 100644 index 000000000000..4d0cba24998c --- /dev/null +++ b/app-emulation/uxn/Manifest @@ -0,0 +1 @@ +DIST uxn-0_p20240304.tar.gz 307083 BLAKE2B 2b3a556c5094fd777d82d75c87f721d1a9ea136334cdbc8553662281ae498beb79514e9e567e79b84a625b2fe60b486aa7f6892594cbd08abbbfeb4c9a50b2e9 SHA512 048e24e33de04913e03fbf1b242837dd1ad190f52ede16c302cf436399f0ee478afca545236dd438e03d8dfc29252478c2d79c9b6d3e8d34bb83c99f1930d026 diff --git a/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch b/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch new file mode 100644 index 000000000000..a8b75458da43 --- /dev/null +++ b/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch @@ -0,0 +1,20 @@ +--- a/build.sh ++++ b/build.sh +@@ -52,7 +52,7 @@ fi + + mkdir -p bin + CC="${CC:-cc}" +-CFLAGS="${CFLAGS:--std=c89 -Wall -Wno-unknown-pragmas}" ++CFLAGS="${CFLAGS} --std=c89 " + case "$(uname -s 2>/dev/null)" in + MSYS_NT*|MINGW*) # MSYS2 on Windows + FILE_LDFLAGS="-liberty" +@@ -77,7 +77,7 @@ then + echo "[debug]" + CFLAGS="${CFLAGS} -DDEBUG -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined" + else +- CFLAGS="${CFLAGS} -DNDEBUG -O2 -g0 -s" ++ CFLAGS="${CFLAGS} -DNDEBUG " + fi + + ${CC} ${CFLAGS} src/uxnasm.c -o bin/uxnasm diff --git a/app-emulation/uxn/metadata.xml b/app-emulation/uxn/metadata.xml new file mode 100644 index 000000000000..825e9e0f54aa --- /dev/null +++ b/app-emulation/uxn/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> + +<pkgmetadata> + <maintainer type="person"> + <email>xgqt@gentoo.org</email> + <name>Maciej Barć</name> + </maintainer> + <longdescription> + Uxn is a virtual machine with 32 instructions. This one-page computer is + capable of hosting small applications, programmable in a unique language. + It was designed with an implementation-first mindset with a focus on + creating portable tools and games. + </longdescription> + <upstream> + <remote-id type="sourcehut">~rabbits/uxn</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/uxn/uxn-0_p20240304.ebuild b/app-emulation/uxn/uxn-0_p20240304.ebuild new file mode 100644 index 000000000000..8e63625c852d --- /dev/null +++ b/app-emulation/uxn/uxn-0_p20240304.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="An assembler and emulator for the Uxn stack-machine, written in ANSI C" +HOMEPAGE="https://wiki.xxiivv.com/site/uxn.html + https://git.sr.ht/~rabbits/uxn/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://git.sr.ht/~rabbits/${PN}" +elif [[ "${PV}" == *_p20240304 ]] ; then + COMMIT=e7c25fad05850f0e577fc83a140405ca6ccd93c2 + SRC_URI="https://git.sr.ht/~rabbits/${PN}/archive/${COMMIT}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/uxn-${COMMIT}" + + KEYWORDS="amd64 ~x86" +else + die "wrong package version (PV), please update the ebuild, given: ${PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + media-libs/libsdl2:= +" +DEPEND=" + ${RDEPEND} +" + +PATCHES=( + "${FILESDIR}/uxn-0_p20230609-build.sh.patch" +) + +src_compile() { + CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" \ + ./build.sh --no-run \ + || die "building with \"build.sh\" failed" + + # Fails to assemble via following loop. + # Possibly not mean to be assembled by hand. + rm -rf ./projects/library ./projects/software/{asma,launcher}.tal || die + + local tal_file + local tal_file_base + + while read -r tal_file ; do + tal_file_base="$(basename "${tal_file}" .tal)" + + ebegin "Assembling ROM ${tal_file_base}" + bin/uxnasm "${tal_file}" "$(dirname "${tal_file}")/${tal_file_base}.rom" + eend ${?} || die "failed to assemble ${tal_file}" + done \ + < <(find projects -type f -name "*.tal") +} + +src_install() { + insinto /usr/bin + doins bin/uxn{asm,cli,emu} + fperms 0755 /usr/bin/uxn{asm,cli,emu} + + insinto /usr/share/uxn + doins -r projects + + einstalldocs +} diff --git a/app-emulation/uxn/uxn-9999.ebuild b/app-emulation/uxn/uxn-9999.ebuild new file mode 100644 index 000000000000..ef6e9fc2dafe --- /dev/null +++ b/app-emulation/uxn/uxn-9999.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs + +DESCRIPTION="An assembler and emulator for the Uxn stack-machine, written in ANSI C" +HOMEPAGE="https://wiki.xxiivv.com/site/uxn.html + https://git.sr.ht/~rabbits/uxn/" + +if [[ "${PV}" == *9999* ]] ; then + inherit git-r3 + + EGIT_REPO_URI="https://git.sr.ht/~rabbits/${PN}" +elif [[ "${PV}" == *_p20240304 ]] ; then + COMMIT=e7c25fad05850f0e577fc83a140405ca6ccd93c2 + SRC_URI="https://git.sr.ht/~rabbits/${PN}/archive/${COMMIT}.tar.gz + -> ${P}.tar.gz" + S="${WORKDIR}/uxn-${COMMIT}" + + KEYWORDS="~amd64 ~x86" +else + die "wrong package version (PV), please update the ebuild, given: ${PV}" +fi + +LICENSE="MIT" +SLOT="0" + +RDEPEND=" + media-libs/libsdl2:= +" +DEPEND=" + ${RDEPEND} +" + +PATCHES=( + "${FILESDIR}/uxn-0_p20230609-build.sh.patch" +) + +src_compile() { + CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" \ + ./build.sh --no-run \ + || die "building with \"build.sh\" failed" + + # Fails to assemble via following loop. + # Possibly not mean to be assembled by hand. + rm -rf ./projects/library ./projects/software/{asma,launcher}.tal || die + + local tal_file + local tal_file_base + + while read -r tal_file ; do + tal_file_base="$(basename "${tal_file}" .tal)" + + ebegin "Assembling ROM ${tal_file_base}" + bin/uxnasm "${tal_file}" "$(dirname "${tal_file}")/${tal_file_base}.rom" + eend ${?} || die "failed to assemble ${tal_file}" + done \ + < <(find projects -type f -name "*.tal") +} + +src_install() { + insinto /usr/bin + doins bin/uxn* + fperms 0755 /usr/bin/uxn* + + insinto /usr/share/uxn + doins -r projects + + einstalldocs +} diff --git a/app-emulation/vagrant/Manifest b/app-emulation/vagrant/Manifest index d686f4587be4..45b131565d44 100644 --- a/app-emulation/vagrant/Manifest +++ b/app-emulation/vagrant/Manifest @@ -1,2 +1,2 @@ -DIST vagrant-2.2.7.tar.gz 2173893 BLAKE2B bf905cb25a905e4fb79ce9c1fb59ad5520b5176d5681dfdc22855ca0a7520535346d2aebffe47162a1f8ca008083c94426e9de92b6d92de4373c654784605c7e SHA512 3455b74c8a867ab37ca9873187a98cdb80feb22a400c4e9f2266897da815815aaefbe0c166172b1c1dbd66aa49ccb1201dcbf904fd883ad34218d694e20d7f87 -DIST vagrant-2.2.9.tar.gz 2215868 BLAKE2B 6d40827c91c86f6b11865d9949e5313c419456c573686944ecd0d1874323aa81d6f26178d5b7a16fee701c513a98b3483dbea0531d9d77dee7b7e284004e17b3 SHA512 15e230bcf336615f0d49a2c40db36f7f26a9f0f6fd42d2ce801f28afc663aadded4fa373e33f9102b21ee70d98563fc68e2b24ffa6c3eec321f58b2c42b0d260 +DIST vagrant-2.4.0.tar.gz 3334706 BLAKE2B 62b720a83646e94c7608a2f8aa7acf985aea0a3532e0474aa45c229b054ea40a6e0b23ccdbfdbf7e27e3da9a4db5f57407656fe103ead0f5a98dc27dae5ebb57 SHA512 94e866b012303b65d33b72034f08305fc04c12be40aeb95247b786b53d14259b7b5062b372e3c87523390f0539848a0eafd45b28ad16a27badecd8888541243b +DIST vagrant-2.4.1.tar.gz 3342333 BLAKE2B c24c7c30364cb9f03f6e43422ff05954dd877e22a5e244f62cd9ce4925bf10d064fc678dee40a7affd1b6cf49c82d2d2208ee47b92baa0cda4194419ed501be4 SHA512 12ce4a2161e99970f212f265bbc79d6af38bccc44feab95db8db3b8194e8080acb846d680d1006a4e3fb1beabac33f154a7507f43223f675ba1db09a24591893 diff --git a/app-emulation/vagrant/files/vagrant.in b/app-emulation/vagrant/files/vagrant.in index fd35177c6fe0..21d6c0bf3c82 100644 --- a/app-emulation/vagrant/files/vagrant.in +++ b/app-emulation/vagrant/files/vagrant.in @@ -4,7 +4,7 @@ # Vagrant installation directory. This sets up proper environmental variables # so that everything loads and compiles to proper directories. -for r in ruby26 ruby25 ruby24; do +for r in ruby33 ruby32 ruby31 ruby30 ruby27 ruby26; do # not all ruby versions are guaranteed to be installed if ! command -v "${r}" >/dev/null 2>&1; then continue diff --git a/app-emulation/vagrant/metadata.xml b/app-emulation/vagrant/metadata.xml index 4f92768cfae5..1ca87553dc86 100644 --- a/app-emulation/vagrant/metadata.xml +++ b/app-emulation/vagrant/metadata.xml @@ -1,12 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> - <use> - <flag name="virtualbox"> - Use VirtualBox provider. - </flag> - </use> + <maintainer type="person"> + <email>guillaumeseren@gmail.com</email> + <name>Guillaume Seren</name> + </maintainer> + <maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <upstream> <remote-id type="github">hashicorp/vagrant</remote-id> </upstream> diff --git a/app-emulation/vagrant/vagrant-2.2.7-r1.ebuild b/app-emulation/vagrant/vagrant-2.2.7-r1.ebuild deleted file mode 100644 index 19daab60aa2d..000000000000 --- a/app-emulation/vagrant/vagrant-2.2.7-r1.ebuild +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -USE_RUBY="ruby24 ruby25 ruby26" - -RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md" -RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec" -RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt" -RUBY_FAKEGEM_TASK_DOC="" - -inherit bash-completion-r1 ruby-fakegem - -DESCRIPTION="A tool for building and distributing development environments" -HOMEPAGE="https://vagrantup.com/" -SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="+virtualbox" -RESTRICT="test" - -RDEPEND="${RDEPEND} - app-arch/libarchive - net-misc/curl - virtualbox? ( || ( app-emulation/virtualbox app-emulation/virtualbox-bin ) )" - -ruby_add_rdepend " - >=dev-ruby/bcrypt_pbkdf-1.0.0 - >=dev-ruby/childprocess-0.6.0 - >=dev-ruby/ed25519-1.2.4 - >=dev-ruby/erubis-2.7.0 - >=dev-ruby/hashicorp-checkpoint-0.1.5 - >=dev-ruby/i18n-1.1.1:1 - >=dev-ruby/listen-3.1.5 - <dev-ruby/log4r-1.1.11 - <dev-ruby/mime-types-3:* - >=dev-ruby/net-ssh-5.1.0:* - >=dev-ruby/net-sftp-2.1 - >=dev-ruby/net-scp-1.2.0 - dev-ruby/rest-client:2 - >=dev-ruby/rubyzip-1.3:1 - >=dev-ruby/vagrant_cloud-2.0.3 -" - -# upstream specifies rake>=12 but it apparently doesn't need something this -# recent. Because vagrant builds fine with rake 10 and because stabilizing rake -# is tricky, we specify a lower dependency requirement here. This way, we'll be -# able to stabilize vagrant sooner. -ruby_add_bdepend " - >=dev-ruby/rake-10.5.0 -" - -all_ruby_prepare() { - # remove bundler support - sed -i '/[Bb]undler/d' Rakefile || die - rm Gemfile || die - - # loosen dependencies - sed -e '/hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|rake\|childprocess/s/~>/>=/' \ - -i ${PN}.gemspec || die - - # remove windows-specific gems - sed -e '/wdm\|winrm/d' \ - -i ${PN}.gemspec || die - - # remove bsd-specific gems - sed -e '/rb-kqueue/d' \ - -i ${PN}.gemspec || die - - # remove ruby_dep, it's unused and only listed to loosen ruby implementation deps - sed -e '/ruby_dep/d' \ - -i ${PN}.gemspec || die - - sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die -} - -all_ruby_install() { - all_fakegem_install - - newbashcomp contrib/bash/completion.sh ${PN} - - # provide executable similar to upstream: - # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb - dobin "${PN}" - - # directory for plugins.json - keepdir /var/lib/vagrant - - insinto /usr/share/vim/vimfiles/syntax/ - doins contrib/vim/vagrantfile.vim -} diff --git a/app-emulation/vagrant/vagrant-2.2.9-r1.ebuild b/app-emulation/vagrant/vagrant-2.2.9-r1.ebuild deleted file mode 100644 index 9e265ce73a47..000000000000 --- a/app-emulation/vagrant/vagrant-2.2.9-r1.ebuild +++ /dev/null @@ -1,93 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -USE_RUBY="ruby24 ruby25 ruby26" - -RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md" -RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec" -RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt" -RUBY_FAKEGEM_TASK_DOC="" - -inherit bash-completion-r1 ruby-fakegem - -DESCRIPTION="A tool for building and distributing development environments" -HOMEPAGE="https://vagrantup.com/" -SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="~amd64" -IUSE="+virtualbox" -RESTRICT="test" - -RDEPEND="${RDEPEND} - app-arch/libarchive - net-misc/curl - virtualbox? ( || ( app-emulation/virtualbox app-emulation/virtualbox-bin ) )" - -ruby_add_rdepend " - >=dev-ruby/bcrypt_pbkdf-1.0.0 - >=dev-ruby/childprocess-3.0.0 - >=dev-ruby/ed25519-1.2.4 - >=dev-ruby/erubis-2.7.0 - >=dev-ruby/hashicorp-checkpoint-0.1.5 - >=dev-ruby/i18n-1.8:1 - >=dev-ruby/listen-3.1.5 - <dev-ruby/log4r-1.1.11 - <dev-ruby/mime-types-3:* - >=dev-ruby/net-ssh-5.2.0:* - >=dev-ruby/net-sftp-2.1 - >=dev-ruby/net-scp-1.2.0 - dev-ruby/rest-client:2 - dev-ruby/rubyzip:2 - >=dev-ruby/vagrant_cloud-2.0.3 -" - -# upstream specifies rake>=12 but it apparently doesn't need something this -# recent. Because vagrant builds fine with rake 10 and because stabilizing rake -# is tricky, we specify a lower dependency requirement here. This way, we'll be -# able to stabilize vagrant sooner. -ruby_add_bdepend " - >=dev-ruby/rake-10.5.0 -" - -all_ruby_prepare() { - # remove bundler support - sed -i '/[Bb]undler/d' Rakefile || die - rm Gemfile || die - - # loosen dependencies - sed -e '/hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|net-sftp\|rake\|childprocess/s/~>/>=/' \ - -i ${PN}.gemspec || die - - # remove windows-specific gems - sed -e '/wdm\|winrm/d' \ - -i ${PN}.gemspec || die - - # remove bsd-specific gems - sed -e '/rb-kqueue/d' \ - -i ${PN}.gemspec || die - - # remove ruby_dep, it's unused and only listed to loosen ruby implementation deps - sed -e '/ruby_dep/d' \ - -i ${PN}.gemspec || die - - sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die -} - -all_ruby_install() { - all_fakegem_install - - newbashcomp contrib/bash/completion.sh ${PN} - - # provide executable similar to upstream: - # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb - dobin "${PN}" - - # directory for plugins.json - keepdir /var/lib/vagrant - - insinto /usr/share/vim/vimfiles/syntax/ - doins contrib/vim/vagrantfile.vim -} diff --git a/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild b/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild new file mode 100644 index 000000000000..1ed485efc094 --- /dev/null +++ b/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +USE_RUBY="ruby31 ruby32" + +RUBY_FAKEGEM_EXTENSIONS=(ext/vagrant/vagrant_ssl/extconf.rb) +RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md" +RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec" +RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt" +RUBY_FAKEGEM_TASK_DOC="" +RUBY_FAKEGEM_TASK_TEST=test:unit +RUBY_FAKEGEM_RECIPE_TEST=rake + +inherit bash-completion-r1 optfeature ruby-fakegem + +DESCRIPTION="A tool for building and distributing development environments" +HOMEPAGE="https://vagrantup.com/" +SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BUSL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + ${RDEPEND} + app-arch/libarchive + net-misc/curl +" + +ruby_add_rdepend " + >=dev-ruby/bcrypt_pbkdf-1.1.0 + >=dev-ruby/childprocess-4.1.0 + >=dev-ruby/ed25519-1.3.0 + dev-ruby/erubi + >=dev-ruby/googleapis-common-protos-types-1.3.0 + >=dev-ruby/grpc-1.59.2 + >=dev-ruby/hashicorp-checkpoint-0.1.5 + >=dev-ruby/i18n-1.12:1 + >=dev-ruby/listen-3.7 + >=dev-ruby/log4r-1.1.9 + <dev-ruby/log4r-1.1.11 + >=dev-ruby/mime-types-3.3:* + >=dev-ruby/net-ftp-0.2.0 + >=dev-ruby/net-ssh-7.0.0 + >=dev-ruby/net-sftp-4.0.0 + >=dev-ruby/net-scp-4.0.0 + >=dev-ruby/rexml-3.2.0 + >=dev-ruby/rgl-0.5.10 + >=dev-ruby/rubyzip-2.3.2 + >=dev-ruby/vagrant_cloud-3.1.0 + >=dev-ruby/ipaddr-1.2.4 +" + +ruby_add_bdepend " + >=dev-ruby/rake-13.0.0 + test? ( + ~app-emulation/vagrant-${PV} + dev-ruby/fake_ftp + dev-ruby/rake-compiler + >=dev-ruby/rspec-3.11 + >=dev-ruby/rspec-its-1.3.0 + >=dev-ruby/webrick-1.7.0 + ) +" + +all_ruby_prepare() { + # remove bundler support + sed -e '/[Bb]undler/ s:^:#:' \ + -e '/extensiontask/ s:^:#:' \ + -e '/ExtensionTask/,/^end/ s:^:#:' \ + -i Rakefile || die + rm Gemfile || die + rm tasks/bundler.rake || die + + sed -e ':rake\|rspec: s:~>:>=:' \ + -e ':bcrypt_pbkdf\|hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|net-sftp\|childprocess: s:~>:>=:' \ + -e '/fake_ftp/ s:^#*:#:' \ + -e '/wdm/ s:^#*:#:' \ + -e '/winrm/ s:^#*:#:' \ + -e '/rb-kqueue/ s:^#*:#:' \ + -e '/ruby_dep/ s:^#*:#:' \ + -i ${PN}.gemspec || die + + sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die + + sed -i -e 's/format documentation/format progress/' tasks/test.rake || die + + # Avoid tests confused by the environment + rm -f test/unit/vagrant/util/env_test.rb || die + + # Avoid tests for Windows-specific components + rm -rf test/unit/plugins/communicators/winrm || die + sed -e '/eager loads WinRM/askip "Windows component"' \ + -e '/should return the specified communicator if given/askip "Windows component"' \ + -i test/unit/vagrant/machine_test.rb || die + sed -e '/with winrm communicator/ s/context/xcontext/' \ + -i test/unit/plugins/provisioners/ansible/provisioner_test.rb || die +} + +all_ruby_install() { + all_fakegem_install + + newbashcomp contrib/bash/completion.sh ${PN} + + # provide executable similar to upstream: + # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb + dobin "${PN}" + + # directory for plugins.json + keepdir /var/lib/vagrant + + insinto /usr/share/vim/vimfiles/syntax/ + doins contrib/vim/vagrantfile.vim + + optfeature_header "Optional emulation/container backends:" + optfeature "VirtualBox support" app-emulation/virtualbox + optfeature "Docker support" app-containers/docker +} diff --git a/app-emulation/vagrant/vagrant-2.4.1.ebuild b/app-emulation/vagrant/vagrant-2.4.1.ebuild new file mode 100644 index 000000000000..a64f74de084a --- /dev/null +++ b/app-emulation/vagrant/vagrant-2.4.1.ebuild @@ -0,0 +1,122 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +USE_RUBY="ruby31 ruby32 ruby33" + +RUBY_FAKEGEM_EXTENSIONS=(ext/vagrant/vagrant_ssl/extconf.rb) +RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md" +RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec" +RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt" +RUBY_FAKEGEM_TASK_DOC="" +RUBY_FAKEGEM_TASK_TEST=test:unit +RUBY_FAKEGEM_RECIPE_TEST=rake + +inherit bash-completion-r1 optfeature ruby-fakegem + +DESCRIPTION="A tool for building and distributing development environments" +HOMEPAGE="https://vagrantup.com/" +SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BUSL-1.1" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND=" + ${RDEPEND} + app-arch/libarchive + net-misc/curl +" + +ruby_add_rdepend " + >=dev-ruby/bcrypt_pbkdf-1.1.0 + >=dev-ruby/childprocess-4.1.0 + >=dev-ruby/ed25519-1.3.0 + dev-ruby/erubi + >=dev-ruby/googleapis-common-protos-types-1.3.0 + >=dev-ruby/grpc-1.59.2 + >=dev-ruby/hashicorp-checkpoint-0.1.5 + >=dev-ruby/i18n-1.12:1 + >=dev-ruby/listen-3.7 + >=dev-ruby/log4r-1.1.9 + <dev-ruby/log4r-1.1.11 + >=dev-ruby/mime-types-3.3:* + >=dev-ruby/net-ftp-0.2.0 + >=dev-ruby/net-ssh-7.0.0 + >=dev-ruby/net-sftp-4.0.0 + >=dev-ruby/net-scp-4.0.0 + >=dev-ruby/rexml-3.2.0 + >=dev-ruby/rgl-0.5.10 + >=dev-ruby/rubyzip-2.3.2 + >=dev-ruby/vagrant_cloud-3.1.1 + >=dev-ruby/ipaddr-1.2.4 +" + +ruby_add_bdepend " + >=dev-ruby/rake-13.0.0 + test? ( + ~app-emulation/vagrant-${PV} + dev-ruby/fake_ftp + dev-ruby/rake-compiler + >=dev-ruby/rspec-3.11 + >=dev-ruby/rspec-its-1.3.0 + >=dev-ruby/webrick-1.7.0 + ) +" + +all_ruby_prepare() { + # remove bundler support + sed -e '/[Bb]undler/ s:^:#:' \ + -e '/extensiontask/ s:^:#:' \ + -e '/ExtensionTask/,/^end/ s:^:#:' \ + -i Rakefile || die + rm Gemfile || die + rm tasks/bundler.rake || die + + sed -e ':rake\|rspec: s:~>:>=:' \ + -e ':bcrypt_pbkdf\|hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|net-sftp\|childprocess: s:~>:>=:' \ + -e '/fake_ftp/ s:^#*:#:' \ + -e '/wdm/ s:^#*:#:' \ + -e '/winrm/ s:^#*:#:' \ + -e '/rb-kqueue/ s:^#*:#:' \ + -e '/ruby_dep/ s:^#*:#:' \ + -i ${PN}.gemspec || die + + sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die + + sed -i -e 's/format documentation/format progress/' tasks/test.rake || die + + # Avoid tests confused by the environment + rm -f test/unit/vagrant/util/env_test.rb || die + + # Avoid tests for Windows-specific components + rm -rf test/unit/plugins/communicators/winrm || die + sed -e '/eager loads WinRM/askip "Windows component"' \ + -e '/should return the specified communicator if given/askip "Windows component"' \ + -i test/unit/vagrant/machine_test.rb || die + sed -e '/with winrm communicator/ s/context/xcontext/' \ + -i test/unit/plugins/provisioners/ansible/provisioner_test.rb || die +} + +all_ruby_install() { + all_fakegem_install + + newbashcomp contrib/bash/completion.sh ${PN} + + # provide executable similar to upstream: + # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb + dobin "${PN}" + + # directory for plugins.json + keepdir /var/lib/vagrant + + insinto /usr/share/vim/vimfiles/syntax/ + doins contrib/vim/vagrantfile.vim + + optfeature_header "Optional emulation/container backends:" + optfeature "VirtualBox support" app-emulation/virtualbox + optfeature "Docker support" app-containers/docker +} diff --git a/app-emulation/vendor-reset/Manifest b/app-emulation/vendor-reset/Manifest new file mode 100644 index 000000000000..d6e8905b5c12 --- /dev/null +++ b/app-emulation/vendor-reset/Manifest @@ -0,0 +1 @@ +DIST vendor-reset-0.1.1_pre20221205.tar.gz 12725340 BLAKE2B 5f2e34b74e83c8f48daad8d2c714872ab23f50cb0fad6b5c7920476b43c2fbfcf5543e923c506dfb2d8c33846e8fdd08c7d20b30fcc053f2c191d813872b44c5 SHA512 87a3c64d917e6a44308115480f14956f65a9f84fef70de29feebe3fcd7d522b59a3dbcb5fc9a340ac9b7a3612a29ed696b4f52648f86a0d877b915c97c5a4cc9 diff --git a/app-emulation/vendor-reset/files/modload.conf b/app-emulation/vendor-reset/files/modload.conf new file mode 100644 index 000000000000..ff75088aa8fe --- /dev/null +++ b/app-emulation/vendor-reset/files/modload.conf @@ -0,0 +1 @@ +vendor-reset diff --git a/app-emulation/vendor-reset/metadata.xml b/app-emulation/vendor-reset/metadata.xml new file mode 100644 index 000000000000..9dd38a3711ed --- /dev/null +++ b/app-emulation/vendor-reset/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sarnex@gentoo.org</email> + <name>Nick Sarnie</name> + </maintainer> + <upstream> + <remote-id type="github">gnif/vendor-reset</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild new file mode 100644 index 000000000000..43bacc3c3ea3 --- /dev/null +++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild @@ -0,0 +1,39 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-mod-r1 + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git" + EGIT_BRANCH="master" + inherit git-r3 +else + KEYWORDS="~amd64" + EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248" + SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" +fi + +DESCRIPTION="Linux kernel vendor specific hardware reset module" +HOMEPAGE="https://github.com/gnif/vendor-reset" + +LICENSE="GPL-2" +SLOT="0" + +S="${WORKDIR}/${PN}-${EGIT_COMMIT}" + +CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER" + +src_compile() { + local modlist=( vendor-reset ) + local modargs=( KDIR="${KV_OUT_DIR}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modules-load.d/ + newins "${FILESDIR}"/modload.conf vendor-reset.conf +} diff --git a/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild new file mode 100644 index 000000000000..245e75a24d32 --- /dev/null +++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit linux-mod toolchain-funcs + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git" + EGIT_BRANCH="master" + inherit git-r3 +else + KEYWORDS="~amd64" + EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248" + SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" +fi + +DESCRIPTION="Linux kernel vendor specific hardware reset module" +HOMEPAGE="https://github.com/gnif/vendor-reset" + +LICENSE="GPL-2" +SLOT="0" + +S="${WORKDIR}/${PN}-${EGIT_COMMIT}" + +MODULE_NAMES="vendor-reset(extra)" + +pkg_setup() { + local CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER" + linux-mod_pkg_setup + BUILD_TARGETS="build" + BUILD_PARAMS="CC=\"$(tc-getBUILD_CC)\" KDIR=${KERNEL_DIR}" +} + +src_install() { + linux-mod_src_install + + insinto /etc/modules-load.d/ + newins "${FILESDIR}"/modload.conf vendor-reset.conf +} diff --git a/app-emulation/vendor-reset/vendor-reset-9999.ebuild b/app-emulation/vendor-reset/vendor-reset-9999.ebuild new file mode 100644 index 000000000000..2723fba58a32 --- /dev/null +++ b/app-emulation/vendor-reset/vendor-reset-9999.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit linux-mod-r1 + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git" + EGIT_BRANCH="master" + inherit git-r3 +else + KEYWORDS="~amd64" + EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248" + SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz" +fi + +DESCRIPTION="Linux kernel vendor specific hardware reset module" +HOMEPAGE="https://github.com/gnif/vendor-reset" + +LICENSE="GPL-2" +SLOT="0" + +CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER" + +src_compile() { + local modlist=( vendor-reset ) + local modargs=( KDIR="${KV_OUT_DIR}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modules-load.d/ + newins "${FILESDIR}"/modload.conf vendor-reset.conf +} diff --git a/app-emulation/vice/Manifest b/app-emulation/vice/Manifest index 5c23e52b7bf4..7c0058509c3a 100644 --- a/app-emulation/vice/Manifest +++ b/app-emulation/vice/Manifest @@ -1,2 +1 @@ -DIST vice-emu-code-r37498-trunk-vice.zip 26810776 BLAKE2B 05baa0d123e9a0f1141ef68940455b5abfccde0204d0ffeb0a806212977be6f1f2c777267cad077272f4e09fa3c6adb9e95436adaaee5482b2ce918a3485caeb SHA512 5b4c31e51efc67ac08f6fe9361c42b80115b315fc24c128861341f2eea7567bdbb1761e52bc914df442ed5cc7f2ca7c6b0a2694441d63e63f9f693bcf72c70c0 -DIST vice-emu-code-r38553-trunk-vice.zip 27146846 BLAKE2B 5139e4b1e9269c3885313889dffc055298c52152da77e5a824270feb0af6ba61a1726160a6d259e9f8840fefe486cc184f5bfda3ba1797e0359159ccf1e9824f SHA512 c4d3f132bae2980163e74695126e979bd68dddecb17c2eea8227edbb675985d1f04ade665b946a5e3c707bc17e260efb61f57aa141b6ef712385d4d85a68ef86 +DIST vice-3.8.tar.gz 13564021 BLAKE2B 709fd6eda874de542e5770a328b0c0308d04f755e3bf1fceba5147156eb894a95ce6f14e9f8848ca6992d4f958082f83a198d2176c1fe54e87027c7dfac8849c SHA512 fe644667736c32386b62af53314a95bf510c75d476eaab14b4c37693f2f57d6815126ab3db2f0cb11300c1a4a07c29b3f25210800ce97a673a0460ab59d0ebba diff --git a/app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch b/app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch deleted file mode 100644 index 557c0a927318..000000000000 --- a/app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch +++ /dev/null @@ -1,29 +0,0 @@ -https://sourceforge.net/p/vice-emu/patches/218/ - -Index: configure.ac -=================================================================== ---- a/configure.ac (revision 38502) -+++ b/configure.ac (working copy) -@@ -1275,6 +1275,14 @@ - fi - - if test x"$found_sdl2" != "xyes"; then -+ PKG_CHECK_MODULES(SDL2, sdl2, [ -+ use_sdl_prefix=no -+ use_sdl2_prefix=no -+ found_sdl2=yes -+ VICE_CFLAGS="$VICE_CFLAGS $SDL2_CFLAGS" -+ VICE_CXXFLAGS="$VICE_CXXFLAGS $SDL2_CFLAGS" -+ LIBS="$LIBS $SDL2_LIBS" -+ ], [ - dnl Check for sdl2-config - if test x"$sdl2_config" != "xno"; then - user_CFLAGS="$CFLAGS" -@@ -1311,6 +1319,7 @@ - CFLAGS="$user_CFLAGS" - CXXFLAGS="$user_CXXFLAGS" - fi -+ ]) - fi - - dnl fail if SDL2 ui was requested, otherwise restore flags and continue diff --git a/app-emulation/vice/metadata.xml b/app-emulation/vice/metadata.xml index 2294b11c8d08..28b3dc71db21 100644 --- a/app-emulation/vice/metadata.xml +++ b/app-emulation/vice/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>games@gentoo.org</email> diff --git a/app-emulation/vice/vice-3.4_p37498.ebuild b/app-emulation/vice/vice-3.4_p37498.ebuild deleted file mode 100644 index 9053d48c332d..000000000000 --- a/app-emulation/vice/vice-3.4_p37498.ebuild +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools multibuild - -MY_P="vice-emu-code-r${PV##*_p}-trunk-vice" - -DESCRIPTION="The Versatile Commodore Emulator" -HOMEPAGE="https://vice-emu.sourceforge.io/" -#SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz" -SRC_URI="https://sourceforge.net/code-snapshots/svn/v/vi/vice-emu/code/${MY_P}.zip" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="alsa debug doc ethernet ffmpeg flac gif +gtk headless ipv6 jpeg lame mpg123 ogg oss +opengl parport pci png portaudio pulseaudio sdl zlib" -REQUIRED_USE="|| ( gtk headless sdl ) gtk? ( zlib )" - -RDEPEND=" - sys-libs/readline:0= - virtual/libintl - alsa? ( media-libs/alsa-lib ) - ethernet? ( - >=net-libs/libpcap-0.9.8 - >=net-libs/libnet-1.1.2.1:1.1 - ) - ffmpeg? ( media-video/ffmpeg:= ) - flac? ( media-libs/flac ) - gif? ( media-libs/giflib:= ) - gtk? ( - dev-libs/glib:2 - media-libs/fontconfig:1.0 - x11-libs/gtk+:3 - opengl? ( - media-libs/glew:0= - virtual/opengl - ) - ) - jpeg? ( virtual/jpeg ) - lame? ( media-sound/lame ) - mpg123? ( media-sound/mpg123 ) - ogg? ( - media-libs/libogg - media-libs/libvorbis - ) - parport? ( sys-libs/libieee1284 ) - pci? ( sys-apps/pciutils ) - png? ( media-libs/libpng:0= ) - portaudio? ( media-libs/portaudio ) - pulseaudio? ( media-sound/pulseaudio ) - sdl? ( media-libs/libsdl2[video] ) - zlib? ( sys-libs/zlib ) -" - -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto -" - -BDEPEND=" - app-arch/unzip - dev-embedded/xa - dev-lang/perl - sys-apps/texinfo - sys-devel/flex - sys-devel/gettext - virtual/pkgconfig - virtual/yacc - doc? ( virtual/texi2dvi ) -" - -S="${WORKDIR}/${MY_P}" -ECONF_SOURCE="${S}" - -src_prepare() { - default - - # Delete some bundled libraries. - rm -r src/lib/lib{ffmpeg,lame,x264} || die - - sed "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g" < configure.proto > configure.ac || die - - local DIR - for DIR in src/resid src/resid-dtv .; do - pushd "${DIR}" || die - AT_NO_RECURSIVE=1 eautoreconf - popd || die - done - - # Strip the predefined C(XX)FLAGS. - sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die -} - -src_configure() { - MULTIBUILD_VARIANTS=( - $(usev gtk) - $(usev headless) - $(usev sdl) - ) - - multibuild_foreach_variant run_in_build_dir multibuild_src_configure -} - -multibuild_enable() { - if [[ ${MULTIBUILD_VARIANT} == $1 ]]; then - printf -- "--enable-%s\n" "$2" - else - printf -- "--disable-%s\n" "$2" - fi -} - -multibuild_src_configure() { - # Some dependencies lack configure options so prevent them becoming - # automagic by using configure cache variables. - use flac || export ac_cv_header_FLAC_stream_decoder_h=no - use mpg123 || export ac_cv_header_mpg123_h=no - use ogg || export ac_cv_header_vorbis_vorbisfile_h=no - use pci || export ac_cv_header_pci_pci_h=no - - # Ensure we use giflib, not ungif. - export ac_cv_lib_ungif_EGifPutLine=no - - # Append ".variant" to x* programs if building multiple variants. - if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then - xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/" - else - unset xform - fi - - econf \ - --program-transform-name="${xform}" \ - --disable-sdlui \ - $(multibuild_enable sdl sdlui2) \ - $(multibuild_enable gtk native-gtk3ui) \ - $(use_enable debug debug-gtk3ui) \ - $(multibuild_enable headless headlessui) \ - $(use_enable opengl hwscale) \ - --disable-shared-ffmpeg \ - --disable-static-ffmpeg \ - $(use_enable ffmpeg external-ffmpeg) \ - $(use_enable ethernet) \ - $(use_enable ipv6) \ - $(use_enable parport libieee1284) \ - $(use_enable portaudio) \ - $(use_enable lame) \ - $(use_enable debug) \ - --disable-arch \ - $(use_enable doc pdf-docs) \ - --enable-html-docs \ - $(use_with pulseaudio pulse) \ - $(use_with alsa) \ - $(use_with oss) \ - $(use_with jpeg) \ - $(use_with png) \ - $(use_with gif) \ - $(use_with zlib) -} - -src_compile() { - multibuild_foreach_variant run_in_build_dir emake -} - -src_install() { - multibuild_foreach_variant run_in_build_dir default - dodoc FEEDBACK - - # Delete the bundled fonts. These could be packaged separately but - # they're only for the HTML documentation. - rm -r "${ED}"/usr/share/doc/${PF}/html/fonts/ || die -} diff --git a/app-emulation/vice/vice-3.4_p38553.ebuild b/app-emulation/vice/vice-3.4_p38553.ebuild deleted file mode 100644 index 6035ab43a443..000000000000 --- a/app-emulation/vice/vice-3.4_p38553.ebuild +++ /dev/null @@ -1,185 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools multibuild xdg - -MY_P="vice-emu-code-r${PV##*_p}-trunk-vice" - -DESCRIPTION="The Versatile Commodore Emulator" -HOMEPAGE="https://vice-emu.sourceforge.io/" -#SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz" -SRC_URI="https://sourceforge.net/code-snapshots/svn/v/vi/vice-emu/code/${MY_P}.zip" - -LICENSE="GPL-2+" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="alsa debug doc ethernet ffmpeg flac gif +gtk headless ipv6 jpeg lame mpg123 ogg oss +opengl parport pci png portaudio pulseaudio sdl zlib" -REQUIRED_USE="|| ( gtk headless sdl ) gtk? ( zlib )" - -RDEPEND=" - sys-libs/readline:0= - virtual/libintl - alsa? ( media-libs/alsa-lib ) - ethernet? ( - >=net-libs/libpcap-0.9.8 - >=net-libs/libnet-1.1.2.1:1.1 - ) - ffmpeg? ( media-video/ffmpeg:= ) - flac? ( media-libs/flac ) - gif? ( media-libs/giflib:= ) - gtk? ( - dev-libs/glib:2 - media-libs/fontconfig:1.0 - x11-libs/cairo - x11-libs/gtk+:3 - x11-libs/pango - opengl? ( - media-libs/glew:0= - virtual/opengl - ) - ) - jpeg? ( virtual/jpeg ) - lame? ( media-sound/lame ) - mpg123? ( media-sound/mpg123 ) - ogg? ( - media-libs/libogg - media-libs/libvorbis - ) - parport? ( sys-libs/libieee1284 ) - pci? ( sys-apps/pciutils ) - png? ( media-libs/libpng:0= ) - portaudio? ( media-libs/portaudio ) - pulseaudio? ( media-sound/pulseaudio ) - sdl? ( media-libs/libsdl2[video] ) - zlib? ( sys-libs/zlib ) -" - -DEPEND=" - ${RDEPEND} - x11-base/xorg-proto -" - -BDEPEND=" - app-arch/unzip - app-text/dos2unix - dev-embedded/xa - dev-lang/perl - sys-apps/texinfo - sys-devel/flex - sys-devel/gettext - virtual/pkgconfig - virtual/yacc - doc? ( virtual/texi2dvi ) - gtk? ( x11-misc/xdg-utils ) -" - -S="${WORKDIR}/${MY_P}" -ECONF_SOURCE="${S}" - -PATCHES=( - "${FILESDIR}"/vice-pkg-config-${PV}.patch -) - -src_prepare() { - default - - # Delete some bundled libraries. - rm -r src/lib/lib{ffmpeg,lame,x264} || die - - local DIR - for DIR in src/resid src/resid-dtv .; do - pushd "${DIR}" || die - AT_NO_RECURSIVE=1 eautoreconf - popd || die - done - - # Strip the predefined C(XX)FLAGS. - sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die -} - -src_configure() { - MULTIBUILD_VARIANTS=( - $(usev gtk) - $(usev headless) - $(usev sdl) - ) - - multibuild_foreach_variant run_in_build_dir multibuild_src_configure -} - -multibuild_enable() { - if [[ ${MULTIBUILD_VARIANT} == $1 ]]; then - printf -- "--enable-%s\n" "$2" - else - printf -- "--disable-%s\n" "$2" - fi -} - -multibuild_src_configure() { - # Some dependencies lack configure options so prevent them becoming - # automagic by using configure cache variables. - use pci || export ac_cv_header_pci_pci_h=no - - # Ensure we use giflib, not ungif. - export ac_cv_lib_ungif_EGifPutLine=no - - # Append ".variant" to x* programs if building multiple variants. - if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then - xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/" - else - unset xform - fi - - econf \ - --program-transform-name="${xform}" \ - --disable-arch \ - $(use_enable debug) \ - $(use_enable debug debug-gtk3ui) \ - $(use_enable ffmpeg external-ffmpeg) \ - $(multibuild_enable headless headlessui) \ - --enable-html-docs \ - $(use_enable ethernet) \ - $(use_enable opengl hwscale) \ - $(use_enable ipv6) \ - $(use_enable lame) \ - $(use_enable parport libieee1284) \ - $(multibuild_enable gtk native-gtk3ui) \ - $(use_enable doc pdf-docs) \ - $(use_enable portaudio) \ - --disable-sdlui \ - $(multibuild_enable sdl sdlui2) \ - --disable-shared-ffmpeg \ - --disable-static-ffmpeg \ - $(multibuild_enable gtk desktop-files) \ - $(use_with alsa) \ - $(use_with gif) \ - $(use_with jpeg) \ - $(use_with oss) \ - $(use_with png) \ - $(use_with pulseaudio pulse) \ - $(use_with zlib) \ - $(use_with mpg123) \ - $(use_with ogg vorbis) \ - $(use_with flac) -} - -src_compile() { - multibuild_foreach_variant run_in_build_dir emake -} - -src_install() { - # Get xdg-desktop-menu to play nicely while doing the install. - dodir /etc/xdg/menus /usr/share/{applications,desktop-directories} - XDG_UTILS_INSTALL_MODE=system \ - XDG_DATA_DIRS="${ED}"/usr/share \ - XDG_CONFIG_DIRS="${ED}"/etc/xdg \ - multibuild_foreach_variant run_in_build_dir default - rm -f "${ED}"/usr/share/applications/*.cache || die - dodoc FEEDBACK - - # Delete the bundled fonts. These could be packaged separately but - # they're only for the HTML documentation. - rm -r "${ED}"/usr/share/doc/${PF}/html/fonts/ || die -} diff --git a/app-emulation/vice/vice-3.8-r1.ebuild b/app-emulation/vice/vice-3.8-r1.ebuild new file mode 100644 index 000000000000..3a39bda48be4 --- /dev/null +++ b/app-emulation/vice/vice-3.8-r1.ebuild @@ -0,0 +1,187 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multibuild toolchain-funcs xdg + +DESCRIPTION="Versatile Commodore Emulator" +HOMEPAGE="https://vice-emu.sourceforge.io/" +SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 x86" +IUSE=" + alsa curl debug doc ethernet flac gif +gtk headless lame mpg123 + ogg openmp oss parport pci png portaudio pulseaudio sdl +" +REQUIRED_USE="|| ( gtk headless sdl )" + +RDEPEND=" + sys-libs/zlib:= + virtual/libintl + alsa? ( media-libs/alsa-lib ) + curl? ( net-misc/curl ) + ethernet? ( + net-libs/libpcap + sys-libs/libcap + ) + flac? ( media-libs/flac:= ) + gif? ( media-libs/giflib:= ) + gtk? ( + >=app-accessibility/at-spi2-core-2.46:2 + dev-libs/glib:2 + media-libs/fontconfig:1.0 + media-libs/glew:0=[-egl-only(-)] + media-libs/libglvnd[X] + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3[X] + x11-libs/libX11 + x11-libs/pango + ) + lame? ( media-sound/lame ) + mpg123? ( media-sound/mpg123 ) + ogg? ( + media-libs/libogg + media-libs/libvorbis + ) + parport? ( sys-libs/libieee1284 ) + pci? ( sys-apps/pciutils ) + png? ( media-libs/libpng:= ) + portaudio? ( media-libs/portaudio ) + pulseaudio? ( media-libs/libpulse ) + sdl? ( + media-libs/libsdl2[video] + media-libs/sdl2-image + ) +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +BDEPEND=" + app-alternatives/awk + app-alternatives/yacc + app-arch/unzip + app-text/dos2unix + dev-embedded/xa + dev-lang/perl + sys-apps/texinfo + app-alternatives/lex + sys-devel/gettext + virtual/pkgconfig + doc? ( virtual/texi2dvi ) + gtk? ( x11-misc/xdg-utils ) +" + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +src_prepare() { + default + + # Strip the predefined C(XX)FLAGS. + sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die + + MULTIBUILD_VARIANTS=( + $(usev gtk) + $(usev headless) + $(usev sdl) + ) + + # Debug build currently broken without copy sources. + multibuild_copy_sources +} + +src_configure() { + tc-export AR + + multibuild_foreach_variant run_in_build_dir multibuild_src_configure +} + +multibuild_src_configure() { + # Append ".variant" to x* programs if building multiple variants. + local xform + (( ${#MULTIBUILD_VARIANTS[@]} > 1 )) && + xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/" + + vice-multi_enable() { + if [[ ${MULTIBUILD_VARIANT} == ${1} ]]; then + echo --enable-${2} + else + echo --disable-${2} + fi + } + + local econfargs=( + --program-transform-name="${xform}" + $(vice-multi_enable gtk desktop-files) + $(vice-multi_enable gtk gtk3ui) + $(vice-multi_enable headless headlessui) + $(vice-multi_enable sdl sdl2ui) + $(usex debug $(vice-multi_enable gtk debug-gtk3ui) --disable-debug-gtk3ui) + $(use_enable debug) + $(use_enable doc pdf-docs) + $(use_enable ethernet) + $(use_enable openmp) + $(use_enable parport parsid) + $(use_with alsa) + $(use_with curl libcurl) + $(use_with flac) + $(use_with gif) + $(use_with lame) + $(use_with lame static-lame) # disables dlopen, uses shared still + $(use_with mpg123) + $(use_with ogg vorbis) + $(use_with oss) + $(use_with parport libieee1284) + $(use_with png) + $(use_with portaudio) + $(use_with pulseaudio pulse) + $(usex alsa --enable-midi $(use_enable oss midi)) + $(usev !pci ac_cv_header_pci_pci_h=no) + --disable-arch + --disable-ffmpeg # deprecated in 3.8, also bug #834359 + --disable-sdl1ui + ac_cv_lib_ungif_EGifPutLine=no # ensure use giflib, not ungif + ) + + econf "${econfargs[@]}" +} + +src_compile() { + # bug #924116 wrt SHELL + multibuild_foreach_variant run_in_build_dir emake SHELL="${BASH}" +} + +src_install() { + # Get xdg-desktop-menu to play nicely while doing the install. + dodir /etc/xdg/menus /usr/share/{applications,desktop-directories} + + XDG_UTILS_INSTALL_MODE=system \ + XDG_DATA_DIRS="${ED}"/usr/share \ + XDG_CONFIG_DIRS="${ED}"/etc/xdg \ + multibuild_foreach_variant run_in_build_dir default + + rm -f "${ED}"/usr/share/applications/*.cache || die + + vice-install_extras() { + docinto html + dodoc doc/html/*.{html,css} + dodoc -r doc/html/images + + insinto /usr/share/vim/vimfiles/ftdetect + doins doc/vim/ftdetect/*.vim + + insinto /usr/share/vim/vimfiles/syntax + doins doc/vim/syntax/*.vim + } + multibuild_for_best_variant run_in_build_dir vice-install_extras +} diff --git a/app-emulation/virt-firmware/Manifest b/app-emulation/virt-firmware/Manifest new file mode 100644 index 000000000000..8181799f3918 --- /dev/null +++ b/app-emulation/virt-firmware/Manifest @@ -0,0 +1 @@ +DIST virt-firmware-24.4.tar.gz 111964 BLAKE2B 16005a6f911abf227988abaedd45237d44d403f367abd3c2d413f899a6c3e7db2a62edcd36b7408263f101a0f0a20bbea83bf51f7f798077311b478dfc6c9fc1 SHA512 3b13df25177fe5c20e460e2d82453e23ae96cb657f1228ff1c061db4c4197eba719a4d7f51a90fec60a4de2da9a0e9d3f056d53011bd4f61df7f40b706911a1d diff --git a/app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful b/app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful new file mode 100644 index 000000000000..5c7ef1a79ccf --- /dev/null +++ b/app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful @@ -0,0 +1,9 @@ +#!/sbin/openrc-run +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +description="UKI Successful Boot" + +start() { + kernel-bootcfg --boot-successful --update-csv || return 1 +} diff --git a/app-emulation/virt-firmware/metadata.xml b/app-emulation/virt-firmware/metadata.xml new file mode 100644 index 000000000000..1059efa31d78 --- /dev/null +++ b/app-emulation/virt-firmware/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>andrewammerlaan@gentoo.org</email> + <name>Andrew Ammerlaan</name> + </maintainer> + <stabilize-allarches/> + <longdescription lang="en"> + This is a small collection of tools for edk2 firmware images. They + support decoding and printing the content of firmware volumes. + Variable stores (OVMF_VARS.fd) can be modified, for example to enroll + secure boot certificates. + </longdescription> + <upstream> + <remote-id type="pypi">virt-firmware</remote-id> + <remote-id type="gitlab">kraxel/virt-firmware</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/virt-firmware/virt-firmware-24.4.ebuild b/app-emulation/virt-firmware/virt-firmware-24.4.ebuild new file mode 100644 index 000000000000..36b536044e18 --- /dev/null +++ b/app-emulation/virt-firmware/virt-firmware-24.4.ebuild @@ -0,0 +1,52 @@ +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..12} ) +DISTUTILS_USE_PEP517=setuptools +PYPI_NO_NORMALIZE=1 + +inherit distutils-r1 optfeature pypi systemd + +DESCRIPTION="Tools for ovmf/armvirt firmware volumes" +HOMEPAGE=" + https://gitlab.com/kraxel/virt-firmware + https://pypi.org/project/virt-firmware/ +" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" + +# Currently requires files in /boot and read/write to efivars +RESTRICT="test" + +RDEPEND=" + dev-python/cryptography[${PYTHON_USEDEP}] + dev-python/pefile[${PYTHON_USEDEP}] +" + +distutils_enable_tests unittest + +python_test() { + eunittest tests +} + +python_install_all() { + distutils-r1_python_install_all + + doman man/*.1 + + doinitd "${FILESDIR}/kernel-bootcfg-boot-successful" + systemd_dounit systemd/kernel-bootcfg-boot-successful.service + + # Use our own provided by sys-kernel/installkernel[efistub,systemd] + #exeinto /usr/lib/kernel/install.d + #doexe systemd/99-uki-uefi-setup.install +} + +pkg_postinst() { + optfeature "automatically updating UEFI configuration on each kernel installation or removal" \ + "sys-kernel/installkernel[systemd,efistub]" +} diff --git a/app-emulation/virt-manager/Manifest b/app-emulation/virt-manager/Manifest index e8e1eea7b699..bead1d85a9f0 100644 --- a/app-emulation/virt-manager/Manifest +++ b/app-emulation/virt-manager/Manifest @@ -1,2 +1 @@ -DIST virt-manager-2.2.1.tar.gz 2623754 BLAKE2B c81e730f2d685152bd0ef0a0327a74a70c50bff91e80ed0e3de92d0b848183c4bc092be333f2f0785c6a0b39f0b6d6abbd1f38c902f52ba4af7c56d64ee9b026 SHA512 aa97af52b3552c087beab8701762c21e8e6d818c9787d5376ed4e1ae40a34d5e8870c4c00fda9cb17a2340d1dff5b17e853182df720cdd9ea4c91cf01502a33a -DIST virt-manager-3.1.0.tar.gz 2848420 BLAKE2B 729a16ee419cfc9f118e4a59336e961f17f38908ab3aaa3598c83bff3e8bca75b150f0f38b021c5ccb839a7c43e87f071859f68c2a81425715e236e14d0a7929 SHA512 185e34d8ebb2f9755bf9732bdafdbe9d0924d8c3b69758947252cce5deeac2042f473ba63673eea2bf36beb1f216a856938650f86e2c86eb5618e8f8522df53d +DIST virt-manager-4.1.0.tar.gz 3151412 BLAKE2B 1b4203be81bd7b82251225d691a4d9068f268e610f049bcadb96de5b539e964ca0b001f22f06ddd8266b58b079f60046f6d11942a1e4eadbc43f0607c46bbddd SHA512 725cb5bcbaebaafae417f95deffb4243ccdad769668cba6e1235f4607e2b29dbd099d2a9a3885981158f53ea854dd71cc29ed9d7557b2791161c13d34f2ef883 diff --git a/app-emulation/virt-manager/metadata.xml b/app-emulation/virt-manager/metadata.xml index 024a5205e500..40002fc45349 100644 --- a/app-emulation/virt-manager/metadata.xml +++ b/app-emulation/virt-manager/metadata.xml @@ -1,19 +1,22 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>virtualization@gentoo.org</email> - <name>Gentoo Virtualization Project</name> - </maintainer> - <use> - <flag name="policykit"> - Enables <pkg>sys-auth/polkit</pkg> authentication support, - required when using <pkg>app-emulation/libvirt</pkg> with - PolicyKit authentication - </flag> - <flag name="sasl"> - Depend on the proper libraries needed to connect to SASL-enabled - libvirtd instances (e.g. Kerberos-protected instances). - </flag> - </use> + <maintainer type="project"> + <email>virtualization@gentoo.org</email> + <name>Gentoo Virtualization Project</name> + </maintainer> + <use> + <flag name="policykit"> + Enables <pkg>sys-auth/polkit</pkg> authentication support, + required when using <pkg>app-emulation/libvirt</pkg> with + PolicyKit authentication + </flag> + <flag name="sasl"> + Depend on the proper libraries needed to connect to SASL-enabled + libvirtd instances (e.g. Kerberos-protected instances). + </flag> + </use> + <upstream> + <remote-id type="github">virt-manager/virt-manager</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild b/app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild deleted file mode 100644 index d652192107af..000000000000 --- a/app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild +++ /dev/null @@ -1,98 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_{7,8} ) -DISTUTILS_SINGLE_IMPL=1 - -DISTUTILS_USE_SETUPTOOLS=no -inherit gnome2 distutils-r1 - -DESCRIPTION="A graphical tool for administering virtual machines" -HOMEPAGE="http://virt-manager.org" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - SRC_URI="" - KEYWORDS="amd64 arm64 x86" - EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git" -else - SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz" - KEYWORDS="amd64 ~arm64 ~ppc64 x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="gtk policykit sasl" - -RDEPEND="!app-emulation/virtinst - ${PYTHON_DEPS} - app-cdr/cdrtools - >=app-emulation/libvirt-glib-1.0.0[introspection] - $(python_gen_cond_dep ' - dev-libs/libxml2[python,${PYTHON_MULTI_USEDEP}] - dev-python/libvirt-python[${PYTHON_MULTI_USEDEP}] - dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] - ') - >=sys-libs/libosinfo-0.2.10[introspection] - gtk? ( - gnome-base/dconf - >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection] - net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?] - net-misc/x11-ssh-askpass - x11-libs/gtk+:3[introspection] - x11-libs/gtksourceview:4[introspection] - x11-libs/vte:2.91[introspection] - policykit? ( sys-auth/polkit[introspection] ) - ) -" -DEPEND="${RDEPEND} - dev-lang/perl - dev-util/intltool -" - -DOCS=( README.md NEWS.md ) - -src_prepare() { - distutils-r1_src_prepare -} - -python_configure() { - esetup.py configure \ - --default-graphics=spice -} - -python_install() { - esetup.py install -} - -src_install() { - local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas ) - distutils-r1_src_install - - python_fix_shebang "${ED}"/usr/share/virt-manager -} - -pkg_preinst() { - if use gtk; then - gnome2_pkg_preinst - - cd "${ED}" - export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null) - else - rm -rf "${ED}/usr/share/virt-manager/virtManager" - rm -f "${ED}/usr/share/virt-manager/virt-manager" - rm -rf "${ED}/usr/share/virt-manager/ui/" - rm -rf "${ED}/usr/share/virt-manager/icons/" - rm -rf "${ED}/usr/share/man/man1/virt-manager.1*" - rm -rf "${ED}/usr/share/icons/" - rm -rf "${ED}/usr/share/applications/virt-manager.desktop" - rm -rf "${ED}/usr/bin/virt-manager" - fi -} - -pkg_postinst() { - use gtk && gnome2_pkg_postinst -} diff --git a/app-emulation/virt-manager/virt-manager-3.1.0.ebuild b/app-emulation/virt-manager/virt-manager-3.1.0.ebuild deleted file mode 100644 index cb575dc4df60..000000000000 --- a/app-emulation/virt-manager/virt-manager-3.1.0.ebuild +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PYTHON_COMPAT=( python3_{7,8,9} ) -DISTUTILS_SINGLE_IMPL=1 - -DISTUTILS_USE_SETUPTOOLS=no -inherit gnome2 distutils-r1 - -DESCRIPTION="A graphical tool for administering virtual machines" -HOMEPAGE="http://virt-manager.org" - -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - SRC_URI="" - KEYWORDS="amd64 arm64 x86" - EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git" -else - SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz" - KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" -fi - -LICENSE="GPL-2" -SLOT="0" -IUSE="gtk policykit sasl" - -RDEPEND="!app-emulation/virtinst - ${PYTHON_DEPS} - app-cdr/cdrtools - >=app-emulation/libvirt-glib-1.0.0[introspection] - $(python_gen_cond_dep ' - dev-libs/libxml2[python,${PYTHON_MULTI_USEDEP}] - dev-python/argcomplete[${PYTHON_MULTI_USEDEP}] - dev-python/libvirt-python[${PYTHON_MULTI_USEDEP}] - dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] - ') - >=sys-libs/libosinfo-0.2.10[introspection] - gtk? ( - gnome-base/dconf - >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection] - net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?] - net-misc/x11-ssh-askpass - x11-libs/gtk+:3[introspection] - x11-libs/gtksourceview:4[introspection] - x11-libs/vte:2.91[introspection] - policykit? ( sys-auth/polkit[introspection] ) - ) -" -DEPEND="${RDEPEND} - dev-python/docutils - dev-util/intltool -" - -DOCS=( README.md NEWS.md ) - -src_prepare() { - distutils-r1_src_prepare -} - -python_configure() { - esetup.py configure \ - --default-graphics=spice -} - -python_install() { - esetup.py install -} - -src_install() { - local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas ) - distutils-r1_src_install - - python_fix_shebang "${ED}"/usr/share/virt-manager -} - -pkg_preinst() { - if use gtk; then - gnome2_pkg_preinst - - cd "${ED}" - export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null) - else - rm -rf "${ED}/usr/share/virt-manager/virtManager" - rm -f "${ED}/usr/share/virt-manager/virt-manager" - rm -rf "${ED}/usr/share/virt-manager/ui/" - rm -rf "${ED}/usr/share/virt-manager/icons/" - rm -rf "${ED}/usr/share/man/man1/virt-manager.1*" - rm -rf "${ED}/usr/share/icons/" - rm -rf "${ED}/usr/share/applications/virt-manager.desktop" - rm -rf "${ED}/usr/bin/virt-manager" - fi -} - -pkg_postinst() { - use gtk && gnome2_pkg_postinst -} diff --git a/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild b/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild new file mode 100644 index 000000000000..7397409177e5 --- /dev/null +++ b/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +DISTUTILS_SINGLE_IMPL=1 +DISTUTILS_USE_SETUPTOOLS=no +inherit gnome2 distutils-r1 optfeature + +DESCRIPTION="A graphical tool for administering virtual machines" +HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager" + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git" + EGIT_BRANCH="main" + SRC_URI="" + inherit git-r3 +else + SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz" + KEYWORDS="amd64 arm64 ppc64 x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="gui policykit sasl" + +RDEPEND=" + ${PYTHON_DEPS} + || ( dev-libs/libisoburn app-cdr/cdrtools ) + >=app-emulation/libvirt-glib-1.0.0[introspection] + >=sys-libs/libosinfo-0.2.10[introspection] + $(python_gen_cond_dep ' + dev-libs/libxml2[python,${PYTHON_USEDEP}] + dev-python/argcomplete[${PYTHON_USEDEP}] + >=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ') + gui? ( + gnome-base/dconf + >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection] + net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?] + sys-apps/dbus[X] + x11-libs/gtk+:3[introspection] + x11-libs/gtksourceview:4[introspection] + x11-libs/vte:2.91[introspection] + policykit? ( sys-auth/polkit[introspection] ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND="dev-python/docutils" + +DOCS=( README.md NEWS.md ) + +DISTUTILS_ARGS=( + --no-update-icon-cache + --no-compile-schemas +) + +EPYTEST_IGNORE=( + # Wants to use /tmp osinfo config? + tests/test_cli.py + + # These seem to be essentially coverage tests + tests/test_checkprops.py +) + +distutils_enable_tests pytest + +python_configure() { + esetup.py configure --default-graphics=spice +} + +python_test() { + export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0 + + epytest +} + +python_install() { + esetup.py install +} + +pkg_preinst() { + if use gui ; then + gnome2_pkg_preinst + + cd "${ED}" || die + export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null || die) + else + rm -r "${ED}/usr/share/virt-manager/ui/" || die + rm -r "${ED}/usr/share/virt-manager/icons/" || die + rm -r "${ED}/usr/share/icons/" || die + rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die + rm -r "${ED}/usr/bin/virt-manager" || die + fi +} + +pkg_postinst() { + use gui && gnome2_pkg_postinst + + optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass + optfeature "QEMU host support" app-emulation/qemu[usbredir,spice] + optfeature "virt-install --location ISO support" dev-libs/libisoburn +} diff --git a/app-emulation/virt-manager/virt-manager-4.1.0.ebuild b/app-emulation/virt-manager/virt-manager-4.1.0.ebuild new file mode 100644 index 000000000000..3614d2d36381 --- /dev/null +++ b/app-emulation/virt-manager/virt-manager-4.1.0.ebuild @@ -0,0 +1,106 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +DISTUTILS_SINGLE_IMPL=1 +DISTUTILS_USE_SETUPTOOLS=no +inherit gnome2 distutils-r1 optfeature + +DESCRIPTION="A graphical tool for administering virtual machines" +HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager" + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git" + EGIT_BRANCH="main" + SRC_URI="" + inherit git-r3 +else + SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz" + KEYWORDS="amd64 arm64 ppc64 x86" +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="gui policykit sasl" + +RDEPEND=" + ${PYTHON_DEPS} + app-cdr/cdrtools + >=app-emulation/libvirt-glib-1.0.0[introspection] + >=sys-libs/libosinfo-0.2.10[introspection] + $(python_gen_cond_dep ' + dev-libs/libxml2[python,${PYTHON_USEDEP}] + dev-python/argcomplete[${PYTHON_USEDEP}] + >=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + ') + gui? ( + gnome-base/dconf + >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection] + net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?] + sys-apps/dbus[X] + x11-libs/gtk+:3[introspection] + x11-libs/gtksourceview:4[introspection] + x11-libs/vte:2.91[introspection] + policykit? ( sys-auth/polkit[introspection] ) + ) +" +DEPEND="${RDEPEND}" +BDEPEND="dev-python/docutils" + +DOCS=( README.md NEWS.md ) + +DISTUTILS_ARGS=( + --no-update-icon-cache + --no-compile-schemas +) + +EPYTEST_IGNORE=( + # Wants to use /tmp osinfo config? + tests/test_cli.py + + # These seem to be essentially coverage tests + tests/test_checkprops.py +) + +distutils_enable_tests pytest + +python_configure() { + esetup.py configure --default-graphics=spice +} + +python_test() { + export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0 + + epytest +} + +python_install() { + esetup.py install +} + +pkg_preinst() { + if use gui ; then + gnome2_pkg_preinst + + cd "${ED}" || die + export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null || die) + else + rm -r "${ED}/usr/share/virt-manager/ui/" || die + rm -r "${ED}/usr/share/virt-manager/icons/" || die + rm -r "${ED}/usr/share/icons/" || die + rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die + rm -r "${ED}/usr/bin/virt-manager" || die + fi +} + +pkg_postinst() { + use gui && gnome2_pkg_postinst + + optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass + optfeature "QEMU host support" app-emulation/qemu[usbredir,spice] + optfeature "virt-install --location ISO support" dev-libs/libisoburn +} diff --git a/app-emulation/virt-manager/virt-manager-9999.ebuild b/app-emulation/virt-manager/virt-manager-9999.ebuild index a3390883c4d3..a7e83d3bf708 100644 --- a/app-emulation/virt-manager/virt-manager-9999.ebuild +++ b/app-emulation/virt-manager/virt-manager-9999.ebuild @@ -1,99 +1,105 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 -PYTHON_COMPAT=( python3_{7,8,9} ) +PYTHON_COMPAT=( python3_{9..11} ) DISTUTILS_SINGLE_IMPL=1 - DISTUTILS_USE_SETUPTOOLS=no -inherit gnome2 distutils-r1 +inherit gnome2 distutils-r1 optfeature DESCRIPTION="A graphical tool for administering virtual machines" -HOMEPAGE="http://virt-manager.org" +HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager" -if [[ ${PV} = *9999* ]]; then - inherit git-r3 - SRC_URI="" - KEYWORDS="" +if [[ ${PV} == *9999* ]]; then EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git" + EGIT_BRANCH="main" + SRC_URI="" + inherit git-r3 else - SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz" - KEYWORDS="~amd64 ~ppc64 ~x86" + SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86" fi LICENSE="GPL-2" SLOT="0" -IUSE="gtk policykit sasl" +IUSE="gui policykit sasl" -RDEPEND="!app-emulation/virtinst +RDEPEND=" ${PYTHON_DEPS} - app-cdr/cdrtools + || ( dev-libs/libisoburn app-cdr/cdrtools ) >=app-emulation/libvirt-glib-1.0.0[introspection] + >=sys-libs/libosinfo-0.2.10[introspection] $(python_gen_cond_dep ' - dev-libs/libxml2[python,${PYTHON_MULTI_USEDEP}] - dev-python/argcomplete[${PYTHON_MULTI_USEDEP}] - dev-python/libvirt-python[${PYTHON_MULTI_USEDEP}] - dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}] - dev-python/requests[${PYTHON_MULTI_USEDEP}] + dev-libs/libxml2[python,${PYTHON_USEDEP}] + dev-python/argcomplete[${PYTHON_USEDEP}] + >=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] ') - >=sys-libs/libosinfo-0.2.10[introspection] - gtk? ( + gui? ( gnome-base/dconf >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection] net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?] - net-misc/x11-ssh-askpass + sys-apps/dbus[X] x11-libs/gtk+:3[introspection] x11-libs/gtksourceview:4[introspection] x11-libs/vte:2.91[introspection] policykit? ( sys-auth/polkit[introspection] ) ) " -DEPEND="${RDEPEND} - dev-python/docutils - dev-util/intltool -" +DEPEND="${RDEPEND}" +BDEPEND="dev-python/docutils" DOCS=( README.md NEWS.md ) -src_prepare() { - distutils-r1_src_prepare -} +DISTUTILS_ARGS=( + --no-update-icon-cache + --no-compile-schemas +) + +EPYTEST_IGNORE=( + # Wants to use /tmp osinfo config? + tests/test_cli.py + + # These seem to be essentially coverage tests + tests/test_checkprops.py +) + +distutils_enable_tests pytest python_configure() { - esetup.py configure \ - --default-graphics=spice + esetup.py configure --default-graphics=spice } -python_install() { - esetup.py install -} +python_test() { + export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0 -src_install() { - local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas ) - distutils-r1_src_install + epytest +} - python_fix_shebang "${ED}"/usr/share/virt-manager +python_install() { + esetup.py install } pkg_preinst() { - if use gtk; then + if use gui ; then gnome2_pkg_preinst - cd "${ED}" - export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null) + cd "${ED}" || die + export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null || die) else - rm -rf "${ED}/usr/share/virt-manager/virtManager" - rm -f "${ED}/usr/share/virt-manager/virt-manager" - rm -rf "${ED}/usr/share/virt-manager/ui/" - rm -rf "${ED}/usr/share/virt-manager/icons/" - rm -rf "${ED}/usr/share/man/man1/virt-manager.1*" - rm -rf "${ED}/usr/share/icons/" - rm -rf "${ED}/usr/share/applications/virt-manager.desktop" - rm -rf "${ED}/usr/bin/virt-manager" + rm -r "${ED}/usr/share/virt-manager/ui/" || die + rm -r "${ED}/usr/share/virt-manager/icons/" || die + rm -r "${ED}/usr/share/icons/" || die + rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die + rm -r "${ED}/usr/bin/virt-manager" || die fi } pkg_postinst() { - use gtk && gnome2_pkg_postinst + use gui && gnome2_pkg_postinst + + optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass + optfeature "QEMU host support" app-emulation/qemu[usbredir,spice] } diff --git a/app-emulation/virt-viewer/Manifest b/app-emulation/virt-viewer/Manifest index ef6781ba6874..4bf036f22561 100644 --- a/app-emulation/virt-viewer/Manifest +++ b/app-emulation/virt-viewer/Manifest @@ -1,3 +1 @@ -DIST virt-viewer-7.0.tar.gz 924475 BLAKE2B 003efaf88445ec6f523e678459ed1e11562d0cd87fb4811105df9ac1e3129f4a97170c5b783f1d504d157055ae51ac8dc23ffa8f3f79dd6cd55707d962e1d9ad SHA512 e0558c9138877f546add6a3df9721e100cadb6953815be82b2376b0521b82cf14052bdc29c42bb03b198b6e9d129a55d33531a153207d7f29b5c1c3402ebc904 -DIST virt-viewer-8.0.tar.gz 937457 BLAKE2B 107a5f77d0e272665561e22c950416275c939d000fbb522401a954e6836bbd9e9399e768bc4363a1ea3110dd3229fe33738560563271774c3054278b2399cab8 SHA512 73317048949b6c49c28aab4685e3fb6533945b12c47078b522429b3e178423fcec5758c970d5048c8f65fee2b92a629b7e067cffa79c968292c73fd36133b918 -DIST virt-viewer-9.0.tar.gz 1176991 BLAKE2B bc4df73575195888b769dddd8de5c0eda9daa257902f3f3ce8099f9096d0cd9be28547c8671decb70e83e5f0de71633793886bfe78bd9ab5f360dc9759afcc5b SHA512 a5901d76c3e144fa3d6e640de93ed7f1e7cbeb075c04cdbe4a8c9c09bce96104ea552484df5e84c7a69af8dddd1177123ddb81b2dac775a98ac312f3102daae2 +DIST virt-viewer-11.0.tar.xz 259772 BLAKE2B 41914a60361f0a47a0b0b54962d228ffaec67c6b69c664bb6fe683b7074dd5e2136d2bf3528b6e1b6b785cc4e337125fe16fdd94dd603dd42e8fde543931241a SHA512 738034e15e40a7aaadd2646bf289c12409cbf2d06925d43baa50fa7bc8438188480d6b97687e9816427ac0a9dae84d205351715cb2f38afdbefa2dd1d134904a diff --git a/app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch b/app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch new file mode 100644 index 000000000000..46c708b9d342 --- /dev/null +++ b/app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch @@ -0,0 +1,36 @@ +https://gitlab.com/virt-viewer/virt-viewer/-/merge_requests/117.patch +https://bugs.gentoo.org/831963 + +From 41cc016278e713d3db156761fce6437dff81a53a Mon Sep 17 00:00:00 2001 +From: Michal Vasilek <michal@vasilek.cz> +Date: Sat, 22 Jan 2022 23:28:20 +0100 +Subject: [PATCH] meson: fix build with meson 0.61 + +i18n.merge_file doesn't accept positional arguments +--- a/data/meson.build ++++ b/data/meson.build +@@ -2,7 +2,6 @@ if host_machine.system() != 'windows' + desktop = 'remote-viewer.desktop' + + i18n.merge_file ( +- desktop, + type: 'desktop', + input: desktop + '.in', + output: desktop, +@@ -14,7 +13,6 @@ if host_machine.system() != 'windows' + mimetypes = 'virt-viewer-mime.xml' + + i18n.merge_file ( +- mimetypes, + type: 'xml', + input: mimetypes + '.in', + output: mimetypes, +@@ -27,7 +25,6 @@ if host_machine.system() != 'windows' + metainfo = 'remote-viewer.appdata.xml' + + i18n.merge_file ( +- metainfo, + type: 'xml', + input: metainfo + '.in', + output: metainfo, +GitLab diff --git a/app-emulation/virt-viewer/metadata.xml b/app-emulation/virt-viewer/metadata.xml index 3311e82897cd..bed4bdbaeac4 100644 --- a/app-emulation/virt-viewer/metadata.xml +++ b/app-emulation/virt-viewer/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>virtualization@gentoo.org</email> @@ -10,7 +10,12 @@ managed by libvirt.</flag> <flag name="spice">Support connecting to SPICE-enabled virtual machines.</flag> + <flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) + in the GTK+ interface</flag> <flag name="vnc">Support connecting to VNC-enabled virtual machines.</flag> </use> + <upstream> + <remote-id type="gitlab">virt-viewer/virt-viewer</remote-id> + </upstream> </pkgmetadata> diff --git a/app-emulation/virt-viewer/virt-viewer-11.0.ebuild b/app-emulation/virt-viewer/virt-viewer-11.0.ebuild new file mode 100644 index 000000000000..e018a5a1b62a --- /dev/null +++ b/app-emulation/virt-viewer/virt-viewer-11.0.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit meson python-any-r1 xdg + +DESCRIPTION="Graphical console client for connecting to virtual machines" +HOMEPAGE="https://virt-manager.org/ https://gitlab.com/virt-viewer/virt-viewer" +if [[ ${PV} == *_p* ]] ; then + GIT_HASH="f0cc7103becccbce95bdf0c80151178af2bace5a" + SRC_URI="https://gitlab.com/${PN}/${PN}/-/archive/${GIT_HASH}/${PN}-${GIT_HASH}.tar.bz2 -> ${P}.tar.bz2" + S="${WORKDIR}/${PN}-${GIT_HASH}" +else + SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.xz" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="+libvirt sasl +spice +vnc vte" + +RDEPEND="dev-libs/glib:2 + >=dev-libs/libxml2-2.6 + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/pango + libvirt? ( + >=app-emulation/libvirt-0.10.0:=[sasl?] + app-emulation/libvirt-glib + ) + spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] ) + vte? ( x11-libs/vte:2.91 ) + vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )" +DEPEND="${RDEPEND} + spice? ( >=app-emulation/spice-protocol-0.12.10 )" +BDEPEND="${PYTHON_DEPS} + dev-lang/perl + virtual/pkgconfig" + +REQUIRED_USE="|| ( spice vnc )" + +PATCHES=( + "${FILESDIR}"/${PN}-10.0_p20210730-meson-0.61.patch +) + +src_prepare() { + default + + # Fix python shebangs for python-exec[-native-symlinks], #811408 + local shebangs=($(grep -rl "#!/usr/bin/env python3" || die)) + python_fix_shebang -q ${shebangs[*]} +} + +src_configure() { + local emesonargs=( + $(meson_feature libvirt) + $(meson_feature vte) + $(meson_feature vnc) + $(meson_feature spice) + + -Dgit_werror=disabled + ) + + meson_src_configure +} diff --git a/app-emulation/virt-viewer/virt-viewer-7.0.ebuild b/app-emulation/virt-viewer/virt-viewer-7.0.ebuild deleted file mode 100644 index 62a5fc06143a..000000000000 --- a/app-emulation/virt-viewer/virt-viewer-7.0.ebuild +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit gnome2 - -DESCRIPTION="Graphical console client for connecting to virtual machines" -HOMEPAGE="http://virt-manager.org/" -SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="sasl +spice +vnc" - -RDEPEND=">=app-emulation/libvirt-0.10.0[sasl?] - app-emulation/libvirt-glib - >=dev-libs/libxml2-2.6 - x11-libs/gtk+:3 - spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] ) - vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )" -DEPEND="${RDEPEND} - dev-lang/perl - >=dev-util/intltool-0.35.0 - virtual/pkgconfig - spice? ( >=app-emulation/spice-protocol-0.12.10 )" - -REQUIRED_USE="|| ( spice vnc )" - -src_configure() { - gnome2_src_configure \ - --disable-update-mimedb \ - --without-ovirt \ - $(use_with vnc gtk-vnc) \ - $(use_with spice spice-gtk) -} diff --git a/app-emulation/virt-viewer/virt-viewer-8.0.ebuild b/app-emulation/virt-viewer/virt-viewer-8.0.ebuild deleted file mode 100644 index 5bb016169c9d..000000000000 --- a/app-emulation/virt-viewer/virt-viewer-8.0.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit gnome2 - -DESCRIPTION="Graphical console client for connecting to virtual machines" -HOMEPAGE="https://virt-manager.org/" -SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="+libvirt sasl +spice +vnc" - -RDEPEND=">=dev-libs/libxml2-2.6 - x11-libs/gtk+:3 - libvirt? ( - >=app-emulation/libvirt-0.10.0[sasl?] - app-emulation/libvirt-glib - ) - spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] ) - vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )" -DEPEND="${RDEPEND} - dev-lang/perl - >=dev-util/intltool-0.35.0 - virtual/pkgconfig - spice? ( >=app-emulation/spice-protocol-0.12.10 )" - -REQUIRED_USE="|| ( spice vnc )" - -src_configure() { - gnome2_src_configure \ - --disable-update-mimedb \ - --without-ovirt \ - $(use_with libvirt) \ - $(use_with vnc gtk-vnc) \ - $(use_with spice spice-gtk) -} diff --git a/app-emulation/virt-viewer/virt-viewer-9.0.ebuild b/app-emulation/virt-viewer/virt-viewer-9.0.ebuild deleted file mode 100644 index 098fc095c389..000000000000 --- a/app-emulation/virt-viewer/virt-viewer-9.0.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -inherit gnome2 - -DESCRIPTION="Graphical console client for connecting to virtual machines" -HOMEPAGE="https://virt-manager.org/" -SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="+libvirt sasl +spice +vnc" - -RDEPEND=">=dev-libs/libxml2-2.6 - x11-libs/gtk+:3 - libvirt? ( - >=app-emulation/libvirt-0.10.0[sasl?] - app-emulation/libvirt-glib - ) - spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] ) - vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )" -DEPEND="${RDEPEND} - dev-lang/perl - >=dev-util/intltool-0.35.0 - virtual/pkgconfig - spice? ( >=app-emulation/spice-protocol-0.12.10 )" - -REQUIRED_USE="|| ( spice vnc )" - -src_configure() { - gnome2_src_configure \ - --disable-update-mimedb \ - --without-ovirt \ - $(use_with libvirt) \ - $(use_with vnc gtk-vnc) \ - $(use_with spice spice-gtk) -} diff --git a/app-emulation/virt-what/Manifest b/app-emulation/virt-what/Manifest index 5bdbd3695f38..266b97d053ce 100644 --- a/app-emulation/virt-what/Manifest +++ b/app-emulation/virt-what/Manifest @@ -1,3 +1,2 @@ -DIST virt-what-1.18.tar.gz 173703 BLAKE2B c1ab6f331ca370572cedef06fd3eb9177ca8ef4302446eb46c737446a001e77a0825ec8771aade903e6194af3f4f745c3f35f1d9dbbb8a0550b493296878ade3 SHA512 8085a38111d5664f411f5bb9d2ee221bc22e5b0f2d993e8d518718b3f63b16ba73e052b1623c090493cf8fef52fd237ba823377503a32b4b7d03cc5380d5c613 -DIST virt-what-1.19.tar.gz 183594 BLAKE2B 36b58cbe41f195cf81e0b0cf35ab881c3746ac352c57f470e1fe0005d65534f38886d7688ee9393837e667fd1c8bf41af013f3a12748db5f8615b9b5c944f7a9 SHA512 7b6e6c00e3f35cea236cc5f5fdf28d13e9e38143f280dfcbf083ebf0dca2cb677752b8daec5b2956a08405d1fe5368f9f633ce11a854928c31121a35ee4c6820 -DIST virt-what-1.20.tar.gz 459243 BLAKE2B c51bfc4366ba90e32548a5d1e0779fcc1835dae7a6bb2b6f67b4371c2d2e949339aa0ff67d64485cdb03592713a3ae04a6779e4dac0babf08bb268ce6403066f SHA512 edf74903122bfb422c7a5ecba711bb64d6ef668828f208dfc0571ef14f2643456c14bc9a77dfea209df3d93869ac0a2c9fd039779922eddc6ebd9d988585dea4 +DIST virt-what-1.21.tar.gz 478767 BLAKE2B 7c48b84d9f1fe5f734921f68848b84beee2e5687a6ebfbc422a1349063e6a83c932a89cb2936239da6be033b72e6010694314cf106486cd6c54cd02652bc61a6 SHA512 14ace184c4aee5a09b855c1f5acaa619057aed1b9bf03c91ed1003e6a39ea69162c9fe452ea8162c7fe29825e0e2202cfc7d76e82f0cecea3e32405e5eb9f717 +DIST virt-what-1.25.tar.gz 516445 BLAKE2B 3f3403a3954e359005754e1ad2aba545a824ff9eb77e787615235c1042735f99a58d89f755c265324c16a9d0467e8332a67dff88b3ac15ae21a4f4f7a6dd3136 SHA512 0147b4b44ae0ee685977aa34dfa9bf30ae8e0eb31b7a6d5c0097d16f830fa6fb6afd7156964fc79f3fd5e82b2f68d921fd5306245cc63a2140f6dddc7fdd0e98 diff --git a/app-emulation/virt-what/metadata.xml b/app-emulation/virt-what/metadata.xml index 5bdec46056c4..d25679ed78c7 100644 --- a/app-emulation/virt-what/metadata.xml +++ b/app-emulation/virt-what/metadata.xml @@ -1,11 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>eva@gentoo.org</email> - <name>Gilles Dartiguelongue</name> - </maintainer> - <maintainer type="person"> <email>prometheanfire@gentoo.org</email> <name>Matthew Thode</name> </maintainer> diff --git a/app-emulation/virt-what/virt-what-1.19.ebuild b/app-emulation/virt-what/virt-what-1.19.ebuild deleted file mode 100644 index bbc7f8023ffc..000000000000 --- a/app-emulation/virt-what/virt-what-1.19.ebuild +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="Detects if the current machine is running in a virtual machine" -HOMEPAGE="https://people.redhat.com/~rjones/virt-what/" -SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86" -IUSE="dmi" - -DEPEND="dev-lang/perl" -RDEPEND="app-shells/bash - dmi? ( sys-apps/dmidecode )" - -src_prepare() { - default - - # Pretends to be POSIX sh while it is not - sed -e 's:/bin/sh:/bin/bash:' -i virt-what.in || die -} diff --git a/app-emulation/virt-what/virt-what-1.20.ebuild b/app-emulation/virt-what/virt-what-1.21.ebuild index 9c1c37709d81..7b5da45a3537 100644 --- a/app-emulation/virt-what/virt-what-1.20.ebuild +++ b/app-emulation/virt-what/virt-what-1.21.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 @@ -9,7 +9,7 @@ SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86" +KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86" IUSE="dmi" DEPEND="dev-lang/perl" diff --git a/app-emulation/virt-what/virt-what-1.18.ebuild b/app-emulation/virt-what/virt-what-1.25.ebuild index 59adce2a2542..a6226954adcb 100644 --- a/app-emulation/virt-what/virt-what-1.18.ebuild +++ b/app-emulation/virt-what/virt-what-1.25.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 DESCRIPTION="Detects if the current machine is running in a virtual machine" HOMEPAGE="https://people.redhat.com/~rjones/virt-what/" @@ -9,7 +9,7 @@ SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 arm hppa ppc ppc64 sparc x86" +KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86" IUSE="dmi" DEPEND="dev-lang/perl" diff --git a/app-emulation/virtio-win/Manifest b/app-emulation/virtio-win/Manifest index f3ffb3babcc6..51d9ac1c93a3 100644 --- a/app-emulation/virtio-win/Manifest +++ b/app-emulation/virtio-win/Manifest @@ -1,3 +1,3 @@ -DIST virtio-win-0.1.173.iso 393902080 BLAKE2B a90da9d4e23a95c4cf9f02cc010664d87c987d7a9b82a90b534ec69041f763d73d7b37b1378078a162e7ef4f06b9d4cd6c5b7c4b98d77ff75bcd0d06a8ede8a2 SHA512 49cba35d74a3f480f6d23a57b68217f5732e8bcfb7657a4a87f16b286ad2c6ffd2509f034d0b4f363a389ce50d4d0e80e241f7ddff3e93b5dc315dad1713f08a -DIST virtio-win-0.1.185.iso 413564928 BLAKE2B 84aa2d0ce16292b95431044618538f6dc176ff834f5e01b245414e27a74775a0e202c7b9262495de9d5f54476fe4dfa5e853f30b994e301080fee1a1c840f823 SHA512 62992baafce1f2eb52c23ba62291765c535c513e2598910083a8519eff58e8c57366d46add702e791fb07ec96c0fb65c9cff03b57e8f32b4357799c86b46c198 -DIST virtio-win-0.1.187.iso 433235968 BLAKE2B 0df10aa5f46cd70f7530f6d677b882df364a0b1a859d7e9fe777817136213d4f856116cf73b8521e8720c203bca3321b9a7bdae057f867e655764a8b7d5dc0b2 SHA512 db9938f1f17b723a994d1bd5bb0e0ffce47ae2bbfa96f9bdf1d895750502600f9a71f0486a97af9301659e05ebd5365d1f08dc0e062d1f9e4c3acaac8b7f0bf5 +DIST virtio-win-0.1.229.iso 534818816 BLAKE2B 29442b70e5809fc935940497b4bc021f6fe890beba97605b048e0c5236764d08bc164974be25bf8331136ebbdf664ea440efe1f219129a30a171134bfe369942 SHA512 e9ccb513b07cb28ab490f5d4e299d0d52ade956f82e1a708e91c1ee3af9b142fa144af0fe5287d3bbb369f586857791952de45d1241058073f5a59c1f2f913ca +DIST virtio-win-0.1.240.iso 627519488 BLAKE2B e5bbf3be166508c437cfc9b7922e93f4229a63cf9cf5dffd0c8ee2836c084b92cb30c76e1cc60432508504df2874ca461481db6664823b11a76cec5186743c97 SHA512 24e0f3d9c25835f2633d2823dade95aae4884aed95a5142d87efeb4aaed48dbc04a82a34ac5310676853008e0de271dfa0747b4c619ed20fa72ffe2e93fadcf3 +DIST virtio-win-0.1.248.iso 732352512 BLAKE2B b3161f020f59eadabc685155ac3a7c402762adf84fa85bc2e4f468df31adf0204b248963a11b84b18520aa815e6907cfb1618a527875a4fd72b2c2e09fc1ce5a SHA512 16cc0c58b5df6c7040893089f3eb29c074aed61d76dae6cd628d8a89a05f6223ac5d7f3f709a12417c147594a87a94cc808d1e04a6f1e407cc41f7c9f47790d1 diff --git a/app-emulation/virtio-win/files/README.gentoo b/app-emulation/virtio-win/files/README.gentoo new file mode 100644 index 000000000000..9c50feb9a1e8 --- /dev/null +++ b/app-emulation/virtio-win/files/README.gentoo @@ -0,0 +1,15 @@ +VirtIO drivers have been installed as a CD-ROM image to + + /usr/share/drivers/windows/virtio-win.iso + +To install the drivers on a Windows guest machine, either during or after the +installation of Windows, pass the iso file to the guest machine and mount it as +a CD-ROM image. Then, in the Windows guest, open the Device Manager and start +the driver update wizard. Locate the appropriate device and click to update its +driver. In the pop-up window, click to browse in the guest machine to locate +the iso image, and select the driver(s) from it to install. + +For an example, see: https://wiki.gentoo.org/wiki/QEMU/Windows_guest + +For information on using the Device Manager, refer to the Windows +documentation. diff --git a/app-emulation/virtio-win/metadata.xml b/app-emulation/virtio-win/metadata.xml index d155fdbc0406..bc997df6766f 100644 --- a/app-emulation/virtio-win/metadata.xml +++ b/app-emulation/virtio-win/metadata.xml @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>gentoo@aisha.cc</email> - <name>Aisha Tammy</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> + <maintainer type="person" proxied="yes"> + <email>kaichun.ning@gmail.com</email> + <name>Kai-Chun Ning</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> </pkgmetadata> diff --git a/app-emulation/virtio-win/virtio-win-0.1.173.9.ebuild b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild index 8f43008b5179..1bb20ab6f1e2 100644 --- a/app-emulation/virtio-win/virtio-win-0.1.173.9.ebuild +++ b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild @@ -1,7 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 + +inherit readme.gentoo-r1 MY_PV=$(ver_cut 1-3) MY_DW=$(ver_rs 3 -) @@ -10,12 +12,19 @@ DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM" HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html" SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso" -LICENSE="GPL-2" +LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL" SLOT="0" -KEYWORDS="~amd64" +KEYWORDS="amd64" S="${WORKDIR}" +INSTALL_PATH=/usr/share/drivers/windows src_install() { - insinto /usr/share/drivers/windows + insinto "${INSTALL_PATH}" doins "${DISTDIR}/${PN}-${MY_PV}.iso" + dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso" + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog } diff --git a/app-emulation/virtio-win/virtio-win-0.1.185.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild index 317b5b926c06..057b187a0c4b 100644 --- a/app-emulation/virtio-win/virtio-win-0.1.185.1.ebuild +++ b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild @@ -1,7 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 + +inherit readme.gentoo-r1 MY_PV=$(ver_cut 1-3) MY_DW=$(ver_rs 3 -) @@ -10,13 +12,19 @@ DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM" HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html" SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso" -LICENSE="GPL-2" +LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL" SLOT="0" KEYWORDS="~amd64" S="${WORKDIR}" +INSTALL_PATH=/usr/share/drivers/windows src_install() { - insinto /usr/share/drivers/windows + insinto "${INSTALL_PATH}" doins "${DISTDIR}/${PN}-${MY_PV}.iso" - dosym "${PN}-${MY_PV}.iso" "/usr/share/drivers/windows/${PN}.iso" + dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso" + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog } diff --git a/app-emulation/virtio-win/virtio-win-0.1.187.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild index 317b5b926c06..bc890c11f60a 100644 --- a/app-emulation/virtio-win/virtio-win-0.1.187.1.ebuild +++ b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild @@ -1,7 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 + +inherit readme.gentoo-r1 MY_PV=$(ver_cut 1-3) MY_DW=$(ver_rs 3 -) @@ -10,13 +12,19 @@ DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM" HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html" SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso" -LICENSE="GPL-2" +LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL" SLOT="0" KEYWORDS="~amd64" S="${WORKDIR}" +INSTALL_PATH=/usr/share/drivers/windows src_install() { - insinto /usr/share/drivers/windows + insinto "${INSTALL_PATH}" doins "${DISTDIR}/${PN}-${MY_PV}.iso" - dosym "${PN}-${MY_PV}.iso" "/usr/share/drivers/windows/${PN}.iso" + dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso" + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog } diff --git a/app-emulation/virtiofsd/Manifest b/app-emulation/virtiofsd/Manifest new file mode 100644 index 000000000000..7fc7bbeb47fc --- /dev/null +++ b/app-emulation/virtiofsd/Manifest @@ -0,0 +1,87 @@ +DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00 +DIST anstream-0.3.2.crate 19504 BLAKE2B 617b846c244ea4ccd6c7835a382afe85e14c245ea56b678f57ee12e9c7bcc1c0c3db9620eb4d16bf35e17eca38968bf04420b758f482ac5594670e6292c1fbb9 SHA512 b896e5208a2ee6a3c98bf3bb9ac1c52792de114dfa5709dadcac6183ea19ea63230dffd3217e571354a71d69b8eafbb0189e05f8f77f50922020de54e3aeecc8 +DIST anstyle-1.0.1.crate 13977 BLAKE2B 35be03a7de78737592528967e8ad4851436a74c7863cae9cf5cf7366d3cce9bbbd255b1a89401051f82fe8569a0ff029dcfe427c14a2e0677890453c6119d241 SHA512 2bf9b83ad9772c6a3ef28239cbb98bd667dc631fd1ef76ec5029825c128f6cb22756bb1548dd991e482f86eb9fd94fae5c648f91de2c0d71754b6dca4ec2362c +DIST anstyle-parse-0.2.1.crate 24802 BLAKE2B 6304a56c6a9fbaf1bb4d1d177b2315684345dc9d71c35836f9544145364f8d6eb56e25c03076690c594ab7db5914501acb569f6c136952e59c93179ced527fb2 SHA512 5c8fc7d88ffc3a6e78340ffe0f3c2d72e865512030ade4509de9c673eba955c536bb1873dac11f6ba11cc8367fb30c67451ed65d19f81507c9e917c702bfd176 +DIST anstyle-query-1.0.0.crate 8620 BLAKE2B 2d296b5066fd6284a2410923215571e6df650c5ef892d6de7a7088a0996ca30608797feabc84f3c325ff4d07001dac80ac5067d2a9c9d15d9ba59a276b399f53 SHA512 2781be5c82293b7ae338ec5046fbeb130de9eb2dbf2e4dfaa73ca5233032e1e52c133e141b02f33d4bc36d996a0a3f680ac82d42d614a5305005f60547133c7a +DIST anstyle-wincon-1.0.1.crate 11718 BLAKE2B 2500845a23edfb47ecd156424a89789c713a7c367c3fef98d26e4e7b2acb3c6433d39a1c2a59813a98266b0993d4b750e9b6b68b7ced7ec5a04a8b13bad174e7 SHA512 00c380fc0198c49776c40aeef419be2fd2d6809bd2e5d86457f1658c6f4b2e83ebe8feee95855c3bbedd4200a917f582bd41b0ee0cf5d7d1d5017228885a58e6 +DIST arc-swap-1.5.0.crate 65351 BLAKE2B c6b278134f6e29551302e27131639f3bc5bfb05042701cf6c12aab1697f211be0942c44919d374e196ef03605fb137334b42decb9623a137b6ead346586c2105 SHA512 b668a75b2ac77a9d2df3f29b70c8c22e5a961cd2478cd76b6d313e0e1ff809508887451b895f057d160860daa4b02cb74616ab8daa34d163ef3f42a009842031 +DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9 +DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f +DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 +DIST bitflags-2.4.1.crate 37043 BLAKE2B f61c45b142265e9c2944c7054e01704de47510735e9ee5351cd02b98676cc4eb42d68b1fc4849ad5f54654617a74f20cb533b4207c2fe76516b724ba9318b414 SHA512 d3fd7abc95acc1cb5bf16d6acc12dbb8eadd250f069268df13c2e8dc3d5f5c15a929cd17ca931c77393b64dce0516ef8674c469789ed32d78e315b5faada062b +DIST capng-0.2.2.crate 24372 BLAKE2B 85cf114065f0f103a9e1583b11316c5a95d5fa9f5d70448d6749b500e956e4e0c6fb4f5e548a7490d191ecae878624cf4ea1e5026a6a0796c8269e68de70af0e SHA512 132c446c36eea932a39190b284d0f2f29b50334dc8c12043e43a1eca90366a56b2034c649740ac20ded4c4e91147226237cbbcee18750dfc281154644d6fa0db +DIST cc-1.0.79.crate 62624 BLAKE2B b3cbed3bd6fcac1c6ea258ec96cd107f859947a35dc89c3dc8f314741b0f668e61518f896ec32ce10c9a7eb20dd350bc177a71810d53ebea59fda062ed9d27db SHA512 cbf0a25f3a23fc540e9d638fabc23f761f1c240ebb4814e761e90437d71fc559cd155768ab9e78fc192220d8a605c66c3af342ed736b719181656170b98d7bf5 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST clap-4.3.11.crate 54864 BLAKE2B c1b0567950d6df6c6f40d0f0c2fcb4c485a65a3d5abe49ca04ba8c3ff24ffa52eb08a7d17395c20fc0ff09fee06852ff854369dbe033bc049d322b0a61b13142 SHA512 d00a142055671b4986f95e394f01d05cc41e9bb2fed23b2b1f6cc3366fc24204d877bc5220572f2a7a9424136b24d2596cd7ec7d1604c13b1384c0f0d9d1012a +DIST clap_builder-4.3.11.crate 160795 BLAKE2B ec650dd28d65412f594ad7cb578afb36412840bd7e04734f8c4bd8a40b453cd2c926ad7164dbdd0e33d357a8c3830560ad03d6f8e105463b7ba592ab68ba897c SHA512 9b0dfe5bfa838d6f5fd9388f574a6a880d724dd49eb987955609bc1e754fdade6db9fd9fc6672d42458d9e621e638aa7702205d894d2318a12711791168bb741 +DIST clap_derive-4.3.2.crate 29053 BLAKE2B 9e578a78e92fcb90689c1327a41f446fac64506ac77c4721f5a87094b18beb540704846485585525695de333c301bd6f6da2805bad4d00888664da01e5a1a8c8 SHA512 2d7214eb91517067d6701443440f514648ae1345a326e6d00c1fec9d387e7781d5ce429d340277eb85fd436fec69154ba51d6a10a0e117276656f0187ddc19fe +DIST clap_lex-0.5.0.crate 11792 BLAKE2B 0409c9d957ea6a566eb8b50f4212702df038d04c4c38f7440d91cb4c58ec887940f0cf500c4c3949c2191399aac3f5cb1ce44868eac587cde90211d3e467b9a2 SHA512 0149ed7c2438a19b4857f895767550d783711078f07bfa9ac8ca531e06f51c7388110f4d558e30bf503536367cc370cb581e8deb6fe51f9b5460a334963daacd +DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551 +DIST env_logger-0.8.4.crate 33342 BLAKE2B b1bb359be2f34ca6f93f72154c86920b8254f574b48f693b2ae7296cd1ff25d34dea61e95fb2954569fdebb6c522c851ef7499c107005528aa2226df13b0de33 SHA512 9e4478ff609a2e1e1a902a55b221af43a52622fdb5668dc33fb0be354b964708b7b6d13b7f1ef11982f45fa7e71f0712a2ab3fd4ea98155a5115e5a7c3d33049 +DIST errno-0.3.1.crate 10348 BLAKE2B 72831d0b69f95884a69918249cc0e814eb5eade3205331bec6d2021f8b01a42c4c9b494f2717033d65a4c5230c8490b6ce250d349c1e8e177b20e7e84a860020 SHA512 00d64157d066f1e7601c522c0f4e777eb662ca5cce64682f616de0734857765c343396f7161ac2908c3db0c474995ae157bfe9d8a9880743724d9bd428dfdf54 +DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916 +DIST error-chain-0.12.4.crate 29274 BLAKE2B d082bcbce47411477e8b597cfcb76985cc7d6f1696926cb5314f4e84d2c8642939f5263e110aaef56353ec086a21874a8093bcea1d018be81c86ca42c2c30d71 SHA512 c0ee19a0ba2d79ff1843148d0a582045e68466a9dc429e5f3c8a3a75bc1b6e0d6de03ad69fce851bc0297e7db77b2c6817a13c37e1c3d4501ed41db8a454bf79 +DIST futures-0.3.21.crate 49935 BLAKE2B 290dee4f7662a473d82350092c0b12a8270f6d6f5eae9e4f7e06a6abf59e2d9f2d33e5e62e2682fcf6e109d62f651cb37cc467cff2b20f909c72b5fee2cb7683 SHA512 723fc190e4480fd812a852656fa6509a188f0d06adaa1c22ef24ec4afa7688a1c5d3961e5747f0812d073fc672b0e084af6ad5e5c3fac3ea5829466f993ad865 +DIST futures-channel-0.3.21.crate 31961 BLAKE2B e99f37cdeac080c8bad2203fd24b48eb62918166104ad6cc531c8f69d3e0c3a5898ca27f19693e2c143c9049a7d244f9af49c16fecba12233f9ff3f1d01e35b0 SHA512 1c10398657949b53b6df196cc44d8e4b3acf53b4d216be6f5f631d8d4b500f5c344e2cc7d5a5642ced6c5480511884611be6d429f56a0ede4a716b9c5770cb76 +DIST futures-core-0.3.21.crate 14601 BLAKE2B 73cf4c422202a34cc9916509939fab35c79093a6c1aeb99e35763727ebf7d3a06ae203684d75cc74183126f0cd95dec1530f136ffa2a0e69354c554883e3af1f SHA512 b60e7892436ae28fd2240f17816f934f6caeac663d67b8efc7d519ebb4b0bd921f0b732b6176bd4b472d2fbe346d39a37ba394401e15afa93af8294ceea90976 +DIST futures-executor-0.3.21.crate 17306 BLAKE2B fd20c7f0b4996cc10e3b3d30c33630a42eb363ac7893af4ae5c476775f8e4f3724ac110648252b6cfb3d652d352fbb5833f2647d262a4c9ae999de1fa69340a3 SHA512 597732f96b45ce21f7a0b149f62cbdc54a80010bfa5421ab0ef7345c501c197e1c8fe109fa2d1c813d5c2e872b4670e0fbd96e2572cc3e9d2646b68f41c78147 +DIST futures-io-0.3.21.crate 8902 BLAKE2B e673342d3fae38e5a6a20c426cb1127353b4f15459b4c27965566f7f2f13f0773ac6ec850b0d679bea37d68219edf6cdf9d1d0eed37665f4ff51c6060b81466c SHA512 dde0b79c4ba208b4c92c699457efbd515d331ab612e7b7df735b3b8f2ab79c012b1ba329ddaf488d68c69dbd119aa231b833b81cbcc0cc2f55c656f68dc22bd8 +DIST futures-macro-0.3.21.crate 11250 BLAKE2B c981e6d56971871102591b6f14b13f0ed75499627036a90cb71a3e11336db408d11ea0feced484d9ea454f47db74951cdfc61377af267359f46cb6462cc3fc0c SHA512 a79d4d3e487d05554e05e04f3a631fc9f0b5c525126eed550ee30eed16d4c457dc39274efac53558a3e33a119b8ff9d3552ce367359eec9d05105b278f7677c0 +DIST futures-sink-0.3.21.crate 7843 BLAKE2B e4b2ac98e89063b23f5e278cad1df6b1b8f96d4f0df0cb035ce964b91e97f88c7a1a4942ec4010cb4da5f4a3552487eac048a6bfcef637bf1f83398d7f38758e SHA512 9bc0198495b5a1b3ed25fcf7b053a235bba0a43a4226bf085d9027537a57add1686ef61179bf2a2d4189945cb5a05a8d64ba6e6e647c56245666d51e138d113f +DIST futures-task-0.3.21.crate 11815 BLAKE2B ec3f2e2c025e9a482d86912099e68722099c22c0024669906036504d0e70998cb9cb5fd4074928d21847334611ccfcbe6d3e2f686c4d4d7d4436f1e7f501b8fb SHA512 8f3b27865d8c7a290471903297e3c0b52caebfaa55550a4738d7915008b893fce67c7d9ae5c5bd03f2a42ee72a96aa0245c4bee70fc06977b3493eb81bca2033 +DIST futures-util-0.3.21.crate 153768 BLAKE2B b3bc5632bbc7616d33f74361d68f83e0cb051125475101c84212ea2bd03307e927cd125e2f93eeb0f84946cc45d3964a590dcbfcfff88d3ce1970f127e71aed3 SHA512 ff952fb74a54e793de943e3aee2ac771357bf9f1aa5de89af128868c46a6b44e414fc4ea97f2d9b201ff7ff41023e119f1adf90d314343ff53ab987c3e07f5d4 +DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8 +DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a +DIST hermit-abi-0.3.2.crate 13783 BLAKE2B 43089507a5ca0731a9e9a54fdc8f4dd5f807244797eba5bdcc072c2c2b3761481df65b8cc65900769777d9d21f8345b502cb1915ec36747160e87f179469a661 SHA512 22901ec8976a7c96e93c9e07a2c5d3db49d7af60ce60c7ee6f61c3cbe93190d1f285e737c1c8b2236d540ab14e5d92e42828ec05f1b212332a862baf2b1b57f6 +DIST hostname-0.3.1.crate 9272 BLAKE2B cafcae4bbfadd51d058e3daba3e63d897bc3418723d8e843fd941d9663dbc89dba131c77d14ce7a5da552650ea3c40c4e418c88d465f1bab2fa20c178596852d SHA512 a90407996353c9bcf5b76be03713e3a0455ac80a50892e77a508744cf436a938ddb87ef97d8cc91ec7dc4353cfb7bca0fd28c90a72f8a9ecd4f29220d174edf2 +DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c +DIST is-terminal-0.4.9.crate 8109 BLAKE2B 0fa495da123f6fe5e3ba5f643f1ee097fc4f8e8aa54d9525b6108855a6a2e58556534a5e8dbfe7b5f8e2f1932003ac63f6aa3384317de7b385cf724bee294468 SHA512 0803ea53945715333d9b5fb18feec7230a49cb1a5f7308e2ea8d06a650e376794dd372be111e85622fd21320228706dd589423510dd010cd6ea112f185c46966 +DIST itoa-1.0.2.crate 11112 BLAKE2B e277db8e2f506d4d20b6888b609d9726d594e1cb2c9f21df60a8cf8dcbad1808d8c1bdb0b7857ce7734b92c0f23fb1ec56f8564e779f27eea953d0ffbfcd3f84 SHA512 44a732a102d60b58e72fe76c43a1d185fa12ff08d04eeacf03234368552f84d3de87a2ea0a6e7a56b8cfa74cb6f6697005afcee26f45afe0c2fc7dce5da3b593 +DIST libc-0.2.147.crate 686772 BLAKE2B ab2f0c65d071d46b8b88149add1c8429237ef6d9e0563d56ee1adbf23e6147dbb57fb68fbd02498f8ec75327693237a47e5e5259615ce8b0d5ed7a03bbf4fffb SHA512 bfb3c230b59d623b98726f92b7c3f897b47ba3d22fe9834c15f5b4c1b662289aba35a0ae3acfc704ad74696db8c691ee007b9cc6fa03ae65a18eb6bedc81931e +DIST libseccomp-sys-0.2.1.crate 11601 BLAKE2B 77a77d6d1f8ef6f5d25b35c299032738aed0a404c855cb84223a7334caaf57392fbd8f0915f4f7be875778176cbfdb8062eabbf7b414d3c198a5d41cd8a466ef SHA512 b53b13f95ac487d802ff051b4cee32be2dfa496846f3104a61399a53a07a7d6fb6b4543088765858e26e060e22e0bf93f8cb3a175c06dae4719f918844c7fe0f +DIST linux-raw-sys-0.4.5.crate 1274380 BLAKE2B e15ca5b63cb994e86a8161e3b6e4bd20da8f574d1a470128f9a209a729ff22c86470f4c2b2a8ccbc1e37d6284b026e0805902645ea4b742425fe34491e519638 SHA512 13c36e03cb5bdb2e9f17622e21eda608057fc9d908bc55a829fdeeb77785094769d4f4b4daf376c5509ceb3abfdb3936f668bd6d5b2fd48e21c5c28b6e597e78 +DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2 +DIST match_cfg-0.1.0.crate 7153 BLAKE2B d3f40e5b16761fed337ed18dfa9db9e46aa2ad84ca8cfdc7cf7c72bea7cff8d084d95214ce013b3515bbe5b1ad4b8527bfce692569551e4588fe6f396a8a96ee SHA512 fd36f2b128d70a0f278e708bcb3274d90380229f754aed7ce9b808138b0189d5e1a07e0ba732216f788a530cecddcdd980559b3f71efa371d8805a213ff8f2d6 +DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa +DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459353a9316ffaa0245ce499df4424e39c25a81be59cd0f9a19c3214c78bdc7a84b632059282be476d8f918c44d6 SHA512 91ffe0ec792228621d6c2d5cc544ef4744203d19fc9c86e0aad2610038c43aca0448b6c27d82979417a0f6c939ea73523303a44c28df0d1c1b8d09814d5306d9 +DIST num_threads-0.1.6.crate 7334 BLAKE2B 416efdf395b0299b6b01e1508823afdda08cf67ca54e1d644fc5accbb0490945a492a34bc5ba70c3e838e6405d17ddce164ef87468bd9da27097de8994ad9577 SHA512 b2d9897e29e59353379b6372a629fc7f9afc89f777b4410eaeac7b4729527948a8dbecb175f056899f9076693ef855cc0d40e725cc54f28af588fbac5f7ce3b6 +DIST once_cell-1.18.0.crate 32969 BLAKE2B a08d5beee50a7add28bd9e50b18709e7b34574f0f55f80909d5efb7ac5917e5f30bdcf3fb43ddd0a4f420a427390c7ffe1cc1c7191a3a1d939bc6e3139e6eef7 SHA512 9328968afdf3535b2d9e0113d75afa725259d76994ef2e1948ad7efa4ec8a65bac7cfdc31b749d5cd55ad4e28d2e28ac57b871e3067b89182453c7e2413a13b8 +DIST pin-project-lite-0.2.9.crate 27713 BLAKE2B d6985b5add432fb6287d1b0c9fb0cc91a195f82c5a748a9ea430e4ba884717ec7b16d730b5ea62de5b2bfead1771da2d115b3776e12e605f70f2538f374a28fa SHA512 cef0b77233adca712db1183f780732ea577cf1b27c2643de221d54c837c75ce749f907e24a967be7474812c7682cba613a3fc5d553a9578a1b80569da0e562e4 +DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70 +DIST proc-macro2-1.0.63.crate 44867 BLAKE2B 54fc0f4f4e328c78609f5c0e26a8e6b1e5f1ad989d68e63d21e094bc20e1be6950d5df98ffb601c89bd3d137f6c05a3d1de74070e493002e793bf159b96f29de SHA512 3855011d0d42e8fe591e7552d224b692d79b194c4452fe9d8f92ed85e5437c0a3524a38e66301412be482cfcfbd468b071a03cf584a1618284dfcdcac9713102 +DIST quote-1.0.29.crate 28345 BLAKE2B 3aeb637a4139730348775caab4d48173650d8bdce08247263d741ccc657dfff7f2facff05725bcaa73486818d394c392c64ecbc61bae3f5b612104aec16ff289 SHA512 d686a3943dca059a8e79689c77e6e8f6dbfa9b16a1a7ecdd27099339b77a55334252eaa8b4340e79c35ebb1f6e4deeb3f6356dfd02484f9c724e66a74387e30b +DIST regex-1.6.0.crate 239329 BLAKE2B 646405e681ce572ebe2dc51a3339f0f8204143f9b2b8f8e74a4c80379c43c3581363ad347610a384d5ee831cf1425f74ddd944a658b1da2461e8068c5521af69 SHA512 b4861c9cc13d6fb224f67057fd3522f04576591b3d7ae0d3581dce42ca2b2bff96860cf2a7f4dfab00e46a1d29e6473f6723c4aeb02e34ed6d5f205b66f07876 +DIST regex-syntax-0.6.27.crate 297300 BLAKE2B 4ca1a2e23d04e29c5925085ea4ab7ebcc398dfe135eacaab1e686aa8be43a110a28e8bec05a6910183f9a6bb1fd0d635fcb1a60b5a6a03fed4d2cf937a542a5a SHA512 5cc705a5dda08cbdb4dbcf3fa98763cadcda13d9c3ba407b35f3e88d77935efc2704bb40b3fb5aad7dfbad0df43bcb4c4cad9732defb954e2228a0739f7c37c6 +DIST rustix-0.38.7.crate 332031 BLAKE2B c7261d4ef5308a8aca32a919d1ce70980b939333b75fd575978261064789bf673466c892fbee1e0b51cab13b80f21a0355e8a4eddf2375ed2f4c5d6ed7ae7668 SHA512 798a84fb6561ccf6902ce7177b2a555cef4d46a2faa265fe7121c600b543782e2e0970346fab52b1075ea40054f6c8f7b830b45f4b0c9bec3aea824645d3ec89 +DIST slab-0.4.7.crate 16647 BLAKE2B f567cc822e7b84f64a0b0372c22a0463d260871455a33df025808a0476dcbbd4e051a117d8896d96d6d3d0655b7c296cd691ca22edc54486440f4e2e0f5d1e1b SHA512 659a9ca3323fc2cd236f6cb9eb6feeae8a1f5fa046fa239a34cd7a5ab8a7eadb9e5977e8d5cc41e9138900dd7c75ebc0601480771c5fdd2e084ee76619b82521 +DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1 +DIST syn-1.0.98.crate 235451 BLAKE2B 0667c24d7f6b9bf4c0a5f45fb51c903303a87c72d445ad824e05ab98a158f9beda0d00721144c486335b6a830db47fe57a34831cff6995f478c969c4d0a039dc SHA512 fe5dda742e085e14b6aea5617d3f9dd19ffd46009f34b119c0d74ec693042f641e594f75ff027dbfa38f3d5149a94eb6187248ee9d09d41dab9cc2cfc18fab18 +DIST syn-2.0.23.crate 241166 BLAKE2B de55798634899162388667e4a68a6525904057a480a6bcd741d0bd0f83ba0d0feed3f9a1bd768ca591602ece1e79866a076b6ca218f86b2cf4827d81224d6ad6 SHA512 3f46b2ae62b2e3378024d057130e48b7ae03316ea38ce1d7d4e6dac9337befd84c9eb20518562917643304de43bbd716c34f508a86dbe21081cccb934b4072a0 +DIST syslog-6.0.1.crate 9552 BLAKE2B eb4414c675842fd8cbde4e0c9ecec5dd0f43ca2877a082d634e145202df6817cee86e2edb11f1b78cfa5b0e5df98a42b6cdb2bf1b70c562661dfa9c03da142ba SHA512 fc3e0ef078d2414420e717b66517e9fc668a03b5d0cd0001aed6e477a92f2873877b873159bdf964e4cd670519e5a308bc7357674bd67ac320754221415aa36c +DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc02313868c0faab62358d13abfa7b4ba82f142c2801d25a6ae46ecbc8b7bdbeaa21c9105ea3b8950ab6a38cdb88513 SHA512 5838fcbfd70f300cb4b62aab50565db52074c56b152ccc8ac1173e4676c0d5a636271bf5a645a77da6e1d4edbf0091af2cd4dd6d73b85c3d198c760898c06f3a +DIST thiserror-1.0.41.crate 18734 BLAKE2B 4b2fb42333441ce6a93e74c08615293b58c1d614783a328591a6852144c164311c4e660f6f41c99b1279475066f854fe2c764f857fb69cf16ecd18a5770f7b89 SHA512 3f185746f2783f7f25b986e0aa1d8c3137f6aa2997a40531f04b2fbc00cb380226b0916bb266c8697a10d20d042c7dfa0fe7e767e6ca37346169c67ecfdf4a82 +DIST thiserror-impl-1.0.41.crate 15078 BLAKE2B 53d95c0ecfd2c9d50f618e572eac0a6faa7735fd9afdc8e2a9a7d730ceda83a7222be979d592811fe4a25fe4d992a261d6479df9bcc11abffa4a88571f7647ca SHA512 bf30f7391757f6424d585b28cc2501d962d0d85b6a903baa7d9ef9d4cb96c3b71db67719777aace08fe91fdeedd241905a4d9dc5de5fc97d099968e902191c9b +DIST time-0.3.11.crate 91807 BLAKE2B d5b80416590bf48c8f403cc0e2ad735b95d98048dc335737fe509c44f805cc911fa55d6af611d3a05150b2a9ebedf005e8903a4daf66e245a5d5f290ed661c46 SHA512 214bb8c5573d3ee405a923f55e22ac3d659c30ba413f5e960e17d8f226d094133e2b52084e34efc6ece2311e13a862f2fcded9783937d69709d11144a8d6b48d +DIST unicode-ident-1.0.2.crate 34951 BLAKE2B f03f7a040142785675a800672bb363dcf7aae266eebf50425436100249442f27b18837f9e297d93b59a9254c349e13222f8af892a9c0fbf2bac676df8a1b0e1e SHA512 60d78668b762eb842c15ee554c0c1175393702c805f1a874957d49104e9152ad2d0316966553fb14cb520aa858a84da223bf426d55e4ac23de3324a3bebc301c +DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e126f1774a4377d41eba3269369862f57515af387ea785d69a8adf46338b5e53761b5ee6f4f4380473f4d9cab0a SHA512 51fba8f1e7eb74b7020fd831e30a67fc8353ac2ee07335c8c3374a5570ac8117f165f6905d4b7f0360095b7b5ed3e739001d02a8cc3c89195baf2cd679136050 +DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8 +DIST vhost-0.10.0.crate 200688 BLAKE2B b541584270497997e3fb133c0ca27b42fafb4d5083d90eb57221e01cfb1e8534d9adc424dd106d52fbb0f4868958c10c0ec4778c3b19617601af1990089af886 SHA512 da970cf6c7df5a432b3a8c6024518e994fd029cf9ddfaae869519b892fcc4d590641acab76a03d6cbe8139d7f35467d6d359bde13bfb2b6bb33a5ecabda206d1 +DIST vhost-user-backend-0.13.1.crate 20534 BLAKE2B 5c06c2aa1009482c1c0ef838e78feb89c864861a4c3300f58725bb3dd673dd85b68d9baeafafb86130a12ce97d722d111cde84f16c6861e2390a598b980e4a87 SHA512 90bcc1c82702e32d7642e479f686a3faa5db6e6d41f9f158dc7f75ef2720c1ffe4b8705683d77248bf0cb2b0408b1e45a1ce7d5bfcd839a93b9c48dcc31d99e6 +DIST virtio-bindings-0.2.2.crate 17617 BLAKE2B 0c4013b8b91be27b242c1bb3f70bef843702d674ed2922cf666009e6dc6b3fceb5febfddf1994cb3c551ff6b3c64296d9171535b1fdb566a41dc3c0bc0428b61 SHA512 bfc99801eb785190d0796045d72589e4ef037ffea91f93fdc8232c8873bfec133b16cfdcca1969347f435983603fc69235d587a0e92517bab06edc1027b4f2cd +DIST virtio-queue-0.11.0.crate 147937 BLAKE2B 184b191106139ec12d363b389e27144b252612c7ad94eef3cb6c6547d10f720fdc06117b5bf05b0bcfc03c4d232ccade7b4f257b3de705cd0269c17db58ced99 SHA512 e38c9173e26963b552729b0651f7d38d56a4b98995da2eb48f78a53e3ab61c67002c07428d5f1fab7e1450d358601b74afa41e893f660a19812cb67eafada11b +DIST virtiofsd-v1.10.0.tar.bz2 94982 BLAKE2B 32ce893cc44b99abedd136173b380141fb873cef65c0bd400b15c2ae9957d1b379cfc390d1dd7f2591f4d2930f120dc9bdfc7de087ea50f323db6a70bee36967 SHA512 cde56b446c0baa73a29dea6378f60f0a816fe72d97585acc39d60f3bb19fcd016d094405c2ba2327666d84c1618d1b0164ccb03c8871fa6c76e16a3251acecde +DIST vm-memory-0.14.0.crate 85354 BLAKE2B f2716e17e4272e0baacc38e9783d6abf337a80a18a63119bb1b644ab2c65a7064c4fa2c229309e5d06ebbfadd25bd566e2c96bbc7d281bbe5b29b163718378f2 SHA512 fa7341be2393a42af6ea6c803c1f9657a5e152abd79af83b41918abb01f2f3a6e33431e39e40297164dfca2f7ef14dfc20d80c0278f27bc7abd4d7a4a7ef7710 +DIST vmm-sys-util-0.12.1.crate 58520 BLAKE2B 6b1d176169caa32fb6cbe77d4058dd1df37fc23e5a92d76b8f0eb5f7e2282c2a120f5ad3fdf7710bb1d0b0a24a34770a34310e5da6bcde4c230b485a81eaf2d7 SHA512 dbaf9e2cd002baa97f43ee7659e2bd259df9aeb029fdd5a7e7473c1d38cf82a8208ba5849c12ecc02571da1702082c3491673c68f8029f43c1234ed8e834f960 +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed +DIST windows-targets-0.48.1.crate 6902 BLAKE2B 8e6cd47dea52131c66983cbf4982e88f7bd30416dfae4e380f7afb39f67ee0ac88d40769668dd5aba40d4415f9f00cbc2ac98d598506fed26029f5ec4df3a2c5 SHA512 e48179620cce528292167f1d5ee2deea0659569c996dc90eb4ab62b9ea8baee6c0bea3ab739e06d8793c9690bfc895545ed0039cb633ca39293de79c42ea9de2 +DIST windows_aarch64_gnullvm-0.48.0.crate 366543 BLAKE2B 9b10f65089fe6da3ff38a1061783f635644ae84f567f891eaced280af68f7ff3919b34289e8850aa34554bb0346903273ff0a7fa743ca8794c2d23a9f1b0185f SHA512 80c5aa74c5669f7acff3882a8e7575f15e8d7cc58c11a1cb731ff423eb9cc9ba43cc6b80e52803c0d44e6a9001655ba87de6f43a9fe858da6d6e3a5c983a2711 +DIST windows_aarch64_msvc-0.48.0.crate 671479 BLAKE2B 0c80f210437628e1d878d1d14e884fea532c7539b3030aa76d46f27d02372c715c6e33d7efdbbd770666472b44a66c30711a33d819ede9cdcd51c96355802d45 SHA512 617e47a7202f1db4dbd3ecea509682135ccd85e3a458c0331b9bc7aa1d84e5756b59c881cb098d5c6d4c951248d13c8253a8e8a50938e1997bd19ceba77262df +DIST windows_i686_gnu-0.48.0.crate 741490 BLAKE2B 5a4a584f8d8ee5bbd2d4c5b6749a66f2d43fc9e4ef90faab2227709b270f0d46fc26578c029edd96877c71309316ddb32d91c39f46d88f9a484c614f866e3dbe SHA512 15149fdd48b61b6d993acd392dbd353d0280d984ea88745217e4207937174bb90cdd9701f69ff0fe06a842f03607cbb57937d20d79ab577181e605a8a8fadc68 +DIST windows_i686_msvc-0.48.0.crate 730056 BLAKE2B 4e4ad6ed94948145199c2ed50fc65e4af08455a0fd058bb0f763d481f30b029f99a2b8dbac087b29e762500a19270f6683baf62ba99d141eb002a5b0b5c8ea05 SHA512 11a50800e709712dbea907275bc0faa46d2eb2969118445ed5b932d9c5957a09592a5b26a40e554c1f5fd56c6d074a07637e6f88eedd2224e1001e62df7b469b +DIST windows_x86_64_gnu-0.48.0.crate 703595 BLAKE2B b227efb78a99c43d0538cceadada3fa1840df29adc665787fdcf845b73e77d782da8a9f9aa602e1da61401b550d0107176feb6c397c922a6240b38cc8f04a180 SHA512 38eff1164fb37dbd2bbe53404b20cba92de84cbbd5e4eb9ad60d51fb43d6fdb8b87a1488e2c88ebd4b3ff3b708f93fdc05df4b14a285d3ff11c33ff0d9828602 +DIST windows_x86_64_gnullvm-0.48.0.crate 366536 BLAKE2B 295dc3aef18c604d1579978045f4058b1a315083a8ab842bddf5800ec3460b1530ad88c3464acab712a229290aca235810de8a3b6a253859a354d9fa97277e58 SHA512 8d82fad4c8445030844708aa026a62f1ca43362b8e15f14b0d226c7e9cda04ffa0715087b6a025dbb738e8891de24fcc4a2df071a532917cf03c4a46f934f396 +DIST windows_x86_64_msvc-0.48.0.crate 671422 BLAKE2B abb063610dcc38581657133182b7d9efeed5553df67bd2bd6f30f1668a645186e4824f9ef556a5abc84ace10b1b437b6325bbda6df5a64ce880d7dcb743ac786 SHA512 6e598b8e3ac54912a8ebac01b0dd2c58fd282072527d7fedc7f6ebecdfb7dcb09ae46c22293bc0117849437f8b053db5e90406e7a38276f0f0afd06be3966795 diff --git a/app-emulation/virtiofsd/metadata.xml b/app-emulation/virtiofsd/metadata.xml new file mode 100644 index 000000000000..1a78f9677df7 --- /dev/null +++ b/app-emulation/virtiofsd/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>michal.privoznik@gmail.com</email> + <name>Michal Privoznik</name> + </maintainer> + <maintainer type="project"> + <email>virtualization@gentoo.org</email> + <name>Gentoo Virtualization Project</name> + </maintainer> + <upstream> + <remote-id type="gitlab">virtio-fs/virtiofsd</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild b/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild new file mode 100644 index 000000000000..8eaeb54ded93 --- /dev/null +++ b/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild @@ -0,0 +1,148 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + aho-corasick@0.7.18 + anstream@0.3.2 + anstyle@1.0.1 + anstyle-parse@0.2.1 + anstyle-query@1.0.0 + anstyle-wincon@1.0.1 + arc-swap@1.5.0 + atty@0.2.14 + autocfg@1.1.0 + bitflags@1.3.2 + bitflags@2.4.1 + capng@0.2.2 + cc@1.0.79 + cfg-if@1.0.0 + clap@4.3.11 + clap_builder@4.3.11 + clap_derive@4.3.2 + clap_lex@0.5.0 + colorchoice@1.0.0 + env_logger@0.8.4 + errno@0.3.1 + errno-dragonfly@0.1.2 + error-chain@0.12.4 + futures@0.3.21 + futures-channel@0.3.21 + futures-core@0.3.21 + futures-executor@0.3.21 + futures-io@0.3.21 + futures-macro@0.3.21 + futures-sink@0.3.21 + futures-task@0.3.21 + futures-util@0.3.21 + heck@0.4.1 + hermit-abi@0.1.19 + hermit-abi@0.3.2 + hostname@0.3.1 + humantime@2.1.0 + is-terminal@0.4.9 + itoa@1.0.2 + libc@0.2.147 + libseccomp-sys@0.2.1 + linux-raw-sys@0.4.5 + log@0.4.17 + match_cfg@0.1.0 + memchr@2.5.0 + num_cpus@1.13.1 + num_threads@0.1.6 + once_cell@1.18.0 + pin-project-lite@0.2.9 + pin-utils@0.1.0 + proc-macro2@1.0.63 + quote@1.0.29 + regex@1.6.0 + regex-syntax@0.6.27 + rustix@0.38.7 + slab@0.4.7 + strsim@0.10.0 + syn@1.0.98 + syn@2.0.23 + syslog@6.0.1 + termcolor@1.1.3 + thiserror@1.0.41 + thiserror-impl@1.0.41 + time@0.3.11 + unicode-ident@1.0.2 + utf8parse@0.2.1 + version_check@0.9.4 + vhost@0.10.0 + vhost-user-backend@0.13.1 + virtio-bindings@0.2.2 + virtio-queue@0.11.0 + vm-memory@0.14.0 + vmm-sys-util@0.12.1 + winapi@0.3.9 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.5 + winapi-x86_64-pc-windows-gnu@0.4.0 + windows-sys@0.48.0 + windows-targets@0.48.1 + windows_aarch64_gnullvm@0.48.0 + windows_aarch64_msvc@0.48.0 + windows_i686_gnu@0.48.0 + windows_i686_msvc@0.48.0 + windows_x86_64_gnu@0.48.0 + windows_x86_64_gnullvm@0.48.0 + windows_x86_64_msvc@0.48.0 +" + +inherit cargo + +DESCRIPTION="Shared file system for virtual machines" +HOMEPAGE="https://virtio-fs.gitlab.io/" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git" + EGIT_BRANCH="main" +else + SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2" + SRC_URI+=" ${CARGO_CRATE_URIS}" + KEYWORDS="~amd64 ~ppc64" + S="${WORKDIR}/${PN}-v${PV}" +fi + +LICENSE="Apache-2.0 BSD" +# Dependent crate licenses +LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 Unlicense" +SLOT="0" + +DEPEND=" + sys-libs/libcap-ng + sys-libs/libseccomp +" +RDEPEND="${DEPEND}" + +# rust does not use *FLAGS from make.conf, silence portage warning +# update with proper path to binaries this crate installs, omit leading / +QA_FLAGS_IGNORED="usr/libexec/${PN}" + +src_unpack() { + if [[ "${PV}" == *9999* ]]; then + git-r3_src_unpack + cargo_live_src_unpack + else + cargo_src_unpack + fi +} + +src_install() { + cargo_src_install + + mkdir "${ED}/usr/libexec" || die + mv "${ED}/usr/"{bin,libexec}/${PN} || die + + # Install 50-virtiofsd.json but to avoid conflicts with + # <app-emulation/qemu-8.0.0 install it under different name. In this case, + # smaller number means higher priority, but that's probably what users want + # anyway if they install this package on top of app-emulation/qemu. + # TODO: remove once old QEMUs are removed from the portage. + insinto "/usr/share/qemu/vhost-user" + newins "50-virtiofsd.json" "40-virtiofsd.json" +} diff --git a/app-emulation/virtiofsd/virtiofsd-9999.ebuild b/app-emulation/virtiofsd/virtiofsd-9999.ebuild new file mode 100644 index 000000000000..8eaeb54ded93 --- /dev/null +++ b/app-emulation/virtiofsd/virtiofsd-9999.ebuild @@ -0,0 +1,148 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + aho-corasick@0.7.18 + anstream@0.3.2 + anstyle@1.0.1 + anstyle-parse@0.2.1 + anstyle-query@1.0.0 + anstyle-wincon@1.0.1 + arc-swap@1.5.0 + atty@0.2.14 + autocfg@1.1.0 + bitflags@1.3.2 + bitflags@2.4.1 + capng@0.2.2 + cc@1.0.79 + cfg-if@1.0.0 + clap@4.3.11 + clap_builder@4.3.11 + clap_derive@4.3.2 + clap_lex@0.5.0 + colorchoice@1.0.0 + env_logger@0.8.4 + errno@0.3.1 + errno-dragonfly@0.1.2 + error-chain@0.12.4 + futures@0.3.21 + futures-channel@0.3.21 + futures-core@0.3.21 + futures-executor@0.3.21 + futures-io@0.3.21 + futures-macro@0.3.21 + futures-sink@0.3.21 + futures-task@0.3.21 + futures-util@0.3.21 + heck@0.4.1 + hermit-abi@0.1.19 + hermit-abi@0.3.2 + hostname@0.3.1 + humantime@2.1.0 + is-terminal@0.4.9 + itoa@1.0.2 + libc@0.2.147 + libseccomp-sys@0.2.1 + linux-raw-sys@0.4.5 + log@0.4.17 + match_cfg@0.1.0 + memchr@2.5.0 + num_cpus@1.13.1 + num_threads@0.1.6 + once_cell@1.18.0 + pin-project-lite@0.2.9 + pin-utils@0.1.0 + proc-macro2@1.0.63 + quote@1.0.29 + regex@1.6.0 + regex-syntax@0.6.27 + rustix@0.38.7 + slab@0.4.7 + strsim@0.10.0 + syn@1.0.98 + syn@2.0.23 + syslog@6.0.1 + termcolor@1.1.3 + thiserror@1.0.41 + thiserror-impl@1.0.41 + time@0.3.11 + unicode-ident@1.0.2 + utf8parse@0.2.1 + version_check@0.9.4 + vhost@0.10.0 + vhost-user-backend@0.13.1 + virtio-bindings@0.2.2 + virtio-queue@0.11.0 + vm-memory@0.14.0 + vmm-sys-util@0.12.1 + winapi@0.3.9 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-util@0.1.5 + winapi-x86_64-pc-windows-gnu@0.4.0 + windows-sys@0.48.0 + windows-targets@0.48.1 + windows_aarch64_gnullvm@0.48.0 + windows_aarch64_msvc@0.48.0 + windows_i686_gnu@0.48.0 + windows_i686_msvc@0.48.0 + windows_x86_64_gnu@0.48.0 + windows_x86_64_gnullvm@0.48.0 + windows_x86_64_msvc@0.48.0 +" + +inherit cargo + +DESCRIPTION="Shared file system for virtual machines" +HOMEPAGE="https://virtio-fs.gitlab.io/" + +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git" + EGIT_BRANCH="main" +else + SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2" + SRC_URI+=" ${CARGO_CRATE_URIS}" + KEYWORDS="~amd64 ~ppc64" + S="${WORKDIR}/${PN}-v${PV}" +fi + +LICENSE="Apache-2.0 BSD" +# Dependent crate licenses +LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 Unlicense" +SLOT="0" + +DEPEND=" + sys-libs/libcap-ng + sys-libs/libseccomp +" +RDEPEND="${DEPEND}" + +# rust does not use *FLAGS from make.conf, silence portage warning +# update with proper path to binaries this crate installs, omit leading / +QA_FLAGS_IGNORED="usr/libexec/${PN}" + +src_unpack() { + if [[ "${PV}" == *9999* ]]; then + git-r3_src_unpack + cargo_live_src_unpack + else + cargo_src_unpack + fi +} + +src_install() { + cargo_src_install + + mkdir "${ED}/usr/libexec" || die + mv "${ED}/usr/"{bin,libexec}/${PN} || die + + # Install 50-virtiofsd.json but to avoid conflicts with + # <app-emulation/qemu-8.0.0 install it under different name. In this case, + # smaller number means higher priority, but that's probably what users want + # anyway if they install this package on top of app-emulation/qemu. + # TODO: remove once old QEMUs are removed from the portage. + insinto "/usr/share/qemu/vhost-user" + newins "50-virtiofsd.json" "40-virtiofsd.json" +} diff --git a/app-emulation/virtualbox-additions/Manifest b/app-emulation/virtualbox-additions/Manifest index 29299736b4cf..51342efb7f18 100644 --- a/app-emulation/virtualbox-additions/Manifest +++ b/app-emulation/virtualbox-additions/Manifest @@ -1,4 +1,5 @@ -DIST VBoxGuestAdditions_6.0.24.iso 77355008 BLAKE2B 3bb611323ba41ad94a75d5d28198aaf732bd7c36965abc65755c0ffeec29bd378cf4351b838675667958086e499f5791b942a8e3877c1ed815a22c4d564147a1 SHA512 aea64aff216a0cfa3535d2215ec74dd46243f9aba0c1b95f476bb8f0b3d561994f4fc8cc7d454f03482e1cec9a227014f10045e75756767bd8006e8beb9aaade -DIST VBoxGuestAdditions_6.1.12.iso 60626944 BLAKE2B cb16f72f9c010e7e97e6ae5d86d02c81bbae2593fd502a3e6d911e794fa15254b631e37587f7ba636686e8897fe27a05f8dee58870200cbb50e2fbbe57142cc3 SHA512 dd0a7705477620205529090e37965a09906e864d3d293405414ba09c951c33d9586ac6f5e1f35e35ece1e2bae0919cc7740b21e302f9c5e2160e5458168372c0 -DIST VBoxGuestAdditions_6.1.14.iso 60981248 BLAKE2B df4e6159e4f0f1b7bb1a92dfbfdadc30aaa6499f5cb4bf80c783e9ef26dfc2d07f9198c3b20677064d1533ecb9a58100da52975478396bbec918268a7ad14e5d SHA512 51c9e128626bf1a02b4467c85829fa694dc46a469852e4effb768fdb56d1a61e28488a887920c7a8e51128370664ca50c883c590297d8c5182980fc2c176c187 -DIST VBoxGuestAdditions_6.1.16.iso 60987392 BLAKE2B d4452f43c72ab8c49633f717f7a49257e14a8c6c7b60c6d61ee65ae5e4bcce00c30e19ba78d6f28fb85dfbc95ca6139aec2c7069e5afecae145dffc6ff38793a SHA512 e7606fba6e7490318b7dbadff52578040e4370bbe81fa67e6653e798176eb929ed37e363792647ab3c6626ee9e32af40f63167521997af7b446c25173ff60280 +DIST VBoxGuestAdditions_6.1.48.iso 63969280 BLAKE2B 7bba272d427a6a91cd4d63c5d494e50d9984badac47c75f5323b1b2ad25a4fbf7cf28a1eba30988288d6e308b8d62ab5043c445a651b8b767667a267d5dee1e9 SHA512 19b98be42d7c0148ada0342fbbe6e1803fa127aca14662b560624d2c582656af68b01152a9c8b14d238c493d171694e088091b924598cebbf1f8d2c7a949d0c3 +DIST VBoxGuestAdditions_6.1.50.iso 64051200 BLAKE2B 9eff4a3643579ee0426dbe2b62247b8c89321be495e61469628574445fedc06ff2fb9afa108705cbaf24a13db99b4e6e850c61e5c97343095549f444831fcf62 SHA512 d74ce912dbbcef7f644a9f3ba9917782336cbee8e0756727a8753ffc17486a75e833adaa869e205531bc3b81b9cb26aa9b50f44210e78dceece966687122f6c6 +DIST VBoxGuestAdditions_7.0.12.iso 53448704 BLAKE2B 1b738c648c902c1a98d83dc9525c7e091cd2234aa67f464a4beb3d6bd9bbb6893fe02eee4a37a05eae8e880efc6c834931a7ec7f08ae7b1615b1a622117767a2 SHA512 7f5db8f73bc2c89ad798fd2ec3543c460aa3fd3e44f02c04c334539172699af08c16312d96b6fdd5c561bc3d8133fc7a3662e51a86f82980d692f050286e0e7e +DIST VBoxGuestAdditions_7.0.14.iso 53526528 BLAKE2B 2ec95d9261d3a7f762f333c1e3eb36f7b75cfd7cf722d1bdcd5c0b38a3a311db82b728fe800aed79b41b979ec345cd2586e3fd8c2d2c54f8b83516061d81d304 SHA512 5aa80b04c567d383793c560eb535babd1ebc4f472aaa51753867dbee00e1f5a3efeb5dd4c9eb1a48149ff0fa2e7598aa68792d3da9959709b619d234c2b57544 +DIST VBoxGuestAdditions_7.0.16.iso 53528576 BLAKE2B a57b056f540e949574f78cee476240b9bab8a151a32f90412d9dd8acfaa40407c45bee037eb14192a0304a30ff0938625df586c48be9997cf545809cb30fa300 SHA512 12aead8c363d7ca33c3cc52d84ee86cfbd2db98ab84942d24fd5aa841dd2aaa0fb3075aa9b7188db3df1cac11de475c4e56d270ea9dc9f6663c9e9e7236bf9fe diff --git a/app-emulation/virtualbox-additions/metadata.xml b/app-emulation/virtualbox-additions/metadata.xml index 8dafc466cde2..498143329fed 100644 --- a/app-emulation/virtualbox-additions/metadata.xml +++ b/app-emulation/virtualbox-additions/metadata.xml @@ -1,9 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>polynomial-c@gentoo.org</email> - <name>Lars Wendler</name> + <email>ceamac@gentoo.org</email> + <name>Viorel Munteanu</name> </maintainer> - </pkgmetadata> - +</pkgmetadata> diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild deleted file mode 100644 index 97dc656fbe72..000000000000 --- a/app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PN=VBoxGuestAdditions -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}_${MY_PV} - -DESCRIPTION="CD image containing guest additions for VirtualBox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso" - -LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="amd64 x86" -IUSE="" -RESTRICT="mirror" - -RDEPEND="!app-emulation/virtualbox-bin - !=app-emulation/virtualbox-9999" - -S="${WORKDIR}" - -src_unpack() { - return 0 -} - -src_install() { - insinto /usr/share/${PN/-additions} - newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso -} diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild deleted file mode 100644 index 97264897ea7d..000000000000 --- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -MY_PN=VBoxGuestAdditions -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}_${MY_PV} - -DESCRIPTION="CD image containing guest additions for VirtualBox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso" - -LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="" -RESTRICT="mirror" - -RDEPEND="!app-emulation/virtualbox-bin - !=app-emulation/virtualbox-9999" - -S="${WORKDIR}" - -src_unpack() { - return 0 -} - -src_install() { - insinto /usr/share/${PN/-additions} - newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso -} diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.14.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.48.ebuild index 97264897ea7d..b99d3c3c719a 100644 --- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.14.ebuild +++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.48.ebuild @@ -1,28 +1,19 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 MY_PN=VBoxGuestAdditions -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}_${MY_PV} +MY_P=${MY_PN}_${PV} DESCRIPTION="CD image containing guest additions for VirtualBox" HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso" +S="${WORKDIR}" LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="" -RESTRICT="mirror" - -RDEPEND="!app-emulation/virtualbox-bin - !=app-emulation/virtualbox-9999" - -S="${WORKDIR}" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" src_unpack() { return 0 diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.12.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild index 97264897ea7d..eb846519c702 100644 --- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.12.ebuild +++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild @@ -1,28 +1,19 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 MY_PN=VBoxGuestAdditions -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}_${MY_PV} +MY_P=${MY_PN}_${PV} DESCRIPTION="CD image containing guest additions for VirtualBox" HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso" +S="${WORKDIR}" LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ +SLOT="0/$(ver_cut 1-2)" KEYWORDS="~amd64" -IUSE="" -RESTRICT="mirror" - -RDEPEND="!app-emulation/virtualbox-bin - !=app-emulation/virtualbox-9999" - -S="${WORKDIR}" src_unpack() { return 0 diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild new file mode 100644 index 000000000000..1cb70c695bbd --- /dev/null +++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild @@ -0,0 +1,25 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN=VBoxGuestAdditions +MY_P=${MY_PN}_${PV} + +DESCRIPTION="CD image containing guest additions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso" +S="${WORKDIR}" + +LICENSE="GPL-3 || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" + +src_unpack() { + return 0 +} + +src_install() { + insinto /usr/share/${PN/-additions} + newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso +} diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild new file mode 100644 index 000000000000..92124a9f779e --- /dev/null +++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild @@ -0,0 +1,25 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN=VBoxGuestAdditions +MY_P=${MY_PN}_${PV} + +DESCRIPTION="CD image containing guest additions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso" +S="${WORKDIR}" + +LICENSE="GPL-3 || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +src_unpack() { + return 0 +} + +src_install() { + insinto /usr/share/${PN/-additions} + newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso +} diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild new file mode 100644 index 000000000000..92124a9f779e --- /dev/null +++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild @@ -0,0 +1,25 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PN=VBoxGuestAdditions +MY_P=${MY_PN}_${PV} + +DESCRIPTION="CD image containing guest additions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso" +S="${WORKDIR}" + +LICENSE="GPL-3 || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +src_unpack() { + return 0 +} + +src_install() { + insinto /usr/share/${PN/-additions} + newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso +} diff --git a/app-emulation/virtualbox-extpack-oracle/Manifest b/app-emulation/virtualbox-extpack-oracle/Manifest index 235626208580..a93f2331cba2 100644 --- a/app-emulation/virtualbox-extpack-oracle/Manifest +++ b/app-emulation/virtualbox-extpack-oracle/Manifest @@ -1,4 +1,5 @@ -DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.24-139119.tar.gz 23238486 BLAKE2B cad4e6822b51db05fb0b919f4c44ace1743a9d2b5ebcc0da6fe3c9ec43612ec6079614f5d3a9423c320e65b5438089aeef42f331946eb74093e3f8b1ef137300 SHA512 4be76fffb8508dda561e74daf68c71641a0903e554ecdf6b102f3fe35af03883bc88c2ac3cbdae2b3ddfb7ee5c9bdfa8df670662eef139f2a894dea4aa6f2e18 -DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.12-139181.tar.gz 11141691 BLAKE2B ac4cae428d15fa503b47337c5d2bab3e21197b82192fa2009216e438d06b867b17a62890c7525d232919751a5eec770f0ecd835c93aa3e67bcbf13b94d8d5344 SHA512 2abc9f6aaadfd6b0bb65df7eb9c45155ea2ec0d215aedd7589a76753b7323fef47c4799322ed973ef92baf1d64835dc813a235001be2cf4e166e474d5b6e2afc -DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.14-140239.tar.gz 11145475 BLAKE2B fe64288068cfeb17da5b7583b5218de74dade2f3a994ef46e43bf7811cfeabae3d48f6bb200882892205d5a10294c38296e51e31c900af4cffd402030a85e3b3 SHA512 436ed94cec32365b9b19fe170323519543d18fcdad28eac09438c2238d68e452b25a415d69f244fd26b4c117fc5e2b33c8bd2fb63b31805f62ed9d59500eb304 -DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.16-140961.tar.gz 11145670 BLAKE2B 86e620ebaea9803b9bf633990a39d9e2828fbe70cdc98cbb6ba98accc374e0ea2300a7135cae0f0ec8d13184ccc8e0ff075ca1f81132ed97206f14c20adeb3bc SHA512 89b9c709da1c4b8268c4c1849e074f4d8dc76a36663b401c9ea63f02422bec50e2b77056289144bb161b1dd226b78687379d6ab86281112a71561c1777f525fb +DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.48.tar.gz 11166368 BLAKE2B 5c1ced1742f44110490aee07e0323d418152b87c5c8c9dfbeffb05cc59fcc94bb88b8e932b59f5bd79e3d85b347525b939df2a60f52d46533bd2d877c1720439 SHA512 71ca826ac886fdb9389a09f6fc1b5b7e99e8bfda1fa64cecefebc60e3cd7c11f678bfe1fb853a7bd0de8ed2ffe00f5f9758a2b00e122bc678b71fa74ad366573 +DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.50.tar.gz 11175855 BLAKE2B 898ef92a91dbfb39079f8dfa5f4c1e6d91df66e92deb00849ba1da8a2278e3adcfd5754bf70acc6d8b6d7d6273923999860b71c01de3eaabf4d487d718aa14ef SHA512 818f0564a8ee1266f2d03d6e0d5df44278746067ae86279f6e884f519ad3e923382c7b987b3a58fe95e2aa4f0a53b98d553106b0250923e88989e5fdaa9dc3ae +DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.12.tar.gz 18245684 BLAKE2B 6a55307034da5510d47bbf57bf557308be5c0459bbb21d0c79cc769a0f1ebae1e26c3202e23da17cd900b0ca88dbc653d2be0297817b79b61f426c6c5880c43a SHA512 0d311ed94a52d02634050f309886d6c5b627151b7e85a50e81a602c02c9400f01c1dfc21a7f52f33e50c2e27df96213f5b97cb3edc82f784ef171796c3ae6d56 +DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.14.tar.gz 18331089 BLAKE2B 278341be074c7bb276b90034355da3a55e2ef5efd89ad9a26a8f53b6743890772e1486ed5552ec131a8c80a710405dac284789d71a6c3bbec2dd79cf0e7e0459 SHA512 9301300dd1c2a178c730045128574b99a4a6cd1c2dd3f6a5782a78fa08588a4c5fd9c9ff6b2dbeba04747de915e3342ebbd08a4b9ed4641ff60f90f6a5c7fc3d +DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.16.tar.gz 18331063 BLAKE2B efacd03316b4a71e98fe41509851fe00227d6a935dbf5f8834e6aa32d5b0added25bc9282fdeff9f046ffba7775dc49d8ebc3fef497f88dc6cdbcc720f92c077 SHA512 50ca8f0961fcb7a7db1864faad99b9e0b00e06f9f7e1e377897d92353029e3d7d4a9acf07a2f7abd304fed1fa38e2acdad67b4ca73d645196feddf81c54366eb diff --git a/app-emulation/virtualbox-extpack-oracle/metadata.xml b/app-emulation/virtualbox-extpack-oracle/metadata.xml index 8dafc466cde2..498143329fed 100644 --- a/app-emulation/virtualbox-extpack-oracle/metadata.xml +++ b/app-emulation/virtualbox-extpack-oracle/metadata.xml @@ -1,9 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>polynomial-c@gentoo.org</email> - <name>Lars Wendler</name> + <email>ceamac@gentoo.org</email> + <name>Viorel Munteanu</name> </maintainer> - </pkgmetadata> - +</pkgmetadata> diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild deleted file mode 100644 index e963a7a5ca90..000000000000 --- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib - -MAIN_PV="$(ver_cut 1-3)" -if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then - MY_PV="${MAIN_PV}_$(ver_cut 5-6)" - DEP_PV="${MY_PV}" - MY_PV="${MY_PV/beta/BETA}" - MY_PV="${MY_PV/rc/RC}" -else - MY_PV="${MAIN_PV}" - DEP_PV="${MAIN_PV}" -fi -VBOX_BUILD_ID="$(ver_cut 4)" -MY_PN="Oracle_VM_VirtualBox_Extension_Pack" -MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}" - -DESCRIPTION="PUEL extensions for VirtualBox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" - -LICENSE="PUEL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="amd64 x86" -IUSE="" -RESTRICT="bindist mirror strip" - -RDEPEND="~app-emulation/virtualbox-${DEP_PV}" - -S="${WORKDIR}" - -QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*" - -src_install() { - insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} - doins -r linux.${ARCH} - doins ExtPack* PXE-Intel.rom -} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild deleted file mode 100644 index 292f61b0055b..000000000000 --- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib - -MAIN_PV="$(ver_cut 1-3)" -if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then - MY_PV="${MAIN_PV}_$(ver_cut 5-6)" - DEP_PV="${MY_PV}" - MY_PV="${MY_PV/beta/BETA}" - MY_PV="${MY_PV/rc/RC}" -else - MY_PV="${MAIN_PV}" - DEP_PV="${MAIN_PV}" -fi -VBOX_BUILD_ID="$(ver_cut 4)" -MY_PN="Oracle_VM_VirtualBox_Extension_Pack" -MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}" - -DESCRIPTION="PUEL extensions for VirtualBox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" - -LICENSE="PUEL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="" -RESTRICT="bindist mirror strip" - -RDEPEND="=app-emulation/virtualbox-${DEP_PV}*" - -S="${WORKDIR}" - -QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*" - -src_install() { - insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} - doins -r linux.${ARCH} - doins ExtPack* PXE-Intel.rom -} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild deleted file mode 100644 index 292f61b0055b..000000000000 --- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib - -MAIN_PV="$(ver_cut 1-3)" -if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then - MY_PV="${MAIN_PV}_$(ver_cut 5-6)" - DEP_PV="${MY_PV}" - MY_PV="${MY_PV/beta/BETA}" - MY_PV="${MY_PV/rc/RC}" -else - MY_PV="${MAIN_PV}" - DEP_PV="${MAIN_PV}" -fi -VBOX_BUILD_ID="$(ver_cut 4)" -MY_PN="Oracle_VM_VirtualBox_Extension_Pack" -MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}" - -DESCRIPTION="PUEL extensions for VirtualBox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" - -LICENSE="PUEL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="" -RESTRICT="bindist mirror strip" - -RDEPEND="=app-emulation/virtualbox-${DEP_PV}*" - -S="${WORKDIR}" - -QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*" - -src_install() { - insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} - doins -r linux.${ARCH} - doins ExtPack* PXE-Intel.rom -} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild deleted file mode 100644 index 292f61b0055b..000000000000 --- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit multilib - -MAIN_PV="$(ver_cut 1-3)" -if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then - MY_PV="${MAIN_PV}_$(ver_cut 5-6)" - DEP_PV="${MY_PV}" - MY_PV="${MY_PV/beta/BETA}" - MY_PV="${MY_PV/rc/RC}" -else - MY_PV="${MAIN_PV}" - DEP_PV="${MAIN_PV}" -fi -VBOX_BUILD_ID="$(ver_cut 4)" -MY_PN="Oracle_VM_VirtualBox_Extension_Pack" -MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}" - -DESCRIPTION="PUEL extensions for VirtualBox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" - -LICENSE="PUEL" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="" -RESTRICT="bindist mirror strip" - -RDEPEND="=app-emulation/virtualbox-${DEP_PV}*" - -S="${WORKDIR}" - -QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*" - -src_install() { - insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} - doins -r linux.${ARCH} - doins ExtPack* PXE-Intel.rom -} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild new file mode 100644 index 000000000000..85967cb38352 --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV="$(ver_cut 1-3)" +MY_PN="Oracle_VM_VirtualBox_Extension_Pack" +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="PUEL extensions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" +RESTRICT="bindist mirror strip" + +RDEPEND=">=app-emulation/virtualbox-${MY_PV}" + +QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*" + +src_install() { + insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom +} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild new file mode 100644 index 000000000000..31f570aafe44 --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV="$(ver_cut 1-3)" +MY_PN="Oracle_VM_VirtualBox_Extension_Pack" +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="PUEL extensions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +RESTRICT="bindist mirror strip" + +RDEPEND=">=app-emulation/virtualbox-${MY_PV}" + +QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*" + +src_install() { + insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom +} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild new file mode 100644 index 000000000000..b058831162a0 --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild @@ -0,0 +1,28 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV="$(ver_cut 1-3)" +MY_PN="Oracle_VM_VirtualBox_Extension_Pack" +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="PUEL extensions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" +RESTRICT="bindist mirror strip" + +RDEPEND="=app-emulation/virtualbox-${MY_PV}*" + +QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*" + +src_install() { + insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom +} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild new file mode 100644 index 000000000000..8c44669215ab --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild @@ -0,0 +1,33 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV="$(ver_cut 1-3)" +MY_PN="Oracle_VM_VirtualBox_Extension_Pack" +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="PUEL extensions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +RESTRICT="bindist mirror strip" + +RDEPEND=" + || ( + =app-emulation/virtualbox-${MY_PV}* + =app-emulation/virtualbox-kvm-${MY_PV}* + ) +" + +QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*" + +src_install() { + insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom +} diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.16.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.16.ebuild new file mode 100644 index 000000000000..8c44669215ab --- /dev/null +++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.16.ebuild @@ -0,0 +1,33 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MY_PV="$(ver_cut 1-3)" +MY_PN="Oracle_VM_VirtualBox_Extension_Pack" +MY_P="${MY_PN}-${MY_PV}" + +DESCRIPTION="PUEL extensions for VirtualBox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz" +S="${WORKDIR}" + +LICENSE="PUEL-11" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +RESTRICT="bindist mirror strip" + +RDEPEND=" + || ( + =app-emulation/virtualbox-${MY_PV}* + =app-emulation/virtualbox-kvm-${MY_PV}* + ) +" + +QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*" + +src_install() { + insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN} + doins -r linux.${ARCH} + doins ExtPack* PXE-Intel.rom +} diff --git a/app-emulation/virtualbox-guest-additions/Manifest b/app-emulation/virtualbox-guest-additions/Manifest index 319ed8af7cbc..94862e2eeed7 100644 --- a/app-emulation/virtualbox-guest-additions/Manifest +++ b/app-emulation/virtualbox-guest-additions/Manifest @@ -1,6 +1,9 @@ -DIST VirtualBox-6.0.24.tar.bz2 159833756 BLAKE2B 321f7988a5b55a794e2d51937a0752d96eaefb376c12e2fb23be08dff81b164153e19a7d5963a0404f630fb38d6047b9d954a67923f26b2aa16d861a0c6a1b63 SHA512 e6f98d0036cdebc52c78c5ddbce369d9ef0a036c366647b299060e1ccf6942f6b6f899201dfa08c410a039f353b767a41a0d14579c741dc5c034a035cb16c534 -DIST VirtualBox-6.1.12a.tar.bz2 165246721 BLAKE2B e9ee7c10d92b151ab10833c68d0c71a09419bba4dbf86f21401263a98273f5ad5cf628347215d641e80e11d8e77bafeda606822cdd4d02344490fca6b95814ef SHA512 27fe66daf7fa254d9fc4a2cca4a8bbcfbfe6c3387a9f4a740c8ac1297587b5083bccbeef97dcc4e482c4974c843450212e02415b4952eb38b82e179615741193 -DIST VirtualBox-6.1.14a.tar.bz2 165962245 BLAKE2B 7f064ea58f7e4f36a0cda9badc7d16d5e95246de923ab9d179688c7f2f020625efa89c592aceec59d54f1c48934b20674594cc6a63f3f42e9fef39cfd5803027 SHA512 7bdf248b53c517923afc46998e46f63271f71ee73fa6826f367828128944895b2d672d7fc4d05f222e6d45897269fe699f7360ee1534c96450e2cc7bc14c0f13 -DIST VirtualBox-6.1.16.tar.bz2 165470821 BLAKE2B 13376322d0ce2ea3ed826c61816ff19c8ce1f022f6cb1f1b0c291d72354cbe574a01589a6dcc39de10080ba32d5961ca980e75fe11c7401736bf8f7e5443d166 SHA512 4373eb35934f894e419e1441f6368e646e4a84b963a0ecf1e5c71bbf0231de0b0e52f4c4377b8cd2d956bc7a11346a9da2285988bf1e4c743971c413c6529421 -DIST virtualbox-6.0.24-patches-01.tar.xz 3640 BLAKE2B e55c30395978471edd0f291cd34ecb772cce2f27bea88c6fe348e83046777638be9bdd36bf3a2fd1967357ea7ff53936398cd94ee74d8e55d31c1896069404ff SHA512 b8d9395083769a641a5d7f78ac734a86220fec817e3e49461208f8e72ef7d11c19fe4507e6766fe7c8c815c9888f793fd66f3fae36d6e3a217e53620b5d95029 -DIST virtualbox-6.1.12-patches-01.tar.xz 2528 BLAKE2B a5d7cde0daea41bee2e40e46569c725769927a31865d99d13b8b13c4903e59b4097f85da15dc592b9c7e8baf8ff805397af827620f107ba09a468b4d1198ecab SHA512 f71d10a9fbce99c3f631ef30bcfa9d0e017e702ac509541b039e08ccbcd024beb93fde09c43d90af5d9d28f6842a7947f20e7950d3897da3e6d57859657e1123 +DIST VirtualBox-6.1.48.tar.bz2 165960987 BLAKE2B c981e390ae518b829970827f6032fb19a93685fb58835a9d489c6e14cc60a5c14c65b0a3da5adae7818e73e1b0e558e8fa803160cb67847f18565bb78d656e97 SHA512 fff759f3871e4e8962536002f2bc13e5150a927e280493f5cb0abf06466ce66e45f4c6ef43489b5b3ed8682d8a3ac0eb6fb3dd7c4144924c81612553ec71a95f +DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f +DIST VirtualBox-7.0.12.tar.bz2 175644088 BLAKE2B 507cbf7b1a8a807bd2602e74bc19a59cb177b9b2bdefa1be582e520666360a42510ca501f20c354746a0f1dadf61fe29135e3edc867e611bfe60a9405cb2bbce SHA512 9fe4511442eba788d02f932f5e98cfcc5aa4ebed41c00bd7333cf7e3f5de787e458f1f56930978283f041f403652c803143335fe9120ab63a2c113ca7b3f588f +DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73 +DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5 +DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57 +DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36 +DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992 +DIST virtualbox-patches-7.0.8.tar.bz2 2733 BLAKE2B 044dfe02a5bd5e757091318b394b0e5918677b5bbce9caef4a18d4d8df54821559f0df6ffbdd6f52d4934bc4018e9c9d908571c5d3d8804fd3b0f22a7a1aed84 SHA512 93a06aa3f9508d3a8743ca8494a958159b5bc3fd7a0a08ff23414d05c4f31084cf0f1c82a3866e222c83e6996ba004546f0bd33c6eb9a90eec8e548b8b3f2fbf diff --git a/app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch b/app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch index baae66fb081f..41641f2336a5 100644 --- a/app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch +++ b/app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch @@ -2,12 +2,12 @@ https://bugs.gentoo.org/298988 --- a/vboxguest/Makefile +++ b/vboxguest/Makefile -@@ -136,7 +136,7 @@ +@@ -149,7 +149,7 @@ IN_MODULE \ RT_WITH_VBOX \ VBGL_VBOXGUEST \ - VBOX_WITH_HGCM + VBOX_WITH_HGCM LOG_USE_C99 - ifeq ($(BUILD_TARGET_ARCH),amd64) + ifeq ($(VBOX_KBUILD_TARGET_ARCH),amd64) VBOXMOD_DEFS += VBOX_WITH_64_BITS_GUESTS endif diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch new file mode 100644 index 000000000000..459dbef713e9 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch @@ -0,0 +1,242 @@ +Support for kernel 6.8.x. + +https://www.virtualbox.org/changeset/102989/vbox +https://www.virtualbox.org/changeset/102990/vbox +https://www.virtualbox.org/changeset/102992/vbox +https://www.virtualbox.org/changeset/102993/vbox +https://www.virtualbox.org/changeset/102994/vbox + +------------------------------------------------------------------------ +r102989 | vboxsync | 2024-01-22 19:12:25 +0200 (Lu, 22 ian 2024) | 2 lines + +iprt: Add wrapper for strlcpy/strscpy functions, bugref:10584. + + +--- a/include/iprt/string.h ++++ b/include/iprt/string.h +@@ -245,7 +245,29 @@ + # define RT_BCOPY_UNFORTIFIED(a_pDst, a_pSrc, a_cbToCopy) memcpy((a_pDst), (a_pSrc), (a_cbToCopy)) + #endif /* !RT_OS_LINUX && !__KERNEL__ */ + ++/** @def RT_STRSCPY ++ * Copy string and NULL-terminate output buffer. ++ * ++ * This macro should mostly be used in Linux kernel code. This is ++ * the replacement for deprecated strlcpy. It was deprecated since 3.16.60 ++ * when strscpy was introduced as an alternative. Finally, strlcpy was ++ * completely removed from kernel code in 6.8.0. ++ * ++ * @param a_pDst Pointer to the destination string buffer. ++ * @param a_pSrc Pointer to the source NULL-terminated string buffer. ++ * @param a_cbToCopy Size of destination buffer.. ++ */ ++#if defined(RT_OS_LINUX) && defined(__KERNEL__) ++# if (RTLNX_VER_MIN(3,16,60)) ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy)) ++# else /* < 3.16.60 */ ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strlcpy((a_pDst), (a_pSrc), (a_cbToCopy)) ++# endif ++#else /* !RT_OS_LINUX && !__KERNEL__ */ ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy)) ++#endif /* !RT_OS_LINUX && !__KERNEL__ */ + ++ + #ifdef IN_RING3 + + /** + +------------------------------------------------------------------------ +------------------------------------------------------------------------ +r102990 | vboxsync | 2024-01-22 19:13:50 +0200 (Lu, 22 ian 2024) | 2 lines + +Additions: Linux: Introduce initial support for kernel 6.8, bugref:10584. + + +--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c ++++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c +@@ -1410,7 +1410,7 @@ + RTLogGroupSettings(pLogger, pszValue); + } + else if (pParam->name[0] != 'd') +- strlcpy(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp)); ++ RT_STRSCPY(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp)); + + return 0; + } +@@ -1436,7 +1436,7 @@ + RTLogFlags(pLogger, pszValue); + } + else if (pParam->name[0] != 'd') +- strlcpy(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags)); ++ RT_STRSCPY(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags)); + return 0; + } + +@@ -1461,7 +1461,7 @@ + RTLogDestinations(pLogger, pszValue); + } + else if (pParam->name[0] != 'd') +- strlcpy(&g_szLogDst[0], pszValue, sizeof(g_szLogDst)); ++ RT_STRSCPY(&g_szLogDst[0], pszValue, sizeof(g_szLogDst)); + return 0; + } + +--- a/src/VBox/Additions/linux/drm/vbox_drv.h ++++ b/src/VBox/Additions/linux/drm/vbox_drv.h +@@ -538,9 +538,7 @@ + int vbox_irq_init(struct vbox_private *vbox); + void vbox_irq_fini(struct vbox_private *vbox); + void vbox_report_hotplug(struct vbox_private *vbox); +-#if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_MAJ_PREREQ(9,1) && !RTLNX_SUSE_MAJ_PREREQ(15,5) + irqreturn_t vbox_irq_handler(int irq, void *arg); +-#endif + + /* vbox_hgsmi.c */ + void *hgsmi_buffer_alloc(struct gen_pool *guest_pool, size_t size, +--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c ++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c +@@ -1408,7 +1408,7 @@ + switch (opt) { + case Opt_iocharset: + case Opt_nls: +- strlcpy(info->nls_name, param->string, sizeof(info->nls_name)); ++ RT_STRSCPY(info->nls_name, param->string, sizeof(info->nls_name)); + break; + case Opt_uid: + info->uid = result.uint_32; +@@ -1469,7 +1469,7 @@ + printk(KERN_WARNING "vboxsf: cache mode (%u) is out of range, using default instead.\n", result.uint_32); + break; + case Opt_tag: +- strlcpy(info->szTag, param->string, sizeof(info->szTag)); ++ RT_STRSCPY(info->szTag, param->string, sizeof(info->szTag)); + break; + default: + return invalf(fc, "Invalid mount option: '%s'", param->key); +@@ -1528,7 +1528,7 @@ + } + + /* fc->source (the shared folder name) is set after vbsf_init_fs_ctx() */ +- strlcpy(info->name, fc->source, sizeof(info->name)); ++ RT_STRSCPY(info->name, fc->source, sizeof(info->name)); + + # if RTLNX_VER_MAX(5,3,0) + return vfs_get_super(fc, vfs_get_independent_super, vbsf_read_super_aux); +--- a/src/VBox/Additions/linux/sharedfolders/regops.c ++++ b/src/VBox/Additions/linux/sharedfolders/regops.c +@@ -3505,7 +3505,7 @@ + }; + + /** file_operations::mmap wrapper for logging purposes. */ +-extern int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma) ++static int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma) + { + int rc; + SFLOGFLOW(("vbsf_reg_mmap: file=%p vma=%p\n", file, vma)); +@@ -3786,7 +3786,7 @@ + } + + # if RTLNX_VER_MIN(5,19,0) || RTLNX_RHEL_RANGE(9,3, 9,99) +-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos, ++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos, + unsigned len, struct page **pagep, void **fsdata) + { + vbsf_write_begin_warn(pos, len, 0); +@@ -3793,7 +3793,7 @@ + return simple_write_begin(file, mapping, pos, len, pagep, fsdata); + } + # else +-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos, ++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos, + unsigned len, unsigned flags, struct page **pagep, void **fsdata) + { + vbsf_write_begin_warn(pos, len, flags); + +------------------------------------------------------------------------ +------------------------------------------------------------------------ +r102992 | vboxsync | 2024-01-22 19:33:49 +0200 (Lu, 22 ian 2024) | 5 lines + +iprt: Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584. + +Ignore return code of strscpy() in RT_STRSCPY macro sinse we have no caller +who is using it. Also rename macro parameter, so it makes more sense. + + +--- a/include/iprt/string.h ++++ b/include/iprt/string.h +@@ -255,16 +255,16 @@ + * + * @param a_pDst Pointer to the destination string buffer. + * @param a_pSrc Pointer to the source NULL-terminated string buffer. +- * @param a_cbToCopy Size of destination buffer.. ++ * @param a_cbDst Size of destination buffer. + */ + #if defined(RT_OS_LINUX) && defined(__KERNEL__) + # if (RTLNX_VER_MIN(3,16,60)) +-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy)) ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst)) + # else /* < 3.16.60 */ +-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strlcpy((a_pDst), (a_pSrc), (a_cbToCopy)) ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst)) + # endif + #else /* !RT_OS_LINUX && !__KERNEL__ */ +-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy)) ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst)) + #endif /* !RT_OS_LINUX && !__KERNEL__ */ + + + +------------------------------------------------------------------------ +r102993 | vboxsync | 2024-01-22 19:41:44 +0200 (Lu, 22 ian 2024) | 5 lines + +Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584. + +It seem, strscpy was added around 4.3.0. Older kernels probably +have it as a backport. So, stick to 4.3.0. + + +--- a/include/iprt/string.h ++++ b/include/iprt/string.h +@@ -258,7 +258,7 @@ + * @param a_cbDst Size of destination buffer. + */ + #if defined(RT_OS_LINUX) && defined(__KERNEL__) +-# if (RTLNX_VER_MIN(3,16,60)) ++# if (RTLNX_VER_MIN(4,3,0)) + # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst)) + # else /* < 3.16.60 */ + # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst)) + +------------------------------------------------------------------------ +r102994 | vboxsync | 2024-01-22 20:06:29 +0200 (Lu, 22 ian 2024) | 6 lines + +iprt: Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584. + +Another way around to suppress build error when strscpy return status +is not used. Also, turn macro into strlcpy for non-Linux systems, +so for them it will be no change. + + +--- a/include/iprt/string.h ++++ b/include/iprt/string.h +@@ -259,12 +259,16 @@ + */ + #if defined(RT_OS_LINUX) && defined(__KERNEL__) + # if (RTLNX_VER_MIN(4,3,0)) +-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst)) ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) \ ++ { \ ++ ssize_t _ret; \ ++ _ret = strscpy((a_pDst), (a_pSrc), (a_cbDst)); \ ++ } + # else /* < 3.16.60 */ + # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst)) + # endif + #else /* !RT_OS_LINUX && !__KERNEL__ */ +-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst)) ++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst)) + #endif /* !RT_OS_LINUX && !__KERNEL__ */ + + + +------------------------------------------------------------------------ diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch new file mode 100644 index 000000000000..8e53107aedbc --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch @@ -0,0 +1,24 @@ +This file ends up included in +src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp which +is compiled with -ffreestanding, so it shouldn't include math.h + +See also: https://bugs.gentoo.org/907597 + +--- a/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h ++++ b/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h +@@ -169,6 +169,7 @@ + #ifndef IN_MODULE + /* XXX Not for modules */ + #include <limits.h> ++#if defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1 + #if !defined(MAXSHORT) || !defined(MINSHORT) || \ + !defined(MAXINT) || !defined(MININT) + /* +@@ -178,6 +179,7 @@ + + #include <math.h> + #endif ++#endif // defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1 + #undef MAXSHORT + #define MAXSHORT SHRT_MAX + #undef MINSHORT diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1 index 3af22dbfa49e..17c90bb9d819 100644 --- a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd +++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1 @@ -1,5 +1,5 @@ #!/sbin/openrc-run -# Copyright 1999-2016 Gentoo Foundation +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 pidfile="/var/run/vboxguest-service.pid" @@ -9,7 +9,7 @@ command_background="true" depend() { need dbus localmount - before xdm + before display-manager } start_pre() { diff --git a/app-emulation/virtualbox-guest-additions/metadata.xml b/app-emulation/virtualbox-guest-additions/metadata.xml index 8dafc466cde2..498143329fed 100644 --- a/app-emulation/virtualbox-guest-additions/metadata.xml +++ b/app-emulation/virtualbox-guest-additions/metadata.xml @@ -1,9 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>polynomial-c@gentoo.org</email> - <name>Lars Wendler</name> + <email>ceamac@gentoo.org</email> + <name>Viorel Munteanu</name> </maintainer> - </pkgmetadata> - +</pkgmetadata> diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild deleted file mode 100644 index 24c3f7e1b184..000000000000 --- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild +++ /dev/null @@ -1,221 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit linux-mod systemd toolchain-funcs - -MY_PN="VirtualBox" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P="${MY_PN}-${MY_PV}" -[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" - -DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.12-patches-01.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64 ~x86" -IUSE="X" - -# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist -RDEPEND=" - acct-group/vboxguest - acct-group/vboxsf - acct-user/vboxguest - X? ( x11-apps/xrandr - x11-apps/xrefresh - x11-libs/libXmu - x11-libs/libX11 - x11-libs/libXt - x11-libs/libXext - x11-libs/libXau - x11-libs/libXdmcp - x11-libs/libSM - x11-libs/libICE ) - sys-apps/dbus -" -DEPEND=" - ${RDEPEND} - >=dev-util/kbuild-0.1.9998.3127 - >=dev-lang/yasm-0.6.2 - sys-devel/bin86 - sys-libs/pam - sys-power/iasl - x11-base/xorg-proto -" -PDEPEND=" - X? ( x11-drivers/xf86-video-vboxvideo ) -" -BUILD_TARGETS="all" -BUILD_TARGET_ARCH="${ARCH}" - -S="${WORKDIR}/${MY_PN}-${DIR_PV:-${PV}}" -VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src" - -pkg_setup() { - export DISTCC_DISABLE=1 #674256 - MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest) - vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)" - use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)" - - linux-mod_pkg_setup - BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers" -} - -src_prepare() { - # Remove shipped binaries (kBuild,yasm), see bug #232775 - rm -r kBuild/bin tools || die - - # Provide kernel sources - pushd src/VBox/Additions &>/dev/null || die - ebegin "Extracting guest kernel module sources" - kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die - eend - popd &>/dev/null || die - - # PaX fixes (see bug #298988) - pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die - eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch - popd &>/dev/null || die - - # Disable things unused or splitted into separate ebuilds - cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die - use X || echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk - - # Remove pointless GCC version check - sed -e '/^check_gcc$/d' -i configure || die - - eapply "${WORKDIR}/patches" - - eapply_user -} - -src_configure() { - # build the user-space tools, warnings are harmless - local cmd=( - ./configure - --nofatal - --disable-xpcom - --disable-sdl-ttf - --disable-pulse - --disable-alsa - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" - --target-arch=${ARCH} - --with-linux="${KV_OUT_DIR}" - --build-headless - ) - echo "${cmd[@]}" - "${cmd[@]}" || die "configure failed" - source ./env.sh - export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}" -} - -src_compile() { - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm \ - VBOX_ONLY_ADDITIONS=1 \ - KBUILD_VERBOSE=2 - - # Now creating the kernel modules. We must do this _after_ - # we compiled the user-space tools as we need two of the - # automatically generated header files. (>=3.2.0) - linux-mod_src_compile -} - -src_install() { - linux-mod_src_install - - cd "${S}"/out/linux.${ARCH}/release/bin/additions || die - - insinto /sbin - newins mount.vboxsf mount.vboxsf - fperms 4755 /sbin/mount.vboxsf - - newinitd "${FILESDIR}"/${PN}-8.initd ${PN} - - insinto /usr/sbin/ - newins VBoxService vboxguest-service - fperms 0755 /usr/sbin/vboxguest-service - - insinto /usr/bin - doins VBoxControl - fperms 0755 /usr/bin/VBoxControl - - # VBoxClient user service and xrandr wrapper - if use X ; then - doins VBoxClient - fperms 0755 /usr/bin/VBoxClient - - pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \ - || die - newins 98vboxadd-xclient VBoxClient-all - fperms 0755 /usr/bin/VBoxClient-all - popd &>/dev/null || die - fi - - # udev rule for vboxdrv - local udev_rules_dir="/lib/udev/rules.d" - dodir ${udev_rules_dir} - echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ - >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ - || die - echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ - >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ - || die - - # VBoxClient autostart file - insinto /etc/xdg/autostart - doins "${FILESDIR}"/vboxclient.desktop - - # sample xorg.conf - dodoc "${FILESDIR}"/xorg.conf.vbox - docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox - - systemd_dounit "${FILESDIR}/${PN}.service" -} - -pkg_postinst() { - linux-mod_pkg_postinst - if ! use X ; then - elog "use flag X is off, enable it to install the" - elog "X Window System video driver." - fi - elog "" - elog "Please add users to the \"vboxguest\" group so they can" - elog "benefit from seamless mode, auto-resize and clipboard." - elog "" - elog "The vboxsf group has been added to make automount services work." - elog "These services are part of the shared folders support." - elog "" - elog "Please add:" - elog "/etc/init.d/${PN}" - elog "to the default runlevel in order to start" - elog "needed services." - elog "To use the VirtualBox X driver, use the following" - elog "file as your /etc/X11/xorg.conf:" - elog " /usr/share/doc/${PF}/xorg.conf.vbox" - elog "" - elog "Also make sure you use the Mesa library for OpenGL:" - elog " eselect opengl set xorg-x11" - elog "" - elog "An autostart .desktop file has been installed to start" - elog "VBoxClient in desktop sessions." - elog "" - elog "You can mount shared folders with:" - elog " mount -t vboxsf <shared_folder_name> <mount_point>" - elog "" - elog "Warning:" - elog "this ebuild is only needed if you are running gentoo" - elog "inside a VirtualBox Virtual Machine, you don't need" - elog "it to run VirtualBox itself." - elog "" -} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild deleted file mode 100644 index 24c3f7e1b184..000000000000 --- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild +++ /dev/null @@ -1,221 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit linux-mod systemd toolchain-funcs - -MY_PN="VirtualBox" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P="${MY_PN}-${MY_PV}" -[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" - -DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.12-patches-01.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64 ~x86" -IUSE="X" - -# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist -RDEPEND=" - acct-group/vboxguest - acct-group/vboxsf - acct-user/vboxguest - X? ( x11-apps/xrandr - x11-apps/xrefresh - x11-libs/libXmu - x11-libs/libX11 - x11-libs/libXt - x11-libs/libXext - x11-libs/libXau - x11-libs/libXdmcp - x11-libs/libSM - x11-libs/libICE ) - sys-apps/dbus -" -DEPEND=" - ${RDEPEND} - >=dev-util/kbuild-0.1.9998.3127 - >=dev-lang/yasm-0.6.2 - sys-devel/bin86 - sys-libs/pam - sys-power/iasl - x11-base/xorg-proto -" -PDEPEND=" - X? ( x11-drivers/xf86-video-vboxvideo ) -" -BUILD_TARGETS="all" -BUILD_TARGET_ARCH="${ARCH}" - -S="${WORKDIR}/${MY_PN}-${DIR_PV:-${PV}}" -VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src" - -pkg_setup() { - export DISTCC_DISABLE=1 #674256 - MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest) - vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)" - use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)" - - linux-mod_pkg_setup - BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers" -} - -src_prepare() { - # Remove shipped binaries (kBuild,yasm), see bug #232775 - rm -r kBuild/bin tools || die - - # Provide kernel sources - pushd src/VBox/Additions &>/dev/null || die - ebegin "Extracting guest kernel module sources" - kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die - eend - popd &>/dev/null || die - - # PaX fixes (see bug #298988) - pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die - eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch - popd &>/dev/null || die - - # Disable things unused or splitted into separate ebuilds - cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die - use X || echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk - - # Remove pointless GCC version check - sed -e '/^check_gcc$/d' -i configure || die - - eapply "${WORKDIR}/patches" - - eapply_user -} - -src_configure() { - # build the user-space tools, warnings are harmless - local cmd=( - ./configure - --nofatal - --disable-xpcom - --disable-sdl-ttf - --disable-pulse - --disable-alsa - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" - --target-arch=${ARCH} - --with-linux="${KV_OUT_DIR}" - --build-headless - ) - echo "${cmd[@]}" - "${cmd[@]}" || die "configure failed" - source ./env.sh - export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}" -} - -src_compile() { - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm \ - VBOX_ONLY_ADDITIONS=1 \ - KBUILD_VERBOSE=2 - - # Now creating the kernel modules. We must do this _after_ - # we compiled the user-space tools as we need two of the - # automatically generated header files. (>=3.2.0) - linux-mod_src_compile -} - -src_install() { - linux-mod_src_install - - cd "${S}"/out/linux.${ARCH}/release/bin/additions || die - - insinto /sbin - newins mount.vboxsf mount.vboxsf - fperms 4755 /sbin/mount.vboxsf - - newinitd "${FILESDIR}"/${PN}-8.initd ${PN} - - insinto /usr/sbin/ - newins VBoxService vboxguest-service - fperms 0755 /usr/sbin/vboxguest-service - - insinto /usr/bin - doins VBoxControl - fperms 0755 /usr/bin/VBoxControl - - # VBoxClient user service and xrandr wrapper - if use X ; then - doins VBoxClient - fperms 0755 /usr/bin/VBoxClient - - pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \ - || die - newins 98vboxadd-xclient VBoxClient-all - fperms 0755 /usr/bin/VBoxClient-all - popd &>/dev/null || die - fi - - # udev rule for vboxdrv - local udev_rules_dir="/lib/udev/rules.d" - dodir ${udev_rules_dir} - echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ - >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ - || die - echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ - >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ - || die - - # VBoxClient autostart file - insinto /etc/xdg/autostart - doins "${FILESDIR}"/vboxclient.desktop - - # sample xorg.conf - dodoc "${FILESDIR}"/xorg.conf.vbox - docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox - - systemd_dounit "${FILESDIR}/${PN}.service" -} - -pkg_postinst() { - linux-mod_pkg_postinst - if ! use X ; then - elog "use flag X is off, enable it to install the" - elog "X Window System video driver." - fi - elog "" - elog "Please add users to the \"vboxguest\" group so they can" - elog "benefit from seamless mode, auto-resize and clipboard." - elog "" - elog "The vboxsf group has been added to make automount services work." - elog "These services are part of the shared folders support." - elog "" - elog "Please add:" - elog "/etc/init.d/${PN}" - elog "to the default runlevel in order to start" - elog "needed services." - elog "To use the VirtualBox X driver, use the following" - elog "file as your /etc/X11/xorg.conf:" - elog " /usr/share/doc/${PF}/xorg.conf.vbox" - elog "" - elog "Also make sure you use the Mesa library for OpenGL:" - elog " eselect opengl set xorg-x11" - elog "" - elog "An autostart .desktop file has been installed to start" - elog "VBoxClient in desktop sessions." - elog "" - elog "You can mount shared folders with:" - elog " mount -t vboxsf <shared_folder_name> <mount_point>" - elog "" - elog "Warning:" - elog "this ebuild is only needed if you are running gentoo" - elog "inside a VirtualBox Virtual Machine, you don't need" - elog "it to run VirtualBox itself." - elog "" -} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.24-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.48.ebuild index 43d5a64becc6..fe43f7ac3ca9 100644 --- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.24-r1.ebuild +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.48.ebuild @@ -1,84 +1,86 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit linux-mod systemd toolchain-funcs +inherit edo linux-mod-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P="VirtualBox-${MY_PV}" DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.0.24-patches-01.tar.xz" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ +SLOT="0/$(ver_cut 1-2)" KEYWORDS="amd64 x86" -IUSE="X" +IUSE="X +dbus" # automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist RDEPEND=" acct-group/vboxguest acct-group/vboxsf acct-user/vboxguest - X? ( x11-apps/xrandr + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + X? ( + x11-apps/xrandr x11-apps/xrefresh - x11-libs/libXmu x11-libs/libX11 - x11-libs/libXt x11-libs/libXext - x11-libs/libXau - x11-libs/libXdmcp - x11-libs/libSM - x11-libs/libICE ) - sys-apps/dbus + x11-libs/libXmu + x11-libs/libXt + ) " DEPEND=" ${RDEPEND} - >=dev-util/kbuild-0.1.9998.3127 + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + ) +" +BDEPEND=" + >=dev-build/kbuild-0.1.9998.3127 + <=dev-build/kbuild-0.1.9998.3500 >=dev-lang/yasm-0.6.2 sys-devel/bin86 - sys-libs/pam sys-power/iasl - x11-base/xorg-proto " PDEPEND=" X? ( x11-drivers/xf86-video-vboxvideo ) " -BUILD_TARGETS="all" -BUILD_TARGET_ARCH="${ARCH}" -S="${WORKDIR}/${MY_P}" -VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src" +PATCHES=( + "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch +) -pkg_setup() { - export DISTCC_DISABLE=1 #674256 - MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest) - vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)" - use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)" +DOCS=() # Don't install the default README file during einstalldocs - linux-mod_pkg_setup - BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers" -} +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="DRM_TTM" src_prepare() { + eapply "${PATCHES[@]}" + # Remove shipped binaries (kBuild,yasm), see bug #232775 rm -r kBuild/bin tools || die # Provide kernel sources pushd src/VBox/Additions &>/dev/null || die ebegin "Extracting guest kernel module sources" - kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die - eend + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die popd &>/dev/null || die # PaX fixes (see bug #298988) - pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die - eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch - popd &>/dev/null || die + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch # Disable things unused or splitted into separate ebuilds cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die @@ -87,57 +89,122 @@ src_prepare() { # Remove pointless GCC version check sed -e '/^check_gcc$/d' -i configure || die - eapply "${WORKDIR}/patches" + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk + eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches" eapply_user } src_configure() { - # build the user-space tools, warnings are harmless - local cmd=( - ./configure + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + --nofatal --disable-xpcom --disable-sdl-ttf --disable-pulse --disable-alsa - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" + $(usev !dbus --disable-dbus) --target-arch=${ARCH} --with-linux="${KV_OUT_DIR}" --build-headless ) - echo "${cmd[@]}" - "${cmd[@]}" || die "configure failed" - source ./env.sh - export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}" + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" } src_compile() { - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm \ - VBOX_ONLY_ADDITIONS=1 \ - KBUILD_VERBOSE=2 + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" # Now creating the kernel modules. We must do this _after_ # we compiled the user-space tools as we need two of the # automatically generated header files. (>=3.2.0) - linux-mod_src_compile + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use X && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile } src_install() { - linux-mod_src_install + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF - cd "${S}"/out/linux.${ARCH}/release/bin/additions || die + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die insinto /sbin newins mount.vboxsf mount.vboxsf fperms 4755 /sbin/mount.vboxsf - newinitd "${FILESDIR}"/${PN}-8.initd ${PN} + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi insinto /usr/sbin/ newins VBoxService vboxguest-service @@ -151,9 +218,10 @@ src_install() { if use X ; then doins VBoxClient fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient - pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \ - || die + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die newins 98vboxadd-xclient VBoxClient-all fperms 0755 /usr/bin/VBoxClient-all popd &>/dev/null || die @@ -181,7 +249,8 @@ src_install() { } pkg_postinst() { - linux-mod_pkg_postinst + linux-mod-r1_pkg_postinst + udev_reload if ! use X ; then elog "use flag X is off, enable it to install the" elog "X Window System video driver." @@ -201,9 +270,6 @@ pkg_postinst() { elog "file as your /etc/X11/xorg.conf:" elog " /usr/share/doc/${PF}/xorg.conf.vbox" elog "" - elog "Also make sure you use the Mesa library for OpenGL:" - elog " eselect opengl set xorg-x11" - elog "" elog "An autostart .desktop file has been installed to start" elog "VBoxClient in desktop sessions." elog "" @@ -216,3 +282,7 @@ pkg_postinst() { elog "it to run VirtualBox itself." elog "" } + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild new file mode 100644 index 000000000000..60c236597e5a --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild @@ -0,0 +1,292 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="X +dbus" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + X? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +DEPEND=" + ${RDEPEND} + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + ) +" +BDEPEND=" + >=dev-build/kbuild-0.1.9998.3127 + <=dev-build/kbuild-0.1.9998.3500 + >=dev-lang/yasm-0.6.2 + sys-devel/bin86 + sys-power/iasl +" + +PATCHES=( + "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch +) + +DOCS=() # Don't install the default README file during einstalldocs + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX" +WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver." +WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA." + +DOC_CONTENTS="\n +Please add users to the \"vboxguest\" group so they can\n +benefit from seamless mode, auto-resize and clipboard.\n +\n +The vboxsf group has been added to make automount services work.\n +These services are part of the shared folders support.\n +\n +Please add:\n + /etc/init.d/virtualbox-guest-additions\n +to the default runlevel in order to start\n +needed services.\n +\n +An autostart .desktop file has been installed to start\n +VBoxClient in desktop sessions.\n +\n +You can mount shared folders with:\n + mount -t vboxsf <shared_folder_name> <mount_point>\n +\n +Warning:\n + this ebuild is only needed if you are running gentoo\n + inside a VirtualBox Virtual Machine, you don't need\n + it to run VirtualBox itself.\n +\n" + +src_prepare() { + eapply "${PATCHES[@]}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use X; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/^check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use X && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use X ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" + + readme.gentoo_create_doc +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + + if ! use X ; then + elog "The use flag \"X\" is off, enable it to install the" + elog "X Window System drivers and integration." + fi + + readme.gentoo_print_elog +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.16.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild index 24c3f7e1b184..346c45fc35e9 100644 --- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.16.ebuild +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild @@ -1,87 +1,86 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit linux-mod systemd toolchain-funcs +inherit edo linux-mod-r1 systemd toolchain-funcs udev MY_PN="VirtualBox" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P="${MY_PN}-${MY_PV}" -[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" +MY_P="${MY_PN}-${PV}" DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.12-patches-01.tar.xz" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ +SLOT="0/$(ver_cut 1-2)" KEYWORDS="~amd64 ~x86" -IUSE="X" +IUSE="X +dbus" # automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist RDEPEND=" acct-group/vboxguest acct-group/vboxsf acct-user/vboxguest - X? ( x11-apps/xrandr + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + X? ( + x11-apps/xrandr x11-apps/xrefresh - x11-libs/libXmu x11-libs/libX11 - x11-libs/libXt x11-libs/libXext - x11-libs/libXau - x11-libs/libXdmcp - x11-libs/libSM - x11-libs/libICE ) - sys-apps/dbus + x11-libs/libXmu + x11-libs/libXt + ) " DEPEND=" ${RDEPEND} - >=dev-util/kbuild-0.1.9998.3127 + X? ( + x11-base/xorg-proto + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + ) +" +BDEPEND=" + >=dev-build/kbuild-0.1.9998.3127 + <=dev-build/kbuild-0.1.9998.3500 >=dev-lang/yasm-0.6.2 sys-devel/bin86 - sys-libs/pam sys-power/iasl - x11-base/xorg-proto " PDEPEND=" X? ( x11-drivers/xf86-video-vboxvideo ) " -BUILD_TARGETS="all" -BUILD_TARGET_ARCH="${ARCH}" -S="${WORKDIR}/${MY_PN}-${DIR_PV:-${PV}}" -VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src" +PATCHES=( + "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch +) -pkg_setup() { - export DISTCC_DISABLE=1 #674256 - MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest) - vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)" - use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)" +DOCS=() # Don't install the default README file during einstalldocs - linux-mod_pkg_setup - BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers" -} +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="DRM_TTM" src_prepare() { + eapply "${PATCHES[@]}" + # Remove shipped binaries (kBuild,yasm), see bug #232775 rm -r kBuild/bin tools || die # Provide kernel sources pushd src/VBox/Additions &>/dev/null || die ebegin "Extracting guest kernel module sources" - kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die - eend + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die popd &>/dev/null || die # PaX fixes (see bug #298988) - pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die - eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch - popd &>/dev/null || die + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch # Disable things unused or splitted into separate ebuilds cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die @@ -90,57 +89,122 @@ src_prepare() { # Remove pointless GCC version check sed -e '/^check_gcc$/d' -i configure || die - eapply "${WORKDIR}/patches" + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk + eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches" eapply_user } src_configure() { - # build the user-space tools, warnings are harmless - local cmd=( - ./configure + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + --nofatal --disable-xpcom --disable-sdl-ttf --disable-pulse --disable-alsa - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" + $(usev !dbus --disable-dbus) --target-arch=${ARCH} --with-linux="${KV_OUT_DIR}" --build-headless ) - echo "${cmd[@]}" - "${cmd[@]}" || die "configure failed" - source ./env.sh - export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}" + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" } src_compile() { - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm \ - VBOX_ONLY_ADDITIONS=1 \ - KBUILD_VERBOSE=2 + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" # Now creating the kernel modules. We must do this _after_ # we compiled the user-space tools as we need two of the # automatically generated header files. (>=3.2.0) - linux-mod_src_compile + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use X && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile } src_install() { - linux-mod_src_install + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF - cd "${S}"/out/linux.${ARCH}/release/bin/additions || die + cd out/linux.${ARCH}/release/bin/additions || die insinto /sbin newins mount.vboxsf mount.vboxsf fperms 4755 /sbin/mount.vboxsf - newinitd "${FILESDIR}"/${PN}-8.initd ${PN} + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi insinto /usr/sbin/ newins VBoxService vboxguest-service @@ -154,9 +218,10 @@ src_install() { if use X ; then doins VBoxClient fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient - pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \ - || die + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die newins 98vboxadd-xclient VBoxClient-all fperms 0755 /usr/bin/VBoxClient-all popd &>/dev/null || die @@ -184,7 +249,8 @@ src_install() { } pkg_postinst() { - linux-mod_pkg_postinst + linux-mod-r1_pkg_postinst + udev_reload if ! use X ; then elog "use flag X is off, enable it to install the" elog "X Window System video driver." @@ -204,9 +270,6 @@ pkg_postinst() { elog "file as your /etc/X11/xorg.conf:" elog " /usr/share/doc/${PF}/xorg.conf.vbox" elog "" - elog "Also make sure you use the Mesa library for OpenGL:" - elog " eselect opengl set xorg-x11" - elog "" elog "An autostart .desktop file has been installed to start" elog "VBoxClient in desktop sessions." elog "" @@ -219,3 +282,7 @@ pkg_postinst() { elog "it to run VirtualBox itself." elog "" } + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild new file mode 100644 index 000000000000..52388f674103 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild @@ -0,0 +1,294 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.8.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64 x86" +IUSE="+dbus gui" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +# TODO: find out what this is, remove comment if obsolete + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +DEPEND=" + ${RDEPEND} + gui? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto + ) +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-build/kbuild-0.1.9998.3127 + sys-devel/bin86 + sys-power/iasl +" +PDEPEND=" + gui? ( x11-drivers/xf86-video-vboxvideo ) +" + +PATCHES=( + "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch +) + +DOCS=() # Don't install the default README file during einstalldocs + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="DRM_TTM" + +src_prepare() { + eapply "${PATCHES[@]}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use gui; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/ check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-7.0.8/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use gui && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use gui ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + if ! use gui ; then + elog "use flag gui is off, enable it to install the" + elog "X Window System video driver." + fi + elog "" + elog "Please add users to the \"vboxguest\" group so they can" + elog "benefit from seamless mode, auto-resize and clipboard." + elog "" + elog "The vboxsf group has been added to make automount services work." + elog "These services are part of the shared folders support." + elog "" + elog "Please add:" + elog "/etc/init.d/${PN}" + elog "to the default runlevel in order to start" + elog "needed services." + elog "To use the VirtualBox X driver, use the following" + elog "file as your /etc/X11/xorg.conf:" + elog " /usr/share/doc/${PF}/xorg.conf.vbox" + elog "" + elog "An autostart .desktop file has been installed to start" + elog "VBoxClient in desktop sessions." + elog "" + elog "You can mount shared folders with:" + elog " mount -t vboxsf <shared_folder_name> <mount_point>" + elog "" + elog "Warning:" + elog "this ebuild is only needed if you are running gentoo" + elog "inside a VirtualBox Virtual Machine, you don't need" + elog "it to run VirtualBox itself." + elog "" +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild new file mode 100644 index 000000000000..ca8e8a155d26 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild @@ -0,0 +1,294 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +# TODO: find out what this is, remove comment if obsolete + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +DEPEND=" + ${RDEPEND} + gui? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto + ) +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-build/kbuild-0.1.9998.3127 + sys-devel/bin86 + sys-power/iasl +" +PDEPEND=" + gui? ( x11-drivers/xf86-video-vboxvideo ) +" + +PATCHES=( + "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch +) + +DOCS=() # Don't install the default README file during einstalldocs + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="DRM_TTM" + +src_prepare() { + eapply "${PATCHES[@]}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use gui; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/ check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use gui && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use gui ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + if ! use gui ; then + elog "use flag gui is off, enable it to install the" + elog "X Window System video driver." + fi + elog "" + elog "Please add users to the \"vboxguest\" group so they can" + elog "benefit from seamless mode, auto-resize and clipboard." + elog "" + elog "The vboxsf group has been added to make automount services work." + elog "These services are part of the shared folders support." + elog "" + elog "Please add:" + elog "/etc/init.d/${PN}" + elog "to the default runlevel in order to start" + elog "needed services." + elog "To use the VirtualBox X driver, use the following" + elog "file as your /etc/X11/xorg.conf:" + elog " /usr/share/doc/${PF}/xorg.conf.vbox" + elog "" + elog "An autostart .desktop file has been installed to start" + elog "VBoxClient in desktop sessions." + elog "" + elog "You can mount shared folders with:" + elog " mount -t vboxsf <shared_folder_name> <mount_point>" + elog "" + elog "Warning:" + elog "this ebuild is only needed if you are running gentoo" + elog "inside a VirtualBox Virtual Machine, you don't need" + elog "it to run VirtualBox itself." + elog "" +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild new file mode 100644 index 000000000000..80b4916cfe74 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild @@ -0,0 +1,295 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +# TODO: find out what this is, remove comment if obsolete + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +DEPEND=" + ${RDEPEND} + gui? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto + ) +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-build/kbuild-0.1.9998.3127 + sys-devel/bin86 + sys-power/iasl +" +PDEPEND=" + gui? ( x11-drivers/xf86-video-vboxvideo ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.8-fix-gcc13.patch + "${FILESDIR}"/${PN}-7.0.14-kernel-6.8.patch +) + +DOCS=() # Don't install the default README file during einstalldocs + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="DRM_TTM" + +src_prepare() { + eapply "${PATCHES[@]}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use gui; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/ check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use gui && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use gui ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + if ! use gui ; then + elog "use flag gui is off, enable it to install the" + elog "X Window System video driver." + fi + elog "" + elog "Please add users to the \"vboxguest\" group so they can" + elog "benefit from seamless mode, auto-resize and clipboard." + elog "" + elog "The vboxsf group has been added to make automount services work." + elog "These services are part of the shared folders support." + elog "" + elog "Please add:" + elog "/etc/init.d/${PN}" + elog "to the default runlevel in order to start" + elog "needed services." + elog "To use the VirtualBox X driver, use the following" + elog "file as your /etc/X11/xorg.conf:" + elog " /usr/share/doc/${PF}/xorg.conf.vbox" + elog "" + elog "An autostart .desktop file has been installed to start" + elog "VBoxClient in desktop sessions." + elog "" + elog "You can mount shared folders with:" + elog " mount -t vboxsf <shared_folder_name> <mount_point>" + elog "" + elog "Warning:" + elog "this ebuild is only needed if you are running gentoo" + elog "inside a VirtualBox Virtual Machine, you don't need" + elog "it to run VirtualBox itself." + elog "" +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild new file mode 100644 index 000000000000..92c9fb95c5c6 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild @@ -0,0 +1,297 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +# TODO: find out what this is, remove comment if obsolete + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +DEPEND=" + ${RDEPEND} + gui? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto + ) +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-build/kbuild-0.1.9998.3127 + sys-devel/bin86 + sys-power/iasl +" + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.8-fix-gcc13.patch + "${FILESDIR}"/${PN}-7.0.14-kernel-6.8.patch +) + +DOCS=() # Don't install the default README file during einstalldocs + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX" +WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver." +WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA." + +DOC_CONTENTS="\n +Please add users to the \"vboxguest\" group so they can\n +benefit from seamless mode, auto-resize and clipboard.\n +\n +The vboxsf group has been added to make automount services work.\n +These services are part of the shared folders support.\n +\n +Please add:\n + /etc/init.d/virtualbox-guest-additions\n +to the default runlevel in order to start\n +needed services.\n +\n +An autostart .desktop file has been installed to start\n +VBoxClient in desktop sessions.\n +\n +You can mount shared folders with:\n + mount -t vboxsf <shared_folder_name> <mount_point>\n +\n +Warning:\n + this ebuild is only needed if you are running gentoo\n + inside a VirtualBox Virtual Machine, you don't need\n + it to run VirtualBox itself.\n +\n" + +src_prepare() { + eapply "${PATCHES[@]}" + + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use gui; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/ check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use gui && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use gui ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" + + readme.gentoo_create_doc +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + + if ! use gui ; then + elog "The use flag \"gui\" is off, enable it to install the" + elog "X Window System drivers and integration." + fi + + readme.gentoo_print_elog +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.16.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.16.ebuild new file mode 100644 index 000000000000..f704b0857188 --- /dev/null +++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.16.ebuild @@ -0,0 +1,290 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev + +MY_PN="VirtualBox" +MY_P="${MY_PN}-${PV}" + +DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild +LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64 ~x86" +IUSE="+dbus gui" + +# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist +# TODO: find out what this is, remove comment if obsolete + +RDEPEND=" + acct-group/vboxguest + acct-group/vboxsf + acct-user/vboxguest + sys-libs/pam + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + x11-apps/xrandr + x11-apps/xrefresh + x11-libs/libX11 + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + ) +" +# some libs here are indirect dependencies, and also needed at compile time. +# keeping them in DEPEND to avoid warnings from qa-vdb. +DEPEND=" + ${RDEPEND} + gui? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXau + x11-libs/libXdmcp + x11-base/xorg-proto + ) +" +BDEPEND=" + >=dev-lang/yasm-0.6.2 + >=dev-build/kbuild-0.1.9998.3127 + sys-devel/bin86 + sys-power/iasl +" + +DOCS=() # Don't install the default README file during einstalldocs + +VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src" +CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX" +WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver." +WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA." + +DOC_CONTENTS="\n +Please add users to the \"vboxguest\" group so they can\n +benefit from seamless mode, auto-resize and clipboard.\n +\n +The vboxsf group has been added to make automount services work.\n +These services are part of the shared folders support.\n +\n +Please add:\n + /etc/init.d/virtualbox-guest-additions\n +to the default runlevel in order to start\n +needed services.\n +\n +An autostart .desktop file has been installed to start\n +VBoxClient in desktop sessions.\n +\n +You can mount shared folders with:\n + mount -t vboxsf <shared_folder_name> <mount_point>\n +\n +Warning:\n + this ebuild is only needed if you are running gentoo\n + inside a VirtualBox Virtual Machine, you don't need\n + it to run VirtualBox itself.\n +\n" + +src_prepare() { + # Remove shipped binaries (kBuild,yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Provide kernel sources + pushd src/VBox/Additions &>/dev/null || die + ebegin "Extracting guest kernel module sources" + kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null + eend $? || die + popd &>/dev/null || die + + # PaX fixes (see bug #298988) + eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch + + # Disable things unused or splitted into separate ebuilds + cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die + if ! use gui; then + echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die + fi + + # Remove pointless GCC version check + sed -e '/ check_gcc$/d' -i configure || die + + # Respect LDFLAGS (bug #759100) + sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die + + eapply "${WORKDIR}/virtualbox-patches-7.0.16/patches" + eapply_user +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + + # Build the user-space tools, warnings are harmless + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --nofatal + --disable-xpcom + --disable-sdl-ttf + --disable-pulse + --disable-alsa + $(usev !dbus --disable-dbus) + --target-arch=${ARCH} + --with-linux="${KV_OUT_DIR}" + --build-headless + ) + + # bug #843437 + # Respect LDFLAGS (bug #759100) + # Cannot use LDFLAGS here because they also get passed to $(LD) + cat >> LocalConfig.kmk <<-EOF || die + CFLAGS=${CFLAGS} + CXXFLAGS=${CXXFLAGS} + CCLDFLAGS=${LDFLAGS} + EOF + + edo ./configure "${myconf[@]}" +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_ONLY_ADDITIONS=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + LD="$(tc-getCC)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_CXX="$(tc-getCXX)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + TOOL_YASM_AS=yasm + ) + + MAKE="kmk" emake "${myemakeargs[@]}" + + # Now creating the kernel modules. We must do this _after_ + # we compiled the user-space tools as we need two of the + # automatically generated header files. (>=3.2.0) + # Move this here for bug 836037 + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + local modlist=( vboxguest vboxsf ) + use gui && modlist+=( vboxvideo ) + modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + + insinto /etc/modprobe.d # 485996 + newins - vboxsf.conf <<-EOF + # modprobe.d configuration file for VBOXSF + + # Internal Aliases - Do not edit + # ------------------------------ + alias fs-vboxsf vboxsf + EOF + + cd out/linux.${ARCH}/release/bin/additions || die + + insinto /sbin + newins mount.vboxsf mount.vboxsf + fperms 4755 /sbin/mount.vboxsf + + if use dbus; then + newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN} + else + newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN} + fi + + insinto /usr/sbin/ + newins VBoxService vboxguest-service + fperms 0755 /usr/sbin/vboxguest-service + + insinto /usr/bin + doins VBoxControl + fperms 0755 /usr/bin/VBoxControl + + # VBoxClient user service and xrandr wrapper + if use gui ; then + doins VBoxClient + fperms 0755 /usr/bin/VBoxClient + doins VBoxDRMClient + fperms 4755 /usr/bin/VBoxDRMClient + + pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die + newins 98vboxadd-xclient VBoxClient-all + fperms 0755 /usr/bin/VBoxClient-all + popd &>/dev/null || die + fi + + # udev rule for vboxdrv + local udev_rules_dir="/lib/udev/rules.d" + dodir ${udev_rules_dir} + echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \ + >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \ + || die + + # VBoxClient autostart file + insinto /etc/xdg/autostart + doins "${FILESDIR}"/vboxclient.desktop + + # sample xorg.conf + dodoc "${FILESDIR}"/xorg.conf.vbox + docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox + + systemd_dounit "${FILESDIR}/${PN}.service" + + readme.gentoo_create_doc +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + udev_reload + + if ! use gui ; then + elog "The use flag \"gui\" is off, enable it to install the" + elog "X Window System drivers and integration." + fi + + readme.gentoo_print_elog +} + +pkg_postrm() { + udev_reload +} diff --git a/app-emulation/virtualbox-kvm/Manifest b/app-emulation/virtualbox-kvm/Manifest new file mode 100644 index 000000000000..d5721453e7b7 --- /dev/null +++ b/app-emulation/virtualbox-kvm/Manifest @@ -0,0 +1,8 @@ +DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73 +DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5 +DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03 +DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c +DIST virtualbox-kvm-7.0.14_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494 +DIST virtualbox-kvm-7.0.16_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494 +DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36 +DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992 diff --git a/app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch b/app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch new file mode 100644 index 000000000000..35bd8e0a705e --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch @@ -0,0 +1,147 @@ +diff -Naur VirtualBox-5.1.24/Config.kmk VirtualBox-5.1.24/Config.kmk +--- VirtualBox-5.1.24/Config.kmk 2017-07-26 13:55:27.803972185 -0400 ++++ VirtualBox-5.1.24/Config.kmk 2017-07-26 13:53:10.700974328 -0400 +@@ -2601,6 +2601,7 @@ + $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-overlength-strings?= $(call VBOX_GCC_CHECK_CC,-Wno-overlength-strings,)' + $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-overloaded-virtual?= $(call VBOX_GCC_CHECK_CXX,-Wno-overloaded-virtual,)' + $(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-stack-protector ?= $(call VBOX_GCC_CHECK_CC,-fno-stack-protector,)' ++ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_nopie ?= $(call VBOX_GCC_CHECK_CC,-nopie,)' + $(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-dwarf2-cfi-asm ?= $(call VBOX_GCC_CHECK_CC,-fno-dwarf2-cfi-asm,)' + $(QUIET)$(APPEND) '$@' 'VBOX_GCC_m64 ?= $(call VBOX_GCC_CHECK_CC,-m64,)' + $(QUIET)$(APPEND) '$@' 'VBOX_GCC_no-pie ?= $(call VBOX_GCC_CHECK_CC,-no-pie,)' +@@ -3843,8 +3844,8 @@ + + ifeq ($(VBOX_LDR_FMT32),elf) + TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC32_TOOL) +- TEMPLATE_VBoxRc_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) +- TEMPLATE_VBoxRc_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK) ++ TEMPLATE_VBoxRc_CXXFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) ++ TEMPLATE_VBoxRc_CFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK) + ifeq ($(KBUILD_TARGET),solaris) + TEMPLATE_VBoxRc_LDFLAGS = -r + else +@@ -3864,8 +3865,8 @@ + ifeq ($(VBOX_LDR_FMT32),macho) + TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC_TOOL) + TEMPLATE_VBoxRc_DEFS += $(VBOX_DARWIN_DEF_SDK_DEFS) +- TEMPLATE_VBoxRc_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti +- TEMPLATE_VBoxRc_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing ++ TEMPLATE_VBoxRc_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti ++ TEMPLATE_VBoxRc_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing + TEMPLATE_VBoxRc_LDFLAGS = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -m32 -nostdlib + #TEMPLATE_VBoxRc_LDFLAGS.release = -Wl,-S ??? + endif +@@ -3903,9 +3904,9 @@ + endif + + ifeq ($(VBOX_LDR_FMT32),elf) +- TEMPLATE_VBoxRcExe_CFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS)) -O0 +- TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS)) -O0 +- TEMPLATE_VBoxRcExe_LDFLAGS = -g ++ TEMPLATE_VBoxRcExe_CFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS)) -O0 $(VBOX_GCC_nopie) ++ TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS)) -O0 $(VBOX_GCC_nopie) ++ TEMPLATE_VBoxRcExe_LDFLAGS = -g $(VBOX_GCC_nopie) + TEMPLATE_VBoxRcExe_LDFLAGS.dbgopt = -g + TEMPLATE_VBoxRcExe_LDFLAGS.strict = -g + TEMPLATE_VBoxRcExe_LDFLAGS.release = -g +@@ -3984,8 +3985,8 @@ + + ifeq ($(VBOX_LDR_FMT),elf) + TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL) +-TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK) +-TEMPLATE_VBoxR0_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) ++TEMPLATE_VBoxR0_CFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK) ++TEMPLATE_VBoxR0_CXXFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK) + TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding + TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables + ifeq ($(KBUILD_TARGET),solaris) +@@ -4018,12 +4019,12 @@ + TEMPLATE_VBoxR0_DEFS += $(VBOX_DARWIN_DEF_SDK_DEFS) + TEMPLATE_VBoxR0_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) \ + -fno-common -msoft-float -static -fno-rtti -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \ +- -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) ++ -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) + TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -fno-unwind-tables + TEMPLATE_VBoxR0_CXXFLAGS.x86 = -m32 + TEMPLATE_VBoxR0_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) \ + -fno-common -msoft-float -static -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \ +- -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) ++ -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) + TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -fno-unwind-tables + TEMPLATE_VBoxR0_CFLAGS.x86 = -m32 + TEMPLATE_VBoxR0_LDFLAGS = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -nostdlib +@@ -4259,7 +4260,7 @@ + -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \ + -Wimplicit-function-declaration -Werror-implicit-function-declaration \ + -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \ +- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ ++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ + -nostdinc -std=c99 + TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 + TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 --param inline-unit-growth=100 --param large-function-growth=1000 \ +@@ -4268,7 +4269,7 @@ + TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-exceptions -fno-rtti \ + $(VBOX_GCC_WARN) -Wpointer-arith -Winline \ + -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \ +- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ ++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ + -nostdinc + TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86) + TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64 = $(TEMPLATE_VBOXR0DRV_CFLAGS.amd64) +@@ -4341,7 +4342,7 @@ + -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \ + -Wimplicit-function-declaration -Werror-implicit-function-declaration \ + -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \ +- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ ++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ + -nostdinc -std=c99 -msoft-float + TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 \ + -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -mno-avx \ +@@ -4353,7 +4354,7 @@ + TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-exceptions -fno-rtti \ + $(VBOX_GCC_WARN) -Wpointer-arith -Winline \ + -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \ +- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ ++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \ + -nostdinc -msoft-float + TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86) + TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64 = $(TEMPLATE_VBOXR0DRV_CFLAGS.amd64) +@@ -4394,7 +4395,7 @@ + TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -lroot -rpath-link /boot/system/develop/lib/x86 --no-add-needed /boot/system/develop/lib/_KERNEL_ --no-add-needed /boot/system/develop/lib/haiku_version_glue.o + TEMPLATE_VBOXR0DRV_CFLAGS = -fno-PIC \ + $(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \ +- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration ++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration + TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -mno-sse -mno-mmx -mno-sse2 -mno-3dnow + TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow + TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \ +@@ -5210,8 +5211,8 @@ + TEMPLATE_VBoxNoCrtGccLib_TOOL = $(VBOX_GCC_TOOL) + TEMPLATE_VBoxNoCrtGccLib_ASTOOL = $(VBOX_ASTOOL) + TEMPLATE_VBoxNoCrtGccLib_ASFLAGS = $(VBOX_ASFLAGS) +- TEMPLATE_VBoxNoCrtGccLib_CFLAGS += $(VBOX_GCC_fno-stack-protector) +- TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS += $(VBOX_GCC_fno-stack-protector) ++ TEMPLATE_VBoxNoCrtGccLib_CFLAGS += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) ++ TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) + ifeq ($(KBUILD_TARGET_ARCH),amd64) + # in 64-bit mode we'll build a sys-module (VBoxREM2). + if1of ($(KBUILD_TARGET), darwin solaris) +diff -Naur VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk +--- VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk 2017-07-26 13:55:27.746972186 -0400 ++++ VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk 2017-07-26 13:53:10.641974329 -0400 +@@ -132,6 +132,7 @@ + -W \ + -Wformat-nonliteral \ + $(VBOX_GCC_fno-stack-protector) \ ++ $(VBOX_GCC_nopie) \ + $(VBOX_GCC_fno-dwarf2-cfi-asm) \ + $(VBOX_GCC_Wno-address) + TEMPLATE_iPxe_ASFLAGS = \ +@@ -155,6 +156,7 @@ + -W \ + -Wformat-nonliteral \ + $(VBOX_GCC_fno-stack-protector) \ ++ $(VBOX_GCC_nopie) \ + $(VBOX_GCC_fno-dwarf2-cfi-asm) \ + $(VBOX_GCC_Wno-address) \ + -DASSEMBLY diff --git a/app-emulation/virtualbox-kvm/files/10-virtualbox.rules b/app-emulation/virtualbox-kvm/files/10-virtualbox.rules new file mode 100644 index 000000000000..014c164a37f5 --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/10-virtualbox.rules @@ -0,0 +1,7 @@ +# create second tree of USB devices according to +# http://www.virtualbox.org/ticket/7759#comment:5 + +SUBSYSTEM=="usb_device", ACTION!="remove", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" +SUBSYSTEM=="usb", ACTION!="remove", ENV{DEVTYPE}=="usb_device", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}" +SUBSYSTEM=="usb_device", ACTION=="remove", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh --remove $major $minor" +SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh --remove $major $minor" diff --git a/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd b/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd new file mode 100644 index 000000000000..fdcd17e9ba0c --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd @@ -0,0 +1,19 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# The host to bind to (defaults to "localhost"). +VBOXWEBSRV_HOST="localhost" + +# Which port to on the host (defaults to 18083). +VBOXWEBSRV_PORT="18083" + +# Session timeout, in seconds. (defaults to 20). +VBOXWEBSRV_TIMEOUT=20 + +# The interval in which the webservice checks for +# timed-out clients, in seconds. Normally does not +# need to be changed (defaults to 5). +VBOXWEBSRV_INTERVAL=5 + +# User under which vboxwebsrv is running +VBOXWEBSRV_USER="root" diff --git a/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd b/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd new file mode 100644 index 000000000000..f50c3ec099d6 --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd @@ -0,0 +1,21 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +depend() { + need net +} + +start() { + ebegin "Starting VirtualBox WebService" + start-stop-daemon --start --quiet --user ${VBOXWEBSRV_USER} --pidfile /var/run/vboxwebsrv.pid \ + --background --make-pidfile --exec /usr/bin/vboxwebsrv \ + -- -H ${VBOXWEBSRV_HOST} -p ${VBOXWEBSRV_PORT} -t ${VBOXWEBSRV_TIMEOUT} -i ${VBOXWEBSRV_INTERVAL} + eend $? +} + +stop() { + ebegin "Stopping VirtualBox WebService" + start-stop-daemon --stop --user ${VBOXWEBSRV_USER} --quiet --pidfile /var/run/vboxwebsrv.pid + eend $? +} diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-4-config b/app-emulation/virtualbox-kvm/files/virtualbox-4-config new file mode 100644 index 000000000000..af7822146560 --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/virtualbox-4-config @@ -0,0 +1 @@ +INSTALL_DIR=/usr/MY_LIBDIR/virtualbox diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig b/app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig new file mode 100644 index 000000000000..0f9113825fb8 --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig @@ -0,0 +1,47 @@ +# -*- Makefile -*- +# +# Overwrite some default kBuild settings +# + +# +# Copyright (C) 2006-2008 Sun Microsystems, Inc. +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software Foundation, +# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE +# distribution. VirtualBox OSE is distributed in the hope that it will +# be useful, but WITHOUT ANY WARRANTY of any kind. +# + +# shut up wine complaining about unknown locale +EXEC_X86_WIN32 := wine + +# don't build testcases to save time, they are not needed for the package +VBOX_WITH_TESTCASES := +VBOX_WITH_VALIDATIONKIT := +VBOX_DOCBOOK_WITH_LATEX := 1 + +KBUILD_MSG_STYLE := brief + +## paths, origin, hardening +#VBOX_WITH_HARDENING := 1 +VBOX_WITH_ORIGIN := +VBOX_PATH_APP_PRIVATE_ARCH := /usr/MY_LIBDIR/virtualbox +VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH) +VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox +VBOX_PATH_APP_DOCS = $(VBOX_PATH_PACKAGE_DOCS) + +## don't build unwanted/splitted stuff +VBOX_WITHOUT_ADDITIONS := 1 +VBOX_WITH_VBOXDRV := +VBOX_WITH_VBOXBFE := +VBOX_WITH_KCHMVIEWER := + +## don't build with -Werror +VBOX_WITH_WARNINGS_AS_ERRORS := + +## fix compilation with USE="doc" (Gentoo bug #554932) +VBOX_PATH_DOCBOOK_DTD := /usr/share/sgml/docbook/sgml-dtd-4.4 diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch new file mode 100644 index 000000000000..29ec3aee72c1 --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch @@ -0,0 +1,18 @@ +When compiling with clang we get: + +src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported + +Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang. + +--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk ++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk +@@ -45,7 +45,8 @@ + iPxeBiosBin_CLEAN = \ + $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \ + +-if1of ($(KBUILD_TARGET), darwin os2 solaris win) ++# Disable building on Linux if using clang ++if1of ($(KBUILD_TARGET), darwin os2 solaris win linux) + $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@) + $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@) + $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@ diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper b/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper new file mode 100644 index 000000000000..57b15cc93eba --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper @@ -0,0 +1,119 @@ +#!/bin/sh +## @file +# Oracle VM VirtualBox startup script, Linux hosts. +# + +# +# Copyright (C) 2006-2017 Oracle Corporation +# +# This file is part of VirtualBox Open Source Edition (OSE), as +# available from http://www.virtualbox.org. This file is free software; +# you can redistribute it and/or modify it under the terms of the GNU +# General Public License (GPL) as published by the Free Software +# Foundation, in version 2 as it comes in the "COPYING" file of the +# VirtualBox OSE distribution. VirtualBox OSE is distributed in the +# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. +# + +PATH="/usr/bin:/bin:/usr/sbin:/sbin" +CONFIG="/etc/vbox/vbox.cfg" + +test -r "${CONFIG}" && + . "${CONFIG}" +test -z "${INSTALL_DIR}" && + if test -f /usr/lib/virtualbox/VirtualBox && + test -x /usr/lib/virtualbox/VirtualBox; then + INSTALL_DIR=/usr/lib/virtualbox + else + echo "Could not find VirtualBox installation. Please reinstall." + exit 1 + fi + +# Note: This script must not fail if the module was not successfully installed +# because the user might not want to run a VM but only change VM params! + +if [ "$1" = "shutdown" ]; then + SHUTDOWN="true" +elif ! lsmod|grep -q vboxdrv; then + cat << EOF +WARNING: The vboxdrv kernel module is not loaded. Either there is no module + available for the current kernel (`uname -r`) or it failed to + load. Please recompile the kernel module and install it by + + for m in vbox{drv,netadp,netflt}; do modprobe \$m; done + + You will not be able to start VMs until this problem is fixed. +EOF +elif [ ! -c /dev/vboxdrv ]; then + cat << EOF +WARNING: The character device /dev/vboxdrv does not exist. + Please try to reload all the needed kernel modules by: + + for m in vbox{netflt,netadp,drv}; do rmmod \$m; done + for m in vbox{drv,netadp,netflt}; do modprobe \$m; done + + and if that is not successful, try to re-install the package by: + + emerge -1av app-emulation/virtualbox-modules + + You will not be able to start VMs until this problem is fixed. +EOF +fi + +SERVER_PID=$(ps -U ${LOGNAME:-$USER} | grep VBoxSVC | awk '{ print $1 }') +if [ -z "$SERVER_PID" ]; then + # Server not running yet/anymore, cleanup socket path. + # See IPC_GetDefaultSocketPath()! + if [ -n "$LOGNAME" ]; then + rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1 + else + rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1 + fi +fi + +if [ "$SHUTDOWN" = "true" ]; then + if [ -n "$SERVER_PID" ]; then + kill -TERM $SERVER_PID + sleep 2 + fi + exit 0 +fi + +APP=`basename $0` +case "$APP" in + VirtualBox|virtualbox) + exec "$INSTALL_DIR/VirtualBox" "$@" + ;; + VirtualBoxVM|virtualboxvm) + exec "$INSTALL_DIR/VirtualBoxVM" "$@" + ;; + VBoxManage|vboxmanage) + exec "$INSTALL_DIR/VBoxManage" "$@" + ;; + VBoxSDL|vboxsdl) + exec "$INSTALL_DIR/VBoxSDL" "$@" + ;; + VBoxVRDP|VBoxHeadless|vboxheadless) + exec "$INSTALL_DIR/VBoxHeadless" "$@" + ;; + VBoxAutostart|vboxautostart) + exec "$INSTALL_DIR/VBoxAutostart" "$@" + ;; + VBoxBalloonCtrl|vboxballoonctrl) + exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@" + ;; + VBoxBugReport|vboxbugreport) + exec "$INSTALL_DIR/VBoxBugReport" "$@" + ;; + VBoxDTrace|vboxdtrace) + exec "$INSTALL_DIR/VBoxDTrace" "$@" + ;; + vboxwebsrv) + exec "$INSTALL_DIR/vboxwebsrv" "$@" + ;; + *) + echo "Unknown application - $APP" + exit 1 + ;; +esac +exit 0 diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd b/app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd new file mode 100644 index 000000000000..39378536a8b2 --- /dev/null +++ b/app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd @@ -0,0 +1 @@ +d /dev/vboxusb 0750 root vboxusers diff --git a/app-emulation/virtualbox-kvm/metadata.xml b/app-emulation/virtualbox-kvm/metadata.xml new file mode 100644 index 000000000000..6f699287abd4 --- /dev/null +++ b/app-emulation/virtualbox-kvm/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ceamac@gentoo.org</email> + <name>Viorel Munteanu</name> + </maintainer> + <use> + <flag name="dtrace">Install dtrace Extension Pack</flag> + <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag> + <flag name="sdk">Enable building of SDK</flag> + <flag name="udev">Controls installation of special USB udev rules.</flag> + <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag> + <flag name="vde">Support for VDE networking via <pkg>net-misc/vde</pkg></flag> + </use> + <upstream> + <remote-id type="github">cyberus-technology/virtualbox-kvm</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild new file mode 100644 index 000000000000..34dd04078029 --- /dev/null +++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild @@ -0,0 +1,768 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +PATCHES_PV="7.0.14" +ORIGIN_PN="VirtualBox" +ORIGIN_PV=${PATCHES_PV} + +MY_PN=virtualbox +MY_PV=${PV#*_pre} + +PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm" +SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2" +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + + ORIGIN_PV=${PATCHES_PV} + EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm" +else + ORIGIN_PV=${PV%_pre*} + PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV} + SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz" +fi +MY_P=${ORIGIN_PN}-${ORIGIN_PV} +SRC_URI+=" + https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) ) +" +S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + !app-emulation/virtualbox + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches + "${PATCHES_DIR}"/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_unpack() { + [[ ${PV} == *9999* ]] && git-r3_src_unpack + default +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + --with-kvm + + # this is required for kvm to work. + # also this prohibits installation with suid. + --disable-hardening + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 0750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 0750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 0750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + newmenu ${MY_PN}.desktop ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png + done + newicon ${MY_PN}-48px.png ${PN}.png + newicon -s scalable ${MY_PN}.svg ${PN}.png + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${MY_PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 0750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc} + elif use gui; then + dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc} + fi + dodoc ${PATCHES_DIR}/README.* + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.16_pre20240325.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.16_pre20240325.ebuild new file mode 100644 index 000000000000..f501f05d7084 --- /dev/null +++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.16_pre20240325.ebuild @@ -0,0 +1,768 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +PATCHES_PV="7.0.16" +ORIGIN_PN="VirtualBox" +ORIGIN_PV=${PATCHES_PV} + +MY_PN=virtualbox +MY_PV=${PV#*_pre} + +PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm" +SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2" +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + + ORIGIN_PV=${PATCHES_PV} + EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm" +else + ORIGIN_PV=${PV%_pre*} + PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV} + SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz" +fi +MY_P=${ORIGIN_PN}-${ORIGIN_PV} +SRC_URI+=" + https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) ) +" +S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + !app-emulation/virtualbox + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches + "${PATCHES_DIR}"/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_unpack() { + [[ ${PV} == *9999* ]] && git-r3_src_unpack + default +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + --with-kvm + + # this is required for kvm to work. + # also this prohibits installation with suid. + --disable-hardening + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 0750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 0750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 0750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + newmenu ${MY_PN}.desktop ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png + done + newicon ${MY_PN}-48px.png ${PN}.png + newicon -s scalable ${MY_PN}.svg ${PN}.png + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${MY_PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 0750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc} + elif use gui; then + dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc} + fi + dodoc ${PATCHES_DIR}/README.* + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild new file mode 100644 index 000000000000..f501f05d7084 --- /dev/null +++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild @@ -0,0 +1,768 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +PATCHES_PV="7.0.16" +ORIGIN_PN="VirtualBox" +ORIGIN_PV=${PATCHES_PV} + +MY_PN=virtualbox +MY_PV=${PV#*_pre} + +PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm" +SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2" +if [[ ${PV} == *9999* ]]; then + inherit git-r3 + + ORIGIN_PV=${PATCHES_PV} + EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm" +else + ORIGIN_PV=${PV%_pre*} + PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV} + SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz" +fi +MY_P=${ORIGIN_PN}-${ORIGIN_PV} +SRC_URI+=" + https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) ) +" +S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + !app-emulation/virtualbox + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches + "${PATCHES_DIR}"/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_unpack() { + [[ ${PV} == *9999* ]] && git-r3_src_unpack + default +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + --with-kvm + + # this is required for kvm to work. + # also this prohibits installation with suid. + --disable-hardening + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${MY_PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${MY_PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${MY_PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 0750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 0750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 0750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + newmenu ${MY_PN}.desktop ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${MY_PN}-${size}px.png ${PN}.png + done + newicon ${MY_PN}-48px.png ${PN}.png + newicon -s scalable ${MY_PN}.svg ${PN}.png + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${MY_PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${MY_PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 0750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${MY_PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc} + elif use gui; then + dodoc "${WORKDIR}"/${MY_PN}-help-${ORIGIN_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF}/UserManual.q{ch,hc} + fi + dodoc ${PATCHES_DIR}/README.* + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${MY_PN}-vboxusb_tmpfilesd virtualbox-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${MY_PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox-modules/Manifest b/app-emulation/virtualbox-modules/Manifest index e7e5b285100f..6e8fa5a56f51 100644 --- a/app-emulation/virtualbox-modules/Manifest +++ b/app-emulation/virtualbox-modules/Manifest @@ -1,4 +1,5 @@ -DIST vbox-kernel-module-src-6.0.24.tar.xz 670960 BLAKE2B 26e4b1b6b9ab8c8fd0312b2162fe745dc11ef3f8a7e2f08f49df9d9ef346ec21b64e4a0a480bd726e9cca6ab2ce5d3cf2637aa8923c0843bf78a3ed160b98810 SHA512 9b1093307dffeb64f3ec22c4797268858e1fcc729403e89294c2e3cf0852662b7b0aad4416a593fd25b2107a1995d6bc17078f072b6f7718ed111ab61df8324e -DIST vbox-kernel-module-src-6.1.12.tar.xz 667312 BLAKE2B 31b3f7cd60d00e26c3177c4956d493a243e39d6251aeb3f3d72331d2fa85f2c90e884aa3f27e994502d86a34b1683c7d7db54eb1cc233e220f147119f6e9ed5e SHA512 ec4903fdc74e4be28003e8b231a4c8feb6e807bc59789c2729a8ab4199c6decc878468b67bce3a17625f60a33bb1d7c611e7306815091607b1fade2be521ed44 -DIST vbox-kernel-module-src-6.1.14.tar.xz 670392 BLAKE2B e6f324e71088c71bf67791861c79a81665f2111664428ed1e8a834b8a435bd04c1da49b6755ce5f6b1d883c6de01a0821e8d5a7519e11cf30e8f01a8b4e5d8bb SHA512 ccf4896106a7c86b651ed698abee78387660b7daa0f15329fc4bf2c3a7df4715bf4cce7cace1c6f6931dd9e8d02022d1ca0d005ae12c5139e54d3fb40792cb1c -DIST vbox-kernel-module-src-6.1.16.tar.xz 671736 BLAKE2B 8b2153874ee7a63f88679a5372215e89def49622caa7679a5c2410423eaf23ced18ece79d638fc96db40fac88857db7568dd72dd8e05371b14add3553d61d3a7 SHA512 c51dfad5f9578ad43e2fbdd35a70659640030108006f89d362bc25dead99eb3b39a78d403633b3813f62f5b510eff22d826a2750b9c88f5fcb1cde6531295bff +DIST vbox-kernel-module-src-6.1.48.tar.xz 680552 BLAKE2B 243cd013a7e027634b7f6338056708cbbfb4ccf46b569c21e60b0e2450dd1ad1395c6881eb235f2cab68a65c0911322604e732fdde06eb389f83171f38ded5ae SHA512 e26e8e4dce70d0dd07a336a6681d49e0fd5991ed92997139311cefa9cb55d03066c6400d4bdb9dbf54fba683192cfc5a63a98076525f3b3066269dc8fc498598 +DIST vbox-kernel-module-src-6.1.50.tar.xz 680700 BLAKE2B c3a10ce8f3eb7e6c0c05f81cd3c072296557b9f9f6f501bb0aec3f04aabfe1fbb67b553510104139cef290c09ff9e67161085781b8d28c968dfafd15958a1b1a SHA512 7822e421b595263cbdaae08103255742360ca7ab0c385818ec895f10570c5b9ed5c7614742d8fa8bc2414cd426907cd1c49d735cde8caf9d2b7692898058f592 +DIST vbox-kernel-module-src-7.0.12.tar.xz 718284 BLAKE2B 8b427f9764ad7cb216d3b8dcfa05e8b564a8b67cf3beb7ec048b2529a31580eb59eb0e41a887bb85503542cae18d873d91108a522fc0ba106d119a73ce629f34 SHA512 0b64ad2ddc6eaf56759e636aa6c8e5dba998e232ec42a7bf0cf92dc00e7a6c0ebb11e9d7500a8a407e0c92a162ebb71cdb15cbfd4f570c1860641a7fdba21bd0 +DIST vbox-kernel-module-src-7.0.14.tar.xz 718532 BLAKE2B 64df92802ab5e9fa3fdf9ba3e3b13004dc687dd2d5f3d41d24354f116a79000fe6ea07bfa8877113ab263d4f75210b600e61d983616f66b6e96324b3ea6a4b2d SHA512 2a0b9a0bbcb0a21a580000309be3a71722ee3cb9a63a5e12cd0d8a391b3832a6cc92ff806f8ca4b5fcb80fed02a44aa4de6a2d49f4583d704cec0902572a68bb +DIST vbox-kernel-module-src-7.0.16.tar.xz 719888 BLAKE2B df78a70f677384be47f9ca28c1d473680dfbc491f2c4dcdccf05e0d80f46177db808adf81bc2af4539aeca10046edbc67a561a62870d2233af5e8fbeccc3ee43 SHA512 c4858c20f557bec7893d3604a9a572068999e60bceeceb65b1ccc9dc92ad2531a8e5bded91b55caa1d55ddf06c0f72672bccf73f5e86546a804ff1ecee413164 diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch deleted file mode 100644 index 6251e33ce59e..000000000000 --- a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- vboxdrv/SUPDrvIDC.h -+++ vboxdrv/SUPDrvIDC.h -@@ -160,7 +160,7 @@ typedef struct SUPDRVIDCREQGETSYM - { - /** The symbol address. */ - PFNRT pfnSymbol; -- } Out; -+ } __no_const Out; - } u; - } SUPDRVIDCREQGETSYM; - /** Pointer to a SUPDRV IDC get symbol request. */ ---- vboxnetflt/include/VBox/intnet.h -+++ vboxnetflt/include/VBox/intnet.h -@@ -783,7 +783,7 @@ typedef struct INTNETTRUNKFACTORY - DECLR0CALLBACKMEMBER(int, pfnCreateAndConnect,(struct INTNETTRUNKFACTORY *pIfFactory, const char *pszName, - PINTNETTRUNKSWPORT pSwitchPort, uint32_t fFlags, - PINTNETTRUNKIFPORT *ppIfPort)); --} INTNETTRUNKFACTORY; -+} __no_const INTNETTRUNKFACTORY; - /** Pointer to the trunk factory. */ - typedef INTNETTRUNKFACTORY *PINTNETTRUNKFACTORY; - ---- vboxnetflt/linux/VBoxNetFlt-linux.c -+++ vboxnetflt/linux/VBoxNetFlt-linux.c -@@ -840,7 +840,7 @@ typedef struct ethtool_ops OVR_OPSTYPE; - - # else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) */ - --typedef struct net_device_ops OVR_OPSTYPE; -+typedef net_device_ops_no_const OVR_OPSTYPE; - # define OVR_OPS netdev_ops - # define OVR_XMIT pOrgOps->ndo_start_xmit - ---- vboxpci/include/VBox/rawpci.h -+++ vboxpci/include/VBox/rawpci.h -@@ -545,7 +545,7 @@ typedef struct RAWPCIFACTORY - DECLR0CALLBACKMEMBER(void, pfnDeinitVm,(PRAWPCIFACTORY pFactory, - PVM pVM, - PRAWPCIPERVM pVmData)); --} RAWPCIFACTORY; -+} __no_const RAWPCIFACTORY; - - #define RAWPCIFACTORY_UUID_STR "ea089839-4171-476f-adfb-9e7ab1cbd0fb" - diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch new file mode 100644 index 000000000000..64bafa84e365 --- /dev/null +++ b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch @@ -0,0 +1,27 @@ +https://www.virtualbox.org/changeset/103168/vbox +https://bugs.gentoo.org/923277 + +--- a/vboxdrv/r0drv/linux/memobj-r0drv-linux.c ++++ b/vboxdrv/r0drv/linux/memobj-r0drv-linux.c +@@ -244,9 +244,21 @@ + #if defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64) + if (fKernel) + { ++# if RTLNX_VER_MIN(6,6,0) ++ /* In kernel 6.6 mk_pte() macro was fortified with additional ++ * check which does not allow to use our custom mask anymore ++ * (see kernel commit ae1f05a617dcbc0a732fbeba0893786cd009536c). ++ * For this particular mapping case, an existing mask PAGE_KERNEL_ROX ++ * can be used instead. PAGE_KERNEL_ROX was introduced in ++ * kernel 5.8, however, lets apply it for kernels 6.6 and newer ++ * to be on a safe side. ++ */ ++ return PAGE_KERNEL_ROX; ++# else + pgprot_t fPg = MY_PAGE_KERNEL_EXEC; + pgprot_val(fPg) &= ~_PAGE_RW; + return fPg; ++# endif + } + return PAGE_READONLY_EXEC; + #else diff --git a/app-emulation/virtualbox-modules/files/virtualbox.conf b/app-emulation/virtualbox-modules/files/virtualbox.conf deleted file mode 100644 index c8c79a249887..000000000000 --- a/app-emulation/virtualbox-modules/files/virtualbox.conf +++ /dev/null @@ -1,4 +0,0 @@ -vboxdrv -vboxnetflt -vboxnetadp -vboxpci diff --git a/app-emulation/virtualbox-modules/metadata.xml b/app-emulation/virtualbox-modules/metadata.xml index b55a81b4e004..498143329fed 100644 --- a/app-emulation/virtualbox-modules/metadata.xml +++ b/app-emulation/virtualbox-modules/metadata.xml @@ -1,12 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>polynomial-c@gentoo.org</email> - <name>Lars Wendler</name> + <email>ceamac@gentoo.org</email> + <name>Viorel Munteanu</name> </maintainer> - <use> - <flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag> - </use> </pkgmetadata> - diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild deleted file mode 100644 index 80c67913b279..000000000000 --- a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# XXX: the tarball here is just the kernel modules split out of the binary -# package that comes from virtualbox-bin - -EAPI=7 - -inherit linux-mod toolchain-funcs - -MY_P="vbox-kernel-module-src-${PV}" -DESCRIPTION="Kernel Modules for Virtualbox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="amd64 x86" -IUSE="pax_kernel" - -RDEPEND="!=app-emulation/virtualbox-9999" - -S="${WORKDIR}" - -BUILD_TARGETS="all" -MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})" -MODULESD_VBOXDRV_ENABLED="yes" -MODULESD_VBOXNETADP_ENABLED="no" -MODULESD_VBOXNETFLT_ENABLED="no" -# The following is a security measure that comes directly from usptream. -# Do NOT remove this!!! -MODULESD_VBOXPCI_ADDITIONS=( - "blacklist vboxpci" - "install vboxpci /bin/true" -) - -pkg_setup() { - linux-mod_pkg_setup - BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1" -} - -src_prepare() { - if use pax_kernel && kernel_is -ge 3 0 0 ; then - eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch - fi - - default -} - -src_install() { - linux-mod_src_install - insinto /usr/lib/modules-load.d/ - newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf -} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild deleted file mode 100644 index 6ad5644e2ed2..000000000000 --- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# XXX: the tarball here is just the kernel modules split out of the binary -# package that comes from virtualbox-bin - -EAPI=7 - -inherit linux-mod toolchain-funcs - -MY_P="vbox-kernel-module-src-${PV}" -DESCRIPTION="Kernel Modules for Virtualbox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="pax_kernel" - -RDEPEND="!=app-emulation/virtualbox-9999" - -S="${WORKDIR}" - -BUILD_TARGETS="all" -MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})" -MODULESD_VBOXDRV_ENABLED="yes" -MODULESD_VBOXNETADP_ENABLED="no" -MODULESD_VBOXNETFLT_ENABLED="no" - -pkg_setup() { - linux-mod_pkg_setup - BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1" -} - -src_prepare() { - if use pax_kernel && kernel_is -ge 3 0 0 ; then - eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch - fi - - default -} - -src_install() { - linux-mod_src_install - insinto /usr/lib/modules-load.d/ - newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf -} - -pkg_postinst() { - # Remove vboxpci.ko from current running kernel - find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete - linux-mod_pkg_postinst -} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild deleted file mode 100644 index 6ad5644e2ed2..000000000000 --- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# XXX: the tarball here is just the kernel modules split out of the binary -# package that comes from virtualbox-bin - -EAPI=7 - -inherit linux-mod toolchain-funcs - -MY_P="vbox-kernel-module-src-${PV}" -DESCRIPTION="Kernel Modules for Virtualbox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="pax_kernel" - -RDEPEND="!=app-emulation/virtualbox-9999" - -S="${WORKDIR}" - -BUILD_TARGETS="all" -MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})" -MODULESD_VBOXDRV_ENABLED="yes" -MODULESD_VBOXNETADP_ENABLED="no" -MODULESD_VBOXNETFLT_ENABLED="no" - -pkg_setup() { - linux-mod_pkg_setup - BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1" -} - -src_prepare() { - if use pax_kernel && kernel_is -ge 3 0 0 ; then - eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch - fi - - default -} - -src_install() { - linux-mod_src_install - insinto /usr/lib/modules-load.d/ - newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf -} - -pkg_postinst() { - # Remove vboxpci.ko from current running kernel - find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete - linux-mod_pkg_postinst -} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild deleted file mode 100644 index 6ad5644e2ed2..000000000000 --- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -# XXX: the tarball here is just the kernel modules split out of the binary -# package that comes from virtualbox-bin - -EAPI=7 - -inherit linux-mod toolchain-funcs - -MY_P="vbox-kernel-module-src-${PV}" -DESCRIPTION="Kernel Modules for Virtualbox" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="pax_kernel" - -RDEPEND="!=app-emulation/virtualbox-9999" - -S="${WORKDIR}" - -BUILD_TARGETS="all" -MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})" -MODULESD_VBOXDRV_ENABLED="yes" -MODULESD_VBOXNETADP_ENABLED="no" -MODULESD_VBOXNETFLT_ENABLED="no" - -pkg_setup() { - linux-mod_pkg_setup - BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1" -} - -src_prepare() { - if use pax_kernel && kernel_is -ge 3 0 0 ; then - eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch - fi - - default -} - -src_install() { - linux-mod_src_install - insinto /usr/lib/modules-load.d/ - newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf -} - -pkg_postinst() { - # Remove vboxpci.ko from current running kernel - find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete - linux-mod_pkg_postinst -} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild new file mode 100644 index 000000000000..3b1165d18eb7 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild @@ -0,0 +1,38 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch +) + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild new file mode 100644 index 000000000000..c57ce1902297 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild @@ -0,0 +1,34 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild new file mode 100644 index 000000000000..3b1165d18eb7 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild @@ -0,0 +1,38 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-2" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch +) + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12-r1.ebuild new file mode 100644 index 000000000000..590b20110b46 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12-r1.ebuild @@ -0,0 +1,38 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch +) + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild new file mode 100644 index 000000000000..ba255fc783b5 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild @@ -0,0 +1,34 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild new file mode 100644 index 000000000000..5466947cbf9d --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild @@ -0,0 +1,38 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +PATCHES=( + "${FILESDIR}"/${P}-kernel-6.6-warning.patch +) + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.16.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.16.ebuild new file mode 100644 index 000000000000..08e22e5e0379 --- /dev/null +++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.16.ebuild @@ -0,0 +1,34 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +# XXX: the tarball here is just the kernel modules split out of the binary +# package that comes from VirtualBox-*.run +# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb + +EAPI=8 + +inherit linux-mod-r1 + +MY_P="vbox-kernel-module-src-${PV}" +DESCRIPTION="Kernel Modules for Virtualbox" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz" +S="${WORKDIR}" + +LICENSE="GPL-3" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +src_compile() { + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf +} diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest index 319ed8af7cbc..ef90c918e514 100644 --- a/app-emulation/virtualbox/Manifest +++ b/app-emulation/virtualbox/Manifest @@ -1,6 +1,12 @@ -DIST VirtualBox-6.0.24.tar.bz2 159833756 BLAKE2B 321f7988a5b55a794e2d51937a0752d96eaefb376c12e2fb23be08dff81b164153e19a7d5963a0404f630fb38d6047b9d954a67923f26b2aa16d861a0c6a1b63 SHA512 e6f98d0036cdebc52c78c5ddbce369d9ef0a036c366647b299060e1ccf6942f6b6f899201dfa08c410a039f353b767a41a0d14579c741dc5c034a035cb16c534 -DIST VirtualBox-6.1.12a.tar.bz2 165246721 BLAKE2B e9ee7c10d92b151ab10833c68d0c71a09419bba4dbf86f21401263a98273f5ad5cf628347215d641e80e11d8e77bafeda606822cdd4d02344490fca6b95814ef SHA512 27fe66daf7fa254d9fc4a2cca4a8bbcfbfe6c3387a9f4a740c8ac1297587b5083bccbeef97dcc4e482c4974c843450212e02415b4952eb38b82e179615741193 -DIST VirtualBox-6.1.14a.tar.bz2 165962245 BLAKE2B 7f064ea58f7e4f36a0cda9badc7d16d5e95246de923ab9d179688c7f2f020625efa89c592aceec59d54f1c48934b20674594cc6a63f3f42e9fef39cfd5803027 SHA512 7bdf248b53c517923afc46998e46f63271f71ee73fa6826f367828128944895b2d672d7fc4d05f222e6d45897269fe699f7360ee1534c96450e2cc7bc14c0f13 -DIST VirtualBox-6.1.16.tar.bz2 165470821 BLAKE2B 13376322d0ce2ea3ed826c61816ff19c8ce1f022f6cb1f1b0c291d72354cbe574a01589a6dcc39de10080ba32d5961ca980e75fe11c7401736bf8f7e5443d166 SHA512 4373eb35934f894e419e1441f6368e646e4a84b963a0ecf1e5c71bbf0231de0b0e52f4c4377b8cd2d956bc7a11346a9da2285988bf1e4c743971c413c6529421 -DIST virtualbox-6.0.24-patches-01.tar.xz 3640 BLAKE2B e55c30395978471edd0f291cd34ecb772cce2f27bea88c6fe348e83046777638be9bdd36bf3a2fd1967357ea7ff53936398cd94ee74d8e55d31c1896069404ff SHA512 b8d9395083769a641a5d7f78ac734a86220fec817e3e49461208f8e72ef7d11c19fe4507e6766fe7c8c815c9888f793fd66f3fae36d6e3a217e53620b5d95029 -DIST virtualbox-6.1.12-patches-01.tar.xz 2528 BLAKE2B a5d7cde0daea41bee2e40e46569c725769927a31865d99d13b8b13c4903e59b4097f85da15dc592b9c7e8baf8ff805397af827620f107ba09a468b4d1198ecab SHA512 f71d10a9fbce99c3f631ef30bcfa9d0e017e702ac509541b039e08ccbcd024beb93fde09c43d90af5d9d28f6842a7947f20e7950d3897da3e6d57859657e1123 +DIST VirtualBox-6.1.48.tar.bz2 165960987 BLAKE2B c981e390ae518b829970827f6032fb19a93685fb58835a9d489c6e14cc60a5c14c65b0a3da5adae7818e73e1b0e558e8fa803160cb67847f18565bb78d656e97 SHA512 fff759f3871e4e8962536002f2bc13e5150a927e280493f5cb0abf06466ce66e45f4c6ef43489b5b3ed8682d8a3ac0eb6fb3dd7c4144924c81612553ec71a95f +DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f +DIST VirtualBox-7.0.12.tar.bz2 175644088 BLAKE2B 507cbf7b1a8a807bd2602e74bc19a59cb177b9b2bdefa1be582e520666360a42510ca501f20c354746a0f1dadf61fe29135e3edc867e611bfe60a9405cb2bbce SHA512 9fe4511442eba788d02f932f5e98cfcc5aa4ebed41c00bd7333cf7e3f5de787e458f1f56930978283f041f403652c803143335fe9120ab63a2c113ca7b3f588f +DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73 +DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5 +DIST virtualbox-help-7.0.12.tar.xz 3945920 BLAKE2B 7f2201f3baf6d27d95dc9f878426e34a27c9f9e113d55348f57703b1bd4878df8c6f02492412b779896c48224fb2df224c953b425dde9c99d2b4dbfda1d80d4f SHA512 ddf429a984fe433c4bcbdf87930b3cc16075d4f4725d2e571e9bf05d820d26eb6f88dd6f2bd3992927b261377c84ac4e35a929113b3294e3b2887760fe7a0b52 +DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03 +DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c +DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57 +DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36 +DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992 +DIST virtualbox-patches-7.1.0_pre20240419.tar.bz2 5316 BLAKE2B 1a890b7d19cb252c7801b68c299676e2cd7a209a57a03cb39025e1a969a1c73142eb96154dae8469405f93d61969154428ea0fe3950a00d8a0a69dc8aefb4fc9 SHA512 ce4f850ce87652ef4eab039332048333949c94f0627bec8eb00d9689d7f8edcce372e2185ef8bbda9aef97781a2008b7c6464468cc38f3454dee862efc0ecdc9 diff --git a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch b/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch deleted file mode 100644 index 7eb1e1793a7f..000000000000 --- a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch +++ /dev/null @@ -1,59 +0,0 @@ -2017-02-20 Quentin Minster <quentin@minster.io> - - #https://bugs.gentoo.org/show_bug.cgi?id=591582 - * Config.kmk: add paxmark befor VBOX_VBOXTPG get run. - * src/VBox/VMM/Makefile.kmk: add paxmark befor VBOX_VBOXCPP get run. - * src/VBox/Main/Makefile.kmk: add paxmark befor USBIdDatabaseGenerator_1_TARGET get run. - ---- a/Config.kmk -+++ b/Config.kmk 2016-09-21 02:22:28 -@@ -3719,11 +3719,13 @@ - $(if-expr $(intersects $(KBUILD_TARGET_ARCH),$(KBUILD_ARCHES_64)),-64,-32) \ - -h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv - define TOOL_VBoxTpG_DTRACE_HDR_CMDS -+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)" - $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)" - endef - TOOL_VBoxTpG_DTRACE_OBJ_NOT_NEEDED := - TOOL_VBoxTpG_DTRACE_OBJ_FLAGS := -G --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv - define TOOL_VBoxTpG_DTRACE_OBJ_CMDS -+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)" - $(QUIET)$(VBOX_VBOXTPG) \ - $(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \ - $(flags) \ -@@ -3738,6 +3740,7 @@ - TOOL_VBoxTpG-Disabled_DTRACE_DEPORD = $(VBOX_VBOXTPG) - TOOL_VBoxTpG-Disabled_DTRACE_HDR_FLAGS := -h - define TOOL_VBoxTpG-Disabled_DTRACE_HDR_CMDS -+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)" - $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)" - endef - TOOL_VBoxTpG-Disabled_DTRACE_OBJ_NOT_NEEDED := $(KBUILD_OSES) -@@ -3752,6 +3755,7 @@ - TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS = - define TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS - $(TOOL_StandardDTrace_DTRACE_HDR_CMDS) -+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)" - $(QUIET)$(VBOX_VBOXTPG) --generate-wrapper-header --host-$(VBOX_HC_ARCH_BITS)-bit --ring-3-context \ - $(filter-out -C, $(filter-out -h,$(flags))) \ - -o "$(out).tmp" -s "$(source)" ---- a/src/VBox/VMM/Makefile.kmk 2018-04-10 15:26:24.622867735 +0300 -+++ b/src/VBox/VMM/Makefile.kmk 2018-04-10 15:24:35.901998796 +0300 -@@ -896,6 +896,7 @@ - $$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@) - $$(call KB_FN_AUTO_CMD_DEPS_COMMANDS) - $$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$2) -+ $$(QUIET)paxmark.sh -m "$(VBOX_VBOXCPP)" - $$(QUIET)$(VBOX_VBOXCPP) -d \ - -D VBOX_FOR_DTRACE_LIB \ - -D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \ ---- a/src/VBox/Main/Makefile.kmk 2018-04-10 15:26:15.292793067 +0300 -+++ b/src/VBox/Main/Makefile.kmk 2018-04-10 15:25:14.042303341 +0300 -@@ -607,6 +607,7 @@ - $(PATH_SUB_CURRENT)/src-server/usb.ids $(PATH_SUB_CURRENT)/src-server/custom.ids | $$(dir $$@) - $(call KB_FN_AUTO_CMD_DEPS_COMMANDS) - $(call MSG_GENERATE,USBIdDatabase,$@,$(USBIdDatabaseGenerator_1_TARGET)) -+ $(QUIET)paxmark.sh -m "$(USBIdDatabaseGenerator_1_TARGET)" - $(QUIET)$(USBIdDatabaseGenerator_1_TARGET) -o "$@" $(filter %.ids,$^) - - BLDPROGS += USBIdDatabaseGenerator diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch b/app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch new file mode 100644 index 000000000000..57752c4bbd85 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch @@ -0,0 +1,15 @@ +https://www.virtualbox.org/changeset/90377/vbox +https://bugs.gentoo.org/805350 +https://bugs.gentoo.org/805365 + +--- VirtualBox-6.1.26/configure ++++ VirtualBox-6.1.26/configure +@@ -1624,6 +1624,8 @@ EOF + else + # Strip .../QtCore as we add components ourself: + INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'` ++ # Strip .../QtGui as we add components ourself: ++ INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtGui|\1|g; s| $||g'` + # store only the first path, remove all other paths + # most likely pkg-config gave us -I/usr/include/qt5 -I/usr/include/qt5/QtCore + INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\) .*|\1|'` diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch new file mode 100644 index 000000000000..3a6da1f681c1 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch @@ -0,0 +1,14 @@ +diff --git a/configure b/configure +index fd2e296..695f6a7 100755 +--- a/configure ++++ b/configure +@@ -1987,6 +1987,9 @@ check_python() + { + test_header "Python support" + ++ # We force the right implementation in the ebuild instead ++ return ++ + # On darwin this is a on/off decision only + if [ "$OS" = "darwin" ]; then + echo "enabled" diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch b/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch new file mode 100644 index 000000000000..14b11f734c71 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch @@ -0,0 +1,16 @@ +Bug https://bugs.gentoo.org/865361 + +gcc does not support -fcf-protection for i386 (needs i686+), +so disable it when building iPxeBaseBin. + +--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk ++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk +@@ -176,6 +177,8 @@ + + iPxeBaseBin_TEMPLATE = iPxe + ++ iPxeBaseBin_CFLAGS = -fcf-protection=none ++ + iPxeBaseBin_INCS = \ + src \ + src/include \ diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch b/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch new file mode 100644 index 000000000000..c3e76e58c3f2 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch @@ -0,0 +1,25 @@ +With dev-libs/libxml2-2.11, xi:include errors out if it can't find a file, so add an empty fallback. +Used to work with dev-libs/libxml2-2.10. + +See also: https://bugs.gentoo.org/906309 + +--- a/doc/manual/en_US/user_Frontends.xml ++++ b/doc/manual/en_US/user_Frontends.xml +@@ -1205,6 +1205,6 @@ + + </sect1> + +- <xi:include href="user_man_VBoxHeadless.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" /> ++ <xi:include href="user_man_VBoxHeadless.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include> + + </chapter> +--- b/doc/manual/en_US/user_VBoxManage.xml ++++ a/doc/manual/en_US/user_VBoxManage.xml +@@ -8975,6 +8975,6 @@ + <!-- TODO: Figure out how we can handle other manpages. The xml is bolted to + sect1, so it's not possible to have them "in place" --> + +- <xi:include href="user_man_vboximg-mount.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" /> ++ <xi:include href="user_man_vboximg-mount.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include> + + </chapter> diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch b/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch new file mode 100644 index 000000000000..a523bad41a30 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch @@ -0,0 +1,43 @@ +Bug: https://bugs.gentoo.org/922445 + +The change in libxml2 is not backwards compatibe. +A patch like the one in arch does not work with 2.11, so just cast the argument to maintain compatibility with both. + +The upstream change is in include/libxml/xmlerror.h: + + typedef xmlError *xmlErrorPtr; + +-typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error); ++typedef void (*xmlStructuredErrorFunc) (void *userData, const xmlError *error); + +See also: https://gitlab.archlinux.org/archlinux/packaging/packages/virtualbox/-/blob/main/019-libxml-2-12.patch?ref_type=heads + +--- a/src/VBox/Runtime/r3/xml.cpp ++++ b/src/VBox/Runtime/r3/xml.cpp +@@ -1870,7 +1870,7 @@ + throw std::bad_alloc(); + /* per-thread so it must be here */ + xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError); +- xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError); ++ xmlSetStructuredErrorFunc(NULL, (xmlStructuredErrorFunc)xmlParserBaseStructuredError); + } + + XmlParserBase::~XmlParserBase() +@@ -1931,7 +1931,7 @@ + pcszFilename, + NULL, // encoding = auto + options))) +- throw XmlError(xmlCtxtGetLastError(m_ctxt)); ++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt)); + + doc.refreshInternals(); + } +@@ -2191,7 +2191,7 @@ + pcszFilename, + NULL, // encoding = auto + options))) +- throw XmlError(xmlCtxtGetLastError(m_ctxt)); ++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt)); + + doc.refreshInternals(); + } diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch new file mode 100644 index 000000000000..29ec3aee72c1 --- /dev/null +++ b/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch @@ -0,0 +1,18 @@ +When compiling with clang we get: + +src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported + +Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang. + +--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk ++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk +@@ -45,7 +45,8 @@ + iPxeBiosBin_CLEAN = \ + $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \ + +-if1of ($(KBUILD_TARGET), darwin os2 solaris win) ++# Disable building on Linux if using clang ++if1of ($(KBUILD_TARGET), darwin os2 solaris win linux) + $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@) + $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@) + $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@ diff --git a/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper b/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper index af8090dd09af..57b15cc93eba 100644 --- a/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper +++ b/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper @@ -60,7 +60,7 @@ WARNING: The character device /dev/vboxdrv does not exist. EOF fi -SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'` +SERVER_PID=$(ps -U ${LOGNAME:-$USER} | grep VBoxSVC | awk '{ print $1 }') if [ -z "$SERVER_PID" ]; then # Server not running yet/anymore, cleanup socket path. # See IPC_GetDefaultSocketPath()! diff --git a/app-emulation/virtualbox/metadata.xml b/app-emulation/virtualbox/metadata.xml index 3a2ea79813a6..0a281e0f998b 100644 --- a/app-emulation/virtualbox/metadata.xml +++ b/app-emulation/virtualbox/metadata.xml @@ -1,18 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>polynomial-c@gentoo.org</email> - <name>Lars Wendler</name> + <email>ceamac@gentoo.org</email> + <name>Viorel Munteanu</name> </maintainer> <use> - <flag name="dtrace">Install dtrace Extension Pack</flag> - <flag name="headless">Build without any graphic frontend</flag> - <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag> - <flag name="pax_kernel">Apply patch needed for pax enabled kernels.</flag> - <flag name="sdk">Enable building of SDK</flag> - <flag name="udev">Controls installation of special USB udev rules.</flag> - <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag> -</use> + <flag name="dtrace">Install dtrace Extension Pack</flag> + <flag name="headless">Build without any graphic frontend</flag> + <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag> + <flag name="pax-kernel">Apply patch needed for pax enabled kernels.</flag> + <flag name="sdk">Enable building of SDK</flag> + <flag name="udev">Controls installation of special USB udev rules.</flag> + <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag> + <flag name="vde">Support for VDE networking via <pkg>net-misc/vde</pkg></flag> + </use> </pkgmetadata> - diff --git a/app-emulation/virtualbox/virtualbox-6.0.24.ebuild b/app-emulation/virtualbox/virtualbox-6.0.24.ebuild deleted file mode 100644 index fe47c9329874..000000000000 --- a/app-emulation/virtualbox/virtualbox-6.0.24.ebuild +++ /dev/null @@ -1,510 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg - -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=VirtualBox-${MY_PV} - -DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.0.24-patches-01.tar.xz" - -LICENSE="GPL-2 dtrace? ( CDDL )" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="amd64 x86" -IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc" - -CDEPEND=" - ${PYTHON_DEPS} - !app-emulation/virtualbox-bin - acct-group/vboxusers - ~app-emulation/virtualbox-modules-${PV} - dev-libs/libIDL - >=dev-libs/libxslt-1.1.19 - net-misc/curl - dev-libs/libxml2 - media-libs/libpng:0= - media-libs/libvpx:0= - sys-libs/zlib:= - !headless? ( - media-libs/libsdl:0[X,video] - x11-libs/libX11 - x11-libs/libxcb:= - x11-libs/libXcursor - x11-libs/libXext - x11-libs/libXmu - x11-libs/libXt - opengl? ( media-libs/libglvnd[X] ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - opengl? ( dev-qt/qtopengl:5 ) - x11-libs/libXinerama - ) - ) - libressl? ( dev-libs/libressl:= ) - !libressl? ( dev-libs/openssl:0= ) - lvm? ( sys-fs/lvm2 ) - opus? ( media-libs/opus ) - udev? ( >=virtual/udev-171 ) - vnc? ( >=net-libs/libvncserver-0.9.9 ) -" -DEPEND=" - ${CDEPEND} - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - !headless? ( - x11-libs/libXinerama - opengl? ( virtual/opengl ) - ) - pam? ( sys-libs/pam ) - pax_kernel? ( sys-apps/elfix ) - pulseaudio? ( media-sound/pulseaudio ) - qt5? ( dev-qt/linguist-tools:5 ) - vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) -" -BDEPEND=" - ${PYTHON_DEPS} - >=dev-util/kbuild-0.1.9998.3127 - >=dev-lang/yasm-0.6.2 - sys-devel/bin86 - sys-libs/libcap - sys-power/iasl - virtual/pkgconfig - doc? ( - app-text/docbook-sgml-dtd:4.4 - dev-texlive/texlive-basic - dev-texlive/texlive-latex - dev-texlive/texlive-latexrecommended - dev-texlive/texlive-latexextra - dev-texlive/texlive-fontsrecommended - dev-texlive/texlive-fontsextra - ) - java? ( >=virtual/jdk-1.6 ) -" -RDEPEND=" - ${CDEPEND} - java? ( >=virtual/jre-1.6 ) -" - -QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so - usr/lib/virtualbox/VBoxSDL.so - usr/lib/virtualbox/VBoxSharedFolders.so - usr/lib/virtualbox/VBoxDD2.so - usr/lib/virtualbox/VBoxOGLrenderspu.so - usr/lib/virtualbox/VBoxPython.so - usr/lib/virtualbox/VBoxDD.so - usr/lib/virtualbox/VBoxDDU.so - usr/lib/virtualbox/VBoxREM64.so - usr/lib/virtualbox/VBoxSharedClipboard.so - usr/lib/virtualbox/VBoxHeadless.so - usr/lib/virtualbox/VBoxRT.so - usr/lib/virtualbox/VBoxREM.so - usr/lib/virtualbox/VBoxSettings.so - usr/lib/virtualbox/VBoxKeyboard.so - usr/lib/virtualbox/VBoxSharedCrOpenGL.so - usr/lib/virtualbox/VBoxVMM.so - usr/lib/virtualbox/VirtualBox.so - usr/lib/virtualbox/VBoxOGLhosterrorspu.so - usr/lib/virtualbox/components/VBoxC.so - usr/lib/virtualbox/components/VBoxSVCM.so - usr/lib/virtualbox/components/VBoxDDU.so - usr/lib/virtualbox/components/VBoxRT.so - usr/lib/virtualbox/components/VBoxREM.so - usr/lib/virtualbox/components/VBoxVMM.so - usr/lib/virtualbox/VBoxREM32.so - usr/lib/virtualbox/VBoxPython2_7.so - usr/lib/virtualbox/VBoxXPCOMC.so - usr/lib/virtualbox/VBoxOGLhostcrutil.so - usr/lib/virtualbox/VBoxNetDHCP.so - usr/lib/virtualbox/VBoxNetNAT.so" - -S="${WORKDIR}/${MY_P}" - -REQUIRED_USE=" - java? ( sdk ) - python? ( sdk ) - vboxwebsrv? ( java ) - ${PYTHON_REQUIRED_USE} -" - -pkg_pretend() { - if ! use headless && ! use qt5 ; then - einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." - elif use headless && use qt5 ; then - einfo "You selected USE=\"headless qt5\", defaulting to" - einfo "USE=\"headless\", this build will not include any X11/Qt frontend." - fi - - if ! use opengl ; then - einfo "No USE=\"opengl\" selected, this build will lack" - einfo "the OpenGL feature." - fi - if ! use python ; then - einfo "You have disabled the \"python\" USE flag. This will only" - einfo "disable the python bindings being installed." - fi -} - -pkg_setup() { - java-pkg-opt-2_pkg_setup - python-single-r1_pkg_setup - - tc-ld-disable-gold #bug 488176 - tc-export CC CXX LD AR RANLIB - export HOST_CC="$(tc-getBUILD_CC)" -} - -src_prepare() { - # Remove shipped binaries (kBuild,yasm), see bug #232775 - rm -r kBuild/bin tools || die - - # Replace pointless GCC version check with something less stupid. - # This is needed for the qt5 version check. - sed -e 's@^check_gcc$@cc_maj="$(gcc -dumpversion | cut -d. -f1)" ; cc_min="$(gcc -dumpversion | cut -d. -f2)"@' \ - -i configure || die - - # Disable things unused or split into separate ebuilds - sed -e "s@MY_LIBDIR@$(get_libdir)@" \ - "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die - - # Respect LDFLAGS - sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ - -i Config.kmk src/libs/xpcom18a4/Config.kmk || die - - # Do not use hard-coded ld (related to bug #488176) - sed -e '/QUIET)ld /s@ld @$(LD) @' \ - -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die - - # Use PAM only when pam USE flag is enbaled (bug #376531) - if ! use pam ; then - elog "Disabling PAM removes the possibility to use the VRDP features." - sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die - sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ - src/VBox/HostServices/Makefile.kmk || die - fi - - # add correct java path - if use java ; then - sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ - -i "${S}"/Config.kmk || die - java-pkg-opt-2_src_prepare - fi - - # Only add nopie patch when we're on hardened - if gcc-specs-pie ; then - eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch" - fi - - # Only add paxmark patch when we're on pax_kernel - if use pax_kernel ; then - eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch - fi - - eapply "${WORKDIR}/patches" - - eapply_user -} - -doecho() { - echo "$@" - "$@" || die -} - -src_configure() { - local myconf=( - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" - --disable-dbus - --disable-kmods - $(usex alsa '' --disable-alsa) - $(usex debug --build-debug '') - $(usex doc '' --disable-docs) - $(usex java '' --disable-java) - $(usex lvm '' --disable-devmapper) - $(usex opus '' --disable-libopus) - $(usex pulseaudio '' --disable-pulse) - $(usex python '' --disable-python) - $(usex vboxwebsrv --enable-webservice '') - $(usex vnc --enable-vnc '') - ) - if ! use headless ; then - myconf+=( - $(usex opengl '' --disable-opengl) - $(usex qt5 '' --disable-qt) - ) - else - myconf+=( - --build-headless - --disable-opengl - ) - fi - if use amd64 && ! has_multilib_profile ; then - myconf+=( --disable-vmmraw ) - fi - # not an autoconf script - doecho ./configure ${myconf[@]} -} - -src_compile() { - source ./env.sh || die - - # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) - MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \ - all -} - -src_install() { - cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die - - local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile - - vbox_inst() { - local binary="${1}" - local perms="${2:-0750}" - local path="${3:-${vbox_inst_path}}" - - [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" - [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." - - insinto ${path} - doins ${binary} - fowners root:vboxusers ${path}/${binary} - fperms ${perms} ${path}/${binary} - } - - # Create configuration files - insinto /etc/vbox - newins "${FILESDIR}/${PN}-4-config" vbox.cfg - - # Set the correct libdir - sed \ - -e "s@MY_LIBDIR@$(get_libdir)@" \ - -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" - - # Install the wrapper script - exeinto ${vbox_inst_path} - newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" - fowners root:vboxusers ${vbox_inst_path}/VBox - fperms 0750 ${vbox_inst_path}/VBox - - # Install binaries and libraries - insinto ${vbox_inst_path} - doins -r components - - # *.rc files for x86_64 are only available on multilib systems - local rcfiles="*.rc" - if use amd64 && ! has_multilib_profile ; then - rcfiles="" - fi - for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} *so *r0 ${rcfiles} iPxeBaseBin ; do - vbox_inst ${each} - done - - # These binaries need to be suid root. - for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do - vbox_inst ${each} 4750 - done - - # Install EFI Firmware files (bug #320757) - for each in VBoxEFI{32,64}.fd ; do - vbox_inst ${each} 0644 - done - - # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) - # VBoxXPCOMIPCD (bug #524202) - for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - # Symlink binaries to the shipped wrapper - for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl - - if use pam ; then - # VRDPAuth only works with this (bug #351949) - dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so - fi - - # set an env-variable for 3rd party tools - echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" - doenvd "${T}/90virtualbox" - - if ! use headless ; then - vbox_inst rdesktop-vrdp - vbox_inst VBoxSDL 4750 - pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL - - for each in vboxsdl VBoxSDL ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - if use qt5 ; then - vbox_inst VirtualBox - vbox_inst VirtualBoxVM 4750 - for each in VirtualBox{,VM} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - if use opengl ; then - vbox_inst VBoxTestOGL - pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL - fi - - for each in virtualbox{,vm} VirtualBox{,VM} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - insinto /usr/share/${PN} - doins -r nls - doins -r UnattendedTemplates - - domenu ${PN}.desktop - fi - - pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die - for size in 16 32 48 64 128 ; do - newicon -s ${size} ${PN}-${size}px.png ${PN}.png - done - newicon ${PN}-48px.png ${PN}.png - doicon -s scalable ${PN}.svg - popd &>/dev/null || die - pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die - for size in 16 24 32 48 64 72 96 128 256 512 ; do - for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do - icofile="${PN}-${ico}-${size}px.png" - if [[ -f "${icofile}" ]] ; then - newicon -s ${size} ${icofile} ${PN}-${ico}.png - fi - done - done - popd &>/dev/null || die - fi - - if use lvm ; then - vbox_inst VBoxVolInfo 4750 - dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo - fi - - if use sdk ; then - insinto ${vbox_inst_path} - doins -r sdk - - if use java ; then - java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" - java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" - fi - fi - - if use udev ; then - # New way of handling USB device nodes for VBox (bug #356215) - local udevdir="$(get_udevdir)" - insinto ${udevdir} - doins VBoxCreateUSBNode.sh - fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh - fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh - insinto ${udevdir}/rules.d - sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \ - > "${T}"/10-virtualbox.rules || die - doins "${T}"/10-virtualbox.rules - fi - - if use vboxwebsrv ; then - vbox_inst vboxwebsrv - dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv - newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv - newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv - fi - - # Fix version string in extensions or else they don't get accepted - # by the virtualbox host process (see bug #438930) - find ExtensionPacks -type f -name "ExtPack.xml" -print0 \ - | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \ - || die - - local extensions_dir="${vbox_inst_path}/ExtensionPacks" - - if use vnc ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/VNC - fi - - if use dtrace ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack - fi - - if use doc ; then - dodoc UserManual.pdf - fi - - newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf -} - -pkg_preinst() { - xdg_pkg_preinst -} - -pkg_postinst() { - xdg_pkg_postinst - - if use udev ; then - udevadm control --reload-rules \ - && udevadm trigger --subsystem-match=usb - fi - - tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf - - if ! use headless && use qt5 ; then - elog "To launch VirtualBox just type: \"virtualbox\"." - fi - elog "You must be in the vboxusers group to use VirtualBox." - elog "" - elog "The latest user manual is available for download at:" - elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" - elog "" - elog "For advanced networking setups you should emerge:" - elog "net-misc/bridge-utils and sys-apps/usermode-utilities" - elog "" - elog "Starting with version 4.0.0, ${PN} has USB-1 support." - elog "For USB-2 support, PXE-boot ability and VRDP support please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - elog "package." - elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and" - elog "the \"extension\" USE flag. For installation of the guest additions ISO" - elog "image, please emerge" - elog " app-emulation/virtualbox-additions" - elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - if ! use udev ; then - elog "" - elog "WARNING!" - elog "Without USE=udev, USB devices will likely not work in ${PN}." - elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then - elog "" - elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\"" - elog "or else USB in ${PN} won't work." - fi -} - -pkg_postrm() { - xdg_pkg_postrm -} diff --git a/app-emulation/virtualbox/virtualbox-6.1.12a.ebuild b/app-emulation/virtualbox/virtualbox-6.1.12a.ebuild deleted file mode 100644 index f207651526b6..000000000000 --- a/app-emulation/virtualbox/virtualbox-6.1.12a.ebuild +++ /dev/null @@ -1,512 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg - -MY_PN="VirtualBox" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}-${MY_PV} -[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" - -DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz" - -LICENSE="GPL-2 dtrace? ( CDDL )" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc" - -CDEPEND=" - ${PYTHON_DEPS} - !app-emulation/virtualbox-bin - acct-group/vboxusers - ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}} - dev-libs/libIDL - >=dev-libs/libxslt-1.1.19 - net-misc/curl - dev-libs/libxml2 - media-libs/libpng:0= - media-libs/libvpx:0= - sys-libs/zlib:= - !headless? ( - media-libs/libsdl:0[X,video] - x11-libs/libX11 - x11-libs/libxcb:= - x11-libs/libXcursor - x11-libs/libXext - x11-libs/libXmu - x11-libs/libXt - opengl? ( media-libs/libglvnd[X] ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - opengl? ( dev-qt/qtopengl:5 ) - x11-libs/libXinerama - ) - ) - libressl? ( dev-libs/libressl:= ) - !libressl? ( dev-libs/openssl:0= ) - lvm? ( sys-fs/lvm2 ) - opus? ( media-libs/opus ) - udev? ( >=virtual/udev-171 ) - vnc? ( >=net-libs/libvncserver-0.9.9 ) -" -DEPEND=" - ${CDEPEND} - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - !headless? ( - x11-libs/libXinerama - opengl? ( virtual/opengl ) - ) - pam? ( sys-libs/pam ) - pax_kernel? ( sys-apps/elfix ) - pulseaudio? ( media-sound/pulseaudio ) - qt5? ( dev-qt/linguist-tools:5 ) - vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) -" -BDEPEND=" - ${PYTHON_DEPS} - >=dev-util/kbuild-0.1.9998.3127 - >=dev-lang/yasm-0.6.2 - sys-devel/bin86 - sys-libs/libcap - sys-power/iasl - virtual/pkgconfig - doc? ( - app-text/docbook-sgml-dtd:4.4 - dev-texlive/texlive-basic - dev-texlive/texlive-latex - dev-texlive/texlive-latexrecommended - dev-texlive/texlive-latexextra - dev-texlive/texlive-fontsrecommended - dev-texlive/texlive-fontsextra - ) - java? ( >=virtual/jdk-1.6 ) -" -RDEPEND=" - ${CDEPEND} - java? ( >=virtual/jre-1.6 ) -" - -QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so - usr/lib/virtualbox/VBoxSDL.so - usr/lib/virtualbox/VBoxSharedFolders.so - usr/lib/virtualbox/VBoxDD2.so - usr/lib/virtualbox/VBoxOGLrenderspu.so - usr/lib/virtualbox/VBoxPython.so - usr/lib/virtualbox/VBoxDD.so - usr/lib/virtualbox/VBoxDDU.so - usr/lib/virtualbox/VBoxREM64.so - usr/lib/virtualbox/VBoxSharedClipboard.so - usr/lib/virtualbox/VBoxHeadless.so - usr/lib/virtualbox/VBoxRT.so - usr/lib/virtualbox/VBoxREM.so - usr/lib/virtualbox/VBoxSettings.so - usr/lib/virtualbox/VBoxKeyboard.so - usr/lib/virtualbox/VBoxSharedCrOpenGL.so - usr/lib/virtualbox/VBoxVMM.so - usr/lib/virtualbox/VirtualBox.so - usr/lib/virtualbox/VBoxOGLhosterrorspu.so - usr/lib/virtualbox/components/VBoxC.so - usr/lib/virtualbox/components/VBoxSVCM.so - usr/lib/virtualbox/components/VBoxDDU.so - usr/lib/virtualbox/components/VBoxRT.so - usr/lib/virtualbox/components/VBoxREM.so - usr/lib/virtualbox/components/VBoxVMM.so - usr/lib/virtualbox/VBoxREM32.so - usr/lib/virtualbox/VBoxPython2_7.so - usr/lib/virtualbox/VBoxXPCOMC.so - usr/lib/virtualbox/VBoxOGLhostcrutil.so - usr/lib/virtualbox/VBoxNetDHCP.so - usr/lib/virtualbox/VBoxNetNAT.so" - -S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}" - -REQUIRED_USE=" - java? ( sdk ) - python? ( sdk ) - vboxwebsrv? ( java ) - ${PYTHON_REQUIRED_USE} -" - -pkg_pretend() { - if ! use headless && ! use qt5 ; then - einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." - elif use headless && use qt5 ; then - einfo "You selected USE=\"headless qt5\", defaulting to" - einfo "USE=\"headless\", this build will not include any X11/Qt frontend." - fi - - if ! use opengl ; then - einfo "No USE=\"opengl\" selected, this build will lack" - einfo "the OpenGL feature." - fi - if ! use python ; then - einfo "You have disabled the \"python\" USE flag. This will only" - einfo "disable the python bindings being installed." - fi -} - -pkg_setup() { - java-pkg-opt-2_pkg_setup - python-single-r1_pkg_setup - - tc-ld-disable-gold #bug 488176 - tc-export CC CXX LD AR RANLIB - export HOST_CC="$(tc-getBUILD_CC)" -} - -src_prepare() { - # Remove shipped binaries (kBuild,yasm), see bug #232775 - rm -r kBuild/bin tools || die - - # Replace pointless GCC version check with something less stupid. - # This is needed for the qt5 version check. - sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ - -i configure || die - - # Disable things unused or split into separate ebuilds - sed -e "s@MY_LIBDIR@$(get_libdir)@" \ - "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die - - # Respect LDFLAGS - sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ - -i Config.kmk src/libs/xpcom18a4/Config.kmk || die - - # Do not use hard-coded ld (related to bug #488176) - sed -e '/QUIET)ld /s@ld @$(LD) @' \ - -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die - - # Use PAM only when pam USE flag is enbaled (bug #376531) - if ! use pam ; then - elog "Disabling PAM removes the possibility to use the VRDP features." - sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die - sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ - src/VBox/HostServices/Makefile.kmk || die - fi - - # add correct java path - if use java ; then - sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ - -i "${S}"/Config.kmk || die - java-pkg-opt-2_src_prepare - fi - - # Only add nopie patch when we're on hardened - if gcc-specs-pie ; then - eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch" - fi - - # Only add paxmark patch when we're on pax_kernel - if use pax_kernel ; then - eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch - fi - - eapply "${WORKDIR}/patches" - - eapply_user -} - -doecho() { - echo "$@" - "$@" || die -} - -src_configure() { - local myconf=( - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" - --disable-dbus - --disable-kmods - $(usex alsa '' --disable-alsa) - $(usex debug --build-debug '') - $(usex doc '' --disable-docs) - $(usex java '' --disable-java) - $(usex lvm '' --disable-devmapper) - $(usex opus '' --disable-libopus) - $(usex pulseaudio '' --disable-pulse) - $(usex python '' --disable-python) - $(usex vboxwebsrv --enable-webservice '') - $(usex vnc --enable-vnc '') - ) - if ! use headless ; then - myconf+=( - $(usex opengl '' --disable-opengl) - $(usex qt5 '' --disable-qt) - ) - else - myconf+=( - --build-headless - --disable-opengl - ) - fi - if use amd64 && ! has_multilib_profile ; then - myconf+=( --disable-vmmraw ) - fi - # not an autoconf script - doecho ./configure ${myconf[@]} -} - -src_compile() { - source ./env.sh || die - - # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) - MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \ - VBOX_WITH_VBOXIMGMOUNT=1 \ - all -} - -src_install() { - cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die - - local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile - - vbox_inst() { - local binary="${1}" - local perms="${2:-0750}" - local path="${3:-${vbox_inst_path}}" - - [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" - [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." - - insinto ${path} - doins ${binary} - fowners root:vboxusers ${path}/${binary} - fperms ${perms} ${path}/${binary} - } - - # Create configuration files - insinto /etc/vbox - newins "${FILESDIR}/${PN}-4-config" vbox.cfg - - # Set the correct libdir - sed \ - -e "s@MY_LIBDIR@$(get_libdir)@" \ - -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" - - # Install the wrapper script - exeinto ${vbox_inst_path} - newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" - fowners root:vboxusers ${vbox_inst_path}/VBox - fperms 0750 ${vbox_inst_path}/VBox - - # Install binaries and libraries - insinto ${vbox_inst_path} - doins -r components - - for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do - vbox_inst ${each} - done - - # These binaries need to be suid root. - for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do - vbox_inst ${each} 4750 - done - - # Install EFI Firmware files (bug #320757) - for each in VBoxEFI{32,64}.fd ; do - vbox_inst ${each} 0644 - done - - # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) - # VBoxXPCOMIPCD (bug #524202) - for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - # Symlink binaries to the shipped wrapper - for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl - dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount - - if use pam ; then - # VRDPAuth only works with this (bug #351949) - dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so - fi - - # set an env-variable for 3rd party tools - echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" - doenvd "${T}/90virtualbox" - - if ! use headless ; then - vbox_inst rdesktop-vrdp - vbox_inst VBoxSDL 4750 - pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL - - for each in vboxsdl VBoxSDL ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - if use qt5 ; then - vbox_inst VirtualBox - vbox_inst VirtualBoxVM 4750 - for each in VirtualBox{,VM} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - if use opengl ; then - vbox_inst VBoxTestOGL - pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL - fi - - for each in virtualbox{,vm} VirtualBox{,VM} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - insinto /usr/share/${PN} - doins -r nls - doins -r UnattendedTemplates - - domenu ${PN}.desktop - fi - - pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die - for size in 16 32 48 64 128 ; do - newicon -s ${size} ${PN}-${size}px.png ${PN}.png - done - newicon ${PN}-48px.png ${PN}.png - doicon -s scalable ${PN}.svg - popd &>/dev/null || die - pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die - for size in 16 24 32 48 64 72 96 128 256 512 ; do - for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do - icofile="${PN}-${ico}-${size}px.png" - if [[ -f "${icofile}" ]] ; then - newicon -s ${size} ${icofile} ${PN}-${ico}.png - fi - done - done - popd &>/dev/null || die - fi - - if use lvm ; then - vbox_inst VBoxVolInfo 4750 - dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo - fi - - if use sdk ; then - insinto ${vbox_inst_path} - doins -r sdk - - if use java ; then - java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" - java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" - fi - fi - - if use udev ; then - # New way of handling USB device nodes for VBox (bug #356215) - local udevdir="$(get_udevdir)" - insinto ${udevdir} - doins VBoxCreateUSBNode.sh - fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh - fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh - insinto ${udevdir}/rules.d - sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \ - > "${T}"/10-virtualbox.rules || die - doins "${T}"/10-virtualbox.rules - fi - - if use vboxwebsrv ; then - vbox_inst vboxwebsrv - dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv - newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv - newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv - fi - - # Remove dead symlinks (bug #715338) - find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die - - # Fix version string in extensions or else they don't get accepted - # by the virtualbox host process (see bug #438930) - find ExtensionPacks -type f -name "ExtPack.xml" -print0 \ - | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \ - || die - - local extensions_dir="${vbox_inst_path}/ExtensionPacks" - - if use vnc ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/VNC - fi - - if use dtrace ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack - fi - - if use doc ; then - dodoc UserManual.pdf - fi - - newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf -} - -pkg_preinst() { - xdg_pkg_preinst -} - -pkg_postinst() { - xdg_pkg_postinst - - if use udev ; then - udevadm control --reload-rules \ - && udevadm trigger --subsystem-match=usb - fi - - tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf - - if ! use headless && use qt5 ; then - elog "To launch VirtualBox just type: \"virtualbox\"." - fi - elog "You must be in the vboxusers group to use VirtualBox." - elog "" - elog "The latest user manual is available for download at:" - elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf" - elog "" - elog "For advanced networking setups you should emerge:" - elog "net-misc/bridge-utils and sys-apps/usermode-utilities" - elog "" - elog "Starting with version 4.0.0, ${PN} has USB-1 support." - elog "For USB-2 support, PXE-boot ability and VRDP support please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - elog "package." - elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and" - elog "the \"extension\" USE flag. For installation of the guest additions ISO" - elog "image, please emerge" - elog " app-emulation/virtualbox-additions" - elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - if ! use udev ; then - elog "" - elog "WARNING!" - elog "Without USE=udev, USB devices will likely not work in ${PN}." - elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then - elog "" - elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\"" - elog "or else USB in ${PN} won't work." - fi -} - -pkg_postrm() { - xdg_pkg_postrm -} diff --git a/app-emulation/virtualbox/virtualbox-6.1.14a.ebuild b/app-emulation/virtualbox/virtualbox-6.1.14a.ebuild deleted file mode 100644 index f207651526b6..000000000000 --- a/app-emulation/virtualbox/virtualbox-6.1.14a.ebuild +++ /dev/null @@ -1,512 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg - -MY_PN="VirtualBox" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}-${MY_PV} -[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" - -DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz" - -LICENSE="GPL-2 dtrace? ( CDDL )" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc" - -CDEPEND=" - ${PYTHON_DEPS} - !app-emulation/virtualbox-bin - acct-group/vboxusers - ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}} - dev-libs/libIDL - >=dev-libs/libxslt-1.1.19 - net-misc/curl - dev-libs/libxml2 - media-libs/libpng:0= - media-libs/libvpx:0= - sys-libs/zlib:= - !headless? ( - media-libs/libsdl:0[X,video] - x11-libs/libX11 - x11-libs/libxcb:= - x11-libs/libXcursor - x11-libs/libXext - x11-libs/libXmu - x11-libs/libXt - opengl? ( media-libs/libglvnd[X] ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - opengl? ( dev-qt/qtopengl:5 ) - x11-libs/libXinerama - ) - ) - libressl? ( dev-libs/libressl:= ) - !libressl? ( dev-libs/openssl:0= ) - lvm? ( sys-fs/lvm2 ) - opus? ( media-libs/opus ) - udev? ( >=virtual/udev-171 ) - vnc? ( >=net-libs/libvncserver-0.9.9 ) -" -DEPEND=" - ${CDEPEND} - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - !headless? ( - x11-libs/libXinerama - opengl? ( virtual/opengl ) - ) - pam? ( sys-libs/pam ) - pax_kernel? ( sys-apps/elfix ) - pulseaudio? ( media-sound/pulseaudio ) - qt5? ( dev-qt/linguist-tools:5 ) - vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) -" -BDEPEND=" - ${PYTHON_DEPS} - >=dev-util/kbuild-0.1.9998.3127 - >=dev-lang/yasm-0.6.2 - sys-devel/bin86 - sys-libs/libcap - sys-power/iasl - virtual/pkgconfig - doc? ( - app-text/docbook-sgml-dtd:4.4 - dev-texlive/texlive-basic - dev-texlive/texlive-latex - dev-texlive/texlive-latexrecommended - dev-texlive/texlive-latexextra - dev-texlive/texlive-fontsrecommended - dev-texlive/texlive-fontsextra - ) - java? ( >=virtual/jdk-1.6 ) -" -RDEPEND=" - ${CDEPEND} - java? ( >=virtual/jre-1.6 ) -" - -QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so - usr/lib/virtualbox/VBoxSDL.so - usr/lib/virtualbox/VBoxSharedFolders.so - usr/lib/virtualbox/VBoxDD2.so - usr/lib/virtualbox/VBoxOGLrenderspu.so - usr/lib/virtualbox/VBoxPython.so - usr/lib/virtualbox/VBoxDD.so - usr/lib/virtualbox/VBoxDDU.so - usr/lib/virtualbox/VBoxREM64.so - usr/lib/virtualbox/VBoxSharedClipboard.so - usr/lib/virtualbox/VBoxHeadless.so - usr/lib/virtualbox/VBoxRT.so - usr/lib/virtualbox/VBoxREM.so - usr/lib/virtualbox/VBoxSettings.so - usr/lib/virtualbox/VBoxKeyboard.so - usr/lib/virtualbox/VBoxSharedCrOpenGL.so - usr/lib/virtualbox/VBoxVMM.so - usr/lib/virtualbox/VirtualBox.so - usr/lib/virtualbox/VBoxOGLhosterrorspu.so - usr/lib/virtualbox/components/VBoxC.so - usr/lib/virtualbox/components/VBoxSVCM.so - usr/lib/virtualbox/components/VBoxDDU.so - usr/lib/virtualbox/components/VBoxRT.so - usr/lib/virtualbox/components/VBoxREM.so - usr/lib/virtualbox/components/VBoxVMM.so - usr/lib/virtualbox/VBoxREM32.so - usr/lib/virtualbox/VBoxPython2_7.so - usr/lib/virtualbox/VBoxXPCOMC.so - usr/lib/virtualbox/VBoxOGLhostcrutil.so - usr/lib/virtualbox/VBoxNetDHCP.so - usr/lib/virtualbox/VBoxNetNAT.so" - -S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}" - -REQUIRED_USE=" - java? ( sdk ) - python? ( sdk ) - vboxwebsrv? ( java ) - ${PYTHON_REQUIRED_USE} -" - -pkg_pretend() { - if ! use headless && ! use qt5 ; then - einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." - elif use headless && use qt5 ; then - einfo "You selected USE=\"headless qt5\", defaulting to" - einfo "USE=\"headless\", this build will not include any X11/Qt frontend." - fi - - if ! use opengl ; then - einfo "No USE=\"opengl\" selected, this build will lack" - einfo "the OpenGL feature." - fi - if ! use python ; then - einfo "You have disabled the \"python\" USE flag. This will only" - einfo "disable the python bindings being installed." - fi -} - -pkg_setup() { - java-pkg-opt-2_pkg_setup - python-single-r1_pkg_setup - - tc-ld-disable-gold #bug 488176 - tc-export CC CXX LD AR RANLIB - export HOST_CC="$(tc-getBUILD_CC)" -} - -src_prepare() { - # Remove shipped binaries (kBuild,yasm), see bug #232775 - rm -r kBuild/bin tools || die - - # Replace pointless GCC version check with something less stupid. - # This is needed for the qt5 version check. - sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ - -i configure || die - - # Disable things unused or split into separate ebuilds - sed -e "s@MY_LIBDIR@$(get_libdir)@" \ - "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die - - # Respect LDFLAGS - sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ - -i Config.kmk src/libs/xpcom18a4/Config.kmk || die - - # Do not use hard-coded ld (related to bug #488176) - sed -e '/QUIET)ld /s@ld @$(LD) @' \ - -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die - - # Use PAM only when pam USE flag is enbaled (bug #376531) - if ! use pam ; then - elog "Disabling PAM removes the possibility to use the VRDP features." - sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die - sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ - src/VBox/HostServices/Makefile.kmk || die - fi - - # add correct java path - if use java ; then - sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ - -i "${S}"/Config.kmk || die - java-pkg-opt-2_src_prepare - fi - - # Only add nopie patch when we're on hardened - if gcc-specs-pie ; then - eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch" - fi - - # Only add paxmark patch when we're on pax_kernel - if use pax_kernel ; then - eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch - fi - - eapply "${WORKDIR}/patches" - - eapply_user -} - -doecho() { - echo "$@" - "$@" || die -} - -src_configure() { - local myconf=( - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" - --disable-dbus - --disable-kmods - $(usex alsa '' --disable-alsa) - $(usex debug --build-debug '') - $(usex doc '' --disable-docs) - $(usex java '' --disable-java) - $(usex lvm '' --disable-devmapper) - $(usex opus '' --disable-libopus) - $(usex pulseaudio '' --disable-pulse) - $(usex python '' --disable-python) - $(usex vboxwebsrv --enable-webservice '') - $(usex vnc --enable-vnc '') - ) - if ! use headless ; then - myconf+=( - $(usex opengl '' --disable-opengl) - $(usex qt5 '' --disable-qt) - ) - else - myconf+=( - --build-headless - --disable-opengl - ) - fi - if use amd64 && ! has_multilib_profile ; then - myconf+=( --disable-vmmraw ) - fi - # not an autoconf script - doecho ./configure ${myconf[@]} -} - -src_compile() { - source ./env.sh || die - - # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) - MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \ - VBOX_WITH_VBOXIMGMOUNT=1 \ - all -} - -src_install() { - cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die - - local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile - - vbox_inst() { - local binary="${1}" - local perms="${2:-0750}" - local path="${3:-${vbox_inst_path}}" - - [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" - [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." - - insinto ${path} - doins ${binary} - fowners root:vboxusers ${path}/${binary} - fperms ${perms} ${path}/${binary} - } - - # Create configuration files - insinto /etc/vbox - newins "${FILESDIR}/${PN}-4-config" vbox.cfg - - # Set the correct libdir - sed \ - -e "s@MY_LIBDIR@$(get_libdir)@" \ - -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" - - # Install the wrapper script - exeinto ${vbox_inst_path} - newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" - fowners root:vboxusers ${vbox_inst_path}/VBox - fperms 0750 ${vbox_inst_path}/VBox - - # Install binaries and libraries - insinto ${vbox_inst_path} - doins -r components - - for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do - vbox_inst ${each} - done - - # These binaries need to be suid root. - for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do - vbox_inst ${each} 4750 - done - - # Install EFI Firmware files (bug #320757) - for each in VBoxEFI{32,64}.fd ; do - vbox_inst ${each} 0644 - done - - # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) - # VBoxXPCOMIPCD (bug #524202) - for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - # Symlink binaries to the shipped wrapper - for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl - dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount - - if use pam ; then - # VRDPAuth only works with this (bug #351949) - dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so - fi - - # set an env-variable for 3rd party tools - echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" - doenvd "${T}/90virtualbox" - - if ! use headless ; then - vbox_inst rdesktop-vrdp - vbox_inst VBoxSDL 4750 - pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL - - for each in vboxsdl VBoxSDL ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - if use qt5 ; then - vbox_inst VirtualBox - vbox_inst VirtualBoxVM 4750 - for each in VirtualBox{,VM} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - if use opengl ; then - vbox_inst VBoxTestOGL - pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL - fi - - for each in virtualbox{,vm} VirtualBox{,VM} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - insinto /usr/share/${PN} - doins -r nls - doins -r UnattendedTemplates - - domenu ${PN}.desktop - fi - - pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die - for size in 16 32 48 64 128 ; do - newicon -s ${size} ${PN}-${size}px.png ${PN}.png - done - newicon ${PN}-48px.png ${PN}.png - doicon -s scalable ${PN}.svg - popd &>/dev/null || die - pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die - for size in 16 24 32 48 64 72 96 128 256 512 ; do - for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do - icofile="${PN}-${ico}-${size}px.png" - if [[ -f "${icofile}" ]] ; then - newicon -s ${size} ${icofile} ${PN}-${ico}.png - fi - done - done - popd &>/dev/null || die - fi - - if use lvm ; then - vbox_inst VBoxVolInfo 4750 - dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo - fi - - if use sdk ; then - insinto ${vbox_inst_path} - doins -r sdk - - if use java ; then - java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" - java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" - fi - fi - - if use udev ; then - # New way of handling USB device nodes for VBox (bug #356215) - local udevdir="$(get_udevdir)" - insinto ${udevdir} - doins VBoxCreateUSBNode.sh - fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh - fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh - insinto ${udevdir}/rules.d - sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \ - > "${T}"/10-virtualbox.rules || die - doins "${T}"/10-virtualbox.rules - fi - - if use vboxwebsrv ; then - vbox_inst vboxwebsrv - dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv - newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv - newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv - fi - - # Remove dead symlinks (bug #715338) - find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die - - # Fix version string in extensions or else they don't get accepted - # by the virtualbox host process (see bug #438930) - find ExtensionPacks -type f -name "ExtPack.xml" -print0 \ - | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \ - || die - - local extensions_dir="${vbox_inst_path}/ExtensionPacks" - - if use vnc ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/VNC - fi - - if use dtrace ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack - fi - - if use doc ; then - dodoc UserManual.pdf - fi - - newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf -} - -pkg_preinst() { - xdg_pkg_preinst -} - -pkg_postinst() { - xdg_pkg_postinst - - if use udev ; then - udevadm control --reload-rules \ - && udevadm trigger --subsystem-match=usb - fi - - tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf - - if ! use headless && use qt5 ; then - elog "To launch VirtualBox just type: \"virtualbox\"." - fi - elog "You must be in the vboxusers group to use VirtualBox." - elog "" - elog "The latest user manual is available for download at:" - elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf" - elog "" - elog "For advanced networking setups you should emerge:" - elog "net-misc/bridge-utils and sys-apps/usermode-utilities" - elog "" - elog "Starting with version 4.0.0, ${PN} has USB-1 support." - elog "For USB-2 support, PXE-boot ability and VRDP support please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - elog "package." - elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and" - elog "the \"extension\" USE flag. For installation of the guest additions ISO" - elog "image, please emerge" - elog " app-emulation/virtualbox-additions" - elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - if ! use udev ; then - elog "" - elog "WARNING!" - elog "Without USE=udev, USB devices will likely not work in ${PN}." - elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then - elog "" - elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\"" - elog "or else USB in ${PN} won't work." - fi -} - -pkg_postrm() { - xdg_pkg_postrm -} diff --git a/app-emulation/virtualbox/virtualbox-6.1.16.ebuild b/app-emulation/virtualbox/virtualbox-6.1.16.ebuild deleted file mode 100644 index f207651526b6..000000000000 --- a/app-emulation/virtualbox/virtualbox-6.1.16.ebuild +++ /dev/null @@ -1,512 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg - -MY_PN="VirtualBox" -MY_PV="${PV/beta/BETA}" -MY_PV="${MY_PV/rc/RC}" -MY_P=${MY_PN}-${MY_PV} -[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)" - -DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" -HOMEPAGE="https://www.virtualbox.org/" -SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2 - https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz" - -LICENSE="GPL-2 dtrace? ( CDDL )" -SLOT="0" -[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \ -KEYWORDS="~amd64" -IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc" - -CDEPEND=" - ${PYTHON_DEPS} - !app-emulation/virtualbox-bin - acct-group/vboxusers - ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}} - dev-libs/libIDL - >=dev-libs/libxslt-1.1.19 - net-misc/curl - dev-libs/libxml2 - media-libs/libpng:0= - media-libs/libvpx:0= - sys-libs/zlib:= - !headless? ( - media-libs/libsdl:0[X,video] - x11-libs/libX11 - x11-libs/libxcb:= - x11-libs/libXcursor - x11-libs/libXext - x11-libs/libXmu - x11-libs/libXt - opengl? ( media-libs/libglvnd[X] ) - qt5? ( - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 - dev-qt/qtx11extras:5 - opengl? ( dev-qt/qtopengl:5 ) - x11-libs/libXinerama - ) - ) - libressl? ( dev-libs/libressl:= ) - !libressl? ( dev-libs/openssl:0= ) - lvm? ( sys-fs/lvm2 ) - opus? ( media-libs/opus ) - udev? ( >=virtual/udev-171 ) - vnc? ( >=net-libs/libvncserver-0.9.9 ) -" -DEPEND=" - ${CDEPEND} - alsa? ( >=media-libs/alsa-lib-1.0.13 ) - !headless? ( - x11-libs/libXinerama - opengl? ( virtual/opengl ) - ) - pam? ( sys-libs/pam ) - pax_kernel? ( sys-apps/elfix ) - pulseaudio? ( media-sound/pulseaudio ) - qt5? ( dev-qt/linguist-tools:5 ) - vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) -" -BDEPEND=" - ${PYTHON_DEPS} - >=dev-util/kbuild-0.1.9998.3127 - >=dev-lang/yasm-0.6.2 - sys-devel/bin86 - sys-libs/libcap - sys-power/iasl - virtual/pkgconfig - doc? ( - app-text/docbook-sgml-dtd:4.4 - dev-texlive/texlive-basic - dev-texlive/texlive-latex - dev-texlive/texlive-latexrecommended - dev-texlive/texlive-latexextra - dev-texlive/texlive-fontsrecommended - dev-texlive/texlive-fontsextra - ) - java? ( >=virtual/jdk-1.6 ) -" -RDEPEND=" - ${CDEPEND} - java? ( >=virtual/jre-1.6 ) -" - -QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so - usr/lib/virtualbox/VBoxSDL.so - usr/lib/virtualbox/VBoxSharedFolders.so - usr/lib/virtualbox/VBoxDD2.so - usr/lib/virtualbox/VBoxOGLrenderspu.so - usr/lib/virtualbox/VBoxPython.so - usr/lib/virtualbox/VBoxDD.so - usr/lib/virtualbox/VBoxDDU.so - usr/lib/virtualbox/VBoxREM64.so - usr/lib/virtualbox/VBoxSharedClipboard.so - usr/lib/virtualbox/VBoxHeadless.so - usr/lib/virtualbox/VBoxRT.so - usr/lib/virtualbox/VBoxREM.so - usr/lib/virtualbox/VBoxSettings.so - usr/lib/virtualbox/VBoxKeyboard.so - usr/lib/virtualbox/VBoxSharedCrOpenGL.so - usr/lib/virtualbox/VBoxVMM.so - usr/lib/virtualbox/VirtualBox.so - usr/lib/virtualbox/VBoxOGLhosterrorspu.so - usr/lib/virtualbox/components/VBoxC.so - usr/lib/virtualbox/components/VBoxSVCM.so - usr/lib/virtualbox/components/VBoxDDU.so - usr/lib/virtualbox/components/VBoxRT.so - usr/lib/virtualbox/components/VBoxREM.so - usr/lib/virtualbox/components/VBoxVMM.so - usr/lib/virtualbox/VBoxREM32.so - usr/lib/virtualbox/VBoxPython2_7.so - usr/lib/virtualbox/VBoxXPCOMC.so - usr/lib/virtualbox/VBoxOGLhostcrutil.so - usr/lib/virtualbox/VBoxNetDHCP.so - usr/lib/virtualbox/VBoxNetNAT.so" - -S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}" - -REQUIRED_USE=" - java? ( sdk ) - python? ( sdk ) - vboxwebsrv? ( java ) - ${PYTHON_REQUIRED_USE} -" - -pkg_pretend() { - if ! use headless && ! use qt5 ; then - einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." - elif use headless && use qt5 ; then - einfo "You selected USE=\"headless qt5\", defaulting to" - einfo "USE=\"headless\", this build will not include any X11/Qt frontend." - fi - - if ! use opengl ; then - einfo "No USE=\"opengl\" selected, this build will lack" - einfo "the OpenGL feature." - fi - if ! use python ; then - einfo "You have disabled the \"python\" USE flag. This will only" - einfo "disable the python bindings being installed." - fi -} - -pkg_setup() { - java-pkg-opt-2_pkg_setup - python-single-r1_pkg_setup - - tc-ld-disable-gold #bug 488176 - tc-export CC CXX LD AR RANLIB - export HOST_CC="$(tc-getBUILD_CC)" -} - -src_prepare() { - # Remove shipped binaries (kBuild,yasm), see bug #232775 - rm -r kBuild/bin tools || die - - # Replace pointless GCC version check with something less stupid. - # This is needed for the qt5 version check. - sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ - -i configure || die - - # Disable things unused or split into separate ebuilds - sed -e "s@MY_LIBDIR@$(get_libdir)@" \ - "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die - - # Respect LDFLAGS - sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ - -i Config.kmk src/libs/xpcom18a4/Config.kmk || die - - # Do not use hard-coded ld (related to bug #488176) - sed -e '/QUIET)ld /s@ld @$(LD) @' \ - -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die - - # Use PAM only when pam USE flag is enbaled (bug #376531) - if ! use pam ; then - elog "Disabling PAM removes the possibility to use the VRDP features." - sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die - sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ - src/VBox/HostServices/Makefile.kmk || die - fi - - # add correct java path - if use java ; then - sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ - -i "${S}"/Config.kmk || die - java-pkg-opt-2_src_prepare - fi - - # Only add nopie patch when we're on hardened - if gcc-specs-pie ; then - eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch" - fi - - # Only add paxmark patch when we're on pax_kernel - if use pax_kernel ; then - eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch - fi - - eapply "${WORKDIR}/patches" - - eapply_user -} - -doecho() { - echo "$@" - "$@" || die -} - -src_configure() { - local myconf=( - --with-gcc="$(tc-getCC)" - --with-g++="$(tc-getCXX)" - --disable-dbus - --disable-kmods - $(usex alsa '' --disable-alsa) - $(usex debug --build-debug '') - $(usex doc '' --disable-docs) - $(usex java '' --disable-java) - $(usex lvm '' --disable-devmapper) - $(usex opus '' --disable-libopus) - $(usex pulseaudio '' --disable-pulse) - $(usex python '' --disable-python) - $(usex vboxwebsrv --enable-webservice '') - $(usex vnc --enable-vnc '') - ) - if ! use headless ; then - myconf+=( - $(usex opengl '' --disable-opengl) - $(usex qt5 '' --disable-qt) - ) - else - myconf+=( - --build-headless - --disable-opengl - ) - fi - if use amd64 && ! has_multilib_profile ; then - myconf+=( --disable-vmmraw ) - fi - # not an autoconf script - doecho ./configure ${myconf[@]} -} - -src_compile() { - source ./env.sh || die - - # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) - MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #' - MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" - MAKE="kmk" emake \ - VBOX_BUILD_PUBLISHER=_Gentoo \ - TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \ - TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \ - TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \ - VBOX_WITH_VBOXIMGMOUNT=1 \ - all -} - -src_install() { - cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die - - local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile - - vbox_inst() { - local binary="${1}" - local perms="${2:-0750}" - local path="${3:-${vbox_inst_path}}" - - [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" - [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." - - insinto ${path} - doins ${binary} - fowners root:vboxusers ${path}/${binary} - fperms ${perms} ${path}/${binary} - } - - # Create configuration files - insinto /etc/vbox - newins "${FILESDIR}/${PN}-4-config" vbox.cfg - - # Set the correct libdir - sed \ - -e "s@MY_LIBDIR@$(get_libdir)@" \ - -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" - - # Install the wrapper script - exeinto ${vbox_inst_path} - newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" - fowners root:vboxusers ${vbox_inst_path}/VBox - fperms 0750 ${vbox_inst_path}/VBox - - # Install binaries and libraries - insinto ${vbox_inst_path} - doins -r components - - for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do - vbox_inst ${each} - done - - # These binaries need to be suid root. - for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do - vbox_inst ${each} 4750 - done - - # Install EFI Firmware files (bug #320757) - for each in VBoxEFI{32,64}.fd ; do - vbox_inst ${each} 0644 - done - - # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) - # VBoxXPCOMIPCD (bug #524202) - for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - # Symlink binaries to the shipped wrapper - for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl - dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount - - if use pam ; then - # VRDPAuth only works with this (bug #351949) - dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so - fi - - # set an env-variable for 3rd party tools - echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" - doenvd "${T}/90virtualbox" - - if ! use headless ; then - vbox_inst rdesktop-vrdp - vbox_inst VBoxSDL 4750 - pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL - - for each in vboxsdl VBoxSDL ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - if use qt5 ; then - vbox_inst VirtualBox - vbox_inst VirtualBoxVM 4750 - for each in VirtualBox{,VM} ; do - pax-mark -m "${ED}"${vbox_inst_path}/${each} - done - - if use opengl ; then - vbox_inst VBoxTestOGL - pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL - fi - - for each in virtualbox{,vm} VirtualBox{,VM} ; do - dosym ${vbox_inst_path}/VBox /usr/bin/${each} - done - - insinto /usr/share/${PN} - doins -r nls - doins -r UnattendedTemplates - - domenu ${PN}.desktop - fi - - pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die - for size in 16 32 48 64 128 ; do - newicon -s ${size} ${PN}-${size}px.png ${PN}.png - done - newicon ${PN}-48px.png ${PN}.png - doicon -s scalable ${PN}.svg - popd &>/dev/null || die - pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die - for size in 16 24 32 48 64 72 96 128 256 512 ; do - for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do - icofile="${PN}-${ico}-${size}px.png" - if [[ -f "${icofile}" ]] ; then - newicon -s ${size} ${icofile} ${PN}-${ico}.png - fi - done - done - popd &>/dev/null || die - fi - - if use lvm ; then - vbox_inst VBoxVolInfo 4750 - dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo - fi - - if use sdk ; then - insinto ${vbox_inst_path} - doins -r sdk - - if use java ; then - java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" - java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" - fi - fi - - if use udev ; then - # New way of handling USB device nodes for VBox (bug #356215) - local udevdir="$(get_udevdir)" - insinto ${udevdir} - doins VBoxCreateUSBNode.sh - fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh - fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh - insinto ${udevdir}/rules.d - sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \ - > "${T}"/10-virtualbox.rules || die - doins "${T}"/10-virtualbox.rules - fi - - if use vboxwebsrv ; then - vbox_inst vboxwebsrv - dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv - newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv - newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv - fi - - # Remove dead symlinks (bug #715338) - find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die - - # Fix version string in extensions or else they don't get accepted - # by the virtualbox host process (see bug #438930) - find ExtensionPacks -type f -name "ExtPack.xml" -print0 \ - | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \ - || die - - local extensions_dir="${vbox_inst_path}/ExtensionPacks" - - if use vnc ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/VNC - fi - - if use dtrace ; then - insinto ${extensions_dir} - doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack - fi - - if use doc ; then - dodoc UserManual.pdf - fi - - newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf -} - -pkg_preinst() { - xdg_pkg_preinst -} - -pkg_postinst() { - xdg_pkg_postinst - - if use udev ; then - udevadm control --reload-rules \ - && udevadm trigger --subsystem-match=usb - fi - - tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf - - if ! use headless && use qt5 ; then - elog "To launch VirtualBox just type: \"virtualbox\"." - fi - elog "You must be in the vboxusers group to use VirtualBox." - elog "" - elog "The latest user manual is available for download at:" - elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf" - elog "" - elog "For advanced networking setups you should emerge:" - elog "net-misc/bridge-utils and sys-apps/usermode-utilities" - elog "" - elog "Starting with version 4.0.0, ${PN} has USB-1 support." - elog "For USB-2 support, PXE-boot ability and VRDP support please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - elog "package." - elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and" - elog "the \"extension\" USE flag. For installation of the guest additions ISO" - elog "image, please emerge" - elog " app-emulation/virtualbox-additions" - elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge" - elog " app-emulation/virtualbox-extpack-oracle" - if ! use udev ; then - elog "" - elog "WARNING!" - elog "Without USE=udev, USB devices will likely not work in ${PN}." - elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then - elog "" - elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\"" - elog "or else USB in ${PN} won't work." - fi -} - -pkg_postrm() { - xdg_pkg_postrm -} diff --git a/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild b/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild new file mode 100644 index 000000000000..73aee19fe61f --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild @@ -0,0 +1,677 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2 dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" +IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + >=dev-libs/libxslt-1.1.19 + net-misc/curl + dev-libs/libxml2 + media-libs/libpng:0= + media-libs/libvpx:0= + sys-libs/zlib:= + !headless? ( + sdl? ( media-libs/libsdl:0[X,video] ) + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + opengl? ( + media-libs/libglvnd[X] + virtual/glu + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + opengl? ( dev-qt/qtopengl:5 ) + x11-libs/libXinerama + ) + ) + dev-libs/openssl:0= + virtual/libcrypt:= + lvm? ( sys-fs/lvm2 ) + opus? ( media-libs/opus ) + udev? ( >=virtual/udev-171 ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + !headless? ( + x11-libs/libXinerama + x11-libs/libXrandr + opengl? ( virtual/opengl ) + ) + java? ( virtual/jdk:1.8 ) + pam? ( sys-libs/pam ) + pax-kernel? ( sys-apps/elfix ) + pulseaudio? ( media-libs/libpulse ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-build/kbuild-0.1.9998.3127 + <=dev-build/kbuild-0.1.9998.3500 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + ) + java? ( virtual/jdk:1.8 ) + qt5? ( dev-qt/linguist-tools:5 ) +" +RDEPEND=" + ${COMMON_DEPEND} + java? ( virtual/jre:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + "${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365 + + # This patch is needed to avoid automagic detection based on a hardcoded + # list of Pythons in configure. It's necessary but not sufficient + # (see the rest of the ebuild's logic for the remainder) to handle + # proper Python selection. + "${FILESDIR}"/${PN}-6.1.34-r3-python.patch + + # 865361 + "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch + + # 906309 + "${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch + # 922445 + "${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch + + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-6.1.36/patches +) + +pkg_pretend() { + if ! use headless && ! use qt5 ; then + einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." + elif use headless && use qt5 ; then + einfo "You selected USE=\"headless qt5\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + fi + + if ! use opengl ; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python ; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie ; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Replace pointless GCC version check with something more sensible. + # This is needed for the qt5 version check. + sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ + -i configure || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch ; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam ; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + fi + + # add correct java path + if use java ; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die +} + +src_configure() { + tc-ld-disable-gold # bug #488176 + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-dbus + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !opus --disable-libopus) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vnc --enable-vnc) + ) + + if ! use headless ; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !qt5 --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + --disable-opengl + ) + fi + + if use amd64 && ! has_multilib_profile ; then + myconf+=( --disable-vmmraw ) + fi + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python ; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile ; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \ + vboximg-mount *so *r0 iPxeBaseBin ; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + + if use pam ; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if ! use headless ; then + vbox_inst rdesktop-vrdp + if use sdl ; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use qt5 ; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl ; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + fi + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]] ; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm ; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk ; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java ; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev ; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv ; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc ; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace ; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc ; then + dodoc UserManual.pdf + fi + + if use python ; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/./_}" + + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so" + if [[ ! -x "${python_path_ext}" ]] ; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev ; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if ! use headless && use qt5 ; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev ; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild new file mode 100644 index 000000000000..61d748604580 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild @@ -0,0 +1,681 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2 dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + >=dev-libs/libxslt-1.1.19 + net-misc/curl + dev-libs/libxml2 + media-libs/libpng:0= + media-libs/libvpx:0= + sys-libs/zlib:= + !headless? ( + sdl? ( media-libs/libsdl:0[X,video] ) + x11-base/xorg-proto + x11-libs/libX11 + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXmu + x11-libs/libXt + opengl? ( + media-libs/libglvnd[X] + virtual/glu + ) + qt5? ( + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + opengl? ( dev-qt/qtopengl:5 ) + x11-libs/libXinerama + ) + ) + dev-libs/openssl:0= + virtual/libcrypt:= + lvm? ( sys-fs/lvm2 ) + opus? ( media-libs/opus ) + udev? ( >=virtual/udev-171 ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + !headless? ( + x11-libs/libXinerama + x11-libs/libXrandr + opengl? ( virtual/opengl ) + ) + java? ( virtual/jdk:1.8 ) + pam? ( sys-libs/pam ) + pax-kernel? ( sys-apps/elfix ) + pulseaudio? ( media-libs/libpulse ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-build/kbuild-0.1.9998.3127 + <=dev-build/kbuild-0.1.9998.3500 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + ) + java? ( virtual/jdk:1.8 ) + qt5? ( dev-qt/linguist-tools:5 ) +" +RDEPEND=" + ${COMMON_DEPEND} + java? ( virtual/jre:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + "${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365 + + # This patch is needed to avoid automagic detection based on a hardcoded + # list of Pythons in configure. It's necessary but not sufficient + # (see the rest of the ebuild's logic for the remainder) to handle + # proper Python selection. + "${FILESDIR}"/${PN}-6.1.34-r3-python.patch + + # 865361 + "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch + + # 906309 + "${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch + # 922445 + "${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch + + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-6.1.36/patches +) + +pkg_pretend() { + if ! use headless && ! use qt5 ; then + einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend." + elif use headless && use qt5 ; then + einfo "You selected USE=\"headless qt5\", defaulting to" + einfo "USE=\"headless\", this build will not include any X11/Qt frontend." + fi + + if ! use opengl ; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python ; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie ; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm), see bug #232775 + rm -r kBuild/bin tools || die + + # Replace pointless GCC version check with something more sensible. + # This is needed for the qt5 version check. + sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \ + -i configure || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch ; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam ; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + fi + + # add correct java path + if use java ; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die +} + +src_configure() { + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-dbus + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !opus --disable-libopus) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vnc --enable-vnc) + ) + + if ! use headless ; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !qt5 --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + --disable-opengl + ) + fi + + if use amd64 && ! has_multilib_profile ; then + myconf+=( --disable-vmmraw ) + fi + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python ; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile ; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \ + vboximg-mount *so *r0 iPxeBaseBin ; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + + if use pam ; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if ! use headless ; then + vbox_inst rdesktop-vrdp + if use sdl ; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use qt5 ; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl ; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + fi + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]] ; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm ; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk ; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java ; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev ; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv ; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc ; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace ; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc ; then + dodoc UserManual.pdf + fi + + if use python ; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/./_}" + + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so" + if [[ ! -x "${python_path_ext}" ]] ; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev ; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if ! use headless && use qt5 ; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev ; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild new file mode 100644 index 000000000000..a45c4f947cb0 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild @@ -0,0 +1,739 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.0.14/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-ld-disable-gold # bug #488176 + + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild new file mode 100644 index 000000000000..6451ab1c7097 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild @@ -0,0 +1,740 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.0.14/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-7.0.16.ebuild b/app-emulation/virtualbox/virtualbox-7.0.16.ebuild new file mode 100644 index 000000000000..eb51ad77cc44 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-7.0.16.ebuild @@ -0,0 +1,740 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \ + python-single-r1 tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +SRC_URI=" + https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2 + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) ) +" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +KEYWORDS="~amd64" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + ~app-emulation/virtualbox-modules-${PV} + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtcore:5 + dev-qt/qtdbus:5 + dev-qt/qtgui:5 + dev-qt/qthelp:5 + dev-qt/qtprintsupport:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + dev-qt/qtxml:5 + x11-libs/libX11 + x11-libs/libXt + opengl? ( dev-qt/qtopengl:5 ) + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXcursor + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( x11-libs/libXinerama ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/linguist-tools:5 ) + nls? ( dev-qt/linguist-tools:5 ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.0.16/patches +) + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # bug #916002, #488176 + tc-ld-force-bfd + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all +} + +src_install() { + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + if use opengl; then + vbox_inst VBoxTestOGL + pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL + fi + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/virtualbox/virtualbox-9999.ebuild b/app-emulation/virtualbox/virtualbox-9999.ebuild new file mode 100644 index 000000000000..7c503c7ea1c8 --- /dev/null +++ b/app-emulation/virtualbox/virtualbox-9999.ebuild @@ -0,0 +1,769 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Important! +# This compiles the latest svn version. +# It also compiles the kernel modules. Does not depend on virtualbox-modules. +# It is not meant to be used, might be very unstable. +# Upstream seem to have added support for python 3.12, but it crashes. +# +# USE=doc does not work for now. +# +# +# To add a new Python here: +# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic) +# Do NOT skip this part. It'll end up silently not-building the Python extension +# or otherwise misbehaving if you do. +# +# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python. +# +# May need to look at other distros (e.g. Arch Linux) to find patches for newer +# Python versions as upstream tends to lag. Upstream may have patches on their +# trunk branch but not release branch. +# +# See bug #785835, bug #856121. +PYTHON_COMPAT=( python3_{10..11} ) + +inherit desktop edo flag-o-matic java-pkg-opt-2 linux-mod-r1 multilib optfeature pax-utils \ + python-single-r1 subversion tmpfiles toolchain-funcs udev xdg + +MY_PN="VirtualBox" +BASE_PV=7.0.16 +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use" +HOMEPAGE="https://www.virtualbox.org/" +ESVN_REPO_URI="https://www.virtualbox.org/svn/vbox/trunk" +SRC_URI=" + https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.1.0_pre20240419.tar.bz2 + gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${BASE_PV}.tar.xz ) ) +" +S="${WORKDIR}/trunk" + +LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )" +SLOT="0/$(ver_cut 1-2)" +IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc" + +unset WATCOM #856769 + +COMMON_DEPEND=" + ${PYTHON_DEPS} + acct-group/vboxusers + app-arch/xz-utils + dev-libs/libtpms + dev-libs/libxml2 + dev-libs/openssl:0= + media-libs/libpng:0= + media-libs/libvpx:0= + net-misc/curl + sys-libs/zlib + dbus? ( sys-apps/dbus ) + gui? ( + dev-qt/qtbase:6[widgets] + dev-qt/qtscxml:6 + dev-qt/qttools:6[assistant] + x11-libs/libX11 + x11-libs/libXt + ) + lvm? ( sys-fs/lvm2 ) + opengl? ( + media-libs/libglvnd[X] + media-libs/vulkan-loader + x11-libs/libX11 + x11-libs/libXt + ) + pam? ( sys-libs/pam ) + sdl? ( + media-libs/libsdl2[X,video] + x11-libs/libX11 + x11-libs/libXt + ) + vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] ) + vde? ( net-misc/vde ) + vnc? ( >=net-libs/libvncserver-0.9.9 ) +" +# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport +# with USE="vboxwebsrv java". Note that we have to put things in DEPEND, +# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables +# based on *DEPEND doesn't work for BDEPEND at least right now. +# +# There's a comment in Config.kmk about it +# ("With Java 11 wsimport was removed, usually part of a separate install now.") +# but it needs more investigation. +# +# See bug #878299 to track this issue. +DEPEND=" + ${COMMON_DEPEND} + >=dev-libs/libxslt-1.1.19 + virtual/libcrypt:= + x11-libs/libXt + alsa? ( >=media-libs/alsa-lib-1.0.13 ) + gui? ( + x11-base/xorg-proto + x11-libs/libxcb:= + x11-libs/libXcursor + x11-libs/libXext + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + ) + java? ( virtual/jdk:1.8 ) + opengl? ( + x11-base/xorg-proto + x11-libs/libXcursor + x11-libs/libXinerama + x11-libs/libXmu + x11-libs/libXrandr + virtual/glu + ) + sdl? ( + x11-libs/libXcursor + x11-libs/libXinerama + ) + pulseaudio? ( media-libs/libpulse ) + udev? ( >=virtual/udev-171 ) +" +RDEPEND=" + ${COMMON_DEPEND} + !app-emulation/virtualbox-modules + gui? ( x11-libs/libxcb:= ) + java? ( virtual/jre:1.8 ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=app-arch/tar-1.34-r2 + >=dev-lang/yasm-0.6.2 + dev-libs/libIDL + dev-util/glslang + >=dev-build/kbuild-0.1.9998.3592 + sys-apps/which + sys-devel/bin86 + sys-libs/libcap + sys-power/iasl + virtual/pkgconfig + doc? ( + app-text/docbook-sgml-dtd:4.4 + app-text/docbook-xsl-ns-stylesheets + dev-texlive/texlive-basic + dev-texlive/texlive-latex + dev-texlive/texlive-latexrecommended + dev-texlive/texlive-latexextra + dev-texlive/texlive-fontsrecommended + dev-texlive/texlive-fontsextra + dev-qt/qthelp:5 + ) + gui? ( dev-qt/qttools:6[linguist] ) + nls? ( dev-qt/qttools:6[linguist] ) + java? ( virtual/jdk:1.8 ) +" + +QA_FLAGS_IGNORED=" + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_TEXTRELS=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +QA_EXECSTACK=" + usr/lib64/virtualbox/iPxeBaseBin + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug +" + +QA_WX_LOAD=" + usr/lib64/virtualbox/iPxeBaseBin +" + +QA_PRESTRIPPED=" + usr/lib64/virtualbox/VMMR0.r0 + usr/lib64/virtualbox/VBoxDDR0.r0 + usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0 +" + +REQUIRED_USE=" + java? ( sdk ) + python? ( sdk ) + vboxwebsrv? ( java ) + ${PYTHON_REQUIRED_USE} +" + +PATCHES=( + # Downloaded patchset + "${WORKDIR}"/virtualbox-patches-7.1.0_pre20240419/patches +) + +DOCS=() # Don't install the default README file during einstalldocs + +CONFIG_CHECK="~!SPINLOCK JUMP_LABEL" + +pkg_pretend() { + if ! use gui; then + einfo "No USE=\"gui\" selected, this build will not include any Qt frontend." + fi + + if ! use opengl; then + einfo "No USE=\"opengl\" selected, this build will lack" + einfo "the OpenGL feature." + fi + if ! use python; then + einfo "You have disabled the \"python\" USE flag. This will only" + einfo "disable the python bindings being installed." + fi + if ! use nls && use gui; then + einfo "USE=\"gui\" also selects USE=\"nls\". This build" + einfo "will have NLS support." + fi + + # 749273 + local d=${ROOT} + for i in usr "$(get_libdir)"; do + d="${d}/$i" + if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then + die "${d} should be owned by root, VirtualBox will not start otherwise" + fi + done +} + +pkg_setup() { + java-pkg-opt-2_pkg_setup + python-single-r1_pkg_setup + linux-mod-r1_pkg_setup +} + +src_unpack() { + subversion_src_unpack + default +} + +src_prepare() { + default + + # Only add nopie patch when we're on hardened + if gcc-specs-pie; then + eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch + fi + + # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775 + rm -r kBuild/bin || die + # Remove everything in tools except kBuildUnits + find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die + + # Disable things unused or split into separate ebuilds + sed -e "s@MY_LIBDIR@$(get_libdir)@" \ + "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die + + if ! use pch; then + # bug #753323 + printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \ + >> LocalConfig.kmk || die + fi + + # Respect LDFLAGS + sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \ + -i Config.kmk src/libs/xpcom18a4/Config.kmk || die + + # Do not use hard-coded ld (related to bug #488176) + sed -e '/QUIET)ld /s@ld @$(LD) @' \ + -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die + + # Use PAM only when pam USE flag is enbaled (bug #376531) + if ! use pam; then + einfo "Disabling PAM removes the possibility to use the VRDP features." + sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die + sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \ + src/VBox/HostServices/Makefile.kmk || die + echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die + fi + + # add correct java path + if use java; then + sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \ + -i "${S}"/Config.kmk || die + java-pkg-opt-2_src_prepare + fi + + #856811 #864274 + # cannot filter out only one flag, some combinations of these flags produce buggy executables + for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do + append-cflags $(test-flags-CC -mno-$i) + append-cxxflags $(test-flags-CXX -mno-$i) + done + + # bug #908814 + filter-lto + + # bug #843437 + cat >> LocalConfig.kmk <<-EOF || die + CXXFLAGS=${CXXFLAGS} + CFLAGS=${CFLAGS} + EOF + + if use sdl; then + sed -i 's/sdl-config/sdl2-config/' configure || die + echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die + fi + + #443830 + echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die + + if tc-is-clang; then + # clang assembler chokes on comments starting with / + sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die + + # clang does not support this extension + eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch + fi + + # fix doc generation + echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die + # replace xhtml names with numeric equivalents + find doc/manual -name \*.xml -exec sed -i \ + -e 's/ /\ /g' \ + -e 's/–/\–/g' \ + -e 's/←/\←/g' \ + -e 's/→/\→/g' \ + -e 's/↔/\↔/g' {} \+ || die + + # fix help path #891879 + echo -e "\nVBOX_PATH_PACKAGE_DOCS=/usr/share/doc/${PF}" >> LocalConfig.kmk || die + + # 489208 + # Cannot patch the whole text, many translations. Use sed instead to replace the command + find src/VBox/Frontends/VirtualBox/nls -name \*.ts -exec sed -i \ + 's/'[^&]*\(vboxdrv setup\|vboxconfig\)'/\'emerge -1 virtualbox-modules\'/' {} \+ || die + sed -i "s:'/sbin/vboxconfig':'emerge -1 virtualbox-modules':" \ + src/VBox/Frontends/VirtualBox/src/main.cpp \ + src/VBox/VMM/VMMR3/VM.cpp || die + + # 890561 + echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die + + if ! use nls && ! use gui; then + cat >> LocalConfig.kmk <<-EOF || die + VBOX_WITH_NLS := + VBOX_WITH_MAIN_NLS := + VBOX_WITH_PUEL_NLS := + VBOX_WITH_VBOXMANAGE_NLS := + EOF + fi +} + +src_configure() { + tc-ld-disable-gold # bug #488176 + + tc-export AR CC CXX LD RANLIB + export HOST_CC="$(tc-getBUILD_CC)" + + local myconf=( + --with-gcc="$(tc-getCC)" + --with-g++="$(tc-getCXX)" + + --disable-kmods + + $(usev !alsa --disable-alsa) + $(usev !dbus --disable-dbus) + $(usev debug --build-debug) + $(usev !doc --disable-docs) + $(usev !java --disable-java) + $(usev !lvm --disable-devmapper) + $(usev !pulseaudio --disable-pulse) + $(usev !python --disable-python) + $(usev vboxwebsrv --enable-webservice) + $(usev vde --enable-vde) + $(usev vnc --enable-vnc) + ) + + if use gui || use sdl || use opengl; then + myconf+=( + $(usev !opengl --disable-opengl) + $(usev !gui --disable-qt) + $(usev !sdl --disable-sdl) + ) + else + myconf+=( + --build-headless + ) + fi + + if use amd64 && ! has_multilib_profile; then + myconf+=( --disable-vmmraw ) + fi + + # not an autoconf script + edo ./configure "${myconf[@]}" + + # Force usage of chosen Python implementation + # bug #856121, bug #785835 + sed -i \ + -e '/VBOX_WITH_PYTHON.*=/d' \ + -e '/VBOX_PATH_PYTHON_INC.*=/d' \ + -e '/VBOX_LIB_PYTHON.*=/d' \ + AutoConfig.kmk || die + + cat >> AutoConfig.kmk <<-EOF || die + VBOX_WITH_PYTHON=$(usev python 1) + VBOX_PATH_PYTHON_INC=$(python_get_includedir) + VBOX_LIB_PYTHON=$(python_get_library_path) + EOF + + if use python; then + local mangled_python="${EPYTHON#python}" + mangled_python="${mangled_python/.}" + + # Stub out the script which defines what the Makefile ends up + # building for. gen_python_deps.py gets called by the Makefile + # with some args and it spits out a bunch of paths for a hardcoded + # list of Pythons. We just override it with what we're actually using. + # This minimises the amount of patching we have to do for new Pythons. + cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die + print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)") + print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)") + print("VBOX_PYTHONDEF_INC=$(python_get_includedir)") + print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)") + EOF + + chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die + fi +} + +src_compile() { + source ./env.sh || die + + # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529) + MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) + MAKEOPTS="${MAKEJOBS} ${MAKELOAD}" + + local myemakeargs=( + VBOX_BUILD_PUBLISHER=_Gentoo + VBOX_WITH_VBOXIMGMOUNT=1 + + KBUILD_VERBOSE=2 + + AS="$(tc-getCC)" + CC="$(tc-getCC)" + CXX="$(tc-getCXX)" + + TOOL_GCC3_CC="$(tc-getCC)" + TOOL_GCC3_LD="$(tc-getCC)" + TOOL_GCC3_AS="$(tc-getCC)" + TOOL_GCC3_AR="$(tc-getAR)" + TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX3_CC="$(tc-getCC)" + TOOL_GXX3_CXX="$(tc-getCXX)" + TOOL_GXX3_LD="$(tc-getCXX)" + TOOL_GXX3_AS="$(tc-getCXX)" + TOOL_GXX3_AR="$(tc-getAR)" + TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GCC3_CFLAGS="${CFLAGS}" + TOOL_GCC3_CXXFLAGS="${CXXFLAGS}" + VBOX_GCC_OPT="${CXXFLAGS}" + VBOX_NM="$(tc-getNM)" + + TOOL_YASM_AS=yasm + ) + + if use amd64 && has_multilib_profile; then + myemakeargs+=( + CC32="$(tc-getCC) -m32" + CXX32="$(tc-getCXX) -m32" + + TOOL_GCC32_CC="$(tc-getCC) -m32" + TOOL_GCC32_CXX="$(tc-getCXX) -m32" + TOOL_GCC32_LD="$(tc-getCC) -m32" + TOOL_GCC32_AS="$(tc-getCC) -m32" + TOOL_GCC32_AR="$(tc-getAR)" + TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)" + + TOOL_GXX32_CC="$(tc-getCC) -m32" + TOOL_GXX32_CXX="$(tc-getCXX) -m32" + TOOL_GXX32_LD="$(tc-getCXX) -m32" + TOOL_GXX32_AS="$(tc-getCXX) -m32" + TOOL_GXX32_AR="$(tc-getAR)" + TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)" + ) + fi + + MAKE="kmk" emake "${myemakeargs[@]}" all + + local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc:"out/linux.${ARCH}/release/bin/src" ) + local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" ) + linux-mod-r1_src_compile +} + +src_install() { + linux-mod-r1_src_install + insinto /usr/lib/modules-load.d/ + newins - virtualbox.conf <<-EOF + vboxdrv + vboxnetflt + vboxnetadp + EOF + + cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die + + local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile + + vbox_inst() { + local binary="${1}" + local perms="${2:-0750}" + local path="${3:-${vbox_inst_path}}" + + [[ -n "${binary}" ]] || die "vbox_inst: No binary given!" + [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits." + + insinto ${path} + doins ${binary} + fowners root:vboxusers ${path}/${binary} + fperms ${perms} ${path}/${binary} + } + + # Create configuration files + insinto /etc/vbox + newins "${FILESDIR}/${PN}-4-config" vbox.cfg + + # Set the correct libdir + sed \ + -e "s@MY_LIBDIR@$(get_libdir)@" \ + -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed" + + # Install the wrapper script + exeinto ${vbox_inst_path} + newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox" + fowners root:vboxusers ${vbox_inst_path}/VBox + fperms 0750 ${vbox_inst_path}/VBox + + # Install binaries and libraries + insinto ${vbox_inst_path} + doins -r components + + for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload} \ + vboximg-mount vbox-img *so *r0; do + vbox_inst ${each} + done + + # These binaries need to be suid root. + for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do + vbox_inst ${each} 4750 + done + + # Install EFI Firmware files (bug #320757) + for each in VBoxEFI{32,64}.fd ; do + vbox_inst ${each} 0644 + done + + # VBoxSVC and VBoxManage need to be pax-marked (bug #403453) + # VBoxXPCOMIPCD (bug #524202) + for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + # Symlink binaries to the shipped wrapper + for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \ + VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount + dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img + + if use pam; then + # VRDPAuth only works with this (bug #351949) + dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so + fi + + # set an env-variable for 3rd party tools + echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox" + # environment variables used during SDK binding installation + echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox" + echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox" + doenvd "${T}/90virtualbox" + + if use sdl; then + vbox_inst VBoxSDL 4750 + pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL + + for each in vboxsdl VBoxSDL ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + fi + + if use gui; then + vbox_inst VirtualBox + vbox_inst VirtualBoxVM 4750 + for each in VirtualBox{,VM} ; do + pax-mark -m "${ED}"${vbox_inst_path}/${each} + done + + for each in virtualbox{,vm} VirtualBox{,VM} ; do + dosym ${vbox_inst_path}/VBox /usr/bin/${each} + done + + insinto /usr/share/${PN} + doins -r nls + doins -r UnattendedTemplates + + domenu ${PN}.desktop + + pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die + for size in 16 32 48 64 128 ; do + newicon -s ${size} ${PN}-${size}px.png ${PN}.png + done + newicon ${PN}-48px.png ${PN}.png + doicon -s scalable ${PN}.svg + popd &>/dev/null || die + pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die + for size in 16 24 32 48 64 72 96 128 256 512 ; do + for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do + icofile="${PN}-${ico}-${size}px.png" + if [[ -f "${icofile}" ]]; then + newicon -s ${size} ${icofile} ${PN}-${ico}.png + fi + done + done + popd &>/dev/null || die + fi + + if use lvm; then + vbox_inst VBoxVolInfo 4750 + dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo + fi + + if use sdk; then + insinto ${vbox_inst_path} + doins -r sdk + + if use java; then + java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar" + java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so" + fi + fi + + if use udev; then + local udevdir="$(get_udevdir)" + local udev_file="VBoxCreateUSBNode.sh" + local rules_file="10-virtualbox.rules" + + insinto ${udevdir} + doins ${udev_file} + fowners root:vboxusers ${udevdir}/${udev_file} + fperms 0750 ${udevdir}/${udev_file} + + insinto ${udevdir}/rules.d + sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \ + > "${T}"/${rules_file} || die + doins "${T}"/${rules_file} + fi + + if use vboxwebsrv; then + vbox_inst vboxwebsrv + dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv + newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv + newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv + fi + + # Remove dead symlinks (bug #715338) + find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die + + # Fix version string in extensions or else they don't get accepted + # by the virtualbox host process (see bug #438930) + find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die + + local extensions_dir="${vbox_inst_path}/ExtensionPacks" + + if use vnc; then + insinto ${extensions_dir} + doins -r ExtensionPacks/VNC + fi + + if use dtrace; then + insinto ${extensions_dir} + doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack + fi + + if use doc; then + dodoc UserManual.pdf UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + elif use gui; then + dodoc "${WORKDIR}"/${PN}-help-${BASE_PV}/UserManual.q{ch,hc} + docompress -x /usr/share/doc/${PF} + fi + + if use python; then + local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so" + if [[ ! -x "${python_path_ext}" ]]; then + eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python" + eerror "but none were installed. This may happen if support for a Python target" + eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles." + die "Incomplete installation of Python bindings! File a bug with Gentoo!" + fi + + # 378871 + local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer/python/vboxapi/src" + pushd "${installer_dir}" &> /dev/null || die + sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \ + -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \ + -i vboxapi/__init__.py || die + # insert shebang, the files come without one + find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die + python_domodule vboxapi + popd &> /dev/null || die + + # upstream added a /bin/sh stub here + # use /usr/bin/python3, python_doscript will take care of it + sed -e '1 i #! /usr/bin/python3' -i vboxshell.py + python_doscript vboxshell.py + + # do not install the installer + rm -r "${installer_dir%vboxapi*}" || die + fi + + newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf +} + +pkg_postinst() { + linux-mod-r1_pkg_postinst + + xdg_pkg_postinst + + if use udev; then + udev_reload + udevadm trigger --subsystem-match=usb + fi + + tmpfiles_process virtualbox-vboxusb.conf + + if use gui; then + elog "To launch VirtualBox just type: \"virtualbox\"." + fi + + elog "You must be in the vboxusers group to use VirtualBox." + elog "" + elog "The latest user manual is available for download at:" + elog "https://download.virtualbox.org/virtualbox/${BASE_PV}/UserManual.pdf" + elog "" + + optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities + optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle + optfeature "Guest additions ISO" app-emulation/virtualbox-additions + + if ! use udev; then + ewarn "Without USE=udev, USB devices will likely not work in ${PN}." + fi +} + +pkg_postrm() { + xdg_pkg_postrm + + use udev && udev_reload +} diff --git a/app-emulation/vkd3d-proton/Manifest b/app-emulation/vkd3d-proton/Manifest new file mode 100644 index 000000000000..d78dcf075d92 --- /dev/null +++ b/app-emulation/vkd3d-proton/Manifest @@ -0,0 +1,15 @@ +DIST dxil-spirv-b03d68d6ed30e87a3bcef9a861fa3c6b4429e5cc.tar.gz 915224 BLAKE2B 137f4b187300261d922ecc66542c5b38e6fa825cbb4e9adb43a7ca15ea9b968e24111bcaf9142782a44a6a7abb342a4ccfbd863af3c01287936e47b6162b7139 SHA512 890c0a0e638b9bffc9ce2cee871c60a2a552d691e60ad6ffa087dfae988e559151b7025e025e4346d1389b7d8f39f8b9bf93e43c7427c883662c1d6c86ff9b1a +DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959 +DIST vkd3d-proton-2.10.tar.gz 1839493 BLAKE2B 0dd3716bd986a78d8616fdfbe80833379bc93778a8cd599b8874b4bd620a3d5fa2d7ac342305db6acf3bb6025ac7b4ff138b49a30f34fa86f7af3ebb09903100 SHA512 84e9ebf84ac5294baf6d03e1291d7f3c4a004d6dd9da0450319e785827a635b70377855092d750b6c26492d369018585d7ec3cf46ebefc603751e13578bfe333 +DIST vkd3d-proton-2.11.1.tar.gz 1978301 BLAKE2B ede48d1895d2e8bc7f6e5971e6f7c95cc0403a3dad0dc3bdc6e19ecf6f282cd02c8c81371af8499e40d6ef9c055acabd90c8e65cd8b1360bded223864ccc0502 SHA512 91abd9bb854fe701db6e0d8c0a28e630ca23829676e2f74fa1bcd52801c1afef91456355e30a1c8fe27ee282ddf45dab40f28134be1e07f2cb07557112d3fee6 +DIST vkd3d-proton-2.12.tar.gz 2109289 BLAKE2B 805298efa2f49a82dcc4b989856fb24469a1de9a1d175d5844be3e72187d14f3454ced52bcd65f557ec6776fda00112f4b9849dd48679e10aadf277d82b928ca SHA512 fbd4102fc9917a8e7c28edcaa500c26352a0652a008da453108cd21325ef2c757b5c0842a50e2e5ea6efcacdabe86b2ce570647313d0036967a135b01850fbe8 +DIST vkd3d-proton-2.6.tar.gz 1271948 BLAKE2B 02d2574a66614613748fe3471a6fd5aac2650fdae15a17b17ea2ed028fa53a0579b866e7240036a26108afc343395826474bb99e015b9299c2abec811bb872ab SHA512 6f27d213652e2380a9ba4534ac9ffe4b752b4608fbc2e8acd273fa151ab19ad0b132e3436384d2b8591cd1a59f0b69d342c893dc3a64be85188b5e3274bcf3f1 +DIST vkd3d-proton-dxil-spirv-9044a31d22.tar.gz 876292 BLAKE2B dd55bc2b8125c3ec4639dcb4daa1b17e64824e6abb1e7ca102b2332535a9e5ad5a5af8959cc89cfd11f839ba90ded4614eb22dd5bdbd9b60abd7340d633c1287 SHA512 26a51c9bf7d55e77191d72642d20e98ceee0ffcf359646771cd20de093c670eeff082b80dc868a3e60de0ffb2ec0e0cd1276a39c13238a18282d5cb5a2059602 +DIST vkd3d-proton-dxil-spirv-b537bbb91b.tar.gz 631130 BLAKE2B 99f40c5efde87d0af86542b427e5b0429be68ca69ba0c2b6d10a821811756d8dadff4449f268ae404f8ace09a91b3e8aaa135e534a77c0239e58c1a970a044cc SHA512 3c20090b7a1b53c30fd4967622fc7384e1bcc504c30d8075068b87dad1bd2c6f4a12459bf42e61bf76b9dd454ec17a9d529f74ab0d5583627e966d94bb341dc3 +DIST vkd3d-proton-dxil-spirv-d6ffa30abf.tar.gz 783875 BLAKE2B 971a183c84142a4a00858d85c88f48d0c2dd6c4cc7576811c958c03d7f2e8cacb54cf518fa5f3dc0d2e0da681f3a15ab8e7d35ef7bb6df0e5b429e99ccdc9b75 SHA512 68452e28a88b8437ac81479ff2562322de759aafb1e6ac253f84fd43f1d4eb3c677e54da320e5cfc2f569fe15ca7578c0c4af8dc699f51baf597b4796fdd0167 +DIST vkd3d-proton-spirv-headers-1d31a10040.tar.gz 445679 BLAKE2B 3dac88269df92428fd93ca187eb417ec0156ff0b24200daf85526aaa92c30ba8743102764e20c47d783ed0704fa690c1bf60944ef81bbdd296890dde5fb9fcaa SHA512 2536619cd7854954892dbb5ab5cd97e4e95fe3f5c121c4b2022426ae734fc20c1ebadbae1da7689f5ca18397075c54e4f16ad525b8ee873c4b0ffdc07aaacc03 +DIST vkd3d-proton-spirv-headers-aa331ab0ff.tar.gz 448200 BLAKE2B 435e3ce169f44a00181a664a6cb2f3e45e22b3d4ec033d27fb2b54564b4fcc4274ac170f373daddf9ba0bd421b3d50fc87442c15345dae24ec131f4257b33f30 SHA512 1cd6043974daa4cd71138be629544d10944064af8e5b1a5a64e746922edd0d583050ec3b036ef304dd67a689c65541b5cb375d80f26ab3c9314653169cc5aac8 +DIST vkd3d-proton-spirv-headers-ae217c1780.tar.gz 415130 BLAKE2B 0c6444c4c1cb43b9c69757d7c2257ce2fe1bc6be308341f3189766f120994e4920bc738b737d9eefc299359dab568fb8809782e3663dd589c0e4d13aecb8873a SHA512 02cf1d63b29e48ef0efe489eb32237ba2f9f4bf58a182b00dc96aab18faba94de79283398e9e945cd81130f83fff228c59b04e496716ea9ccc148a5f4465282c +DIST vkd3d-proton-vulkan-headers-83e1a9ed8c.tar.gz 1299014 BLAKE2B 0b1e635aaa6eebec3525b13698a064e0e5b8a78829a772cbe9e1890148059bf396bc5c830e8d6ee3070a3343775991642565283994c65acfa0d82a91590b7d84 SHA512 ecb2158cad55edb4ba069383668f3b311a2f6aa6777b5b7ed94795d454622426ee34fee52b13c97d2f07b5b2f965815ee61a0203b76a0b0d2c708a4786d06b96 +DIST vkd3d-proton-vulkan-headers-a0c76b4ef7.tar.gz 2072604 BLAKE2B 324fe6cc9b803ba5dfa38a3c97d7573cb138f8e0619c0748a096f1a13eb8b608d5a780cb071f3727b0912005a0ab1bc5fd4f1a335ee74d00b44876dfe422f433 SHA512 6f447fef01946849c925634a7caf793e69f3aec52d8de2fa77fe8f5f7675c831fb54a1852cf3326e3909ce43a6f2970dd60c6976ac5d9459ef7bac62583b7ba9 +DIST vulkan-headers-f030d9dd8ca297b84b10330cee87f72acc3b0aab.tar.gz 2255357 BLAKE2B 07cfa8ccdd26966116e7c35e0d350be94936469f2b9af77c84b8c61495b6ba76813047b5d26bba1fabd44a8f35396b32b6ad32c3b93b0b1a818ce9ed45f93db2 SHA512 6adf81d16d07710322b7c92a0e0436ee33be94d55116e3c460eabb4196a180f8c7b481c19a84a8bbea4e98dda6cf63ff2876f196348921a0c1d9c8c1005cd521 diff --git a/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch b/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch new file mode 100644 index 000000000000..413852460d54 --- /dev/null +++ b/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch @@ -0,0 +1,14 @@ +Dirty workaround to try syswow64 if paths are the same. This can happen +with USE=wow64 on wine where wine64 is a symlink to wine. + +TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged +separately (shared) as upstream hardly support these (dxvk dropped altogether). +--- a/setup_vkd3d_proton.sh ++++ b/setup_vkd3d_proton.sh +@@ -81,2 +81,6 @@ + win32_sys_path="${win32_sys_path/$'\r'/}" ++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then ++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null) ++ win32_sys_path="${win32_sys_path/$'\r'/}" ++ fi + fi diff --git a/app-emulation/vkd3d-proton/metadata.xml b/app-emulation/vkd3d-proton/metadata.xml new file mode 100644 index 000000000000..65a03f88f50d --- /dev/null +++ b/app-emulation/vkd3d-proton/metadata.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ionen@gentoo.org</email> + <name>Ionen Wolkens</name> + </maintainer> + <use> + <flag name="crossdev-mingw"> + Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than + <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) + </flag> + <flag name="extras">Install extra tools and demos in /usr/lib/vkd3d-proton</flag> + </use> + <upstream> + <remote-id type="github">HansKristian-Work/vkd3d-proton</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild new file mode 100644 index 000000000000..a8a7ca34700f --- /dev/null +++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild @@ -0,0 +1,207 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git" + EGIT_SUBMODULES=( + # uses hacks / recent features and easily breaks, keep bundled headers + # (also cross-compiled and -I/usr/include is troublesome) + subprojects/{SPIRV,Vulkan}-Headers + subprojects/dxil-spirv + subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools + ) +else + HASH_VKD3D=88e4f300cc0b5b6f0880c1233d562cf506b546fb # match tag on bumps + HASH_DXIL=d6ffa30abfc0fd3dd569af4a4efc9bc9df918d2a + HASH_SPIRV=1d31a100405cf8783ca7a31e31cdd727c9fc54c3 + HASH_SPIRV_DXIL=aa331ab0ffcb3a67021caa1a0c1c9017712f2f31 + HASH_VULKAN=a0c76b4ef76e219483755ff61dce6b67ff79f24b + SRC_URI=" + https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz + -> ${PN}-dxil-spirv-${HASH_DXIL::10}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV_DXIL::10}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation" +HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/" + +LICENSE="LGPL-2.1+ Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw debug extras +strip" + +BDEPEND=" + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.6-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is enabled, but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads" + fi + done + tool=-w64-mingw32-widl + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either" + eerror "building crossdev mingw64-runtime with USE=tools or installing wine." + die "USE=crossdev-mingw is set but neither widl nor ${tool} were found" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir subprojects/{{SPIRV,Vulkan}-Headers,dxil-spirv} || die + mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die + mv ../SPIRV-Headers-${HASH_SPIRV} subprojects/SPIRV-Headers || die + mv ../Vulkan-Headers-${HASH_VULKAN} subprojects/Vulkan-Headers || die + + # dxil and vkd3d's spirv headers currently mismatch and incompatible + rmdir subprojects/dxil-spirv/third_party/spirv-headers || die + mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \ + subprojects/dxil-spirv/third_party/spirv-headers || die +# ln -s ../../../SPIRV-Headers/include \ +# subprojects/dxil-spirv/third_party/spirv-headers || die + fi + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die + + if [[ ${PV} != 9999 ]]; then + # without .git, meson sets vkd3d_build as 0x${PV} leading to failure + sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die + sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die + fi +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP WIDL + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + # preferring meson eclass' cross file over upstream's but, unlike + # dxvk, we lose static options in the process (from build-win*.txt) + append-ldflags -static -static-libgcc -static-libstdc++ + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL + + # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if + # possible, but eclasses don't handle that so setup machine files + local widl=$(tc-getPROG WIDL widl) + use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32" + printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${ABI: -2} + --{cross,native}-file="${T}"/widl.${ABI}.ini + $(meson_use {,enable_}extras) + $(meson_use debug enable_trace) + $(usev strip --strip) # portage won't strip .dll, so allow it here + -Denable_tests=false # needs wine/vulkan and is intended for manual use + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_vkd3d_proton.sh + einstalldocs + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink" + elog + elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available" + elog "on it, not meant to function independently even if only using d3d12." + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elif [[ ${REPLACING_VERSIONS##* } ]]; then + if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then + elog + elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + fi + + if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then + elog + elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that" + elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh." + elog + elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's" + elog "dxgi.dll is not available on that prefix (even if only using d3d12)." + fi + fi +} diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild new file mode 100644 index 000000000000..9665ed5de725 --- /dev/null +++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild @@ -0,0 +1,201 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git" + EGIT_SUBMODULES=( + # uses hacks / recent features and easily breaks, keep bundled headers + # (also cross-compiled and -I/usr/include is troublesome) + khronos/{SPIRV,Vulkan}-Headers + subprojects/dxil-spirv + subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools + ) +else + HASH_VKD3D=105b5b77c9a34fd336b5c604e3c7a6cc48f39c3a # match tag on bumps + HASH_DXIL=9044a31d22afff1d75d07886e5096daf5f1ebed8 + HASH_SPIRV=1d31a100405cf8783ca7a31e31cdd727c9fc54c3 + HASH_SPIRV_DXIL=aa331ab0ffcb3a67021caa1a0c1c9017712f2f31 + HASH_VULKAN=a0c76b4ef76e219483755ff61dce6b67ff79f24b + SRC_URI=" + https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz + -> ${PN}-dxil-spirv-${HASH_DXIL::10}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV_DXIL::10}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation" +HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/" + +LICENSE="LGPL-2.1+ Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw debug extras +strip" + +BDEPEND=" + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.6-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is enabled, but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads" + fi + done + tool=-w64-mingw32-widl + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either" + eerror "building crossdev mingw64-runtime with USE=tools or installing wine." + die "USE=crossdev-mingw is set but neither widl nor ${tool} were found" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir khronos/{SPIRV,Vulkan}-Headers subprojects/dxil-spirv || die + mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die + mv ../SPIRV-Headers-${HASH_SPIRV} khronos/SPIRV-Headers || die + mv ../Vulkan-Headers-${HASH_VULKAN} khronos/Vulkan-Headers || die + + # dxil and vkd3d's spirv headers currently mismatch and incompatible + rmdir subprojects/dxil-spirv/third_party/spirv-headers || die + mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \ + subprojects/dxil-spirv/third_party/spirv-headers || die + fi + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die + + if [[ ${PV} != 9999 ]]; then + # without .git, meson sets vkd3d_build as 0x${PV} leading to failure + sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die + sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die + fi +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP WIDL + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL + + # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if + # possible, but eclasses don't handle that so setup machine files + local widl=$(tc-getPROG WIDL widl) + use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32" + printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${ABI: -2} + --{cross,native}-file="${T}"/widl.${ABI}.ini + $(meson_use {,enable_}extras) + $(meson_use debug enable_trace) + $(usev strip --strip) # portage won't strip .dll, so allow it here + -Denable_tests=false # needs wine/vulkan and is intended for manual use + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_vkd3d_proton.sh + einstalldocs + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink" + elog + elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available" + elog "on it, not meant to function independently even if only using d3d12." + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elif [[ ${REPLACING_VERSIONS##* } ]]; then + if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then + elog + elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + fi + + if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then + elog + elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that" + elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh." + elog + elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's" + elog "dxgi.dll is not available on that prefix (even if only using d3d12)." + fi + fi +} diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild new file mode 100644 index 000000000000..b2632b34036a --- /dev/null +++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild @@ -0,0 +1,207 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git" + EGIT_SUBMODULES=( + # uses hacks / recent features and easily breaks, keep bundled headers + # (also cross-compiled and -I/usr/include is troublesome) + khronos/{SPIRV,Vulkan}-Headers + subprojects/dxil-spirv + subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools + ) +else + HASH_VKD3D=7460c70de0dff08de2f4a78a7ac7c71fd7f0ea6e # match tag on bumps + HASH_DXIL=b03d68d6ed30e87a3bcef9a861fa3c6b4429e5cc + HASH_SPIRV=8b246ff75c6615ba4532fe4fde20f1be090c3764 + HASH_SPIRV_DXIL=8b246ff75c6615ba4532fe4fde20f1be090c3764 + HASH_VULKAN=f030d9dd8ca297b84b10330cee87f72acc3b0aab + SRC_URI=" + https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz + -> dxil-spirv-${HASH_DXIL}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> spirv-headers-${HASH_SPIRV}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz + -> spirv-headers-${HASH_SPIRV_DXIL}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> vulkan-headers-${HASH_VULKAN}.tar.gz + " + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation" +HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/" + +LICENSE="LGPL-2.1+ Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw debug extras +strip" + +BDEPEND=" + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.6-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is enabled, but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads" + fi + done + tool=-w64-mingw32-widl + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either" + eerror "building crossdev mingw64-runtime with USE=tools or installing wine." + die "USE=crossdev-mingw is set but neither widl nor ${tool} were found" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir khronos/{SPIRV,Vulkan}-Headers subprojects/dxil-spirv || die + mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die + mv ../SPIRV-Headers-${HASH_SPIRV} khronos/SPIRV-Headers || die + mv ../Vulkan-Headers-${HASH_VULKAN} khronos/Vulkan-Headers || die + + rmdir subprojects/dxil-spirv/third_party/spirv-headers || die + # dxil and vkd3d's spirv headers sometime mismatch and are incompatible + if [[ ${HASH_SPIRV} == "${HASH_SPIRV_DXIL}" ]]; then + ln -s ../../../khronos/SPIRV-Headers \ + subprojects/dxil-spirv/third_party/spirv-headers || die + else + mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \ + subprojects/dxil-spirv/third_party/spirv-headers || die + fi + fi + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die + + if [[ ${PV} != 9999 ]]; then + # without .git, meson sets vkd3d_build as 0x${PV} leading to failure + sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die + sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die + fi +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP WIDL + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL + + # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if + # possible, but eclasses don't handle that so setup machine files + local widl=$(tc-getPROG WIDL widl) + use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32" + printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${ABI: -2} + --{cross,native}-file="${T}"/widl.${ABI}.ini + $(meson_use {,enable_}extras) + $(meson_use debug enable_trace) + $(usev strip --strip) # portage won't strip .dll, so allow it here + -Denable_tests=false # needs wine/vulkan and is intended for manual use + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_vkd3d_proton.sh + einstalldocs + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink" + elog + elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available" + elog "on it, not meant to function independently even if only using d3d12." + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elif [[ ${REPLACING_VERSIONS##* } ]]; then + if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then + elog + elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + fi + + if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then + elog + elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that" + elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh." + elog + elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's" + elog "dxgi.dll is not available on that prefix (even if only using d3d12)." + fi + fi +} diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild new file mode 100644 index 000000000000..9a41d28143b1 --- /dev/null +++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild @@ -0,0 +1,186 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# note: version 2.6 should be kept for longer given it's the +# last version to support <wine-7.1 and <nvidia-drivers-510 + +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git" + EGIT_SUBMODULES=( + # uses hacks / recent features and easily breaks, keep bundled headers + # (also cross-compiled and -I/usr/include is troublesome) + subprojects/{SPIRV,Vulkan}-Headers + subprojects/dxil-spirv + subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools + ) +else + HASH_VKD3D=3e5aab6fb3e18f81a71b339be4cb5cdf55140980 # match tag on bumps + HASH_DXIL=b537bbb91bccdbc695cb7e5211d608f8d1c205bd + HASH_SPIRV=ae217c17809fadb232ec94b29304b4afcd417bb4 + HASH_VULKAN=83e1a9ed8ce289cebb1c02c8167d663dc1befb24 + SRC_URI=" + https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz + -> ${PN}-dxil-spirv-${HASH_DXIL::10}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation" +HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/" + +LICENSE="LGPL-2.1+ Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw debug extras" + +BDEPEND=" + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.6-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is enabled, but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads" + fi + done + tool=-w64-mingw32-widl + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either" + eerror "building crossdev mingw64-runtime with USE=tools or installing wine." + die "USE=crossdev-mingw is set but neither widl nor ${tool} were found" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir subprojects/{{SPIRV,Vulkan}-Headers,dxil-spirv} || die + mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die + mv ../SPIRV-Headers-${HASH_SPIRV} subprojects/SPIRV-Headers || die + mv ../Vulkan-Headers-${HASH_VULKAN} subprojects/Vulkan-Headers || die + ln -s ../../../SPIRV-Headers/include \ + subprojects/dxil-spirv/third_party/spirv-headers || die + fi + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die + + if [[ ${PV} != 9999 ]]; then + # without .git, meson sets vkd3d_build as 0x${PV} leading to failure + sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die + sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die + fi +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP WIDL + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + # preferring meson eclass' cross file over upstream's but, unlike + # dxvk, we lose static options in the process (from build-win*.txt) + append-ldflags -static -static-libgcc -static-libstdc++ + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL + + # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if + # possible, but eclasses don't handle that so setup machine files + local widl=$(tc-getPROG WIDL widl) + use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32" + printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${ABI: -2} + --{cross,native}-file="${T}"/widl.${ABI}.ini + $(meson_use {,enable_}extras) + $(meson_use debug enable_trace) + $(usev !debug --strip) # portage won't strip .dll, so allow it here + -Denable_tests=false # needs wine/vulkan and is intended for manual use + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_vkd3d_proton.sh + einstalldocs + + # unnecesasry files, see package-release.sh + rm "${ED}"/usr/lib/${PN}/x*/libvkd3d-proton-utils-3.dll || die + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink" + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + fi +} diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild new file mode 100644 index 000000000000..12ec38649be1 --- /dev/null +++ b/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild @@ -0,0 +1,207 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/ +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit flag-o-matic meson-multilib toolchain-funcs + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git" + EGIT_SUBMODULES=( + # uses hacks / recent features and easily breaks, keep bundled headers + # (also cross-compiled and -I/usr/include is troublesome) + khronos/{SPIRV,Vulkan}-Headers + subprojects/dxil-spirv + subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools + ) +else + HASH_VKD3D= # match tag on bumps + HASH_DXIL= + HASH_SPIRV= + HASH_SPIRV_DXIL= + HASH_VULKAN= + SRC_URI=" + https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz + -> ${P}.tar.gz + https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz + -> dxil-spirv-${HASH_DXIL}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz + -> spirv-headers-${HASH_SPIRV}.tar.gz + https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz + -> spirv-headers-${HASH_SPIRV_DXIL}.tar.gz + https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz + -> vulkan-headers-${HASH_VULKAN}.tar.gz + " + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation" +HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/" + +LICENSE="LGPL-2.1+ Apache-2.0 MIT" +SLOT="0" +IUSE="+abi_x86_32 crossdev-mingw debug extras +strip" + +BDEPEND=" + dev-util/glslang + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.6-wow64-setup.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local tool=-w64-mingw32-g++ + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain." + eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw" + use abi_x86_32 && use abi_x86_64 && + eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains." + die "USE=crossdev-mingw is enabled, but ${tool} was not found" + elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then + eerror "${PN} requires GCC to be built with --enable-threads=posix" + eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows" + die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads" + fi + done + tool=-w64-mingw32-widl + for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do + if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then + eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either" + eerror "building crossdev mingw64-runtime with USE=tools or installing wine." + die "USE=crossdev-mingw is set but neither widl nor ${tool} were found" + fi + done + fi +} + +src_prepare() { + if [[ ${PV} != 9999 ]]; then + rmdir khronos/{SPIRV,Vulkan}-Headers subprojects/dxil-spirv || die + mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die + mv ../SPIRV-Headers-${HASH_SPIRV} khronos/SPIRV-Headers || die + mv ../Vulkan-Headers-${HASH_VULKAN} khronos/Vulkan-Headers || die + + rmdir subprojects/dxil-spirv/third_party/spirv-headers || die + # dxil and vkd3d's spirv headers sometime mismatch and are incompatible + if [[ ${HASH_SPIRV} == "${HASH_SPIRV_DXIL}" ]]; then + ln -s ../../../khronos/SPIRV-Headers \ + subprojects/dxil-spirv/third_party/spirv-headers || die + else + mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \ + subprojects/dxil-spirv/third_party/spirv-headers || die + fi + fi + + default + + sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die + + if [[ ${PV} != 9999 ]]; then + # without .git, meson sets vkd3d_build as 0x${PV} leading to failure + sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die + sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die + fi +} + +src_configure() { + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # random segfaults been reported with LTO in some games, filter as + # a safety (note that optimizing this further won't really help + # performance, GPU does the actual work) + filter-lto + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-flags -mno-avx + + if [[ ${CHOST} != *-mingw* ]]; then + if [[ ! -v MINGW_BYPASS ]]; then + unset AR CC CXX RC STRIP WIDL + filter-flags '-fuse-ld=*' + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' #928038 + fi + + CHOST_amd64=x86_64-w64-mingw32 + CHOST_x86=i686-w64-mingw32 + CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64}) + + strip-unsupported-flags + fi + + multilib-minimal_src_configure +} + +multilib_src_configure() { + # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev, + # unset again so meson eclass will set ${CHOST}-gcc + others + use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL + + # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if + # possible, but eclasses don't handle that so setup machine files + local widl=$(tc-getPROG WIDL widl) + use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32" + printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die + + local emesonargs=( + --prefix="${EPREFIX}"/usr/lib/${PN} + --{bin,lib}dir=x${ABI: -2} + --{cross,native}-file="${T}"/widl.${ABI}.ini + $(meson_use {,enable_}extras) + $(meson_use debug enable_trace) + $(usev strip --strip) # portage won't strip .dll, so allow it here + -Denable_tests=false # needs wine/vulkan and is intended for manual use + ) + + meson_src_configure +} + +multilib_src_install_all() { + dobin setup_vkd3d_proton.sh + einstalldocs + + find "${ED}" -type f -name '*.a' -delete || die +} + +pkg_postinst() { + if [[ ! ${REPLACING_VERSIONS} ]]; then + elog "To enable ${PN} on a wine prefix, you can run the following command:" + elog + elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink" + elog + elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available" + elog "on it, not meant to function independently even if only using d3d12." + elog + elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details." + elif [[ ${REPLACING_VERSIONS##* } ]]; then + if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then + elog + elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:" + elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)" + fi + + if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then + elog + elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that" + elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh." + elog + elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's" + elog "dxgi.dll is not available on that prefix (even if only using d3d12)." + fi + fi +} diff --git a/app-emulation/vkd3d/Manifest b/app-emulation/vkd3d/Manifest index 99a8cd7b5807..e46132d73bb4 100644 --- a/app-emulation/vkd3d/Manifest +++ b/app-emulation/vkd3d/Manifest @@ -1,3 +1 @@ -DIST vkd3d-1.0.tar.xz 461884 BLAKE2B 4dbd729f9e795d3d81178abc1a8774c0bbe6a5257c96c97acf1e4b4cdb5b7e30c77235e8b8fa57f7db3196caf30c55c3b0c07e2981629dd6177436a3cd117d33 SHA512 55712528688cdedc63049e168b371b470dbb8e31ddc36d8b23b0655f4a061726eb8556b9abf3cb887f6bd21379959aed9fab93ba0fd53813aec413ebec71d615 -DIST vkd3d-1.1.tar.xz 487452 BLAKE2B 834ca06d2159a5857dde457f27e541f06624e87633af6aca7445867abc38c56a1da1fe34b6795ffbd6aa73e983ac0e4301402ae35ef8358fa8cc79c12972b11d SHA512 e107612bdca95e998f9d819bdf74e4ffe1b4d400d250ab855c4ebf94b7d3f088b3221591fef03b1c6b8ecb030feb1673f74831bd8bd8edda2989d09a8846b0f7 -DIST vkd3d-1.2.tar.xz 611240 BLAKE2B e7ea3f7120ad1092be0239bdc2e6d0dfdfecc3b1c2e7c359c4bfbd8c259f092e041a75a0e896da9a1c6370d5716590711128d31c9e552897b177b300b9a15107 SHA512 ca9d5b11e7770747b78b61f43196b45b7bda8d2dd4f1d76da915f895a04dc28c20499e1e433f5ce17416964fe0f37cdc907e7aa540ec9105afbc8a100094f3e7 +DIST vkd3d-1.11.tar.xz 1016132 BLAKE2B 634f5f99f7605814d36a90270ddb82a6a11e2b6bfc2cdc6a6d4d31b730b9d5739479770fe00704f27a726c39aa115272c0a79dbcff8baf251188a4b3ead8faeb SHA512 2b14f7f8d4d58c2bfc6c30aa0d24b6789c0887b2869cfb6be98d03b7b001a74a1fbe24439229fa4d3a618a69fe8eeb77d7a520a16276ae494fe6ee2357dd31d0 diff --git a/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch b/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch deleted file mode 100644 index 048c6c843f55..000000000000 --- a/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h -index df44447..53a081a 100644 ---- a/libs/vkd3d/vkd3d_private.h -+++ b/libs/vkd3d/vkd3d_private.h -@@ -47,6 +47,8 @@ - - #define VKD3D_MAX_SHADER_STAGES 5u - -+#define VKD3D_PIPELINE_BIND_POINT_COUNT 2u -+ - struct d3d12_command_list; - struct d3d12_device; - -@@ -625,7 +627,7 @@ struct d3d12_command_list - VkFramebuffer current_framebuffer; - VkPipeline current_pipeline; - VkRenderPass current_render_pass; -- struct vkd3d_pipeline_bindings pipeline_bindings[VK_PIPELINE_BIND_POINT_RANGE_SIZE]; -+ struct vkd3d_pipeline_bindings pipeline_bindings[VKD3D_PIPELINE_BIND_POINT_COUNT]; - - struct d3d12_pipeline_state *state; - diff --git a/app-emulation/vkd3d/metadata.xml b/app-emulation/vkd3d/metadata.xml index cad91c2cdfde..b0dd7bc28e6e 100644 --- a/app-emulation/vkd3d/metadata.xml +++ b/app-emulation/vkd3d/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>wine@gentoo.org</email> diff --git a/app-emulation/vkd3d/vkd3d-1.0.ebuild b/app-emulation/vkd3d/vkd3d-1.0.ebuild deleted file mode 100644 index adf1fb7481d8..000000000000 --- a/app-emulation/vkd3d/vkd3d-1.0.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit multilib-minimal - -if [[ "${PV}" == "9999" ]]; then - EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git" - inherit git-r3 -else - KEYWORDS="~amd64" - SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz" -fi - -IUSE="spirv-tools" -RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] ) - media-libs/vulkan-loader[${MULTILIB_USEDEP},X] - x11-libs/xcb-util:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]" - -DEPEND="${RDEPEND} - dev-util/spirv-headers - dev-util/vulkan-headers" - -DESCRIPTION="D3D12 to Vulkan translation library" -HOMEPAGE="https://source.winehq.org/git/vkd3d.git/" - -LICENSE="LGPL-2.1" -SLOT="0" - -multilib_src_configure() { - local myconf=( - $(use_with spirv-tools) - ) - - ECONF_SOURCE=${S} econf "${myconf[@]}" -} diff --git a/app-emulation/vkd3d/vkd3d-1.1-r1.ebuild b/app-emulation/vkd3d/vkd3d-1.1-r1.ebuild deleted file mode 100644 index 681d44f11940..000000000000 --- a/app-emulation/vkd3d/vkd3d-1.1-r1.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit multilib-minimal - -if [[ "${PV}" == "9999" ]]; then - EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git" - inherit git-r3 -else - KEYWORDS="amd64 x86" - SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz" -fi - -IUSE="spirv-tools" -RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] ) - media-libs/vulkan-loader[${MULTILIB_USEDEP},X] - x11-libs/xcb-util:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]" - -DEPEND="${RDEPEND} - dev-util/spirv-headers - dev-util/vulkan-headers" - -DESCRIPTION="D3D12 to Vulkan translation library" -HOMEPAGE="https://source.winehq.org/git/vkd3d.git/" - -LICENSE="LGPL-2.1" -SLOT="0" - -PATCHES=( - "${FILESDIR}"/${P}-Fix-build.patch -) - -multilib_src_configure() { - local myconf=( - $(use_with spirv-tools) - ) - - ECONF_SOURCE=${S} econf "${myconf[@]}" -} diff --git a/app-emulation/vkd3d/vkd3d-1.1.ebuild b/app-emulation/vkd3d/vkd3d-1.1.ebuild deleted file mode 100644 index d3f9d96bc43b..000000000000 --- a/app-emulation/vkd3d/vkd3d-1.1.ebuild +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit multilib-minimal - -if [[ "${PV}" == "9999" ]]; then - EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git" - inherit git-r3 -else - KEYWORDS="amd64 x86" - SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz" -fi - -IUSE="spirv-tools" -RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] ) - media-libs/vulkan-loader[${MULTILIB_USEDEP},X] - x11-libs/xcb-util:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]" - -DEPEND="${RDEPEND} - dev-util/spirv-headers - dev-util/vulkan-headers" - -DESCRIPTION="D3D12 to Vulkan translation library" -HOMEPAGE="https://source.winehq.org/git/vkd3d.git/" - -LICENSE="LGPL-2.1" -SLOT="0" - -multilib_src_configure() { - local myconf=( - $(use_with spirv-tools) - ) - - ECONF_SOURCE=${S} econf "${myconf[@]}" -} diff --git a/app-emulation/vkd3d/vkd3d-1.11.ebuild b/app-emulation/vkd3d/vkd3d-1.11.ebuild new file mode 100644 index 000000000000..c05e18ff7123 --- /dev/null +++ b/app-emulation/vkd3d/vkd3d-1.11.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit multilib-minimal + +DESCRIPTION="D3D12 to Vulkan translation library" +HOMEPAGE="https://gitlab.winehq.org/wine/vkd3d/" +SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="ncurses spirv-tools" +RESTRICT="test" #838655 + +RDEPEND=" + media-libs/vulkan-loader[${MULTILIB_USEDEP}] + ncurses? ( sys-libs/ncurses:= ) + spirv-tools? ( dev-util/spirv-tools[${MULTILIB_USEDEP}] ) +" +DEPEND=" + ${RDEPEND} + dev-util/spirv-headers + dev-util/vulkan-headers +" +BDEPEND=" + sys-devel/flex + sys-devel/bison + virtual/pkgconfig +" + +multilib_src_configure() { + local conf=( + $(multilib_native_use_with ncurses) + $(use_with spirv-tools) + --disable-doxygen-pdf + --without-xcb + ) + + ECONF_SOURCE=${S} econf "${conf[@]}" +} + +multilib_src_install_all() { + einstalldocs + + find "${ED}" -type f -name '*.la' -delete || die +} diff --git a/app-emulation/vkd3d/vkd3d-1.2.ebuild b/app-emulation/vkd3d/vkd3d-1.2.ebuild deleted file mode 100644 index 90e8035e37ba..000000000000 --- a/app-emulation/vkd3d/vkd3d-1.2.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit multilib-minimal - -if [[ "${PV}" == "9999" ]]; then - EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git" - inherit git-r3 -else - KEYWORDS="~amd64 ~x86" - SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz" -fi - -IUSE="spirv-tools" -RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] ) - media-libs/vulkan-loader[${MULTILIB_USEDEP},X] - x11-libs/xcb-util:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]" - -DEPEND="${RDEPEND} - dev-util/spirv-headers - dev-util/vulkan-headers" - -DESCRIPTION="D3D12 to Vulkan translation library" -HOMEPAGE="https://source.winehq.org/git/vkd3d.git/" - -LICENSE="LGPL-2.1" -SLOT="0" - -multilib_src_configure() { - local myconf=( - $(use_with spirv-tools) - --disable-doxygen-pdf - ) - - ECONF_SOURCE=${S} econf "${myconf[@]}" -} diff --git a/app-emulation/vkd3d/vkd3d-9999.ebuild b/app-emulation/vkd3d/vkd3d-9999.ebuild deleted file mode 100644 index 0e542af46662..000000000000 --- a/app-emulation/vkd3d/vkd3d-9999.ebuild +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit multilib-minimal autotools - -AUTOTOOLS_AUTORECONF="1" - -if [[ "${PV}" == "9999" ]]; then - EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git" - inherit git-r3 -else - KEYWORDS="~amd64" - SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz" -fi - -IUSE="spirv-tools" -RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] ) - media-libs/vulkan-loader[${MULTILIB_USEDEP},X] - x11-libs/xcb-util:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}] - x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]" - -DEPEND="${RDEPEND} - dev-util/spirv-headers - >=dev-util/vulkan-headers-1.1.114" - -DESCRIPTION="D3D12 to Vulkan translation library" -HOMEPAGE="https://source.winehq.org/git/vkd3d.git/" - -LICENSE="LGPL-2.1" -SLOT="0" - -src_prepare() { - default - eautoreconf -} - -multilib_src_configure() { - local myconf=( - $(use_with spirv-tools) - --disable-doxygen-pdf - ) - - ECONF_SOURCE=${S} econf "${myconf[@]}" -} diff --git a/app-emulation/wine-desktop-common/metadata.xml b/app-emulation/wine-desktop-common/metadata.xml index 751c88a7bada..10c8098770bd 100644 --- a/app-emulation/wine-desktop-common/metadata.xml +++ b/app-emulation/wine-desktop-common/metadata.xml @@ -1,15 +1,11 @@ -<?xml version='1.0' encoding='UTF-8'?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> - <email>NP-Hardass@gentoo.org</email> - <name>NP-Hardass</name> - </maintainer> <maintainer type="project"> <email>wine@gentoo.org</email> <name>Wine</name> </maintainer> <upstream> - <remote-id type="github">NP-Hardass/wine-desktop-common</remote-id> + <remote-id type="github">np-hardass/wine-desktop-common</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/wine-gecko/Manifest b/app-emulation/wine-gecko/Manifest index 7daaaf510bfd..0924bbaa755b 100644 --- a/app-emulation/wine-gecko/Manifest +++ b/app-emulation/wine-gecko/Manifest @@ -1,4 +1,12 @@ -DIST wine-gecko-2.47.1-x86.msi 50735104 BLAKE2B c082e22fdbf1681e0c38e8822bc1a8f99b47d91f7d32f22bfad716685553d3d10fd4004f90135d90f39f4ff05cba37665455679e08ce3a140ca8ded76cb7a9ea SHA512 ef13838bf7d5bdd74d06bbbdccc6b18cc75b4d0c2b3db8c978b9500cdfeb058bf5532d89b77c164eab52c1f93ae2e2540b37f6694a3e560aace3ebc7da2c7596 -DIST wine-gecko-2.47.1-x86_64.msi 52311040 BLAKE2B 2a9aa68461d2b9f69ada1e50925de7ba9804a4992c9d0a717c9c5d1340179e7f10e550c8db170bb33c79e24dcd068e00648c572c6b4e4d836a507ada6e7bbccd SHA512 f875d9a7c68a33abf6dd25d61ff6dd3e5ff246768880e3ee4984ab63b065a7b0ef55411b710e4cb9db48bd2114cbd3fbd97f24e819d7d71c2212dd612abaaf43 -DIST wine_gecko-2.47-x86.msi 49266176 BLAKE2B 6b1d4ebf53fac422c2da9ae7f5b6ab9064d2b6cc20d57fe13707395e71305ac1607a440624d3a545fe1e0391bc92bf5b594173549e519eda967bb833b69b2f52 SHA512 e0d06102dcb8ec2d24e8c8c3f5c2ee5cb47c18e203dfb43d85de008d682ff874fb664fef1df909a5a7857de39c7e8ce5175e734a11964ec4cd35f8fbacaea3a4 -DIST wine_gecko-2.47-x86_64.msi 50806272 BLAKE2B 6f91d4661a322eca41042cb7a246d5bff76ab72b4bda67183fc36735c923bd6d76624f21fd3e59f63fd872704edcf0116a6e7ab4fa6f074f5098c8fb5307534c SHA512 7c2496b15a06bc6906bc60afb3ac082e3f9931207fa624e60297020211d66aa9b420a61e95730a0dbdcefbe4b26c811d0c896ecd9c363b5107d08c3fa22fef41 +DIST wine-gecko-2.47.2-x86.msi 59162112 BLAKE2B 75197c5145dd047d637ea950ed1df918b79446bbb5aae642a90d95af96870cd1756b8469deca105d986ae2dc166ad1b2b89dd7e16c7d13baa4b215b30c3ba909 SHA512 4e6e688fada1edd3d7e0e131246dcae8c6db1a2fde946540b6f8c8b2deee8aa19f210368132f00789d4f49bf2b5e5ac671d4d3699f557e652ece50e55fbcbd43 +DIST wine-gecko-2.47.2-x86.tar.xz 45556880 BLAKE2B 43334edd68f22e21347a49bcd7321d90111652fe6143fcb94fa97cee950701f1891b41e8c4ea75854d5232a74c2007534d3fdb190c6abfb96290193f6a4546d2 SHA512 de39bacf9e8b45971e3e675ccbbac0731855b81e148619a98fb126c38ab385f10f1e68e0a52a663fa1a079192b378f4d4e4cdb0a11c5e9dd46221a9604214250 +DIST wine-gecko-2.47.2-x86_64.msi 55354880 BLAKE2B c234602e29a6597d26e7a78ec85ac66471ecd8fcea5360d6f32323e4cbee4aca2ccd5530706e8779346ff2d08f1c4900fef198763e431ce7cd232ef117933336 SHA512 9bbaf061d5d2035e6df0898a847697bbed071abaf95ccde08b5ace7a2c6fc871db16443596b23a889def82f98591973fe8ca88063021d8779f8faa48973f239c +DIST wine-gecko-2.47.2-x86_64.tar.xz 43025348 BLAKE2B 0c956043d7a49cdd88a3af4b25191087fd638a68b958e13a46bbf4310ecf7cdeb973eb3ea5b254f2d4f90f2a715d35c25a67b1883159a60a0ff6eea70e0f1077 SHA512 cf7af1087823188c3be6665d7662bf1029c58b4b8db271e5f4bfed15df217b905653b034b62ed0fa961f528be40f0325b378669d27c9a18ef5b9d98ef8c63aeb +DIST wine-gecko-2.47.3-x86.msi 55686144 BLAKE2B ce428b35ce70968c12141832aab6044a4e9ecb198b7ce0af69264de2ef16aa7045b154e8dbcb17ef068e5a30a19224014a07210583166394353c0b67ad3f119b SHA512 988390450e5e64bde903595e8cbed39b6e9c6ea928130f6f20cc3c6692c46db8c2a2e0c5dc49ea324e96ee65af3749414aad8b092a02bf7453499178e01c7527 +DIST wine-gecko-2.47.3-x86.tar.xz 43291212 BLAKE2B 441659dd002c14b7774b0c2dc4bbc8d29f16bda7b9d1b5ff7d75dca53a6b01366c62270fa617f8bcd7ac07871de72c016d66e557b4d4f734227c0c4ec0b74013 SHA512 c1530c4aec4743b5acb14cecac909ece6e140eec2171ad4b154513de9aead7a323789251e27f4f1c3ff0d6af9cd2590193db99380e2c91a1640dcff49f78b84e +DIST wine-gecko-2.47.3-x86_64.msi 54623744 BLAKE2B 2783e060e2277925ca4b1193f4c13d7af88c7605d48d4bdd118826340e293547edc83fa185e2c64fddb629c632480062bedf995b6f65b07360cf9496bbd21f9a SHA512 c8d617695426c19bdb8a415fb0f00dc3ff9aa6c023599d24313f1c6ac50bbf36bc42dc0cdd58dee93c5ad4998468000d123080cbea09efe1bca3d8f7bfa2bd1d +DIST wine-gecko-2.47.3-x86_64.tar.xz 42325312 BLAKE2B dd7b8516ce38c2baa5fc6c73d7292a78c03136a9bffe50ceb4bd32df0754e7f8d6adbc7689e2d00e0a5fb9806d6da736b5d15acc2fca3f2210015ac55892ed6b SHA512 3d4ff51e0dede5b52929b3babc91b16c06fdd89e75f0d6911e2262142c7422405676238d0d6cb90b6705a18b975de21dd58036a78f856523bab28c5bf52879f9 +DIST wine-gecko-2.47.4-x86.msi 55187968 BLAKE2B f0ecd9cf41290082918be54eb9646aa31973db01993b778d06f6fd82e9f948751e54199a4a8db138870641dfb052fec77af0836613eb95018f603b23bf214d36 SHA512 7adb6c9b59444245d3a0ceb372e5054297723f517ea62d37e7bf02db76f2c0e9a4a64777ea7300ad051ea2281668df2d8680f3889e53f295b40aa1919fe453e5 +DIST wine-gecko-2.47.4-x86.tar.xz 43025064 BLAKE2B 2a73c12585b502ae11188482cbc9fb1f45f95bfe4383a7615011104b132f4845f9813d01fb40277e1934fab5f1b35ab40b4f4a66a9967463dd1d666a666904e9 SHA512 1279456eca4439e9adc3c97678fabeca42cc89f683246805ca14f85fc104bf4ba970fb6490f4ebd0938fc8e0a0ca372b000fdd5165f900070eeee30a1aeec117 +DIST wine-gecko-2.47.4-x86_64.msi 53898752 BLAKE2B dabc9957670d388b3c24fb850c444f28561b200f608f8cb6434d661198dc09786d8c61d5ad007fa9f3a1820425b5b9b46253a6b825d5461539a76c0c4d8e8315 SHA512 075f95ff7a33ad0af6ad53fe8f0f6e2ab233ceb950957d2fbf7d4955543dfe143d14fade283061df14562e6345a7cbaf754fc92d591ea03a5573accb290ae530 +DIST wine-gecko-2.47.4-x86_64.tar.xz 41935496 BLAKE2B 62856a88266b4757602c0646e024f832974a93f03b9df253fd4895d4f11a41b435840ad8f7003ec85a0d8087dec15f2e096dbfb4b01ebe4d365521e48fd0c5c0 SHA512 1defbbc1fb5029bf43872a4e1c49995b61e0f106b1fcc4c99159bf4788226981b9ba8a25a2296d3a9312dbfa7e27b469ca27c0867afb218990d45f68705dbfbe diff --git a/app-emulation/wine-gecko/metadata.xml b/app-emulation/wine-gecko/metadata.xml index 921f5a737f83..8b46426a7860 100644 --- a/app-emulation/wine-gecko/metadata.xml +++ b/app-emulation/wine-gecko/metadata.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>wine@gentoo.org</email> <name>Wine</name> </maintainer> - <upstream> - <remote-id type="sourceforge">wine/wine-gecko</remote-id> - </upstream> + <use> + <flag name="shared">Install pre-unpacked files which do not need to be copied into the Wine prefix</flag> + </use> </pkgmetadata> diff --git a/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild deleted file mode 100644 index 6a66a478caf1..000000000000 --- a/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -MY_PN=${PN/-/_} - -DESCRIPTION="A Mozilla Gecko based version of Internet Explorer for Wine" -HOMEPAGE="https://winehq.org" -SRC_URI=" - abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${MY_PN}-${PV}-x86.msi ) - abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${MY_PN}-${PV}-x86_64.msi ) -" - -LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0" -SLOT="${PV}" -KEYWORDS="amd64 x86" -IUSE="abi_x86_32 abi_x86_64" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/gecko - use abi_x86_32 && doins "${DISTDIR}/${MY_PN}-${PV}-x86.msi" - use abi_x86_64 && doins "${DISTDIR}/${MY_PN}-${PV}-x86_64.msi" -} diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild deleted file mode 100644 index b71c2e539912..000000000000 --- a/app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="A Mozilla Gecko based version of Internet Explorer for Wine" -HOMEPAGE="https://winehq.org" -SRC_URI=" - abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86.msi ) - abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86_64.msi ) -" - -LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0" -SLOT="${PV}" -KEYWORDS="amd64 x86" -IUSE="abi_x86_32 abi_x86_64" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/gecko - use abi_x86_32 && doins "${DISTDIR}/${PN}-${PV}-x86.msi" - use abi_x86_64 && doins "${DISTDIR}/${PN}-${PV}-x86_64.msi" -} diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild new file mode 100644 index 000000000000..fd2e621718a3 --- /dev/null +++ b/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Mozilla Gecko based version of Internet Explorer for Wine" +HOMEPAGE=" + https://wiki.winehq.org/Gecko + https://gitlab.winehq.org/wine/wine-gecko/" +SRC_URI=" + shared? ( + abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) + abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.tar.xz ) + ) + !shared? ( + abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) + abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.msi ) + )" +S="${WORKDIR}" + +LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0" +SLOT="${PV}" +KEYWORDS="amd64 x86" +IUSE="+abi_x86_32 abi_x86_64 +shared" +REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" + +src_install() { + insinto /usr/share/wine/gecko + + if use shared; then + use abi_x86_32 && doins -r ${P}-x86 + use abi_x86_64 && doins -r ${P}-x86_64 + else + use abi_x86_32 && doins "${DISTDIR}"/${P}-x86.msi + use abi_x86_64 && doins "${DISTDIR}"/${P}-x86_64.msi + fi +} diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild new file mode 100644 index 000000000000..fd2e621718a3 --- /dev/null +++ b/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Mozilla Gecko based version of Internet Explorer for Wine" +HOMEPAGE=" + https://wiki.winehq.org/Gecko + https://gitlab.winehq.org/wine/wine-gecko/" +SRC_URI=" + shared? ( + abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) + abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.tar.xz ) + ) + !shared? ( + abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) + abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.msi ) + )" +S="${WORKDIR}" + +LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0" +SLOT="${PV}" +KEYWORDS="amd64 x86" +IUSE="+abi_x86_32 abi_x86_64 +shared" +REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" + +src_install() { + insinto /usr/share/wine/gecko + + if use shared; then + use abi_x86_32 && doins -r ${P}-x86 + use abi_x86_64 && doins -r ${P}-x86_64 + else + use abi_x86_32 && doins "${DISTDIR}"/${P}-x86.msi + use abi_x86_64 && doins "${DISTDIR}"/${P}-x86_64.msi + fi +} diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild new file mode 100644 index 000000000000..ae25f7f2f8eb --- /dev/null +++ b/app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Mozilla Gecko based version of Internet Explorer for Wine" +HOMEPAGE=" + https://wiki.winehq.org/Gecko + https://gitlab.winehq.org/wine/wine-gecko/" +SRC_URI=" + shared? ( + abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) + abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.tar.xz ) + ) + !shared? ( + abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi ) + abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.msi ) + )" +S="${WORKDIR}" + +LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0" +SLOT="${PV}" +KEYWORDS="amd64 x86" +IUSE="+abi_x86_32 abi_x86_64 +shared" +REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )" + +src_install() { + insinto /usr/share/wine/gecko + + if use shared; then + use abi_x86_32 && doins -r ${P}-x86 + use abi_x86_64 && doins -r ${P}-x86_64 + else + use abi_x86_32 && doins "${DISTDIR}"/${P}-x86.msi + use abi_x86_64 && doins "${DISTDIR}"/${P}-x86_64.msi + fi +} diff --git a/app-emulation/wine-mono/Manifest b/app-emulation/wine-mono/Manifest index 89c21b04c9df..dd0016c86352 100644 --- a/app-emulation/wine-mono/Manifest +++ b/app-emulation/wine-mono/Manifest @@ -1,15 +1,10 @@ -DIST wine-mono-4.6.4.msi 45592064 BLAKE2B 30099b7f02276e47e350a96af07bf64b43c857b3b3323d0cab85864b753e9810c0d7b5d496e2f53f5b2c3a434eb440a19f9928707c4127303aa0335928e39097 SHA512 1d50df5d4d000998c74fbee79b8ffc691d88ee3b34db9fd7124e0df68d6f84768ece489ac8c3f5f3141c2073c8666b93ae23ca6cd652a6542a821df3d1b66b6d -DIST wine-mono-4.7.0.msi 64625152 BLAKE2B 9c533d9f9a5cec6aefa66ed916e88f0a03ab76e8292f112a669208c5b26855a314657c9950993a205941cd314f0c93a55f621ed71ebb4846a66d30fa9af3c855 SHA512 07cd2b26f3bfe6fc796a126b83e9c0aa655d3e8152af536ae2e8ae419013742706ddae6f93cc2341c94a2f3b8ae7d1b27d12f891d371928189291428f9ed877c -DIST wine-mono-4.7.1.msi 56470528 BLAKE2B b1b9dd832f725cb70b80889c08db524540c389c4eb8c990415f0c1b4a17274fc96390808c943bd0ff42c79f4bbb376b3d599d31ed42b5ebcb4be79dbc273eeec SHA512 d47f21fa3ddb31522366056a2062cf7b77eec0a12f96dc05326561c9d2604405128441ff40d1b9567a6e6cd1c19ee03444d2ba02dd3b8dd2d150030dfb52f765 -DIST wine-mono-4.7.3.msi 56470528 BLAKE2B 59397f851bd0883f060fd359228fcdedea5a32ce06349fd563411dfa603a6c8700496111821fd9e571cfd4586e829acb12321528a4a8330d1fb6f92855482225 SHA512 d51c0e21c8448a4d11c3e4fd530bda340cc93cd420080e08aadd7b704183dcadf8553b0937e02c7a54a8a2fb46a395718a3e807b85f19936b0e4ee7b92052dfe -DIST wine-mono-4.7.5.msi 56470528 BLAKE2B a662249fe85dbcc6de273cc8f8384fee9fe789a272c7dfec28e406ac2b512cd0e9ef07716004c694f66a69d2dd0a62e14691123db7b9845d7ad86762619da100 SHA512 25e4188e42362aa9050e4d78a5748697d63181fa91a0c0d2e43ad4c26996f9fb82053a5e6942621aaff01c832be88ea13ac7b472be8841a828eed4e5e87c9ee7 -DIST wine-mono-4.8.0.msi 86536704 BLAKE2B 24120b57a6b51b47d66b4dcf9765492ad2dce8ece7d186b7bd78172598308be43336944ae804be5181e2c3d7ae7cace08c75e2b66fbfad097c9c16fd6fcfc3a9 SHA512 ab0a9795ccbd3acf42d0e904585a16c62b28a2753771b5dccfd4013b77a118eff6fd92c4a8711be43df2b09c993884cc9bb48e025b60059b2a7d3a832ecbbf43 -DIST wine-mono-4.8.1.msi 115878912 BLAKE2B 88bd9b35efd89aece2dd0cd9529bc081fcd2a97f3af81806e9901158cbe48e920e5e6ac276da16c9c2d369dd307a7be05d7b8b67acf2733279a5df17696dd154 SHA512 06cbfc66ad82c40975f9d41698c49ba19c7eadf56b5ea87037b7cf0dbe2053de0d5587573798af294eb5ef8c7f2f5ffb7b3c45da83493c71d1923c1abee1bf9b -DIST wine-mono-4.8.3.msi 116183552 BLAKE2B 5e82c2e6e456311de817b7870e02d60abc3e359a9b5989257cae4a31e24206e7c8289f417dbb5fa2e315537b4e8352f9f1237f576b3c06cb2dbaaa7a5443a4f0 SHA512 5b5c1c147453cc691ceb17c850be66e3701e784d2ed4bd27abd92a815f7070850b5e0fc1778c3a3aa2b84516b4c5e01abe350d6ccc5578037e75cb1afe1dfb6a -DIST wine-mono-4.9.0.msi 94960640 BLAKE2B b60debd41ea33eee15ab1a546c526858b97cf4d5d896c856cce21f09210e3e10f1abf98dfb723abbe75657dd44011c1c793a08a329e037144d3266001739467c SHA512 76142fa7233aa3f8111df9112927e699cfc39f8bd0f02f0fc4d065eaeb37964f9e2b49bf53c406fa6ec72c247ab85ddba244ac97b4d6a377adeb63d9ae339e24 -DIST wine-mono-4.9.2.msi 94981632 BLAKE2B b70a5177fad3c6ee2b04ef40105c7700a08339786a23d7378ba72005da5b3cb6b3a797f0173ba32224bcfd25a4bb0fa01c92a83b88e005973b33320717f5b31a SHA512 73e46ec57c7a78d8c32ead4698c299fa557bb97739ce22c9405f95f48f55d604743aa01cc64183c9f89f99aec6f04b664bac0ef96e6a436d38ebcd9d7cf3b329 -DIST wine-mono-4.9.3.msi 95017472 BLAKE2B bf054bcff51e986ddb95788fdd1925ee13efe6e881089a23192d4ccb2527ccb2a2969917b9c3bb16a2161a2bd1d60c24605fd07e6c432f8f77c7c506222045f9 SHA512 4631d4e3b5118eb726f614e2f58f9e95f44bb97a1285fa726d3542d44e2a77ce818997ecb4de42e0d318d364d7c929f10d7c5176b59732e8b468e7695633706c -DIST wine-mono-4.9.4.msi 95266304 BLAKE2B fb9c81f8ac8fca104f766d62b02c8751b5b7b91740cb43942477c7bdcac382eafeb5fc9c3fe78191b19d81bc5f06dd5c33db7ecfbdaba5e6be69ed39a6827706 SHA512 d52a2cc1137eac87acdaecbb7a81b3d618cad9ad3d7bca5b29940b7432923bfc1497ec21501a05797ef52c6588bb9c5e312df5c02ede8448d1fe1f2880557fc9 -DIST wine-mono-5.0.0-x86.msi 79537664 BLAKE2B f5a4185a7a63a1c1966d871d4c8d5bae07d3bbbc3153f20847c3919ac87be5644e15b45764286483641d9ce19176f79c7c7544e543fad62032ef5302a66ea8ea SHA512 8f83122d4b552b3a3d8b000abbd19b7a72edf45e52fa63a9220228240d8e4c014531bb265d062a38f6924fae07dd45420a5c7566f99e0c471e116fb80906c08c -DIST wine-mono-5.1.0-x86.msi 84094976 BLAKE2B 25b044696f46810a843c17117f61532de3d4922f202e5acc2106b67f99eda6d359a799dd53ac4801380e81fdb5929c29e09a4923df99bf104b462ac77c682f29 SHA512 c4013307ba43121346f11881a30ff83d4921e0563a1ad3ff1adc34373f7bda5d5f6ad8c46bafe11c13ca372075333562864e073fe944428225b01fb885f9532f -DIST wine-mono-5.1.1-x86.msi 84130304 BLAKE2B 05a5344b59249a758443cf91670eaef71d9ad3a3024b11442a8d3512ba54356439d503629fa799e2454975f47c0eaf6ff9e25ed61b020f29efceacc78347d578 SHA512 c518b93a470cc897abaf1dba18cc773dca0df62a28d35f32f2ddbe39b4de616c0307545bea5dc3ca87a01fd96b47feb3e1d8c3778106304b9cc08ebb3d1d665f +DIST wine-mono-7.0.0-x86.msi 86433280 BLAKE2B 9d164bf10f9c790a1f518624321a77965800742c84677a6372cd57b1f51bdd16a2d61ee85f868e84be9b07d4c3f5a7afa770e98637f698c2337c42d42890cf58 SHA512 d7af2a68c3b48cab93ddd489f674ab9064d69d5ca0b6c91e58713dd0408af9fb1ff82ef8847d91645d96df40cd5526c6735d621064a3598166ab5f51d1e0d076 +DIST wine-mono-7.0.0-x86.tar.xz 45085800 BLAKE2B 504c57acce486c19a54bf33cdb4b9444c07a58a7f56ced0c93178886a91fa5d94a61f6e26aa885f3e3a2cceb2ff792f01006a4b16fa5bb88c3d25ddff02fefd7 SHA512 a3977563c5eb6418eaeda25e5b39bd2ef1faf305d514979211e049280c4577718ca48c8566e527b97a58fc465b310dd600093a616102573e12e8985794d828a6 +DIST wine-mono-7.4.0-x86.msi 87334912 BLAKE2B c0b778f9db59d1a2917631f1d6ca1a1798972a6a42e27975da78f3a35b77018a99228d7d95e5640c57618533a6b01bf2252859e3e978e2aa8dbdc8cd62afcc28 SHA512 cf35513b368324487c387d4339e5b05a90c4825b25ea603140524b79e69786ccc20dfb898213a9548c0313c0b0e4b160acb88364e4b280dd6712d185d9e5ae57 +DIST wine-mono-7.4.0-x86.tar.xz 45404344 BLAKE2B 3a74106b9b3f21a88c2435f7988d66a54e08beea931a0ce0df6431c21add4ee2685bf9c9cb2404ee1a685736d61b1aee3cdd507130e5c5dddba7e506a2ff18bb SHA512 108cb5d969e84deeda3d2b11dba7cd73853fc3b088ecf2bcdb9bc5c5bbaaff03e72cd4f485d1935eda43cdd95b927886441be1d2204edeaee1ff1fea75735d22 +DIST wine-mono-8.1.0-x86.msi 84905984 BLAKE2B 948b014fc6fba94bc97642b8aae266b8179b119ea3d8a0fdf47daee33eac65b8cc5dd1bc483ae4c66bdd1bdc10f4b73258bb6c83bca0911a30e86e358faafd20 SHA512 5c788dfa0c9b664242f3ce0ab24f3f9256dabf1e9fadc516140f267c763da1865b4536c707660acaf66e4a37d93198f5499971b4261e63d91252f6a7fc3eae4e +DIST wine-mono-8.1.0-x86.tar.xz 40854944 BLAKE2B 0e0dd83b92016da328547173d25dc396a895a7a161cd54796c9bda34ae958856f1bee342c1bb5fcffcf695b35adf66b2bf83cfa61e01790bf4b0f2d198f84feb SHA512 ba87105a6527b9c392e9ad406e92fd90164e0abb3a348a1e343e63eff0ee8632399badb98f7fbc3581ce697ba09d98aafbf5033bf52fb14b7c7c280c64f25a84 +DIST wine-mono-9.0.0-x86.msi 84583424 BLAKE2B 38f16049909f6464624c1c8f990a7873a3211bf02bef7593cae9da0201e8de0f535c841375eadf47bf0a4b10b08bc9d4c89d22d723e51f3f767c6e986ef01c7d SHA512 fcbde718c237f102aab2e234a2f1c03aedd45ad9f97152112562b2119e542efd2f2979899afd3e9e03b1a06caec135d0f2cfcde084e372d1f74d594d52e6c833 +DIST wine-mono-9.0.0-x86.tar.xz 40970928 BLAKE2B 253533706845cf8e4aa958cca61928e6ce3be7482bfcbba45a5dd6381ab144263ddf40df009121508288710ee0872382a6ce7cde06cf8dd6c75e932916de907e SHA512 0117619a2b3f6e92ee513aeea79db977055098e6f629063fbd5d1a1b7d47e9d14451369b1d0a6a30e468ed051e60bba59aec75b90ea34fa9b4956d3ebdb32c06 +DIST wine-mono-9.1.0-x86.msi 84623872 BLAKE2B 63e86a4f99a5300782017f0b1a2168ad49516e2b2a7e825d7f59b8e842874c7f84752058908e8f57ad1e650a68675c5ff81ad8ba973962ea075db590be0fa51b SHA512 e51744eb0b07a58516fe3f5115fe45b4924e285fe4688649d04dec522203af6b3aa066e5db9b37cbbfe6ce4b5d8e871e9881842227cbb20c0613b911b5bfc383 +DIST wine-mono-9.1.0-x86.tar.xz 43820028 BLAKE2B 6249e661239b71ca2607cf5fb3285bbef3e4c056c87e15352e40d2875028dbaa7f1c1a8b4d908f74de8447b4166c61c708314dc6422e9f69a6eea5f588e7c73b SHA512 cede2b910e95fc43e658e6d4d8086ec5324407a32fff4852341178e1e56df240356c02f270e3be174f3ab82aa076e50d70be4da8e8c5f77e877fce8fe3217374 diff --git a/app-emulation/wine-mono/metadata.xml b/app-emulation/wine-mono/metadata.xml index a64284bc1ee9..83c506abfee8 100644 --- a/app-emulation/wine-mono/metadata.xml +++ b/app-emulation/wine-mono/metadata.xml @@ -1,13 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>wine@gentoo.org</email> <name>Wine</name> </maintainer> <longdescription> - Wine Mono is a package containing Mono and other projects, intended as a replacement for the .NET runtime and class libraries in Wine. It works in conjunction with Wine's builtin mscoree.dll, and it is not intended to be useful for any other purpose. + Wine Mono is a package containing Mono and other projects, + intended as a replacement for the .NET runtime and class + libraries in Wine. It works in conjunction with Wine's builtin + mscoree.dll, and it is not intended to be useful for any other + purpose. </longdescription> + <use> + <flag name="shared">Install pre-unpacked files which do not need to be copied into the Wine prefix</flag> + </use> <upstream> <remote-id type="github">madewokherd/wine-mono</remote-id> </upstream> diff --git a/app-emulation/wine-mono/wine-mono-4.6.4.ebuild b/app-emulation/wine-mono/wine-mono-4.6.4.ebuild deleted file mode 100644 index 4a5144adb837..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.6.4.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="amd64 x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.7.0.ebuild b/app-emulation/wine-mono/wine-mono-4.7.0.ebuild deleted file mode 100644 index 54ef87ce73c8..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.7.0.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.7.1.ebuild b/app-emulation/wine-mono/wine-mono-4.7.1.ebuild deleted file mode 100644 index 4a5144adb837..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.7.1.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="amd64 x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.7.3.ebuild b/app-emulation/wine-mono/wine-mono-4.7.3.ebuild deleted file mode 100644 index 54ef87ce73c8..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.7.3.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.7.5.ebuild b/app-emulation/wine-mono/wine-mono-4.7.5.ebuild deleted file mode 100644 index d45f506606cc..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.7.5.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="amd64 x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.8.0.ebuild b/app-emulation/wine-mono/wine-mono-4.8.0.ebuild deleted file mode 100644 index 15aab248909e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.8.0.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.8.1.ebuild b/app-emulation/wine-mono/wine-mono-4.8.1.ebuild deleted file mode 100644 index 15aab248909e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.8.1.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.8.3.ebuild b/app-emulation/wine-mono/wine-mono-4.8.3.ebuild deleted file mode 100644 index 15aab248909e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.8.3.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.9.0.ebuild b/app-emulation/wine-mono/wine-mono-4.9.0.ebuild deleted file mode 100644 index 15aab248909e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.9.0.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.9.2.ebuild b/app-emulation/wine-mono/wine-mono-4.9.2.ebuild deleted file mode 100644 index 15aab248909e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.9.2.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.9.3.ebuild b/app-emulation/wine-mono/wine-mono-4.9.3.ebuild deleted file mode 100644 index 15aab248909e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.9.3.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-4.9.4.ebuild b/app-emulation/wine-mono/wine-mono-4.9.4.ebuild deleted file mode 100644 index 063347ed1e0e..000000000000 --- a/app-emulation/wine-mono/wine-mono-4.9.4.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="amd64 x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-5.0.0.ebuild b/app-emulation/wine-mono/wine-mono-5.0.0.ebuild deleted file mode 100644 index 30b33158592b..000000000000 --- a/app-emulation/wine-mono/wine-mono-5.0.0.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}-x86.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-5.1.0.ebuild b/app-emulation/wine-mono/wine-mono-5.1.0.ebuild deleted file mode 100644 index 30b33158592b..000000000000 --- a/app-emulation/wine-mono/wine-mono-5.1.0.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}-x86.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-5.1.1.ebuild b/app-emulation/wine-mono/wine-mono-5.1.1.ebuild deleted file mode 100644 index 30b33158592b..000000000000 --- a/app-emulation/wine-mono/wine-mono-5.1.1.ebuild +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi" - -LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" -SLOT="${PV}" -KEYWORDS="~amd64 ~x86" - -DEPEND="!!app-emulation/wine:0" - -S="${WORKDIR}" - -src_install() { - insinto /usr/share/wine/mono - doins "${DISTDIR}/${P}-x86.msi" -} diff --git a/app-emulation/wine-mono/wine-mono-7.0.0.ebuild b/app-emulation/wine-mono/wine-mono-7.0.0.ebuild new file mode 100644 index 000000000000..f943df20d059 --- /dev/null +++ b/app-emulation/wine-mono/wine-mono-7.0.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine" +HOMEPAGE="https://wiki.winehq.org/Mono" +SRC_URI=" + shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz ) + !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi )" +S="${WORKDIR}" + +LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" +SLOT="${PV}" +KEYWORDS="amd64 x86" +IUSE="+shared" + +src_install() { + insinto /usr/share/wine/mono + + if use shared; then + doins -r ${P} + else + doins "${DISTDIR}"/${P}-x86.msi + fi +} diff --git a/app-emulation/wine-mono/wine-mono-7.4.0.ebuild b/app-emulation/wine-mono/wine-mono-7.4.0.ebuild new file mode 100644 index 000000000000..27069cdc43d3 --- /dev/null +++ b/app-emulation/wine-mono/wine-mono-7.4.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine" +HOMEPAGE="https://wiki.winehq.org/Mono" +SRC_URI=" + shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz ) + !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )" +S="${WORKDIR}" + +LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" +SLOT="${PV}" +KEYWORDS="amd64 x86" +IUSE="+shared" + +src_install() { + insinto /usr/share/wine/mono + + if use shared; then + doins -r ${P} + else + doins "${DISTDIR}"/${P}-x86.msi + fi +} diff --git a/app-emulation/wine-mono/wine-mono-8.1.0.ebuild b/app-emulation/wine-mono/wine-mono-8.1.0.ebuild new file mode 100644 index 000000000000..420d2e8387b2 --- /dev/null +++ b/app-emulation/wine-mono/wine-mono-8.1.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine" +HOMEPAGE="https://wiki.winehq.org/Mono" +SRC_URI=" + shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz ) + !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )" +S="${WORKDIR}" + +LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" +SLOT="${PV}" +KEYWORDS="amd64 x86" +IUSE="+shared" + +src_install() { + insinto /usr/share/wine/mono + + if use shared; then + doins -r ${P} + else + doins "${DISTDIR}"/${P}-x86.msi + fi +} diff --git a/app-emulation/wine-mono/wine-mono-9.0.0.ebuild b/app-emulation/wine-mono/wine-mono-9.0.0.ebuild new file mode 100644 index 000000000000..f756896e7c2e --- /dev/null +++ b/app-emulation/wine-mono/wine-mono-9.0.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine" +HOMEPAGE="https://wiki.winehq.org/Mono" +SRC_URI=" + shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz ) + !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )" +S="${WORKDIR}" + +LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" +SLOT="${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="+shared" + +src_install() { + insinto /usr/share/wine/mono + + if use shared; then + doins -r ${P} + else + doins "${DISTDIR}"/${P}-x86.msi + fi +} diff --git a/app-emulation/wine-mono/wine-mono-9.1.0.ebuild b/app-emulation/wine-mono/wine-mono-9.1.0.ebuild new file mode 100644 index 000000000000..f756896e7c2e --- /dev/null +++ b/app-emulation/wine-mono/wine-mono-9.1.0.ebuild @@ -0,0 +1,26 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine" +HOMEPAGE="https://wiki.winehq.org/Mono" +SRC_URI=" + shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz ) + !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )" +S="${WORKDIR}" + +LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1" +SLOT="${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="+shared" + +src_install() { + insinto /usr/share/wine/mono + + if use shared; then + doins -r ${P} + else + doins "${DISTDIR}"/${P}-x86.msi + fi +} diff --git a/app-emulation/wine-proton/Manifest b/app-emulation/wine-proton/Manifest new file mode 100644 index 000000000000..34b2254d80d2 --- /dev/null +++ b/app-emulation/wine-proton/Manifest @@ -0,0 +1,2 @@ +DIST proton-wine-7.0-6.tar.gz 45780326 BLAKE2B f140fcfdd1a47904c34a49d0795fa3326d7cf0d3fac8d6c2ef2a4926181a46223f43a2d1ca96c543e800c8c46b2a3cc51ae306a029d68a42608876e869e177d5 SHA512 793bbe2b23042301a1b518717d78cfff01eaffa0388883d010659a45779b9136d33cfac63f0c3fbb1e458953a954b423eb70ac4fa87633352267db890ceb2fef +DIST proton-wine-8.0-5c.tar.gz 48710071 BLAKE2B 99627baea6fb3d51231aa1e75a2734c3c1baba88326baf15b3d421d57a00472d25ba51c2140b51152c8aeae7dd240d3d77bb0d8835aa7eb3b745a51be120f8bb SHA512 0cf98d4e67866e55cc8cd5ea8da0d76aee8e37b130b3cbca604083c913e98ddf9038ecd6f9761d2e11443e282b372977400e251456c6d40e1365210c7578234d diff --git a/app-emulation/wine-proton/files/README.gentoo b/app-emulation/wine-proton/files/README.gentoo new file mode 100644 index 000000000000..48f3d568a013 --- /dev/null +++ b/app-emulation/wine-proton/files/README.gentoo @@ -0,0 +1,52 @@ +While this version of Wine is usable independently, it does contain some +Steam-oriented changes that may be unexpected. Notably C:\users\steamuser +is used rather than C:\users\<user-name> and it may be necessary to move +files if converting from non-proton Wine prefixes (like games' save files). + +To keep a low maintenance cost, these changes are not reverted in Gentoo +with the exception of re-enabling winemenubuilder for desktop entries. + +Also, given this Wine variant is oriented toward running games, some +normally unrelated features (e.g. cups) may not have real upstream +(Valve) support. Because of this, some are left always disabled. + +If needed, use other variants for the more expected Wine behavior. + +--- + +Given Proton is not creating the Wine prefixes, some features are not +enabled by default and PROTON_* variables to control them are unrecognized. + +To (optionally) setup some notable defaults of Proton: +- export WINEFSYNC=1 +. Often improves performance for CPU-bound applications, recommended +. but should be left disabled if get crashes mentioning fsync errors. +. >Requires linux kernel >=5.16 if unpatched. +- export WINE_LARGE_ADDRESS_AWARE=1 +. Allows 32bit applications to access more memory, notably helps +. prevent crashes on memory-heavy applications while using dxvk below. +- WINEPREFIX=/path/to setup_dxvk.sh install --symlink +. Vulkan-based d3d9/10/11 that often provides both better performance +. and compatibility (strongly recommended). +. >Requires app-emulation/dxvk +- WINEPREFIX=/path/to setup_vkd3d_proton.sh install --symlink +. Like above, but for d3d12. Wine also supports vkd3d as-is but this +. is the modified fork used by Proton (may or may not be better). +. Intended to work with dxvk's dxgi.dll so, if used, install both. +. >Requires app-emulation/vkd3d-proton + +For some applications it may be better to disable these or do other +workarounds, see https://www.protondb.com/ for specific information. + +Many other proton-specific improvements / fixes are always enabled, and +some game-specific quirks are auto-enabled as needed (can see a few from +running winecfg). + +If have audio/video playback issues, note to look at GStreamer plugins. +Notably USE=ffmpeg on media-plugins/gst-plugins-meta which Proton normally +provide by default. + +--- + +If have other Wine variants installed, remember to either use `eselect wine` +to select this variant or call it as wine-proton. diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch new file mode 100644 index 000000000000..0776df12f241 --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch @@ -0,0 +1,17 @@ +Wrongly assumes that futex_waitv is missing if no glibc-only __NR_futex_waitv. +https://bugs.gentoo.org/868747 +--- a/configure.ac ++++ b/configure.ac +@@ -2153,2 +2153,5 @@ + ++dnl Check for futex_waitv structure members ++AC_CHECK_MEMBERS(struct futex_waitv.val,,,[#include <linux/futex.h>]) ++ + dnl Check for socket structure members +--- a/dlls/ntdll/unix/fsync.c ++++ b/dlls/ntdll/unix/fsync.c +@@ -67,2 +67,4 @@ + # define __NR_futex_waitv 449 ++#endif ++#ifndef HAVE_STRUCT_FUTEX_WAITV_VAL + # define FUTEX_32 2 diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch new file mode 100644 index 000000000000..92aa0b4b5c5d --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch @@ -0,0 +1,7 @@ +Also write GNU-stack note on dummy files used for stub libraries. +--- a/tools/winebuild/import.c ++++ b/tools/winebuild/import.c +@@ -1675,2 +1675,3 @@ + output( "\t.text\n" ); ++ output_gnu_stack_note(); + } diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch new file mode 100644 index 000000000000..760340791060 --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch @@ -0,0 +1,14 @@ +Without Steam there is no launcher by default, users with more custom +setups may not need this but others will want access to desktop entries. +--- a/configure.ac ++++ b/configure.ac +@@ -3683,2 +3683,3 @@ + WINE_CONFIG_MAKEFILE(programs/winefile) ++WINE_CONFIG_MAKEFILE(programs/winemenubuilder) + WINE_CONFIG_MAKEFILE(programs/winemine) +--- a/loader/wine.inf.in ++++ b/loader/wine.inf.in +@@ -5630,2 +5630,3 @@ + [Services] ++HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r" + HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16 diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch new file mode 100644 index 000000000000..372def52ba0c --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch @@ -0,0 +1,40 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -646,7 +646,9 @@ + unsigned int cie_offset; + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) + { +@@ -1368,7 +1370,7 @@ + unw_proc_info_t info; + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) + rc = unw_init_local( &cursor, &unw_context ); +@@ -1491,11 +1493,13 @@ + NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context ) + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + + if (fde) + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, + &dispatch->LanguageHandler, &dispatch->HandlerData ); diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch b/app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch new file mode 100644 index 000000000000..54ecc49c7235 --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch @@ -0,0 +1,20 @@ +Hack: this does not actually need stdarg.h, but including it ensures +that _mingw.h will be loaded before the rest of Wine's winnt.h avoiding +issues with mingw64-runtime-11.0.0, e.g.: + + _mingw.h:602:60: error: redefinition of ‘__fastfail’ + make[1]: *** [Makefile:5900: dlls/advapi32/crypt_des.cross.o] Error 1 + +(other crypt_*.c happen to include stdarg.h first and don't fail, but this +one does not, same for several other files in dlls/) + +Not an issue with non-proton Wine 7.0 as Wine did not define __fastfail +until ~wine-7.10. Wine 8 does define it but does not seem to be a problem +there (perhaps due to different header layout). A more "right" fix would +be welcome, but given Proton-7 seems EOL it is not judged important. +--- a/include/winnt.h ++++ b/include/winnt.h +@@ -32,2 +32,3 @@ + #include <string.h> ++#include <stdarg.h> + #endif diff --git a/app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch b/app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch new file mode 100644 index 000000000000..50fc5be57abc --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch @@ -0,0 +1,36 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/dwarf.h ++++ b/dlls/ntdll/unix/dwarf.h +@@ -257,5 +257,7 @@ + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -648,5 +648,5 @@ + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) +@@ -774,4 +774,5 @@ + CONTEXT *context = params->context; + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + +@@ -779,4 +780,5 @@ + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, diff --git a/app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch b/app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch new file mode 100644 index 000000000000..f278a2cbc264 --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch @@ -0,0 +1,8 @@ +Without Steam there is no launcher by default, users with more custom +setups may not need this but others will want access to desktop entries. +--- a/loader/wine.inf.in ++++ b/loader/wine.inf.in +@@ -5630,2 +5630,3 @@ + [Services] ++HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r" + HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16 diff --git a/app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch b/app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch new file mode 100644 index 000000000000..78e4393d390d --- /dev/null +++ b/app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch @@ -0,0 +1,14 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -813,8 +813,11 @@ + ;; + esac + ;; + esac ++ ++ # do this at the end because it needs double dollar for makefile ++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"]) + ;; + esac + + enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} diff --git a/app-emulation/wine-proton/metadata.xml b/app-emulation/wine-proton/metadata.xml new file mode 100644 index 000000000000..cc21bdb8ce89 --- /dev/null +++ b/app-emulation/wine-proton/metadata.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>ionen@gentoo.org</email> + <name>Ionen Wolkens</name> + </maintainer> + <maintainer type="project"> + <email>wine@gentoo.org</email> + <name>Wine</name> + </maintainer> + <use> + <flag name="crossdev-mingw"> + Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than + <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) + </flag> + <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag> + <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag> + <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag> + <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag> + <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag> + <flag name="vkd3d">Enable DirectX 12 support using <pkg>app-emulation/vkd3d</pkg></flag> + <flag name="wow64"> + Enable running 32bit applications without 32bit ELF + multilib by mapping to 64bit calls (experimental, + *may* have worse/unusable OpenGL performance or other + issues compared to USE=abi_x86_32, also lacks 16bit + support) -- still need <pkg>dev-util/mingw64-toolchain</pkg> + with abi_x86_32 which itself does not need multilib + </flag> + </use> + <upstream> + <changelog>https://github.com/ValveSoftware/Proton/wiki/Changelog</changelog> + <remote-id type="github">ValveSoftware/wine</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-emulation/wine-proton/wine-proton-7.0.6.ebuild b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild new file mode 100644 index 000000000000..25ee6175708f --- /dev/null +++ b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild @@ -0,0 +1,369 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools flag-o-matic multilib multilib-build prefix +inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.3 +WINE_MONO=7.4.0 +WINE_PV=$(ver_rs 2 -) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git" + EGIT_BRANCH="experimental_$(ver_cut 1-2)" +else + SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz" + S="${WORKDIR}/${PN}-wine-${WINE_PV}" + KEYWORDS="-* amd64 ~x86" +fi + +DESCRIPTION="Valve Software's fork of Wine" +HOMEPAGE="https://github.com/ValveSoftware/wine/" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug + +fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal + osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb + v4l +vkd3d +xcomposite xinerama +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] + media-libs/freetype[${MULTILIB_USEDEP}] + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + media-libs/vulkan-loader[${MULTILIB_USEDEP}] + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( + dev-libs/gmp:=[${MULTILIB_USEDEP}] + net-libs/gnutls:=[${MULTILIB_USEDEP}] + ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + openal? ( media-libs/openal[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + x11-base/xorg-proto +" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + sys-devel/binutils + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + nls? ( sys-devel/gettext ) + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900332) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.4-musl.patch + "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch + "${FILESDIR}"/${PN}-7.0.4-restore-menubuilder.patch + "${FILESDIR}"/${PN}-7.0.4-unwind.patch + "${FILESDIR}"/${PN}-7.0.6-mingw64-11.0.0.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + eerror "--> Note that mingw builds are default for ${PN} even without this USE." + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # and it still gets used in install phase despite --with-mingw, + # drop as a quick fix for now which hopefully should be safe + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # similarly to staging, append to `wine --version` for identification + sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-proton +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + # upstream (Valve) doesn't really support misc configurations (e.g. + # adds vulkan code not always guarded by --with-vulkan), so force + # some major options that are typically needed by games either way + --with-freetype + --with-mingw # needed by many, notably Blizzard titles + --with-opengl + --with-vulkan + --with-x + + # ...and disable most options unimportant for games and unused by + # Proton rather than expose as volatile USEs with little support + --without-capi + --without-cups + --without-gphoto + --without-gssapi + --without-krb5 + --without-ldap + --without-netapi + --without-opencl + --without-pcap + --without-sane + ac_cv_lib_soname_odbc= + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + $(use_with alsa) + $(use_with fontconfig) + $(use_with gstreamer) + $(use_with nls gettext) + $(use_with openal) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pulseaudio pulse) + $(use_with sdl) + $(use_with ssl gnutls) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vkd3d) + $(use_with xcomposite) + $(use_with xinerama) + ) + + tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097) + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # temporary workaround for tc-ld-force-bfd not yet enforcing with mold + # https://github.com/gentoo/gentoo/pull/28355 + [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && + append-ldflags -fuse-ld=bfd + + # >=wine-proton-9 has proper fixes and builds with gcc-14, but would + # rather not have to worry about fixing old branches (bug #924486) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + # build using upstream's way (--with-wine64) + # order matters: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}" + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" + + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + : "${CROSSCFLAGS:=$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-cflags -mno-avx #912268 + + CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{C,LD}FLAGS} + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # symlink for plain 'wine' and install its man pages if 64bit-only #404331 + if use abi_x86_64 && use !abi_x86_32; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + use debug || + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die + + dodoc ANNOUNCE AUTHORS README* documentation/README* + readme.gentoo_create_doc +} + +pkg_preinst() { + has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT= +} + +pkg_postinst() { + [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog + + if use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild new file mode 100644 index 000000000000..9d8a60b340e9 --- /dev/null +++ b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild @@ -0,0 +1,386 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools flag-o-matic multilib multilib-build prefix +inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.3 +WINE_MONO=8.1.0 +WINE_PV=$(ver_rs 2 -) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git" + EGIT_BRANCH="experimental_$(ver_cut 1-2)" +else + SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz" + S="${WORKDIR}/${PN}-wine-${WINE_PV}" + KEYWORDS="-* amd64 ~x86" +fi + +DESCRIPTION="Valve Software's fork of Wine" +HOMEPAGE="https://github.com/ValveSoftware/wine/" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags + +fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa + perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind + usb v4l video_cards_amdgpu +xcomposite xinerama +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] + media-libs/freetype[${MULTILIB_USEDEP}] + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + media-libs/vulkan-loader[${MULTILIB_USEDEP}] + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( + dev-libs/gmp:=[${MULTILIB_USEDEP}] + net-libs/gnutls:=[${MULTILIB_USEDEP}] + ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) +" +# gcc: for -latomic with clang +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + sys-devel/gcc:* + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}] + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + x11-base/xorg-proto +" +BDEPEND=" + ${PYTHON_DEPS} + dev-lang/perl + sys-devel/binutils + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + nls? ( sys-devel/gettext ) + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900332) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.4-musl.patch + "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch + "${FILESDIR}"/${PN}-8.0.1c-unwind.patch + "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + eerror "--> Note that mingw builds are default for ${PN} even without this USE." + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # and it still gets used in install phase despite --with-mingw, + # drop as a quick fix for now which hopefully should be safe + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + + # needed by Valve's fsync patches if using clang (undef atomic_load_8) + sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \ + -i dlls/{ntdll,winevulkan}/Makefile.in || die + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # similarly to staging, append to `wine --version` for identification + sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-proton +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + # upstream (Valve) doesn't really support misc configurations (e.g. + # adds vulkan code not always guarded by --with-vulkan), so force + # some major options that are typically needed by games either way + # TODO?: --without-mingw could make sense *if* using clang, assuming + # bug #912237 is resolved (consider when do USE=wow64 in proton-9) + --with-freetype + --with-mingw # needed by many, notably Blizzard titles + --with-opengl + --with-vulkan + --with-x + + # ...and disable most options unimportant for games and unused by + # Proton rather than expose as volatile USEs with little support + --without-capi + --without-cups + --without-gphoto + --without-gssapi + --without-krb5 + --without-netapi + --without-opencl + --without-pcap + --without-sane + ac_cv_lib_soname_odbc= + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + $(use_enable video_cards_amdgpu amd_ags_x64) + --disable-tests + $(use_with alsa) + $(use_with fontconfig) + $(use_with gstreamer) + $(use_with nls gettext) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pulseaudio pulse) + $(use_with sdl) + $(use_with ssl gnutls) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with xcomposite) + $(use_with xinerama) + ) + + tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097) + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # temporary workaround for tc-ld-force-bfd not yet enforcing with mold + # https://github.com/gentoo/gentoo/pull/28355 + [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && + append-ldflags -fuse-ld=bfd + + # >=wine-proton-9 has proper fixes and builds with gcc-14, but would + # rather not have to worry about fixing old branches (bug #924486) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + # build using upstream's way (--with-wine64) + # order matters: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + pe_arch=i386 + if (( bits == 64 )); then + pe_arch=x86_64 + : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}" + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" + + # CROSSCC is no longer recognized by Wine, but still use for now + # (future handling for CROSS* variables is subject to changes) + conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" ) + + # use *FLAGS for mingw, but strip unsupported + : "${CROSSCFLAGS:=$( + # >=wine-7.21 <8.10's configure.ac does not pass -fno-strict when + # it should (can be removed when proton is rebased on >=8.10) + append-cflags -fno-strict-aliasing + + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-cflags -mno-avx #912268 + + CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{C,LD}FLAGS + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # symlink for plain 'wine' and install its man pages if 64bit-only #404331 + if use abi_x86_64 && use !abi_x86_32; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* + readme.gentoo_create_doc +} + +pkg_preinst() { + has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT= +} + +pkg_postinst() { + [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog + + if use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild new file mode 100644 index 000000000000..fda342d879f2 --- /dev/null +++ b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild @@ -0,0 +1,420 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools flag-o-matic multilib multilib-build prefix +inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 +WINE_PV=$(ver_rs 2 -) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git" + EGIT_BRANCH="experimental_$(ver_cut 1-2)" +else + SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz" + S="${WORKDIR}/${PN}-wine-${WINE_PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Valve Software's fork of Wine" +HOMEPAGE="https://github.com/ValveSoftware/wine/" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags + +fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa + perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind + usb v4l video_cards_amdgpu wow64 +xcomposite xinerama +" +REQUIRED_USE="wow64? ( abi_x86_64 !abi_x86_32 )" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] + media-libs/freetype[${MULTILIB_USEDEP}] + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + media-libs/vulkan-loader[${MULTILIB_USEDEP}] + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( + dev-libs/gmp:=[${MULTILIB_USEDEP}] + net-libs/gnutls:=[${MULTILIB_USEDEP}] + ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) +" +# gcc: for -latomic with clang +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + sys-devel/gcc:* + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}] + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + x11-base/xorg-proto +" +BDEPEND=" + ${PYTHON_DEPS} + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + nls? ( sys-devel/gettext ) + !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900332) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0.4-musl.patch + "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch + "${FILESDIR}"/${PN}-8.0.1c-unwind.patch + "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch + "${FILESDIR}"/${PN}-9.0-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + eerror "--> Note that mingw builds are default for ${PN} even without this USE." + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # and it still gets used in install phase despite --with-mingw, + # drop as a quick fix for now which hopefully should be safe + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + + # needed by Valve's fsync patches if using clang (undef atomic_load_8) + sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \ + -i dlls/{ntdll,winevulkan}/Makefile.in || die + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # similarly to staging, append to `wine --version` for identification + sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # proton variant also needs specfiles and vulkan + tools/make_specfiles || die # perl + dlls/winevulkan/make_vulkan -x vk.xml || die # python + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-proton +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + # upstream (Valve) doesn't really support misc configurations (e.g. + # adds vulkan code not always guarded by --with-vulkan), so force + # some major options that are typically needed by games either way + # TODO?: --without-mingw could make sense *if* using clang, assuming + # bug #912237 is resolved (consider when do USE=wow64 in proton-9) + --with-freetype + --with-mingw # needed by many, notably Blizzard titles + --with-opengl + --with-vulkan + --with-x + + # ...and disable most options unimportant for games and unused by + # Proton rather than expose as volatile USEs with little support + --without-capi + --without-cups + --without-gphoto + --without-gssapi + --without-krb5 + --without-netapi + --without-opencl + --without-pcap + --without-pcsclite + --without-sane + ac_cv_lib_soname_odbc= + + # afaik wayland support in 9.0.x currently cannot do opengl/vulkan + # yet making it mostly pointless for a gaming-oriented build + # (IUSE="X wayland" may be added in wine-proton-10 or 11) + --without-wayland + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + $(use_enable video_cards_amdgpu amd_ags_x64) + --disable-tests + $(use_with alsa) + $(use_with fontconfig) + $(use_with gstreamer) + $(use_with nls gettext) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pulseaudio pulse) + $(use_with sdl) + $(use_with ssl gnutls) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with xcomposite) + $(use_with xinerama) + + --without-vosk # unpackaged, file a bug if you need this + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* + readme.gentoo_create_doc +} + +pkg_preinst() { + has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT= +} + +pkg_postinst() { + [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog + + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest index 09f96cfd41f8..4ae8f88e9f68 100644 --- a/app-emulation/wine-staging/Manifest +++ b/app-emulation/wine-staging/Manifest @@ -1,9 +1,8 @@ -DIST gentoo-wine-patches-20200523.tar.xz 59740 BLAKE2B 951d7f305a6e5b3759c8095629d48de4830b8a0c9558de859a9e02d9824fe85553fda2bc0820ca97022a0ca63ac28473dadfe827821220445dbf1a7fd15c7c98 SHA512 46eea45c982b475e3ff444cbd87c6a0a235fc8dcaf3d83d89655a10ed8841a9ddb09e5a638a05803f3bf2c3bd34165c16067aba561efa4c183ee396dc31cdf75 -DIST wine-5.17.tar.xz 24064512 BLAKE2B a84433ff7bb93a1f43c41f3106ff3f9c648631665100e8140340ab7d347daf6f2c3b54ea8177e1a2c2222574aa67264f5b576d99f6ef461548c74af48c62eb62 SHA512 05338036fa9b195d9cf8a84a1bcc03f35422d5f07744ec4430f20874601829be5904be10060353599cb0187728123f959ccc75e79f1ce1c47178ae9cd55ef696 -DIST wine-5.18.tar.xz 24160316 BLAKE2B 4f359b6e869707a514d2198d2b8ba810b8552ea53ff3f37cbc7c23b732152db0fa5c0c909d2c16a03f6b0ff122435c92f8a9b8b462577aa50a39b2dcfa7bcd05 SHA512 70565fbea61b78580ca86443fcb4c10c7814c1dffcfa49ee38746fef21a52a00f2e040d9d2515892fed4021e7868720cc22b650d18872656838e4610d4d4e823 -DIST wine-5.19.tar.xz 24201860 BLAKE2B 34233747a58e2cf6c9b6b328cb8c0af5707479e02d20365da07d039163757c6557d25ec8136933fd9bd5a7aeb360d96e44c41c34fffb26a23f9e3ea137f03120 SHA512 b91eb1cb1225ac8abe26f5c5dd74fb376e6489b460035c70e6c7890595086e99273497741b6a736ef4884ae7bacc44482d2e3e8ba7e8d85c78c571bd4b133d8a -DIST wine-5.20.tar.xz 24177960 BLAKE2B 50169bc00497feef91f5cf7fd56bce8f7784f70d2a24776494d0ab98cdb70b4387a92dece4571b2b22b15c42d82672595f39079a0678e551331f2bee4460f0f8 SHA512 30299287857376a827579335ba410d0575379df300860c8fdd50473f3eec074372d3602e5027f9e75fb13e272f28f51950ec652109839573a168aed23ba9c8f4 -DIST wine-staging-5.17.tar.gz 10342408 BLAKE2B aa8f864560eb476a4c2011e588df9b24410e4e4a8d6c8d81b5ff63208b3b4474870ae8bd718ba22cdb14b920b52aeac54274710bdb1b4dd427b7c7b0e8e9d14b SHA512 38c9860c8109e29026dd773a6448c9ac6faa373c0dfc04011a5f0b22be69c66dd6bdba95cb28bfb8e3656a53d726f2ffc0bae74bce4d437c4fe5a532e75a19ec -DIST wine-staging-5.18.tar.gz 10357038 BLAKE2B 07df0de55d1bfa36d3492498a48d8f1402dffa161f3b02f3326185d524bea9a2f0893b85a70650797bf1b74c06f5814ddc09cb184a5977cfacb968921020aee1 SHA512 75911ac4d5aaf6cfef41aa487290369d714f153b1fba2279daca75d6c5cbc7e7de9d3f8ef55eb7c311a05b86a212163e2b81ff685c1527fb0e90f223ec23dcab -DIST wine-staging-5.19.tar.gz 10348478 BLAKE2B 4c23d3f488fc7dcbd98abea0593767401711ac0ed533cba144e82fd38f1349ba557aeedf6faac898de107d2b55ba41030cde111272f63ebb7ba25952bf9824d9 SHA512 4335ce48437641bbfd8b882cc92cd2970493586f4ac6501ffb94a0f2dcd38ec632d6afabf71d2c1ab1806a5cf594c2988f94a86c508fcd24a7d42078c662add9 -DIST wine-staging-5.20.tar.gz 10378427 BLAKE2B 75910b198ca5b79f41f4aa115a962cb01a4dd208512feffc2ef9bc327d9c82d0c0babd543ea011917257c5dfd7c5f2f2815dae81d553dd4b239b627bafba1635 SHA512 64913c3af44890a959593c610c713113f068811a8fe79e234a61f262af963d194d1d71d336361c6a473ad0f3f64fc5a88cee36facdc0824cea6856fc74da9634 +DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4 +DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91 +DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922 +DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80 +DIST wine-staging-9.0.tar.gz 9577631 BLAKE2B 0012978f54c618e73d407dd49dccff02853912d0c015098889802518e8c51b280f5d60e11291335dafc68944ee01cbcb7fd6c5825ef10ae1520c7b82d9846718 SHA512 362209fcadcf029152b681c76beb231d0cc8de1609b994094f1dc88ab871fddda08b3d8c2fe36ceb38909a9d634c1ade864ca0f28a6a7715ec286a8b2884981f +DIST wine-staging-9.5.tar.gz 9526239 BLAKE2B a6f5a351a3979fc81a0d8c6325da4f08021d19eb7ac6ad52906a6fcf19552f01bdc8fbebc9b33fc82e14cdd6e6d50347dc7bc73e622d589d2e9eec5d577d3158 SHA512 8c756fe505092e21dd37c709ac3917c305b70881c05270f0e188ccdf9ff36b9fd224adad424d37c6919637d2af55afbfba49079eb5b6708a6cf4f2dd98966784 +DIST wine-staging-9.6.tar.gz 9522775 BLAKE2B 5598d408774e3142d6de5ccddccb68d8e1e4544c43b5691751599e6b86df6b8899f6113b8b58d75fb8e032a6c7aed9ffbb3ecb1553aa2d7593d69513e9a0177a SHA512 83691eb560c860d40669a524196a522007c76420b5b5076da4f446a4180fee7558ef228cf1f4179eb78a6d36c8ab78fd2784ffc879b0aacbef7c72a7f88e7ed2 +DIST wine-staging-9.7.tar.gz 9573710 BLAKE2B 34eee97f51268c07d649f0ed498b5e92bbc8bb1d8cee860040ee660d968307a7d9d3b59305567c50338d2ce97b3071f615b8782ca74716b42904ae4514404316 SHA512 3c5f100f715c6b3399c356b304b8eca1e51706e03782f2f834965474a7efeca4174ae806dff85080cded93501e9cfcd097eca43230d9425c78ae73a6f4485c76 diff --git a/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch b/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch new file mode 100644 index 000000000000..4baa48cfc140 --- /dev/null +++ b/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch @@ -0,0 +1,7 @@ +Also write GNU-stack note on dummy files used for stub libraries. +--- a/tools/winebuild/import.c ++++ b/tools/winebuild/import.c +@@ -1676,2 +1676,3 @@ + output( "\t.text\n" ); ++ output_gnu_stack_note(); + } diff --git a/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch b/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch new file mode 100644 index 000000000000..f130ef5c23b3 --- /dev/null +++ b/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch @@ -0,0 +1,36 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/dwarf.h ++++ b/dlls/ntdll/unix/dwarf.h +@@ -255,5 +255,7 @@ + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -632,5 +632,5 @@ + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) +@@ -755,4 +755,5 @@ + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + +@@ -760,4 +761,5 @@ + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, diff --git a/app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch b/app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch new file mode 100644 index 000000000000..5f0d63b0ec33 --- /dev/null +++ b/app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch @@ -0,0 +1,15 @@ +Patch Source: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/wine/rpath.patch +Alpine Bug: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13249 + +--- a/configure.ac ++++ b/configure.ac +@@ -784,6 +784,9 @@ case $host_os in + [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"]) + ;; + esac ++ ++ # do this at the end because it needs double dollar for makefile ++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"]) + ;; + esac + diff --git a/app-emulation/wine-staging/metadata.xml b/app-emulation/wine-staging/metadata.xml index 47f226562ce0..e20c128974c9 100644 --- a/app-emulation/wine-staging/metadata.xml +++ b/app-emulation/wine-staging/metadata.xml @@ -1,13 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>wine@gentoo.org</email> <name>Wine</name> - <description> - This package must be kept in sync with repo/proj/wine repository. - Any changes need to be run past the maintainer to ensure the two repositories are kept in sync. - </description> </maintainer> <longdescription> Wine is an Open Source implementation of the Windows API on top of X and Unix. @@ -17,39 +13,32 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n This variant of the Wine packaging includes the Wine-Staging patchset. </longdescription> <use> - <flag name="capi">Enable ISDN support via CAPI</flag> - <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag> + <flag name="capi">Enable ISDN support using <pkg>net-libs/libcapi</pkg></flag> + <flag name="crossdev-mingw"> + Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than + <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) + </flag> <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag> - <flag name="faudio">Pull in <pkg>app-emulation/faudio</pkg> to provide XAudio2 functionality</flag> - <flag name="gcrypt">Add support for the Diffie-Hellman key exchanges using dev-libs/libgcrypt</flag> - <flag name="gecko">Add support for the Gecko engine when using iexplore</flag> - <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag> - <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;</flag> - <flag name="mono">Add support for .NET using Wine's Mono add-on</flag> - <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> to support Windows networks in netapi32.dll</flag> - <flag name="opencl">Enable OpenCL support</flag> - <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag> + <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag> + <flag name="mingw">Build PE files using a MinGW toolchain for better compatibility</flag> + <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag> + <flag name="netapi">Enable support for configuring remote shares using <pkg>net-fs/samba</pkg></flag> + <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag> <flag name="pcap">Support packet capture software (e.g. wireshark)</flag> - <flag name="perl">Install helpers written in perl (winedump/winemaker)</flag> - <flag name="pipelight">Apply Wine-Staging patches for Pipelight/Silverlight support</flag> - <flag name="prelink">Run prelink on DLLs during build; - For Gentoo hardened, do not disable if you do not know what this means as it can break things at runtime</flag> - <flag name="realtime">Pull in <pkg>sys-auth/rtkit</pkg> for low-latency pulseaudio support</flag> - <flag name="run-exes">Use Wine to open and run .EXE and .MSI files</flag> - <flag name="samba">Add support for NTLM auth. See: - https://web.archive.org/web/20160108123008/http://wiki.winehq.org:80/NtlmAuthSetupGuide and - https://web.archive.org/web/20150906013746/http://wiki.winehq.org/NtlmSigningAndSealing - (these pages are not currently in the updated WineHQ Wiki).</flag> - <flag name="sdl">Add support for gamepad detection using SDL</flag> - <flag name="staging">Apply Wine-Staging patches for advanced feature support that haven't made it into upstream Wine yet</flag> - <flag name="themes">Support GTK+:3 window theming through Wine-Staging</flag> - <flag name="udev">Use <pkg>virtual/libudev</pkg> to provide plug and play support</flag> - <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> to unwind the stack</flag> - <flag name="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag> - <flag name="vulkan">Enable Vulkan drivers</flag> + <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag> + <flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag> + <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag> + <flag name="wow64"> + Enable running 32bit applications without 32bit ELF + multilib by mapping to 64bit calls (experimental, + *may* have worse/unusable OpenGL performance or other + issues compared to USE=abi_x86_32, also lacks 16bit + support) -- still need <pkg>dev-util/mingw64-toolchain</pkg> + with abi_x86_32 which itself does not need multilib + </flag> </use> <upstream> - <remote-id type="github">wine-compholio/wine-staging</remote-id> - <remote-id type="sourceforge">wine</remote-id> + <bugs-to>https://bugs.winehq.org/describecomponents.cgi?product=Wine-staging</bugs-to> + <remote-id type="github">wine-staging/wine-staging</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/wine-staging/wine-staging-5.17.ebuild b/app-emulation/wine-staging/wine-staging-5.17.ebuild deleted file mode 100644 index 674958ea886a..000000000000 --- a/app-emulation/wine-staging/wine-staging-5.17.ebuild +++ /dev/null @@ -1,621 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 ) - themes? ( staging ) - vaapi? ( staging ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - themes? ( - dev-libs/glib:2[${MULTILIB_USEDEP}] - x11-libs/cairo[${MULTILIB_USEDEP}] - x11-libs/gtk+:3[${MULTILIB_USEDEP}] - ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] ) - vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gcrypt) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - use staging && myconf+=( - --with-xattr - $(use_with themes gtk3) - $(use_with vaapi va) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - else - if use staging; then - eselect wine register --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - else - if use staging; then - eselect wine deregister --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-5.18.ebuild b/app-emulation/wine-staging/wine-staging-5.18.ebuild deleted file mode 100644 index 5b6a507ddc06..000000000000 --- a/app-emulation/wine-staging/wine-staging-5.18.ebuild +++ /dev/null @@ -1,621 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 ) - themes? ( staging ) - vaapi? ( staging ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - themes? ( - dev-libs/glib:2[${MULTILIB_USEDEP}] - x11-libs/cairo[${MULTILIB_USEDEP}] - x11-libs/gtk+:3[${MULTILIB_USEDEP}] - ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gcrypt) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - use staging && myconf+=( - --with-xattr - $(use_with themes gtk3) - $(use_with vaapi va) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - else - if use staging; then - eselect wine register --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - else - if use staging; then - eselect wine deregister --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-5.19.ebuild b/app-emulation/wine-staging/wine-staging-5.19.ebuild deleted file mode 100644 index 9c6e2a76fa30..000000000000 --- a/app-emulation/wine-staging/wine-staging-5.19.ebuild +++ /dev/null @@ -1,621 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 ) - themes? ( staging ) - vaapi? ( staging ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - themes? ( - dev-libs/glib:2[${MULTILIB_USEDEP}] - x11-libs/cairo[${MULTILIB_USEDEP}] - x11-libs/gtk+:3[${MULTILIB_USEDEP}] - ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.1 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gcrypt) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - use staging && myconf+=( - --with-xattr - $(use_with themes gtk3) - $(use_with vaapi va) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - else - if use staging; then - eselect wine register --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - else - if use staging; then - eselect wine deregister --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-5.20.ebuild b/app-emulation/wine-staging/wine-staging-5.20.ebuild deleted file mode 100644 index 9c6e2a76fa30..000000000000 --- a/app-emulation/wine-staging/wine-staging-5.20.ebuild +++ /dev/null @@ -1,621 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -if [[ ${PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 ) - themes? ( staging ) - vaapi? ( staging ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - themes? ( - dev-libs/glib:2[${MULTILIB_USEDEP}] - x11-libs/cairo[${MULTILIB_USEDEP}] - x11-libs/gtk+:3[${MULTILIB_USEDEP}] - ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.1 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple - ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} - - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" - - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" - fi - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gcrypt) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - use staging && myconf+=( - --with-xattr - $(use_with themes gtk3) - $(use_with vaapi va) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - else - if use staging; then - eselect wine register --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - else - if use staging; then - eselect wine deregister --staging ${P} || die - fi - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-staging/wine-staging-9.0.ebuild b/app-emulation/wine-staging/wine-staging-9.0.ebuild new file mode 100644 index 000000000000..537675f10ba0 --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-9.0.ebuild @@ -0,0 +1,479 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools edo flag-o-matic multilib multilib-build +inherit prefix python-any-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=8.1.0 +WINE_P=wine-$(ver_cut 1-2) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" + WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI=" + https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" +HOMEPAGE=" + https://wiki.winehq.org/Wine-Staging + https://gitlab.winehq.org/wine/wine-staging/ +" + +S="${WORKDIR}/${WINE_P}" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl + pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama +" +# bug #551124 for truetype +# TODO: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +# gitapply.sh prefers git but can fallback to patch+extras +BDEPEND=" + ${PYTHON_DEPS} + || ( + dev-vcs/git + ( + sys-apps/gawk + sys-apps/util-linux + ) + ) + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900334) + res_getservers # false positive +) +QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_unpack() { + if [[ ${PV} == *9999 ]]; then + EGIT_CHECKOUT_DIR=${WORKDIR}/${P} + git-r3_src_unpack + + # hack: use subshell to preserve state (including what git-r3 unpack + # sets) for smart-live-rebuild as this is not the repo to look at + ( + EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_REPO_URI=${WINE_EGIT_REPO_URI} + EGIT_CHECKOUT_DIR=${S} + einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" + git-r3_src_unpack + ) + else + default + fi +} + +src_prepare() { + local patchinstallargs=( + --all + --no-autoconf + # patches known broken with USE=-mingw, retry occasionally (bug #921360) + $(usev !mingw ' + -W winedevice-Default_Drivers + -W fltmgr.sys-FltBuildDefaultSecurityDescriptor + ') + ${MY_WINE_STAGING_CONF} + ) + + edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" + + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-staging +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # staging patchset is messier and would rather not have to worry + # about it (try to remove on bump now and then, bug #919758) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/wine-staging-9.5.ebuild b/app-emulation/wine-staging/wine-staging-9.5.ebuild new file mode 100644 index 000000000000..08b56968b3ac --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-9.5.ebuild @@ -0,0 +1,482 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools edo flag-o-matic multilib multilib-build optfeature +inherit prefix python-any-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 +WINE_P=wine-$(ver_cut 1-2) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" + WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI=" + https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" +HOMEPAGE=" + https://wiki.winehq.org/Wine-Staging + https://gitlab.winehq.org/wine/wine-staging/ +" + +S="${WORKDIR}/${WINE_P}" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl + pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama +" +# bug #551124 for truetype +# TODO: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +# gitapply.sh prefers git but can fallback to patch+extras +BDEPEND=" + ${PYTHON_DEPS} + || ( + dev-vcs/git + ( + sys-apps/gawk + sys-apps/util-linux + ) + ) + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900334) + res_getservers # false positive +) +QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_unpack() { + if [[ ${PV} == *9999 ]]; then + EGIT_CHECKOUT_DIR=${WORKDIR}/${P} + git-r3_src_unpack + + # hack: use subshell to preserve state (including what git-r3 unpack + # sets) for smart-live-rebuild as this is not the repo to look at + ( + EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_REPO_URI=${WINE_EGIT_REPO_URI} + EGIT_CHECKOUT_DIR=${S} + einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" + git-r3_src_unpack + ) + else + default + fi +} + +src_prepare() { + local patchinstallargs=( + --all + --no-autoconf + # patches known broken with USE=-mingw, retry occasionally (bug #921360) + $(usev !mingw ' + -W winedevice-Default_Drivers + -W fltmgr.sys-FltBuildDefaultSecurityDescriptor + ') + ${MY_WINE_STAGING_CONF} + ) + + edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" + + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-staging +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # staging patchset is messier and would rather not have to worry + # about it (try to remove on bump now and then, bug #919758) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/wine-staging-9.6.ebuild b/app-emulation/wine-staging/wine-staging-9.6.ebuild new file mode 100644 index 000000000000..2c9f8fc4ef2a --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-9.6.ebuild @@ -0,0 +1,477 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools edo flag-o-matic multilib multilib-build optfeature +inherit prefix python-any-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 +WINE_P=wine-$(ver_cut 1-2) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" + WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI=" + https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" +HOMEPAGE=" + https://wiki.winehq.org/Wine-Staging + https://gitlab.winehq.org/wine/wine-staging/ +" + +S="${WORKDIR}/${WINE_P}" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl + pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama +" +# bug #551124 for truetype +# TODO: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +# gitapply.sh prefers git but can fallback to patch+extras +BDEPEND=" + ${PYTHON_DEPS} + || ( + dev-vcs/git + ( + sys-apps/gawk + sys-apps/util-linux + ) + ) + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900334) + res_getservers # false positive +) +QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_unpack() { + if [[ ${PV} == *9999 ]]; then + EGIT_CHECKOUT_DIR=${WORKDIR}/${P} + git-r3_src_unpack + + # hack: use subshell to preserve state (including what git-r3 unpack + # sets) for smart-live-rebuild as this is not the repo to look at + ( + EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_REPO_URI=${WINE_EGIT_REPO_URI} + EGIT_CHECKOUT_DIR=${S} + einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" + git-r3_src_unpack + ) + else + default + fi +} + +src_prepare() { + local patchinstallargs=( + --all + --no-autoconf + ${MY_WINE_STAGING_CONF} + ) + + edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" + + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-staging +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # staging patchset is messier and would rather not have to worry + # about it (try to remove on bump now and then, bug #919758) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/wine-staging-9.7.ebuild b/app-emulation/wine-staging/wine-staging-9.7.ebuild new file mode 100644 index 000000000000..2c9f8fc4ef2a --- /dev/null +++ b/app-emulation/wine-staging/wine-staging-9.7.ebuild @@ -0,0 +1,477 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools edo flag-o-matic multilib multilib-build optfeature +inherit prefix python-any-r1 toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 +WINE_P=wine-$(ver_cut 1-2) + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" + WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI=" + https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" +HOMEPAGE=" + https://wiki.winehq.org/Wine-Staging + https://gitlab.winehq.org/wine/wine-staging/ +" + +S="${WORKDIR}/${WINE_P}" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl + pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama +" +# bug #551124 for truetype +# TODO: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +# gitapply.sh prefers git but can fallback to patch+extras +BDEPEND=" + ${PYTHON_DEPS} + || ( + dev-vcs/git + ( + sys-apps/gawk + sys-apps/util-linux + ) + ) + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900334) + res_getservers # false positive +) +QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_unpack() { + if [[ ${PV} == *9999 ]]; then + EGIT_CHECKOUT_DIR=${WORKDIR}/${P} + git-r3_src_unpack + + # hack: use subshell to preserve state (including what git-r3 unpack + # sets) for smart-live-rebuild as this is not the repo to look at + ( + EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_REPO_URI=${WINE_EGIT_REPO_URI} + EGIT_CHECKOUT_DIR=${S} + einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" + git-r3_src_unpack + ) + else + default + fi +} + +src_prepare() { + local patchinstallargs=( + --all + --no-autoconf + ${MY_WINE_STAGING_CONF} + ) + + edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" + + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-staging +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # staging patchset is messier and would rather not have to worry + # about it (try to remove on bump now and then, bug #919758) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild b/app-emulation/wine-staging/wine-staging-9999.ebuild index 11363b6b82bf..f4a2a5ce7f73 100644 --- a/app-emulation/wine-staging/wine-staging-9999.ebuild +++ b/app-emulation/wine-staging/wine-staging-9999.ebuild @@ -1,620 +1,477 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" +MULTILIB_COMPAT=( abi_x86_{32,64} ) +PYTHON_COMPAT=( python3_{10..12} ) +inherit autotools edo flag-o-matic multilib multilib-build optfeature +inherit prefix python-any-r1 toolchain-funcs wrapper -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils +WINE_GECKO=2.47.4 +WINE_MONO=9.1.0 +WINE_P=wine-$(ver_cut 1-2) -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" +if [[ ${PV} == *9999 ]]; then inherit git-r3 - SRC_URI="" - #KEYWORDS="" + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git" + WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI=" + https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz + https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz" KEYWORDS="-* ~amd64 ~x86" fi -S="${WORKDIR}/${MY_P}" - -STAGING_P="wine-staging-${PV}" -STAGING_DIR="${WORKDIR}/${STAGING_P}" -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz +HOMEPAGE=" + https://wiki.winehq.org/Wine-Staging + https://gitlab.winehq.org/wine/wine-staging/ " -if [[ ${PV} == "9999" ]] ; then - STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git" -else - SRC_URI="${SRC_URI} - staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )" -fi +S="${WORKDIR}/${WINE_P}" -LICENSE="LGPL-2.1" +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl + pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama +" +# bug #551124 for truetype +# TODO: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - pipelight? ( staging ) - test? ( abi_x86_32 ) - themes? ( staging ) - vaapi? ( staging ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access RESTRICT="test" -COMMON_DEPEND=" +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" X? ( x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] ) alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - staging? ( sys-apps/attr[${MULTILIB_USEDEP}] ) - themes? ( - dev-libs/glib:2[${MULTILIB_USEDEP}] - x11-libs/cairo[${MULTILIB_USEDEP}] - x11-libs/gtk+:3[${MULTILIB_USEDEP}] - ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.1 ) + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) perl? ( dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) + dev-perl/XML-LibXML ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) + samba? ( net-fs/samba[winbind] ) selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - staging? ( - dev-lang/perl - dev-perl/XML-Simple +" +# gitapply.sh prefers git but can fallback to patch+extras +BDEPEND=" + ${PYTHON_DEPS} + || ( + dev-vcs/git + ( + sys-apps/gawk + sys-apps/util-linux + ) + ) + || ( + sys-devel/binutils + sys-devel/lld ) - xinerama? ( x11-base/xorg-proto )" + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900334) + res_getservers # false positive +) +QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" + "${FILESDIR}"/${PN}-7.17-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch ) -PATCHES_BIN=() -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" + eerror " crossdev --target ${mingw}" eerror - return 1 + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${pn_live_val} ]]; then - if use staging; then - eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}" - eerror "cannot be used to set the commit. Instead, you may use the" - eerror "environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi - fi - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environment variables:" - eerror " EGIT_OVERRIDE_COMMIT_WINE" - eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi + done fi } -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - if use staging; then - local CURRENT_WINE_COMMIT=${EGIT_VERSION} + if [[ ${PV} == *9999 ]]; then + EGIT_CHECKOUT_DIR=${WORKDIR}/${P} + git-r3_src_unpack - EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack - - local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die - - if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then - einfo "The current Staging patchset is not guaranteed to apply on this WINE commit." - einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT." - einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine" - fi - fi + # hack: use subshell to preserve state (including what git-r3 unpack + # sets) for smart-live-rebuild as this is not the repo to look at + ( + EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die + EGIT_REPO_URI=${WINE_EGIT_REPO_URI} + EGIT_CHECKOUT_DIR=${S} + einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})" + git-r3_src_unpack + ) + else + default fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" } src_prepare() { + local patchinstallargs=( + --all + --no-autoconf + ${MY_WINE_STAGING_CONF} + ) - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - if use staging; then - ewarn "Applying the Wine-Staging patchset. Any bug reports to the" - ewarn "Wine bugzilla should explicitly state that staging was used." - - local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176 - use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight" + edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}" - # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches - ebegin "Running Wine-Staging patch installer" - ( - set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE} - cd "${STAGING_DIR}/patches" - source "${STAGING_DIR}/patches/patchinstall.sh" - ) - eend $? || die "Failed to apply Wine-Staging patches" + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" fi default - eapply_bin - eautoreconf - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi fi - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-staging } src_configure() { - wine_compiler_check || die + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} - export LDCONFIG=/bin/true - use custom-cflags || strip-flags + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man - multilib-minimal_src_configure -} + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" + $(use_with X x) $(use_with alsa) $(use_with capi) - $(use_with lcms cms) $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gcrypt) $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) $(use_with gstreamer) - --without-hal - $(use_with jpeg) + $(use_with kerberos gssapi) $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) + $(use_with mingw) $(use_with netapi) $(use_with nls gettext) - $(use_with openal) $(use_with opencl) $(use_with opengl) $(use_with osmesa) - $(use_with oss) + --without-oss # media-sound/oss is not packaged (OSSv4) $(use_with pcap) - $(use_with png) $(use_with pulseaudio pulse) - $(use_with threads pthread) $(use_with scanner sane) $(use_with sdl) - $(use_enable test tests) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) $(use_with truetype freetype) $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks $(use_with unwind) + $(use_with usb) $(use_with v4l v4l2) - $(use_with vkd3d) $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) + $(use_with wayland) $(use_with xcomposite) $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - use staging && myconf+=( - --with-xattr - $(use_with themes gtk3) - $(use_with vaapi va) ) - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags fi - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # staging patchset is messier and would rather not have to worry + # about it (try to remove on bump now and then, bug #919758) + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) - einstalldocs - prune_libtool_files --all + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) fi - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) done - eshopts_pop } -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - else - if use staging; then - eselect wine register --staging ${P} || die +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader fi fi - eselect wine update --all --if-unset || die + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die - xdg_desktop_database_update + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* } -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - else - if use staging; then - eselect wine deregister --staging ${P} || die - fi +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." fi - eselect wine update --all --if-unset || die + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die } pkg_postrm() { - xdg_desktop_database_update + eselect wine update --if-unset || die } diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest index 00d2ecd88751..cac10378d68e 100644 --- a/app-emulation/wine-vanilla/Manifest +++ b/app-emulation/wine-vanilla/Manifest @@ -1,10 +1,6 @@ -DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6 SHA512 5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2 -DIST gentoo-wine-patches-20191222.tar.xz 59236 BLAKE2B 1b2c7b3ab69e5603d0f176a88c13b6d532f94f319ad29821faa699e828d90cfbe92c02b6e73b72eb16e565707c49885833fe557809ed16f4a6f0f182de9bb6e6 SHA512 a030fad55be5e1d909bc50e430c9a99846b88d7555f12749e101ba83f04df5af23eeb726b5ed78f847a66d11ac0a838bc69bd5bf8cf53da77ad454d2a2fe65cf -DIST gentoo-wine-patches-20200523.tar.xz 59740 BLAKE2B 951d7f305a6e5b3759c8095629d48de4830b8a0c9558de859a9e02d9824fe85553fda2bc0820ca97022a0ca63ac28473dadfe827821220445dbf1a7fd15c7c98 SHA512 46eea45c982b475e3ff444cbd87c6a0a235fc8dcaf3d83d89655a10ed8841a9ddb09e5a638a05803f3bf2c3bd34165c16067aba561efa4c183ee396dc31cdf75 -DIST wine-4.0.3.tar.xz 21680420 BLAKE2B a7caf4b82fa2594f77e31f29b2a3da59c08bb58f213268d61bdf48998345162bc36fbfc24db94d11cb07b6da347b3471e9d8976d9abfa0f76c183c0a519aa73e SHA512 a8fde0bcf600eaec56c3ce58c9aa992386784c85cf1c93aa84d50aff4c842b12a6b099c23391d3ad9a0059f3dc9069c0f8e00fad293305ba8a33afc70bf26e14 -DIST wine-5.0.1.tar.xz 22476496 BLAKE2B 8fd7729812c0144b6c9ec7f28ecc25bca5bc7801d9927346928f43fc46ca0be89ecb4caefb7a93cf2f3365e088d11e6bd53a028ea8cc9e170ef864ff63f21a5a SHA512 d9756f0a74417ea9e05d08a94ff29b83ebff3db3a3cbaa90979d5312754371ddfcab6bded73a246ef980252b908d8a26e93de2779b766c4bff92c91f8c315d98 -DIST wine-5.0.2.tar.xz 22484932 BLAKE2B 93253a86605b32dc8f7c79a16336643e6f84937094f8c96ea336289c2076a4d9f759fc1ad128f7b1a009da5eb2ed25cdc893da99e338093608bf5fc0ef1a85fc SHA512 9ff902ff929d9ac8c81843eea141c96446d26b14f70781a40a3ea1fdef5f412ca4c87374a5a3af9b42b52236159645e55d6e54f8b06178a4d210a72fb1d5358e -DIST wine-5.17.tar.xz 24064512 BLAKE2B a84433ff7bb93a1f43c41f3106ff3f9c648631665100e8140340ab7d347daf6f2c3b54ea8177e1a2c2222574aa67264f5b576d99f6ef461548c74af48c62eb62 SHA512 05338036fa9b195d9cf8a84a1bcc03f35422d5f07744ec4430f20874601829be5904be10060353599cb0187728123f959ccc75e79f1ce1c47178ae9cd55ef696 -DIST wine-5.18.tar.xz 24160316 BLAKE2B 4f359b6e869707a514d2198d2b8ba810b8552ea53ff3f37cbc7c23b732152db0fa5c0c909d2c16a03f6b0ff122435c92f8a9b8b462577aa50a39b2dcfa7bcd05 SHA512 70565fbea61b78580ca86443fcb4c10c7814c1dffcfa49ee38746fef21a52a00f2e040d9d2515892fed4021e7868720cc22b650d18872656838e4610d4d4e823 -DIST wine-5.19.tar.xz 24201860 BLAKE2B 34233747a58e2cf6c9b6b328cb8c0af5707479e02d20365da07d039163757c6557d25ec8136933fd9bd5a7aeb360d96e44c41c34fffb26a23f9e3ea137f03120 SHA512 b91eb1cb1225ac8abe26f5c5dd74fb376e6489b460035c70e6c7890595086e99273497741b6a736ef4884ae7bacc44482d2e3e8ba7e8d85c78c571bd4b133d8a -DIST wine-5.20.tar.xz 24177960 BLAKE2B 50169bc00497feef91f5cf7fd56bce8f7784f70d2a24776494d0ab98cdb70b4387a92dece4571b2b22b15c42d82672595f39079a0678e551331f2bee4460f0f8 SHA512 30299287857376a827579335ba410d0575379df300860c8fdd50473f3eec074372d3602e5027f9e75fb13e272f28f51950ec652109839573a168aed23ba9c8f4 +DIST wine-7.0.2.tar.xz 27179980 BLAKE2B 721ab574092638b32d3a483b6ae3def0c9d706cc888662ca461ab8c7060b10077e83cede69663ea2a8b97729f3801209fbba5f8e8828ce20454700ffbbd76cb5 SHA512 330c71005a6a8054b5068ac4484e9015e9f8bf55d5a451aaf5f79b7f78a025732b454251c31473abf21504cce3b78e50cf7e3e0d0116bb755dc8396bd790289a +DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f +DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4 +DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91 +DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922 +DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80 diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch new file mode 100644 index 000000000000..92aa0b4b5c5d --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch @@ -0,0 +1,7 @@ +Also write GNU-stack note on dummy files used for stub libraries. +--- a/tools/winebuild/import.c ++++ b/tools/winebuild/import.c +@@ -1675,2 +1675,3 @@ + output( "\t.text\n" ); ++ output_gnu_stack_note(); + } diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch new file mode 100644 index 000000000000..74f22362ea9b --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch @@ -0,0 +1,40 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -635,7 +635,9 @@ + unsigned int cie_offset; + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) + { +@@ -1357,7 +1359,7 @@ + unw_proc_info_t info; + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) + rc = unw_init_local( &cursor, &unw_context ); +@@ -1480,11 +1482,13 @@ + NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context ) + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + + if (fde) + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, + &dispatch->LanguageHandler, &dispatch->HandlerData ); diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch new file mode 100644 index 000000000000..63f9a06a5de8 --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch @@ -0,0 +1,36 @@ +Fix build with llvm-libunwind, and also fix for non-llvm libunwind +when using clang+bfd given clang doesn't have _Unwind_Find_FDE in +its rtlib and expects it from llvm-libunwind. + +The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION). +--- a/dlls/ntdll/unix/dwarf.h ++++ b/dlls/ntdll/unix/dwarf.h +@@ -255,5 +255,7 @@ + }; + ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *); ++#endif + + static unsigned char dwarf_get_u1( const unsigned char **p ) +--- a/dlls/ntdll/unix/signal_x86_64.c ++++ b/dlls/ntdll/unix/signal_x86_64.c +@@ -623,5 +623,5 @@ + int rc; + +-#ifdef __APPLE__ ++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) + rc = unw_getcontext( &unw_context ); + if (rc == UNW_ESUCCESS) +@@ -746,4 +746,5 @@ + { + struct dwarf_eh_bases bases; ++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__) + const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases ); + +@@ -751,4 +752,5 @@ + return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde, + &bases, &dispatch->LanguageHandler, &dispatch->HandlerData ); ++#endif + #ifdef HAVE_LIBUNWIND + return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch b/app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch new file mode 100644 index 000000000000..5f0d63b0ec33 --- /dev/null +++ b/app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch @@ -0,0 +1,15 @@ +Patch Source: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/wine/rpath.patch +Alpine Bug: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13249 + +--- a/configure.ac ++++ b/configure.ac +@@ -784,6 +784,9 @@ case $host_os in + [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"]) + ;; + esac ++ ++ # do this at the end because it needs double dollar for makefile ++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"]) + ;; + esac + diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml index 497dd69c907f..99ab7d2e9aab 100644 --- a/app-emulation/wine-vanilla/metadata.xml +++ b/app-emulation/wine-vanilla/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="project"> <email>wine@gentoo.org</email> @@ -13,34 +13,33 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n This variant of the Wine packaging does not include external patchsets </longdescription> <use> - <flag name="capi">Enable ISDN support via CAPI</flag> - <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag> + <flag name="capi">Enable ISDN support using <pkg>net-libs/libcapi</pkg></flag> + <flag name="crossdev-mingw"> + Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than + <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) + </flag> <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag> - <flag name="faudio">Pull in <pkg>app-emulation/faudio</pkg> to provide XAudio2 functionality</flag> - <flag name="gecko">Add support for the Gecko engine when using iexplore</flag> - <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag> - <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;</flag> - <flag name="mono">Add support for .NET using Wine's Mono add-on</flag> - <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> to support Windows networks in netapi32.dll</flag> - <flag name="opencl">Enable OpenCL support</flag> - <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag> + <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag> + <flag name="mingw">Build PE files using a MinGW toolchain for better compatibility</flag> + <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag> + <flag name="netapi">Enable support for configuring remote shares using <pkg>net-fs/samba</pkg></flag> + <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag> <flag name="pcap">Support packet capture software (e.g. wireshark)</flag> - <flag name="perl">Install helpers written in perl (winedump/winemaker)</flag> - <flag name="prelink">Run prelink on DLLs during build; - For Gentoo hardened, do not disable if you do not know what this means as it can break things at runtime</flag> - <flag name="realtime">Pull in <pkg>sys-auth/rtkit</pkg> for low-latency pulseaudio support</flag> - <flag name="run-exes">Use Wine to open and run .EXE and .MSI files</flag> - <flag name="samba">Add support for NTLM auth. See: - https://web.archive.org/web/20160108123008/http://wiki.winehq.org:80/NtlmAuthSetupGuide and - https://web.archive.org/web/20150906013746/http://wiki.winehq.org/NtlmSigningAndSealing - (these pages are not currently in the updated WineHQ Wiki).</flag> - <flag name="sdl">Add support for gamepad detection using SDL</flag> - <flag name="udev">Use <pkg>virtual/libudev</pkg> to provide plug and play support</flag> - <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> to unwind the stack</flag> - <flag name="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag> - <flag name="vulkan">Enable Vulkan drivers</flag> + <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag> + <flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag> + <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag> + <flag name="vkd3d">Enable DirectX 12 support using <pkg>app-emulation/vkd3d</pkg></flag> + <flag name="wow64"> + Enable running 32bit applications without 32bit ELF + multilib by mapping to 64bit calls (experimental, + *may* have worse/unusable OpenGL performance or other + issues compared to USE=abi_x86_32, also lacks 16bit + support) -- still need <pkg>dev-util/mingw64-toolchain</pkg> + with abi_x86_32 which itself does not need multilib + </flag> </use> <upstream> + <bugs-to>https://bugs.winehq.org/describecomponents.cgi?product=Wine</bugs-to> <remote-id type="sourceforge">wine</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild deleted file mode 100644 index f4c82a817bde..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild +++ /dev/null @@ -1,531 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n ltprune multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - MINOR_V=$(ver_cut 2) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20180120" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:4.7.5 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir=/etc/wine - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with v4l) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${D%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild deleted file mode 100644 index c13d5834460c..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild +++ /dev/null @@ -1,538 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.0/${MY_P}.tar.xz" - KEYWORDS="-* amd64 x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20191222" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:4.9.4 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-5.0-memset-O3.patch" #480508 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild deleted file mode 100644 index 2c8da9a04c68..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild +++ /dev/null @@ -1,538 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.0/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20191222" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:4.9.4 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-5.0-memset-O3.patch" #480508 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG AR RANLIB - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - # set AR and RANLIB to make QA scripts happy; #483342 - tc-export PKG_CONFIG AR RANLIB - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild deleted file mode 100644 index fed13ca5bb03..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild deleted file mode 100644 index f411a705130e..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.0 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild deleted file mode 100644 index 226b93efb90f..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.1 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild deleted file mode 100644 index 226b93efb90f..000000000000 --- a/app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild +++ /dev/null @@ -1,539 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" - -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils - -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" - inherit git-r3 - SRC_URI="" - #KEYWORDS="" -else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" - KEYWORDS="-* ~amd64 ~x86" -fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" - -DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz -" - -LICENSE="LGPL-2.1" -SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) - X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 - -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. -RESTRICT="test" - -COMMON_DEPEND=" - X? ( - x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] - x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] - x11-libs/libXi[${MULTILIB_USEDEP}] - x11-libs/libXxf86vm[${MULTILIB_USEDEP}] - ) - alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) - gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) - gstreamer? ( - media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] - ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) - opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) - pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) - udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} - app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.1 ) - perl? ( - dev-lang/perl - dev-perl/XML-Simple - ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) - selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} - sys-devel/flex - >=sys-kernel/linux-headers-2.6 - virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" - -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" - -PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" -) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi - -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" - eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" - eerror - return 1 - fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi - fi -} - -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 - fi -} - -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} - -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die - fi - fi -} - -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} - -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" - - default - eapply_bin - eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) -} - -src_configure() { - wine_compiler_check || die - - export LDCONFIG=/bin/true - use custom-cflags || strip-flags - - multilib-minimal_src_configure -} - -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" - $(use_with alsa) - $(use_with capi) - $(use_with lcms cms) - $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) - $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) - $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) - $(use_with gstreamer) - --without-hal - $(use_with jpeg) - $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) - $(use_with netapi) - $(use_with nls gettext) - $(use_with openal) - $(use_with opencl) - $(use_with opengl) - $(use_with osmesa) - $(use_with oss) - $(use_with pcap) - $(use_with png) - $(use_with pulseaudio pulse) - $(use_with threads pthread) - $(use_with scanner sane) - $(use_with sdl) - $(use_enable test tests) - $(use_with truetype freetype) - $(use_with udev) - $(use_with unwind) - $(use_with v4l v4l2) - $(use_with vkd3d) - $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) - $(use_with xcomposite) - $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) - ) - - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. - fi - - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} - -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs - - einstalldocs - prune_libtool_files --all - - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi - - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi - - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} - - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} - - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader - fi - - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" - done - eshopts_pop -} - -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die - - xdg_desktop_database_update - - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" - fi -} - -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die - fi - - eselect wine update --all --if-unset || die -} - -pkg_postrm() { - xdg_desktop_database_update -} diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild new file mode 100644 index 000000000000..88eaa6f3c226 --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild @@ -0,0 +1,382 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.2 +WINE_MONO=7.0.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ +" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2 + +gstreamer kerberos ldap +mingw +mono netapi nls odbc openal + opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl + selinux +ssl +truetype udev udisks +unwind usb v4l +vkd3d +vulkan + +xcomposite xinerama +" +# bug #551124 for truetype +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + openal? ( media-libs/openal[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + dev-lang/perl + sys-devel/binutils + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) ) + nls? ( sys-devel/gettext ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.0-unwind.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # ./configure will fail, abort early + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with ldap) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with openal) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vkd3d) + $(use_with vulkan) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097) + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # temporary workaround for tc-ld-force-bfd not yet enforcing with mold + # https://github.com/gentoo/gentoo/pull/28355 + [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && + append-ldflags -fuse-ld=bfd + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # would rather not have to worry about fixing old branches + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + # build using upstream's way (--with-wine64) + # order matters: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users + if (( bits == 64 )); then + : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}" + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" + + # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu) + if use mingw; then + : "${CROSSCFLAGS:=$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-cflags -mno-avx #912268 + + CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{CC,{C,LD}FLAGS} + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # symlink for plain 'wine' and install its man pages if 64bit-only #404331 + if use abi_x86_64 && use !abi_x86_32; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + if use mingw; then + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + use debug || + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die + fi + + dodoc ANNOUNCE AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild new file mode 100644 index 000000000000..f0641aa921fe --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild @@ -0,0 +1,388 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.3 +WINE_MONO=7.4.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap + perl pulseaudio samba scanner +sdl selinux +ssl +strip +truetype + udev udisks +unwind usb v4l +vulkan +xcomposite xinerama +" +# bug #551124 for truetype +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + dev-lang/perl + sys-devel/binutils + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + ) ) + nls? ( sys-devel/gettext ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # ./configure will fail, abort early + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097) + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # temporary workaround for tc-ld-force-bfd not yet enforcing with mold + # https://github.com/gentoo/gentoo/pull/28355 + [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] && + append-ldflags -fuse-ld=bfd + + # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but + # would rather not have to worry about fixing old branches + append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types) + + # build using upstream's way (--with-wine64) + # order matters: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + pe_arch=i386 + if (( bits == 64 )); then + pe_arch=x86_64 + : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}" + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}" + + if use mingw; then + # CROSSCC is no longer recognized by Wine, but still use for now + # (future handling for CROSS* variables is subject to changes) + conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" ) + + # use *FLAGS for mingw, but strip unsupported + : "${CROSSCFLAGS:=$( + # >=wine-7.21 configure.ac no longer adds -fno-strict by mistake + append-cflags -fno-strict-aliasing + + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + # -mavx with mingw-gcc has a history of obscure issues and + # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg` + # crashes with -march=skylake >=wine-8.10, similar issues with + # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273 + append-cflags -mno-avx #912268 + + CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}" + : "${CROSSLDFLAGS:=$( + filter-flags '-fuse-ld=*' + CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}" + export CROSS{C,LD}FLAGS + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # symlink for plain 'wine' and install its man pages if 64bit-only #404331 + if use abi_x86_64 && use !abi_x86_32; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild new file mode 100644 index 000000000000..7326ea74dd64 --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild @@ -0,0 +1,427 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=8.1.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* amd64 x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ +" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap + perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama" +# bug #551124 for truetype +# TODO?: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild new file mode 100644 index 000000000000..162e8b9a993c --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild @@ -0,0 +1,430 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build optfeature +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ +" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap + perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama" +# bug #551124 for truetype +# TODO?: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild new file mode 100644 index 000000000000..162e8b9a993c --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild @@ -0,0 +1,430 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build optfeature +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ +" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap + perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama" +# bug #551124 for truetype +# TODO?: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild new file mode 100644 index 000000000000..162e8b9a993c --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild @@ -0,0 +1,430 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build optfeature +inherit prefix toolchain-funcs wrapper + +WINE_GECKO=2.47.4 +WINE_MONO=9.0.0 + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" +else + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" + KEYWORDS="-* ~amd64 ~x86" +fi + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ +" + +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" +SLOT="${PV}" +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap + perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama" +# bug #551124 for truetype +# TODO?: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" + X? ( truetype ) + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" + +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access +RESTRICT="test" + +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} + app-emulation/wine-desktop-common + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) + perl? ( + dev-lang/perl + dev-perl/XML-LibXML + ) + samba? ( net-fs/samba[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison + sys-devel/flex + virtual/pkgconfig + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" + +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext + +PATCHES=( + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch +) + +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + fi + done + fi +} + +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" + fi + + default + + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" + fi + fi + + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die + + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c + + # always update for patches (including user's wrt #432348) + eautoreconf + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla +} + +src_configure() { + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} + + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man + + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests + + $(use_with X x) + $(use_with alsa) + $(use_with capi) + $(use_with cups) + $(use_with fontconfig) + $(use_with gphoto2 gphoto) + $(use_with gstreamer) + $(use_with kerberos gssapi) + $(use_with kerberos krb5) + $(use_with mingw) + $(use_with netapi) + $(use_with nls gettext) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + --without-oss # media-sound/oss is not packaged (OSSv4) + $(use_with pcap) + $(use_with pulseaudio pulse) + $(use_with scanner sane) + $(use_with sdl) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) + $(use_with truetype freetype) + $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks + $(use_with unwind) + $(use_with usb) + $(use_with v4l v4l2) + $(use_with vulkan) + $(use_with wayland) + $(use_with xcomposite) + $(use_with xinerama) + $(usev !odbc ac_cv_lib_soname_odbc=) + ) + + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags + fi + + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) + + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" + + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 + + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' + + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" + + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' + + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) + fi + + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) + done +} + +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi + fi + + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die + + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done + + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi + fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* +} + +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." + fi + + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die +} + +pkg_postrm() { + eselect wine update --if-unset || die +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild index 226b93efb90f..61e41c9d9b98 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild @@ -1,539 +1,430 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 2022-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 -PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" -PLOCALE_BACKUP="en" +MULTILIB_COMPAT=( abi_x86_{32,64} ) +inherit autotools flag-o-matic multilib multilib-build optfeature +inherit prefix toolchain-funcs wrapper -inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils +WINE_GECKO=2.47.4 +WINE_MONO=9.1.0 -MY_PN="${PN%%-*}" -MY_P="${MY_PN}-${PV}" - -if [[ ${PV} == "9999" ]] ; then - EGIT_REPO_URI="https://source.winehq.org/git/wine.git" - EGIT_BRANCH="master" +if [[ ${PV} == *9999 ]]; then inherit git-r3 - SRC_URI="" - #KEYWORDS="" + EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git" else - MAJOR_V=$(ver_cut 1) - SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz" + (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0 + SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz" + S="${WORKDIR}/wine-${PV}" KEYWORDS="-* ~amd64 ~x86" fi -S="${WORKDIR}/${MY_P}" - -GWP_V="20200523" -PATCHDIR="${WORKDIR}/gentoo-wine-patches" DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" -HOMEPAGE="https://www.winehq.org/" -SRC_URI="${SRC_URI} - https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz +HOMEPAGE=" + https://www.winehq.org/ + https://gitlab.winehq.org/wine/wine/ " -LICENSE="LGPL-2.1" +LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml" -REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) +IUSE=" + +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos + llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer + kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap + perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip + +truetype udev udisks +unwind usb v4l +vulkan wayland wow64 + +xcomposite xinerama" +# bug #551124 for truetype +# TODO?: wow64 can be done without mingw if using clang (needs bug #912237) +REQUIRED_USE=" X? ( truetype ) - elibc_glibc? ( threads ) - osmesa? ( opengl ) - test? ( abi_x86_32 ) - vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 + crossdev-mingw? ( mingw ) + wow64? ( abi_x86_64 !abi_x86_32 mingw ) +" -# FIXME: the test suite is unsuitable for us; many tests require net access -# or fail due to Xvfb's opengl limitations. +# tests are non-trivial to run, can hang easily, don't play well with +# sandbox, and several need real opengl/vulkan or network access RESTRICT="test" -COMMON_DEPEND=" +# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked +WINE_DLOPEN_DEPEND=" X? ( x11-libs/libXcursor[${MULTILIB_USEDEP}] - x11-libs/libXext[${MULTILIB_USEDEP}] x11-libs/libXfixes[${MULTILIB_USEDEP}] - x11-libs/libXrandr[${MULTILIB_USEDEP}] x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXrender[${MULTILIB_USEDEP}] x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + opengl? ( + media-libs/libglvnd[X,${MULTILIB_USEDEP}] + osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] ) + ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + ) + cups? ( net-print/cups[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) +" +WINE_COMMON_DEPEND=" + ${WINE_DLOPEN_DEPEND} + X? ( + x11-libs/libX11[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] ) alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) - capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) - cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) - faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] ) - fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] ) gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) - gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) - gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) gstreamer? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] - media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) - jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) - kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) - lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) - ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) - mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) - netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) - nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) - odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) - openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) - opengl? ( - virtual/glu[${MULTILIB_USEDEP}] - virtual/opengl[${MULTILIB_USEDEP}] - ) - osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) - png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) - pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) - scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) - sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) - ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) - truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] ) + smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] ) udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) - udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) - unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] ) - v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) - vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] ) - vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) - xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) - xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) - xml? ( - dev-libs/libxml2[${MULTILIB_USEDEP}] - dev-libs/libxslt[${MULTILIB_USEDEP}] - )" - -RDEPEND="${COMMON_DEPEND} + unwind? ( + llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] ) + !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] ) + ) + usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] ) + wayland? ( + dev-libs/wayland[${MULTILIB_USEDEP}] + x11-libs/libxkbcommon[${MULTILIB_USEDEP}] + ) +" +RDEPEND=" + ${WINE_COMMON_DEPEND} app-emulation/wine-desktop-common - >app-eselect/eselect-wine-0.3 - !app-emulation/wine:0 - dos? ( >=games-emulation/dosbox-0.74_p20160629 ) - gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] ) - mono? ( app-emulation/wine-mono:5.1.1 ) + dos? ( + || ( + games-emulation/dosbox + games-emulation/dosbox-staging + ) + ) + gecko? ( + app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] + wow64? ( app-emulation/wine-gecko[abi_x86_32] ) + ) + gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] ) + mono? ( app-emulation/wine-mono:${WINE_MONO} ) perl? ( dev-lang/perl - dev-perl/XML-Simple + dev-perl/XML-LibXML ) - pulseaudio? ( - realtime? ( sys-auth/rtkit ) - ) - samba? ( >=net-fs/samba-3.0.25[winbind] ) + samba? ( net-fs/samba[winbind] ) selinux? ( sec-policy/selinux-wine ) - udisks? ( sys-fs/udisks:2 )" - -# tools/make_requests requires perl -DEPEND="${COMMON_DEPEND} + udisks? ( sys-fs/udisks:2 ) +" +DEPEND=" + ${WINE_COMMON_DEPEND} + sys-kernel/linux-headers + X? ( x11-base/xorg-proto ) +" +BDEPEND=" + || ( + sys-devel/binutils + sys-devel/lld + ) + dev-lang/perl + sys-devel/bison sys-devel/flex - >=sys-kernel/linux-headers-2.6 virtual/pkgconfig - virtual/yacc - X? ( x11-base/xorg-proto ) - prelink? ( sys-devel/prelink ) - xinerama? ( x11-base/xorg-proto )" + mingw? ( !crossdev-mingw? ( + >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}] + wow64? ( dev-util/mingw64-toolchain[abi_x86_32] ) + ) ) + nls? ( sys-devel/gettext ) + wayland? ( dev-util/wayland-scanner ) +" +IDEPEND=">=app-eselect/eselect-wine-2" -# These use a non-standard "Wine" category, which is provided by -# /etc/xdg/applications-merged/wine.menu -QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop -usr/share/applications/wine-notepad.desktop -usr/share/applications/wine-uninstaller.desktop -usr/share/applications/wine-winecfg.desktop" +QA_CONFIG_IMPL_DECL_SKIP=( + __clear_cache # unused on amd64+x86 (bug #900338) + res_getservers # false positive +) +QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext PATCHES=( - "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726 - "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615 - "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 - "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch" + "${FILESDIR}"/${PN}-7.0-noexecstack.patch + "${FILESDIR}"/${PN}-7.20-unwind.patch + "${FILESDIR}"/${PN}-8.13-rpath.patch ) -PATCHES_BIN=() - -# https://bugs.gentoo.org/show_bug.cgi?id=635222 -if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then - DEPEND+=" dev-util/patchbin" -fi -wine_compiler_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - # GCC-specific bugs - if tc-is-gcc; then - # bug #549768 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then - ebegin "Checking for gcc-5 ms_abi compiler bug" - $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die - # Run in subshell to prevent "Aborted" message - ( "${T}"/pr66838 || false ) >/dev/null 2>&1 - if ! eend $?; then - eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/549768" +pkg_pretend() { + [[ ${MERGE_TYPE} == binary ]] && return + + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) \ + $(use abi_x86_32 || use wow64 && echo i686${mingw}); do + if ! type -P ${mingw}-gcc >/dev/null; then + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" eerror - return 1 - fi - fi - # bug #574044 - if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then - ebegin "Checking for gcc-5-3 stack realignment compiler bug" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 - if ! eend $?; then - eerror "Wine cannot be built with this version of gcc-5.3" - eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," - eerror "or use gcc-config to select a different compiler version." - eerror "See https://bugs.gentoo.org/574044" + eerror " crossdev --target ${mingw}" eerror - return 1 + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" fi - fi - fi - - # Ensure compiler support - if use abi_x86_64; then - ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" - # Compile in subshell to prevent "Aborted" message - ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) - if ! eend $?; then - eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" - eerror - eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" - eerror - return 1 - fi + done fi } -wine_build_environment_check() { - [[ ${MERGE_TYPE} = "binary" ]] && return 0 - - if use abi_x86_64; then - if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then - eerror "You need gcc-4.4+ to compile 64-bit wine" - die - elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then - eerror "You need clang-3.8+ to compile 64-bit wine" - die - fi - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then - ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" - ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" - ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" - fi - if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then - if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then - ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" - ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." - ewarn "See package.env in man 5 portage for more information on how to do this." - ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" - fi - fi - - if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then - eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." - eerror "See https://bugs.gentoo.org/487864 for more details." - eerror - return 1 +src_prepare() { + # sanity check, bumping these has a history of oversights + local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \ + dlls/appwiz.cpl/addons.c || die) + if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then + local gmfatal= + [[ ${PV} == *9999 ]] && gmfatal=nonfatal + ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)" fi -} -wine_env_vcs_vars() { - local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" - local pn_live_val="${pn_live_var}" - eval pn_live_val='$'${pn_live_val} - if [[ ! -z ${EGIT_COMMIT} ]]; then - eerror "Commits must now be specified using the environmental variables" - eerror "EGIT_OVERRIDE_COMMIT_WINE" - eerror - return 1 - fi -} + default -pkg_pretend() { - wine_build_environment_check || die - - # Verify OSS support - if use oss && ! use kernel_FreeBSD; then - if ! has_version ">=media-sound/oss-4"; then - eerror "You cannot build wine with USE=oss without having support from a" - eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" - eerror - die + if tc-is-clang; then + if use mingw; then + # -mabi=ms was ignored by <clang:16 then turned error in :17 + # if used without --target *-windows, then gets used in install + # phase despite USE=mingw, drop as a quick fix for now + sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die + else + # fails in ./configure unless --enable-archs is passed, allow to + # bypass with EXTRA_ECONF but is currently considered unsupported + # (by Gentoo) as additional work is needed for (proper) support + # note: also fails w/ :17, but unsure if safe to drop w/o mingw + [[ ${EXTRA_ECONF} == *--enable-archs* ]] || + die "building ${PN} with clang is only supported with USE=mingw" fi fi -} -pkg_setup() { - wine_build_environment_check || die - wine_env_vcs_vars || die - - WINE_VARIANT="${PN#wine}-${PV}" - WINE_VARIANT="${WINE_VARIANT#-}" - - MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" - MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" - MY_DATADIR="${MY_DATAROOTDIR}" - MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" - MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" - MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" - MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" - MY_MANDIR="${MY_DATADIR}/man" -} + # ensure .desktop calls this variant + slot + sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die -src_unpack() { - if [[ ${PV} == "9999" ]] ; then - EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack - fi - - default - - l10n_find_plocales_changes "${S}/po" "" ".po" -} - -src_prepare() { - - eapply_bin(){ - local patch - for patch in ${PATCHES_BIN[@]}; do - patchbin --nogit < "${patch}" || die - done - } - - local md5="$(md5sum server/protocol.def)" + # datadir is not where wine-mono is installed, so prefixy alternate paths + hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c - default - eapply_bin + # always update for patches (including user's wrt #432348) eautoreconf - - # Modification of the server protocol requires regenerating the server requests - if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then - einfo "server/protocol.def was patched; running tools/make_requests" - tools/make_requests || die #432348 - fi - sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die - if ! use run-exes; then - sed -i '/^MimeType/d' loader/wine.desktop || die #117785 - fi - - # Edit wine.desktop to work for specific variant - sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die - - # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 - cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die - - l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS - - # Fix manpage generation for locales #469418 and abi_x86_64 #617864 - - # Duplicate manpages input files for wine64 - local f - for f in loader/*.man.in; do - cp ${f} ${f/wine/wine64} || die - done - # Add wine64 manpages to Makefile - if use abi_x86_64; then - sed -i "/wine.man.in/i \ - \\\twine64.man.in \\\\" loader/Makefile.in || die - sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ -\164\2/' loader/Makefile.in || die - fi - - rm_man_file(){ - local file="${1}" - loc=${2} - sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die - } - - while read f; do - l10n_for_each_disabled_locale_do rm_man_file "${f}" - done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) + tools/make_requests || die # perl + # tip: if need more for user patches, with portage can e.g. do + # echo "post_src_prepare() { tools/make_specfiles || die; }" \ + # > /etc/portage/env/app-emulation/wine-vanilla } src_configure() { - wine_compiler_check || die + WINE_PREFIX=/usr/lib/${P} + WINE_DATADIR=/usr/share/${P} - export LDCONFIG=/bin/true - use custom-cflags || strip-flags + local conf=( + --prefix="${EPREFIX}"${WINE_PREFIX} + --datadir="${EPREFIX}"${WINE_DATADIR} + --includedir="${EPREFIX}"/usr/include/${P} + --libdir="${EPREFIX}"${WINE_PREFIX} + --mandir="${EPREFIX}"${WINE_DATADIR}/man - multilib-minimal_src_configure -} + $(usev wow64 --enable-archs=x86_64,i386) + + $(use_enable gecko mshtml) + $(use_enable mono mscoree) + --disable-tests -multilib_src_configure() { - local myconf=( - --prefix="${MY_PREFIX}" - --datarootdir="${MY_DATAROOTDIR}" - --datadir="${MY_DATADIR}" - --docdir="${MY_DOCDIR}" - --includedir="${MY_INCLUDEDIR}" - --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" - --libexecdir="${MY_LIBEXECDIR}" - --localstatedir="${MY_LOCALSTATEDIR}" - --mandir="${MY_MANDIR}" - --sysconfdir="${EPREFIX}/etc/wine" + $(use_with X x) $(use_with alsa) $(use_with capi) - $(use_with lcms cms) $(use_with cups) - $(use_with ncurses curses) - $(use_with udisks dbus) - $(use_with faudio) $(use_with fontconfig) - $(use_with ssl gnutls) - $(use_enable gecko mshtml) $(use_with gphoto2 gphoto) - $(use_with gsm) - $(use_with gssapi) $(use_with gstreamer) - --without-hal - $(use_with jpeg) + $(use_with kerberos gssapi) $(use_with kerberos krb5) - $(use_with ldap) - --without-mingw # linux LDFLAGS leak in mingw32: bug #685172 - $(use_enable mono mscoree) - $(use_with mp3 mpg123) + $(use_with mingw) $(use_with netapi) $(use_with nls gettext) - $(use_with openal) $(use_with opencl) $(use_with opengl) $(use_with osmesa) - $(use_with oss) + --without-oss # media-sound/oss is not packaged (OSSv4) $(use_with pcap) - $(use_with png) $(use_with pulseaudio pulse) - $(use_with threads pthread) $(use_with scanner sane) $(use_with sdl) - $(use_enable test tests) + $(use_with smartcard pcsclite) + $(use_with ssl gnutls) $(use_with truetype freetype) $(use_with udev) + $(use_with udisks dbus) # dbus is only used for udisks $(use_with unwind) + $(use_with usb) $(use_with v4l v4l2) - $(use_with vkd3d) $(use_with vulkan) - $(use_with X x) - $(use_with X xfixes) + $(use_with wayland) $(use_with xcomposite) $(use_with xinerama) - $(use_with xml) - $(use_with xml xslt) + $(usev !odbc ac_cv_lib_soname_odbc=) ) - local PKG_CONFIG - # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 - tc-export PKG_CONFIG - - if use amd64; then - if [[ ${ABI} == amd64 ]]; then - myconf+=( --enable-win64 ) - else - myconf+=( --disable-win64 ) - fi - - # Note: using --with-wine64 results in problems with multilib.eclass - # CC/LD hackery. We're using separate tools instead. + filter-lto # build failure + use custom-cflags || strip-flags # can break in obscure ways at runtime + + # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097) + # (do self test until https://github.com/gentoo/gentoo/pull/28355) + if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]] + then + has_version -b sys-devel/binutils && + append-ldflags -fuse-ld=bfd || + append-ldflags -fuse-ld=lld + strip-unsupported-flags fi - ECONF_SOURCE=${S} \ - econf "${myconf[@]}" - emake depend -} - -multilib_src_test() { - # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" - if [[ ${ABI} == x86 ]]; then - if [[ $(id -u) == 0 ]]; then - ewarn "Skipping tests since they cannot be run under the root user." - ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" - return - fi - - WINEPREFIX="${T}/.wine-${ABI}" \ - Xemake test - fi -} + if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} -multilib_src_install_all() { - local DOCS=( ANNOUNCE AUTHORS README ) - add_locale_docs() { - local locale_doc="documentation/README.$1" - [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) - } - l10n_for_each_locale_do add_locale_docs + # CROSSCC was formerly recognized by wine, thus been using similar + # variables (subject to change, esp. if ever make a mingw.eclass). + local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}} + local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}} + local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86) - einstalldocs - prune_libtool_files --all + conf+=( + ac_cv_prog_x86_64_CC="${mingwcc_amd64}" + ac_cv_prog_i386_CC="${mingwcc_x86}" - if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script - rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ - "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die - fi + CROSSCFLAGS="${CROSSCFLAGS:-$( + filter-flags '-fstack-protector*' #870136 + filter-flags '-mfunction-return=thunk*' #878849 - # Remove wineconsole if neither backend is installed #551124 - if ! use X && ! use ncurses; then - rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die - rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die - rm_wineconsole() { - rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die - } - multilib_foreach_abi rm_wineconsole - fi + # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then + # strip-unsupported-flags miss these during compile-only tests + # (primarily done for 23.0 profiles' -z, not full coverage) + filter-flags '-Wl,-z,*' - use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 - use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} + CC=${mingwcc} test-flags-CC ${CFLAGS:--O2} + )}" - # Avoid double prefix from dosym and make_wrapper - MY_PREFIX=${MY_PREFIX#${EPREFIX}} + CROSSLDFLAGS="${CROSSLDFLAGS:-$( + filter-flags '-fuse-ld=*' - if use abi_x86_64 && ! use abi_x86_32; then - dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 - dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader + CC=${mingwcc} test-flags-CCLD ${LDFLAGS} + )}" + ) fi - # Failglob for binloops, shouldn't be necessary, but including to stay safe - eshopts_push -s failglob #615218 - # Make wrappers for binaries for handling multiple variants - # Note: wrappers instead of symlinks because some are shell which use basename - local b - for b in "${ED%/}${MY_PREFIX}"/bin/*; do - make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" + # order matters with multilib: configure+compile 64->32, install 32->64 + local -i bits + for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do + ( + einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..." + + mkdir ../build${bits} || die + cd ../build${bits} || die + + if (( bits == 64 )); then + conf+=( --enable-win64 ) + elif use amd64; then + conf+=( + $(usev abi_x86_64 --with-wine64=../build64) + TARGETFLAGS=-m32 # for widl + ) + # _setup is optional, but use over Wine's auto-detect (+#472038) + multilib_toolchain_setup x86 + fi + + ECONF_SOURCE=${S} econf "${conf[@]}" + ) done - eshopts_pop } -pkg_postinst() { - eselect wine register ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine register --vanilla ${P} || die +src_compile() { + use abi_x86_64 && emake -C ../build64 # do first + use abi_x86_32 && emake -C ../build32 +} + +src_install() { + use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install + use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last + + # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64, + # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where + # one or the other could be missing and that is unexpected for users + # and some tools like winetricks) + if use abi_x86_64; then + if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine64 ${WINE_PREFIX}/bin/wine + dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader + + # also install wine(1) man pages (incl. translations) + local man + for man in ../build64/loader/wine.*man; do + : "${man##*/wine}" + : "${_%.*}" + insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1 + newins ${man} wine.1 + done + elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then + dosym wine ${WINE_PREFIX}/bin/wine64 + dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader + fi fi - eselect wine update --all --if-unset || die + use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \ + "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die - xdg_desktop_database_update + # create variant wrappers for eselect-wine + local bin + for bin in "${ED}"${WINE_PREFIX}/bin/*; do + make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}" + done - if ! use gecko; then - ewarn "Without Wine Gecko, wine prefixes will not have a default" - ewarn "implementation of iexplore. Many older windows applications" - ewarn "rely upon the existence of an iexplore implementation, so" - ewarn "you will likely need to install an external one, like via winetricks" - fi - if ! use mono; then - ewarn "Without Wine Mono, wine prefixes will not have a default" - ewarn "implementation of .NET. Many windows applications rely upon" - ewarn "the existence of a .NET implementation, so you will likely need" - ewarn "to install an external one, like via winetricks" + if use mingw; then + # don't let portage try to strip PE files with the wrong + # strip executable and instead handle it here (saves ~120MB) + dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows + + if use strip; then + ebegin "Stripping Windows (PE) binaries" + find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \ + -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + + eend ${?} || die + fi fi + + dodoc ANNOUNCE* AUTHORS README* documentation/README* } -pkg_prerm() { - eselect wine deregister ${P} - if [[ ${PN} == "wine-vanilla" ]]; then - eselect wine deregister --vanilla ${P} || die +pkg_postinst() { + if use !abi_x86_32 && use !wow64; then + ewarn "32bit support is disabled. While 64bit applications themselves will" + ewarn "work, be warned that it is not unusual that installers or other helpers" + ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32," + ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib." + elif use abi_x86_32 && { use opengl || use vulkan; } && + has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]' + then + ewarn "x11-drivers/nvidia-drivers is installed but is built without" + ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit" + ewarn "applications under ${PN} will likely not be usable." fi - eselect wine update --all --if-unset || die + optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \ + games-util/game-device-udev-rules + + eselect wine update --if-unset || die } pkg_postrm() { - xdg_desktop_database_update + eselect wine update --if-unset || die } diff --git a/app-emulation/winetricks/Manifest b/app-emulation/winetricks/Manifest index 23a38cf1c76c..bb6973b41b47 100644 --- a/app-emulation/winetricks/Manifest +++ b/app-emulation/winetricks/Manifest @@ -1,4 +1,3 @@ -DIST winetricks-20190912.tar.gz 679544 BLAKE2B 633c407f8560fa3aa38806befded957d0bf1276164483b08fb3ef285fe873531d6362ae6305f5a33a85891d75990e6e0271fe954358e49425c4f36f0f918f48d SHA512 a0017cc08c56a511e523116daf2024b1462460d00b3d07de87720c7912dccab3d953db3653d7d611c5ae3b457a45de8d36688ee703e805c1e1f5be5c0fa7739f -DIST winetricks-20191224.tar.gz 683074 BLAKE2B 53e89f57883c7527e083610d4ea036887cc8e058d281ee77b0e8fd7dec8520bcd27d5d86f6cadfa5d11bc191a33571086128e6729642e7f302dc37e27b1ce402 SHA512 31c0866e78d866e569da6c1123af7823a07b6358a79fcba84296938d89a39447ec9f504ca524471abc74ec2e3b24024bbc8a579413b4fe0ee74b1d5612f5d41a -DIST winetricks-20200412.tar.gz 684548 BLAKE2B e29eba0c73ec0649523dac0f0efd145a5c9fe60d94ae98bc55ec430f511cc5bdf3149d87289973a85a373f2f91c3bd5521470853e06f5ec4af83fc810aa4fdc5 SHA512 d6ca5628b7d296b3168ef088ca0b03aff8b73da8a139061ca64fac0685ec29bf2b7e075b89226f8ce3af511947eac45d4c72cfb1199e6b72666fc67547b77588 +DIST winetricks-20230212.tar.gz 694504 BLAKE2B 8f36a618edd0b17ccb7dbd1f054d45d2d35c3c8e5bfb2f12d91b8f9c87c9942db5b430a2b3017a42c3900dfe8f0510a6b8a6d78035e3fb467d88a3db0b64eff8 SHA512 3d2211091754a2a254d5ac8dab27d59d488d512149d8060828cf9d69df96f5ccad183f2ba9f2172452a2ae322236e86e7fce560836a2bc05dc9a36c2a422f245 +DIST winetricks-20240105.tar.gz 675763 BLAKE2B 0ca29d06ae35c95027ead0da2fa26b2950b4b4d495b61c972b9f93ae26fcadc7891931224bc2a8776e06f8bf2816e2fd5b84a0ef342de296aae20129dd5480b0 SHA512 254b505e1175477df3a27b361f227a02a2346a1b7ace255b6170e8bd463883dda8fef9fcbf2cd54606d69742fd6236f9aa58f589e2a34eb66bd04dfaa7bd6799 DIST winetricks-gentoo-2012.11.24.tar.bz2 6398 BLAKE2B 54a4502f6e8ef15d21b02c43e3ce599e32d476c2559246064de14cc4ce2243ff11dde681d24c8a7f4913c3d7a10b855bda47e8fb8ecad31e00d839705416be6f SHA512 59c93b73f3a7b2d11aefcde2ff66659ff1de21ad4b5f232f4b60572f3a48b15a6c49f369b1696862bf1b33fde190bf5598945e9536fb41ddec42d8def4d2be2a diff --git a/app-emulation/winetricks/metadata.xml b/app-emulation/winetricks/metadata.xml index 15c062872f15..0ada2835dd03 100644 --- a/app-emulation/winetricks/metadata.xml +++ b/app-emulation/winetricks/metadata.xml @@ -1,14 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>chiitoo@gentoo.org</email> <name>Jimi Huotari</name> </maintainer> - <maintainer type="person"> - <email>NP-Hardass@gentoo.org</email> - <name>NP-Hardass</name> - </maintainer> <maintainer type="project"> <email>wine@gentoo.org</email> <name>Wine</name> diff --git a/app-emulation/winetricks/winetricks-20191224.ebuild b/app-emulation/winetricks/winetricks-20191224.ebuild deleted file mode 100644 index 2a88c5a5cb66..000000000000 --- a/app-emulation/winetricks/winetricks-20191224.ebuild +++ /dev/null @@ -1,88 +0,0 @@ -# Copyright 1999-2019 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit desktop xdg - -if [[ ${PV} == "99999999" ]] ; then - EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git" - inherit git-r3 - SRC_URI="" -else - SRC_URI="https://github.com/Winetricks/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" - KEYWORDS="~amd64 ~x86" -fi - -wtg="winetricks-gentoo-2012.11.24" - -SRC_URI="${SRC_URI} - gtk? ( https://dev.gentoo.org/~chiitoo/distfiles/${wtg}.tar.bz2 ) - kde? ( https://dev.gentoo.org/~chiitoo/distfiles/${wtg}.tar.bz2 ) -" - -DESCRIPTION="Easy way to install DLLs needed to work around problems in Wine" -HOMEPAGE="https://github.com/Winetricks/winetricks https://wiki.winehq.org/Winetricks" - -LICENSE="LGPL-2.1+" -SLOT="0" -IUSE="gtk kde rar test" - -BDEPEND=" - test? ( - dev-python/bashate - dev-util/checkbashisms - dev-util/shellcheck - ) -" -DEPEND="" -RDEPEND="${DEPEND} - app-arch/cabextract - app-arch/p7zip - app-arch/unzip - net-misc/wget - virtual/wine - x11-misc/xdg-utils - gtk? ( gnome-extra/zenity ) - kde? ( kde-apps/kdialog ) - rar? ( app-arch/unrar ) -" - -RESTRICT="!test? ( test )" - -# Test targets include syntax checks only, not the "heavy duty" tests -# that would require a lot of disk space, as well as network access. - -# This uses a non-standard "Wine" category, which is provided by -# '/etc/xdg/menus/applications-merged/wine.menu' from the -# 'app-emulation/wine-desktop-common' package. -# https://bugs.gentoo.org/451552 -QA_DESKTOP_FILE="usr/share/applications/winetricks.desktop" - -src_unpack() { - if [[ ${PV} == "99999999" ]]; then - git-r3_src_unpack - - if use gtk || use kde; then - unpack ${wtg}.tar.bz2 - fi - - else - default - fi -} - -src_test() { - ./tests/shell-checks || die "Test(s) failed." -} - -src_install() { - default - - if use gtk || use kde; then - cd "${WORKDIR}/${wtg}" || die - domenu winetricks.desktop - insinto /usr/share/icons/hicolor/scalable/apps - doins wine-winetricks.svg - fi -} diff --git a/app-emulation/winetricks/winetricks-20190912.ebuild b/app-emulation/winetricks/winetricks-20230212.ebuild index 3cb7eb82c4b2..afdf44a0f734 100644 --- a/app-emulation/winetricks/winetricks-20190912.ebuild +++ b/app-emulation/winetricks/winetricks-20230212.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2019 Gentoo Authors +# Copyright 1999-2023 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit desktop xdg +inherit xdg if [[ ${PV} == "99999999" ]] ; then EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git" @@ -29,11 +29,17 @@ SLOT="0" IUSE="gtk kde rar test" RESTRICT="!test? ( test )" +# dev-util/shellcheck is not available for x86 +RESTRICT+=" x86? ( test )" + BDEPEND=" test? ( dev-python/bashate dev-util/checkbashisms - dev-util/shellcheck + || ( + dev-util/shellcheck-bin + dev-util/shellcheck + ) ) " DEPEND="" @@ -78,10 +84,8 @@ src_test() { src_install() { default - if use gtk || use kde; then - cd "${WORKDIR}/${wtg}" || die - domenu winetricks.desktop - insinto /usr/share/icons/hicolor/scalable/apps - doins wine-winetricks.svg + if ! use gtk && ! use kde; then + rm -r "${ED}"/usr/share/applications || die + rm -r "${ED}"/usr/share/icons || die fi } diff --git a/app-emulation/winetricks/winetricks-20200412.ebuild b/app-emulation/winetricks/winetricks-20240105.ebuild index 380da376c94c..91fa5d31a9b7 100644 --- a/app-emulation/winetricks/winetricks-20200412.ebuild +++ b/app-emulation/winetricks/winetricks-20240105.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit desktop xdg +inherit xdg if [[ ${PV} == "99999999" ]] ; then EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git" @@ -29,6 +29,9 @@ SLOT="0" IUSE="gtk kde rar test" RESTRICT="!test? ( test )" +# dev-util/shellcheck is not available for x86 +RESTRICT+=" x86? ( test )" + BDEPEND=" test? ( dev-python/bashate @@ -81,10 +84,8 @@ src_test() { src_install() { default - if use gtk || use kde; then - cd "${WORKDIR}/${wtg}" || die - domenu winetricks.desktop - insinto /usr/share/icons/hicolor/scalable/apps - doins wine-winetricks.svg + if ! use gtk && ! use kde; then + rm -r "${ED}"/usr/share/applications || die + rm -r "${ED}"/usr/share/icons || die fi } diff --git a/app-emulation/winetricks/winetricks-99999999.ebuild b/app-emulation/winetricks/winetricks-99999999.ebuild index 380da376c94c..91fa5d31a9b7 100644 --- a/app-emulation/winetricks/winetricks-99999999.ebuild +++ b/app-emulation/winetricks/winetricks-99999999.ebuild @@ -1,9 +1,9 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -inherit desktop xdg +inherit xdg if [[ ${PV} == "99999999" ]] ; then EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git" @@ -29,6 +29,9 @@ SLOT="0" IUSE="gtk kde rar test" RESTRICT="!test? ( test )" +# dev-util/shellcheck is not available for x86 +RESTRICT+=" x86? ( test )" + BDEPEND=" test? ( dev-python/bashate @@ -81,10 +84,8 @@ src_test() { src_install() { default - if use gtk || use kde; then - cd "${WORKDIR}/${wtg}" || die - domenu winetricks.desktop - insinto /usr/share/icons/hicolor/scalable/apps - doins wine-winetricks.svg + if ! use gtk && ! use kde; then + rm -r "${ED}"/usr/share/applications || die + rm -r "${ED}"/usr/share/icons || die fi } diff --git a/app-emulation/x48/metadata.xml b/app-emulation/x48/metadata.xml index e4472f348708..44a724679bcf 100644 --- a/app-emulation/x48/metadata.xml +++ b/app-emulation/x48/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>voyageur@gentoo.org</email> diff --git a/app-emulation/x48/x48-0.6.4-r2.ebuild b/app-emulation/x48/x48-0.6.4-r2.ebuild index 9e603e25e582..74f99e360606 100644 --- a/app-emulation/x48/x48-0.6.4-r2.ebuild +++ b/app-emulation/x48/x48-0.6.4-r2.ebuild @@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/x48.berlios/${P}.tar.bz2" LICENSE="GPL-3" SLOT="0" -KEYWORDS="~alpha amd64 hppa ~ia64 ppc ppc64 sparc x86" +KEYWORDS="~alpha amd64 ~hppa ~ia64 ppc ppc64 sparc x86" IUSE="readline" RDEPEND=" diff --git a/app-emulation/xcpc/Manifest b/app-emulation/xcpc/Manifest index 202bdb898f57..23162f00274d 100644 --- a/app-emulation/xcpc/Manifest +++ b/app-emulation/xcpc/Manifest @@ -1 +1 @@ -DIST xcpc-20070122.tar.gz 496627 BLAKE2B 13fc9974e3810fa4ef45e90764641cb0a220657055829d1ec9a185c1a894234d3a654581e317327ac5937454b9dfab14af2654775157041edcc0176975753835 SHA512 7f5700340fbbf23d2f2111e31ce803c846799ef6681cf63e28bc67564e092534fc4140cb99d718fae9126668ee8f3053bbd097537c04637b5b809ce7b986dd26 +DIST xcpc-0.37.0.tar.gz 1094259 BLAKE2B 670de05f53d05d375c9cb252e672f8fa9027419302b521b88dc1904ec99571fa95b390bfdc5eea3eb2355730c02a955c10cbc2f29d7e4c52506173e8f5d6c540 SHA512 8579711595ac5234c1c8a6e9d0279950c97966a2a8919d4f0ba404c5bd5609f299ab0b5131d6973f5decfc12bff184facf3009522bef568a108b5cfb7e74be11 diff --git a/app-emulation/xcpc/metadata.xml b/app-emulation/xcpc/metadata.xml index 55dccaa5b8f2..d63de1a63526 100644 --- a/app-emulation/xcpc/metadata.xml +++ b/app-emulation/xcpc/metadata.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <!-- maintainer-needed --> <upstream> <remote-id type="sourceforge">xcpc</remote-id> + <remote-id type="bitbucket">ponceto/xcpc</remote-id> </upstream> </pkgmetadata> diff --git a/app-emulation/xcpc/xcpc-0.37.0-r1.ebuild b/app-emulation/xcpc/xcpc-0.37.0-r1.ebuild new file mode 100644 index 000000000000..130b749e94db --- /dev/null +++ b/app-emulation/xcpc/xcpc-0.37.0-r1.ebuild @@ -0,0 +1,29 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit xdg + +DESCRIPTION="XCPC is a portable Amstrad CPC 464/664/6128 emulator written in C" +HOMEPAGE="http://www.xcpc-emulator.net/doku.php/index" +SRC_URI="https://bitbucket.org/ponceto/xcpc/downloads/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + app-arch/bzip2 + sys-libs/zlib + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/libXext" +DEPEND="${RDEPEND}" + +src_configure() { + econf \ + --disable-athena \ + --disable-motif2 \ + --with-x11-toolkit=gtk3 +} diff --git a/app-emulation/xcpc/xcpc-20070122.ebuild b/app-emulation/xcpc/xcpc-20070122.ebuild deleted file mode 100644 index bfe344f89853..000000000000 --- a/app-emulation/xcpc/xcpc-20070122.ebuild +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 1999-2016 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -DESCRIPTION="XCPC is a portable Amstrad CPC 464/664/6128 emulator written in C." -HOMEPAGE="http://www.xcpc-emulator.net/doku.php/index" -SRC_URI="http://sourceforge.net/projects/${PN}/files/${PN}/${P}/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64" -IUSE="" - -RDEPEND="app-emulation/libdsk" diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch deleted file mode 100644 index ee9b86e91396..000000000000 --- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- usr/sbin/xe-linux-distribution.orig 2011-04-18 10:56:30.000000000 -0500 -+++ usr/sbin/xe-linux-distribution 2013-12-31 01:35:51.995831278 -0600 -@@ -249,6 +249,24 @@ - write_to_output "${distro}" "${major}" "${minor}" "${description}" - } - -+identify_gentoo() -+{ -+ gentoo_release="$1" -+ if [ ! -e "${gentoo_release}" ] ; then -+ return 1 -+ fi -+ distro="gentoo" -+ eval $(cat ${gentoo_release} | awk '{ print "release=" $5 }' ) -+ if [ -z "${release}" ] ; then -+ return 1 -+ fi -+ eval $(echo $release | awk -F. -- '{ print "major=" $1 ; print "minor=" $2 }' ) -+ if [ -z "${major}" -o -z "$minor" ] ; then -+ return 1 -+ fi -+ write_to_output "${distro}" "${major}" "${minor}" "${distro}" -+} -+ - if [ $# -eq 1 ] ; then - exec 1>"$1" - fi -@@ -258,6 +276,7 @@ - identify_sles /etc/SuSE-release && exit 0 - identify_lsb lsb_release && exit 0 - identify_debian /etc/debian_version && exit 0 -+ identify_gentoo /etc/gentoo-release && exit 0 - - if [ $# -eq 1 ] ; then - rm -f "$1" diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch deleted file mode 100644 index c60994effa65..000000000000 --- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- usr/sbin/xe-update-guest-attrs.orig 2011-04-18 10:56:30.000000000 -0500 -+++ usr/sbin/xe-update-guest-attrs 2013-12-31 04:34:57.750083257 -0600 -@@ -172,7 +172,7 @@ - # collisions:0 txqueuelen:0 - # RX bytes:3604609 (3.4 MiB) TX bytes:3604609 (3.4 MiB) - --eval $(/sbin/ifconfig | \ -+eval $(/bin/ifconfig | \ - sed -n -e '/^[0-9a-z][0-9a-z]*\:/,/^$/d' \ - -e 's/^\([0-9a-z][0-9a-z]*\) .*/ifs="\$ifs \1"; current="\1"; /gp;' \ - -e 's/ *inet addr:\('$IPADDR_RE'\) .*/eval inet_\${current}="\1"; /gp;') diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch index d431cdfcf999..29c8ebc91074 100644 --- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch +++ b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch @@ -1,5 +1,5 @@ ---- usr/sbin/xe-update-guest-attrs.orig 2013-06-14 07:57:18.000000000 -0500 -+++ usr/sbin/xe-update-guest-attrs 2014-04-19 13:38:14.627477193 -0500 +--- a/xe-update-guest-attrs ++++ b/xe-update-guest-attrs @@ -1,6 +1,7 @@ #!/bin/sh diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch index 45b0bbc56c69..d1ec22668603 100644 --- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch +++ b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch @@ -1,5 +1,5 @@ ---- usr/sbin/xe-linux-distribution.orig 2013-06-14 07:57:18.000000000 -0500 -+++ usr/sbin/xe-linux-distribution 2014-04-19 13:54:13.270477193 -0500 +--- a/xe-linux-distribution ++++ b/xe-linux-distribution @@ -1,6 +1,7 @@ #! /bin/sh diff --git a/app-emulation/xe-guest-utilities/metadata.xml b/app-emulation/xe-guest-utilities/metadata.xml index b1dc4728a9d2..c53ad2005ebe 100644 --- a/app-emulation/xe-guest-utilities/metadata.xml +++ b/app-emulation/xe-guest-utilities/metadata.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> -<maintainer type="person"> +<maintainer type="person" proxied="yes"> <email>chicago@blkid.net</email> <name>Chicago</name> </maintainer> @@ -21,6 +21,6 @@ <name>Gentoo Xen Project</name> </maintainer> <use> - <flag name="xenstore">Use xenstore binaries bundled by Citrix instead of building app-emulation/xen-tools</flag> + <flag name="xenstore">Use xenstore binaries bundled by Citrix instead of building <pkg>app-emulation/xen-tools</pkg></flag> </use> </pkgmetadata> diff --git a/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120.ebuild b/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120-r1.ebuild index d3211b5fdcf1..145e42fb64b0 100644 --- a/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120.ebuild +++ b/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120-r1.ebuild @@ -1,43 +1,50 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=5 -inherit eutils rpm linux-info -DESCRIPTION="XenServer Virtual Machine Tools" -HOMEPAGE="https://www.citrix.com/" +EAPI=8 + +inherit rpm linux-info udev + PV_BASE=${PV/_*} PV_FULL=${PV/_p/-} + +DESCRIPTION="XenServer Virtual Machine Tools" +HOMEPAGE="https://www.citrix.com/" SRC_URI="http://updates.vmd.citrix.com/XenServer/${PV_BASE}/rhel4x/SRPMS/xe-guest-utilities-${PV_FULL}.src.rpm" +S="${WORKDIR}" + LICENSE="LGPL-3 LGPL-2.1" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="xenstore" -DEPEND="app-arch/rpm2targz" + +BDEPEND="app-arch/rpm2targz" RDEPEND=" !xenstore? ( app-emulation/xen-tools ) - xenstore? ( !app-emulation/xen-tools )" -S=${WORKDIR} + xenstore? ( !app-emulation/xen-tools ) +" + CONFIG_CHECK="~XEN_COMPAT_XENFS ~XENFS" QA_PREBUILT="usr/bin/xenstore* usr/bin/xeninfo" +PATCHES=( + "${FILESDIR}"/${PN}-6.2.0_p1120-Guest-Attributes.patch + "${FILESDIR}"/${PN}-6.2.0_p1120-Linux-Distribution.patch +) + src_unpack() { rpm_src_unpack ${A} # Upstream includes xenstore-sources.tar.bz2 # but it is NOT the complete source :-( } -src_prepare() { - epatch "${FILESDIR}"/${PN}-6.2.0_p1120-Guest-Attributes.patch - epatch "${FILESDIR}"/${PN}-6.2.0_p1120-Linux-Distribution.patch -} - src_install() { - newinitd "${FILESDIR}/xe-daemon.initd" xe-daemon + newinitd "${FILESDIR}"/xe-daemon.initd xe-daemon dosbin xe-daemon dosbin xe-linux-distribution dosbin xe-update-guest-attrs - insinto /lib/udev/rules.d - newins xen-vcpu-hotplug.rules 10-xen-vcpu-hotplug.rules + + udev_newrules xen-vcpu-hotplug.rules 10-xen-vcpu-hotplug.rules if use xenstore; then dobin usr/bin/xeninfo @@ -47,6 +54,8 @@ src_install() { } pkg_postinst() { + udev_reload + if [ ! -e /etc/runlevels/boot/xe-daemon ]; then elog "To start the xe-daemon automatically by default" elog "you should add it to the boot runlevel :" diff --git a/app-emulation/xen-pvgrub/Manifest b/app-emulation/xen-pvgrub/Manifest deleted file mode 100644 index aa2198b35781..000000000000 --- a/app-emulation/xen-pvgrub/Manifest +++ /dev/null @@ -1,8 +0,0 @@ -DIST grub-0.97.tar.gz 971783 BLAKE2B a7b6feb6dddb6eeb20e027071091b2d37930e5b40687f8c8ff860839db208f832713db61389014d21842e1e152cad0466dc9722a79cbb81bfa1566a30b6b82cc SHA512 c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb -DIST lwip-1.3.0.tar.gz 398933 BLAKE2B 3567a593eec3d247213daaaab57d9456c9cae50329498ca55cee7726a59461f8e9d77d96cfc8204d6b7b7962f00664f44d3bc7f16a5a53f5e068a02d405fb457 SHA512 1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d -DIST newlib-1.16.0.tar.gz 12024353 BLAKE2B 26d3308148fb99baf8ad02eee4cc699cfac690100ea63aaa4be03b86d12dade238478342514bd083cbc3d27964ac42eb8dae3873fdac5ff2c593fc4fb39b2309 SHA512 40eb96bbc6736a16b6399e0cdb73e853d0d90b685c967e77899183446664d64570277a633fdafdefc351b46ce210a99115769a1d9f47ac749d7e82837d4d1ac3 -DIST pciutils-2.2.9.tar.bz2 212265 BLAKE2B 014b664e90c64e7255c9e21fc25a2cc60d57f47ce282fc0331a0481a460b237783bd3774dd0689e1596d4a0be0d2889faad904da01a6f02147464bce1d1b1bc0 SHA512 2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5 -DIST polarssl-1.1.4-gpl.tgz 611340 BLAKE2B 613da06dda9e4b86db5a4d616a0a0afee98c907c3c6b352eed3d9e500fc5739e62eb4f6fc32ff02579c6a6de9bd49fcd2c8bd8b2d158a5050cbaa82118d61ef0 SHA512 88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad -DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90 -DIST xen-4.14.0.tar.gz 39950576 BLAKE2B db4c3e79cfdfb10260d0d14d9d28e8c8bd9bf23f42aee743acf8f560bf4cdb96a425c0df887c70f9755f62680be24bfbe0149e52a4cb843ae83090cd9d6afc71 SHA512 ebce47a2f754955d8517123d69f62006634d97620fbbe3784869a0667466e586a249f57ffaf7846d5bcb45d69377cde43354c82c233fbb5407e55653b9a33ac0 -DIST zlib-1.2.3.tar.gz 496597 BLAKE2B 603020b70cd52b83e48bde420b86e2acfd29d69bf7476eecbeeb07d1b8bcab703d2cbd3eab77772990bddb8c268f13594592ce985798d49e2d6ba25104d49f22 SHA512 021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e diff --git a/app-emulation/xen-pvgrub/files/newlib-implicits.patch b/app-emulation/xen-pvgrub/files/newlib-implicits.patch deleted file mode 100644 index 73c04931b31d..000000000000 --- a/app-emulation/xen-pvgrub/files/newlib-implicits.patch +++ /dev/null @@ -1,149 +0,0 @@ -diff -ur newlib-1.16.0.orig/newlib/libc/stdlib/wcstoull.c newlib-1.16.0/newlib/libc/stdlib/wcstoull.c ---- newlib/libc/stdlib/wcstoull.c 2007-07-07 04:03:28.000000000 +0800 -+++ newlib/libc/stdlib/wcstoull.c 2012-12-02 14:19:40.905136553 +0800 -@@ -124,7 +124,7 @@ - #include <errno.h> - #include <stdlib.h> - #include <reent.h> -- -+#include <wchar.h> - #ifndef _REENT_ONLY - - unsigned long long -diff -ur newlib-1.16.0.orig/newlib/doc/makedoc.c -newlib-1.16.0/newlib/doc/makedoc.c ---- newlib/doc/makedoc.c 2007-01-03 01:59:59.000000000 +0900 -+++ newlib/doc/makedoc.c 2012-12-02 16:53:42.700289294 +0800 -@@ -39,7 +39,7 @@ - #include <stdio.h> - #include <stdlib.h> - #include <ctype.h> -- -+#include <string.h> - #define DEF_SIZE 5000 - #define STACK 50 - -diff -ur newlib-1.16.0.orig/newlib/libc/reent/lseek64r.c newlib-1.16.0/newlib/libc/reent/lseek64r.c ---- newlib/libc/reent/lseek64r.c 2003-06-04 03:48:07.000000000 +0800 -+++ newlib/libc/reent/lseek64r.c 2012-12-02 18:29:45.435760985 +0800 -@@ -1,8 +1,8 @@ - /* Reentrant versions of lseek system call. */ - --#include <reent.h> -+#include "../include/reent.h" - #include <unistd.h> --#include <_syslist.h> -+#include "../include/_syslist.h" - - /* Some targets provides their own versions of this functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ -diff -ur newlib-1.16.0.orig/newlib/libc/stdio64/fseeko64.c newlib-1.16.0/newlib/libc/stdio64/fseeko64.c ---- newlib/libc/stdio64/fseeko64.c 2007-07-14 04:37:53.000000000 +0800 -+++ newlib/libc/stdio64/fseeko64.c 2012-12-02 18:26:29.955778906 +0800 -@@ -119,7 +119,7 @@ - ptr->_errno = EOVERFLOW; - return EOF; - } -- return (_off64_t) _fseeko_r (ptr, fp, offset, whence); -+ return (_off64_t) _fseeko64_r (ptr, fp, offset, whence); - } - - /* Make sure stdio is set up. */ - -diff -ur newlib-1.16.0.orig/newlib/libc/reent/fstat64r.c newlib-1.16.0/newlib/libc/reent/fstat64r.c ---- newlib/libc/reent/fstat64r.c 2012-12-03 13:17:26.569703981 +0800 -+++ newlib/libc/reent/fstat64r.c 2003-06-04 03:48:07.000000000 +0800 -@@ -1,10 +1,10 @@ - /* Reentrant versions of fstat system call. This implementation just - calls the fstat system call. */ - --#include <reent.h> -+#include "../include/reent.h"> - #include <unistd.h> - #include <sys/stat.h> --#include <_syslist.h> -+#include "../include/_syslist.h" - - #ifdef __LARGE64_FILES - -diff -ur newlib-1.16.0.orig/libgloss/i386/cygmon-gmon.c newlib-1.16.0/libgloss/i386/cygmon-gmon.c ---- libgloss/i386/cygmon-gmon.c 2002-10-26 03:18:46.000000000 +0800 -+++ libgloss/i386/cygmon-gmon.c 2012-12-03 14:38:41.454257066 +0800 -@@ -68,6 +68,9 @@ - - #include "cygmon-gmon.h" - -+#include <unistd.h> -+#include <stdlib.h> -+#include <strings.h> - /* - * froms is actually a bunch of unsigned shorts indexing tos - */ -@@ -78,6 +78,8 @@ - static char *s_lowpc = 0; - static char *s_highpc = 0; - static unsigned long s_textsize = 0; -+extern void profil_write(int, char*, int); -+extern int moncontrol (int); - - static int ssiz; - static char *sbuf; -diff -ur newlib-1.16.0.orig/newlib/libc/include/_syslist.h -newlib-1.16.0/newlib/libc/include/_syslist.h ---- newlib/libc/include/_syslist.h 2005-08-23 05:13:35.000000000 +0800 -+++ newlib/libc/include/_syslist.h 2012-12-03 17:20:03.092369483 +0800 -@@ -2,6 +2,7 @@ - and only provide C names, so that we end up in violation of ANSI */ - #ifndef __SYSLIST_H - #define __SYSLIST_H -+#include <sys/types.h> - - #ifdef MISSING_SYSCALL_NAMES - #define _close close - -#diff -ur newlib-1.16.0.orig/newlib/libc/Makefile.in newlib-1.16.0/newlib/libc/Makefile.in -#--- newlib/libc/Makefile.in 2007-05-25 01:33:30.000000000 +0800 -#+++ newlib/libc/Makefile.in 2012-12-03 21:52:05.621873084 +0800 -diff -ur newlib-1.16.0.orig/newlib/libc/stdio64/ftello64.c newlib-1.16.0/newlib/libc/stdio64/ftello64.c ---- newlib/libc/stdio64/ftello64.c 2007-07-14 04:37:53.000000000 +0800 -+++ newlib/libc/stdio64/ftello64.c 2012-12-04 18:34:46.491509484 +0800 -@@ -93,7 +93,7 @@ - - /* Only do 64-bit tell on large file. */ - if (!(fp->_flags & __SL64)) -- return (_off64_t) _ftello_r (ptr, fp); -+ return (_off64_t) _ftello64_r (ptr, fp); - - /* Ensure stdio is set up. */ - -diff -ur newlib-1.16.0.orig/newlib/libc/reent/open64r.c newlib-1.16.0/newlib/libc/reent/open64r.c ---- newlib/libc/reent/open64r.c 2002-08-27 02:56:06.000000000 +0800 -+++ newlib/libc/reent/open64r.c 2012-12-04 20:06:10.044006769 +0800 -@@ -1,8 +1,8 @@ - /* Reentrant versions of open system call. */ - --#include <reent.h> -+#include "../include/reent.h"> - #include <unistd.h> --#include <fcntl.h> -+#include <sys/_default_fcntl.h> - #include <_syslist.h> - - #ifdef __LARGE64_FILES -diff -ur newlib-1.16.0.orig/newlib/libc/reent/signalr.c newlib-1.16.0/newlib/libc/reent/signalr.c ---- newlib/libc/reent/signalr.c 2012-12-05 07:33:25.623393126 +0800 -+++ newlib/libc/reent/signalr.c 2012-12-05 07:34:03.943389613 +0800 -@@ -1,10 +1,10 @@ - /* Reentrant versions of syscalls need to support signal/raise. - These implementations just call the usual system calls. */ - --#include <reent.h> -+#include "../include/reent.h" - #include <signal.h> - #include <unistd.h> --#include <_syslist.h> -+#include "../include/_syslist.h" - - /* Some targets provides their own versions of these functions. Those - targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ - diff --git a/app-emulation/xen-pvgrub/files/xen-4.10-externals.patch b/app-emulation/xen-pvgrub/files/xen-4.10-externals.patch deleted file mode 100644 index b206144e304e..000000000000 --- a/app-emulation/xen-pvgrub/files/xen-4.10-externals.patch +++ /dev/null @@ -1,74 +0,0 @@ ---- a/stubdom/Makefile 2013-07-09 18:46:56.000000000 +0800 -+++ b/stubdom/Makefile 2013-07-21 16:07:08.094663570 +0800 -@@ -68,12 +68,12 @@ - ############## - - newlib-$(NEWLIB_VERSION).tar.gz: -- $(FETCHER) $@ $(NEWLIB_URL)/$@ - - newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz - tar xzf $< - patch -d $@ -p0 < newlib.patch - patch -d $@ -p0 < newlib-chk.patch -+ patch -d $@ -p0 < newlib-implicits.patch - patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch - find $@ -type f | xargs perl -i.bak \ - -pe 's/\b_(tzname|daylight|timezone)\b/$$1/g' -@@ -85,7 +85,7 @@ - $(NEWLIB_STAMPFILE): mk-headers-$(XEN_TARGET_ARCH) newlib-$(NEWLIB_VERSION) - mkdir -p newlib-$(XEN_TARGET_ARCH) - ( cd newlib-$(XEN_TARGET_ARCH) && \ -- CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \ -+ CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) LDFLAGS= RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \ - $(MAKE) DESTDIR= && \ - $(MAKE) DESTDIR= install ) - -@@ -94,7 +94,6 @@ - ############ - - zlib-$(ZLIB_VERSION).tar.gz: -- $(FETCHER) $@ $(ZLIB_URL)/$@ - - zlib-$(XEN_TARGET_ARCH): zlib-$(ZLIB_VERSION).tar.gz - tar xzf $< -@@ -105,7 +104,7 @@ - cross-zlib: $(ZLIB_STAMPFILE) - $(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE) - ( cd $< && \ -- CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \ -+ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC="$(CC)" ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \ - $(MAKE) DESTDIR= libz.a && \ - $(MAKE) DESTDIR= install ) - -@@ -114,7 +113,6 @@ - ############## - - pciutils-$(LIBPCI_VERSION).tar.bz2: -- $(FETCHER) $@ $(LIBPCI_URL)/$@ - - pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2 - tar xjf $< -@@ -142,7 +140,6 @@ - ###### - - lwip-$(LWIP_VERSION).tar.gz: -- $(FETCHER) $@ $(LWIP_URL)/$@ - - lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz - tar xzf $< -@@ -180,7 +177,6 @@ - # cross-polarssl - ############# - polarssl-$(POLARSSL_VERSION)-gpl.tgz: -- $(FETCHER) $@ $(POLARSSL_URL)/$@ - - polarssl-$(XEN_TARGET_ARCH): polarssl-$(POLARSSL_VERSION)-gpl.tgz - tar xzf $< -@@ -385,7 +382,6 @@ - ###### - - grub-$(GRUB_VERSION).tar.gz: -- $(FETCHER) $@ $(GRUB_URL)/$@ - - grub-upstream: grub-$(GRUB_VERSION).tar.gz - tar xzf $< diff --git a/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch b/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch deleted file mode 100644 index aebc1ee5926e..000000000000 --- a/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/tools/firmware/vgabios/Makefile b/tools/firmware/vgabios/Makefile -index 3284812..ef242b3 100644 ---- a/tools/firmware/vgabios/Makefile -+++ b/tools/firmware/vgabios/Makefile -@@ -30,7 +30,7 @@ distclean: clean - - .PHONY: release - release: -- VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" make bios cirrus-bios -+ VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" $(MAKE) bios cirrus-bios - /bin/rm -f *.o *.s *.ld86 \ - temp.awk.* vgabios.*.orig _vgabios_.*.c core *.bak .#* - cp VGABIOS-lgpl-latest.bin ../$(RELEASE).bin diff --git a/app-emulation/xen-pvgrub/metadata.xml b/app-emulation/xen-pvgrub/metadata.xml deleted file mode 100644 index fd12a2726425..000000000000 --- a/app-emulation/xen-pvgrub/metadata.xml +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> -<pkgmetadata> - <maintainer type="person"> - <email>hydrapolic@gmail.com</email> - <name>Tomáš Mózes</name> - </maintainer> - <maintainer type="project"> - <email>proxy-maint@gentoo.org</email> - <name>Proxy Maintainers</name> - </maintainer> - <maintainer type="project"> - <email>xen@gentoo.org</email> - <name>Gentoo Xen Project</name> - </maintainer> -</pkgmetadata> diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild deleted file mode 100644 index d901f4638e9b..000000000000 --- a/app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) -PYTHON_REQ_USE='xml,threads(+)' - -inherit flag-o-matic multilib python-single-r1 toolchain-funcs - -MY_PV=${PV/_/-} - -XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles" -LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci -GRUB_URL=mirror://gnu-alpha/grub - -UPSTREAM_VER= -[[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz" - -SRC_URI=" - https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz - $GRUB_URL/grub-0.97.tar.gz - $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz - $LIBPCI_URL/pciutils-2.2.9.tar.bz2 - $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz - $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz - $XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz - ${UPSTREAM_PATCHSET_URI}" - -S="${WORKDIR}/xen-${MY_PV}" - -DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem" -HOMEPAGE="https://www.xenproject.org" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="" - -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -DEPEND="sys-devel/gettext - sys-devel/bin86 - sys-apps/texinfo - x11-libs/pixman" - -RDEPEND="${PYTHON_DEPS} - >=app-emulation/xen-tools-${PV}" - -# python2 only -RESTRICT="test" - -pkg_setup() { - python-single-r1_pkg_setup -} - -retar-externals() { - # Purely to unclutter src_prepare - local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz" - - # eapply can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative - sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \ - -i "${WORKDIR}"/zlib-1.2.3/configure || die - sed -e 's:^AR=ar rc:AR=ar:' \ - -e s':$(AR) $@:$(AR) rc $@:' \ - -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in} || die - einfo "zlib Makefile edited" - - cd "${WORKDIR}" || die - tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz || die - tar czp grub-0.97 -f grub-0.97.tar.gz || die - tar czp lwip -f lwip-1.3.0.tar.gz || die - tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz || die - tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz || die - mv $set "${S}"/stubdom/ || die - einfo "tarballs moved to source" -} - -src_prepare() { - # Upstream's patchset - if [[ -n ${UPSTREAM_VER} ]]; then - einfo "Try to apply Xen Upstream patch set" - EPATCH_SUFFIX="patch" \ - EPATCH_FORCE="yes" \ - EPATCH_OPTS="-p1" \ - eapply "${WORKDIR}"/patches-upstream - fi - - # Patch the unmergeable newlib, fix most of the leftover gcc QA issues - cp "${FILESDIR}"/newlib-implicits.patch stubdom || die - - # Patch stubdom/Makefile to patch insource newlib & prevent internal downloading - eapply "${FILESDIR}"/${PN/-pvgrub/}-4.10-externals.patch - - # fix jobserver in Makefile - eapply "${FILESDIR}"/${PN}-4.8-jserver.patch - - #Substitute for internal downloading. pciutils copied only due to the only .bz2 - cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom" - retar-externals || die "re-tar procedure failed" - - default -} - -src_configure() { - local myconf="--prefix=${PREFIX}/usr \ - --libdir=${PREFIX}/usr/$(get_libdir) \ - --libexecdir=${PREFIX}/usr/libexec \ - --disable-werror \ - --disable-xen" - - econf ${myconf} -} - -src_compile() { - unset CFLAGS - if test-flag-CC -fno-strict-overflow; then - append-flags -fno-strict-overflow - fi - - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/libs - - if use x86; then - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \ - XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub - elif use amd64; then - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \ - XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub - if has_multilib_profile; then - multilib_toolchain_setup x86 - emake CC="$(tc-getCC)" AR="$(tc-getAR)" \ - XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub - fi - fi -} - -src_install() { - if use x86; then - emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub - fi - if use amd64; then - emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub - if has_multilib_profile; then - emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub - fi - fi -} - -pkg_postinst() { - elog "Official Xen Guide and the offical wiki page:" - elog "https://wiki.gentoo.org/wiki/Xen" - elog "https://wiki.xen.org/wiki/Main_Page" -} diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild deleted file mode 100644 index c3980e0437ec..000000000000 --- a/app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) -PYTHON_REQ_USE='xml,threads(+)' - -inherit flag-o-matic multilib python-single-r1 toolchain-funcs - -MY_PV=${PV/_/-} - -XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles" -LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci -GRUB_URL=mirror://gnu-alpha/grub - -UPSTREAM_VER= -[[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz" - -SRC_URI=" - https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz - $GRUB_URL/grub-0.97.tar.gz - $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz - $LIBPCI_URL/pciutils-2.2.9.tar.bz2 - $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz - $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz - $XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz - ${UPSTREAM_PATCHSET_URI}" - -S="${WORKDIR}/xen-${MY_PV}" - -DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem" -HOMEPAGE="https://www.xenproject.org" -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="" - -REQUIRED_USE="${PYTHON_REQUIRED_USE}" - -DEPEND="sys-devel/gettext - sys-devel/bin86 - sys-apps/texinfo - x11-libs/pixman" - -RDEPEND="${PYTHON_DEPS} - >=app-emulation/xen-tools-${PV}" - -# python2 only -RESTRICT="test" - -pkg_setup() { - python-single-r1_pkg_setup -} - -retar-externals() { - # Purely to unclutter src_prepare - local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz" - - # eapply can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative - sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \ - -i "${WORKDIR}"/zlib-1.2.3/configure || die - sed -e 's:^AR=ar rc:AR=ar:' \ - -e s':$(AR) $@:$(AR) rc $@:' \ - -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in} || die - einfo "zlib Makefile edited" - - cd "${WORKDIR}" || die - tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz || die - tar czp grub-0.97 -f grub-0.97.tar.gz || die - tar czp lwip -f lwip-1.3.0.tar.gz || die - tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz || die - tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz || die - mv $set "${S}"/stubdom/ || die - einfo "tarballs moved to source" -} - -src_prepare() { - # Upstream's patchset - if [[ -n ${UPSTREAM_VER} ]]; then - einfo "Try to apply Xen Upstream patch set" - EPATCH_SUFFIX="patch" \ - EPATCH_FORCE="yes" \ - EPATCH_OPTS="-p1" \ - eapply "${WORKDIR}"/patches-upstream - fi - - # Patch the unmergeable newlib, fix most of the leftover gcc QA issues - cp "${FILESDIR}"/newlib-implicits.patch stubdom || die - - # Patch stubdom/Makefile to patch insource newlib & prevent internal downloading - eapply "${FILESDIR}"/${PN/-pvgrub/}-4.10-externals.patch - - # fix jobserver in Makefile - eapply "${FILESDIR}"/${PN}-4.8-jserver.patch - - #Substitute for internal downloading. pciutils copied only due to the only .bz2 - cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom" - retar-externals || die "re-tar procedure failed" - - default -} - -src_configure() { - local myconf="--prefix=${PREFIX}/usr \ - --libdir=${PREFIX}/usr/$(get_libdir) \ - --libexecdir=${PREFIX}/usr/libexec \ - --disable-werror \ - --disable-xen" - - econf ${myconf} -} - -src_compile() { - unset CFLAGS - if test-flag-CC -fno-strict-overflow; then - append-flags -fno-strict-overflow - fi - - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/libs - - if use x86; then - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \ - XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub - elif use amd64; then - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \ - XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub - if has_multilib_profile; then - multilib_toolchain_setup x86 - emake CC="$(tc-getCC)" AR="$(tc-getAR)" \ - XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub - fi - fi -} - -src_install() { - if use x86; then - emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub - fi - if use amd64; then - emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub - if has_multilib_profile; then - emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub - fi - fi -} - -pkg_postinst() { - elog "Official Xen Guide and the offical wiki page:" - elog "https://wiki.gentoo.org/wiki/Xen" - elog "https://wiki.xen.org/wiki/Main_Page" -} diff --git a/app-emulation/xen-tools/Manifest b/app-emulation/xen-tools/Manifest index d697a2518d4b..f5c6218ff757 100644 --- a/app-emulation/xen-tools/Manifest +++ b/app-emulation/xen-tools/Manifest @@ -1,14 +1,10 @@ -DIST OpenSSL_1_1_1b.tar.gz 8384386 BLAKE2B f720ee2bb1ba9a104334cc39988942b5f18e9df54ec114969983e013d1d5e766e2605237281dfbd7218523b0f64ed465238d2da995791c4a789cb5e20b2d9be3 SHA512 f09f07226c1ea7d903d65572f6c63e1dd8afbbe4789438572ccae3c31445c30cf353dbf2e7637ab9d1042a2dc221cacdbed6167e881c1a1ad40163f751a33b28 +DIST OpenSSL_1_1_1t.tar.gz 10061233 BLAKE2B aef89c338644230305bcc75dbc13d6799a04ed8c712b6aed07a782703031e977c3e300924f26e5854d0b89ecf39d2d516a50838167754e8f63322fba51de9478 SHA512 f28a323fd78be0b16ae6db9a8f163e64c74410e12ddd1a9836dfdda34c264112184f4e22583c84b6fa56716e5aaac9cb860cb183bd3d0cb064091eea1e21815e DIST berkeley-softfloat-b64af41c3276f97f0e181920400ee056b9c88037.tar.gz 148741 BLAKE2B 72014022926b636147e202d74c42df2ce9cfed00b91c275d5b2e0afbc5c68765445cbe7ac6389d7c2512bd1d45b0e16e999936552d09bbc733ab66c92968bd31 SHA512 8420c29faa7ff57e06d6758b03e81ca0630c59946bc031e8611f1449e23634cf901b502161f2c1423c0cff949b5481445e36a3aa53dc885b61ca2c673b3ba567 -DIST edk2-20d2e5a125e34fc8501026613a71549b2a1a3e54.tar.gz 14567879 BLAKE2B 381d47674afcc7b611edee91531694a70e6799c2b351d81632777fb382a8cce968e44a1f3e17c4852db28e81624e2ec1ebb98ed121c2a6cc3f2982939eb546a5 SHA512 1a4b4d8eacd495e705fea924b16640d6814fba7ec25a3153222eb981d43b0fd9b16b54baf8feecf99cd89b10f7735ff4b075660453d0fc2722fe4608353c8aeb -DIST ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz 3810726 BLAKE2B b95266ec7fcee5c27065ba999b023ded9eb42a3690555e626911493f1dc995927fa67071bdc6432b3995df82134f8c49ea0d72eaf407f455dd1e2675d5b8d844 SHA512 8120696ba6d79fd9189664deed9b0489825d8d1edf7b931023b3979b7b9f82248e5b808c4517036cd40a85442ddf51a8dcad3b05d7f3c3cc6650654d53da4050 -DIST seabios-1.12.1.tar.gz 613450 BLAKE2B cb926b650c41a9962db407945cb5b6558079b061bd61f32ea56aedf0d37a00d10ad4434acbe717ffbc0dd1d1c0767304af8e640a53b0fc3784969dfa1590f681 SHA512 58755ce842adcb99c0f2f3ebbf9ec6d4a5072753966ab46805a96db1570847b109a90e6e03d61f9088ef877ca8ba96a8006777dc38ec434fce6b487f6c1f91d0 -DIST seabios-1.13.0.tar.gz 620952 BLAKE2B 460a7dd2b2775b981bbd890ed0a50fe905794c68b0b895799667dd1378bb84125712330c2f6945112709d42cfb7b01196c7fff99051e44b6211d47d19531cfae SHA512 7f158badf7deecc2998eab2a08f3615dfe5a7c0a51323f7b4568a4d1280935bc32bb466c8226d87d2ca7e13f9f117ff0092befcc0699bc31c5018e84754e8393 -DIST xen-4.13.1-upstream-patches-2.tar.xz 53744 BLAKE2B 769b5b8022f7db66f677d8107c6473606376718bffeac7eba09c4270f4005811f472fb9ed2a2804260e0486228edbadfcf8f81bf1dae6d68df37da213d281390 SHA512 b07c865b96c6f48b9d0b4e4c2f3ec19f4dc44884f4024e440a3e537f594f9f5edd6edf805bdefc82e5f1f2520f35f940b64c158972cbf5bfdc8fb2ca7a1b0ac1 -DIST xen-4.13.1-upstream-patches-3.tar.xz 87056 BLAKE2B 01d7133b8f7e3c9a42b9771dcb7739777f79f229941114cce70ba2897dd52bf53f08de35602a0b40a120fc155c274dbf91e107856f4afdae2c4f7b4bc0a67cdd SHA512 d67e9ddfbf27dc5a23a77679b1b2524a49c2aec3ff9eb3472f9e075893d87401f8e99707b0652744eb4af7a3ed9a815c3925de49995bcd7c82d97c13a69b5309 -DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90 -DIST xen-4.14.0-upstream-patches-1.tar.xz 45360 BLAKE2B 0f72a2cc3d18557b86a2a83f97e4141be46a20e3ba59ccc881a34a4408988eba9827e3b927bc07aba9678123d783303e7d47d789e57323a7f6691d718c019dc8 SHA512 3d5093e4367d27e7f6e8d4cc31841a5c80cc3fb870d6cb32131d064e16cbb559e9a783c70eec1ce13c960b3e2a8d5e23e18d26b936bc418b434df3bb801d3e4f -DIST xen-4.14.0.tar.gz 39950576 BLAKE2B db4c3e79cfdfb10260d0d14d9d28e8c8bd9bf23f42aee743acf8f560bf4cdb96a425c0df887c70f9755f62680be24bfbe0149e52a4cb843ae83090cd9d6afc71 SHA512 ebce47a2f754955d8517123d69f62006634d97620fbbe3784869a0667466e586a249f57ffaf7846d5bcb45d69377cde43354c82c233fbb5407e55653b9a33ac0 -DIST xen-gentoo-patches-21.tar.xz 18280 BLAKE2B 95446da72fc16cb82e4e51df8796c64db05a30894a351a98dbd6700ce354c34956ca09a1af98125a4e56c337936e8fae296d806519b8afa23a82b078aa0db8f1 SHA512 3cffac162606a09b10b47dca604f167897e6ac8d153411d3464ef29a7a4d46ac5b92340884cb21279cb2d053b131f1ea5cb2111e3e9a21b3298b5ab3320ee34d -DIST xen-gentoo-patches-22.tar.xz 18764 BLAKE2B e0da49b39fbc6b689db47e40a4fbb4f6568644fe192b114cce01b0406cba4bf23339ad1bf39b972f895df004916827b6e774f97fc079aeb8ac436763efda5fc3 SHA512 5b7959af4ed30edd2526698ab60a86353e35d9dc48dc941b6df7659a7c4904260461e0decbd8d788542bd69384736f2175861d4943c3738618d20788b19ea9b1 -DIST xen-security-patches-28.tar.xz 1580 BLAKE2B c304894801b37259508582fc6947e26c0b8665e982d91de86c16efd5eaecd6c9bb19570534642d39e81175fe58baccf576990a481f40f8848692d3465ad17a85 SHA512 b442b5568e76e0f2a5cfc91063515b96347f8b30f6101a81536b78edecc400861fd99281e1994bc6626bff28ece3df8f8306575c8abbb2cddaf3a6d3542c0b2f +DIST brotli-f4153a09f87cbb9c826d8fc12c74642bb2d879ea.tar.gz 512229 BLAKE2B cd86cc2cc7eefad24f87cda8006409bf764922b5f23ccfb951e7a41214b12004ce532b11f94f5fb858b3bf71f9abf8ef17ba219fa96bd5be23b51873afad0fd5 SHA512 7f48e794e738b31c2005e7cef6d8c0cc0d543f1cd8c137ae8ba14602cac2873de6299a3f32ad52be869f513e7548341353ed049609daef1063975694d9a9b80b +DIST edk2-b16284e2a0011489f6e16dfcc6af7623c3cbaf0b.tar.gz 15245558 BLAKE2B 33876c08040fa876b4e3741fe859d113654013c948fa8a8b391955226e6215bbbe26fc484e56ba5b399d2c4e4d198900f2de42eccfbac6901e01cd73a80e803b SHA512 7d71ec3d98c652b86194607dbcab767160c708991f49f69eda1f5d844ced0c4842e849d19bf99ea09b1db523b91ced1e5552a4ddcea32b94b9db6b8f6f5c5931 +DIST ipxe-git-1d1cf74a5e58811822bee4b3da3cff7282fcdfca.tar.gz 4074878 BLAKE2B d335d1e69bf736c53622e34e5ebeea77e294637f39bd5e2704f13b8e334b684130c259bd48b832050eebfabfc898f9786979a4c00903145fdb347a497b399f31 SHA512 e27644cbb030c43e2841058003bedea6deb979ba71591f967e01312527ed869bb863f9a03fc7b5a266752433d30164929ea1b935953a245600ad713c9fb25cb5 +DIST seabios-1.16.0.tar.gz 635419 BLAKE2B b645f20bae341d56ce4fc4a7044446050d8490c6c136377f6dccf02c88100b0644bc13d210b4a517a8be6002d5671b0fba77120a2aca3a9bafbad5e88d037e40 SHA512 9daefcfb1c9edda4462a4b080c9bac552154d577ae19703a914928e43005e7a52edd86869c6507e94a7f0c61ce8b3e6f5dea38cd5146628cb138a130947c522f +DIST xen-4.17.3.tar.gz 46505735 BLAKE2B f7a783d951d3e31391aca2b779b9d11440dc28b0756739f7733cd7d2f160de54a018c00dce5d2a6c55a6494c2151a31a64bbeddefbed34eff179463f2e762d93 SHA512 56ead90af00b4c1aa452b5edba980a2873e4c76e8c518220a88089a2771cd76fe2478e15a41abf5d247e4bc5af8415d53614dff7eb028ced80701c1a1263f91f +DIST xen-4.17.4.tar.gz 46527369 BLAKE2B 2fcd1248d75157b6455727b29ecc3a4e5941eb187d645b35b6cf48a23fdfae11e810c55a1a7c0396c6a23dc977f22b8fd06ee9b91a1edc3a7ba8561023e07cfc SHA512 50dc2efd26e48131afdbc8efb1ca90154a84fe5fba5a6bc81d9801a3c13aebea91c8211872b5c69ce2773644f2c935c31cc56584a05b10b81e8728282d89eb84 +DIST xen-gentoo-patches-4.17.0-gentoo-patchset-2.tar.bz2 4001 BLAKE2B 7afce426759952e202a1dd819fe0a23108072bf9552ba14a0bd787a96ffe5e7a36f37e03dad8db9c46f5731acbc122c258eef6d517816aad9c8db1ca64700d19 SHA512 bcb1479f9ff5e194a4e452da9d0479febc2bcd465b4be69bb8f30e2e6b858fb77a71216dcb3e74dfb65e7ca6513742c294cd6b5eaa5ce82d0b122a00f1cbc450 +DIST xen-upstream-patches-4.17.4-pre-patchset-1.tar.bz2 77410 BLAKE2B 1c00d613f9d12d81a284455d9099c031ba3ea7066508c75ad6f7e13330a09e2eb4e74bf5bc54fed9c4f90e18856cc01ff0e4ab4721d36388519eb40f99be42d8 SHA512 7a56cb0ac9b59043ffbc891819cbe54c9efe411e2e67eebc212a3b519ca60a37a377dd21b0ba851d6828cf268781983b082c6fecee0f0156501b5c447050789a diff --git a/app-emulation/xen-tools/files/README.gentoo b/app-emulation/xen-tools/files/README.gentoo new file mode 100644 index 000000000000..e0c84a5f3359 --- /dev/null +++ b/app-emulation/xen-tools/files/README.gentoo @@ -0,0 +1,16 @@ +Official Xen Guide and the offical wiki page: +- https://wiki.gentoo.org/wiki/Xen +- https://wiki.xen.org/wiki/Main_Page + + +If you use OpenRC: +It is recommended to utilise the xencommons script to configure the system at +boot time. + + +If you use QEMU: +The qemu-bridge-helper is renamed to the xen-bridge-helper in the in +source build of qemu. This allows for app-emulation/qemu to be emerged +concurrently with the qemu capable xen. It is up to the user to +distinguish between and utilise the qemu-bridge-helper and the +xen-bridge-helper. File bugs of any issues that arise. diff --git a/app-emulation/xen-tools/files/gentoo-patches.conf b/app-emulation/xen-tools/files/gentoo-patches.conf deleted file mode 100644 index 0a0bf8aa468d..000000000000 --- a/app-emulation/xen-tools/files/gentoo-patches.conf +++ /dev/null @@ -1,84 +0,0 @@ -# Bug 496708 -_gx045=" xen-tools-4.10.1-unbundle-ipxe.patch" -_gx054=" xen-tools-4.12.0-unbundle-ipxe.patch" - -# Bug 379537 -_gx017=" fix-gold-ld.patch" - -# Bug 477676 -_gx038=" xen-tools-4.8-ar-cc.patch" -_gx039=" xen-tools-4.14-ar-cc.patch" - -# Prevent file collision with qemu package Bug 478064 -_gx043=" xen-4.10-qemu-bridge.patch" -_gx051=" xen-4.12-qemu-bridge.patch" -_gx052=" xen-tools-4.14-qemu-bridge.patch" -#mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die - -# Fix po file collision with app-emulation/qemu, while USE=qemu is enabled, Bug 508302 -_gx027=" xen-tools-4-qemu-fix-po-collision.patch" - -# Fix build failure with ncurses[tinfo], bug 526526 -_gx028=" xen-tools-4.4.1-tinfo.patch" - -# Don't download ovmf, use pre-released -_gx029=" xen-tools-4-anti-ovmf-download.patch" - -# increase stack to fix xenqemu err -# https://lists.gnu.org/archive/html/qemu-devel/2016-09/msg03961.html -_gx037=" xen-tools-4.6-increase-stack-size.patch" - -#Fix missing makedev(), major(), minor() -_gx042=" xen-tools-4.8.2-makedev.patch" - -# Disable failing shim -_gx046=" xen-tools-4.10.1-shim.patch" -_gx050=" xen-tools-4.12.0-shim.patch" - -# Fix building with gcc 8, bug #657388 -_gx048=" xen-tools-4.11.1-gcc8.patch" -_gx053=" xen-tools-4.12.0-gcc8.patch" - -# Fix building with gcc 9, bug #689082 -_gx055=" xen-tools-4.11.2-gcc9.patch" - -# Fix pdf document generation, bug #650396 -_gx049=" xen-tools-4.10.1-pdfdoc.patch" - -# Add xenstat python-binding, Gento Bug #711066 -_gx056=" xen-tools-4.12.2-libxenstat-makefile.patch" - -# Fix building with gcc 10, bug #722930 -_gx060=" xen-tools-4.13.0-gcc10.patch" - -# xen-tools-4.12.3 patches set -_gpv_xen_tools_4123_0=" -${_gx038} -${_gx027} -${_gx028} ${_gx029} -${_gx037} ${_gx042} -${_gx053} ${_gx050} ${_gx051} -${_gx054} ${_gx056} -${_gx060} -" - -# xen-tools-4.13.1 patches set -_gpv_xen_tools_4131_0=" -${_gx038} -${_gx027} -${_gx028} ${_gx029} -${_gx037} -${_gx053} ${_gx050} ${_gx051} -${_gx054} ${_gx056} -${_gx060} -" - -# xen-tools-4.14.0 patches set -_gpv_xen_tools_4140_0=" -${_gx039} -${_gx027} -${_gx028} ${_gx029} -${_gx037} -${_gx053} ${_gx050} ${_gx052} -${_gx054} ${_gx056} -" diff --git a/app-emulation/xen-tools/files/xenstored.initd-r1 b/app-emulation/xen-tools/files/xenstored.initd-r1 index 88d3ad7ba890..0c420851937e 100644 --- a/app-emulation/xen-tools/files/xenstored.initd-r1 +++ b/app-emulation/xen-tools/files/xenstored.initd-r1 @@ -3,7 +3,7 @@ # Distributed under the terms of the GNU General Public License v2 depend() { - before xendomains xend sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp + before xendomains xend sshd ntp-client ntpd nfs rsyncd portmap dhcp need xencommons } diff --git a/app-emulation/xen-tools/metadata.xml b/app-emulation/xen-tools/metadata.xml index dd590bd080fa..fb98e4a01835 100644 --- a/app-emulation/xen-tools/metadata.xml +++ b/app-emulation/xen-tools/metadata.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> + <maintainer type="person" proxied="yes"> <email>hydrapolic@gmail.com</email> <name>Tomáš Mózes</name> </maintainer> - <maintainer type="project"> + <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> @@ -15,10 +15,8 @@ </maintainer> <use> <flag name="api">Build the C libxenapi bindings</flag> - <flag name="flask">Enable the Flask XSM module from NSA</flag> <flag name="hvm">Enable support for hardware based virtualization (VT-x,AMD-v)</flag> <flag name="ipxe">Enable ipxe support</flag> - <flag name="ocaml">Enable support for the ocaml language</flag> <flag name="ovmf">Enable support to boot UEFI guest vm, needed by hvm</flag> <flag name="pygrub">Install the pygrub boot loader</flag> <flag name="qemu">Enable IOEMU support via the use of qemu-dm</flag> diff --git a/app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild b/app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild deleted file mode 100644 index 6e50b8d46e37..000000000000 --- a/app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild +++ /dev/null @@ -1,511 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) -PYTHON_REQ_USE='ncurses,xml,threads(+)' - -inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs - -MY_PV=${PV/_/-} - -if [[ $PV == *9999 ]]; then - inherit git-r3 - REPO="xen.git" - EGIT_REPO_URI="git://xenbits.xen.org/${REPO}" - S="${WORKDIR}/${REPO}" -else - KEYWORDS="~amd64 ~arm ~arm64 ~x86" - UPSTREAM_VER=1 - SECURITY_VER=28 - # xen-tools's gentoo patches tarball - GENTOO_VER=22 - # xen-tools's gentoo patches version which apply to this specific ebuild - GENTOO_GPV=0 - # xen-tools ovmf's patches - OVMF_VER= - - SEABIOS_VER="1.13.0" - EDK2_COMMIT="20d2e5a125e34fc8501026613a71549b2a1a3e54" - EDK2_OPENSSL_VERSION="1_1_1b" - EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037" - IPXE_COMMIT="1dd56dbd11082fb622c2ed21cfaced4f47d798a6" - - [[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz" - [[ -n ${SECURITY_VER} ]] && \ - SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-security-patches-${SECURITY_VER}.tar.xz" - [[ -n ${GENTOO_VER} ]] && \ - GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz" - [[ -n ${OVMF_VER} ]] && \ - OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz" - - SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz - https://github.com/qemu/seabios/archive/rel-${SEABIOS_VER}.tar.gz -> seabios-${SEABIOS_VER}.tar.gz - ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz ) - ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz - https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz - https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz - ${OVMF_PATCHSET_URI} ) - ${UPSTREAM_PATCHSET_URI} - ${SECURITY_PATCHSET_URI} - ${GENTOO_PATCHSET_URI}" - - S="${WORKDIR}/xen-${MY_PV}" -fi - -DESCRIPTION="Xen tools including QEMU and xl" -HOMEPAGE="https://www.xenproject.org" -DOCS=( README ) - -LICENSE="GPL-2" -SLOT="0/$(ver_cut 1-2)" -# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make -# >=dev-lang/ocaml-4 stable -# Masked in profiles/eapi-5-files instead -IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios" - -REQUIRED_USE=" - ${PYTHON_REQUIRED_USE} - ipxe? ( rombios ) - ovmf? ( hvm ) - pygrub? ( python ) - rombios? ( hvm ) - system-ipxe? ( rombios ) - ?? ( ipxe system-ipxe ) - ?? ( qemu system-qemu )" - -COMMON_DEPEND=" - sys-apps/pciutils - dev-libs/lzo:2 - dev-libs/glib:2 - dev-libs/yajl - dev-libs/libaio - dev-libs/libgcrypt:0 - sys-libs/zlib - ${PYTHON_DEPS} -" - -DEPEND="${COMMON_DEPEND} - >=sys-kernel/linux-headers-4.11 - $(python_gen_cond_dep ' - dev-python/lxml[${PYTHON_MULTI_USEDEP}] - pam? ( dev-python/pypam[${PYTHON_MULTI_USEDEP}] ) - ') - x86? ( sys-devel/dev86 - system-ipxe? ( sys-firmware/ipxe[qemu] ) - sys-power/iasl ) - api? ( dev-libs/libxml2 - net-misc/curl ) - - ovmf? ( - !arm? ( !arm64? ( dev-lang/nasm ) ) - $(python_gen_impl_dep sqlite) - ) - !amd64? ( >=sys-apps/dtc-1.4.0 ) - amd64? ( sys-power/iasl - system-seabios? ( sys-firmware/seabios ) - system-ipxe? ( sys-firmware/ipxe[qemu] ) - rombios? ( sys-devel/bin86 sys-devel/dev86 ) ) - dev-lang/perl - app-misc/pax-utils - doc? ( - app-text/ghostscript-gpl - app-text/pandoc - $(python_gen_cond_dep ' - dev-python/markdown[${PYTHON_MULTI_USEDEP}] - ') - dev-texlive/texlive-latexextra - media-gfx/transfig - ) - hvm? ( x11-base/xorg-proto ) - qemu? ( - app-arch/snappy:= - x11-libs/pixman - sdl? ( - media-libs/libsdl[X] - media-libs/libsdl2[X] - ) - ) - system-qemu? ( app-emulation/qemu[xen] ) - ocaml? ( dev-ml/findlib - >=dev-lang/ocaml-4 ) - python? ( >=dev-lang/swig-4.0.0 )" - -RDEPEND="${COMMON_DEPEND} - sys-apps/iproute2[-minimal] - net-misc/bridge-utils - screen? ( - app-misc/screen - app-admin/logrotate - )" - -# hvmloader is used to bootstrap a fully virtualized kernel -# Approved by QA team in bug #144032 -QA_WX_LOAD=" - usr/libexec/xen/boot/hvmloader - usr/share/qemu-xen/qemu/hppa-firmware.img - usr/share/qemu-xen/qemu/s390-ccw.img - usr/share/qemu-xen/qemu/u-boot.e500 -" - -QA_PREBUILT=" - usr/libexec/xen/bin/elf2dmp - usr/libexec/xen/bin/ivshmem-client - usr/libexec/xen/bin/ivshmem-server - usr/libexec/xen/bin/qemu-edid - usr/libexec/xen/bin/qemu-img - usr/libexec/xen/bin/qemu-io - usr/libexec/xen/bin/qemu-keymap - usr/libexec/xen/bin/qemu-nbd - usr/libexec/xen/bin/qemu-pr-helper - usr/libexec/xen/bin/qemu-system-i386 - usr/libexec/xen/bin/virtfs-proxy-helper - usr/libexec/xen/libexec/xen-bridge-helper - usr/share/qemu-xen/qemu/s390-ccw.img - usr/share/qemu-xen/qemu/s390-netboot.img - usr/share/qemu-xen/qemu/u-boot.e500 -" - -RESTRICT="test" - -pkg_setup() { - python_setup - export "CONFIG_LOMOUNT=y" - - #bug 522642, disable compile tools/tests - export "CONFIG_TESTS=n" - - if [[ -z ${XEN_TARGET_ARCH} ]] ; then - if use x86 && use amd64; then - die "Confusion! Both x86 and amd64 are set in your use flags!" - elif use x86; then - export XEN_TARGET_ARCH="x86_32" - elif use amd64 ; then - export XEN_TARGET_ARCH="x86_64" - elif use arm; then - export XEN_TARGET_ARCH="arm32" - elif use arm64; then - export XEN_TARGET_ARCH="arm64" - else - die "Unsupported architecture!" - fi - fi -} - -src_prepare() { - local i - - # Upstream's patchset - if [[ -n ${UPSTREAM_VER} ]]; then - einfo "Try to apply Xen Upstream patch set" - eapply "${WORKDIR}"/patches-upstream - fi - - # Security patchset - if [[ -n ${SECURITY_VER} ]]; then - einfo "Try to apply Xen Security patch set" - # apply main xen patches - # Two parallel systems, both work side by side - # Over time they may concdense into one. This will suffice for now - EPATCH_SUFFIX="patch" - EPATCH_FORCE="yes" - - source "${WORKDIR}"/patches-security/${PV}.conf || die - - for i in ${XEN_SECURITY_MAIN}; do - eapply "${WORKDIR}"/patches-security/xen/$i - done - - # apply qemu-xen/upstream patches - pushd "${S}"/tools/qemu-xen/ > /dev/null - for i in ${XEN_SECURITY_QEMUU}; do - eapply "${WORKDIR}"/patches-security/qemuu/$i - done - popd > /dev/null - - # apply qemu-traditional patches - pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null - for i in ${XEN_SECURITY_QEMUT}; do - eapply "${WORKDIR}"/patches-security/qemut/$i - done - popd > /dev/null - fi - - # move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err - mv ../seabios-rel-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die - pushd tools/firmware/ > /dev/null - ln -s seabios-dir-remote seabios-dir || die - popd > /dev/null - - # Gentoo's patchset - if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then - einfo "Try to apply Gentoo specific patch set" - source "${FILESDIR}"/gentoo-patches.conf || die - _gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV} - for i in ${!_gpv}; do - eapply "${WORKDIR}"/patches-gentoo/$i - done - fi - - # Ovmf's patchset - if use ovmf; then - if [[ -n ${OVMF_VER} ]];then - einfo "Try to apply Ovmf patch set" - pushd "${WORKDIR}"/edk2-*/ > /dev/null - eapply "${WORKDIR}"/patches-ovmf - popd > /dev/null - fi - mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die - rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die - rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die - mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die - mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die - cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die - fi - - # ipxe - if use ipxe; then - cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die - - # gcc 10 - cp "${WORKDIR}/patches-gentoo/xen-tools-4.13.0-ipxe-gcc10.patch" tools/firmware/etherboot/patches/ipxe-gcc10.patch || die - echo ipxe-gcc10.patch >> tools/firmware/etherboot/patches/series || die - fi - - # gcc 10 - # libxlu_pci.c:32:18: error: 'func' may be used uninitialized in this function - sed -e '/CFLAGS/s/Werror/Wno-error/g' \ - -i tools/libxl/Makefile || die - - mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die - - # Fix texi2html build error with new texi2html, qemu.doc.html - sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die - - use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die - sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \ - -i tools/firmware/Makefile || die - - # Drop .config, fixes to gcc-4.6 - sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" - - # drop flags - unset CFLAGS - unset LDFLAGS - unset ASFLAGS - unset CPPFLAGS - - if ! use pygrub; then - sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die - fi - - if ! use python; then - sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die - fi - - if ! use hvm; then - sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die - # Bug 351648 - elif ! use x86 && ! has x86 $(get_all_abis); then - mkdir -p "${WORKDIR}"/extra-headers/gnu || die - touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die - export CPATH="${WORKDIR}"/extra-headers - fi - - if use qemu; then - if use sdl; then - sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \ - tools/Makefile || die - else - sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \ - tools/qemu-xen-traditional/xen-setup || die - sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \ - tools/Makefile || die - fi - else - # Don't bother with qemu, only needed for fully virtualised guests - sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die - fi - - # Reset bash completion dir; Bug 472438 - sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \ - -i Config.mk || die - sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die - - # xencommons, Bug #492332, sed lighter weight than patching - sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \ - -i tools/hotplug/Linux/init.d/xencommons.in || die - - # fix bashishm - sed -e '/Usage/s/\$//g' \ - -i tools/hotplug/Linux/init.d/xendriverdomain.in || die - - # respect multilib, usr/lib/libcacard.so.0.0.0 - sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \ - -i tools/qemu-xen/configure || die - - #bug 518136, don't build 32bit exactuable for nomultilib profile - if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then - sed -i -e "/x86_emulator/d" tools/tests/Makefile || die - fi - - # uncomment lines in xl.conf - sed -e 's:^#autoballoon=:autoballoon=:' \ - -e 's:^#lockfile=:lockfile=:' \ - -e 's:^#vif.default.script=:vif.default.script=:' \ - -i tools/examples/xl.conf || die - - # disable capstone (Bug #673474) - sed -e "s:\$\$source/configure:\0 --disable-capstone:" \ - -i tools/Makefile || die - - # disable glusterfs - sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \ - -i tools/Makefile || die - - default -} - -src_configure() { - local myconf="--prefix=${PREFIX}/usr \ - --libdir=${PREFIX}/usr/$(get_libdir) \ - --libexecdir=${PREFIX}/usr/libexec \ - --localstatedir=${EPREFIX}/var \ - --disable-werror \ - --disable-xen \ - --enable-tools \ - --enable-docs \ - $(use_enable api xenapi) \ - $(use_enable ipxe) \ - $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \ - $(use_enable ocaml ocamltools) \ - $(use_enable ovmf) \ - $(use_enable pam) \ - $(use_enable rombios) \ - --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \ - " - - use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin" - use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64" - use amd64 && myconf+=" $(use_enable qemu-traditional)" - tc-ld-disable-gold # Bug 669570 - econf ${myconf} -} - -src_compile() { - local myopt - use debug && myopt="${myopt} debug=y" - use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y" - - if test-flag-CC -fno-strict-overflow; then - append-flags -fno-strict-overflow - fi - - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt} - - if use doc; then - emake -C docs build - else - emake -C docs man-pages - fi -} - -src_install() { - # Override auto-detection in the build system, bug #382573 - export INITD_DIR=/tmp/init.d - export CONFIG_LEAF_DIR=../tmp/default - - # Let the build system compile installed Python modules. - local PYTHONDONTWRITEBYTECODE - export PYTHONDONTWRITEBYTECODE - - emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \ - XEN_PYTHON_NATIVE_INSTALL=y install-tools - - # Created at runtime - rm -rv "${ED}/var/run" || die - - # Fix the remaining Python shebangs. - python_fix_shebang "${D}" - - # Remove RedHat-specific stuff - rm -rf "${D}"/tmp || die - - if use doc; then - emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs - dodoc -r docs/{pdf,txt} - else - emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032 - fi - dodoc ${DOCS[@]} - - newconfd "${FILESDIR}"/xendomains.confd xendomains - newconfd "${FILESDIR}"/xenstored.confd xenstored - newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled - newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains - newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored - newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled - newinitd "${FILESDIR}"/xencommons.initd xencommons - newconfd "${FILESDIR}"/xencommons.confd xencommons - newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev - newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev - newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog - - if use screen; then - cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die - cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die - keepdir /var/log/xen-consoles - fi - - # For -static-libs wrt Bug 384355 - if ! use static-libs; then - rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a - fi - - # for xendomains - keepdir /etc/xen/auto - - # Remove files failing QA AFTER emake installs them, avoiding seeking absent files - find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \ - -o -name openbios-ppc -o -name palcode-clipper \) -delete || die - - keepdir /var/lib/xen/dump - keepdir /var/lib/xen/xenpaging - keepdir /var/lib/xenstored - keepdir /var/log/xen - - if use python; then - python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/xenstat.py" - python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/_xenstat.so" - fi - - python_optimize -} - -pkg_postinst() { - elog "Official Xen Guide and the offical wiki page:" - elog "https://wiki.gentoo.org/wiki/Xen" - elog "https://wiki.xen.org/wiki/Main_Page" - elog "" - elog "Recommended to utilise the xencommons script to config system at boot" - elog "Add by use of rc-update on completion of the install" - - if ! use hvm; then - echo - elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm" - elog "support enable the hvm use flag." - elog "An x86 or amd64 system is required to build HVM support." - fi - - if use qemu; then - elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source" - elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently" - elog "with the qemu capable xen. It is up to the user to distinguish between and utilise" - elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise" - fi -} diff --git a/app-emulation/xen-tools/xen-tools-4.13.1-r3.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild index 939b9bae6f65..c4bcc325110c 100644 --- a/app-emulation/xen-tools/xen-tools-4.13.1-r3.ebuild +++ b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild @@ -1,73 +1,75 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=7 +EAPI=8 -PYTHON_COMPAT=( python3_{6,7,8} ) -PYTHON_REQ_USE='ncurses,xml,threads(+)' +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE='ncurses,xml(+),threads(+)' -inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs +inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs -MY_PV=${PV/_/-} - -if [[ $PV == *9999 ]]; then +if [[ ${PV} == *9999 ]]; then inherit git-r3 REPO="xen.git" - EGIT_REPO_URI="git://xenbits.xen.org/${REPO}" + EGIT_REPO_URI="https://xenbits.xen.org/git-http/${REPO}" S="${WORKDIR}/${REPO}" else KEYWORDS="amd64 ~arm ~arm64 x86" - UPSTREAM_VER=2 - SECURITY_VER=28 - # xen-tools's gentoo patches tarball - GENTOO_VER=21 - # xen-tools's gentoo patches version which apply to this specific ebuild - GENTOO_GPV=0 - # xen-tools ovmf's patches - OVMF_VER= - - SEABIOS_VER="1.12.1" - EDK2_COMMIT="20d2e5a125e34fc8501026613a71549b2a1a3e54" - EDK2_OPENSSL_VERSION="1_1_1b" + + SEABIOS_VER="1.16.0" + EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b" + EDK2_OPENSSL_VERSION="1_1_1t" EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037" - IPXE_COMMIT="1dd56dbd11082fb622c2ed21cfaced4f47d798a6" - - [[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz" - [[ -n ${SECURITY_VER} ]] && \ - SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-security-patches-${SECURITY_VER}.tar.xz" - [[ -n ${GENTOO_VER} ]] && \ - GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz" - [[ -n ${OVMF_VER} ]] && \ - OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz" - - SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz - https://github.com/qemu/seabios/archive/rel-${SEABIOS_VER}.tar.gz -> seabios-${SEABIOS_VER}.tar.gz - ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz ) + EDK2_BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea" + IPXE_COMMIT="1d1cf74a5e58811822bee4b3da3cff7282fcdfca" + + XEN_GENTOO_PATCHSET_NUM=2 + XEN_GENTOO_PATCHSET_BASE=4.17.0 + XEN_PRE_PATCHSET_NUM= + XEN_PRE_VERSION_BASE= + + XEN_BASE_PV="${PV}" + if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then + XEN_BASE_PV="${XEN_PRE_VERSION_BASE}" + fi + + SRC_URI=" + https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz + https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz + ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz ) ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz - ${OVMF_PATCHSET_URI} ) - ${UPSTREAM_PATCHSET_URI} - ${SECURITY_PATCHSET_URI} - ${GENTOO_PATCHSET_URI}" + https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz + ) + " - S="${WORKDIR}/xen-${MY_PV}" + if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then + XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}" + XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2" + XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}" + fi + if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then + XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}" + XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2" + XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}" + fi fi DESCRIPTION="Xen tools including QEMU and xl" -HOMEPAGE="https://www.xenproject.org" +HOMEPAGE="https://xenproject.org" DOCS=( README ) +S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})" + LICENSE="GPL-2" SLOT="0/$(ver_cut 1-2)" # Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make # >=dev-lang/ocaml-4 stable # Masked in profiles/eapi-5-files instead -IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios" +IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd" REQUIRED_USE=" ${PYTHON_REQUIRED_USE} @@ -80,21 +82,39 @@ REQUIRED_USE=" ?? ( qemu system-qemu )" COMMON_DEPEND=" - sys-apps/pciutils + lzma? ( app-arch/xz-utils ) + qemu? ( + dev-libs/glib:2 + sys-libs/pam + ) + zstd? ( app-arch/zstd ) + app-arch/bzip2 + app-arch/zstd + dev-libs/libnl:3 dev-libs/lzo:2 - dev-libs/glib:2 dev-libs/yajl - dev-libs/libaio - dev-libs/libgcrypt:0 + sys-apps/util-linux + sys-fs/e2fsprogs + sys-libs/ncurses sys-libs/zlib ${PYTHON_DEPS} " +RDEPEND="${COMMON_DEPEND} + sys-apps/iproute2[-minimal] + net-misc/bridge-utils + screen? ( + app-misc/screen + app-admin/logrotate + ) + selinux? ( sec-policy/selinux-xen )" + DEPEND="${COMMON_DEPEND} + app-misc/pax-utils >=sys-kernel/linux-headers-4.11 + x11-libs/pixman $(python_gen_cond_dep ' - dev-python/lxml[${PYTHON_MULTI_USEDEP}] - pam? ( dev-python/pypam[${PYTHON_MULTI_USEDEP}] ) + dev-python/lxml[${PYTHON_USEDEP}] ') x86? ( sys-devel/dev86 system-ipxe? ( sys-firmware/ipxe[qemu] ) @@ -108,24 +128,29 @@ DEPEND="${COMMON_DEPEND} ) !amd64? ( >=sys-apps/dtc-1.4.0 ) amd64? ( sys-power/iasl - system-seabios? ( sys-firmware/seabios ) + system-seabios? ( + || ( + sys-firmware/seabios + sys-firmware/seabios-bin + ) + ) system-ipxe? ( sys-firmware/ipxe[qemu] ) rombios? ( sys-devel/bin86 sys-devel/dev86 ) ) - dev-lang/perl - app-misc/pax-utils + arm64? ( sys-power/iasl + rombios? ( sys-devel/bin86 sys-devel/dev86 ) ) doc? ( app-text/ghostscript-gpl - app-text/pandoc $(python_gen_cond_dep ' - dev-python/markdown[${PYTHON_MULTI_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] ') dev-texlive/texlive-latexextra - media-gfx/transfig + >=media-gfx/fig2dev-3.2.9-r1 + virtual/pandoc ) hvm? ( x11-base/xorg-proto ) qemu? ( app-arch/snappy:= - x11-libs/pixman + dev-build/meson sdl? ( media-libs/libsdl[X] media-libs/libsdl2[X] @@ -133,26 +158,30 @@ DEPEND="${COMMON_DEPEND} ) system-qemu? ( app-emulation/qemu[xen] ) ocaml? ( dev-ml/findlib - >=dev-lang/ocaml-4 ) + dev-lang/ocaml[ocamlopt] ) python? ( >=dev-lang/swig-4.0.0 )" -RDEPEND="${COMMON_DEPEND} - sys-apps/iproute2[-minimal] - net-misc/bridge-utils - screen? ( - app-misc/screen - app-admin/logrotate - )" +BDEPEND="dev-lang/perl + app-alternatives/yacc + sys-devel/gettext" # hvmloader is used to bootstrap a fully virtualized kernel # Approved by QA team in bug #144032 QA_WX_LOAD=" usr/libexec/xen/boot/hvmloader + usr/libexec/xen/boot/ovmf.bin + usr/libexec/xen/boot/xen-shim usr/share/qemu-xen/qemu/hppa-firmware.img + usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf usr/share/qemu-xen/qemu/s390-ccw.img usr/share/qemu-xen/qemu/u-boot.e500 " +QA_EXECSTACK=" + usr/share/qemu-xen/qemu/hppa-firmware.img +" + QA_PREBUILT=" usr/libexec/xen/bin/elf2dmp usr/libexec/xen/bin/ivshmem-client @@ -163,8 +192,14 @@ QA_PREBUILT=" usr/libexec/xen/bin/qemu-keymap usr/libexec/xen/bin/qemu-nbd usr/libexec/xen/bin/qemu-pr-helper + usr/libexec/xen/bin/qemu-storage-daemon usr/libexec/xen/bin/qemu-system-i386 usr/libexec/xen/bin/virtfs-proxy-helper + usr/libexec/xen/boot/ovmf.bin + usr/libexec/xen/boot/xen-shim + usr/libexec/xen/libexec/qemu-pr-helper + usr/libexec/xen/libexec/virtfs-proxy-helper + usr/libexec/xen/libexec/virtiofsd usr/libexec/xen/libexec/xen-bridge-helper usr/share/qemu-xen/qemu/s390-ccw.img usr/share/qemu-xen/qemu/s390-netboot.img @@ -198,94 +233,55 @@ pkg_setup() { } src_prepare() { - local i - - # Upstream's patchset - if [[ -n ${UPSTREAM_VER} ]]; then - einfo "Try to apply Xen Upstream patch set" - eapply "${WORKDIR}"/patches-upstream - fi - - # Security patchset - if [[ -n ${SECURITY_VER} ]]; then - einfo "Try to apply Xen Security patch set" - # apply main xen patches - # Two parallel systems, both work side by side - # Over time they may concdense into one. This will suffice for now - EPATCH_SUFFIX="patch" - EPATCH_FORCE="yes" - - source "${WORKDIR}"/patches-security/${PV}.conf || die - - for i in ${XEN_SECURITY_MAIN}; do - eapply "${WORKDIR}"/patches-security/xen/$i - done - - # apply qemu-xen/upstream patches - pushd "${S}"/tools/qemu-xen/ > /dev/null - for i in ${XEN_SECURITY_QEMUU}; do - eapply "${WORKDIR}"/patches-security/qemuu/$i - done - popd > /dev/null - - # apply qemu-traditional patches - pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null - for i in ${XEN_SECURITY_QEMUT}; do - eapply "${WORKDIR}"/patches-security/qemut/$i - done - popd > /dev/null - fi - # move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err - mv ../seabios-rel-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die + mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die pushd tools/firmware/ > /dev/null ln -s seabios-dir-remote seabios-dir || die popd > /dev/null - # Gentoo's patchset - if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then - einfo "Try to apply Gentoo specific patch set" - source "${FILESDIR}"/gentoo-patches.conf || die - _gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV} - for i in ${!_gpv}; do - eapply "${WORKDIR}"/patches-gentoo/$i - done + if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then + eapply "${XEN_UPSTREAM_PATCHES_DIR}" fi - # Ovmf's patchset + if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then + eapply "${XEN_GENTOO_PATCHES_DIR}" + fi + + # Rename qemu-bridge-helper to xen-bridge-helper to avoid file + # collisions with app-emulation/qemu. + sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \ + tools/qemu-xen/include/net/net.h \ + tools/qemu-xen/meson.build \ + tools/qemu-xen/qemu-bridge-helper.c \ + tools/qemu-xen/qemu-options.hx \ + || die + mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die + if use ovmf; then - if [[ -n ${OVMF_VER} ]];then - einfo "Try to apply Ovmf patch set" - pushd "${WORKDIR}"/edk2-*/ > /dev/null - eapply "${WORKDIR}"/patches-ovmf - popd > /dev/null - fi mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die + rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die + rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die + cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die + cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die fi # ipxe if use ipxe; then - cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die + cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die - # gcc 10 - cp "${WORKDIR}/patches-gentoo/xen-tools-4.13.0-ipxe-gcc10.patch" tools/firmware/etherboot/patches/ipxe-gcc10.patch || die - echo ipxe-gcc10.patch >> tools/firmware/etherboot/patches/series || die + # gcc 11 + cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die + echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die fi - mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die - # Fix texi2html build error with new texi2html, qemu.doc.html sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die - use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die - sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \ - -i tools/firmware/Makefile || die - # Drop .config, fixes to gcc-4.6 sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" @@ -328,9 +324,8 @@ src_prepare() { fi # Reset bash completion dir; Bug 472438 - sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \ - -i Config.mk || die - sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die + sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \ + -i config/Paths.mk.in || die # xencommons, Bug #492332, sed lighter weight than patching sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \ @@ -363,33 +358,59 @@ src_prepare() { sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \ -i tools/Makefile || die + # disable jpeg automagic + sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \ + -i tools/Makefile || die + + # disable png automagic + sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \ + -i tools/Makefile || die + + # disable docker (Bug #732970) + sed -e "s:\$\$source/configure:\0 --disable-containers:" \ + -i tools/Makefile || die + + # disable abi-dumper (Bug #791172) + sed -e 's/$(ABI_DUMPER) /echo /g' \ + -i tools/libs/libs.mk || die + + # Remove -Werror + find . -type f \( -name Makefile -o -name "*.mk" \) \ + -exec sed -i \ + -e 's/-Werror //g' \ + -e '/^CFLAGS *+= -Werror$/d' \ + -e 's/, "-Werror"//' \ + {} + || die + default } src_configure() { - local myconf="--prefix=${PREFIX}/usr \ - --libdir=${PREFIX}/usr/$(get_libdir) \ - --libexecdir=${PREFIX}/usr/libexec \ - --localstatedir=${EPREFIX}/var \ - --disable-werror \ - --disable-xen \ - --enable-tools \ - --enable-docs \ - $(use_enable api xenapi) \ - $(use_enable ipxe) \ - $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \ - $(use_enable ocaml ocamltools) \ - $(use_enable ovmf) \ - $(use_enable pam) \ - $(use_enable rombios) \ - --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \ - " - - use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin" - use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64" - use amd64 && myconf+=" $(use_enable qemu-traditional)" + local myconf=( + --libdir="${EPREFIX}/usr/$(get_libdir)" + --libexecdir="${EPREFIX}/usr/libexec" + --localstatedir="${EPREFIX}/var" + --disable-golang + --disable-pvshim + --disable-werror + --disable-xen + --enable-tools + --enable-docs + $(use_enable api xenapi) + $(use_enable ipxe) + $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') + $(use_enable ocaml ocamltools) + $(use_enable ovmf) + $(use_enable rombios) + $(use_enable systemd) + --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') + ) + + use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin ) + use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 ) + use amd64 && myconf+=( $(use_enable qemu-traditional) ) tc-ld-disable-gold # Bug 669570 - econf ${myconf} + econf ${myconf[@]} } src_compile() { @@ -401,7 +422,21 @@ src_compile() { append-flags -fno-strict-overflow fi - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt} + # bug #845099 + if use ipxe; then + local -x NO_WERROR=1 + fi + + emake \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTCXX="$(tc-getBUILD_CXX)" \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" \ + OBJDUMP="$(tc-getOBJDUMP)" \ + RANLIB="$(tc-getRANLIB)" \ + build-tools ${myopt} if use doc; then emake -C docs build @@ -475,32 +510,15 @@ src_install() { keepdir /var/log/xen if use python; then - python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/xenstat.py" - python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/_xenstat.so" + python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py" + python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so" fi python_optimize + + readme.gentoo_create_doc } pkg_postinst() { - elog "Official Xen Guide and the offical wiki page:" - elog "https://wiki.gentoo.org/wiki/Xen" - elog "https://wiki.xen.org/wiki/Main_Page" - elog "" - elog "Recommended to utilise the xencommons script to config system at boot" - elog "Add by use of rc-update on completion of the install" - - if ! use hvm; then - echo - elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm" - elog "support enable the hvm use flag." - elog "An x86 or amd64 system is required to build HVM support." - fi - - if use qemu; then - elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source" - elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently" - elog "with the qemu capable xen. It is up to the user to distinguish between and utilise" - elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise" - fi + readme.gentoo_print_elog } diff --git a/app-emulation/xen-tools/xen-tools-4.13.1-r4.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild index db9aab75f88c..e283301b0bd5 100644 --- a/app-emulation/xen-tools/xen-tools-4.13.1-r4.ebuild +++ b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild @@ -1,73 +1,75 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 -PYTHON_COMPAT=( python3_{6,7,8} ) -PYTHON_REQ_USE='ncurses,xml,threads(+)' +PYTHON_COMPAT=( python3_{10..11} ) +PYTHON_REQ_USE='ncurses,xml(+),threads(+)' -inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs +inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs -MY_PV=${PV/_/-} - -if [[ $PV == *9999 ]]; then +if [[ ${PV} == *9999 ]]; then inherit git-r3 REPO="xen.git" - EGIT_REPO_URI="git://xenbits.xen.org/${REPO}" + EGIT_REPO_URI="https://xenbits.xen.org/git-http/${REPO}" S="${WORKDIR}/${REPO}" else KEYWORDS="amd64 ~arm ~arm64 x86" - UPSTREAM_VER=3 - SECURITY_VER=28 - # xen-tools's gentoo patches tarball - GENTOO_VER=21 - # xen-tools's gentoo patches version which apply to this specific ebuild - GENTOO_GPV=0 - # xen-tools ovmf's patches - OVMF_VER= - - SEABIOS_VER="1.12.1" - EDK2_COMMIT="20d2e5a125e34fc8501026613a71549b2a1a3e54" - EDK2_OPENSSL_VERSION="1_1_1b" + + SEABIOS_VER="1.16.0" + EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b" + EDK2_OPENSSL_VERSION="1_1_1t" EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037" - IPXE_COMMIT="1dd56dbd11082fb622c2ed21cfaced4f47d798a6" - - [[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz" - [[ -n ${SECURITY_VER} ]] && \ - SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-security-patches-${SECURITY_VER}.tar.xz" - [[ -n ${GENTOO_VER} ]] && \ - GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz" - [[ -n ${OVMF_VER} ]] && \ - OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz" - - SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz - https://github.com/qemu/seabios/archive/rel-${SEABIOS_VER}.tar.gz -> seabios-${SEABIOS_VER}.tar.gz - ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz ) + EDK2_BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea" + IPXE_COMMIT="1d1cf74a5e58811822bee4b3da3cff7282fcdfca" + + XEN_GENTOO_PATCHSET_NUM=2 + XEN_GENTOO_PATCHSET_BASE=4.17.0 + XEN_PRE_PATCHSET_NUM=1 + XEN_PRE_VERSION_BASE=4.17.3 + + XEN_BASE_PV="${PV}" + if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then + XEN_BASE_PV="${XEN_PRE_VERSION_BASE}" + fi + + SRC_URI=" + https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz + https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz + ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz ) ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz - ${OVMF_PATCHSET_URI} ) - ${UPSTREAM_PATCHSET_URI} - ${SECURITY_PATCHSET_URI} - ${GENTOO_PATCHSET_URI}" + https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz + ) + " - S="${WORKDIR}/xen-${MY_PV}" + if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then + XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}" + XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2" + XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}" + fi + if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then + XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}" + XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2" + XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}" + fi fi DESCRIPTION="Xen tools including QEMU and xl" -HOMEPAGE="https://www.xenproject.org" +HOMEPAGE="https://xenproject.org" DOCS=( README ) +S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})" + LICENSE="GPL-2" SLOT="0/$(ver_cut 1-2)" # Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make # >=dev-lang/ocaml-4 stable # Masked in profiles/eapi-5-files instead -IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios" +IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd" REQUIRED_USE=" ${PYTHON_REQUIRED_USE} @@ -80,21 +82,39 @@ REQUIRED_USE=" ?? ( qemu system-qemu )" COMMON_DEPEND=" - sys-apps/pciutils + lzma? ( app-arch/xz-utils ) + qemu? ( + dev-libs/glib:2 + sys-libs/pam + ) + zstd? ( app-arch/zstd ) + app-arch/bzip2 + app-arch/zstd + dev-libs/libnl:3 dev-libs/lzo:2 - dev-libs/glib:2 dev-libs/yajl - dev-libs/libaio - dev-libs/libgcrypt:0 + sys-apps/util-linux + sys-fs/e2fsprogs + sys-libs/ncurses sys-libs/zlib ${PYTHON_DEPS} " +RDEPEND="${COMMON_DEPEND} + sys-apps/iproute2[-minimal] + net-misc/bridge-utils + screen? ( + app-misc/screen + app-admin/logrotate + ) + selinux? ( sec-policy/selinux-xen )" + DEPEND="${COMMON_DEPEND} + app-misc/pax-utils >=sys-kernel/linux-headers-4.11 + x11-libs/pixman $(python_gen_cond_dep ' - dev-python/lxml[${PYTHON_MULTI_USEDEP}] - pam? ( dev-python/pypam[${PYTHON_MULTI_USEDEP}] ) + dev-python/lxml[${PYTHON_USEDEP}] ') x86? ( sys-devel/dev86 system-ipxe? ( sys-firmware/ipxe[qemu] ) @@ -108,24 +128,29 @@ DEPEND="${COMMON_DEPEND} ) !amd64? ( >=sys-apps/dtc-1.4.0 ) amd64? ( sys-power/iasl - system-seabios? ( sys-firmware/seabios ) + system-seabios? ( + || ( + sys-firmware/seabios + sys-firmware/seabios-bin + ) + ) system-ipxe? ( sys-firmware/ipxe[qemu] ) rombios? ( sys-devel/bin86 sys-devel/dev86 ) ) - dev-lang/perl - app-misc/pax-utils + arm64? ( sys-power/iasl + rombios? ( sys-devel/bin86 sys-devel/dev86 ) ) doc? ( app-text/ghostscript-gpl - app-text/pandoc $(python_gen_cond_dep ' - dev-python/markdown[${PYTHON_MULTI_USEDEP}] + dev-python/markdown[${PYTHON_USEDEP}] ') dev-texlive/texlive-latexextra - media-gfx/transfig + >=media-gfx/fig2dev-3.2.9-r1 + virtual/pandoc ) hvm? ( x11-base/xorg-proto ) qemu? ( app-arch/snappy:= - x11-libs/pixman + dev-build/meson sdl? ( media-libs/libsdl[X] media-libs/libsdl2[X] @@ -133,26 +158,30 @@ DEPEND="${COMMON_DEPEND} ) system-qemu? ( app-emulation/qemu[xen] ) ocaml? ( dev-ml/findlib - >=dev-lang/ocaml-4 ) + dev-lang/ocaml[ocamlopt] ) python? ( >=dev-lang/swig-4.0.0 )" -RDEPEND="${COMMON_DEPEND} - sys-apps/iproute2[-minimal] - net-misc/bridge-utils - screen? ( - app-misc/screen - app-admin/logrotate - )" +BDEPEND="dev-lang/perl + app-alternatives/yacc + sys-devel/gettext" # hvmloader is used to bootstrap a fully virtualized kernel # Approved by QA team in bug #144032 QA_WX_LOAD=" usr/libexec/xen/boot/hvmloader + usr/libexec/xen/boot/ovmf.bin + usr/libexec/xen/boot/xen-shim usr/share/qemu-xen/qemu/hppa-firmware.img + usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf + usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf usr/share/qemu-xen/qemu/s390-ccw.img usr/share/qemu-xen/qemu/u-boot.e500 " +QA_EXECSTACK=" + usr/share/qemu-xen/qemu/hppa-firmware.img +" + QA_PREBUILT=" usr/libexec/xen/bin/elf2dmp usr/libexec/xen/bin/ivshmem-client @@ -163,8 +192,14 @@ QA_PREBUILT=" usr/libexec/xen/bin/qemu-keymap usr/libexec/xen/bin/qemu-nbd usr/libexec/xen/bin/qemu-pr-helper + usr/libexec/xen/bin/qemu-storage-daemon usr/libexec/xen/bin/qemu-system-i386 usr/libexec/xen/bin/virtfs-proxy-helper + usr/libexec/xen/boot/ovmf.bin + usr/libexec/xen/boot/xen-shim + usr/libexec/xen/libexec/qemu-pr-helper + usr/libexec/xen/libexec/virtfs-proxy-helper + usr/libexec/xen/libexec/virtiofsd usr/libexec/xen/libexec/xen-bridge-helper usr/share/qemu-xen/qemu/s390-ccw.img usr/share/qemu-xen/qemu/s390-netboot.img @@ -198,94 +233,55 @@ pkg_setup() { } src_prepare() { - local i - - # Upstream's patchset - if [[ -n ${UPSTREAM_VER} ]]; then - einfo "Try to apply Xen Upstream patch set" - eapply "${WORKDIR}"/patches-upstream - fi - - # Security patchset - if [[ -n ${SECURITY_VER} ]]; then - einfo "Try to apply Xen Security patch set" - # apply main xen patches - # Two parallel systems, both work side by side - # Over time they may concdense into one. This will suffice for now - EPATCH_SUFFIX="patch" - EPATCH_FORCE="yes" - - source "${WORKDIR}"/patches-security/${PV}.conf || die - - for i in ${XEN_SECURITY_MAIN}; do - eapply "${WORKDIR}"/patches-security/xen/$i - done - - # apply qemu-xen/upstream patches - pushd "${S}"/tools/qemu-xen/ > /dev/null - for i in ${XEN_SECURITY_QEMUU}; do - eapply "${WORKDIR}"/patches-security/qemuu/$i - done - popd > /dev/null - - # apply qemu-traditional patches - pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null - for i in ${XEN_SECURITY_QEMUT}; do - eapply "${WORKDIR}"/patches-security/qemut/$i - done - popd > /dev/null - fi - # move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err - mv ../seabios-rel-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die + mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die pushd tools/firmware/ > /dev/null ln -s seabios-dir-remote seabios-dir || die popd > /dev/null - # Gentoo's patchset - if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then - einfo "Try to apply Gentoo specific patch set" - source "${FILESDIR}"/gentoo-patches.conf || die - _gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV} - for i in ${!_gpv}; do - eapply "${WORKDIR}"/patches-gentoo/$i - done + if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then + eapply "${XEN_UPSTREAM_PATCHES_DIR}" fi - # Ovmf's patchset + if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then + eapply "${XEN_GENTOO_PATCHES_DIR}" + fi + + # Rename qemu-bridge-helper to xen-bridge-helper to avoid file + # collisions with app-emulation/qemu. + sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \ + tools/qemu-xen/include/net/net.h \ + tools/qemu-xen/meson.build \ + tools/qemu-xen/qemu-bridge-helper.c \ + tools/qemu-xen/qemu-options.hx \ + || die + mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die + if use ovmf; then - if [[ -n ${OVMF_VER} ]];then - einfo "Try to apply Ovmf patch set" - pushd "${WORKDIR}"/edk2-*/ > /dev/null - eapply "${WORKDIR}"/patches-ovmf - popd > /dev/null - fi mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die + rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die + rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die + cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die + cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die fi # ipxe if use ipxe; then - cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die + cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die - # gcc 10 - cp "${WORKDIR}/patches-gentoo/xen-tools-4.13.0-ipxe-gcc10.patch" tools/firmware/etherboot/patches/ipxe-gcc10.patch || die - echo ipxe-gcc10.patch >> tools/firmware/etherboot/patches/series || die + # gcc 11 + cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die + echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die fi - mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die - # Fix texi2html build error with new texi2html, qemu.doc.html sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die - use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die - sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \ - -i tools/firmware/Makefile || die - # Drop .config, fixes to gcc-4.6 sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" @@ -328,9 +324,8 @@ src_prepare() { fi # Reset bash completion dir; Bug 472438 - sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \ - -i Config.mk || die - sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die + sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \ + -i config/Paths.mk.in || die # xencommons, Bug #492332, sed lighter weight than patching sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \ @@ -363,33 +358,59 @@ src_prepare() { sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \ -i tools/Makefile || die + # disable jpeg automagic + sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \ + -i tools/Makefile || die + + # disable png automagic + sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \ + -i tools/Makefile || die + + # disable docker (Bug #732970) + sed -e "s:\$\$source/configure:\0 --disable-containers:" \ + -i tools/Makefile || die + + # disable abi-dumper (Bug #791172) + sed -e 's/$(ABI_DUMPER) /echo /g' \ + -i tools/libs/libs.mk || die + + # Remove -Werror + find . -type f \( -name Makefile -o -name "*.mk" \) \ + -exec sed -i \ + -e 's/-Werror //g' \ + -e '/^CFLAGS *+= -Werror$/d' \ + -e 's/, "-Werror"//' \ + {} + || die + default } src_configure() { - local myconf="--prefix=${PREFIX}/usr \ - --libdir=${PREFIX}/usr/$(get_libdir) \ - --libexecdir=${PREFIX}/usr/libexec \ - --localstatedir=${EPREFIX}/var \ - --disable-werror \ - --disable-xen \ - --enable-tools \ - --enable-docs \ - $(use_enable api xenapi) \ - $(use_enable ipxe) \ - $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \ - $(use_enable ocaml ocamltools) \ - $(use_enable ovmf) \ - $(use_enable pam) \ - $(use_enable rombios) \ - --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \ - " - - use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin" - use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64" - use amd64 && myconf+=" $(use_enable qemu-traditional)" + local myconf=( + --libdir="${EPREFIX}/usr/$(get_libdir)" + --libexecdir="${EPREFIX}/usr/libexec" + --localstatedir="${EPREFIX}/var" + --disable-golang + --disable-pvshim + --disable-werror + --disable-xen + --enable-tools + --enable-docs + $(use_enable api xenapi) + $(use_enable ipxe) + $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') + $(use_enable ocaml ocamltools) + $(use_enable ovmf) + $(use_enable rombios) + $(use_enable systemd) + --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') + ) + + use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin ) + use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 ) + use amd64 && myconf+=( $(use_enable qemu-traditional) ) tc-ld-disable-gold # Bug 669570 - econf ${myconf} + econf ${myconf[@]} } src_compile() { @@ -401,7 +422,21 @@ src_compile() { append-flags -fno-strict-overflow fi - emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt} + # bug #845099 + if use ipxe; then + local -x NO_WERROR=1 + fi + + emake \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTCXX="$(tc-getBUILD_CXX)" \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" \ + OBJDUMP="$(tc-getOBJDUMP)" \ + RANLIB="$(tc-getRANLIB)" \ + build-tools ${myopt} if use doc; then emake -C docs build @@ -475,32 +510,15 @@ src_install() { keepdir /var/log/xen if use python; then - python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/xenstat.py" - python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/_xenstat.so" + python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py" + python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so" fi python_optimize + + readme.gentoo_create_doc } pkg_postinst() { - elog "Official Xen Guide and the offical wiki page:" - elog "https://wiki.gentoo.org/wiki/Xen" - elog "https://wiki.xen.org/wiki/Main_Page" - elog "" - elog "Recommended to utilise the xencommons script to config system at boot" - elog "Add by use of rc-update on completion of the install" - - if ! use hvm; then - echo - elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm" - elog "support enable the hvm use flag." - elog "An x86 or amd64 system is required to build HVM support." - fi - - if use qemu; then - elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source" - elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently" - elog "with the qemu capable xen. It is up to the user to distinguish between and utilise" - elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise" - fi + readme.gentoo_print_elog } diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest index 8e18f8dc978d..50042de97f70 100644 --- a/app-emulation/xen/Manifest +++ b/app-emulation/xen/Manifest @@ -1,5 +1,4 @@ -DIST xen-4.13.1-upstream-patches-3.tar.xz 87056 BLAKE2B 01d7133b8f7e3c9a42b9771dcb7739777f79f229941114cce70ba2897dd52bf53f08de35602a0b40a120fc155c274dbf91e107856f4afdae2c4f7b4bc0a67cdd SHA512 d67e9ddfbf27dc5a23a77679b1b2524a49c2aec3ff9eb3472f9e075893d87401f8e99707b0652744eb4af7a3ed9a815c3925de49995bcd7c82d97c13a69b5309 -DIST xen-4.13.1-upstream-patches-4.tar.xz 100580 BLAKE2B 1ac4ac5fe7aa7da2b486f2ac5ae60b96cf3c012acac50e8472b88ae273d99e9545f48a896f21eebd5e58427a817e11aa9806d9b45750784fc5382cbadf8162d4 SHA512 54230ea6aa2add038a438d46caae3bba83f2cc8b92021e2c34761015ec08a807331767d432bfa2c7bab864f5b8d0d667c68fc04a089fd35eda9a4f0afd4f6df6 -DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90 -DIST xen-4.14.0-upstream-patches-2.tar.xz 62512 BLAKE2B 0ab30f542809bc09b45ef88e1a60bedfa9273cd13b4f8a7b770c75432eedd5cfcd9c7f34845ebbc6fe98479aded4ea88e4c71071a88c6c12a898392e5f441312 SHA512 50a1452007cb94abb9a535dfba5e1e0fe627b8c79773221203cc960f067861870d610c04ba6811d987bb40423fc9084c9966bac817bd7484f5789a69598397f0 -DIST xen-4.14.0.tar.gz 39950576 BLAKE2B db4c3e79cfdfb10260d0d14d9d28e8c8bd9bf23f42aee743acf8f560bf4cdb96a425c0df887c70f9755f62680be24bfbe0149e52a4cb843ae83090cd9d6afc71 SHA512 ebce47a2f754955d8517123d69f62006634d97620fbbe3784869a0667466e586a249f57ffaf7846d5bcb45d69377cde43354c82c233fbb5407e55653b9a33ac0 +DIST xen-4.17.3.tar.gz 46505735 BLAKE2B f7a783d951d3e31391aca2b779b9d11440dc28b0756739f7733cd7d2f160de54a018c00dce5d2a6c55a6494c2151a31a64bbeddefbed34eff179463f2e762d93 SHA512 56ead90af00b4c1aa452b5edba980a2873e4c76e8c518220a88089a2771cd76fe2478e15a41abf5d247e4bc5af8415d53614dff7eb028ced80701c1a1263f91f +DIST xen-4.17.4.tar.gz 46527369 BLAKE2B 2fcd1248d75157b6455727b29ecc3a4e5941eb187d645b35b6cf48a23fdfae11e810c55a1a7c0396c6a23dc977f22b8fd06ee9b91a1edc3a7ba8561023e07cfc SHA512 50dc2efd26e48131afdbc8efb1ca90154a84fe5fba5a6bc81d9801a3c13aebea91c8211872b5c69ce2773644f2c935c31cc56584a05b10b81e8728282d89eb84 +DIST xen-gentoo-patches-4.17.0-gentoo-patchset-2.tar.bz2 4001 BLAKE2B 7afce426759952e202a1dd819fe0a23108072bf9552ba14a0bd787a96ffe5e7a36f37e03dad8db9c46f5731acbc122c258eef6d517816aad9c8db1ca64700d19 SHA512 bcb1479f9ff5e194a4e452da9d0479febc2bcd465b4be69bb8f30e2e6b858fb77a71216dcb3e74dfb65e7ca6513742c294cd6b5eaa5ce82d0b122a00f1cbc450 +DIST xen-upstream-patches-4.17.4-pre-patchset-1.tar.bz2 77410 BLAKE2B 1c00d613f9d12d81a284455d9099c031ba3ea7066508c75ad6f7e13330a09e2eb4e74bf5bc54fed9c4f90e18856cc01ff0e4ab4721d36388519eb40f99be42d8 SHA512 7a56cb0ac9b59043ffbc891819cbe54c9efe411e2e67eebc212a3b519ca60a37a377dd21b0ba851d6828cf268781983b082c6fecee0f0156501b5c447050789a diff --git a/app-emulation/xen/files/xen-4.11-efi.patch b/app-emulation/xen/files/xen-4.11-efi.patch deleted file mode 100644 index c7173d91b244..000000000000 --- a/app-emulation/xen/files/xen-4.11-efi.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/xen/Makefile b/xen/Makefile -index af27147777..a5299b3868 100644 ---- a/xen/Makefile -+++ b/xen/Makefile -@@ -57,9 +57,15 @@ _install: Z=$(CONFIG_XEN_INSTALL_SUFFIX) - _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX) - [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR) - $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_FULLVERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z) -+ if [ 'x$(EFI_VENDOR)' == 'x' ]; then \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \ -+ else \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \ -+ fi; - [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR) - $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION) - $(INSTALL_DATA) $(TARGET)-syms.map $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION).map -diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile -index ec02972f2b..628c245564 100644 ---- a/xen/arch/x86/Makefile -+++ b/xen/arch/x86/Makefile -@@ -156,7 +156,7 @@ note.o: $(TARGET)-syms - --rename-section=.data=.note.gnu.build-id -S $@.bin $@ - rm -f $@.bin - --EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 -+EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 - EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug - EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20 - EFI_LDFLAGS += --major-image-version=$(XEN_VERSION) diff --git a/app-emulation/xen/files/xen-4.14-efi.patch b/app-emulation/xen/files/xen-4.14-efi.patch deleted file mode 100644 index 351e17843523..000000000000 --- a/app-emulation/xen/files/xen-4.14-efi.patch +++ /dev/null @@ -1,38 +0,0 @@ -diff --git a/xen/Makefile b/xen/Makefile -index 0ade7f9..46c25d9 100644 ---- a/xen/Makefile -+++ b/xen/Makefile -@@ -272,9 +272,17 @@ _install: Z=$(CONFIG_XEN_INSTALL_SUFFIX) - _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX) - [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR) - $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_FULLVERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z) -- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z) -+ -+ if [ 'x$(EFI_VENDOR)' == 'x' ]; then \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \ -+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \ -+ else \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \ -+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \ -+ fi; -+ - [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR) - $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION) - $(INSTALL_DATA) $(TARGET)-syms.map $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION).map -diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile -index 07eeefb..6b1c16b 100644 ---- a/xen/arch/x86/Makefile -+++ b/xen/arch/x86/Makefile -@@ -163,7 +163,7 @@ note.o: $(TARGET)-syms - --rename-section=.data=.note.gnu.build-id -S $@.bin $@ - rm -f $@.bin - --EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 -+EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10 - EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug - EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20 - EFI_LDFLAGS += --major-image-version=$(XEN_VERSION) diff --git a/app-emulation/xen/metadata.xml b/app-emulation/xen/metadata.xml index 574d6261f8e3..bad2422fe3f9 100644 --- a/app-emulation/xen/metadata.xml +++ b/app-emulation/xen/metadata.xml @@ -1,11 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="person"> + <maintainer type="person" proxied="yes"> <email>hydrapolic@gmail.com</email> <name>Tomáš Mózes</name> </maintainer> - <maintainer type="project"> + <maintainer type="project" proxied="proxy"> <email>proxy-maint@gentoo.org</email> <name>Proxy Maintainers</name> </maintainer> @@ -14,7 +14,8 @@ <name>Gentoo Xen Project</name> </maintainer> <use> + <flag name="boot-symlinks">Symlink xen.gz variants in /boot, disable on fat filesystems</flag> <flag name="flask">Enable the Flask XSM module from NSA</flag> - <flag name="efi">Adds efi boot support, requires LDFLAG -melf_x86_64 for amd64</flag> + <flag name="uefi">Adds UEFI boot support, requires LDFLAG -melf_x86_64 for amd64</flag> </use> </pkgmetadata> diff --git a/app-emulation/xen/xen-4.13.1-r4.ebuild b/app-emulation/xen/xen-4.13.1-r4.ebuild deleted file mode 100644 index 5e92a5f18903..000000000000 --- a/app-emulation/xen/xen-4.13.1-r4.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs - -MY_PV=${PV/_/-} -MY_P=${PN}-${MY_PV} - -if [[ $PV == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="git://xenbits.xen.org/xen.git" - SRC_URI="" -else - KEYWORDS="amd64 ~arm -x86" - UPSTREAM_VER=3 - SECURITY_VER= - GENTOO_VER= - - [[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz" - [[ -n ${SECURITY_VER} ]] && \ - SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz" - [[ -n ${GENTOO_VER} ]] && \ - GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz" - SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz - ${UPSTREAM_PATCHSET_URI} - ${SECURITY_PATCHSET_URI} - ${GENTOO_PATCHSET_URI}" -fi - -DESCRIPTION="The Xen virtual machine monitor" -HOMEPAGE="https://www.xenproject.org" -LICENSE="GPL-2" -SLOT="0" -IUSE="debug efi flask" - -DEPEND="${PYTHON_DEPS} - efi? ( >=sys-devel/binutils-2.22[multitarget] ) - !efi? ( >=sys-devel/binutils-2.22 )" -RDEPEND="" -PDEPEND="~app-emulation/xen-tools-${PV}" - -# no tests are available for the hypervisor -# prevent the silliness of /usr/lib/debug/usr/lib/debug files -# prevent stripping of the debug info from the /usr/lib/debug/xen-syms -RESTRICT="test splitdebug strip" - -# Approved by QA team in bug #144032 -QA_WX_LOAD="boot/xen-syms-${PV}" - -REQUIRED_USE="arm? ( debug )" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - python-any-r1_pkg_setup - if [[ -z ${XEN_TARGET_ARCH} ]]; then - if use amd64; then - export XEN_TARGET_ARCH="x86_64" - elif use arm; then - export XEN_TARGET_ARCH="arm32" - elif use arm64; then - export XEN_TARGET_ARCH="arm64" - else - die "Unsupported architecture!" - fi - fi - - if use flask ; then - export "XSM_ENABLE=y" - export "FLASK_ENABLE=y" - fi -} - -src_prepare() { - # Upstream's patchset - [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream - - # Security patchset - if [[ -n ${SECURITY_VER} ]]; then - einfo "Try to apply Xen Security patch set" - # apply main xen patches - # Two parallel systems, both work side by side - # Over time they may concdense into one. This will suffice for now - source "${WORKDIR}"/patches-security/${PV}.conf - - local i - for i in ${XEN_SECURITY_MAIN}; do - eapply "${WORKDIR}"/patches-security/xen/$i - done - fi - - # Gentoo's patchset - [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo - - eapply "${FILESDIR}"/${PN}-4.11-efi.patch - - # Drop .config - sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" - - if use efi; then - export EFI_VENDOR="gentoo" - export EFI_MOUNTPOINT="/boot" - fi - - default -} - -src_configure() { - use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i" - - use debug && myopt="${myopt} debug=y" - - # remove flags - unset CFLAGS - unset LDFLAGS - unset ASFLAGS - - tc-ld-disable-gold # Bug 700374 -} - -src_compile() { - # Send raw LDFLAGS so that --as-needed works - emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt} -} - -src_install() { - local myopt - use debug && myopt="${myopt} debug=y" - - # The 'make install' doesn't 'mkdir -p' the subdirs - if use efi; then - mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die - fi - - emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install - - # make install likes to throw in some extra EFI bits if it built - use efi || rm -rf "${D}/usr/$(get_libdir)/efi" -} - -pkg_postinst() { - elog "Official Xen Guide:" - elog " https://wiki.gentoo.org/wiki/Xen" - - use efi && einfo "The efi executable is installed in /boot/efi/gentoo" - - elog "You can optionally block the installation of /boot/xen-syms by an entry" - elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK" - elog "e.g. echo ${msg} > /etc/portage/env/xen.conf" - - ewarn - ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause" - ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems" - ewarn "to work fine." - ewarn - ewarn "Add sched=credit to xen command line options to use the legacy scheduler." - ewarn - ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B" -} diff --git a/app-emulation/xen/xen-4.13.1-r5.ebuild b/app-emulation/xen/xen-4.13.1-r5.ebuild deleted file mode 100644 index 7638cb7bc0bf..000000000000 --- a/app-emulation/xen/xen-4.13.1-r5.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6,7,8} ) - -inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs - -MY_PV=${PV/_/-} -MY_P=${PN}-${MY_PV} - -if [[ $PV == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="git://xenbits.xen.org/xen.git" - SRC_URI="" -else - KEYWORDS="~amd64 ~arm -x86" - UPSTREAM_VER=4 - SECURITY_VER= - GENTOO_VER= - - [[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz" - [[ -n ${SECURITY_VER} ]] && \ - SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz" - [[ -n ${GENTOO_VER} ]] && \ - GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz" - SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz - ${UPSTREAM_PATCHSET_URI} - ${SECURITY_PATCHSET_URI} - ${GENTOO_PATCHSET_URI}" -fi - -DESCRIPTION="The Xen virtual machine monitor" -HOMEPAGE="https://www.xenproject.org" -LICENSE="GPL-2" -SLOT="0" -IUSE="debug efi flask" - -DEPEND="${PYTHON_DEPS} - efi? ( >=sys-devel/binutils-2.22[multitarget] ) - !efi? ( >=sys-devel/binutils-2.22 )" -RDEPEND="" -PDEPEND="~app-emulation/xen-tools-${PV}" - -# no tests are available for the hypervisor -# prevent the silliness of /usr/lib/debug/usr/lib/debug files -# prevent stripping of the debug info from the /usr/lib/debug/xen-syms -RESTRICT="test splitdebug strip" - -# Approved by QA team in bug #144032 -QA_WX_LOAD="boot/xen-syms-${PV}" - -REQUIRED_USE="arm? ( debug )" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - python-any-r1_pkg_setup - if [[ -z ${XEN_TARGET_ARCH} ]]; then - if use amd64; then - export XEN_TARGET_ARCH="x86_64" - elif use arm; then - export XEN_TARGET_ARCH="arm32" - elif use arm64; then - export XEN_TARGET_ARCH="arm64" - else - die "Unsupported architecture!" - fi - fi - - if use flask ; then - export "XSM_ENABLE=y" - export "FLASK_ENABLE=y" - fi -} - -src_prepare() { - # Upstream's patchset - [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream - - # Security patchset - if [[ -n ${SECURITY_VER} ]]; then - einfo "Try to apply Xen Security patch set" - # apply main xen patches - # Two parallel systems, both work side by side - # Over time they may concdense into one. This will suffice for now - source "${WORKDIR}"/patches-security/${PV}.conf - - local i - for i in ${XEN_SECURITY_MAIN}; do - eapply "${WORKDIR}"/patches-security/xen/$i - done - fi - - # Gentoo's patchset - [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo - - eapply "${FILESDIR}"/${PN}-4.11-efi.patch - - # Drop .config - sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" - - if use efi; then - export EFI_VENDOR="gentoo" - export EFI_MOUNTPOINT="/boot" - fi - - default -} - -src_configure() { - use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i" - - use debug && myopt="${myopt} debug=y" - - # remove flags - unset CFLAGS - unset LDFLAGS - unset ASFLAGS - - tc-ld-disable-gold # Bug 700374 -} - -src_compile() { - # Send raw LDFLAGS so that --as-needed works - emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt} -} - -src_install() { - local myopt - use debug && myopt="${myopt} debug=y" - - # The 'make install' doesn't 'mkdir -p' the subdirs - if use efi; then - mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die - fi - - emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install - - # make install likes to throw in some extra EFI bits if it built - use efi || rm -rf "${D}/usr/$(get_libdir)/efi" -} - -pkg_postinst() { - elog "Official Xen Guide:" - elog " https://wiki.gentoo.org/wiki/Xen" - - use efi && einfo "The efi executable is installed in /boot/efi/gentoo" - - elog "You can optionally block the installation of /boot/xen-syms by an entry" - elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK" - elog "e.g. echo ${msg} > /etc/portage/env/xen.conf" - - ewarn - ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause" - ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems" - ewarn "to work fine." - ewarn - ewarn "Add sched=credit to xen command line options to use the legacy scheduler." - ewarn - ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B" -} diff --git a/app-emulation/xen/xen-4.14.0-r3.ebuild b/app-emulation/xen/xen-4.14.0-r3.ebuild deleted file mode 100644 index b8aba255f187..000000000000 --- a/app-emulation/xen/xen-4.14.0-r3.ebuild +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{6..9} ) - -inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs - -MY_PV=${PV/_/-} -MY_P=${PN}-${MY_PV} - -if [[ $PV == *9999 ]]; then - inherit git-r3 - EGIT_REPO_URI="git://xenbits.xen.org/xen.git" - SRC_URI="" -else - KEYWORDS="~amd64 ~arm -x86" - UPSTREAM_VER=2 - SECURITY_VER= - GENTOO_VER= - - [[ -n ${UPSTREAM_VER} ]] && \ - UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz - https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz" - [[ -n ${SECURITY_VER} ]] && \ - SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz" - [[ -n ${GENTOO_VER} ]] && \ - GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz" - SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz - ${UPSTREAM_PATCHSET_URI} - ${SECURITY_PATCHSET_URI} - ${GENTOO_PATCHSET_URI}" -fi - -DESCRIPTION="The Xen virtual machine monitor" -HOMEPAGE="https://www.xenproject.org" -LICENSE="GPL-2" -SLOT="0" -IUSE="debug efi flask" - -DEPEND="${PYTHON_DEPS} - efi? ( >=sys-devel/binutils-2.22[multitarget] ) - !efi? ( >=sys-devel/binutils-2.22 )" -RDEPEND="" -PDEPEND="~app-emulation/xen-tools-${PV}" - -# no tests are available for the hypervisor -# prevent the silliness of /usr/lib/debug/usr/lib/debug files -# prevent stripping of the debug info from the /usr/lib/debug/xen-syms -RESTRICT="test splitdebug strip" - -# Approved by QA team in bug #144032 -QA_WX_LOAD="boot/xen-syms-${PV}" - -REQUIRED_USE="arm? ( debug )" - -S="${WORKDIR}/${MY_P}" - -pkg_setup() { - python-any-r1_pkg_setup - if [[ -z ${XEN_TARGET_ARCH} ]]; then - if use amd64; then - export XEN_TARGET_ARCH="x86_64" - elif use arm; then - export XEN_TARGET_ARCH="arm32" - elif use arm64; then - export XEN_TARGET_ARCH="arm64" - else - die "Unsupported architecture!" - fi - fi - - if use flask ; then - export "XSM_ENABLE=y" - export "FLASK_ENABLE=y" - fi -} - -src_prepare() { - # Upstream's patchset - [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream - - # Security patchset - if [[ -n ${SECURITY_VER} ]]; then - einfo "Try to apply Xen Security patch set" - # apply main xen patches - # Two parallel systems, both work side by side - # Over time they may concdense into one. This will suffice for now - source "${WORKDIR}"/patches-security/${PV}.conf - - local i - for i in ${XEN_SECURITY_MAIN}; do - eapply "${WORKDIR}"/patches-security/xen/$i - done - fi - - # Gentoo's patchset - [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo - - eapply "${FILESDIR}"/${PN}-4.14-efi.patch - - # Drop .config - sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" - - if use efi; then - export EFI_VENDOR="gentoo" - export EFI_MOUNTPOINT="/boot" - fi - - default -} - -src_configure() { - use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i" - - use debug && myopt="${myopt} debug=y" - - # remove flags - unset CFLAGS - unset LDFLAGS - unset ASFLAGS - - tc-ld-disable-gold # Bug 700374 -} - -src_compile() { - # Send raw LDFLAGS so that --as-needed works - emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt} -} - -src_install() { - local myopt - use debug && myopt="${myopt} debug=y" - - # The 'make install' doesn't 'mkdir -p' the subdirs - if use efi; then - mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die - fi - - emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install - - # make install likes to throw in some extra EFI bits if it built - use efi || rm -rf "${D}/usr/$(get_libdir)/efi" -} - -pkg_postinst() { - elog "Official Xen Guide:" - elog " https://wiki.gentoo.org/wiki/Xen" - - use efi && einfo "The efi executable is installed in /boot/efi/gentoo" - - elog "You can optionally block the installation of /boot/xen-syms by an entry" - elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK" - elog "e.g. echo ${msg} > /etc/portage/env/xen.conf" - - ewarn - ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause" - ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems" - ewarn "to work fine." - ewarn - ewarn "Add sched=credit to xen command line options to use the legacy scheduler." - ewarn - ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B" -} diff --git a/app-emulation/xen/xen-4.17.4.ebuild b/app-emulation/xen/xen-4.17.4.ebuild new file mode 100644 index 000000000000..7b2ca8a62fef --- /dev/null +++ b/app-emulation/xen/xen-4.17.4.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit flag-o-matic mount-boot python-any-r1 secureboot toolchain-funcs + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://xenbits.xen.org/git-http/xen.git" + SRC_URI="" +else + KEYWORDS="amd64 ~arm -x86" + + XEN_GENTOO_PATCHSET_NUM=2 + XEN_GENTOO_PATCHSET_BASE=4.17.0 + XEN_PRE_PATCHSET_NUM= + XEN_PRE_VERSION_BASE= + + XEN_BASE_PV="${PV}" + if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then + XEN_BASE_PV="${XEN_PRE_VERSION_BASE}" + fi + + SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz" + + if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then + XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}" + XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2" + XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}" + fi + if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then + XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}" + XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2" + XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}" + fi +fi + +DESCRIPTION="The Xen virtual machine monitor" +HOMEPAGE="https://xenproject.org" + +S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+boot-symlinks debug uefi flask" +REQUIRED_USE="arm? ( debug )" + +DEPEND="${PYTHON_DEPS} + uefi? ( >=sys-devel/binutils-2.22[multitarget] ) + !uefi? ( >=sys-devel/binutils-2.22 ) + flask? ( sys-apps/checkpolicy )" +RDEPEND="" +PDEPEND="~app-emulation/xen-tools-${PV}" + +# no tests are available for the hypervisor +# prevent the silliness of /usr/lib/debug/usr/lib/debug files +# prevent stripping of the debug info from the /usr/lib/debug/xen-syms +RESTRICT="test splitdebug strip" + +# Approved by QA team in bug #144032 +QA_WX_LOAD="boot/xen-syms-${PV}" + +pkg_setup() { + python-any-r1_pkg_setup + if [[ -z ${XEN_TARGET_ARCH} ]]; then + if use amd64; then + export XEN_TARGET_ARCH="x86_64" + elif use arm; then + export XEN_TARGET_ARCH="arm32" + elif use arm64; then + export XEN_TARGET_ARCH="arm64" + else + die "Unsupported architecture!" + fi + fi + use uefi && secureboot_pkg_setup +} + +src_prepare() { + if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then + eapply "${XEN_UPSTREAM_PATCHES_DIR}" + fi + + if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then + eapply "${XEN_GENTOO_PATCHES_DIR}" + fi + + # Symlinks do not work on fat32 volumes # 829765 + if ! use boot-symlinks || use uefi; then + eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch + fi + + # Workaround new gcc-11 options + sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die + + # Drop .config + sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" + + if use uefi; then + export EFI_VENDOR="gentoo" + export EFI_MOUNTPOINT="/boot" + fi + + default +} + +xen_make() { + # Setting clang to either 'y' or 'n' tells Xen's build system + # whether or not clang is used. + local clang=n + if tc-is-clang; then + clang=y + fi + + # Send raw LDFLAGS so that --as-needed works + emake \ + V=1 \ + LDFLAGS="$(raw-ldflags)" \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTCXX="$(tc-getBUILD_CXX)" \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" \ + OBJDUMP="$(tc-getOBJDUMP)" \ + RANLIB="$(tc-getRANLIB)" \ + clang="${clang}" \ + "$@" +} + +src_configure() { + cd xen || die + + touch gentoo-config || die + if use arm; then + echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die + fi + if use debug; then + cat <<-EOF >> gentoo-config || die + CONFIG_DEBUG=y + CONFIG_CRASH_DEBUG=y +EOF + fi + if use flask; then + echo "CONFIG_XSM=y" >> gentoo-config || die + fi + + # remove flags + unset CFLAGS + + tc-ld-disable-gold # Bug 700374 + + xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig +} + +src_compile() { + xen_make -C xen +} + +src_install() { + # The 'make install' doesn't 'mkdir -p' the subdirs + if use uefi; then + mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die + fi + + xen_make DESTDIR="${D}" -C xen install + + if use uefi; then + secureboot_auto_sign --in-place + else + # make install likes to throw in some extra EFI bits if it built + rm -rf "${D}/usr/$(get_libdir)/efi" + fi +} diff --git a/app-emulation/xen/xen-4.17.4_pre2.ebuild b/app-emulation/xen/xen-4.17.4_pre2.ebuild new file mode 100644 index 000000000000..ea958743d3db --- /dev/null +++ b/app-emulation/xen/xen-4.17.4_pre2.ebuild @@ -0,0 +1,179 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit flag-o-matic mount-boot python-any-r1 secureboot toolchain-funcs + +if [[ ${PV} == *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://xenbits.xen.org/git-http/xen.git" + SRC_URI="" +else + KEYWORDS="amd64 ~arm -x86" + + XEN_GENTOO_PATCHSET_NUM=2 + XEN_GENTOO_PATCHSET_BASE=4.17.0 + XEN_PRE_PATCHSET_NUM=1 + XEN_PRE_VERSION_BASE=4.17.3 + + XEN_BASE_PV="${PV}" + if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then + XEN_BASE_PV="${XEN_PRE_VERSION_BASE}" + fi + + SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz" + + if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then + XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}" + XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2" + XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}" + fi + if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then + XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}" + XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}" + SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2" + XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}" + fi +fi + +DESCRIPTION="The Xen virtual machine monitor" +HOMEPAGE="https://xenproject.org" + +S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})" + +LICENSE="GPL-2" +SLOT="0" +IUSE="+boot-symlinks debug uefi flask" +REQUIRED_USE="arm? ( debug )" + +DEPEND="${PYTHON_DEPS} + uefi? ( >=sys-devel/binutils-2.22[multitarget] ) + !uefi? ( >=sys-devel/binutils-2.22 ) + flask? ( sys-apps/checkpolicy )" +RDEPEND="" +PDEPEND="~app-emulation/xen-tools-${PV}" + +# no tests are available for the hypervisor +# prevent the silliness of /usr/lib/debug/usr/lib/debug files +# prevent stripping of the debug info from the /usr/lib/debug/xen-syms +RESTRICT="test splitdebug strip" + +# Approved by QA team in bug #144032 +QA_WX_LOAD="boot/xen-syms-${PV}" + +pkg_setup() { + python-any-r1_pkg_setup + if [[ -z ${XEN_TARGET_ARCH} ]]; then + if use amd64; then + export XEN_TARGET_ARCH="x86_64" + elif use arm; then + export XEN_TARGET_ARCH="arm32" + elif use arm64; then + export XEN_TARGET_ARCH="arm64" + else + die "Unsupported architecture!" + fi + fi + use uefi && secureboot_pkg_setup +} + +src_prepare() { + if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then + eapply "${XEN_UPSTREAM_PATCHES_DIR}" + fi + + if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then + eapply "${XEN_GENTOO_PATCHES_DIR}" + fi + + # Symlinks do not work on fat32 volumes # 829765 + if ! use boot-symlinks || use uefi; then + eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch + fi + + # Workaround new gcc-11 options + sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die + + # Drop .config + sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop" + + if use uefi; then + export EFI_VENDOR="gentoo" + export EFI_MOUNTPOINT="/boot" + fi + + default +} + +xen_make() { + # Setting clang to either 'y' or 'n' tells Xen's build system + # whether or not clang is used. + local clang=n + if tc-is-clang; then + clang=y + fi + + # Send raw LDFLAGS so that --as-needed works + emake \ + V=1 \ + LDFLAGS="$(raw-ldflags)" \ + HOSTCC="$(tc-getBUILD_CC)" \ + HOSTCXX="$(tc-getBUILD_CXX)" \ + CC="$(tc-getCC)" \ + CXX="$(tc-getCXX)" \ + LD="$(tc-getLD)" \ + AR="$(tc-getAR)" \ + OBJDUMP="$(tc-getOBJDUMP)" \ + RANLIB="$(tc-getRANLIB)" \ + clang="${clang}" \ + "$@" +} + +src_configure() { + cd xen || die + + touch gentoo-config || die + if use arm; then + echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die + fi + if use debug; then + cat <<-EOF >> gentoo-config || die + CONFIG_DEBUG=y + CONFIG_CRASH_DEBUG=y +EOF + fi + if use flask; then + echo "CONFIG_XSM=y" >> gentoo-config || die + fi + + # remove flags + unset CFLAGS + + tc-ld-disable-gold # Bug 700374 + + xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig +} + +src_compile() { + xen_make -C xen +} + +src_install() { + # The 'make install' doesn't 'mkdir -p' the subdirs + if use uefi; then + mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die + fi + + xen_make DESTDIR="${D}" -C xen install + + if use uefi; then + secureboot_auto_sign --in-place + else + # make install likes to throw in some extra EFI bits if it built + rm -rf "${D}/usr/$(get_libdir)/efi" + fi +} diff --git a/app-emulation/xtrs/files/xtrs-4.9d-implicit.patch b/app-emulation/xtrs/files/xtrs-4.9d-implicit.patch new file mode 100644 index 000000000000..959c3fb375a7 --- /dev/null +++ b/app-emulation/xtrs/files/xtrs-4.9d-implicit.patch @@ -0,0 +1,35 @@ +https://bugs.gentoo.org/875674 + +--- xtrs-4.9d/trs_disk.c ++++ xtrs-4.9d/trs_disk.c +@@ -3137,7 +3137,7 @@ + } + + void +-real_restore(curdrive) ++real_restore(int curdrive) + { + #if __linux + DiskState *d = &disk[curdrive]; +--- xtrs-4.9d/trs_memory.c ++++ xtrs-4.9d/trs_memory.c +@@ -153,7 +153,7 @@ + memory_map = which + (trs_model << 4) + (romin << 2); + } + +-void mem_romin(state) ++void mem_romin(int state) + { + romin = (state & 1); + memory_map = (memory_map & ~4) + (romin << 2); +--- xtrs-4.9d/trs_printer.c ++++ xtrs-4.9d/trs_printer.c +@@ -18,7 +18,7 @@ + #include "z80.h" + #include "trs.h" + +-void trs_printer_write(value) ++void trs_printer_write(int value) + { + if(value == 0x0D) + { diff --git a/app-emulation/xtrs/metadata.xml b/app-emulation/xtrs/metadata.xml index c7db543a8141..21164efb7794 100644 --- a/app-emulation/xtrs/metadata.xml +++ b/app-emulation/xtrs/metadata.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> <email>ulm@gentoo.org</email> diff --git a/app-emulation/xtrs/xtrs-4.9d-r5.ebuild b/app-emulation/xtrs/xtrs-4.9d-r6.ebuild index 4785a873f452..0ed2d6293064 100644 --- a/app-emulation/xtrs/xtrs-4.9d-r5.ebuild +++ b/app-emulation/xtrs/xtrs-4.9d-r6.ebuild @@ -1,7 +1,7 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 -EAPI=6 +EAPI=8 inherit flag-o-matic toolchain-funcs readme.gentoo-r1 @@ -25,7 +25,10 @@ RDEPEND="sys-libs/ncurses:0= DEPEND="${RDEPEND} ls-dos? ( app-arch/unzip dev-util/xdelta:3 )" -PATCHES=("${FILESDIR}"/${P}-lcmod.patch) +PATCHES=( + "${FILESDIR}"/${P}-lcmod.patch + "${FILESDIR}"/${P}-implicit.patch +) src_prepare() { default @@ -62,10 +65,10 @@ src_install() { dodoc ChangeLog README xtrsrom4p.README cpmutil.html dskspec.html - DOC_CONTENTS="For copyright reasons, xtrs does not include actual ROM - images. Because of this, unless you supply your own ROM, xtrs will - not function in any mode except 'Model 4p' mode (a minimal free ROM - is included for this), which can be run like this: + local DOC_CONTENTS="For copyright reasons, xtrs does not include actual + ROM images. Because of this, unless you supply your own ROM, xtrs + will not function in any mode except 'Model 4p' mode (a minimal + free ROM is included for this), which can be run like this: \n\nxtrs -model 4p -diskdir /usr/share/xtrs \n\nIf you already own a copy of the ROM software (e.g., if you have a TRS-80 with this ROM), then you can make yourself a copy of this |