summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation')
-rw-r--r--app-emulation/86Box/86Box-4.0.1-r1.ebuild86
-rw-r--r--app-emulation/86Box/86Box-4.1.1-r1.ebuild (renamed from app-emulation/86Box/86Box-3.7.1.ebuild)19
-rw-r--r--app-emulation/86Box/Manifest3
-rw-r--r--app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch23
-rw-r--r--app-emulation/86Box/metadata.xml1
-rw-r--r--app-emulation/aqemu/Manifest1
-rw-r--r--app-emulation/aqemu/aqemu-0.9.2-r2.ebuild43
-rw-r--r--app-emulation/aqemu/files/aqemu-0.9.2-crash-fix.patch116
-rw-r--r--app-emulation/aqemu/files/aqemu-0.9.2-docs.patch15
-rw-r--r--app-emulation/aqemu/files/aqemu-0.9.2-include.patch10
-rw-r--r--app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch15
-rw-r--r--app-emulation/aranym/aranym-1.1.0-r1.ebuild (renamed from app-emulation/aranym/aranym-1.1.0.ebuild)18
-rw-r--r--app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch219
-rw-r--r--app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch37
-rw-r--r--app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch30
-rw-r--r--app-emulation/bochs/bochs-2.6.10.ebuild5
-rw-r--r--app-emulation/bochs/bochs-2.7.ebuild4
-rw-r--r--app-emulation/bochs/bochs-9999.ebuild4
-rw-r--r--app-emulation/cloud-hypervisor/Manifest2
-rw-r--r--app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild49
-rw-r--r--app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild44
-rw-r--r--app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config45
-rw-r--r--app-emulation/cloud-hypervisor/metadata.xml11
-rw-r--r--app-emulation/cloud-init/Manifest2
-rw-r--r--app-emulation/cloud-init/cloud-init-22.2.2.ebuild7
-rw-r--r--app-emulation/cloud-init/cloud-init-22.4.ebuild95
-rw-r--r--app-emulation/cloud-init/cloud-init-23.4.ebuild95
-rw-r--r--app-emulation/cloud-init/cloud-init-9999.ebuild8
-rw-r--r--app-emulation/coldfire/coldfire-0.3.1-r1.ebuild39
-rw-r--r--app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch12
-rw-r--r--app-emulation/crossover-bin/Manifest6
-rw-r--r--app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-22.0.0.ebuild)49
-rw-r--r--app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-21.2.0-r1.ebuild)79
-rw-r--r--app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild184
-rw-r--r--app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild174
-rw-r--r--app-emulation/crossover-bin/metadata.xml10
-rw-r--r--app-emulation/diskimage-builder/Manifest3
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-3.25.0.ebuild39
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild (renamed from app-emulation/diskimage-builder/diskimage-builder-3.24.0.ebuild)10
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-9999.ebuild10
-rw-r--r--app-emulation/dlx/Manifest1
-rw-r--r--app-emulation/dlx/dlx-1.5.20.ebuild29
-rw-r--r--app-emulation/dlx/metadata.xml5
-rw-r--r--app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild8
-rw-r--r--app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild4
-rw-r--r--app-emulation/dxvk/Manifest5
-rw-r--r--app-emulation/dxvk/dxvk-1.10.3-r1.ebuild (renamed from app-emulation/dxvk/dxvk-1.10.3.ebuild)38
-rw-r--r--app-emulation/dxvk/dxvk-2.3.1-r1.ebuild191
-rw-r--r--app-emulation/dxvk/dxvk-9999.ebuild88
-rw-r--r--app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch17
-rw-r--r--app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch14
-rw-r--r--app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch7
-rw-r--r--app-emulation/dynamips/Manifest2
-rw-r--r--app-emulation/dynamips/dynamips-0.2.23.ebuild (renamed from app-emulation/dynamips/dynamips-0.2.21.ebuild)13
-rw-r--r--app-emulation/dynamips/metadata.xml9
-rw-r--r--app-emulation/faudio/Manifest4
-rw-r--r--app-emulation/faudio/faudio-21.01.ebuild94
-rw-r--r--app-emulation/faudio/faudio-23.02.ebuild37
-rw-r--r--app-emulation/faudio/faudio-23.10.ebuild37
-rw-r--r--app-emulation/faudio/faudio-24.02.ebuild37
-rw-r--r--app-emulation/faudio/faudio-9999.ebuild94
-rw-r--r--app-emulation/faudio/files/faudio.pc11
-rw-r--r--app-emulation/faudio/metadata.xml17
-rw-r--r--app-emulation/firecracker-bin/Manifest12
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild (renamed from app-emulation/firecracker-bin/firecracker-bin-1.1.0.ebuild)11
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild (renamed from app-emulation/firecracker-bin/firecracker-bin-1.1.1.ebuild)11
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild (renamed from app-emulation/firecracker-bin/firecracker-bin-1.0.0.ebuild)13
-rw-r--r--app-emulation/firecracker-bin/metadata.xml3
-rw-r--r--app-emulation/free42/Manifest5
-rw-r--r--app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch64
-rw-r--r--app-emulation/free42/free42-3.1.3.ebuild (renamed from app-emulation/free42/free42-3.0.14.ebuild)6
-rw-r--r--app-emulation/free42/free42-3.1.7.ebuild (renamed from app-emulation/free42/free42-3.0.13.ebuild)15
-rw-r--r--app-emulation/free42/free42-3.1.8.ebuild45
-rw-r--r--app-emulation/fs-uae-launcher/Manifest3
-rw-r--r--app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.68.ebuild72
-rw-r--r--app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild (renamed from app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.66.ebuild)16
-rw-r--r--app-emulation/fs-uae/fs-uae-3.1.66.ebuild10
-rw-r--r--app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild (renamed from app-emulation/fuse-utils/fuse-utils-1.4.3-r1.ebuild)10
-rw-r--r--app-emulation/fuse/fuse-1.6.0-r1.ebuild (renamed from app-emulation/fuse/fuse-1.6.0.ebuild)16
-rw-r--r--app-emulation/gallium-nine-standalone/Manifest2
-rw-r--r--app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch34
-rw-r--r--app-emulation/gallium-nine-standalone/files/0.7-no-libwine.patch34
-rw-r--r--app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch12
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild4
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild (renamed from app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7-r1.ebuild)37
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild19
-rw-r--r--app-emulation/ganeti-os-simpleimage/Manifest1
-rw-r--r--app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild39
-rw-r--r--app-emulation/ganeti-os-simpleimage/metadata.xml11
-rw-r--r--app-emulation/genymotion-bin/Manifest2
-rw-r--r--app-emulation/genymotion-bin/genymotion-bin-3.2.1.ebuild116
-rw-r--r--app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild146
-rw-r--r--app-emulation/glean/Manifest2
-rw-r--r--app-emulation/glean/glean-1.18.2.ebuild26
-rw-r--r--app-emulation/glean/glean-1.23.0-r1.ebuild (renamed from app-emulation/glean/glean-1.19.0.ebuild)9
-rw-r--r--app-emulation/glean/glean-1.23.0.ebuild26
-rw-r--r--app-emulation/guestfs-tools/Manifest1
-rw-r--r--app-emulation/guestfs-tools/guestfs-tools-1.48.0.ebuild153
-rw-r--r--app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild23
-rw-r--r--app-emulation/gxemul/gxemul-0.6.2.ebuild4
-rw-r--r--app-emulation/hercules-sdl-crypto/Manifest1
-rw-r--r--app-emulation/hercules-sdl-crypto/files/cmakefix.patch155
-rw-r--r--app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-crypto/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl-decnumber/Manifest1
-rw-r--r--app-emulation/hercules-sdl-decnumber/files/cmakefix.patch159
-rw-r--r--app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-decnumber/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl-softfloat/Manifest1
-rw-r--r--app-emulation/hercules-sdl-softfloat/files/cmakefix.patch159
-rw-r--r--app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-softfloat/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl-telnet/Manifest1
-rw-r--r--app-emulation/hercules-sdl-telnet/files/cmakefix.patch155
-rw-r--r--app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild20
-rw-r--r--app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild14
-rw-r--r--app-emulation/hercules-sdl-telnet/metadata.xml18
-rw-r--r--app-emulation/hercules-sdl/Manifest1
-rw-r--r--app-emulation/hercules-sdl/files/gen_hashes.sh24
-rw-r--r--app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch29
-rw-r--r--app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild85
-rw-r--r--app-emulation/hercules-sdl/metadata.xml22
-rw-r--r--app-emulation/libcacard/Manifest2
-rw-r--r--app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch31
-rw-r--r--app-emulation/libcacard/libcacard-2.6.0.ebuild44
-rw-r--r--app-emulation/libcacard/libcacard-2.8.1.ebuild40
-rw-r--r--app-emulation/libcacard/metadata.xml3
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild8
-rw-r--r--app-emulation/libguestfs-appliance/metadata.xml15
-rw-r--r--app-emulation/libguestfs/Manifest4
-rw-r--r--app-emulation/libguestfs/files/1.44/0001-Check-for-caml_alloc_initialized_string-existence-ev.patch25
-rw-r--r--app-emulation/libguestfs/libguestfs-1.48.0.ebuild217
-rw-r--r--app-emulation/libguestfs/libguestfs-1.48.3.ebuild218
-rw-r--r--app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild (renamed from app-emulation/libguestfs/libguestfs-1.48.4.ebuild)45
-rw-r--r--app-emulation/libguestfs/metadata.xml2
-rw-r--r--app-emulation/libspectrum/libspectrum-1.5.0.ebuild9
-rw-r--r--app-emulation/libvirt-glib/Manifest1
-rw-r--r--app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch64
-rw-r--r--app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch50
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild9
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild48
-rw-r--r--app-emulation/libvirt-snmp/Manifest1
-rw-r--r--app-emulation/libvirt-snmp/files/libvirt-snmp.confd6
-rw-r--r--app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r126
-rw-r--r--app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild38
-rw-r--r--app-emulation/libvirt-snmp/metadata.xml5
-rw-r--r--app-emulation/libvirt/Manifest18
-rw-r--r--app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch42
-rw-r--r--app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch222
-rw-r--r--app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch84
-rw-r--r--app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch169
-rw-r--r--app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch51
-rw-r--r--app-emulation/libvirt/files/libvirt-8.1.0-docs-Fix-template-matching-in-page.xsl.patch62
-rw-r--r--app-emulation/libvirt/files/libvirt-8.2.0-fix-paths-for-apparmor.patch70
-rw-r--r--app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch36
-rw-r--r--app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch (renamed from app-emulation/libvirt/files/libvirt-8.2.0-do-not-use-sysconfig.patch)86
-rw-r--r--app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch (renamed from app-emulation/libvirt/files/libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch)17
-rw-r--r--app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch97
-rw-r--r--app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch79
-rw-r--r--app-emulation/libvirt/files/libvirtd.init-r192
-rw-r--r--app-emulation/libvirt/files/virtlockd.init-r22
-rw-r--r--app-emulation/libvirt/files/virtlogd.init-r22
-rw-r--r--app-emulation/libvirt/libvirt-10.0.0-r2.ebuild367
-rw-r--r--app-emulation/libvirt/libvirt-10.1.0-r1.ebuild366
-rw-r--r--app-emulation/libvirt/libvirt-10.2.0.ebuild (renamed from app-emulation/libvirt/libvirt-8.2.0.ebuild)74
-rw-r--r--app-emulation/libvirt/libvirt-10.3.0-r1.ebuild (renamed from app-emulation/libvirt/libvirt-7.7.0-r2.ebuild)114
-rw-r--r--app-emulation/libvirt/libvirt-9.8.0-r2.ebuild (renamed from app-emulation/libvirt/libvirt-8.7.0.ebuild)60
-rw-r--r--app-emulation/libvirt/libvirt-9.9.0-r2.ebuild367
-rw-r--r--app-emulation/libvirt/libvirt-9999.ebuild65
-rw-r--r--app-emulation/libvirt/metadata.xml8
-rw-r--r--app-emulation/nemu/Manifest3
-rw-r--r--app-emulation/nemu/metadata.xml9
-rw-r--r--app-emulation/nemu/nemu-3.0.0.ebuild4
-rw-r--r--app-emulation/nemu/nemu-3.1.0.ebuild (renamed from app-emulation/nemu/nemu-2.5.0-r1.ebuild)26
-rw-r--r--app-emulation/nemu/nemu-3.3.0.ebuild80
-rw-r--r--app-emulation/open-vm-tools/Manifest5
-rw-r--r--app-emulation/open-vm-tools/metadata.xml5
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-11.3.5_p18557794.ebuild149
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild (renamed from app-emulation/open-vm-tools/open-vm-tools-12.1.0.ebuild)8
-rw-r--r--app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild (renamed from app-emulation/open-vm-tools/open-vm-tools-12.0.5_p19716617.ebuild)12
-rw-r--r--app-emulation/pcem/pcem-17-r2.ebuild (renamed from app-emulation/pcem/pcem-17-r1.ebuild)4
-rw-r--r--app-emulation/phpvirtualbox/metadata.xml2
-rw-r--r--app-emulation/plus42/Manifest5
-rw-r--r--app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch64
-rw-r--r--app-emulation/plus42/files/plus42-1.0.4-fix-build-intel-lib.patch12
-rw-r--r--app-emulation/plus42/plus42-1.1.10.ebuild (renamed from app-emulation/plus42/plus42-1.0.10.ebuild)13
-rw-r--r--app-emulation/plus42/plus42-1.1.3.ebuild (renamed from app-emulation/plus42/plus42-1.0.9.ebuild)6
-rw-r--r--app-emulation/plus42/plus42-1.1.9.ebuild49
-rw-r--r--app-emulation/protontricks/Manifest4
-rw-r--r--app-emulation/protontricks/protontricks-1.10.5.ebuild (renamed from app-emulation/protontricks/protontricks-1.9.0.ebuild)15
-rw-r--r--app-emulation/protontricks/protontricks-1.11.1.ebuild (renamed from app-emulation/protontricks/protontricks-1.9.2.ebuild)15
-rw-r--r--app-emulation/punes/Manifest2
-rw-r--r--app-emulation/punes/files/punes-0.107_ffmpeg-configure.patch27
-rw-r--r--app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch33
-rw-r--r--app-emulation/punes/punes-0.107.ebuild64
-rw-r--r--app-emulation/punes/punes-0.111.ebuild63
-rw-r--r--app-emulation/q4wine/Manifest1
-rw-r--r--app-emulation/q4wine/metadata.xml5
-rw-r--r--app-emulation/q4wine/q4wine-1.3.12.ebuild56
-rw-r--r--app-emulation/q4wine/q4wine-1.3.13.ebuild6
-rw-r--r--app-emulation/qemu-guest-agent/Manifest7
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch10
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch11
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch17
-rw-r--r--app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch85
-rw-r--r--app-emulation/qemu-guest-agent/metadata.xml4
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild11
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild (renamed from app-emulation/qemu-guest-agent/qemu-guest-agent-4.2.0-r1.ebuild)39
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild (renamed from app-emulation/qemu-guest-agent/qemu-guest-agent-5.0.0.ebuild)38
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild81
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild82
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild89
-rw-r--r--app-emulation/qemu/Manifest18
-rw-r--r--app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch11
-rw-r--r--app-emulation/qemu/files/qemu-6.1.0-strings.patch26
-rw-r--r--app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch90
-rw-r--r--app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch36
-rw-r--r--app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch94
-rw-r--r--app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch182
-rw-r--r--app-emulation/qemu/files/qemu-7.1.0-strings.patch26
-rw-r--r--app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch45
-rw-r--r--app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch137
-rw-r--r--app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch29
-rw-r--r--app-emulation/qemu/files/qemu-8.0.0-make.patch13
-rw-r--r--app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch40
-rw-r--r--app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch (renamed from app-emulation/qemu/files/qemu-7.0.0-also-build-virtfs-proxy-helper.patch)18
-rw-r--r--app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch10
-rw-r--r--app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch64
-rw-r--r--app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch35
-rw-r--r--app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch42
-rw-r--r--app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch44
-rw-r--r--app-emulation/qemu/metadata.xml23
-rw-r--r--app-emulation/qemu/qemu-7.2.11.ebuild (renamed from app-emulation/qemu/qemu-7.1.0.ebuild)84
-rw-r--r--app-emulation/qemu/qemu-7.2.4.ebuild (renamed from app-emulation/qemu/qemu-7.0.0-r3.ebuild)151
-rw-r--r--app-emulation/qemu/qemu-8.0.5.ebuild972
-rw-r--r--app-emulation/qemu/qemu-8.1.5.ebuild972
-rw-r--r--app-emulation/qemu/qemu-8.2.3.ebuild992
-rw-r--r--app-emulation/qemu/qemu-9.0.0.ebuild996
-rw-r--r--app-emulation/qemu/qemu-9999.ebuild202
-rw-r--r--app-emulation/qtrvsim/Manifest1
-rw-r--r--app-emulation/qtrvsim/metadata.xml (renamed from app-emulation/aqemu/metadata.xml)8
-rw-r--r--app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild25
-rw-r--r--app-emulation/ruffle/Manifest993
-rw-r--r--app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch16
-rw-r--r--app-emulation/ruffle/ruffle-0_p20220816.ebuild515
-rw-r--r--app-emulation/ruffle/ruffle-0_p20220914.ebuild524
-rw-r--r--app-emulation/ruffle/ruffle-0_p20240422.ebuild767
-rw-r--r--app-emulation/ruffle/ruffle-9999.ebuild72
-rw-r--r--app-emulation/simh/metadata.xml3
-rw-r--r--app-emulation/ski/Manifest1
-rw-r--r--app-emulation/ski/ski-1.3.2-r4.ebuild8
-rw-r--r--app-emulation/ski/ski-1.4.0.ebuild45
-rw-r--r--app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch148
-rw-r--r--app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch33
-rw-r--r--app-emulation/softgun/softgun-0.22-r1.ebuild38
-rw-r--r--app-emulation/softgun/softgun-0.22.ebuild4
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild14
-rw-r--r--app-emulation/spice-protocol/spice-protocol-9999.ebuild13
-rw-r--r--app-emulation/spice-vdagent/Manifest2
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild63
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.21.0.ebuild67
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild14
-rw-r--r--app-emulation/spice/Manifest4
-rw-r--r--app-emulation/spice/metadata.xml3
-rw-r--r--app-emulation/spice/spice-0.15.1-r1.ebuild (renamed from app-emulation/spice/spice-0.15.0.ebuild)34
-rw-r--r--app-emulation/spice/spice-0.15.2.ebuild97
-rw-r--r--app-emulation/spice/spice-9999.ebuild88
-rw-r--r--app-emulation/spim/spim-8.0-r3.ebuild4
-rw-r--r--app-emulation/uxn/Manifest3
-rw-r--r--app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch20
-rw-r--r--app-emulation/uxn/files/uxn-build.sh.patch11
-rw-r--r--app-emulation/uxn/uxn-0_p20220815.ebuild53
-rw-r--r--app-emulation/uxn/uxn-0_p20220921.ebuild53
-rw-r--r--app-emulation/uxn/uxn-0_p20240304.ebuild72
-rw-r--r--app-emulation/uxn/uxn-9999.ebuild71
-rw-r--r--app-emulation/vagrant/Manifest4
-rw-r--r--app-emulation/vagrant/files/vagrant.in2
-rw-r--r--app-emulation/vagrant/vagrant-2.4.0-r1.ebuild (renamed from app-emulation/vagrant/vagrant-2.2.19.ebuild)71
-rw-r--r--app-emulation/vagrant/vagrant-2.4.1.ebuild (renamed from app-emulation/vagrant/vagrant-2.2.18-r1.ebuild)73
-rw-r--r--app-emulation/vendor-reset/Manifest3
-rw-r--r--app-emulation/vendor-reset/files/Fix-5.11-build.patch52
-rw-r--r--app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch23
-rw-r--r--app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch35
-rw-r--r--app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild (renamed from app-emulation/vendor-reset/vendor-reset-0.1.0.ebuild)31
-rw-r--r--app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r2.ebuild44
-rw-r--r--app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild (renamed from app-emulation/vendor-reset/vendor-reset-0.1.1_pre20220902.ebuild)24
-rw-r--r--app-emulation/vendor-reset/vendor-reset-9999.ebuild29
-rw-r--r--app-emulation/vice/Manifest2
-rw-r--r--app-emulation/vice/metadata.xml1
-rw-r--r--app-emulation/vice/vice-3.8-r1.ebuild (renamed from app-emulation/vice/vice-3.6.1-r2.ebuild)76
-rw-r--r--app-emulation/virt-firmware/Manifest1
-rw-r--r--app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful9
-rw-r--r--app-emulation/virt-firmware/metadata.xml19
-rw-r--r--app-emulation/virt-firmware/virt-firmware-24.4.ebuild52
-rw-r--r--app-emulation/virt-manager/Manifest2
-rw-r--r--app-emulation/virt-manager/files/virt-manager-4.0.0-setuptools-61-fix.patch34
-rw-r--r--app-emulation/virt-manager/virt-manager-3.2.0-r1.ebuild96
-rw-r--r--app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild (renamed from app-emulation/virt-manager/virt-manager-4.0.0.ebuild)64
-rw-r--r--app-emulation/virt-manager/virt-manager-4.1.0.ebuild8
-rw-r--r--app-emulation/virt-manager/virt-manager-9999.ebuild8
-rw-r--r--app-emulation/virt-viewer/Manifest1
-rw-r--r--app-emulation/virt-viewer/virt-viewer-10.0_p20210730.ebuild59
-rw-r--r--app-emulation/virt-viewer/virt-viewer-11.0.ebuild6
-rw-r--r--app-emulation/virt-what/Manifest1
-rw-r--r--app-emulation/virt-what/virt-what-1.21.ebuild2
-rw-r--r--app-emulation/virt-what/virt-what-1.25.ebuild24
-rw-r--r--app-emulation/virtio-win/Manifest5
-rw-r--r--app-emulation/virtio-win/files/README.gentoo15
-rw-r--r--app-emulation/virtio-win/metadata.xml11
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild30
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild (renamed from app-emulation/virtio-win/virtio-win-0.1.208.1.ebuild)16
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild (renamed from app-emulation/virtio-win/virtio-win-0.1.190.1.ebuild)18
-rw-r--r--app-emulation/virtiofsd/Manifest87
-rw-r--r--app-emulation/virtiofsd/metadata.xml15
-rw-r--r--app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild148
-rw-r--r--app-emulation/virtiofsd/virtiofsd-9999.ebuild148
-rw-r--r--app-emulation/virtualbox-additions/Manifest5
-rw-r--r--app-emulation/virtualbox-additions/metadata.xml8
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild (renamed from app-emulation/virtualbox-additions/virtualbox-additions-6.1.36.ebuild)14
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild25
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.ebuild (renamed from app-emulation/virtualbox-additions/virtualbox-additions-6.1.38.ebuild)16
-rw-r--r--app-emulation/virtualbox-extpack-oracle/Manifest5
-rw-r--r--app-emulation/virtualbox-extpack-oracle/metadata.xml8
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild (renamed from app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.36.ebuild)27
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild33
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.ebuild (renamed from app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.38.ebuild)32
-rw-r--r--app-emulation/virtualbox-guest-additions/Manifest7
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch242
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch24
-rw-r--r--app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd25
-rw-r--r--app-emulation/virtualbox-guest-additions/metadata.xml8
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild292
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild (renamed from app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.38.ebuild)111
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild (renamed from app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.36.ebuild)134
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild295
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild297
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.18.ebuild290
-rw-r--r--app-emulation/virtualbox-kvm/Manifest11
-rw-r--r--app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch147
-rw-r--r--app-emulation/virtualbox-kvm/files/10-virtualbox.rules7
-rw-r--r--app-emulation/virtualbox-kvm/files/vboxwebsrv-confd19
-rw-r--r--app-emulation/virtualbox-kvm/files/vboxwebsrv-initd21
-rw-r--r--app-emulation/virtualbox-kvm/files/virtualbox-4-config1
-rw-r--r--app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig47
-rw-r--r--app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch18
-rw-r--r--app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper119
-rw-r--r--app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd1
-rw-r--r--app-emulation/virtualbox-kvm/metadata.xml19
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild768
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240502.ebuild767
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240502.ebuild768
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild768
-rw-r--r--app-emulation/virtualbox-modules/Manifest5
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch44
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch27
-rw-r--r--app-emulation/virtualbox-modules/files/virtualbox.conf4
-rw-r--r--app-emulation/virtualbox-modules/metadata.xml11
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.36.ebuild65
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.38.ebuild65
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild38
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild38
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.ebuild34
-rw-r--r--app-emulation/virtualbox/Manifest11
-rw-r--r--app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch59
-rw-r--r--app-emulation/virtualbox/files/virtualbox-6.1.36-python3.10.patch16
-rw-r--r--app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch25
-rw-r--r--app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch43
-rw-r--r--app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch18
-rw-r--r--app-emulation/virtualbox/metadata.xml25
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild (renamed from app-emulation/virtualbox/virtualbox-6.1.38.ebuild)114
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild (renamed from app-emulation/virtualbox/virtualbox-6.1.36-r2.ebuild)444
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.18.ebuild741
-rw-r--r--app-emulation/virtualbox/virtualbox-9999.ebuild769
-rw-r--r--app-emulation/vkd3d-proton/Manifest10
-rw-r--r--app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch14
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild207
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild (renamed from app-emulation/vkd3d-proton/vkd3d-proton-2.6.ebuild)71
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild114
-rw-r--r--app-emulation/vkd3d/Manifest4
-rw-r--r--app-emulation/vkd3d/vkd3d-1.11.ebuild (renamed from app-emulation/vkd3d/vkd3d-1.5.ebuild)15
-rw-r--r--app-emulation/vkd3d/vkd3d-1.2.ebuild43
-rw-r--r--app-emulation/vkd3d/vkd3d-1.4-r1.ebuild44
-rw-r--r--app-emulation/wine-gecko/Manifest4
-rw-r--r--app-emulation/wine-gecko/metadata.xml3
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild40
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild40
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild37
-rw-r--r--app-emulation/wine-mono/Manifest12
-rw-r--r--app-emulation/wine-mono/metadata.xml12
-rw-r--r--app-emulation/wine-mono/wine-mono-7.0.0.ebuild19
-rw-r--r--app-emulation/wine-mono/wine-mono-7.3.0.ebuild29
-rw-r--r--app-emulation/wine-mono/wine-mono-7.4.0.ebuild26
-rw-r--r--app-emulation/wine-mono/wine-mono-8.1.0.ebuild26
-rw-r--r--app-emulation/wine-mono/wine-mono-9.0.0.ebuild (renamed from app-emulation/wine-mono/wine-mono-7.3.1.ebuild)4
-rw-r--r--app-emulation/wine-mono/wine-mono-9.1.0.ebuild26
-rw-r--r--app-emulation/wine-proton/Manifest4
-rw-r--r--app-emulation/wine-proton/files/README.gentoo6
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch20
-rw-r--r--app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch36
-rw-r--r--app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch8
-rw-r--r--app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch14
-rw-r--r--app-emulation/wine-proton/metadata.xml8
-rw-r--r--app-emulation/wine-proton/wine-proton-7.0.6.ebuild (renamed from app-emulation/wine-proton/wine-proton-7.0.9999.ebuild)109
-rw-r--r--app-emulation/wine-proton/wine-proton-8.0.5c.ebuild (renamed from app-emulation/wine-proton/wine-proton-7.0.4.ebuild)160
-rw-r--r--app-emulation/wine-proton/wine-proton-9.0.1.ebuild419
-rw-r--r--app-emulation/wine-proton/wine-proton-9.0.9999.ebuild421
-rw-r--r--app-emulation/wine-staging/Manifest17
-rw-r--r--app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch (renamed from app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch)20
-rw-r--r--app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch15
-rw-r--r--app-emulation/wine-staging/files/wine-staging-9.8-musl-ioctls-header.patch30
-rw-r--r--app-emulation/wine-staging/metadata.xml18
-rw-r--r--app-emulation/wine-staging/wine-staging-7.16.ebuild551
-rw-r--r--app-emulation/wine-staging/wine-staging-7.17.ebuild352
-rw-r--r--app-emulation/wine-staging/wine-staging-9.0.ebuild480
-rw-r--r--app-emulation/wine-staging/wine-staging-9.5.ebuild483
-rw-r--r--app-emulation/wine-staging/wine-staging-9.6.ebuild478
-rw-r--r--app-emulation/wine-staging/wine-staging-9.7.ebuild478
-rw-r--r--app-emulation/wine-staging/wine-staging-9.8.ebuild479
-rw-r--r--app-emulation/wine-staging/wine-staging-9999.ebuild314
-rw-r--r--app-emulation/wine-vanilla/Manifest12
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch36
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch15
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-9.8-musl-ioctls-header.patch30
-rw-r--r--app-emulation/wine-vanilla/metadata.xml14
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild474
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild (renamed from app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild)117
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.16.ebuild476
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild (renamed from app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild)165
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild (renamed from app-emulation/wine-vanilla/wine-vanilla-7.18.ebuild)260
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild (renamed from app-emulation/wine-staging/wine-staging-7.18.ebuild)303
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild431
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild431
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild432
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9999.ebuild261
-rw-r--r--app-emulation/winetricks/Manifest4
-rw-r--r--app-emulation/winetricks/winetricks-20230212.ebuild (renamed from app-emulation/winetricks/winetricks-20210206.ebuild)4
-rw-r--r--app-emulation/winetricks/winetricks-20240105.ebuild (renamed from app-emulation/winetricks/winetricks-20220411.ebuild)6
-rw-r--r--app-emulation/winetricks/winetricks-99999999.ebuild4
-rw-r--r--app-emulation/x48/files/x48-0.6.4-configure.patch11
-rw-r--r--app-emulation/x48/x48-0.6.4-r2.ebuild4
-rw-r--r--app-emulation/x48/x48-0.6.4-r3.ebuild70
-rw-r--r--app-emulation/xcpc/metadata.xml1
-rw-r--r--app-emulation/xen-tools/Manifest19
-rw-r--r--app-emulation/xen-tools/files/xen-tools-4.15.1-brotli-gcc11.patch33
-rw-r--r--app-emulation/xen-tools/files/xenstored.initd-r12
-rw-r--r--app-emulation/xen-tools/xen-tools-4.15.4_pre.ebuild532
-rw-r--r--app-emulation/xen-tools/xen-tools-4.17.4.ebuild (renamed from app-emulation/xen-tools/xen-tools-4.16.2.ebuild)57
-rw-r--r--app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild (renamed from app-emulation/xen-tools/xen-tools-4.15.3.ebuild)104
-rw-r--r--app-emulation/xen/Manifest8
-rw-r--r--app-emulation/xen/files/xen-4.15-efi.patch38
-rw-r--r--app-emulation/xen/files/xen-4.15-flask.patch13
-rw-r--r--app-emulation/xen/metadata.xml2
-rw-r--r--app-emulation/xen/xen-4.15.3.ebuild183
-rw-r--r--app-emulation/xen/xen-4.17.4.ebuild (renamed from app-emulation/xen/xen-4.16.2.ebuild)33
-rw-r--r--app-emulation/xen/xen-4.17.4_pre2.ebuild (renamed from app-emulation/xen/xen-4.15.4_pre.ebuild)68
-rw-r--r--app-emulation/xtrs/files/xtrs-4.9d-implicit.patch35
-rw-r--r--app-emulation/xtrs/xtrs-4.9d-r6.ebuild (renamed from app-emulation/xtrs/xtrs-4.9d-r5.ebuild)17
460 files changed, 27780 insertions, 10198 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-3.7.1.ebuild b/app-emulation/86Box/86Box-4.1.1-r1.ebuild
index ab0476394bfd..1acbe1d341bd 100644
--- a/app-emulation/86Box/86Box-3.7.1.ebuild
+++ b/app-emulation/86Box/86Box-4.1.1-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,7 +12,7 @@ SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="dinput +dynarec experimental +fluidsynth +munt new-dynarec +openal +qt5 +threads"
+IUSE="experimental +fluidsynth +munt new-dynarec +openal qt5 +qt6 +threads"
DEPEND="
app-emulation/faudio
@@ -25,6 +25,7 @@ DEPEND="
net-libs/libslirp
sys-libs/zlib
qt5? ( x11-libs/libXi )
+ qt6? ( x11-libs/libXi )
"
RDEPEND="
@@ -39,6 +40,12 @@ RDEPEND="
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
)
"
@@ -53,16 +60,18 @@ src_configure() {
local mycmakeargs=(
-DCPPTHREADS="$(usex threads)"
-DDEV_BRANCH="$(usex experimental)"
- -DDINPUT="$(usex dinput)"
- -DDYNAREC="$(usex dynarec)"
+ -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"
- -DQT="$(usex qt5)"
+ -DRTMIDI="ON"
+ -DQT="$(usex qt5 'ON' $(usex qt6))"
-DRELEASE="ON"
+ $(usex qt6 '-DUSE_QT6=ON')
)
cmake_src_configure
diff --git a/app-emulation/86Box/Manifest b/app-emulation/86Box/Manifest
index 307e39504eee..afe37841ea36 100644
--- a/app-emulation/86Box/Manifest
+++ b/app-emulation/86Box/Manifest
@@ -1 +1,2 @@
-DIST 86Box-3.7.1.tar.gz 4454288 BLAKE2B cd2678b1b0beb6fc37145cd38139a27f7789af8fc98bcb6d98644d60642edf618be6aa5509085826539a6146042f14bec59aabd5f1b38725b41d630390d23b11 SHA512 38abe254ea24eb6430eb87eca517bf7b318188df0f0f6d6dec5a04fefac143d591cea303398b7179fe72dc80cd0393778f9c64012b6183a6c8a6e615d40340e7
+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
index 40e447a8f2ff..a06647c003b6 100644
--- a/app-emulation/86Box/metadata.xml
+++ b/app-emulation/86Box/metadata.xml
@@ -12,7 +12,6 @@
</longdescription>
<use>
<flag name="dinput">Enable legacy Dinput mode instead of Xinput for older controllers.</flag>
- <flag name="dynarec">Enable dynamic recompiler, which should provide a better emulation speed.</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>
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-r2.ebuild b/app-emulation/aqemu/aqemu-0.9.2-r2.ebuild
deleted file mode 100644
index 6a2be65aaa60..000000000000
--- a/app-emulation/aqemu/aqemu-0.9.2-r2.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake
-
-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"
- "${FILESDIR}/${PN}-0.9.2-include.patch"
- "${FILESDIR}/${PN}-0.9.2-docs.patch"
- "${FILESDIR}/${PN}-0.9.2-crash-fix.patch"
-)
-
-src_configure() {
- local mycmakeargs=(
- -DMAN_PAGE_COMPRESSOR=OFF
- -DWITHOUT_EMBEDDED_DISPLAY=$(usex vnc OFF ON)
- )
-
- cmake_src_configure
-}
diff --git a/app-emulation/aqemu/files/aqemu-0.9.2-crash-fix.patch b/app-emulation/aqemu/files/aqemu-0.9.2-crash-fix.patch
deleted file mode 100644
index ef4c1a146461..000000000000
--- a/app-emulation/aqemu/files/aqemu-0.9.2-crash-fix.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-https://github.com/tobimensch/aqemu/pull/116
-https://bugs.gentoo.org/738020
-
-From dc19121a923c71eed248cd6310b9b06ec0af6abe Mon Sep 17 00:00:00 2001
-From: Moskaliou Nikita <44800696+nikitamos@users.noreply.github.com>
-Date: Sun, 5 Dec 2021 19:36:44 +0300
-Subject: [PATCH] Change widgets names
-
-Several widgets in the src/Main_Window.ui file had the same name ("widget"), for several users AQEMU crashed with SEGFAULT. So, the names were changed and now everything works fine
---- a/src/Main_Window.ui
-+++ b/src/Main_Window.ui
-@@ -226,7 +226,7 @@
- </widget>
- </item>
- <item>
-- <widget class="QWidget" name="widget" native="true">
-+ <widget class="QWidget" name="general_Machine_Sets" native="true">
- <layout class="QGridLayout" name="gridLayout_12">
- <property name="leftMargin">
- <number>24</number>
-@@ -275,9 +275,6 @@
- <property name="maxCount">
- <number>64</number>
- </property>
-- <property name="sizeAdjustPolicy">
-- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
-- </property>
- </widget>
- </item>
- <item row="3" column="1">
-@@ -294,9 +291,6 @@
- <property name="maxCount">
- <number>16</number>
- </property>
-- <property name="sizeAdjustPolicy">
-- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
-- </property>
- <item>
- <property name="text">
- <string>1</string>
-@@ -395,9 +389,6 @@
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
-- <property name="sizeAdjustPolicy">
-- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
-- </property>
- </widget>
- </item>
- <item row="2" column="2">
-@@ -526,9 +517,6 @@
- <property name="maxCount">
- <number>8</number>
- </property>
-- <property name="sizeAdjustPolicy">
-- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
-- </property>
- <item>
- <property name="text">
- <string>Floppy</string>
-@@ -586,9 +574,6 @@
- <property name="maxCount">
- <number>8</number>
- </property>
-- <property name="sizeAdjustPolicy">
-- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
-- </property>
- </widget>
- </item>
- <item row="3" column="0">
-@@ -618,9 +603,6 @@
- <property name="maxCount">
- <number>128</number>
- </property>
-- <property name="sizeAdjustPolicy">
-- <enum>QComboBox::AdjustToMinimumContentsLength</enum>
-- </property>
- <item>
- <property name="text">
- <string>en-us (default)</string>
-@@ -1333,7 +1315,7 @@
- </widget>
- </item>
- </layout>
-- <zorder>widget</zorder>
-+ <zorder>general_Machine_Sets</zorder>
- <zorder>GB_Options</zorder>
- <zorder>GB_Audio</zorder>
- <zorder>GB_Memory</zorder>
-@@ -2457,7 +2439,7 @@
- </layout>
- </item>
- <item row="1" column="0" colspan="2">
-- <widget class="QWidget" name="widget" native="true">
-+ <widget class="QWidget" name="protocol_Sets" native="true">
- <layout class="QHBoxLayout" name="Widget_Redirection_Protocol">
- <property name="spacing">
- <number>6</number>
-@@ -2515,7 +2497,7 @@
- </widget>
- </item>
- <item row="2" column="0" colspan="2">
-- <widget class="QWidget" name="widget" native="true">
-+ <widget class="QWidget" name="ip_Sets" native="true">
- <layout class="QHBoxLayout" name="Widget_Redirection_Net">
- <property name="spacing">
- <number>6</number>
-@@ -3018,7 +3000,7 @@
- <x>0</x>
- <y>0</y>
- <width>982</width>
-- <height>32</height>
-+ <height>22</height>
- </rect>
- </property>
- <widget class="QMenu" name="menuVM">
diff --git a/app-emulation/aqemu/files/aqemu-0.9.2-docs.patch b/app-emulation/aqemu/files/aqemu-0.9.2-docs.patch
deleted file mode 100644
index e3fab7fbf209..000000000000
--- a/app-emulation/aqemu/files/aqemu-0.9.2-docs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -273,9 +273,9 @@ MACRO( create_docs _sources )
- ENDFOREACH( curFile )
- ENDMACRO( create_docs )
-
--CREATE_DOCS( docs_bz2 AUTHORS CHANGELOG README TODO )
--ADD_CUSTOM_TARGET( docs ALL DEPENDS ${docs_bz2} )
--INSTALL( FILES ${docs_bz2} DESTINATION share/doc/aqemu )
-+#CREATE_DOCS( docs_bz2 AUTHORS CHANGELOG README TODO )
-+#ADD_CUSTOM_TARGET( docs ALL DEPENDS ${docs_bz2} )
-+#INSTALL( FILES ${docs_bz2} DESTINATION share/doc/aqemu )
-
- # Build RCC files (GUI icons)
- MACRO( pack_icons _sources )
diff --git a/app-emulation/aqemu/files/aqemu-0.9.2-include.patch b/app-emulation/aqemu/files/aqemu-0.9.2-include.patch
deleted file mode 100644
index 98a14068a7cd..000000000000
--- a/app-emulation/aqemu/files/aqemu-0.9.2-include.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/docopt/docopt_value.h
-+++ b/src/docopt/docopt_value.h
-@@ -13,6 +13,7 @@
- #include <vector>
- #include <functional> // std::hash
- #include <iosfwd>
-+#include <stdexcept>
-
- namespace docopt {
-
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/aranym/aranym-1.1.0.ebuild b/app-emulation/aranym/aranym-1.1.0-r1.ebuild
index 291f5a97220e..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 toolchain-funcs 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 )
@@ -40,6 +40,9 @@ 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}"
@@ -51,6 +54,13 @@ 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)
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/bochs/bochs-2.6.10.ebuild b/app-emulation/bochs/bochs-2.6.10.ebuild
index c4f9fde9ba89..da275ab22599 100644
--- a/app-emulation/bochs/bochs-2.6.10.ebuild
+++ b/app-emulation/bochs/bochs-2.6.10.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="LGPL-ed pc emulator"
HOMEPAGE="http://bochs.sourceforge.net/"
-SRC_URI="mirror://sourceforge/bochs/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/bochs/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
@@ -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.7.ebuild b/app-emulation/bochs/bochs-2.7.ebuild
index 0191aeeca226..cbfb55b92ffe 100644
--- a/app-emulation/bochs/bochs-2.7.ebuild
+++ b/app-emulation/bochs/bochs-2.7.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
DESCRIPTION="LGPL-ed pc emulator"
HOMEPAGE="http://bochs.sourceforge.net/"
-SRC_URI="mirror://sourceforge/bochs/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/bochs/${P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
diff --git a/app-emulation/bochs/bochs-9999.ebuild b/app-emulation/bochs/bochs-9999.ebuild
index 2ddaf54249b1..280702aad06e 100644
--- a/app-emulation/bochs/bochs-9999.ebuild
+++ b/app-emulation/bochs/bochs-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit subversion
DESCRIPTION="LGPL-ed pc emulator"
HOMEPAGE="http://bochs.sourceforge.net/"
-#SRC_URI="mirror://sourceforge/bochs/${P}.tar.gz"
+#SRC_URI="https://downloads.sourceforge.net/bochs/${P}.tar.gz"
ESVN_REPO_URI="svn://svn.code.sf.net/p/bochs/code/trunk/bochs"
LICENSE="LGPL-2.1"
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 683f977d1154..a1fdc85deb9c 100644
--- a/app-emulation/cloud-init/Manifest
+++ b/app-emulation/cloud-init/Manifest
@@ -1 +1,3 @@
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-22.2.2.ebuild b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
index 082f34e59987..a1d0ec08c413 100644
--- a/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
+++ b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ EAPI=8
# Disabled for now: bug #850628
# https://bugs.launchpad.net/cloud-init/+bug/1978328
#DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_10 )
inherit distutils-r1 udev
@@ -23,7 +23,7 @@ HOMEPAGE="https://launchpad.net/cloud-init"
LICENSE="GPL-3"
SLOT="0"
-IUSE="test"
+IUSE="selinux test"
RESTRICT="!test? ( test )"
CDEPEND="
@@ -53,6 +53,7 @@ RDEPEND="
sys-apps/iproute2
sys-fs/growpart
virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
"
distutils_enable_tests pytest
diff --git a/app-emulation/cloud-init/cloud-init-22.4.ebuild b/app-emulation/cloud-init/cloud-init-22.4.ebuild
new file mode 100644
index 000000000000..839d6105a832
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-22.4.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2023 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 )
+
+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/httpretty-0.7.1[${PYTHON_USEDEP}]
+ dev-python/mock[${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-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 0c21e628855e..7bb69ee6336a 100644
--- a/app-emulation/cloud-init/cloud-init-9999.ebuild
+++ b/app-emulation/cloud-init/cloud-init-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,7 +6,7 @@ EAPI=8
# Disabled for now: bug #850628
#DISTUTILS_USE_PEP517=setuptools
# https://bugs.launchpad.net/cloud-init/+bug/1978328
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_10 python3_11 python3_12 )
inherit distutils-r1 udev
@@ -23,6 +23,7 @@ HOMEPAGE="https://launchpad.net/cloud-init"
LICENSE="GPL-3"
SLOT="0"
+IUSE="selinux"
CDEPEND="
dev-python/jinja[${PYTHON_USEDEP}]
@@ -38,8 +39,8 @@ CDEPEND="
BDEPEND="
${CDEPEND}
test? (
- >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
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}]
@@ -51,6 +52,7 @@ RDEPEND="
sys-apps/iproute2
sys-fs/growpart
virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
"
distutils_enable_tests pytest
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/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/crossover-bin/Manifest b/app-emulation/crossover-bin/Manifest
index 3fb125e49ab3..cdf8db6e0822 100644
--- a/app-emulation/crossover-bin/Manifest
+++ b/app-emulation/crossover-bin/Manifest
@@ -1,2 +1,4 @@
-DIST install-crossover-21.2.0.bin 313966852 BLAKE2B 746b16a1e093adf344fa827e5c6b9a439e690003bf3eb30b32b9a30017f1697c21bc5c9e196736cc25e24daeed3ee3a809b20d44e0005bfd45ab542ede6c2d44 SHA512 a8ba1396e05119122dc0d813bc408fc0a2a3adc5c805ce15aea8e98a6a27d980eabafaf7a727f4cf1c30d68e456e8d82b83438e404cbf41db05d569f8832a9ec
-DIST install-crossover-22.0.0.bin 334896678 BLAKE2B 12e25c832107b2ed4466c560f949b8af8f70d2d1ac9ac5a105ba65cd77557e4a341d3a3b76539c04b2e5ce574f101fc88ec6bdbc284738785fd25aae3a605ff6 SHA512 4bb99abeb587b7ba8bfc2a4851d85fd211bad6fe2a7af496aa0859f9834a9b5432e517e89980e28b6eb412d4f50badb695edbd3e112ea2fcfbdbb29e05072859
+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-22.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild
index ecf8726e59ac..8f1820b96a94 100644
--- a/app-emulation/crossover-bin/crossover-bin-22.0.0.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
@@ -17,38 +17,12 @@ IUSE="+capi +cups doc +gphoto2 +gsm +gstreamer +jpeg +lcms ldap +mp3 +nls osmesa
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="bindist test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="
- opt/cxoffice/lib/.*
- opt/cxoffice/lib64/.*
- opt/cxoffice/bin/cabextract
- 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/vkd3d-compiler
- opt/cxoffice/bin/wineloader
- opt/cxoffice/bin/wineloader64
-"
-QA_TEXTRELS="
- opt/cxoffice/bin/wineserver32
- opt/cxoffice/lib/wine/*
- opt/cxoffice/lib/libwine.so*
-"
-
+QA_PREBUILT="*"
S="${WORKDIR}"
DEPEND=""
BDEPEND="${PYTHON_DEPS}
- app-arch/cpio
+ app-alternatives/cpio
app-arch/unzip
dev-lang/perl
dev-util/bbe
@@ -58,6 +32,7 @@ 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 )
@@ -89,12 +64,15 @@ RDEPEND="${DEPEND}
vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] )
dev-libs/glib:2
dev-libs/gobject-introspection
- dev-libs/openssl:0
+ || (
+ 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(-)]
@@ -115,10 +93,7 @@ RDEPEND="${DEPEND}
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
x11-libs/vte:2.91[introspection]
- || (
- sys-libs/libxcrypt[compat]
- sys-libs/glibc[crypt(+)]
- )
+ sys-libs/libxcrypt[compat]
"
src_unpack() {
@@ -192,7 +167,7 @@ src_install() {
-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"
diff --git a/app-emulation/crossover-bin/crossover-bin-21.2.0-r1.ebuild b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild
index be7f3937855d..5639acd7f096 100644
--- a/app-emulation/crossover-bin/crossover-bin-21.2.0-r1.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
@@ -13,42 +13,16 @@ SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crosso
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"
+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_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="
- opt/cxoffice/lib/.*
- opt/cxoffice/lib64/.*
- opt/cxoffice/bin/cabextract
- 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/vkd3d-compiler
- opt/cxoffice/bin/wineloader
- opt/cxoffice/bin/wineloader64
-"
-QA_TEXTRELS="
- opt/cxoffice/bin/wineserver32
- opt/cxoffice/lib/wine/*
- opt/cxoffice/lib/libwine.so*
-"
-
+QA_PREBUILT="*"
S="${WORKDIR}"
DEPEND=""
BDEPEND="${PYTHON_DEPS}
- app-arch/cpio
+ app-alternatives/cpio
app-arch/unzip
dev-lang/perl
dev-util/bbe
@@ -58,12 +32,12 @@ 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(-)] )
- gsm? ( media-sound/gsm[abi_x86_32(-)] )
jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] )
lcms? ( media-libs/lcms:2 )
ldap? ( net-nds/openldap[abi_x86_32(-)] )
@@ -84,22 +58,17 @@ 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.30[abi_x86_32(-)]
- 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:0
+ 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: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(-)]
@@ -120,10 +89,7 @@ RDEPEND="${DEPEND}
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
x11-libs/vte:2.91[introspection]
- || (
- sys-libs/libxcrypt[compat]
- sys-libs/glibc[crypt(+)]
- )
+ sys-libs/libxcrypt[compat]
"
src_unpack() {
@@ -145,7 +111,7 @@ src_install() {
-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"
+ "${S}/lib/perl/CXMenuXDG.pm" || die
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover
@@ -197,35 +163,28 @@ src_install() {
-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
- bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/wpcap.dll.so" >tmp || die
- bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib64/wine/wpcap.dll.so" >tmp64 || die
- mv tmp "${ED}/opt/cxoffice/lib/wine/wpcap.dll.so" || die
- mv tmp64 "${ED}/opt/cxoffice/lib64/wine/wpcap.dll.so" || die
+ 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/wldap32.dll.so || die
+ 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/opencl.dll.so || die
+ 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 8131715a0a34..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 "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>pacho@gentoo.org</email>
- <name>Pacho Ramos</name>
-</maintainer>
+ <maintainer type="person">
+ <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/diskimage-builder/Manifest b/app-emulation/diskimage-builder/Manifest
index b2572f5be13d..6d2f7d256e5a 100644
--- a/app-emulation/diskimage-builder/Manifest
+++ b/app-emulation/diskimage-builder/Manifest
@@ -1,2 +1 @@
-DIST diskimage-builder-3.24.0.tar.gz 511917 BLAKE2B 4db5132d449c932202ede7a4d9e9f5711b667c39f3dad51dcd68ec81f49a71bafc4bfb09de363a5d16cac89942385a0b43b1adb31424581ccf0c903c0df5f80e SHA512 1e98e8c8886f2d046ccb2b02a647e294ba2d8bd691168678ef81ddab889f8945bae3c46e5e26ad03e0b2311c367bf3dd5d4bd2f07baab6e2002433ca1dfe0f74
-DIST diskimage-builder-3.25.0.tar.gz 512950 BLAKE2B 3a0c5658df5bc2498d4656b77c152dba9bedbbc342b53b20b88e89327cbb98e9c8e5dd8de97cc0b7b0bd31f01cd4d425e8e2f158bde24746b08a460db4ac79da SHA512 e602a9e8e3a8cef1c3cc62fcb3074183a4028c70f2b9e9c27416b6244773eb7cf2aa33a5bf38dca5f10dcfbee5d80eaffa9287e14beccb065cec3ddaf7a76ff7
+DIST diskimage-builder-3.32.0.tar.gz 532942 BLAKE2B e436e5268b649dc5e050f66b098e527b79f172df00da93f23c115e3d88692c3f6546774c2046c8d4722cdd4139af4d05701725496f283b60e08ce0885b70de66 SHA512 6f5c2e0df428bf85b847fdc0ceebfdb66823b92b5b903de247d0e83ff2588c36e6f9786ea91f252c838cedeec22913f491d79643e77d83ad1fb690da7566af47
diff --git a/app-emulation/diskimage-builder/diskimage-builder-3.25.0.ebuild b/app-emulation/diskimage-builder/diskimage-builder-3.25.0.ebuild
deleted file mode 100644
index bbd75fbe73fb..000000000000
--- a/app-emulation/diskimage-builder/diskimage-builder-3.25.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-inherit distutils-r1
-
-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"
- KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-CDEPEND=">=dev-python/pbr-2.0.0[${PYTHON_USEDEP}]
- !~dev-python/pbr-2.1.0[${PYTHON_USEDEP}]"
-DEPEND="${CDEPEND}"
-RDEPEND="${CDEPEND}
- >=dev-python/Babel-2.3.4[${PYTHON_USEDEP}]
- !~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/networkx-1.10[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
- >=dev-python/six-1.10.0[${PYTHON_USEDEP}]
- >=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
- app-emulation/qemu
- sys-block/parted
- sys-fs/multipath-tools
- sys-fs/dosfstools
- sys-apps/gptfdisk
- !dev-python/dib-utils[${PYTHON_USEDEP}]"
diff --git a/app-emulation/diskimage-builder/diskimage-builder-3.24.0.ebuild b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild
index cfd2e2377172..ee67baf77be4 100644
--- a/app-emulation/diskimage-builder/diskimage-builder-3.24.0.ebuild
+++ b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild
@@ -1,10 +1,11 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-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"
@@ -13,7 +14,7 @@ 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 bbd75fbe73fb..f94dda84287d 100644
--- a/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
+++ b/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
@@ -1,10 +1,11 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-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"
@@ -13,7 +14,7 @@ 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/dlx/Manifest b/app-emulation/dlx/Manifest
deleted file mode 100644
index ca76a9e2a7dc..000000000000
--- a/app-emulation/dlx/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST dlx-1.5.20.zip 137039 BLAKE2B 99dbb2e5bcd89b3e9f3d8edc2fe7e7cc0a59f870f597a40a61a993b95d8b27c4f95b8d0490fdbcbc15693040d6e3abdfb8b0062e109916f5299c3da3c203d755 SHA512 5c832c2a486a82574ae03ec0cb4e30bfec74ef968658a38fbd896a1383dcdc558501baef7cbbdf99df453ba2840622d16c1619f9c5fe34b6cd058a7718bd3790
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 e8a15ee06720..000000000000
--- a/app-emulation/dlx/dlx-1.5.20.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2021 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"
-
-BDEPEND="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 85e4ed814fa2..000000000000
--- a/app-emulation/dlx/metadata.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?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/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/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
index 2dbe9f043651..33bcb2602637 100644
--- a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
+++ b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2002-2022 Gentoo Authors
+# Copyright 2002-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
@@ -12,7 +12,7 @@ COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71"
DESCRIPTION="DOS Emulator"
HOMEPAGE="http://www.dosemu.org/"
-SRC_URI="mirror://sourceforge/dosemu/${P_FD}.tgz
+SRC_URI="https://downloads.sourceforge.net/dosemu/${P_FD}.tgz
https://dev.gentoo.org/~sam/distfiles/${P}.zip"
LICENSE="GPL-2"
diff --git a/app-emulation/dxvk/Manifest b/app-emulation/dxvk/Manifest
index ed8ac54cc289..1469578046c4 100644
--- a/app-emulation/dxvk/Manifest
+++ b/app-emulation/dxvk/Manifest
@@ -1 +1,6 @@
DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d2e9ae86a9d6216b206c09f79eac696ee7dfe33d0bef55e727f51301c36eb89bfa3b3f429d7d5fafc1eebdcb4 SHA512 8995b231b3f3650beda04c01f30186d10a373075a4774b4ecbfb3bbeb4de99c57555f1db0611e5c61c6a411a7215e0faf228f9861f6b7adae6fc365e8056f7e3
+DIST dxvk-2.3.1.tar.gz 1005669 BLAKE2B d78448fcde9d600f7206dfa606fca4069e7563bb8b181fbc172691d6c45586904ae529550926a03612ed3cc1f2a2dff00990638125c1d7ce6179d3cd3ba8df04 SHA512 085567ac263872eb93d776ce7cf982690603e240a977dbb51ad69344af387fd745536ca62819afd4a809732a6f2d22b36c3df9538decf37dec527973d41e392f
+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.ebuild b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild
index 396ea6f4c2e6..701ccb453a83 100644
--- a/app-emulation/dxvk/dxvk-1.10.3.ebuild
+++ b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild
@@ -1,8 +1,12 @@
-# Copyright 2022 Gentoo Authors
+# 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
@@ -11,7 +15,7 @@ if [[ ${PV} == 9999 ]]; then
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"
+ KEYWORDS="-* amd64 x86"
fi
DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
@@ -29,6 +33,11 @@ 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
@@ -59,15 +68,27 @@ src_prepare() {
src_configure() {
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
- # AVX has a history of causing issues with this package, disable for safety
- # https://github.com/Tk-Glitch/PKGBUILDS/issues/515
+ # 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 '-fstack-protector*' #870136
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
@@ -128,11 +149,4 @@ pkg_postinst() {
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
-
- # don't try to keep wine-*[vulkan] in RDEPEND, but still give a warning
- local wine
- for wine in app-emulation/wine-{vanilla,staging}; do
- has_version ${wine} && ! has_version ${wine}[vulkan] &&
- ewarn "${wine} was not built with USE=vulkan, ${PN} will not be usable with it"
- done
}
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..640326b8a12d
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild
@@ -0,0 +1,191 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..13} )
+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
+ "${FILESDIR}"/${PN}-2.3.1-gcc14.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-9999.ebuild b/app-emulation/dxvk/dxvk-9999.ebuild
index 5bb629139707..9db73b208248 100644
--- a/app-emulation/dxvk/dxvk-9999.ebuild
+++ b/app-emulation/dxvk/dxvk-9999.ebuild
@@ -1,33 +1,62 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
+PYTHON_COMPAT=( python3_{10..13} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
MULTILIB_COMPAT=( abi_x86_{32,64} )
-inherit flag-o-matic meson-multilib
+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
- SRC_URI="https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ 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/"
-LICENSE="ZLIB"
+# 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"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip"
REQUIRED_USE="
|| ( d3d9 d3d10 d3d11 dxgi )
d3d10? ( d3d11 )
- dxgi? ( d3d11 )"
+ d3d11? ( dxgi )
+"
BDEPEND="
+ ${PYTHON_DEPS}
dev-util/glslang
- !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+ "${FILESDIR}"/${PN}-2.3.1-gcc14.patch
+)
pkg_pretend() {
[[ ${MERGE_TYPE} == binary ]] && return
@@ -51,6 +80,14 @@ pkg_pretend() {
}
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
@@ -59,15 +96,27 @@ src_prepare() {
src_configure() {
use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
- # AVX has a history of causing issues with this package, disable for safety
- # https://github.com/Tk-Glitch/PKGBUILDS/issues/515
+ # 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 '-fstack-protector*' #870136
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
@@ -88,11 +137,12 @@ multilib_src_configure() {
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 !debug --strip) # portage won't strip .dll, so allow it here
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
)
meson_src_configure
@@ -116,6 +166,8 @@ pkg_postinst() {
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."
@@ -128,10 +180,12 @@ pkg_postinst() {
elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
fi
- # don't try to keep wine-*[vulkan] in RDEPEND, but still give a warning
- local wine
- for wine in app-emulation/wine-{vanilla,staging}; do
- has_version ${wine} && ! has_version ${wine}[vulkan] &&
- ewarn "${wine} was not built with USE=vulkan, ${PN} will not be usable with it"
- done
+ 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/files/dxvk-2.3.1-gcc14.patch b/app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch
new file mode 100644
index 000000000000..957735b1909e
--- /dev/null
+++ b/app-emulation/dxvk/files/dxvk-2.3.1-gcc14.patch
@@ -0,0 +1,7 @@
+for std::remove_if
+--- a/src/d3d9/d3d9_mem.cpp
++++ b/src/d3d9/d3d9_mem.cpp
+@@ -5,2 +5,3 @@
+ #include "../util/util_likely.h"
++#include <algorithm>
+ #include <utility>
diff --git a/app-emulation/dynamips/Manifest b/app-emulation/dynamips/Manifest
index 4c2341a41c36..d3d379eb9542 100644
--- a/app-emulation/dynamips/Manifest
+++ b/app-emulation/dynamips/Manifest
@@ -1 +1 @@
-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.21.ebuild b/app-emulation/dynamips/dynamips-0.2.23.ebuild
index ad971daa108b..1a0741cc4406 100644
--- a/app-emulation/dynamips/dynamips-0.2.21.ebuild
+++ b/app-emulation/dynamips/dynamips-0.2.23.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit cmake
@@ -9,19 +9,16 @@ 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
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" )
@@ -35,7 +32,7 @@ src_prepare() {
src_configure() {
local mycmakeargs=(
-DANY_COMPILER=1
- -DENABLE_IPV6="$(usex ipv6)"
+ -DENABLE_IPV6=yes
)
cmake_src_configure
}
diff --git a/app-emulation/dynamips/metadata.xml b/app-emulation/dynamips/metadata.xml
index d2d1525cfb39..82c5a4ca25bc 100644
--- a/app-emulation/dynamips/metadata.xml
+++ b/app-emulation/dynamips/metadata.xml
@@ -1,7 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <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>
<remote-id type="github">GNS3/dynamips</remote-id>
diff --git a/app-emulation/faudio/Manifest b/app-emulation/faudio/Manifest
index 900869b8ed3d..8309fa7609e5 100644
--- a/app-emulation/faudio/Manifest
+++ b/app-emulation/faudio/Manifest
@@ -1 +1,3 @@
-DIST FAudio-21.01.tar.gz 1134752 BLAKE2B 3acf80172744bfdc6fb44e373ee2a159ed4d49713fec38a8c6447d66c345445a435e1eb1656552289a634e3a628cfcf7df979a2d155edca1aef0c0334629424e SHA512 69405a28fdf3ff5026992bdd1d40d61653b834dac3ef2697a0e794deac2fa6257fe74b19d2fe225ce25a1ae3caec7082106f5ab6ea6109cc61e520b903d35b80
+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-21.01.ebuild b/app-emulation/faudio/faudio-21.01.ebuild
deleted file mode 100644
index 7da4264317ac..000000000000
--- a/app-emulation/faudio/faudio-21.01.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-MULTILIB_COMPAT=( abi_x86_{32,64} )
-
-inherit cmake-multilib virtualx multilib-build
-
-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 )"
-
-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="${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)"
- "-DDUMP_VOICES=$(usex dumpvoices ON OFF)"
- "-DGSTREAMER=$(usex gstreamer ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- cmake_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake_build
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake_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 e767f198d064..000000000000
--- a/app-emulation/faudio/faudio-9999.ebuild
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-MULTILIB_COMPAT=( abi_x86_{32,64} )
-
-inherit cmake-multilib virtualx multilib-build
-
-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 )"
-
-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="${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)"
- "-DDUMP_VOICES=$(usex dumpvoices ON OFF)"
- "-DGSTREAMER=$(usex gstreamer ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- cmake_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake_build
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake_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/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 697202e2f1d7..430772900c80 100644
--- a/app-emulation/faudio/metadata.xml
+++ b/app-emulation/faudio/metadata.xml
@@ -1,26 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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="test">Build and run faudio testsuite.</flag>
- <flag name="utils">Build all faudio utilities.</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>
</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 18ea8eeb33e1..f1969674bc5a 100644
--- a/app-emulation/firecracker-bin/Manifest
+++ b/app-emulation/firecracker-bin/Manifest
@@ -1,6 +1,6 @@
-DIST firecracker-v1.0.0-aarch64.tgz 1645541 BLAKE2B 4ddc94567209078cd6449f52b77ec56514d7a6a284f3ca9736379070ec0048b5ae03159903ca7c85ba08732f4c341d4140165479b289be6cecc0de02e94bbd60 SHA512 3294d4f86b493841e00be26b8843add4cd04bd73a9006b22def101c5aa064489bd3287bdc1b3bcb6a4534205c36aeefe26f28a0fa934ae655cd24ac397175f09
-DIST firecracker-v1.0.0-x86_64.tgz 1670233 BLAKE2B a715514f8497a694d29c33872f3521c11098f7b86e035b7ebe4ba9d912b60be9f1b6ecd03e60fa515223f72b7962613907855bb63d64650a8a62e2c23acd0233 SHA512 ecfae6adde808bbb1829c3fcf47e7ffe5eeeeca6d68c73b8d631015c09463b4912d5d66f46e0a68fef671498875567e14631ae370a5049d70f2976cf7fb93314
-DIST firecracker-v1.1.0-aarch64.tgz 1872949 BLAKE2B 41d898e3b22a7e53ce3581d1e74b970b393c2677ced7a7f9ceb70f39a3e89214c849728b005b26c38668364f36f8b9c7ec7661d60886f5ea3b7a154625d6ec83 SHA512 b04a4d9a0b1e7606efad5c1a019c346c7ac725d8acb92b393bcf0669f0ae690385e673ea81f44b171854dcc065d3fb59fbddd3e91db6eac78de05713a4d8505e
-DIST firecracker-v1.1.0-x86_64.tgz 1896567 BLAKE2B 4f3cee9c144e152c15d64d80c708a1969bc57fdc951f8fe54f40a778b83a1ef7141cd0a6abe6014c20aa20958f0e02749712ebfb39896006e0291d94a12d743e SHA512 ca7efe3208560e4e7e50a4b57f875cea0677383f3867bf961747c44aa51ebe66abfc104e5c0e80783d286c95d38b97751c6cda1840942f463c0749c9340fee5a
-DIST firecracker-v1.1.1-aarch64.tgz 1872407 BLAKE2B 16dd7c0f4fc46beacb3cd72f5c671dafd4fe738886754df7540b62b4243bbcd6fd9a25d34a0e295082e32ed250f504789a5af9bc0b22187d51f2165af13e3e53 SHA512 8d776daafcf13c5c971008b6e3e60538e17a96a245869526320a7f9a2a341cf9429c6dd2d22bf044c4192da613d7cca5b5814d71ab0d895009f60b9140aff1b9
-DIST firecracker-v1.1.1-x86_64.tgz 1894446 BLAKE2B c2af407efb6a494b3e84a480164f0fa7b8537fe659e36531738a96b013f6bad016a7c44490e65cfcea1fc8c709be64f738134b88793889179c5e8e31ac84489f SHA512 ad5e52f690f18c2c9809b586fa9be35e06ac52b5ba672ad62acb872b7f9e8de91d2dfe200629ad392709e1363ea41169f8d816be482fd46dd6c38c1b9a8e28a9
+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-1.1.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild
index d91fe042b78a..e280abe72c3d 100644
--- a/app-emulation/firecracker-bin/firecracker-bin-1.1.0.ebuild
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,10 +23,12 @@ RESTRICT="test strip"
RDEPEND="acct-group/kvm"
-QA_PREBUILT="usr/bin/firecracker
+QA_PREBUILT="usr/bin/cpu-template-helper
+ usr/bin/firecracker
usr/bin/jailer
usr/bin/rebase-snap
- usr/bin/seccompiler-bin"
+ usr/bin/seccompiler-bin
+ usr/bin/snapshot-editor"
S="${WORKDIR}"
@@ -66,6 +68,7 @@ pkg_pretend() {
src_compile() { :; }
src_install() {
+ local my_arch
if use amd64; then
my_arch=x86_64
elif use arm64; then
@@ -75,8 +78,10 @@ src_install() {
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.1.1.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild
index d91fe042b78a..4e841c1ab26e 100644
--- a/app-emulation/firecracker-bin/firecracker-bin-1.1.1.ebuild
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,10 +23,12 @@ RESTRICT="test strip"
RDEPEND="acct-group/kvm"
-QA_PREBUILT="usr/bin/firecracker
+QA_PREBUILT="usr/bin/cpu-template-helper
+ usr/bin/firecracker
usr/bin/jailer
usr/bin/rebase-snap
- usr/bin/seccompiler-bin"
+ usr/bin/seccompiler-bin
+ usr/bin/snapshot-editor"
S="${WORKDIR}"
@@ -66,6 +68,7 @@ pkg_pretend() {
src_compile() { :; }
src_install() {
+ local my_arch
if use amd64; then
my_arch=x86_64
elif use arm64; then
@@ -75,8 +78,10 @@ src_install() {
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.0.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild
index 4f3f39a24ec6..4e841c1ab26e 100644
--- a/app-emulation/firecracker-bin/firecracker-bin-1.0.0.ebuild
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -23,9 +23,12 @@ RESTRICT="test strip"
RDEPEND="acct-group/kvm"
-QA_PREBUILT="usr/bin/firecracker
+QA_PREBUILT="usr/bin/cpu-template-helper
+ usr/bin/firecracker
usr/bin/jailer
- usr/bin/seccompiler-bin"
+ usr/bin/rebase-snap
+ usr/bin/seccompiler-bin
+ usr/bin/snapshot-editor"
S="${WORKDIR}"
@@ -65,6 +68,7 @@ pkg_pretend() {
src_compile() { :; }
src_install() {
+ local my_arch
if use amd64; then
my_arch=x86_64
elif use arm64; then
@@ -74,7 +78,10 @@ src_install() {
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 55286390011d..60d11bb309b0 100644
--- a/app-emulation/firecracker-bin/metadata.xml
+++ b/app-emulation/firecracker-bin/metadata.xml
@@ -9,4 +9,7 @@
<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/free42/Manifest b/app-emulation/free42/Manifest
index 7aeb6b9463a2..5df084dd5ee5 100644
--- a/app-emulation/free42/Manifest
+++ b/app-emulation/free42/Manifest
@@ -1,3 +1,4 @@
DIST free42-nologo-2.5.24.tgz 7423183 BLAKE2B e10425af8d5c30be6ab5b728130bbe3068c414e24f033b65623951f915bcfeea0672857ff8def3e9f2766aba79411a1022d4b83592281567de38e82613d8a832 SHA512 a0702c3e4b2f3f38f73c54de4e51da8d1dc90585b253d1ae087d59dfabbe83be9c80086df8540cb6420dae8c6e766cd1ccce875d9bcb94ecbc85791e3fa89b8b
-DIST free42-nologo-3.0.13.tgz 7458844 BLAKE2B 3b09aaf0dc177ddc9db49a0f09c91f7c6a3346303266ed280fa57403e6864a4d88471dcab8c0e1ddf1b96653d4609f83f4102fc169902a70098b3260f48d9099 SHA512 6037e86962157a2293915d2bd9343f7ddcddcbb346e98fe339a7ef1784c98249fb55c69c0cf6370a79db4628197ac851d4c4c05ec610a2911fa9c3b00a6d077d
-DIST free42-nologo-3.0.14.tgz 7459191 BLAKE2B 35da329a6883fc8e83b59310b3df458111f90e25d032610af38c932cba0b4c33eddb63fe04902516c8f5b178ae7bd83d5775ebf63a9889dbbeb71fd99be3fe8d SHA512 d8ae0b5fd5004b6989365b9ed0ce037ae88ad59112022c8c552752bee613476b193f29199ce43c685eb30ab64a4d33aa33eb0a91c0c5ff0c09102bfc5c0e2d07
+DIST free42-nologo-3.1.3.tgz 7461009 BLAKE2B 915954de24a31f89f112d0d5e13ed01bd6a1e341549c8a86f463858e4071fc0a4751e94a6a257d561da570fd3705250d740c741925ee2b022a50966b8d5b16f8 SHA512 5ad6e6702a789c81d8942c4030606e44112fc21f1af6e5e23f21825115cabbc03cbcb142351d5d0451f5bf8d603d653b783ebe1293fa7ebfb04c93dfdea3455d
+DIST free42-nologo-3.1.7.tgz 7464073 BLAKE2B 0cff2d3292f45fc7341f8ed084c931da6a635498a62b7a20cc250df64a16d44a1c18a260e701971e2e7d68e11b1b84aa301405cd08c5e11b39e31f59a78647cc SHA512 2464385acf58aa17091d94ae81dde8e6e7f543c728c31cc03f1bc45a9ed5af9b27a3db41624222fd29ea61fe18541af9350e3e4369c54744c7b2a4dc799034fc
+DIST free42-nologo-3.1.8.tgz 7464179 BLAKE2B 122175508b2da42f101fae37d7c1627ef802d6e21af9cfb4114b657591f0ba1011a109ec3d75823911d3342fdd02e84a58553e616cd0b4c6288b5d39d9648250 SHA512 ef350d963a11c1a195024f57532a22771a3d0d9b7058bf38557e81c943e7cbd8b500472275b7094be3f7f01c3edf557cf3a3ee2d493cb756d108211b7391a4bc
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..c9cde2fbda2c
--- /dev/null
+++ b/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch
@@ -0,0 +1,64 @@
+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,10 @@
+ ;;
+ 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
++$MK $OS_ARG A=a AR_CMD="${AR:-ar} rv" 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-3.0.14.ebuild b/app-emulation/free42/free42-3.1.3.ebuild
index 9bbccf08da85..1fd58bbcf2cf 100644
--- a/app-emulation/free42/free42-3.0.14.ebuild
+++ b/app-emulation/free42/free42-3.1.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -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
@@ -29,7 +29,7 @@ S="${WORKDIR}/${MY_PV}"
PATCHES=(
"${FILESDIR}/${PN}-3.0.14-fix-makefile.patch"
- "${FILESDIR}/${PN}-2.5.3-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
)
src_compile() {
diff --git a/app-emulation/free42/free42-3.0.13.ebuild b/app-emulation/free42/free42-3.1.7.ebuild
index 1163a40ac12c..063f0e457429 100644
--- a/app-emulation/free42/free42-3.0.13.ebuild
+++ b/app-emulation/free42/free42-3.1.7.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,32 +10,27 @@ 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"
-DEPEND="dev-libs/atk
+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}-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-3.1.8.ebuild b/app-emulation/free42/free42-3.1.8.ebuild
new file mode 100644
index 000000000000..063f0e457429
--- /dev/null
+++ b/app-emulation/free42/free42-3.1.8.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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"
+
+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}-3.0.14-fix-makefile.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
+)
+
+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/free42bin gtk/free42dec
+}
diff --git a/app-emulation/fs-uae-launcher/Manifest b/app-emulation/fs-uae-launcher/Manifest
index b530bfe1eadf..42be2cdab6a4 100644
--- a/app-emulation/fs-uae-launcher/Manifest
+++ b/app-emulation/fs-uae-launcher/Manifest
@@ -1,2 +1 @@
-DIST fs-uae-launcher-3.1.66.tar.xz 7730328 BLAKE2B 68e141658d267c0bc574b216be5c99d10dff23d153e13cccc6a19c5abe618657ce3faf5c685e604ef55927a0dc713c0606f9e1f41e3bcd0015aeb232b9266713 SHA512 6232f43a0a41e67d912b277294079608808a7243512e7970900fab2be483ba82da99eaae547c41be059828c1f5d316e9b58ab8018651c9643b2b72cf7eb6f67e
-DIST fs-uae-launcher-3.1.68.tar.xz 7736036 BLAKE2B b2b14d568efa8c00b45497dea1bf73ac0b2522171269903f50ee68eff7e990f54c1b836af84a0b338caffd159fe3f638e6326db95f86482e190238e75894decd SHA512 a637117602c7276b60350ac3bb9c69eec4c18454efd4024e7b822da897eee0f9299f406e4126771f753b75f29d53591e9bbe3e4cbc016dda1ec063e73fe51f07
+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.1.68.ebuild b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.68.ebuild
deleted file mode 100644
index f0f95ef7d072..000000000000
--- a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.68.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8,9,10} )
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_SETUPTOOLS=no
-
-inherit distutils-r1 xdg
-
-DESCRIPTION="PyQt5-based launcher for FS-UAE"
-HOMEPAGE="https://fs-uae.net/"
-SRC_URI="https://fs-uae.net/files/FS-UAE-Launcher/Stable/${PV}/${P}.tar.xz"
-LICENSE="GPL-2"
-SLOT="0"
-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_USEDEP},declarative,gui,network,opengl,widgets]
- dev-python/pyopengl[${PYTHON_USEDEP}]
- dev-python/requests[${PYTHON_USEDEP}]
- lha? ( dev-python/python-lhafile[${PYTHON_USEDEP}] )
- ')
-"
-
-BDEPEND="
- sys-devel/gettext
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.0.0-ROMs.patch
-)
-
-python_compile_all() {
- emake
-}
-
-python_install() {
- local dir=${EPREFIX}/usr/share/${PN}
- distutils-r1_python_install --install-lib="${dir}" --install-scripts="${dir}"
-}
-
-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!"
- elog
- elog " - By default, FS-UAE creates its directories under Documents/FS-UAE."
- elog " If your Documents directory is not configured according to the XDG"
- elog " user diretory spec, ~/FS-UAE will be used as a fallback."
- elog
- elog " - You can override this by putting the path to the desired base"
- elog " directory in a special config file. The config file will be read"
- elog " from ~/.config/fs-uae/base-dir by both FS-UAE and FS-UAE Launcher"
- elog " if it exists."
- elog
- elog " Alternatively, you can start FS-UAE and/or FS-UAE Launcher with"
- elog " --base-dir=/path/to/desired/dir"
-}
diff --git a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.66.ebuild b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild
index 79ca9670131e..d76e5f987497 100644
--- a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.66.ebuild
+++ b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8,9} )
-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
@@ -37,16 +37,10 @@ PATCHES=(
)
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
}
diff --git a/app-emulation/fs-uae/fs-uae-3.1.66.ebuild b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
index 2853da73fb7d..a8e64081c609 100644
--- a/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
+++ b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
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/"
@@ -56,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 \
diff --git a/app-emulation/fuse-utils/fuse-utils-1.4.3-r1.ebuild b/app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild
index ed13eca91e09..151ccbc9e61a 100644
--- a/app-emulation/fuse-utils/fuse-utils-1.4.3-r1.ebuild
+++ b/app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild
@@ -1,23 +1,23 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit autotools
DESCRIPTION="Utils for the Free Unix Spectrum Emulator by Philip Kendall"
HOMEPAGE="http://fuse-emulator.sourceforge.net"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/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[audiofile?,gcrypt?,zlib?]
audiofile? ( >=media-libs/audiofile-0.3.6 )
gcrypt? ( dev-libs/libgcrypt )
- jpeg? ( virtual/jpeg:0 )
+ jpeg? ( media-libs/libjpeg-turbo:= )
png? ( media-libs/libpng:0 )
zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}"
diff --git a/app-emulation/fuse/fuse-1.6.0.ebuild b/app-emulation/fuse/fuse-1.6.0-r1.ebuild
index 0cd318ba0934..0099b7ffcc40 100644
--- a/app-emulation/fuse/fuse-1.6.0.ebuild
+++ b/app-emulation/fuse/fuse-1.6.0-r1.ebuild
@@ -1,17 +1,17 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+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"
+SRC_URI="https://downloads.sourceforge.net/fuse-emulator/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+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:
@@ -21,7 +21,8 @@ IUSE="alsa ao backend-X backend-fbcon +backend-gtk3 backend-sdl backend-svga gpm
# 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 )"
+ ?? ( backend-X backend-fbcon backend-gtk3 backend-sdl backend-svga )
+ png? ( zlib )"
RDEPEND="
>=app-emulation/libspectrum-1.5.0[zlib?]
@@ -35,7 +36,7 @@ RDEPEND="
gpm? ( backend-fbcon? ( sys-libs/gpm ) )
joystick? ( !backend-sdl? ( media-libs/libjsw ) )
png? ( media-libs/libpng:0= )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
xml? ( dev-libs/libxml2:2 )
zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}
@@ -64,7 +65,8 @@ _fuse_audio_driver() {
}
src_prepare() {
- xdg_src_prepare
+ default
+ xdg_environment_reset
eautoreconf
# Bug #854522
diff --git a/app-emulation/gallium-nine-standalone/Manifest b/app-emulation/gallium-nine-standalone/Manifest
index 9d0095b1d5aa..90d5abcd33ea 100644
--- a/app-emulation/gallium-nine-standalone/Manifest
+++ b/app-emulation/gallium-nine-standalone/Manifest
@@ -1,2 +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.7-no-libwine.patch b/app-emulation/gallium-nine-standalone/files/0.7-no-libwine.patch
deleted file mode 100644
index abcf7ad4ea3b..000000000000
--- a/app-emulation/gallium-nine-standalone/files/0.7-no-libwine.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From bddb53abdd1a77b1c019457f7eea4a6404a5e492 Mon Sep 17 00:00:00 2001
-From: Andre Heider <a.heider@gmail.com>
-Date: Sun, 17 Jan 2021 11:42:57 +0100
-Subject: [PATCH] meson: stop checking for libwine
-
-From the WINE 6.0 release notes:
-The libwine library is no longer used, but it's still provided to
-support running Winelib modules built against older versions. It is
-deprecated however, and will be removed in a future Wine release.
-
-libwine wasn't used anymore anyway, this just ensures that this tree can
-be built against future WINE versions.
----
- meson.build | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 0969777..47ee51a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -35,12 +35,10 @@ code = '''#ifndef __WINE__
- #error 1
- #endif'''
-
--if not cc.compiles(code, name: 'winelib check')
-+if not cc.compiles(code, name: 'winegcc check')
- error('A WINE cross compiler is required')
- endif
-
--dep_wine = cc.find_library('wine')
--
- if not cc.has_header_symbol('windows.h', 'wine_get_unix_file_name')
- error('WINE headers not found')
- endif
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.8-r1.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
index d9a079e97a24..fdf6d7e33058 100644
--- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -34,7 +34,7 @@ DEPEND="
${RDEPEND}
virtual/pkgconfig
virtual/wine[${MULTILIB_USEDEP}]
- >=dev-util/meson-0.50.1
+ >=dev-build/meson-0.50.1
"
PATCHES=(
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7-r1.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild
index 1529b6ac411d..c34f0b868b29 100644
--- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7-r1.ebuild
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 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 toolchain-funcs
@@ -32,15 +32,17 @@ RDEPEND="
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-no-libwine.patch
- "${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() {
@@ -62,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
}
@@ -86,18 +88,3 @@ multilib_src_configure() {
)
meson_src_configure
}
-
-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-9999.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
index d9a079e97a24..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,7 +1,7 @@
-# Copyright 1999-2021 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 toolchain-funcs
@@ -32,14 +32,17 @@ RDEPEND="
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.8-cross-files.patch
- "${FILESDIR}"/0.3-nine-dll-path.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
}
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 36557a3cd30b..573dc28b4118 100644
--- a/app-emulation/genymotion-bin/Manifest
+++ b/app-emulation/genymotion-bin/Manifest
@@ -1 +1 @@
-DIST genymotion-3.2.1-linux_x64.bin 48264053 BLAKE2B 961b2480ed72ad29e1b71d98cedf98cb724e42032539445aa19e2783f2d714f389d983aa5d886e8f759a1a77585725daa1084ffac3d7083f72de78ccab46af77 SHA512 47589913c66dac42e107420574cdc1fd7ea6db8dacfa16c0173a72207f77d0bedf72e6c6643453b1b83e1e7d906ea52e79e3876d3d687bb689f251ce3bfa8385
+DIST genymotion-3.6.0-linux_x64.bin 103911915 BLAKE2B 2c7174404b29a71174fc04de96285475e1800880f79fb70c455539c2a658a305a4cd8a541c545024c3130458081b5a94e493478a47126905fae5e104afbd3efd SHA512 ff05bb91edf05c38d68e3dec16dd21f6fcc50bf31e03411f46b9a3a71ca3f9139705e54b8650c8ab44295a2ebb49aa262e169faecea1f6bb8dd385785440f245
diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.2.1.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.2.1.ebuild
deleted file mode 100644
index 5cf358b040a3..000000000000
--- a/app-emulation/genymotion-bin/genymotion-bin-3.2.1.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 1999-2021 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
- || (
- dev-libs/openssl-compat:1.0.0
- =dev-libs/openssl-1.0*:0
- )
- >=dev-libs/hiredis-1.0.0
- sys-apps/util-linux
- virtual/opengl
-"
-
-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"
-}
-
-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}"/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/glean/Manifest b/app-emulation/glean/Manifest
index d52d3b3a5b3f..3a8cffe9e55b 100644
--- a/app-emulation/glean/Manifest
+++ b/app-emulation/glean/Manifest
@@ -1,3 +1 @@
-DIST glean-1.18.2.tar.gz 67642 BLAKE2B b346fc63b361e7c7bf0b8fc100da4a047004950aff3e17fce96d47ae5a7887828a09f4b107f2af1afcf9d866e5bc0857049ddd2d9c49413e9fe4b61d1de99fd3 SHA512 de80c06952ebbbc24c8cf198f61be788fb32974652c8253787ed5a165e26bb162b48c84836779420bb7c331edeb50a7796f5a2ff578d2e612068c5fbadd343c7
-DIST glean-1.19.0.tar.gz 68806 BLAKE2B 14569fafe05ee0abd626c8302d54721d321b1c69bd0e72bb850c2fab7d7c49a0c5f27c20e4542e5c32a818d51f1fc29e8a14ff730ebbc4619399e710e6b9f9d4 SHA512 a4d063a921f6dac51d2e610121d359f289817cf57a52fadd6b8fd2c8c7f761433920c5d43b415edcaf3c4956bb67b3c19274aa6ec061b057a6bcb975d2662cd0
DIST glean-1.23.0.tar.gz 76426 BLAKE2B bca6d2da0393bb28392d3c9ab7708cf4b053e4736203b9c26bc278a52c6a829abead13ecb63ebb60ade9a4127ebba9dd560b75b765c3a168ea389025b07638a0 SHA512 4eca5ccd18bd7864fdecd35b483e5da6a0854c076d0266f802b70b7838de61790c9237f8928807a45d6845fa8ca9a37e2228653326759204483803b28de191ee
diff --git a/app-emulation/glean/glean-1.18.2.ebuild b/app-emulation/glean/glean-1.18.2.ebuild
deleted file mode 100644
index bd5b679fef7c..000000000000
--- a/app-emulation/glean/glean-1.18.2.ebuild
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit distutils-r1
-
-DESCRIPTION="Simple program to write static config from config-drive"
-HOMEPAGE="https://opendev.org/opendev/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.19.0.ebuild b/app-emulation/glean/glean-1.23.0-r1.ebuild
index bd5b679fef7c..d5c813a3e0ad 100644
--- a/app-emulation/glean/glean-1.19.0.ebuild
+++ b/app-emulation/glean/glean-1.23.0-r1.ebuild
@@ -1,16 +1,15 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-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://opendev.org/opendev/glean"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
diff --git a/app-emulation/glean/glean-1.23.0.ebuild b/app-emulation/glean/glean-1.23.0.ebuild
deleted file mode 100644
index 2d07441e5a1c..000000000000
--- a/app-emulation/glean/glean-1.23.0.ebuild
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9,10} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit distutils-r1
-
-DESCRIPTION="Simple program to write static config from config-drive"
-HOMEPAGE="https://opendev.org/opendev/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/guestfs-tools/Manifest b/app-emulation/guestfs-tools/Manifest
index f6beef729b99..f8739c8d818b 100644
--- a/app-emulation/guestfs-tools/Manifest
+++ b/app-emulation/guestfs-tools/Manifest
@@ -1,2 +1 @@
-DIST guestfs-tools-1.48.0.tar.gz 12682919 BLAKE2B 27b4e5c47af222691b067c19e997112acaf0360cc9c089dedb0327959ff8d80ff929e2fea369f9895ed6e1fc80a339ca89db3b9eb32cf23328fc71972447a13e SHA512 8576ef0e283a02a112f785e8f1656b41c93be29e12617ee8c83033b90758736ea3c2d4ecfb446a86c7913e2c0b39a7c5666e8ad22682419cc877543a3825c489
DIST guestfs-tools-1.48.2.tar.gz 12691067 BLAKE2B 305f281c19975f160c435b995d71ef2e18d09fc95f31e92efe8f79d811fc0a7efab27d14f766d5f6ee477fd43977167a3aabe5cc40498f125f925507fd2574d5 SHA512 e11cd5a38a1681e8b2fd56419d38ca0aaab659cb59d409b3572cadcd04fd4da3078fa33e7f21c99d11854ad08797ae24a8d71c041b1b7769fc36c1391b6eb162
diff --git a/app-emulation/guestfs-tools/guestfs-tools-1.48.0.ebuild b/app-emulation/guestfs-tools/guestfs-tools-1.48.0.ebuild
deleted file mode 100644
index 84ae94b176aa..000000000000
--- a/app-emulation/guestfs-tools/guestfs-tools-1.48.0.ebuild
+++ /dev/null
@@ -1,153 +0,0 @@
-# Copyright 1999-2022 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}"
-KEYWORDS="~amd64"
-IUSE="doc +ocaml +perl test"
-RESTRICT="!test? ( test )"
-
-# Failures - doc
-COMMON_DEPEND="
- !<app-emulation/libguestfs-1.46.0-r1
- app-arch/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="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
-
- 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
-
- 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/guestfs-tools-1.48.2.ebuild b/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild
index c6a2bf8d214b..718c2b33d14b 100644
--- a/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild
+++ b/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -17,14 +17,16 @@ SRC_URI="https://download.libguestfs.org/${PN}/${MY_PV_1}-${SD}/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2"
SLOT="0/${MY_PV_1}"
-KEYWORDS="~amd64"
+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-arch/cpio
+ app-alternatives/cpio
app-arch/lzma
app-arch/unzip[natspec]
app-arch/xz-utils
@@ -55,7 +57,8 @@ COMMON_DEPEND="
"
# Some OCaml is always required
# bug #729674
-DEPEND="${COMMON_DEPEND}
+DEPEND="
+ ${COMMON_DEPEND}
>=dev-lang/ocaml-4.03:=[ocamlopt]
dev-ml/findlib[ocamlopt]
doc? ( app-text/po4a )
@@ -67,8 +70,13 @@ DEPEND="${COMMON_DEPEND}
)
)
"
-BDEPEND="virtual/pkgconfig"
-RDEPEND="${COMMON_DEPEND}
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+"
+RDEPEND="
+ ${COMMON_DEPEND}
app-emulation/libguestfs-appliance
"
@@ -87,6 +95,9 @@ 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)
diff --git a/app-emulation/gxemul/gxemul-0.6.2.ebuild b/app-emulation/gxemul/gxemul-0.6.2.ebuild
index 4f73577a5ce6..fbe24c090e49 100644
--- a/app-emulation/gxemul/gxemul-0.6.2.ebuild
+++ b/app-emulation/gxemul/gxemul-0.6.2.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
@@ -7,7 +7,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"
+SRC_URI="https://downloads.sourceforge.net/project/gxemul/GXemul/${PV}/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
diff --git a/app-emulation/hercules-sdl-crypto/Manifest b/app-emulation/hercules-sdl-crypto/Manifest
new file mode 100644
index 000000000000..88168d5a0844
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/Manifest
@@ -0,0 +1 @@
+DIST crypto-a5096e5dd79f46b568806240c0824cd8cb2fcda2.tar.gz 81482 BLAKE2B 4e414c66ee3716c17217ac85b658171907b1018bb8b7306c2b040957cb15723f77c32d5b04c5ff12c346e2ac464d16e805c036b7408755a7f1ca40174c031296 SHA512 d55e73d7dfa90da53c173159e32cb733a44780cd8606d539351371e61910f3a82312b8ab9f858b293c89c8f7cc4fe74da86825db2f9a6e73391d95c3f903d94e
diff --git a/app-emulation/hercules-sdl-crypto/files/cmakefix.patch b/app-emulation/hercules-sdl-crypto/files/cmakefix.patch
new file mode 100644
index 000000000000..dd8f1840a7d9
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/files/cmakefix.patch
@@ -0,0 +1,155 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,8 +2,8 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "crypto.LICENSE.txt" DESTINATION . )
+-install( FILES "crypto.README.txt" DESTINATION . )
++install( FILES "crypto.LICENSE.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "crypto.README.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild
new file mode 100644
index 000000000000..b3f5be08e2fa
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="a5096e5dd79f46b568806240c0824cd8cb2fcda2"
+
+DESCRIPTION="Simple AES/DES encryption and SHA1/SHA2 hashing library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/crypto"
+SRC_URI="https://github.com/SDL-Hercules-390/crypto/archive/${COMMIT}.tar.gz -> crypto-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/crypto-${COMMIT}"
+LICENSE="public-domain MIT BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild
new file mode 100644
index 000000000000..0bfa5e44ea13
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/hercules-sdl-crypto-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="Simple AES/DES encryption and SHA1/SHA2 hashing library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/crypto"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/crypto"
+
+LICENSE="public-domain MIT BSD"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-crypto/metadata.xml b/app-emulation/hercules-sdl-crypto/metadata.xml
new file mode 100644
index 000000000000..8e22c018c0ee
--- /dev/null
+++ b/app-emulation/hercules-sdl-crypto/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" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Simple AES/DES encryption and SHA1/SHA2 hashing library for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/crypto</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl-decnumber/Manifest b/app-emulation/hercules-sdl-decnumber/Manifest
new file mode 100644
index 000000000000..a6446cde0c06
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/Manifest
@@ -0,0 +1 @@
+DIST decNumber-3aa2f4531b5fcbd0478ecbaf72ccc47079c67280.tar.gz 785702 BLAKE2B c7348c33dfdad046f79fc8112800e31b8010a0aa0acbca0e84d21e0f4ba366969a4c453d07ed8a3fdb79735850f17d71e66731a9b2db6d64781309f2c2861f8e SHA512 dad1c2d271f5739ac99850ac90ad45209e8efc80c20d29210f2f5b911b10ffc12a039e1bf6a7b8a171869a63ecad9bc8dfcf95161273385974b03221bd538a74
diff --git a/app-emulation/hercules-sdl-decnumber/files/cmakefix.patch b/app-emulation/hercules-sdl-decnumber/files/cmakefix.patch
new file mode 100644
index 000000000000..42e461d92e24
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/files/cmakefix.patch
@@ -0,0 +1,159 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,10 +2,10 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "decnumber.ICU-license.html" DESTINATION . )
+-install( FILES "decnumber.pdf" DESTINATION . )
+-install( FILES "decnumber.readme.txt" DESTINATION . )
+-install( FILES "decnumber.ERRATA" DESTINATION . )
++install( FILES "decnumber.ICU-license.html" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "decnumber.pdf" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "decnumber.readme.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "decnumber.ERRATA" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild
new file mode 100644
index 000000000000..1b93ffd36baf
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="3aa2f4531b5fcbd0478ecbaf72ccc47079c67280"
+
+DESCRIPTION="ANSI C General Decimal Arithmetic Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/decNumber"
+SRC_URI="https://github.com/SDL-Hercules-390/decNumber/archive/${COMMIT}.tar.gz -> decNumber-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/decNumber-${COMMIT}"
+LICENSE="icu"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild
new file mode 100644
index 000000000000..6c8be1db358a
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/hercules-sdl-decnumber-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="ANSI C General Decimal Arithmetic Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/decNumber"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/decNumber"
+
+LICENSE="icu"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-decnumber/metadata.xml b/app-emulation/hercules-sdl-decnumber/metadata.xml
new file mode 100644
index 000000000000..54d5e56d442d
--- /dev/null
+++ b/app-emulation/hercules-sdl-decnumber/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" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ ANSI C General Decimal Arithmetic Library for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/decNumber</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl-softfloat/Manifest b/app-emulation/hercules-sdl-softfloat/Manifest
new file mode 100644
index 000000000000..f2f732c98ab5
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/Manifest
@@ -0,0 +1 @@
+DIST SoftFloat-4b0c326008e174610969c92e69178939ed80653d.tar.gz 237236 BLAKE2B 4d29161ebdb1b659a61a7c83cb2c5eee1b0874455d0e6f634d2fb70a4dd0200c0bd46961edf9e7f41fd84695278653e1073c2b0fe39bf252ca7242bafdcf6adc SHA512 549b144c63fdbbb0815650dfe9fb443a92fb8baeff33baeca1d25fa6226705ef149a1bdb80236c5debeb161bfaecd4cffe9f8d74298a83175c2ddeebb735c48c
diff --git a/app-emulation/hercules-sdl-softfloat/files/cmakefix.patch b/app-emulation/hercules-sdl-softfloat/files/cmakefix.patch
new file mode 100644
index 000000000000..21796e3cda00
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/files/cmakefix.patch
@@ -0,0 +1,159 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,10 +2,10 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "softfloat.LICENSE.txt" DESTINATION . )
+-install( FILES "softfloat.README.txt" DESTINATION . )
+-install( FILES "softfloat.README.html" DESTINATION . )
+-install( DIRECTORY "doc/" DESTINATION doc )
++install( FILES "softfloat.LICENSE.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "softfloat.README.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "softfloat.README.html" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( DIRECTORY "doc/" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild
new file mode 100644
index 000000000000..562f9aca52d4
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="4b0c326008e174610969c92e69178939ed80653d"
+
+DESCRIPTION="Berkeley IEEE Binary Floating-Point Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/SoftFloat"
+SRC_URI="https://github.com/SDL-Hercules-390/SoftFloat/archive/${COMMIT}.tar.gz -> SoftFloat-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/SoftFloat-${COMMIT}"
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild
new file mode 100644
index 000000000000..aa8e20b71b90
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/hercules-sdl-softfloat-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="Berkeley IEEE Binary Floating-Point Library"
+HOMEPAGE="https://github.com/SDL-Hercules-390/SoftFloat"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/SoftFloat"
+
+LICENSE="BSD"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-softfloat/metadata.xml b/app-emulation/hercules-sdl-softfloat/metadata.xml
new file mode 100644
index 000000000000..36219eca3e6d
--- /dev/null
+++ b/app-emulation/hercules-sdl-softfloat/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" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Berkeley IEEE Binary Floating-Point Library for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/SoftFloat</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl-telnet/Manifest b/app-emulation/hercules-sdl-telnet/Manifest
new file mode 100644
index 000000000000..a5e4cdf3a866
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/Manifest
@@ -0,0 +1 @@
+DIST telnet-729f0b688c1426018112c1e509f207fb5f266efa.tar.gz 67277 BLAKE2B 720b292adbe6c1273221d57f74018c08c529b5766dbe623f04af5b14ec3fa9c56f749395aa0f365da97b90a08549e378afbbd3634e4e11cd0418fa0f80d85a9c SHA512 e44df68cfba85b4f2e235c6b830cf89a10d66c635cfec933843c1695bdac33bf307b2e66c965a8b853723c2fd02419c40f80bcf6098be98f01472d9c3cebf1dd
diff --git a/app-emulation/hercules-sdl-telnet/files/cmakefix.patch b/app-emulation/hercules-sdl-telnet/files/cmakefix.patch
new file mode 100644
index 000000000000..76fd8513213a
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/files/cmakefix.patch
@@ -0,0 +1,155 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a316b76..50176f0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,6 +6,8 @@ cmake_minimum_required( VERSION 3.2 )
+
+ cmake_policy( SET CMP0048 NEW )
+
++include( GNUInstallDirs )
++
+ #------------------------------------------------------------------------------
+ # Define the project
+ #------------------------------------------------------------------------------
+@@ -131,8 +133,8 @@ set_target_properties( ${FULLNAME} PROPERTIES
+ COMPILE_PDB_NAME ${FULLNAME} )
+
+ install( TARGETS ${FULLNAME}
+- PUBLIC_HEADER DESTINATION include
+- ARCHIVE DESTINATION ${LIB_INSTALL_DIR} )
++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/include
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/hercules-sdl/lib )
+
+
+ #------------------------------------------------------------------------------
+diff --git a/cmake/modules/ParseBinaryDir.cmake b/cmake/modules/ParseBinaryDir.cmake
+index 7983107..2ede77b 100644
+--- a/cmake/modules/ParseBinaryDir.cmake
++++ b/cmake/modules/ParseBinaryDir.cmake
+@@ -7,6 +7,8 @@ macro( ParseBinaryDir )
+ set( CMAKE_DISABLE_IN_SOURCE_BUILD ON )
+ set( CMAKE_DISABLE_SOURCE_CHANGES ON )
+
++ set( FULLNAME ${EXTPKG_NAME} )
++
+ #--------------------------------------------------------------------------
+ # Make sure they are not trying to do an "in source" build by making
+ # sure the cmake "binary" (build) directory is not a subdirectory of
+@@ -48,102 +50,6 @@ Remove the 'CMakeCache.txt' file and the entire 'CMakeFiles' directory and try a
+
+ TEST_BIG_ENDIAN( IS_BIG_ENDIAN )
+
+- #--------------------------------------------------------------------------
+- # Split the binary build directory into its constituent components.
+- # Refer to the "BUILDING" document for more information.
+- #--------------------------------------------------------------------------
+-
+- get_filename_component( BINARY_HLQ "${CMAKE_BINARY_DIR}" DIRECTORY )
+- get_filename_component( BINARY_DIR "${CMAKE_BINARY_DIR}" NAME )
+-
+- trace( BINARY_HLQ )
+- trace( BINARY_DIR )
+-
+- string( FIND ${BINARY_DIR} " " _n )
+- if( NOT ${_n} EQUAL -1 )
+- message( FATAL_ERROR "Build directory name cannot have spaces! ${BINARY_DIR}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # First, split it into two parts: before the dot and after the dot
+- #--------------------------------------------------------------------------
+-
+- string( REGEX MATCH "([^\\.]*)" _xxxxx ${BINARY_DIR} )
+- string( REGEX MATCH "([^.]*\$)" CONFIG ${BINARY_DIR} )
+-
+- trace( _xxxxx )
+- trace( CONFIG )
+-
+- #--------------------------------------------------------------------------
+- # The second part tells us if this is a "Debug" or "Release" build.
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${CONFIG} _n )
+- if( ${_n} LESS 1 )
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Capitalize "Debug" and "Release" for Visual Studio compatibility.
+- #--------------------------------------------------------------------------
+-
+- include( CapitalizeWord )
+-
+- Capitalize_Word( ${CONFIG} CONFIG )
+-
+- if(( NOT CONFIG STREQUAL "Debug" ) AND (NOT CONFIG STREQUAL "Release" ))
+- message( FATAL_ERROR "Invalid Release/Debug build type! ${CONFIG}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Define the "Debug" or "Release" build type
+- #--------------------------------------------------------------------------
+-
+- if( CONFIG STREQUAL "Debug" )
+- set( CMAKE_BUILD_TYPE "Debug" CACHE PATH "" FORCE )
+- set( DBGCHAR "d" )
+- elseif( CONFIG STREQUAL "Release" )
+- set( CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE PATH "" FORCE )
+- set( DBGCHAR "" )
+- endif()
+-
+- trace( CMAKE_BUILD_TYPE )
+-
+- #--------------------------------------------------------------------------
+- # Now split the first part into the base package/product name
+- # and build architecture (32-bit ot 64-bit).
+- #--------------------------------------------------------------------------
+-
+- string( LENGTH ${_xxxxx} _n )
+- if( ${_n} LESS 3 )
+- message( FATAL_ERROR "Invalid base package name! ${_xxxxx}" )
+- endif()
+-
+- math( EXPR _n "${_n} - 2" ) # (want the last two characters)
+-
+- string( SUBSTRING ${_xxxxx} 0 ${_n} BASENAME )
+- string( SUBSTRING ${_xxxxx} ${_n} -1 BITNESS )
+-
+- if( NOT BITNESS STREQUAL "32" AND
+- NOT BITNESS STREQUAL "64" )
+- message( FATAL_ERROR "Invalid package architecture! ${BITNESS}" )
+- endif()
+-
+- #--------------------------------------------------------------------------
+- # Show results
+- #--------------------------------------------------------------------------
+-
+- set( SUFFIX "${BITNESS}${DBGCHAR}" )
+- set( FULLNAME "${BASENAME}${SUFFIX}" )
+-
+- trace( BASENAME )
+- trace( BITNESS )
+- trace( CONFIG )
+- trace( DBGCHAR )
+- trace( SUFFIX )
+- trace( FULLNAME )
+- trace( CMAKE_BINARY_DIR )
+-
+ #--------------------------------------------------------------------------
+ # Define the install directory
+ #--------------------------------------------------------------------------
+diff --git a/extra.txt b/extra.txt
+index dfb293d..6018eb6 100644
+--- a/extra.txt
++++ b/extra.txt
+@@ -2,8 +2,8 @@
+ # Define additional files to be installed
+ #------------------------------------------------------------------------------
+
+-install( FILES "telnet.LICENSE.txt" DESTINATION . )
+-install( FILES "telnet.README.txt" DESTINATION . )
++install( FILES "telnet.LICENSE.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
++install( FILES "telnet.README.txt" DESTINATION ${CMAKE_INSTALL_DOCDIR} )
+
+ #------------------------------------------------------------------------------
+
diff --git a/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild
new file mode 100644
index 000000000000..edd973959b15
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-4.7.0.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+# Use ../hercules-sdl/files/gen_hashes.sh to identify the relevant
+# commit when tagging new versions.
+COMMIT="729f0b688c1426018112c1e509f207fb5f266efa"
+
+DESCRIPTION="Simple RFC-complient TELNET implementation"
+HOMEPAGE="https://github.com/SDL-Hercules-390/telnet"
+SRC_URI="https://github.com/SDL-Hercules-390/telnet/archive/${COMMIT}.tar.gz -> telnet-${COMMIT}.tar.gz"
+
+S="${WORKDIR}/telnet-${COMMIT}"
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild
new file mode 100644
index 000000000000..f819096dd87c
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/hercules-sdl-telnet-9999.ebuild
@@ -0,0 +1,14 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit git-r3 cmake
+
+DESCRIPTION="Simple RFC-complient TELNET implementation"
+HOMEPAGE="https://github.com/SDL-Hercules-390/telnet"
+EGIT_REPO_URI="https://github.com/SDL-Hercules-390/telnet"
+
+LICENSE="public-domain"
+SLOT="0"
+PATCHES=( "${FILESDIR}/cmakefix.patch" )
diff --git a/app-emulation/hercules-sdl-telnet/metadata.xml b/app-emulation/hercules-sdl-telnet/metadata.xml
new file mode 100644
index 000000000000..7514393f2230
--- /dev/null
+++ b/app-emulation/hercules-sdl-telnet/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" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Simple RFC-complient TELNET implementation for use by the SDL-Hercules-390 emulator
+ </longdescription>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/telnet</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/hercules-sdl/Manifest b/app-emulation/hercules-sdl/Manifest
new file mode 100644
index 000000000000..ef0e4456cb66
--- /dev/null
+++ b/app-emulation/hercules-sdl/Manifest
@@ -0,0 +1 @@
+DIST hercules-sdl-4.7.tar.gz 25439384 BLAKE2B 78a8d2df947c80e23d0e956a25a4f009dd32b09f2834cc06373f685badf9f1e657bf0f4e4408c7085371c46085718998076f3a6063caf80c9161b1fa7caa91eb SHA512 9d7060c4e2687358b9547b59b47362d642cbf2bf009085fdd41e485170d0f81029ee3d04d12b905a3a266cd26a9087e92c231c3f4600c32a8535a6140656b7b0
diff --git a/app-emulation/hercules-sdl/files/gen_hashes.sh b/app-emulation/hercules-sdl/files/gen_hashes.sh
new file mode 100644
index 000000000000..bb499392a4a5
--- /dev/null
+++ b/app-emulation/hercules-sdl/files/gen_hashes.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+[[ -z "${1}" ]] && exit 1
+[[ "${1}" =~ [0-9]+\.[0-9]+\.[0-9]+ ]] || exit 1
+
+CLONEDIR="$(mktemp -d)"
+for f in "hyperion" "crypto" "decNumber" "SoftFloat" "telnet"
+do
+ git -C "${CLONEDIR}" clone --tags "https://github.com/SDL-Hercules-390/${f}"
+done
+
+VERSIONARR=( ${1//./ })
+VERSIONTAG="Release_${VERSIONARR[0]}.${VERSIONARR[1]}"
+[[ "${VERSIONARR[2]}" == "0" ]] || VERSIONTAG=".${VERSIONARR[2]}"
+RELEASEDATE="$(git -C "${CLONEDIR}/hyperion" show -s --format="%ci" "${VERSIONTAG}")"
+
+echo
+for f in "crypto" "decNumber" "SoftFloat" "telnet"
+do
+ echo -n "${f,,}: "
+ git -C "${CLONEDIR}/${f}" rev-list -n 1 --first-parent --before="${RELEASEDATE}" master
+done
+
+rm -rf "${CLONEDIR}"
diff --git a/app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch b/app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch
new file mode 100644
index 000000000000..50b30cca91dd
--- /dev/null
+++ b/app-emulation/hercules-sdl/files/hercules-sdl-4.4.1-htmldir.patch
@@ -0,0 +1,29 @@
+diff --git a/html/Makefile.am b/html/Makefile.am
+index b4d21d0..1e5af4c 100644
+--- a/html/Makefile.am
++++ b/html/Makefile.am
+@@ -1,5 +1,5 @@
+
+-dist_pkgdata_DATA = \
++dist_html_DATA = \
+ cckddasd.html \
+ fishgui.html \
+ hercconf.html \
+@@ -62,7 +62,7 @@ include_sources = \
+ include/footer.htmlpart \
+ include/header.htmlpart
+
+-include_pkgdatadir = $(pkgdatadir)/include
++include_pkgdatadir = $(htmldir)/include
+
+ dist_include_pkgdata_DATA = $(include_sources)
+
+@@ -120,7 +120,7 @@ images_sources = \
+ images/waitoffu.gif \
+ images/waitonu.gif
+
+-images_pkgdatadir = $(pkgdatadir)/images
++images_pkgdatadir = $(htmldir)/images
+
+ dist_images_pkgdata_DATA = $(images_sources)
+
diff --git a/app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild b/app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild
new file mode 100644
index 000000000000..336396af8692
--- /dev/null
+++ b/app-emulation/hercules-sdl/hercules-sdl-4.7.0.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="The SoftDevLabs (SDL) version of the Hercules 4.x Hyperion Emulator"
+HOMEPAGE="https://sdl-hercules-390.github.io/html/"
+SRC_URI="https://github.com/SDL-Hercules-390/hyperion/archive/refs/tags/Release_${PV/.0/}.tar.gz -> ${P/.0/}.tar.gz"
+
+S="${WORKDIR}/hyperion-Release_${PV/.0/}"
+LICENSE="QPL-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64"
+# In theory USE=object-rexx and USE=regina-rexx are not mutually-exclusive.
+# In practice they functionally are as the Gentoo packages conflict, and
+# additionally Hercules only supports calling out to one of them at runtime,
+# controlled by the HREXX_PACKAGE environment variable.
+IUSE="bzip2 debug object-rexx regina-rexx test"
+RESTRICT="!test? ( test )"
+FILECAPS=(
+ -M 755 cap_sys_nice\=eip usr/bin/hercules --
+ -M 755 cap_sys_nice\=eip usr/bin/herclin --
+ -M 755 cap_net_admin+ep usr/bin/hercifc
+)
+
+RDEPEND="
+ dev-libs/libltdl
+ net-libs/libnsl:0
+ sys-libs/zlib
+ bzip2? ( app-arch/bzip2 )
+ object-rexx? ( dev-lang/oorexx )
+ regina-rexx? ( dev-lang/regina-rexx )"
+DEPEND="${RDEPEND}
+ ~app-emulation/hercules-sdl-crypto-${PV}
+ ~app-emulation/hercules-sdl-decnumber-${PV}
+ ~app-emulation/hercules-sdl-softfloat-${PV}
+ ~app-emulation/hercules-sdl-telnet-${PV}"
+# Neither package support needs to be compiled-in for tests,
+# but the "rexx" command needs to be available
+BDEPEND="${RDEPEND}
+ test? ( || ( dev-lang/regina-rexx dev-lang/oorexx ) )"
+
+PATCHES=( "${FILESDIR}/${PN}-4.4.1-htmldir.patch" )
+
+src_prepare() {
+ rm -rf crypto decNumber SoftFloat telnet || die
+ sed -i 's#/lib${hc_cv_pkg_lib_subdir}#/lib#g' configure.ac || die
+ sed -i 's#_pkgname}${hc_cv_pkg_lib_suffix}#_pkgname}#g' configure.ac || die
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2)
+ econf \
+ $(use_enable bzip2 cckd-bzip2) \
+ $(use_enable bzip2 het-bzip2) \
+ $(use_enable object-rexx) \
+ $(use_enable regina-rexx) \
+ $(use_enable debug) \
+ --enable-custom="Gentoo ${PF}.ebuild" \
+ --disable-optimization \
+ --disable-setuid-hercifc \
+ --disable-capabilities \
+ --enable-ipv6 \
+ --enable-enhanced-configincludes \
+ --disable-fthreads \
+ --enable-shared \
+ --enable-automatic-operator \
+ --enable-extpkgs="${SYSROOT}/usr/$(get_libdir)/${PN}"
+}
+
+src_install() {
+ default
+ dodoc RELEASE.NOTES
+
+ insinto /usr/share/hercules
+ doins hercules.cnf
+
+ # No static archives. Have to leave .la files for modules. #720342
+ find "${ED}/usr/$(get_libdir)" -name "*.la" -delete || die
+}
diff --git a/app-emulation/hercules-sdl/metadata.xml b/app-emulation/hercules-sdl/metadata.xml
new file mode 100644
index 000000000000..c7d581937769
--- /dev/null
+++ b/app-emulation/hercules-sdl/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>matoro_gentoo@matoro.tk</email>
+ <name>Matoro Mahri</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ This version of Hercules 4.x Hyperion is a SoftDevLabs maintained version of the Hercules emulator containing fixes made by David B. Trout and others for bugs that may still exist in the original hercules-390 version of Hercules 4.0 Hyperion, as well as enhancements and improvements to the overall functionality above and beyond what is provided by the hercules-390 version of Hercules.
+ </longdescription>
+ <use>
+ <flag name="object-rexx">Enable REXX support via Open Object Rexx (<pkg>dev-lang/oorexx</pkg>)</flag>
+ <flag name="regina-rexx">Enable REXX support via Regina Rexx (<pkg>dev-lang/regina-rexx</pkg>)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">SDL-Hercules-390/hyperion</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 3595d4ad0f22..000000000000
--- a/app-emulation/libcacard/libcacard-2.6.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-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 ~riscv 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}"
-BDEPEND="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 05bce7716419..1a71034e745b 100644
--- a/app-emulation/libcacard/metadata.xml
+++ b/app-emulation/libcacard/metadata.xml
@@ -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/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
index 74e8430766b5..b688b1daac9c 100644
--- a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
+++ b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -12,12 +12,12 @@ inherit check-reqs
DESCRIPTION="VM appliance disk image used in libguestfs package"
HOMEPAGE="https://libguestfs.org/"
-SRC_URI="https://libguestfs.org/download/binaries/appliance/appliance-${PV}.tar.xz"
+SRC_URI="https://download.libguestfs.org/binaries/appliance/appliance-${PV}.tar.xz"
S="${WORKDIR}"
LICENSE="GPL-2 LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~ppc64 ~x86"
BDEPEND="app-arch/xz-utils"
# Mixing libguestfs versions causes weird problems, bug #501588
@@ -31,7 +31,7 @@ src_unpack() {
src_install() {
dodir /usr/share/guestfs
- cd "${ED}"/usr/share/guestfs || Die
+ cd "${ED}"/usr/share/guestfs || die
unpack ${A}
cd appliance || die
diff --git a/app-emulation/libguestfs-appliance/metadata.xml b/app-emulation/libguestfs-appliance/metadata.xml
index aaec3c175332..1e35cd5e94fd 100644
--- a/app-emulation/libguestfs-appliance/metadata.xml
+++ b/app-emulation/libguestfs-appliance/metadata.xml
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<!-- maintainer-needed -->
-<!--
-<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 fc923f7f3058..5e4dfc6354e9 100644
--- a/app-emulation/libguestfs/Manifest
+++ b/app-emulation/libguestfs/Manifest
@@ -1,3 +1 @@
-DIST libguestfs-1.48.0.tar.gz 18426132 BLAKE2B a0ace19998e6eb368fa8ad73242b7c35c72244e9b9881f3adb76dcc8ed6e9a77691012e5786a26680a944d0876091bbb1d0f9ac63c0f5046538acf4402f840ac SHA512 b2486f32a3958c2b3e68d3f547dcd192dc7f8c59e0efd8660cd27cae9c218ce4fc2a60480dcb6bb0d10d8abbc2d2f4796075aea1cfab5e3c7cd12c38d4352fe2
-DIST libguestfs-1.48.3.tar.gz 19185249 BLAKE2B 1de07920c731a64ece9f1541752672a0251af73e455a3bd74fff6d512e96ef3a1b8182728080571fbf0f49ef072ed17029c6a5bd12f8171a1d2079bff0c22df2 SHA512 d88b7869e6098af1f7748dc2e8163b245ea251fcdf962a71e3735f5a1748c9e87a17be259802da3e0bb13569d7f7233b2c5a554b20a2a7758e1974a30a70b786
-DIST libguestfs-1.48.4.tar.gz 19189712 BLAKE2B 50a11254c21903caa62b40b43e3ab3cc9e740dd0c690055c245391d0a980279a897e727f0ff5b063b197b91a1e6fdadc08e257d5cd4ce3df254e5c42abc32ee3 SHA512 76b942de88fa6fb48db667054a2c4fc23dd17b0a6083cddd51f1a77fdac24c0c7acd6be5234ada955b4afa94b0d8023aab50aa152465a6bc65f0e21d4195d50c
+DIST libguestfs-1.48.6.tar.gz 19179600 BLAKE2B 22359ed4b55e29f985dbbbc4f0337eaec32f21a1413bd778656c3f0270891bec520a0b9590e104836eaf9367aeb9ac681b0bf85852fb7a2059da3f7062bc5111 SHA512 7d929db183fbb1d4d1c9159f28871ab4f1bd0be5b3d9fbc5137271666f50c067fd0906674cb1a52c1e070c11a18da4d2aa11bc64ddabda5cac54e72252c6abf2
diff --git a/app-emulation/libguestfs/files/1.44/0001-Check-for-caml_alloc_initialized_string-existence-ev.patch b/app-emulation/libguestfs/files/1.44/0001-Check-for-caml_alloc_initialized_string-existence-ev.patch
deleted file mode 100644
index a44743c9adc3..000000000000
--- a/app-emulation/libguestfs/files/1.44/0001-Check-for-caml_alloc_initialized_string-existence-ev.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://sources.debian.org/data/main/libg/libguestfs/1:1.44.0-2/debian/patches/0016-Check-for-caml_alloc_initialized_string-existence-ev.patch
-
-From: Hilko Bengen <bengen@debian.org>
-Date: Tue, 10 Mar 2020 17:23:15 +0100
-Subject: Check for caml_alloc_initialized_string existence even if
- --disable-ocaml
-
----
- m4/guestfs-ocaml.m4 | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/m4/guestfs-ocaml.m4 b/m4/guestfs-ocaml.m4
-index 18f95c2..bf07799 100644
---- a/m4/guestfs-ocaml.m4
-+++ b/m4/guestfs-ocaml.m4
-@@ -214,8 +214,7 @@ AM_CONDITIONAL([HAVE_BYTES_COMPAT_ML],
- [test "x$have_Bytes_module" = "xno"])
-
- dnl Check if OCaml has caml_alloc_initialized_string (added 2017).
--AS_IF([test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno" && \
-- test "x$enable_ocaml" = "xyes"],[
-+AS_IF([test "x$OCAMLC" != "xno" && test "x$OCAMLFIND" != "xno"],[
- AC_MSG_CHECKING([for caml_alloc_initialized_string])
- cat >conftest.c <<'EOF'
- #include <caml/alloc.h>
diff --git a/app-emulation/libguestfs/libguestfs-1.48.0.ebuild b/app-emulation/libguestfs/libguestfs-1.48.0.ebuild
deleted file mode 100644
index d1121225a090..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.48.0.ebuild
+++ /dev/null
@@ -1,217 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Bump with app-emulation/guestfs-tools and app-emulation/libguestfs-appliance (if any new release there)
-
-LUA_COMPAT=( lua5-1 )
-PYTHON_COMPAT=( python3_{8,9,10} )
-
-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://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="lua? ( ${LUA_REQUIRED_USE} )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# Failures - doc
-COMMON_DEPEND="
- >=app-admin/augeas-1.8.0
- app-arch/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:= )
- 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-util/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 ) )
-"
-BDEPEND="virtual/pkgconfig"
-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="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
-
- # Skip Bash test
- # (See 13-test-suite.log in linked bug)
- # bug #794874
- export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=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)
-
- 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_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
-}
-
-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/libguestfs-1.48.3.ebuild b/app-emulation/libguestfs/libguestfs-1.48.3.ebuild
deleted file mode 100644
index c1141e2e9a88..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.48.3.ebuild
+++ /dev/null
@@ -1,218 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# Bump with app-emulation/guestfs-tools and app-emulation/libguestfs-appliance (if any new release there)
-
-LUA_COMPAT=( lua5-1 )
-PYTHON_COMPAT=( python3_{8,9,10} )
-
-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://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="lua? ( ${LUA_REQUIRED_USE} )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# Failures - doc
-COMMON_DEPEND="
- >=app-admin/augeas-1.8.0
- app-arch/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:= )
- 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-util/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 ) )
-"
-BDEPEND="virtual/pkgconfig"
-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="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
-
- # Skip Bash test
- # (See 13-test-suite.log in linked bug)
- # bug #794874
- export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=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_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
-}
-
-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/libguestfs-1.48.4.ebuild b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild
index 05b786614fa7..5ebf7d85f162 100644
--- a/app-emulation/libguestfs/libguestfs-1.48.4.ebuild
+++ b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild
@@ -1,12 +1,12 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+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_{8,9,10} )
+PYTHON_COMPAT=( python3_{10..11} )
inherit autotools flag-o-matic linux-info lua-single perl-functions python-single-r1 strip-linguas toolchain-funcs
@@ -16,21 +16,25 @@ MY_PV_2="$(ver_cut 2)"
DESCRIPTION="Tools for accessing, inspecting, and modifying virtual machine (VM) disk images"
HOMEPAGE="https://libguestfs.org/"
-SRC_URI="https://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz"
+SRC_URI="https://download.libguestfs.org/${MY_PV_1}-${SD}/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2"
SLOT="0/${MY_PV_1}"
-KEYWORDS="~amd64"
+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} )"
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
# Failures - doc
COMMON_DEPEND="
>=app-admin/augeas-1.8.0
- app-arch/cpio
+ app-alternatives/cpio
app-arch/lzma
app-arch/rpm
app-arch/unzip[natspec]
@@ -68,7 +72,7 @@ COMMON_DEPEND="
dev-perl/String-ShellQuote
)
python? ( ${PYTHON_DEPS} )
- fuse? ( sys-fs/fuse:= )
+ fuse? ( sys-fs/fuse:0 )
gtk? (
sys-apps/dbus
x11-libs/gtk+:3
@@ -88,11 +92,12 @@ COMMON_DEPEND="
sys-libs/libselinux:=
sys-libs/libsemanage
)
- systemtap? ( dev-util/systemtap )
+ systemtap? ( dev-debug/systemtap )
"
# Some OCaml is always required
# bug #729674
-DEPEND="${COMMON_DEPEND}
+DEPEND="
+ ${COMMON_DEPEND}
>=dev-lang/ocaml-4.03:=[ocamlopt]
dev-util/gperf
dev-ml/findlib[ocamlopt]
@@ -107,20 +112,25 @@ DEPEND="${COMMON_DEPEND}
ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake )
test? ( introspection? ( dev-libs/gjs ) )
"
-BDEPEND="virtual/pkgconfig"
-RDEPEND="${COMMON_DEPEND}
+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="lua? ( ${LUA_DEPS} )"
+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/
+ #"${FILESDIR}"/1.44/
)
pkg_setup() {
@@ -141,6 +151,9 @@ 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
@@ -227,6 +240,8 @@ src_install() {
doman "${ED}"/usr/man/man3/Sys::Guestfs.3pm
rm -rf "${ED}"/usr/man || die
fi
+
+ use python && python_optimize
}
pkg_postinst() {
diff --git a/app-emulation/libguestfs/metadata.xml b/app-emulation/libguestfs/metadata.xml
index 98a2975f77de..67f481aca2fb 100644
--- a/app-emulation/libguestfs/metadata.xml
+++ b/app-emulation/libguestfs/metadata.xml
@@ -7,7 +7,7 @@
<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-util/systemtap</pkg> to inspect VM via "probes"</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>
diff --git a/app-emulation/libspectrum/libspectrum-1.5.0.ebuild b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
index 8877a5a13f57..7221cd869171 100644
--- a/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
+++ b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
@@ -1,17 +1,17 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit autotools
DESCRIPTION="Spectrum emulation library"
HOMEPAGE="http://fuse-emulator.sourceforge.net/libspectrum.php"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/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
@@ -34,7 +34,6 @@ src_prepare() {
src_configure() {
local myconf=(
- --disable-static
$(use_with audiofile libaudiofile)
$(use_with bzip2)
$(use_with gcrypt libgcrypt)
diff --git a/app-emulation/libvirt-glib/Manifest b/app-emulation/libvirt-glib/Manifest
index e652c9e2e3e5..7d53986ff7c6 100644
--- a/app-emulation/libvirt-glib/Manifest
+++ b/app-emulation/libvirt-glib/Manifest
@@ -1 +1,2 @@
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-4.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild
index 22cba180aefe..c1c823159096 100644
--- a/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild
+++ b/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -10,7 +10,7 @@ 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"
+KEYWORDS="amd64 arm64 ppc64 x86"
IUSE="gtk-doc +introspection test +vala"
RESTRICT="!test? ( test )"
REQUIRED_USE="vala? ( introspection )"
@@ -31,6 +31,11 @@ BDEPEND="
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
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-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 f1cd1053e951..000000000000
--- a/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-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 bef24d2c2337..000000000000
--- a/app-emulation/libvirt-snmp/metadata.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?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/libvirt/Manifest b/app-emulation/libvirt/Manifest
index 25aea9f44d2a..65274d07ac80 100644
--- a/app-emulation/libvirt/Manifest
+++ b/app-emulation/libvirt/Manifest
@@ -1,6 +1,12 @@
-DIST libvirt-7.7.0.tar.xz 8670212 BLAKE2B 93c72117941b0a74484c7510c8437054e66fc3ad20c02cead3ce917a38868da2acff9b1e70bbb823122ba647763a3682aaa0da04d82fa75e1acc67449301ae8c SHA512 a0d585c9ac46be08d2865d66456d681b7233291d17f6e0ed2564d0f29dc38ea7afc846ab382f58a193d3cd9acaf25fcc526feb3c98e12a6b4b8ae5aa4aec2f3e
-DIST libvirt-7.7.0.tar.xz.asc 833 BLAKE2B 86a77bf461e353776d79f31f1d0c82fa13e28348bd9c6ae7cb653b98886c7e070d67ed0db55f5e1f3b5e5bd2a3861a5cb08dbf95799b14df1037139f8001b030 SHA512 d5f8cd6accd3bfaebfb7c8761e321aaa9a090c7705256785c5507aa88d985f78a788047dc881f37ea6f64a4634c65c9718d8b1ee0a24744acc3ad5ed6e517bdf
-DIST libvirt-8.2.0.tar.xz 8871236 BLAKE2B 85c4fd7323f4ea0564e6fcb37dffe643d0ff54f228a695476c1b24c78022402a86cf967503e40fad003d82528f24a02bef79466e38c133c5ad37cbcd5783f01d SHA512 fbdc2953e86117643aafb3198a3d9327188d94abfd155eae4439ee0e722737a57ee44dbb2929746c0a28e10e275c35f4a8190e99668e4cba4025555358591544
-DIST libvirt-8.2.0.tar.xz.asc 833 BLAKE2B 3dba2fe7dc76052307ab8b1d7f2a61445759ed15e130615ca2a6325e981ae5c1a7143e7d78ee67f2bf9001cdf82126dff89f4f1eb3b39b77620721a5b75f4cfa SHA512 33ecc465da1b7e4b53733611255d01414f8c1081c96fdcb0a9f1a0e194823872b7f9f9032938527f6d1d8bbebc3b61f2dc393875b8d11fdd47bec40e9408475b
-DIST libvirt-8.7.0.tar.xz 8937316 BLAKE2B 131d46206662627e952b6daa3ceeab187321ff5fb1984980bc2816dfedf730c6ccd4b5a1cbfb46f33cc9e84508621e2625fa661f06b9e35561e8de52906824e5 SHA512 35d33d0e0dab525e8f0a8a592d286e9d17fc5c5d1ff2fab5af5c40b85248481dd17b5c3daf64e8c6e1b8a93328eebee6ece3e95edacff208a81d8b78dc102d7a
-DIST libvirt-8.7.0.tar.xz.asc 833 BLAKE2B ebea1430670bcb44e9ffb4460388b2ab41e8b409d1513d09ac56b12f379621f5ad39af0dba9691b36220bbed5634ad24b2efda8315b41bb2e7f3f6a65e9b028c SHA512 5ac09b10de74283c474fb80cfe600a171d6b49039df73113702cda565889f6c6919e99aff6ce60538ee7fda52287ef035ee15e8f47e5f724384c6ec474e6bed8
+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-10.3.0.tar.xz 9476852 BLAKE2B 8c47840113904d72aeb1e9bf900a99a8b0e3d41391c9a8fee4277f2793f18fefc50d113e8cbea52dedfd03b93f430416bcd25fe90ee6820c95ac6f468b84212f SHA512 dd2b151a19877e57e11b582b1c11542319f8b7b7cd3d7d51304442aa7d5eb1a8490d2887d340191c3ecc561320ea453773763083364579de0a40ada9c244fc59
+DIST libvirt-10.3.0.tar.xz.asc 833 BLAKE2B 4d54a3701a15383464e1be5155344f783cd2fe297f2a7cfd4ef9ead7cef9267122e91e16d08329e2448ffe77f10625a3fa3443bbeab97ba8fc83ec6e4ec250dd SHA512 d32bbc2a36b03eccfc931c3e5accae2d4ed5a59e4d40fc44f8fb269684201097ea03e0afcf6eae124efac7b8c43d32e4e79d276c13ea81809acd40b97ef3ceb9
+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/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-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch b/app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch
new file mode 100644
index 000000000000..b151e3134e63
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-10.3.0-vsh-Don-t-init-history-in-cmdComplete.patch
@@ -0,0 +1,84 @@
+From cab1e71f0161fd24c5d6ff4c379d3a242ea8c2d9 Mon Sep 17 00:00:00 2001
+Message-ID: <cab1e71f0161fd24c5d6ff4c379d3a242ea8c2d9.1714995961.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sat, 4 May 2024 05:12:54 +0200
+Subject: [PATCH] vsh: Don't init history in cmdComplete()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Recent rework of virshtest uncovered a subtle bug that was
+dormant in now vsh but before that even in monolithic virsh.
+
+In vsh.c there's this vshReadlineInit() function that's supposed
+to initialize readline library, i.e. set those global rl_*
+pointers. But it also initializes history library. Then, when
+virsh/virt-admin quits, vshReadlineDeinit() is called which
+writes history into a file (ensuring the parent directory
+exists). So far no problem.
+
+Problem arises when cmdComplete() is called (from a bash
+completer, for instance). It does not guard call to
+vshReadlineInit() with check for interactive shell (and it should
+not), but it sets ctl->historyfile which signals to
+vshReadlineDeinit() the history should be written.
+
+Now, no real history is written, because nothing was entered on
+the stdin, but the parent directory is created nevertheless. With
+recent movement in virshtest.c this means some test cases might
+create virsh history file which breaks our promise of not
+touching user's data in test suite.
+
+Resolves: https://bugs.gentoo.org/931109
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+Reviewed-by: Ján Tomko <jtomko@redhat.com>
+---
+ tools/vsh.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/tools/vsh.c b/tools/vsh.c
+index 58855f63ba..e74045c24e 100644
+--- a/tools/vsh.c
++++ b/tools/vsh.c
+@@ -2973,7 +2973,7 @@ vshReadlineInit(vshControl *ctl)
+ const char *quote_characters = "\"'";
+
+ /* initialize readline stuff only once */
+- if (ctl->historydir)
++ if (autoCompleteOpaque)
+ return 0;
+
+ /* Opaque data for autocomplete callbacks. */
+@@ -2989,6 +2989,11 @@ vshReadlineInit(vshControl *ctl)
+ rl_completer_quote_characters = quote_characters;
+ rl_char_is_quoted_p = vshReadlineCharIsQuoted;
+
++ /* Stuff below is needed only for interactive mode. */
++ if (!ctl->imode) {
++ return 0;
++ }
++
+ histsize_env = g_strdup_printf("%s_HISTSIZE", ctl->env_prefix);
+
+ /* Limit the total size of the history buffer */
+@@ -3149,7 +3154,7 @@ vshInit(vshControl *ctl, const vshCmdGrp *groups)
+ cmdGroups = groups;
+
+ if (vshInitDebug(ctl) < 0 ||
+- (ctl->imode && vshReadlineInit(ctl) < 0))
++ vshReadlineInit(ctl) < 0)
+ return false;
+
+ return true;
+@@ -3168,7 +3173,7 @@ vshInitReload(vshControl *ctl)
+
+ if (ctl->imode)
+ vshReadlineDeinit(ctl);
+- if (ctl->imode && vshReadlineInit(ctl) < 0)
++ if (vshReadlineInit(ctl) < 0)
+ return false;
+
+ return true;
+--
+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-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-8.1.0-docs-Fix-template-matching-in-page.xsl.patch b/app-emulation/libvirt/files/libvirt-8.1.0-docs-Fix-template-matching-in-page.xsl.patch
deleted file mode 100644
index 5207c6d81ec7..000000000000
--- a/app-emulation/libvirt/files/libvirt-8.1.0-docs-Fix-template-matching-in-page.xsl.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 54814c87f3706cc8eb894634ebef0f9cf7dabae6 Mon Sep 17 00:00:00 2001
-Message-Id: <54814c87f3706cc8eb894634ebef0f9cf7dabae6.1645458252.git.mprivozn@redhat.com>
-From: Martin Kletzander <mkletzan@redhat.com>
-Date: Mon, 21 Feb 2022 09:26:13 +0100
-Subject: [PATCH] docs: Fix template matching in page.xsl
-
-Our last default template had a match of "node()" which incidentally matched
-everything, including text nodes. Since this has the same priority according to
-the XSLT spec, section 5.5:
-
- https://www.w3.org/TR/1999/REC-xslt-19991116#conflict
-
-this is an error. Also according to the same spec section, the XSLT processor
-may signal the error or pick the last rule.
-
-This was uncovered with libxslt 1.1.35 which contains the following commit:
-
- https://gitlab.gnome.org/GNOME/libxslt/-/commit/b0074eeca3c6b21b4da14fdf712b853900c51635
-
-which makes the build fail with:
-
- runtime error: file ../docs/page.xsl line 223 element element
- xsl:element: The effective name '' is not a valid QName.
-
-because our last rule also matches text nodes and we are trying to extract the
-node name out of them.
-
-To fix this we change the match to "*" which only matches elements and not all
-the nodes, and to avoid any possible errors with different XSLT processors we
-also bump the priority of the match="text()" rule a little higher, just in case
-someone needs to use an XSLT processor that chooses signalling the error instead
-of the optional recovery.
-
-https://bugs.gentoo.org/833586
-
-Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- docs/page.xsl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/docs/page.xsl b/docs/page.xsl
-index fd67918d3b..72a6fa0842 100644
---- a/docs/page.xsl
-+++ b/docs/page.xsl
-@@ -215,11 +215,11 @@
- </xsl:element>
- </xsl:template>
-
-- <xsl:template match="text()" mode="copy">
-+ <xsl:template match="text()" mode="copy" priority="0">
- <xsl:value-of select="."/>
- </xsl:template>
-
-- <xsl:template match="node()" mode="copy">
-+ <xsl:template match="*" mode="copy">
- <xsl:element name="{name()}">
- <xsl:copy-of select="./@*"/>
- <xsl:apply-templates mode="copy" />
---
-2.34.1
-
diff --git a/app-emulation/libvirt/files/libvirt-8.2.0-fix-paths-for-apparmor.patch b/app-emulation/libvirt/files/libvirt-8.2.0-fix-paths-for-apparmor.patch
deleted file mode 100644
index 5bab5d69856a..000000000000
--- a/app-emulation/libvirt/files/libvirt-8.2.0-fix-paths-for-apparmor.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 52ecc3247d72e2a5ffc390093d803f59e20087f6 Mon Sep 17 00:00:00 2001
-Message-Id: <52ecc3247d72e2a5ffc390093d803f59e20087f6.1647318231.git.mprivozn@redhat.com>
-From: Michal Privoznik <mprivozn@redhat.com>
-Date: Tue, 15 Mar 2022 05:23:29 +0100
-Subject: [PATCH] libvirt-8.2.0-fix-paths-for-apparmor.patch
-
-Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
----
- src/security/apparmor/libvirt-qemu | 1 +
- src/security/apparmor/meson.build | 6 +++---
- ...t-aa-helper.in => usr.libexec.libvirt.virt-aa-helper.in} | 2 +-
- ...elper.local => usr.libexec.libvirt.virt-aa-helper.local} | 0
- 4 files changed, 5 insertions(+), 4 deletions(-)
- rename src/security/apparmor/{usr.lib.libvirt.virt-aa-helper.in => usr.libexec.libvirt.virt-aa-helper.in} (97%)
- rename src/security/apparmor/{usr.lib.libvirt.virt-aa-helper.local => usr.libexec.libvirt.virt-aa-helper.local} (100%)
-
-diff --git a/src/security/apparmor/libvirt-qemu b/src/security/apparmor/libvirt-qemu
-index 250ba4ea58..1599289932 100644
---- a/src/security/apparmor/libvirt-qemu
-+++ b/src/security/apparmor/libvirt-qemu
-@@ -95,6 +95,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 990f00b4f3..2a2235c89a 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',
-@@ -34,7 +34,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 ff1d46bebe..4f2679de7b 100644
---- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
-+++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
-@@ -71,5 +71,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
---
-2.34.1
-
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-8.2.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch
index fae61294584e..cfd12efb3de7 100644
--- a/app-emulation/libvirt/files/libvirt-8.2.0-do-not-use-sysconfig.patch
+++ b/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch
@@ -1,5 +1,5 @@
-From 10d65f10a76c7478c4ec0c65ffeec7f4b18929f9 Mon Sep 17 00:00:00 2001
-Message-Id: <10d65f10a76c7478c4ec0c65ffeec7f4b18929f9.1646212419.git.mprivozn@redhat.com>
+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
@@ -9,7 +9,7 @@ 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 | 3 +--
+ 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 -
@@ -21,191 +21,189 @@ Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/storage/virtstoraged.service.in | 1 -
src/vbox/virtvboxd.service.in | 1 -
tools/libvirt-guests.service.in | 2 +-
- 15 files changed, 2 insertions(+), 16 deletions(-)
+ 15 files changed, 1 insertion(+), 15 deletions(-)
diff --git a/src/interface/virtinterfaced.service.in b/src/interface/virtinterfaced.service.in
-index cb860ff1c4..090b198ac7 100644
+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=-@sysconfdir@/sysconfig/virtinterfaced
+-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 6b083c414f..597f5d1905 100644
+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=-@sysconfdir@/sysconfig/virtxend
+-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 19271d1e7d..87193952cb 100644
+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=-@sysconfdir@/sysconfig/virtlockd
+-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 8ab5478517..fe5c58b8ed 100644
+index e4aecd46a7..d97a98e856 100644
--- a/src/logging/virtlogd.service.in
+++ b/src/logging/virtlogd.service.in
-@@ -7,8 +7,7 @@ Documentation=man:virtlogd(8)
- Documentation=https://libvirt.org
+@@ -8,7 +8,6 @@ Documentation=https://libvirt.org
[Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlogd
--ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS
-+ExecStart=@sbindir@/virtlogd
+ 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
- # cause the machine to be fenced (rebooted), so make
diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in
-index 334c34db44..1b9689017e 100644
+index 2623f7375a..b48ce6958a 100644
--- a/src/lxc/virtlxcd.service.in
+++ b/src/lxc/virtlxcd.service.in
-@@ -19,7 +19,6 @@ Documentation=https://libvirt.org
+@@ -18,7 +18,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTLXCD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd
+-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 05ce672b73..ee4cd9bca1 100644
+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=-@sysconfdir@/sysconfig/virtnetworkd
+-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 cd9de362fd..7693aa52c4 100644
+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=-@sysconfdir@/sysconfig/virtnodedevd
+-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 ab65419e0c..16d8b377b0 100644
+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=-@sysconfdir@/sysconfig/virtnwfilterd
+-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 5ad968ace9..c63147d31f 100644
+index 032cbcbbf0..85a1049567 100644
--- a/src/qemu/virtqemud.service.in
+++ b/src/qemu/virtqemud.service.in
-@@ -21,7 +21,6 @@ Documentation=https://libvirt.org
+@@ -20,7 +20,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=VIRTQEMUD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud
+-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 5d4d412fcc..27cfc34b90 100644
+index 11507207a1..9cda330e0b 100644
--- a/src/remote/libvirtd.service.in
+++ b/src/remote/libvirtd.service.in
-@@ -29,7 +29,6 @@ Documentation=https://libvirt.org
+@@ -28,7 +28,6 @@ Documentation=https://libvirt.org
[Service]
Type=notify
Environment=LIBVIRTD_ARGS="--timeout 120"
--EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd
+-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 f9bb6b84a9..0eddf5ee93 100644
+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=-@sysconfdir@/sysconfig/virtproxyd
+-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 6d298c5334..92e54f175f 100644
+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=-@sysconfdir@/sysconfig/virtsecretd
+-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 eda4d86d37..abe91e3d80 100644
+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=-@sysconfdir@/sysconfig/virtstoraged
+-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 6f447276e9..54fbd0be4a 100644
+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=-@sysconfdir@/sysconfig/virtvboxd
+-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 3cf6476196..5668009ae4 100644
+index c547218f2a..f5a1a60abe 100644
--- a/tools/libvirt-guests.service.in
+++ b/tools/libvirt-guests.service.in
-@@ -20,7 +20,7 @@ Documentation=man:libvirt-guests(8)
+@@ -14,7 +14,7 @@ Documentation=man:libvirt-guests(8)
Documentation=https://libvirt.org
[Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/libvirt-guests
+-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.34.1
+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 bbfe6766317c..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 shorewall 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-10.1.0-r1.ebuild b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild
new file mode 100644
index 000000000000..128f76475972
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-10.1.0-r1.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 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.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-8.2.0.ebuild b/app-emulation/libvirt/libvirt-10.2.0.ebuild
index e83eced94952..f1c08714d713 100644
--- a/app-emulation/libvirt/libvirt-8.2.0.ebuild
+++ b/app-emulation/libvirt/libvirt-10.2.0.ebuild
@@ -1,13 +1,18 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-# Please bump with dev-python/libvirt-python!
+# 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_{8..10} )
-VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/libvirt.org.asc
-inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+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
@@ -16,7 +21,7 @@ if [[ ${PV} = *9999* ]]; then
else
SRC_URI="https://libvirt.org/sources/${P}.tar.xz
verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
- KEYWORDS="amd64 arm64 ~ppc64 x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
@@ -25,10 +30,11 @@ 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 +udev
- virtualbox +virt-network wireshark-plugins xen zfs
+ 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 )
@@ -47,7 +53,6 @@ BDEPEND="
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 )"
@@ -55,7 +60,7 @@ BDEPEND="
# 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
@@ -75,16 +80,17 @@ RDEPEND="
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dtrace? ( dev-util/systemtap )
+ 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.7:= )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
libssh2? ( >=net-libs/libssh2-1.3 )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ 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
@@ -92,7 +98,7 @@ 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? (
@@ -100,7 +106,8 @@ RDEPEND="
>=sys-auth/polkit-0.9
)
qemu? (
- >=app-emulation/qemu-2.11
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
>=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
@@ -113,6 +120,7 @@ RDEPEND="
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
@@ -124,14 +132,21 @@ RDEPEND="
)
zfs? ( sys-fs/zfs )
kernel_linux? ( sys-apps/util-linux )"
-DEPEND="${BDEPEND}
+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}-8.2.0-do-not-use-sysconfig.patch
- "${FILESDIR}"/${PN}-8.2.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() {
@@ -185,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
@@ -245,6 +271,7 @@ src_configure() {
$(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)
@@ -257,6 +284,7 @@ src_configure() {
$(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)
@@ -266,6 +294,7 @@ src_configure() {
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -276,6 +305,7 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
diff --git a/app-emulation/libvirt/libvirt-7.7.0-r2.ebuild b/app-emulation/libvirt/libvirt-10.3.0-r1.ebuild
index 786113f50a58..5a6a2ae58357 100644
--- a/app-emulation/libvirt/libvirt-7.7.0-r2.ebuild
+++ b/app-emulation/libvirt/libvirt-10.3.0-r1.ebuild
@@ -1,35 +1,40 @@
-# Copyright 1999-2022 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 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+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"
- SRC_URI=""
- SLOT="0"
else
SRC_URI="https://libvirt.org/sources/${P}.tar.xz
verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
- KEYWORDS="amd64 arm64 ~ppc64 x86"
- SLOT="0/${PV}"
+ 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"
-VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/libvirt.org.asc
+SLOT="0/${PV}"
IUSE="
apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
- iscsi iscsi-direct +libvirtd lvm libssh lxc nfs nls numa openvz
- parted pcap policykit +qemu rbd sasl selinux +udev
- virtualbox +virt-network wireshark-plugins xen zfs
+ 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 )
@@ -48,7 +53,6 @@ BDEPEND="
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 )"
@@ -56,36 +60,37 @@ BDEPEND="
# 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/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:=
+ >=sys-libs/readline-7.0:=
virtual/acl
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- 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
@@ -93,19 +98,20 @@ RDEPEND="
)
parted? (
>=sys-block/parted-1.8[device-mapper]
- sys-fs/lvm2[-device-mapper-only(-)]
+ sys-fs/lvm2[lvm]
)
- pcap? ( >=net-libs/libpcap-1.0.0 )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
policykit? (
acct-group/libvirt
>=sys-auth/polkit-0.9
)
qemu? (
- >=app-emulation/qemu-2.11
- 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[dhcp,ipv6(+),script]
@@ -114,26 +120,34 @@ RDEPEND="
net-misc/radvd
sys-apps/iproute2[-minimal]
)
- wireshark-plugins? ( <net-analyzer/wireshark-3.6.0:= )
+ 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
+ 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-fix-paths-for-apparmor.patch
- "${FILESDIR}"/${PN}-8.1.0-docs-Fix-template-matching-in-page.xsl.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.3.0-vsh-Don-t-init-history-in-cmdComplete.patch
)
pkg_setup() {
@@ -187,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
@@ -243,9 +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 nbd nbdkit)
$(meson_feature nls)
$(meson_feature numa numactl)
$(meson_feature numa numad)
@@ -258,6 +285,7 @@ src_configure() {
$(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)
@@ -267,6 +295,7 @@ src_configure() {
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -277,6 +306,7 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
diff --git a/app-emulation/libvirt/libvirt-8.7.0.ebuild b/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild
index 76e8da2aa40f..500ab7f572ad 100644
--- a/app-emulation/libvirt/libvirt-8.7.0.ebuild
+++ b/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,9 +10,9 @@ EAPI=8
# app-emulation/libvirt
# Please bump them together!
-PYTHON_COMPAT=( python3_{8..11} )
-VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/libvirt.org.asc
-inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+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
@@ -21,7 +21,7 @@ if [[ ${PV} = *9999* ]]; then
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"
+ KEYWORDS="amd64 ~arm arm64 ppc64 x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
@@ -31,9 +31,10 @@ 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 +udev
+ parted pcap policykit +qemu rbd sasl selinux test +udev
virtualbox +virt-network wireshark-plugins xen zfs
"
+RESTRICT="!test? ( test )"
REQUIRED_USE="
firewalld? ( virt-network )
@@ -60,7 +61,7 @@ BDEPEND="
# 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
@@ -80,15 +81,15 @@ RDEPEND="
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dtrace? ( dev-util/systemtap )
+ 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.7:= )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
libssh2? ( >=net-libs/libssh2-1.3 )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
nfs? ( net-fs/nfs-utils )
numa? (
@@ -97,7 +98,7 @@ 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? (
@@ -106,6 +107,7 @@ RDEPEND="
)
qemu? (
>=app-emulation/qemu-4.2
+ app-crypt/swtpm
>=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
@@ -129,14 +131,24 @@ RDEPEND="
)
zfs? ( sys-fs/zfs )
kernel_linux? ( sys-apps/util-linux )"
-DEPEND="${BDEPEND}
+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}-8.2.0-do-not-use-sysconfig.patch
- "${FILESDIR}"/${PN}-8.2.0-fix-paths-for-apparmor.patch
+ "${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() {
@@ -190,10 +202,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
@@ -262,6 +285,7 @@ src_configure() {
$(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)
@@ -271,6 +295,7 @@ src_configure() {
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -281,6 +306,7 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
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 2fa520a81044..f1c08714d713 100644
--- a/app-emulation/libvirt/libvirt-9999.ebuild
+++ b/app-emulation/libvirt/libvirt-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,9 +10,9 @@ EAPI=8
# app-emulation/libvirt
# Please bump them together!
-PYTHON_COMPAT=( python3_{8..11} )
-VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/libvirt.org.asc
-inherit meson bash-completion-r1 linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+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
@@ -21,7 +21,7 @@ if [[ ${PV} = *9999* ]]; then
else
SRC_URI="https://libvirt.org/sources/${P}.tar.xz
verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
@@ -30,10 +30,11 @@ 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 +udev
- virtualbox +virt-network wireshark-plugins xen zfs
+ 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 )
@@ -52,7 +53,6 @@ BDEPEND="
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 )"
@@ -60,7 +60,7 @@ BDEPEND="
# 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
@@ -80,16 +80,17 @@ RDEPEND="
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dtrace? ( dev-util/systemtap )
+ 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.7:= )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
libssh2? ( >=net-libs/libssh2-1.3 )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ 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
@@ -97,7 +98,7 @@ 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? (
@@ -106,6 +107,7 @@ RDEPEND="
)
qemu? (
>=app-emulation/qemu-4.2
+ app-crypt/swtpm
>=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
@@ -118,6 +120,7 @@ RDEPEND="
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
@@ -129,14 +132,21 @@ RDEPEND="
)
zfs? ( sys-fs/zfs )
kernel_linux? ( sys-apps/util-linux )"
-DEPEND="${BDEPEND}
+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}-8.2.0-do-not-use-sysconfig.patch
- "${FILESDIR}"/${PN}-8.2.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() {
@@ -190,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
@@ -250,6 +271,7 @@ src_configure() {
$(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)
@@ -262,6 +284,7 @@ src_configure() {
$(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)
@@ -271,6 +294,7 @@ src_configure() {
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -281,6 +305,7 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
-Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
diff --git a/app-emulation/libvirt/metadata.xml b/app-emulation/libvirt/metadata.xml
index 9784c19f4174..16610185fea3 100644
--- a/app-emulation/libvirt/metadata.xml
+++ b/app-emulation/libvirt/metadata.xml
@@ -25,6 +25,9 @@
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>
@@ -52,7 +55,7 @@
Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>)
</flag>
<!-- Miscellaneous flags -->
- <flag name="dtrace">Enable dtrace support via <pkg>dev-util/systemtap</pkg></flag>
+ <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
@@ -93,6 +96,9 @@
<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>
diff --git a/app-emulation/nemu/Manifest b/app-emulation/nemu/Manifest
index b2e5dda24a18..4f629d031470 100644
--- a/app-emulation/nemu/Manifest
+++ b/app-emulation/nemu/Manifest
@@ -1,2 +1,3 @@
-DIST nemu-2.5.0.tar.gz 108742 BLAKE2B e68cbf50d56983873656d8e3428cb3ffaa09cafc9cbc8e545d72bf9dfb61e64a06bdc41c3f50011c4c488017efe33afe9fa1d634aae6e9151c45a7d3971c60db SHA512 081199413c41e545d23704091760c4a10b8dcdb21d9d0e6add1e549fa33bdd988490034767e08dee681eee6d06899104b8282cafc4578e06a0eabc505325bbdc
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 1ef2ec858c70..29430bd2b950 100644
--- a/app-emulation/nemu/metadata.xml
+++ b/app-emulation/nemu/metadata.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>monsieurp@gentoo.org</email>
- <name>Patrice Clement</name>
- </maintainer>
<maintainer type="person" proxied="yes">
<email>mail@void.so</email>
<name>Pavel Balaev</name>
@@ -14,11 +10,10 @@
<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-3.0.0.ebuild b/app-emulation/nemu/nemu-3.0.0.ebuild
index 503a514f8dfa..54d5c3502eb7 100644
--- a/app-emulation/nemu/nemu-3.0.0.ebuild
+++ b/app-emulation/nemu/nemu-3.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2019-2021 Gentoo Authors
+# Copyright 2019-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.g
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="dbus network-map +ovf spice +vnc-client remote-api"
RDEPEND="
diff --git a/app-emulation/nemu/nemu-2.5.0-r1.ebuild b/app-emulation/nemu/nemu-3.1.0.ebuild
index 30d137f15fd9..9bd6d23031a3 100644
--- a/app-emulation/nemu/nemu-2.5.0-r1.ebuild
+++ b/app-emulation/nemu/nemu-3.1.0.ebuild
@@ -1,7 +1,7 @@
-# Copyright 2019-2021 Gentoo Authors
+# Copyright 2019-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit cmake linux-info
@@ -13,12 +13,13 @@ SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.g
LICENSE="BSD-2"
SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="dbus network-map +ovf +savevm spice +vnc-client"
+KEYWORDS="amd64"
+IUSE="dbus network-map +ovf remote-api"
RDEPEND="
- app-emulation/qemu[vnc,virtfs,spice?]
+ >=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:=
@@ -28,8 +29,7 @@ RDEPEND="
dev-libs/libxml2:2
app-arch/libarchive:=
)
- spice? ( app-emulation/virt-viewer )
- vnc-client? ( net-misc/tigervnc )
+ remote-api? ( dev-libs/openssl )
"
DEPEND="${RDEPEND}"
BDEPEND="sys-devel/gettext"
@@ -51,22 +51,22 @@ pkg_pretend() {
}
src_configure() {
- # -DNM_USE_UTF: Enable unicode unconditionally. We already
- # depended on ncurses[unicode].
# -DNM_WITH_QEMU: Do not embbed qemu.
local mycmakeargs=(
- -DNM_SAVEVM_SNAPSHOTS=$(usex savevm)
- -DNM_USE_UTF=on
-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_SPICE=$(usex spice)
- -DNM_WITH_VNC_CLIENT=$(usex vnc-client)
)
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>"
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/open-vm-tools/Manifest b/app-emulation/open-vm-tools/Manifest
index 74894d02da55..bdbc4e5c9a51 100644
--- a/app-emulation/open-vm-tools/Manifest
+++ b/app-emulation/open-vm-tools/Manifest
@@ -1,3 +1,2 @@
-DIST open-vm-tools-11.3.5-18557794.tar.gz 4218935 BLAKE2B 41e3f5877a5074bfb206870d7bdba613a468aa104d6d497dcf16e80b24fcbdd2195fcce370b150ced4665dd19296ff27dc06922d2742a43f5bf70b1b5eea9d48 SHA512 fa31f5615c9c90865ba9122f7fcd0831068d48defee30a5f5c620e744b76ccd5b7cc2de20cea4e37b596f99619ffb7bb47774de04e7c4bea666c7c0b6fa1560e
-DIST open-vm-tools-12.0.5-19716617.tar.gz 4348389 BLAKE2B 9b5160ce6c7025c948a5ee9e3906e2bbe2cdfddbd27a6e6ca142624bbb11bf08651ad3d38685e84a8d65898eacb9b9e4e9c584c8f1e0c80987996b8624608338 SHA512 d0e842a33e423cb07f86c2c7c9b3d2e7bca85c49c922d14529a72db322931b3baedad386bffc1bb500bb4fe8b572529f3c63fc823732405849edb6344b405714
-DIST open-vm-tools-12.1.0-20219665.tar.gz 4355225 BLAKE2B 4405e3f23963b8d86c079d7dfd0cabecd18199ee88599775d5bb1bdbe1f5fe870983b299978a8ba22e749462dc984c0e8e985629dc3e56cd008cb3ad8836af85 SHA512 00cd71a5fc25d854d0043b2ddfb7f759e3b3138acb9f33f7452641d7520e46bfa39ff784bde6c711de6e8aec24309720532100d7a8588fb1bebaa378b9566a2a
+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/metadata.xml b/app-emulation/open-vm-tools/metadata.xml
index 4d4f4a432b4a..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 "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
diff --git a/app-emulation/open-vm-tools/open-vm-tools-11.3.5_p18557794.ebuild b/app-emulation/open-vm-tools/open-vm-tools-11.3.5_p18557794.ebuild
deleted file mode 100644
index 02e927c472da..000000000000
--- a/app-emulation/open-vm-tools/open-vm-tools-11.3.5_p18557794.ebuild
+++ /dev/null
@@ -1,149 +0,0 @@
-# Copyright 2007-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools linux-info pam systemd udev
-
-DESCRIPTION="Tools for VMware guests"
-HOMEPAGE="https://github.com/vmware/open-vm-tools"
-MY_P="${PN}-${PV/_p/-}"
-SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV%_p*}/${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 +vgauth"
-REQUIRED_USE="
- multimon? ( X )
- vgauth? ( ssl )
-"
-
-RDEPEND="
- dev-libs/glib
- net-libs/libtirpc
- deploypkg? ( dev-libs/libmspack )
- fuse? ( sys-fs/fuse:0 )
- pam? ( sys-libs/pam )
- !pam? ( virtual/libcrypt:= )
- ssl? ( dev-libs/openssl:0= )
- vgauth? (
- dev-libs/libxml2
- dev-libs/xmlsec
- )
- X? (
- x11-libs/libXext
- multimon? ( x11-libs/libXinerama )
- x11-libs/libXi
- x11-libs/libXrender
- x11-libs/libXrandr
- x11-libs/libXtst
- x11-libs/libSM
- x11-libs/libXcomposite
- x11-libs/gdk-pixbuf-xlib
- x11-libs/gtk+:3
- gtkmm? (
- dev-cpp/gtkmm:3.0
- dev-libs/libsigc++:2
- )
- )
- dnet? ( dev-libs/libdnet )
- icu? ( dev-libs/icu:= )
- resolutionkms? (
- x11-libs/libdrm[video_cards_vmware]
- virtual/libudev
- )
-"
-
-DEPEND="${RDEPEND}
- net-libs/rpcsvc-proto
-"
-
-BDEPEND="
- dev-util/glib-utils
- virtual/pkgconfig
- doc? ( app-doc/doxygen )
-"
-
-S="${WORKDIR}/${MY_P}"
-
-PATCHES=(
- "${FILESDIR}/10.1.0-Werror.patch"
- "${FILESDIR}/11.3.5-icu.patch"
-)
-
-pkg_setup() {
- local CONFIG_CHECK="~VMWARE_BALLOON ~VMWARE_PVSCSI ~VMXNET3"
- 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
-}
-
-src_prepare() {
- eapply -p2 "${PATCHES[@]}"
- eapply_user
- eautoreconf
-}
-
-src_configure() {
- local myeconfargs=(
- --disable-glibc-check
- --without-root-privileges
- $(use_enable multimon)
- $(use_with X x)
- $(use_with X gtk3)
- $(use_with gtkmm gtkmm3)
- $(use_enable doc docs)
- --disable-tests
- $(use_enable resolutionkms)
- --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 )
-
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
- find "${ED}" -name '*.la' -delete || die
-
- if use pam; then
- rm "${ED}"/etc/pam.d/vmtoolsd || die
- pamd_mimic_system vmtoolsd auth account
- fi
-
- newinitd "${FILESDIR}/open-vm-tools.initd" vmware-tools
- newconfd "${FILESDIR}/open-vm-tools.confd" vmware-tools
-
- if use vgauth; then
- systemd_newunit "${FILESDIR}"/vmtoolsd.vgauth.service vmtoolsd.service
- systemd_dounit "${FILESDIR}"/vgauthd.service
- else
- systemd_dounit "${FILESDIR}"/vmtoolsd.service
- fi
-
- # Make fstype = vmhgfs-fuse work in fstab
- dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse
-
- if use X; then
- fperms 4711 /usr/bin/vmware-user-suid-wrapper
- 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-12.1.0.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild
index 37f06b0d4bb4..3b96f8c85ee9 100644
--- a/app-emulation/open-vm-tools/open-vm-tools-12.1.0.ebuild
+++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2007-2022 Gentoo Authors
+# Copyright 2007-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,7 +7,7 @@ inherit autotools linux-info pam systemd udev
DESCRIPTION="Tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
-MY_P="${P}-20219665"
+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"
@@ -29,7 +29,7 @@ RDEPEND="
ssl? ( dev-libs/openssl:0= )
vgauth? (
dev-libs/libxml2
- dev-libs/xmlsec
+ dev-libs/xmlsec:=
)
X? (
x11-libs/libXext
@@ -62,7 +62,7 @@ DEPEND="${RDEPEND}
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
- doc? ( app-doc/doxygen )
+ doc? ( app-text/doxygen )
"
S="${WORKDIR}/${MY_P}"
diff --git a/app-emulation/open-vm-tools/open-vm-tools-12.0.5_p19716617.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild
index 29730afa69b4..051fc71853da 100644
--- a/app-emulation/open-vm-tools/open-vm-tools-12.0.5_p19716617.ebuild
+++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2007-2022 Gentoo Authors
+# Copyright 2007-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -7,12 +7,12 @@ inherit autotools linux-info pam systemd udev
DESCRIPTION="Tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
-MY_P="${PN}-${PV/_p/-}"
-SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV%_p*}/${MY_P}.tar.gz"
+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"
+KEYWORDS="amd64 ~arm64 x86"
IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth"
REQUIRED_USE="
multimon? ( X )
@@ -29,7 +29,7 @@ RDEPEND="
ssl? ( dev-libs/openssl:0= )
vgauth? (
dev-libs/libxml2
- dev-libs/xmlsec
+ dev-libs/xmlsec:=
)
X? (
x11-libs/libXext
@@ -62,7 +62,7 @@ DEPEND="${RDEPEND}
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
- doc? ( app-doc/doxygen )
+ doc? ( app-text/doxygen )
"
S="${WORKDIR}/${MY_P}"
diff --git a/app-emulation/pcem/pcem-17-r1.ebuild b/app-emulation/pcem/pcem-17-r2.ebuild
index 413ef572d024..47e17b588639 100644
--- a/app-emulation/pcem/pcem-17-r1.ebuild
+++ b/app-emulation/pcem/pcem-17-r2.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-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"
diff --git a/app-emulation/phpvirtualbox/metadata.xml b/app-emulation/phpvirtualbox/metadata.xml
index e5e5b86a33ad..ead318766d1d 100644
--- a/app-emulation/phpvirtualbox/metadata.xml
+++ b/app-emulation/phpvirtualbox/metadata.xml
@@ -3,7 +3,7 @@
<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
index 9eb537e8a8d3..076480a087dc 100644
--- a/app-emulation/plus42/Manifest
+++ b/app-emulation/plus42/Manifest
@@ -1,2 +1,3 @@
-DIST plus42-upstream-1.0.10.tgz 7585424 BLAKE2B c27f5e653e07986a092efc34ed6aaf7de2b1e6c20db3300fc6bd35337032a57b4623cf9d5ecb1b0e56e1a7b6d92a4b5d04be0b9dea9fade9d0e7efe86901ca8d SHA512 d504988c5bfcf1e554ee7478c5c6d0cc7472e3ba9904fb45d2ea77bf05307e0def79002785551b6a876d714d5d4279728b329c63c7108a935b06967c65441083
-DIST plus42-upstream-1.0.9.tgz 7585218 BLAKE2B e6c09c985fcf3f037a0c1dc1f4f445ef18c4f73962ffbf46939b91d5a96c9f079bd36b328b30fcae42f0bc13ebee7a1f56e51762f225f41fb715ab88e8b93d56 SHA512 77c06cf33d375f513c6806910f6b8bdda865853e7890922174364a7d2a07e35a6bbae2e62800c7658be01fe8b3aafbfc7f53a19451475b411865fe69bef090d8
+DIST plus42-upstream-1.1.10.tgz 7612969 BLAKE2B feeab01d4161f0f8cc183cf3c494290469c968d89670610a8848103a8ae64f81816d4456477d1900f94b0e6c5ef3ae3dbd36aa9edb3644f5ed099954fb692664 SHA512 38b263d71464b891a4dc9d32a38b8d32d96e2c1ce352348ff33348b23749ae45d341f6d36b76609b40e863e058ec2c0e5c6be394c041f27f6caba1b261d7422c
+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..c9cde2fbda2c
--- /dev/null
+++ b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch
@@ -0,0 +1,64 @@
+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,10 @@
+ ;;
+ 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
++$MK $OS_ARG A=a AR_CMD="${AR:-ar} rv" 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.4-fix-build-intel-lib.patch b/app-emulation/plus42/files/plus42-1.0.4-fix-build-intel-lib.patch
deleted file mode 100644
index e1e2ea89897a..000000000000
--- a/app-emulation/plus42/files/plus42-1.0.4-fix-build-intel-lib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur free42-nologo-2.5.3.orig/gtk/build-intel-lib.sh free42-nologo-2.5.3/gtk/build-intel-lib.sh
---- free42-nologo-2.5.3.orig/gtk/build-intel-lib.sh 2019-09-01 17:44:47.000000000 +0200
-+++ free42-nologo-2.5.3/gtk/build-intel-lib.sh 2019-09-03 23:58:30.604579443 +0200
-@@ -65,7 +65,7 @@
- esac
-
- cd LIBRARY
--$MK $OS_ARG 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 --git a/app-emulation/plus42/plus42-1.0.10.ebuild b/app-emulation/plus42/plus42-1.1.10.ebuild
index a369e270c0d9..3916a804001b 100644
--- a/app-emulation/plus42/plus42-1.0.10.ebuild
+++ b/app-emulation/plus42/plus42-1.1.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,28 +10,31 @@ 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="dev-libs/atk
+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.4-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch"
)
+src_prepare() {
+ default
+}
+
src_compile() {
local myconf
use alsa && myconf="AUDIO_ALSA=yes"
diff --git a/app-emulation/plus42/plus42-1.0.9.ebuild b/app-emulation/plus42/plus42-1.1.3.ebuild
index b73a2da34bf8..b779379a5982 100644
--- a/app-emulation/plus42/plus42-1.0.9.ebuild
+++ b/app-emulation/plus42/plus42-1.1.3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -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
@@ -29,7 +29,7 @@ S="${WORKDIR}/${MY_PV}"
PATCHES=(
"${FILESDIR}/${PN}-1.0.9-fix-makefile.patch"
- "${FILESDIR}/${PN}-1.0.4-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch"
)
src_prepare() {
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 b016fbf389cb..792b86075eb6 100644
--- a/app-emulation/protontricks/Manifest
+++ b/app-emulation/protontricks/Manifest
@@ -1,2 +1,2 @@
-DIST protontricks-1.9.0.tar.gz 154202 BLAKE2B e998bd899ec953ed7ee0bb0f3944da0212b71f2d0eef6c6996040e4d9c607f7bc73b52df4cbc6a70480b308473fa8c0978415a6202f498247bf91662761adf5c SHA512 43ffd2a5cd4d58c44696a2a66da0223a93d553822fdc92a476c661d69f7522d2aef12787bfc33610751bc1171fb1a3da169e3d40a2b60863a9f37ed205771835
-DIST protontricks-1.9.2.tar.gz 158505 BLAKE2B ea4bc39d835d28c3f1ba50fa64d9a646ec9ef535b7369517b77bccaceb62cb922bed8844a8a4ea1d4561e248e302628379326a4760b25ac24411e679d018cee0 SHA512 75158c5a8a86edaafcb5be1b01053db91e45754488db0febe026ef0cbfbbb67fa6f3f17d60fec997c6dd19a73245ee408bd2220e09a3983ccd253e6e4c10457d
+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/protontricks-1.9.0.ebuild b/app-emulation/protontricks/protontricks-1.10.5.ebuild
index 78ec733bccc6..4c4ddf7953ad 100644
--- a/app-emulation/protontricks/protontricks-1.9.0.ebuild
+++ b/app-emulation/protontricks/protontricks-1.10.5.ebuild
@@ -1,17 +1,16 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..11} pypy3 )
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1 xdg-utils
+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"
@@ -20,6 +19,7 @@ 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}]
')
@@ -30,18 +30,13 @@ RDEPEND="app-emulation/winetricks
)
)"
BDEPEND="$(python_gen_cond_dep '
- dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
')"
DOCS=( CHANGELOG.md README.md )
distutils_enable_tests pytest
-python_prepare_all() {
- distutils-r1_python_prepare_all
- echo "version = '${PV}'" > "${S}"/src/${PN}/_version.py || die "Failed to generate the version file"
-}
-
pkg_postinst() {
xdg_desktop_database_update
diff --git a/app-emulation/protontricks/protontricks-1.9.2.ebuild b/app-emulation/protontricks/protontricks-1.11.1.ebuild
index d33c17e8e46a..fc9689a51050 100644
--- a/app-emulation/protontricks/protontricks-1.9.2.ebuild
+++ b/app-emulation/protontricks/protontricks-1.11.1.ebuild
@@ -1,17 +1,16 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..11} pypy3 )
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1 xdg-utils
+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"
@@ -20,6 +19,7 @@ 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}]
')
@@ -30,18 +30,13 @@ RDEPEND="app-emulation/winetricks
)
)"
BDEPEND="$(python_gen_cond_dep '
- dev-python/setuptools_scm[${PYTHON_USEDEP}]
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
')"
DOCS=( CHANGELOG.md README.md )
distutils_enable_tests pytest
-python_prepare_all() {
- distutils-r1_python_prepare_all
- echo "version = '${PV}'" > "${S}"/src/${PN}/_version.py || die "Failed to generate the version file"
-}
-
pkg_postinst() {
xdg_desktop_database_update
diff --git a/app-emulation/punes/Manifest b/app-emulation/punes/Manifest
index 36a25723e830..8161798f4ed7 100644
--- a/app-emulation/punes/Manifest
+++ b/app-emulation/punes/Manifest
@@ -1 +1 @@
-DIST punes-0.107.tar.gz 44024138 BLAKE2B 048df5bc9b019bafcd4eec75dc027de7cde9f8aa0d484ef96e5c41b091ba55c13b84ef7c7c36987b53206b1b7027758534479d0cc9fde63d89a48092c3f9d26d SHA512 eb3b7aa1c18765402e1e57e23dd4b019255320b795c0f578a4d5ae9f4e0c163613da07280e2a5abed80b9ba90e74c80b53b5fdd80e405103f0063ca55d0ee7bd
+DIST punes-0.111.tar.gz 57538299 BLAKE2B a900fe2bc9117e6739e58a43e457bfa466053d5a96ae5ad1333d7e0bc11eafb2408a96dc7e35ddf1a3cee50cafe99549a43d2abb629b106bbb1082878a845cc6 SHA512 6388cdf2b303e217adfe43b1b3b1ef66a75b6adfdb0363b213c47fc129b5815f3e96814ee25a3637147dc184203cef0438930c280f0c6249085ecac1220b435c
diff --git a/app-emulation/punes/files/punes-0.107_ffmpeg-configure.patch b/app-emulation/punes/files/punes-0.107_ffmpeg-configure.patch
deleted file mode 100644
index fd70e0d49ef0..000000000000
--- a/app-emulation/punes/files/punes-0.107_ffmpeg-configure.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 241b71fdacad10ad1e790e5a4e380ea1ffbe8a93 Mon Sep 17 00:00:00 2001
-From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
-Date: Thu, 21 Jan 2021 12:32:31 +0300
-Subject: [PATCH] Fix ffmpeg configure switch option
-
-autoconf's --with-PACKAGE/--without-PACKAGE requires $withval, not
-$enableval.
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index fd9e0365..f63d50ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -38,7 +38,7 @@ AC_ARG_WITH([ffmpeg],
- AS_HELP_STRING([--with-ffmpeg],
- [Build with support for FFmpeg [autodetect] @<:@default: yes@:>@]
- ),
-- [with_ffmpeg=$enableval], [with_ffmpeg=yes])
-+ [with_ffmpeg=$withval], [with_ffmpeg=yes])
-
- AC_ARG_ENABLE([release],
- AS_HELP_STRING([--disable-release],
---
-2.26.2
-
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/punes-0.107.ebuild b/app-emulation/punes/punes-0.107.ebuild
deleted file mode 100644
index db719a74f5f9..000000000000
--- a/app-emulation/punes/punes-0.107.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2021 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 ffmpeg"
-
-RDEPEND="
- ffmpeg? ( media-video/ffmpeg:= )
- 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}"
-
-PATCHES=(
- "${FILESDIR}/${P}_ffmpeg-configure.patch"
-)
-
-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) \
- $(use_with ffmpeg)
-}
-
-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 1d7810cf0250..5f97e112b9a9 100644
--- a/app-emulation/q4wine/Manifest
+++ b/app-emulation/q4wine/Manifest
@@ -1,2 +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 d5f783f41ca2..a87d4b6faa32 100644
--- a/app-emulation/q4wine/metadata.xml
+++ b/app-emulation/q4wine/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>qt@gentoo.org</email>
- <name>Gentoo Qt Project</name>
- </maintainer>
+ <!-- maintainer-needed -->
<use>
<flag name="ico">Enable ico support via <pkg>media-gfx/icoutils</pkg></flag>
<flag name="iso">Support unprivileged mounting of ISO9660 images via <pkg>sys-fs/fuseiso</pkg></flag>
diff --git a/app-emulation/q4wine/q4wine-1.3.12.ebuild b/app-emulation/q4wine/q4wine-1.3.12.ebuild
deleted file mode 100644
index 81b76c34c437..000000000000
--- a/app-emulation/q4wine/q4wine-1.3.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=7
-
-# 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
-
-DESCRIPTION="Qt GUI configuration tool for Wine"
-HOMEPAGE="https://q4wine.brezblock.org.ua/"
-SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
-
-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
- dev-qt/qtnetwork:5
- dev-qt/qtsingleapplication[qt5(+),X]
- dev-qt/qtsql:5[sqlite]
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- dbus? ( dev-qt/qtdbus:5 )
- ico? ( >=media-gfx/icoutils-0.26.0 )
-"
-RDEPEND="${DEPEND}
- app-admin/sudo
- >=sys-apps/which-2.19
- iso? ( sys-fs/fuseiso )
-"
-
-S="${WORKDIR}"/${MY_P}
-
-DOCS=( AUTHORS ChangeLog README )
-
-src_configure() {
- local mycmakeargs=(
- -DDEBUG=$(usex debug ON OFF)
- -DWITH_ICOUTILS=$(usex ico ON OFF)
- -DWITH_SYSTEM_SINGLEAPP=ON
- -DWITH_WINEAPPDB=$(usex wineappdb ON OFF)
- -DUSE_BZIP2=OFF
- -DUSE_GZIP=OFF
- -DWITH_DBUS=$(usex dbus ON OFF)
- )
- cmake_src_configure
-}
diff --git a/app-emulation/q4wine/q4wine-1.3.13.ebuild b/app-emulation/q4wine/q4wine-1.3.13.ebuild
index eef0589c6f36..cddbd8e97e50 100644
--- a/app-emulation/q4wine/q4wine-1.3.13.ebuild
+++ b/app-emulation/q4wine/q4wine-1.3.13.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -10,12 +10,12 @@ 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"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.bz2"
S="${WORKDIR}"/${MY_P}
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="+dbus debug +ico +iso +wineappdb"
DEPEND="
diff --git a/app-emulation/qemu-guest-agent/Manifest b/app-emulation/qemu-guest-agent/Manifest
index 79b21e4711ad..44032f6790ed 100644
--- a/app-emulation/qemu-guest-agent/Manifest
+++ b/app-emulation/qemu-guest-agent/Manifest
@@ -1,3 +1,6 @@
-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-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 74a4e7a083f8..8995a7240036 100644
--- a/app-emulation/qemu-guest-agent/metadata.xml
+++ b/app-emulation/qemu-guest-agent/metadata.xml
@@ -13,10 +13,6 @@
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
- <maintainer type="person">
- <email>zlogene@gentoo.org</email>
- <name>Mikle Kolyada</name>
- </maintainer>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
<name>Gentoo Virtualization Project</name>
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
index 4a6994942754..e1c778871839 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-PYTHON_COMPAT=( python3_{7..10} )
+PYTHON_COMPAT=( python3_{9..11} )
inherit systemd toolchain-funcs udev python-any-r1
@@ -11,7 +11,7 @@ MY_PN="qemu"
MY_P="${MY_PN}-${PV}"
SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
-KEYWORDS="amd64 ~ppc ~ppc64 ~x86"
+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"
@@ -71,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 9318ba4a519e..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-2021 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} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit 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-5.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild
index 9318ba4a519e..4b64963e345a 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.0.ebuild
@@ -1,35 +1,32 @@
-# Copyright 1999-2021 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} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit 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.2.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild
new file mode 100644
index 000000000000..cbca89288f83
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild
@@ -0,0 +1,81 @@
+# 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
+ --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.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..7426f9441f2a
--- /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/Manifest b/app-emulation/qemu/Manifest
index 41e4746bbd0a..b36c72fed2f6 100644
--- a/app-emulation/qemu/Manifest
+++ b/app-emulation/qemu/Manifest
@@ -1,4 +1,14 @@
-DIST qemu-7.0.0-docs.tar.xz 5101176 BLAKE2B 827d4af2b3fd229d146b47253d12a8bfd60614f5ba60e098abc58a6635bd9f8a029775932f4fc3dee3cb1f0a379133c47d819c53273547abbbf2aacd6bbd4fc5 SHA512 8f27b954a2f3710cee5cb78635631b035ea733f43381d378464733164b897bc0e8c6b373d80f1d97a65b761c13e342ae0c0836202d1506ec0b7c214b7388c7bb
-DIST qemu-7.0.0.tar.xz 125117636 BLAKE2B ceda6d9f1a585298bd49fed61e8bb35f0064ad8388a9f979c8bd68a38bfe1a47c5bb055e5f74f970c2c440957042b9de4a861524120040c56e4cd8b56c5cfb68 SHA512 44ecd10c018a3763e1bc87d1d35b98890d0d5636acd69fe9b5cadf5024d5af6a31684d60cbe1c3370e02986434c1fb0ad99224e0e6f6fe7eda169992508157b1
-DIST qemu-7.1.0-docs.tar.xz 2016780 BLAKE2B 1b84361fe58d504ab740a0b805a25d02f497ca776e7251a99f0e98e3720d1a2029b7a171f9d79dd128ba17a82c72d497e09baa1a4b2f192ba390f0f3b1950792 SHA512 7a328303b8af0ab63aa1f0fe07a121d3ca459d00fca817412e645416af795930dbea0a3e60f4ca006a74d1672e84fa4e626e4d83918e0b685b601043d0d8159e
-DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
+DIST berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037.tar.bz2 84094 BLAKE2B 396f9df2e6ad559545054e89916915c3a3c8ff80e5e409498fec497b564d8b3ac9dd3cb966e26dce232ddff82af18a0e84e864ca18a80c2a2f4fe47e320249c2 SHA512 93c20d50a356c90f4293d8c7593611b2e0a9bc7567b6d946319f8ae06962ae1e297c8788f66fd38a1d3a0d44661bff9a07a63eaa84c8bb40ae01a45476be446c
+DIST berkeley-testfloat-3-e7af9751d9f9fd3b47911f51a5cfd08af256a9ab.tar.bz2 90020 BLAKE2B 3dda1ba90c4a5ad5cbce2acf35e93f7adbd387ae0e0f929b2cd4cbdf263f95183103118f32be38e8c80de49d7df44c26319ee2f465061d004ae7e64e43eeeb3e SHA512 65f41f42ea563b2cdceb6c71633f41e6694a79ffd02afed4540353a8e73668ae40118dfc108163aae751acbaa7c49630ed99f423465089503c03aee76b07f221
+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.11.tar.xz 121877020 BLAKE2B c546773b9ac7809b39a3afa51da5b1c06c3765fadb4df9d8529f8af65c26098676adf8e516620ca1b39201fa859878780edb56a445778e105cbe7db0f52b9f6a SHA512 c77ff1505128c05fe39eaa95cc11e4d2279bff06093acd613e54f71d4a13144f905551eec1d044c3a3fb751d3369c01d131d68c18b15d9a04bcc77370d93c217
+DIST qemu-7.2.4.tar.xz 121849100 BLAKE2B a9c5ffce9ff0fac4e2d1fa4be1a1dcee2f5d7f793ddf726871c5ae9a68c22f7ba03692a8a5096de3051030d3c2f34e46697d5af2d66c34984b8161ae3bb07b42 SHA512 fa765673833a1f2cbecdb9d47dc7dc29d7613be5a5c8fc63925ae70e1f5aafb4f9f02e45b212a329f17b689351b8a9cdf5f5235ab6adb71bb40e41868898d95b
+DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
+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.3.tar.xz 130106716 BLAKE2B 2ec91b5111952434686064bd603880d87c4f56774d2478ee953eb0454e2b14235b1d1cca484e015b96bceae3182f90b856d222ca590059032b4989babf1dffe8 SHA512 28c789d84754b26cd86ded9db8464ec82f07cdc3b1025a988e74b8c5b05df8839a3e9990ff96cfba50e032dd967e9dc18cf75f3525baeadd0fa019cb69108d0a
+DIST qemu-9.0.0-docs.tar.xz 2290196 BLAKE2B 82d22637ff2629bee372550e86651f12051ea6b4a57e314ef83f290425d4973ef01827eaf28a85b635788f22cb7cc1c747438b7525c92c99b90b234fb8f7655c SHA512 7c0ba1f3e7bbaa4e3feebc33a1946a5c190f2c14b9ed78b15c1f642668c8124960f8c85bcf36fe54a10d4edef47d2256e500f06d9173b92b03c599811a15a073
+DIST qemu-9.0.0.tar.xz 129789856 BLAKE2B d92acb859d9ce5097fee27a4689c71869aa38f65eb0308547956d54bd8caf29efe5389d9009f334f109ad228e0ef1f1fd1444d26360f03fac4320b204b657081 SHA512 1603517cd4c93632ba60ad7261eb67374f12a744bf58f10b0e8686e46d3a02d8b6bf58a0c617f23a1868084aaba6386c24341894f75539e0b816091718721427
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-6.1.0-strings.patch b/app-emulation/qemu/files/qemu-6.1.0-strings.patch
deleted file mode 100644
index 2efe7b29330a..000000000000
--- a/app-emulation/qemu/files/qemu-6.1.0-strings.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Forward-ported from original patch for 5.2.0.
-
-diff --git a/configure b/configure
-index da2501489f..4660ee3ee5 100755
---- a/configure
-+++ b/configure
-@@ -516,6 +516,7 @@ ld="${LD-${cross_prefix}ld}"
- ranlib="${RANLIB-${cross_prefix}ranlib}"
- nm="${NM-${cross_prefix}nm}"
- strip="${STRIP-${cross_prefix}strip}"
-+strings="${STRINGS-${cross_prefix}strings}"
- windres="${WINDRES-${cross_prefix}windres}"
- pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
- query_pkg_config() {
-@@ -2380,9 +2381,9 @@ int main(int argc, char *argv[])
- EOF
-
- if compile_prog ; then
-- if strings -a $TMPE | grep -q BiGeNdIaN ; then
-+ if $strings -a $TMPE | grep -q BiGeNdIaN ; then
- bigendian="yes"
-- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
-+ elif $strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
- bigendian="no"
- else
- echo big/little test failed
diff --git a/app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch b/app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch
deleted file mode 100644
index 85343c4d00e7..000000000000
--- a/app-emulation/qemu/files/qemu-7.0.0-glibc-2.36.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-https://lore.kernel.org/all/20220802183409.GB2040@redhat.com/T/
-https://bugs.gentoo.org/863443
-
-From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
-To: qemu-devel@nongnu.org
-Cc: Laurent Vivier <laurent@vivier.eu>,
- =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
-Subject: [PATCH for 7.1] linux-user: fix compat with glibc >= 2.36 sys/mount.h
-Date: Tue, 2 Aug 2022 12:41:34 -0400
-
-The latest glibc 2.36 has extended sys/mount.h so that it
-defines the FSCONFIG_* enum constants. These are historically
-defined in linux/mount.h, and thus if you include both headers
-the compiler complains:
-
-In file included from /usr/include/linux/fs.h:19,
- from ../linux-user/syscall.c:98:
-/usr/include/linux/mount.h:95:6: error: redeclaration of 'enum fsconfig_command'
- 95 | enum fsconfig_command {
- | ^~~~~~~~~~~~~~~~
-In file included from ../linux-user/syscall.c:31:
-/usr/include/sys/mount.h:189:6: note: originally defined here
- 189 | enum fsconfig_command
- | ^~~~~~~~~~~~~~~~
-/usr/include/linux/mount.h:96:9: error: redeclaration of enumerator 'FSCONFIG_SET_FLAG'
- 96 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
- | ^~~~~~~~~~~~~~~~~
-/usr/include/sys/mount.h:191:3: note: previous definition of 'FSCONFIG_SET_FLAG' with type 'enum fsconfig_command'
- 191 | FSCONFIG_SET_FLAG = 0, /* Set parameter, supplying no value */
- | ^~~~~~~~~~~~~~~~~
-...snip...
-
-QEMU doesn't include linux/mount.h, but it does use
-linux/fs.h and thus gets linux/mount.h indirectly.
-
-glibc acknowledges this problem but does not appear to
-be intending to fix it in the forseeable future, simply
-documenting it as a known incompatibility with no
-workaround:
-
- https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
- https://sourceware.org/glibc/wiki/Synchronizing_Headers
-
-To address this requires either removing use of sys/mount.h
-or linux/fs.h, despite QEMU needing declarations from
-both.
-
-This patch removes linux/fs.h, meaning we have to define
-various FS_IOC constants that are now unavailable.
-
-Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---- a/linux-user/syscall.c
-+++ b/linux-user/syscall.c
-@@ -95,7 +95,25 @@
- #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
-@@ -1963,6 +1963,8 @@ 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',
diff --git a/app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch b/app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch
deleted file mode 100644
index 2acf73cff86e..000000000000
--- a/app-emulation/qemu/files/qemu-7.0.0-have-user-meson.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2296b4655694744f7c8dcdc9440c21d86e19968e Mon Sep 17 00:00:00 2001
-From: Thomas Huth <thuth@redhat.com>
-Date: Wed, 22 Jun 2022 16:03:28 +0200
-Subject: [PATCH] common-user: Only compile the common user code if have_user
- is set
-
-There is no need to waste cycles here if we only compile the system
-binaries or tools. Additionally, this change is even a hard requirement
-for building the tools on systems that do not have an entry in the
-common-user/host/ folder (since common-user/meson.build is trying
-to add such a path via the include_directories() command).
-
-Reported-by: Michael Tokarev <mjt@tls.msk.ru>
-Signed-off-by: Thomas Huth <thuth@redhat.com>
-Reviewed-by: Zhang Chen <chen.zhang@intel.com>
-Message-Id: <20220622140328.383961-1-thuth@redhat.com>
-Signed-off-by: Laurent Vivier <laurent@vivier.eu>
----
- common-user/meson.build | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/common-user/meson.build b/common-user/meson.build
-index 26212dda5c..ac9de5b9e3 100644
---- a/common-user/meson.build
-+++ b/common-user/meson.build
-@@ -1,3 +1,7 @@
-+if not have_user
-+ subdir_done()
-+endif
-+
- common_user_inc += include_directories('host/' / host_arch)
-
- user_ss.add(files(
---
-GitLab
-
diff --git a/app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch b/app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch
deleted file mode 100644
index 767f66243fcc..000000000000
--- a/app-emulation/qemu/files/qemu-7.0.0-pci-overflow-fortify-source-3.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-https://bugs.gentoo.org/849587
-https://bugzilla.opensuse.org/show_bug.cgi?id=1199924
-https://lists.gnu.org/archive/html/qemu-devel/2022-05/msg06183.html
-
-From qemu-devel Tue May 31 11:47:07 2022
-From: Claudio Fontana <cfontana () suse ! de>
-Date: Tue, 31 May 2022 11:47:07 +0000
-To: qemu-devel
-Subject: [PATCH] pci: fix overflow in snprintf string formatting
-Message-Id: <20220531114707.18830-1-cfontana () suse ! de>
-X-MARC-Message: https://marc.info/?l=qemu-devel&m=165399772310578
-
-the code in pcibus_get_fw_dev_path contained the potential for a
-stack buffer overflow of 1 byte, potentially writing to the stack an
-extra NUL byte.
-
-This overflow could happen if the PCI slot is >= 0x10000000,
-and the PCI function is >= 0x10000000, due to the size parameter
-of snprintf being incorrectly calculated in the call:
-
- if (PCI_FUNC(d->devfn))
- snprintf(path + off, sizeof(path) + off, ",%x", PCI_FUNC(d->devfn));
-
-since the off obtained from a previous call to snprintf is added
-instead of subtracted from the total available size of the buffer.
-
-Without the accurate size guard from snprintf, we end up writing in the
-worst case:
-
-name (32) + "@" (1) + SLOT (8) + "," (1) + FUNC (8) + term NUL (1) = 51 bytes
-
-In order to provide something more robust, replace all of the code in
-pcibus_get_fw_dev_path with a single call to g_strdup_printf,
-so there is no need to rely on manual calculations.
-
-Found by compiling QEMU with FORTIFY_SOURCE=3 as the error:
-
-*** buffer overflow detected ***: terminated
-
-Thread 1 "qemu-system-x86" received signal SIGABRT, Aborted.
-[Switching to Thread 0x7ffff642c380 (LWP 121307)]
-0x00007ffff71ff55c in __pthread_kill_implementation () from /lib64/libc.so.6
-(gdb) bt
- #0 0x00007ffff71ff55c in __pthread_kill_implementation () at /lib64/libc.so.6
- #1 0x00007ffff71ac6f6 in raise () at /lib64/libc.so.6
- #2 0x00007ffff7195814 in abort () at /lib64/libc.so.6
- #3 0x00007ffff71f279e in __libc_message () at /lib64/libc.so.6
- #4 0x00007ffff729767a in __fortify_fail () at /lib64/libc.so.6
- #5 0x00007ffff7295c36 in () at /lib64/libc.so.6
- #6 0x00007ffff72957f5 in __snprintf_chk () at /lib64/libc.so.6
- #7 0x0000555555b1c1fd in pcibus_get_fw_dev_path ()
- #8 0x0000555555f2bde4 in qdev_get_fw_dev_path_helper.constprop ()
- #9 0x0000555555f2bd86 in qdev_get_fw_dev_path_helper.constprop ()
- #10 0x00005555559a6e5d in get_boot_device_path ()
- #11 0x00005555559a712c in get_boot_devices_list ()
- #12 0x0000555555b1a3d0 in fw_cfg_machine_reset ()
- #13 0x0000555555bf4c2d in pc_machine_reset ()
- #14 0x0000555555c66988 in qemu_system_reset ()
- #15 0x0000555555a6dff6 in qdev_machine_creation_done ()
- #16 0x0000555555c79186 in qmp_x_exit_preconfig.part ()
- #17 0x0000555555c7b459 in qemu_init ()
- #18 0x0000555555960a29 in main ()
-
-Found-by: Dario Faggioli <Dario Faggioli <dfaggioli@suse.com>
-Found-by: Martin Liška <martin.liska@suse.com>
-Cc: qemu-stable@nongnu.org
-Signed-off-by: Claudio Fontana <cfontana@suse.de>
---- a/hw/pci/pci.c
-+++ b/hw/pci/pci.c
-@@ -2640,15 +2640,15 @@ static char *pci_dev_fw_name(DeviceState *dev, char *buf, int len)
- static char *pcibus_get_fw_dev_path(DeviceState *dev)
- {
- PCIDevice *d = (PCIDevice *)dev;
-- char path[50], name[33];
-- int off;
--
-- off = snprintf(path, sizeof(path), "%s@%x",
-- pci_dev_fw_name(dev, name, sizeof name),
-- PCI_SLOT(d->devfn));
-- if (PCI_FUNC(d->devfn))
-- snprintf(path + off, sizeof(path) + off, ",%x", PCI_FUNC(d->devfn));
-- return g_strdup(path);
-+ char name[33];
-+ int has_func = !!PCI_FUNC(d->devfn);
-+
-+ return g_strdup_printf("%s@%x%s%.*x",
-+ pci_dev_fw_name(dev, name, sizeof(name)),
-+ PCI_SLOT(d->devfn),
-+ has_func ? "," : "",
-+ has_func,
-+ PCI_FUNC(d->devfn));
- }
-
- static char *pcibus_get_dev_path(DeviceState *dev)
diff --git a/app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch b/app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch
deleted file mode 100644
index 9ec6ede80896..000000000000
--- a/app-emulation/qemu/files/qemu-7.0.0-virtio-scsi-fixes.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-https://bugs.gentoo.org/849500
-https://gitlab.com/qemu-project/qemu/-/commit/2f743ef6366c2df4ef51ef3ae318138cdc0125ab.patch
-https://gitlab.com/qemu-project/qemu/-/commit/38738f7dbbda90fbc161757b7f4be35b52205552.patch
-
-From: Stefan Hajnoczi <stefanha@redhat.com>
-Date: Wed, 27 Apr 2022 15:35:36 +0100
-Subject: [PATCH] virtio-scsi: fix ctrl and event handler functions in
- dataplane mode
-
-Commit f34e8d8b8d48d73f36a67b6d5e492ef9784b5012 ("virtio-scsi: prepare
-virtio_scsi_handle_cmd for dataplane") prepared the virtio-scsi cmd
-virtqueue handler function to be used in both the dataplane and
-non-datpalane code paths.
-
-It failed to convert the ctrl and event virtqueue handler functions,
-which are not designed to be called from the dataplane code path but
-will be since the ioeventfd is set up for those virtqueues when
-dataplane starts.
-
-Convert the ctrl and event virtqueue handler functions now so they
-operate correctly when called from the dataplane code path. Avoid code
-duplication by extracting this code into a helper function.
-
-Fixes: f34e8d8b8d48d73f36a67b6d5e492ef9784b5012 ("virtio-scsi: prepare virtio_scsi_handle_cmd for dataplane")
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
-Message-id: 20220427143541.119567-2-stefanha@redhat.com
-[Fixed s/by used/be used/ typo pointed out by Michael Tokarev
-<mjt@tls.msk.ru>.
---Stefan]
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---- a/hw/scsi/virtio-scsi.c
-+++ b/hw/scsi/virtio-scsi.c
-@@ -472,16 +472,32 @@ bool virtio_scsi_handle_ctrl_vq(VirtIOSCSI *s, VirtQueue *vq)
- return progress;
- }
-
-+/*
-+ * If dataplane is configured but not yet started, do so now and return true on
-+ * success.
-+ *
-+ * Dataplane is started by the core virtio code but virtqueue handler functions
-+ * can also be invoked when a guest kicks before DRIVER_OK, so this helper
-+ * function helps us deal with manually starting ioeventfd in that case.
-+ */
-+static bool virtio_scsi_defer_to_dataplane(VirtIOSCSI *s)
-+{
-+ if (!s->ctx || s->dataplane_started) {
-+ return false;
-+ }
-+
-+ virtio_device_start_ioeventfd(&s->parent_obj.parent_obj);
-+ return !s->dataplane_fenced;
-+}
-+
- static void virtio_scsi_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq)
- {
- VirtIOSCSI *s = (VirtIOSCSI *)vdev;
-
-- if (s->ctx) {
-- virtio_device_start_ioeventfd(vdev);
-- if (!s->dataplane_fenced) {
-- return;
-- }
-+ if (virtio_scsi_defer_to_dataplane(s)) {
-+ return;
- }
-+
- virtio_scsi_acquire(s);
- virtio_scsi_handle_ctrl_vq(s, vq);
- virtio_scsi_release(s);
-@@ -720,12 +736,10 @@ static void virtio_scsi_handle_cmd(VirtIODevice *vdev, VirtQueue *vq)
- /* use non-QOM casts in the data path */
- VirtIOSCSI *s = (VirtIOSCSI *)vdev;
-
-- if (s->ctx && !s->dataplane_started) {
-- virtio_device_start_ioeventfd(vdev);
-- if (!s->dataplane_fenced) {
-- return;
-- }
-+ if (virtio_scsi_defer_to_dataplane(s)) {
-+ return;
- }
-+
- virtio_scsi_acquire(s);
- virtio_scsi_handle_cmd_vq(s, vq);
- virtio_scsi_release(s);
-@@ -855,12 +869,10 @@ static void virtio_scsi_handle_event(VirtIODevice *vdev, VirtQueue *vq)
- {
- VirtIOSCSI *s = VIRTIO_SCSI(vdev);
-
-- if (s->ctx) {
-- virtio_device_start_ioeventfd(vdev);
-- if (!s->dataplane_fenced) {
-- return;
-- }
-+ if (virtio_scsi_defer_to_dataplane(s)) {
-+ return;
- }
-+
- virtio_scsi_acquire(s);
- virtio_scsi_handle_event_vq(s, vq);
- virtio_scsi_release(s);
-GitLab
-
-From: Stefan Hajnoczi <stefanha@redhat.com>
-Date: Wed, 27 Apr 2022 15:35:37 +0100
-Subject: [PATCH] virtio-scsi: don't waste CPU polling the event virtqueue
-
-The virtio-scsi event virtqueue is not emptied by its handler function.
-This is typical for rx virtqueues where the device uses buffers when
-some event occurs (e.g. a packet is received, an error condition
-happens, etc).
-
-Polling non-empty virtqueues wastes CPU cycles. We are not waiting for
-new buffers to become available, we are waiting for an event to occur,
-so it's a misuse of CPU resources to poll for buffers.
-
-Introduce the new virtio_queue_aio_attach_host_notifier_no_poll() API,
-which is identical to virtio_queue_aio_attach_host_notifier() except
-that it does not poll the virtqueue.
-
-Before this patch the following command-line consumed 100% CPU in the
-IOThread polling and calling virtio_scsi_handle_event():
-
- $ qemu-system-x86_64 -M accel=kvm -m 1G -cpu host \
- --object iothread,id=iothread0 \
- --device virtio-scsi-pci,iothread=iothread0 \
- --blockdev file,filename=test.img,aio=native,cache.direct=on,node-name=drive0 \
- --device scsi-hd,drive=drive0
-
-After this patch CPU is no longer wasted.
-
-Reported-by: Nir Soffer <nsoffer@redhat.com>
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
-Tested-by: Nir Soffer <nsoffer@redhat.com>
-Message-id: 20220427143541.119567-3-stefanha@redhat.com
-Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---- a/hw/scsi/virtio-scsi-dataplane.c
-+++ b/hw/scsi/virtio-scsi-dataplane.c
-@@ -138,7 +138,7 @@ int virtio_scsi_dataplane_start(VirtIODevice *vdev)
-
- aio_context_acquire(s->ctx);
- virtio_queue_aio_attach_host_notifier(vs->ctrl_vq, s->ctx);
-- virtio_queue_aio_attach_host_notifier(vs->event_vq, s->ctx);
-+ virtio_queue_aio_attach_host_notifier_no_poll(vs->event_vq, s->ctx);
-
- for (i = 0; i < vs->conf.num_queues; i++) {
- virtio_queue_aio_attach_host_notifier(vs->cmd_vqs[i], s->ctx);
---- a/hw/virtio/virtio.c
-+++ b/hw/virtio/virtio.c
-@@ -3534,6 +3534,19 @@ void virtio_queue_aio_attach_host_notifier(VirtQueue *vq, AioContext *ctx)
- virtio_queue_host_notifier_aio_poll_end);
- }
-
-+/*
-+ * Same as virtio_queue_aio_attach_host_notifier() but without polling. Use
-+ * this for rx virtqueues and similar cases where the virtqueue handler
-+ * function does not pop all elements. When the virtqueue is left non-empty
-+ * polling consumes CPU cycles and should not be used.
-+ */
-+void virtio_queue_aio_attach_host_notifier_no_poll(VirtQueue *vq, AioContext *ctx)
-+{
-+ aio_set_event_notifier(ctx, &vq->host_notifier, true,
-+ virtio_queue_host_notifier_read,
-+ NULL, NULL);
-+}
-+
- void virtio_queue_aio_detach_host_notifier(VirtQueue *vq, AioContext *ctx)
- {
- aio_set_event_notifier(ctx, &vq->host_notifier, true, NULL, NULL, NULL);
---- a/include/hw/virtio/virtio.h
-+++ b/include/hw/virtio/virtio.h
-@@ -317,6 +317,7 @@ EventNotifier *virtio_queue_get_host_notifier(VirtQueue *vq);
- void virtio_queue_set_host_notifier_enabled(VirtQueue *vq, bool enabled);
- void virtio_queue_host_notifier_read(EventNotifier *n);
- void virtio_queue_aio_attach_host_notifier(VirtQueue *vq, AioContext *ctx);
-+void virtio_queue_aio_attach_host_notifier_no_poll(VirtQueue *vq, AioContext *ctx);
- void virtio_queue_aio_detach_host_notifier(VirtQueue *vq, AioContext *ctx);
- VirtQueue *virtio_vector_first_queue(VirtIODevice *vdev, uint16_t vector);
- VirtQueue *virtio_vector_next_queue(VirtQueue *vq);
-GitLab
diff --git a/app-emulation/qemu/files/qemu-7.1.0-strings.patch b/app-emulation/qemu/files/qemu-7.1.0-strings.patch
deleted file mode 100644
index 01f235b9a33c..000000000000
--- a/app-emulation/qemu/files/qemu-7.1.0-strings.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Forward-ported from original patch for 5.2.0.
-
-diff --git a/configure b/configure
-index da2501489f..4660ee3ee5 100755
---- a/configure
-+++ b/configure
-@@ -400,6 +400,7 @@ ld="${LD-${cross_prefix}ld}"
- nm="${NM-${cross_prefix}nm}"
- smbd="$SMBD"
- strip="${STRIP-${cross_prefix}strip}"
-+strings="${STRINGS-${cross_prefix}strings}"
- widl="${WIDL-${cross_prefix}widl}"
- windres="${WINDRES-${cross_prefix}windres}"
- pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
-@@ -1466,9 +1467,9 @@ int main(int argc, char *argv[])
- EOF
-
- if compile_prog ; then
-- if strings -a $TMPE | grep -q BiGeNdIaN ; then
-+ if $strings -a $TMPE | grep -q BiGeNdIaN ; then
- bigendian="yes"
-- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
-+ elif $strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
- bigendian="no"
- else
- echo big/little test failed
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-7.0.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch
index ca2e9433792c..61ea0f36d90a 100644
--- a/app-emulation/qemu/files/qemu-7.0.0-also-build-virtfs-proxy-helper.patch
+++ b/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch
@@ -1,4 +1,4 @@
-From c1093041466772f4b62961bcc5a354801d41355d Mon Sep 17 00:00:00 2001
+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
@@ -15,18 +15,18 @@ all, it is a tiny executable
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 861de93c4f..a8d29be3aa 100644
+index 063c736aee..fda8639293 100644
--- a/meson.build
+++ b/meson.build
-@@ -1474,7 +1474,7 @@ have_virtfs = get_option('virtfs') \
- .disable_auto_if(not have_tools and not have_system) \
+@@ -2008,8 +2008,6 @@ have_virtfs = get_option('virtfs') \
.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()
-
- foreach k : get_option('trace_backends')
- config_host_data.set('CONFIG_TRACE_' + k.to_upper(), true)
+ 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/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch
new file mode 100644
index 000000000000..603d20c42fc8
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-9.0.0-also-build-virtfs-proxy-helper.patch
@@ -0,0 +1,35 @@
+From 951325a0c9519d4910d80cc6c7a5728c0dbc4946 Mon Sep 17 00:00:00 2001
+Message-ID: <951325a0c9519d4910d80cc6c7a5728c0dbc4946.1714317553.git.mprivozn@redhat.com>
+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.
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index c3a2be7b2d..50a5cfcf4e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2116,8 +2116,6 @@ have_virtfs = get_option('virtfs') \
+ .allowed()
+
+ have_virtfs_proxy_helper = get_option('virtfs_proxy_helper') \
+- .require(host_os != '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.43.2
+
diff --git a/app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch b/app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch
new file mode 100644
index 000000000000..3e0408d6b213
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-9.0.0-capstone-include-path.patch
@@ -0,0 +1,42 @@
+From 67a8b35e98f5c0853f7cdf26db0ebc6ce20b929c Mon Sep 17 00:00:00 2001
+Message-ID: <67a8b35e98f5c0853f7cdf26db0ebc6ce20b929c.1714317553.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sun, 28 Apr 2024 17:10:46 +0200
+Subject: [PATCH] Forward ported from qemu-7.1.0-capstone-include-path.patch.
+
+Bug: https://bugs.gentoo.org/873157
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ include/disas/capstone.h | 2 +-
+ meson.build | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+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 ea3ccff968..c3a2be7b2d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1712,7 +1712,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()
+--
+2.43.2
+
diff --git a/app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch
new file mode 100644
index 000000000000..c85d213626e2
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-9.0.0-disable-keymap.patch
@@ -0,0 +1,44 @@
+From 8cca781563e89facd312d622a69af124eb2757c6 Mon Sep 17 00:00:00 2001
+Message-ID: <8cca781563e89facd312d622a69af124eb2757c6.1714317553.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sun, 28 Apr 2024 17:10:13 +0200
+Subject: [PATCH] 8.0.0-disable-keymap.patch
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ meson.build | 2 ++
+ pc-bios/keymaps/meson.build | 4 +++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 5db2dbc12e..ea3ccff968 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1098,6 +1098,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')
+diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
+index 0bd8ce0077..3888f4c64f 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
+--
+2.43.2
+
diff --git a/app-emulation/qemu/metadata.xml b/app-emulation/qemu/metadata.xml
index d019d64795ad..adb556795249 100644
--- a/app-emulation/qemu/metadata.xml
+++ b/app-emulation/qemu/metadata.xml
@@ -1,26 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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>
- <maintainer type="person">
- <email>zlogene@gentoo.org</email>
- <name>Mikle Kolyada</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>
@@ -39,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>
@@ -47,6 +36,7 @@
<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 https://docs.ceph.com/en/mimic/rbd/qemu-rbd/</flag>
@@ -65,7 +55,6 @@
<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 https://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="virgl">Enable experimental Virgil 3d (virtual software GPU)</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>
diff --git a/app-emulation/qemu/qemu-7.1.0.ebuild b/app-emulation/qemu/qemu-7.2.11.ebuild
index 82e527f614ec..e59ab048ded1 100644
--- a/app-emulation/qemu/qemu-7.1.0.ebuild
+++ b/app-emulation/qemu/qemu-7.2.11.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -8,15 +8,15 @@ EAPI=8
# (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="${PV}"
+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_{8,9,10,11} )
+PYTHON_COMPAT=( python3_{10,11} )
PYTHON_REQ_USE="ncurses,readline"
-FIRMWARE_ABI_VERSION="7.1.0"
+FIRMWARE_ABI_VERSION="7.2.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
@@ -41,7 +41,7 @@ else
fi
S="${WORKDIR}/${MY_P}"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
@@ -52,7 +52,7 @@ SLOT="0"
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
-IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG}
+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
@@ -60,7 +60,7 @@ IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_US
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
smartcard snappy spice ssh static static-user systemtap test udev usb
- usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
zstd"
COMMON_TARGETS="
@@ -115,9 +115,11 @@ 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 )
@@ -129,14 +131,16 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
sdl-image? ( sdl )
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
static-user? ( !plugins )
- vhost-user-fs? ( caps seccomp )
virgl? ( opengl )
- virtfs? ( caps xattr )
+ 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-*).
@@ -147,15 +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="
+ sys-libs/libcap-ng[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@@ -165,18 +170,20 @@ SOFTMMU_TOOLS_DEPEND="
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.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-cluster/rdma-core[static-libs(+)] )
@@ -201,7 +208,7 @@ SOFTMMU_TOOLS_DEPEND="
)
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? (
@@ -219,7 +226,7 @@ SOFTMMU_TOOLS_DEPEND="
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
udev? ( virtual/libudev:= )
- usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
+ 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(+)] )
@@ -265,17 +272,17 @@ PPC_FIRMWARE_DEPEND="
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
- dev-util/meson
+ dev-build/meson
sys-apps/texinfo
virtual/pkgconfig
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
- dev-python/sphinx_rtd_theme[${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="
@@ -306,8 +313,8 @@ 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-strings.patch
"${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
)
QA_PREBUILT="
@@ -453,7 +460,7 @@ src_prepare() {
sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
# Remove bundled modules
- rm -r dtc meson roms/*/ slirp || die
+ rm -r dtc meson roms/*/ || die
}
##
@@ -552,7 +559,6 @@ qemu_src_configure() {
$(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
- $(conf_notuser caps cap-ng)
$(conf_notuser curl)
$(conf_tools doc docs)
$(conf_notuser fdt)
@@ -580,7 +586,7 @@ qemu_src_configure() {
$(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)
@@ -624,6 +630,8 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -632,18 +640,10 @@ qemu_src_configure() {
--disable-linux-user
--enable-system
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
local static_flag="static"
-
- for target in ${IUSE_SOFTMMU_TARGETS}; do
- if use "qemu_softmmu_targets_${target}"; then
- conf_opts+=(
- # For some reason, adding this with the setting set
- # to on *or* off makes the build always fail.
- # --with-devices-${target}=gentoo
- )
- fi
- done
;;
tools)
conf_opts+=(
@@ -651,6 +651,7 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--enable-tools
+ --enable-cap-ng
)
local static_flag="static"
;;
@@ -695,21 +696,6 @@ src_configure() {
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
-
- # Needed to rework vhost-user-fs handling thanks to https://gitlab.com/qemu-project/qemu/-/commit/5166dab
- # The option was converted into being configurable by
- # Kconfig's. So, to enable it, we insert the necessary
- # options into each arch's softmmu target gentoo.mak file,
- # then configure with --with-devices-${target}=gentoo.
- if use vhost-user-fs; then
- echo "CONFIG_VHOST_USER_FS=y for ${target}-softmmu" || die
- echo "CONFIG_VIRTIO=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- echo "CONFIG_VHOST_USER_FS=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- else
- echo "CONFIG_VHOST_USER_FS=n for ${target}-softmmu" || die
- echo "CONFIG_VIRTIO=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- echo "CONFIG_VHOST_USER_FS=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- fi
fi
done
diff --git a/app-emulation/qemu/qemu-7.0.0-r3.ebuild b/app-emulation/qemu/qemu-7.2.4.ebuild
index 126f0338e5ba..ecb35f27987f 100644
--- a/app-emulation/qemu/qemu-7.0.0-r3.ebuild
+++ b/app-emulation/qemu/qemu-7.2.4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,18 +6,17 @@ 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:=1}
-
-QEMU_DOCS_PREBUILT_DEV=sam
-QEMU_DOCS_VERSION=$(ver_cut 1-3)
+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_DOCS_USEFLAG="+doc"
+QEMU_DOC_USEFLAG="+doc"
-PYTHON_COMPAT=( python3_{8,9,10,11} )
+PYTHON_COMPAT=( python3_{10,11} )
PYTHON_REQ_USE="ncurses,readline"
-FIRMWARE_ABI_VERSION="7.0.0"
+FIRMWARE_ABI_VERSION="7.2.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
@@ -27,7 +26,6 @@ if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
EGIT_SUBMODULES=(
- meson
tests/fp/berkeley-softfloat-3
tests/fp/berkeley-testfloat-3
ui/keycodemapdb
@@ -42,8 +40,8 @@ else
SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
fi
- KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
@@ -52,9 +50,9 @@ HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
-[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOCS_USEFLAG="doc"
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
-IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOCS_USEFLAG}
+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
@@ -62,7 +60,7 @@ IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOCS_U
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
smartcard snappy spice ssh static static-user systemtap test udev usb
- usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
zstd"
COMMON_TARGETS="
@@ -72,6 +70,7 @@ COMMON_TARGETS="
cris
hppa
i386
+ loongarch64
m68k
microblaze
microblazeel
@@ -116,9 +115,11 @@ 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 )
@@ -130,14 +131,16 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
sdl-image? ( sdl )
static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
static-user? ( !plugins )
- vhost-user-fs? ( caps seccomp )
virgl? ( opengl )
- virtfs? ( caps xattr )
+ 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-*).
@@ -148,15 +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="
+ sys-libs/libcap-ng[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@@ -166,18 +170,20 @@ SOFTMMU_TOOLS_DEPEND="
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.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-cluster/rdma-core[static-libs(+)] )
@@ -202,7 +208,7 @@ SOFTMMU_TOOLS_DEPEND="
)
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? (
@@ -220,7 +226,7 @@ SOFTMMU_TOOLS_DEPEND="
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
udev? ( virtual/libudev:= )
- usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
+ 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(+)] )
@@ -229,44 +235,54 @@ SOFTMMU_TOOLS_DEPEND="
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
-EDK2_OVMF_VERSION="202105"
-SEABIOS_VERSION="1.14.0"
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
- ~sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}[binary]
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
~sys-firmware/ipxe-1.21.1[binary,qemu]
- ~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
+ ~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-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
sys-firmware/ipxe[qemu]
- >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
sys-firmware/sgabios
)"
PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
- ~sys-firmware/seabios-${SEABIOS_VERSION}[binary,seavgabios]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
!pin-upstream-blobs? (
- >=sys-firmware/seabios-${SEABIOS_VERSION}[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[${PYTHON_USEDEP}]
- dev-python/sphinx_rtd_theme[${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="
@@ -294,15 +310,12 @@ RDEPEND="${CDEPEND}
)"
PATCHES=(
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
"${FILESDIR}"/${PN}-6.0.0-make.patch
- "${FILESDIR}"/${PN}-6.1.0-strings.patch
- "${FILESDIR}"/${PN}-7.0.0-also-build-virtfs-proxy-helper.patch
- "${FILESDIR}"/${P}-virtio-scsi-fixes.patch
- "${FILESDIR}"/${P}-pci-overflow-fortify-source-3.patch
- "${FILESDIR}"/${P}-glibc-2.36.patch
- "${FILESDIR}"/${PN}-7.0.0-have-user-meson.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="
@@ -447,8 +460,8 @@ src_prepare() {
# 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
}
##
@@ -493,7 +506,6 @@ 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)"
@@ -548,7 +560,6 @@ qemu_src_configure() {
$(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
- $(conf_notuser caps cap-ng)
$(conf_notuser curl)
$(conf_tools doc docs)
$(conf_notuser fdt)
@@ -570,13 +581,13 @@ qemu_src_configure() {
$(conf_notuser numa)
$(conf_notuser opengl)
$(conf_notuser pam auth-pam)
- $(conf_notuser png vnc-png)
+ $(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)
@@ -586,8 +597,6 @@ qemu_src_configure() {
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
- $(conf_notuser vhost-user-fs)
- $(conf_tools vhost-user-fs virtiofsd)
$(conf_notuser virgl virglrenderer)
$(conf_softmmu virtfs)
$(conf_notuser vnc)
@@ -622,6 +631,8 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -630,6 +641,8 @@ qemu_src_configure() {
--disable-linux-user
--enable-system
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
local static_flag="static"
;;
@@ -639,6 +652,7 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--enable-tools
+ --enable-cap-ng
)
local static_flag="static"
;;
@@ -841,10 +855,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
@@ -855,6 +866,7 @@ 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"
+
# 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
@@ -866,13 +878,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
@@ -912,9 +922,20 @@ pkg_postinst() {
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"
@@ -928,22 +949,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-8.0.5.ebuild b/app-emulation/qemu/qemu-8.0.5.ebuild
new file mode 100644
index 000000000000..32cb18d7115d
--- /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.3.ebuild b/app-emulation/qemu/qemu-8.2.3.ebuild
new file mode 100644
index 000000000000..1c6bab186548
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.2.3.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-9.0.0.ebuild b/app-emulation/qemu/qemu-9.0.0.ebuild
new file mode 100644
index 000000000000..179ca305b449
--- /dev/null
+++ b/app-emulation/qemu/qemu-9.0.0.ebuild
@@ -0,0 +1,996 @@
+# 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)
+# 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]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab"
+ )
+
+ 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}-9.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-9.0.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-9.0.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/hppa-firmware64.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_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 4d1ead785bc1..02a65ccd518a 100644
--- a/app-emulation/qemu/qemu-9999.ebuild
+++ b/app-emulation/qemu/qemu-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,18 +6,17 @@ 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:=1}
-
+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_{8,9,10,11} )
+PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,readline"
-FIRMWARE_ABI_VERSION="7.1.0"
+FIRMWARE_ABI_VERSION="7.2.0"
inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
pax-utils xdg-utils
@@ -26,13 +25,19 @@ 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
- )
+ EGIT_SUBMODULES=()
inherit git-r3
SRC_URI=""
+ declare -A SUBPROJECTS=(
+ [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
+ [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
+ [berkeley-testfloat-3]="e7af9751d9f9fd3b47911f51a5cfd08af256a9ab"
+ )
+
+ 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"
@@ -42,7 +47,7 @@ else
fi
S="${WORKDIR}/${MY_P}"
- KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
@@ -53,15 +58,15 @@ SLOT="0"
[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
-IUSE="accessibility +aio alsa bpf bzip2 capstone +caps +curl debug ${QEMU_DOC_USEFLAG}
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
- jack jemalloc +jpeg
+ jack jemalloc +jpeg keyutils
lzo multipath
- ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
+ 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 udev usb
- usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
zstd"
COMMON_TARGETS="
@@ -79,7 +84,6 @@ COMMON_TARGETS="
mips64
mips64el
mipsel
- nios2
or1k
ppc
ppc64
@@ -116,9 +120,11 @@ 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 )
@@ -128,16 +134,17 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
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 )
- vhost-user-fs? ( caps seccomp )
virgl? ( opengl )
- virtfs? ( caps xattr )
+ virtfs? ( xattr )
vnc? ( gnutls )
vte? ( gtk )
multipath? ( udev )
- plugins? ( !static !static-user )
+ 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-*).
@@ -148,11 +155,12 @@ 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-*).
@@ -166,15 +174,14 @@ SOFTMMU_TOOLS_DEPEND="
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.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
@@ -186,6 +193,8 @@ SOFTMMU_TOOLS_DEPEND="
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? (
@@ -201,8 +210,9 @@ SOFTMMU_TOOLS_DEPEND="
media-libs/mesa[egl(+),gbm(+)]
)
pam? ( sys-libs/pam )
- png? ( media-libs/libpng:0=[static-libs(+)] )
- pulseaudio? ( media-sound/pulseaudio )
+ 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? (
@@ -215,12 +225,12 @@ 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(+)] )
udev? ( virtual/libudev:= )
- usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
+ 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(+)] )
@@ -250,7 +260,8 @@ X86_FIRMWARE_DEPEND="
>=sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
sys-firmware/sgabios
- )"
+ )
+"
PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
~sys-firmware/seabios-bin-${SEABIOS_VERSION}
@@ -263,56 +274,58 @@ PPC_FIRMWARE_DEPEND="
)
"
+# See bug #913084 for pip dep
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
- dev-util/meson
- sys-apps/texinfo
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
virtual/pkgconfig
doc? (
- dev-python/sphinx[${PYTHON_USEDEP}]
- dev-python/sphinx_rtd_theme[${PYTHON_USEDEP}]
+ >=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_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
sys-libs/libselinux
- )"
+ )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
- "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
- "${FILESDIR}"/${PN}-6.0.0-make.patch
- "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
- "${FILESDIR}"/${PN}-7.1.0-strings.patch
+ "${FILESDIR}"/${PN}-9.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-9.0.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-9.0.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/hppa-firmware64.img
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
@@ -324,7 +337,8 @@ QA_PREBUILT="
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
@@ -389,6 +403,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
@@ -435,6 +451,23 @@ check_targets() {
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
@@ -448,13 +481,8 @@ src_prepare() {
# 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/*/ slirp || die
+ rm -r roms/*/ || die
}
##
@@ -482,7 +510,7 @@ qemu_src_configure() {
--disable-containers # bug #732972
--disable-guest-agent
--disable-strip
- --with-git-submodules=ignore
+ --disable-download
# bug #746752: TCG interpreter has a few limitations:
# - it does not support FPU
@@ -501,6 +529,7 @@ qemu_src_configure() {
--disable-gcrypt
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
--host-cc="$(tc-getBUILD_CC)"
$(use_enable alsa)
@@ -509,6 +538,7 @@ qemu_src_configure() {
$(use_enable jack)
$(use_enable nls gettext)
$(use_enable oss)
+ $(use_enable pipewire)
$(use_enable plugins)
$(use_enable pulseaudio pa)
$(use_enable selinux)
@@ -553,7 +583,6 @@ qemu_src_configure() {
$(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
- $(conf_notuser caps cap-ng)
$(conf_notuser curl)
$(conf_tools doc docs)
$(conf_notuser fdt)
@@ -568,6 +597,7 @@ qemu_src_configure() {
$(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)
@@ -581,7 +611,7 @@ qemu_src_configure() {
$(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)
@@ -591,8 +621,6 @@ qemu_src_configure() {
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
- # $(conf_notuser vhost-user-fs)
- # $(conf_tools vhost-user-fs virtiofsd)
$(conf_notuser virgl virglrenderer)
$(conf_softmmu virtfs)
$(conf_notuser vnc)
@@ -610,6 +638,7 @@ qemu_src_configure() {
# 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)
@@ -626,6 +655,8 @@ qemu_src_configure() {
--enable-linux-user
--disable-system
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -633,29 +664,20 @@ qemu_src_configure() {
conf_opts+=(
--disable-linux-user
--enable-system
- --disable-blobs
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
- local static_flag="static"
-
- for target in ${IUSE_SOFTMMU_TARGETS}; do
- if use "qemu_softmmu_targets_${target}"; then
- conf_opts+=(
- # For some reason, adding this with the setting set
- # to on *or* off makes the build always fail.
- # --with-devices-${target}=gentoo
- )
- fi
- done
+ 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
@@ -663,12 +685,12 @@ 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 )
@@ -698,16 +720,6 @@ src_configure() {
if use "qemu_softmmu_targets_${target}"; then
softmmu_targets+=",${target}-softmmu"
softmmu_bins+=( "qemu-system-${target}" )
-
- if use vhost-user-fs; then
- echo "CONFIG_VHOST_USER_FS=y for ${target}-softmmu" || die
- echo "CONFIG_VIRTIO=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- echo "CONFIG_VHOST_USER_FS=y" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- else
- echo "CONFIG_VHOST_USER_FS=n for ${target}-softmmu" || die
- echo "CONFIG_VIRTIO=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- echo "CONFIG_VHOST_USER_FS=n" >> "configs/devices/${target}-softmmu/gentoo.mak" || die
- fi
fi
done
@@ -858,7 +870,7 @@ src_install() {
doins "${FILESDIR}/bridge.conf"
cd "${S}" || die
- dodoc MAINTAINERS docs/specs/pci-ids.txt
+ dodoc MAINTAINERS
newdoc pc-bios/README README.pc-bios
# Disallow stripping of prebuilt firmware files.
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/aqemu/metadata.xml b/app-emulation/qtrvsim/metadata.xml
index b13470d746c5..38cc1db28ca8 100644
--- a/app-emulation/aqemu/metadata.xml
+++ b/app-emulation/qtrvsim/metadata.xml
@@ -1,9 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
+ <maintainer type="person">
+ <email>flow@gentoo.org</email>
+ <name>Florian Schmaus</name>
+ </maintainer>
<upstream>
- <remote-id type="sourceforge">aqemu</remote-id>
- <remote-id type="github">tobimensch/aqemu</remote-id>
+ <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..a9c2875d59f6
--- /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/ruffle/Manifest b/app-emulation/ruffle/Manifest
index 16e827bff869..55dbddb94692 100644
--- a/app-emulation/ruffle/Manifest
+++ b/app-emulation/ruffle/Manifest
@@ -1,454 +1,657 @@
-DIST Inflector-0.11.4.crate 17438 BLAKE2B eaf0c7f983b3186e9bc89353021a10592f2877e46585bd50b96db9b087343d1199c7b6cf3fa53cd274fb6d33de025a904b8aa31a7ac9599ae3689ecdbcec34cd SHA512 f1f6463e033b6d3c16c51dc1e1a3f5569954308b95b59058294b7f9310919bbda797e99e6a07529071bb83f0688867a243997d33795a7136b0af73977004296e
+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.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 ahash-0.7.6.crate 38030 BLAKE2B aca3661477fcd7822d6d10970151e05c28e1615f8cd7ddaac064b15102027e404b19b0f3f16dd76145048594ea1c22ae27dd08cc05c411efbae9ec7a1ef55ce9 SHA512 61354688b6fb096359faefb6f34be958cd2215d56b88c22c737d24183eaad433f811bc9e64f927e4852c87d2799c22fda82b55cfbef2ed6357ff74f0c4ffec68
-DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
-DIST aliasable-0.1.3.crate 6169 BLAKE2B c23840c7f1df86109e004aa1929d7355bd815c69ce8c5a316c9e2810851b7faf91c7480924d67cf83520e94b86dc0cc1b90b0dcc84b446a15ba5cccc1bae95ca SHA512 a60e4280335638b36a72e51514843229fdd0cc89cb670fcf159f882a687c04ecbddcc52a1dcc3cbe8647e5308af3939037934a157facdddcc4834dcd3cb16dc8
-DIST alsa-0.6.0.crate 68171 BLAKE2B b692d929e49765c59ae2fae7bbe8bef4393c393e384c5d84133f018123cfe1044c6fe6c1915423614957fe622553aaf9cb5c38a41d3ff93afa2c4f162a828252 SHA512 a63354da0e643a68e28e32293d48f866c071332b1d17cf8349a79f28e45d6b9566d22f30c3001a862ea26c2b757aa9440b3f52c826a40b29c7881d12416f599b
+DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79
+DIST ahash-0.8.11.crate 43607 BLAKE2B 7dff8e41798ba25df8c4827ff414a182bb25da4825f0119a74916fe775db5445b87be8fc87f7c7f98d3b5053e1d47546f98873de1a942d36e5f308a3fb7dd620 SHA512 47d211b2422de0b381dfe32229faa346406eb7a22dff867dc04c22389609a8671ce3218e662000c49891a06c259d82e0ff4413740f007729d80e097a6c3f0d9d
+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.9.0.crate 72602 BLAKE2B f65921c4d37204f9f8bfbb95cb3cf64952240b516600d9d48d3125c491ba12d476d5717db6cbb1ab58e0d85373a5d4347d5fb64405d5af0639d282de9632b7f9 SHA512 85dba28d451a8fed3b6131dddaedbe8de0fbcbc39dd9c58a9a9d56f132663f8f42f6e647ca26bc25c2558cc4db806894b8062f5f2bea619dc70f2dca32a2cc02
DIST alsa-sys-0.3.1.crate 32748 BLAKE2B 0c4da9c343d622ddd521fe9332acf97c1ee4a202a909c7a0014a507148ab6ff82d5098660dcba847d938b296adde416ae420d454d6982c33a0456f37840d716b SHA512 6523d909c500fee433f934eedfdc200cfc52e1b55be09434665210c16bb9af3593d8b1346ace184b171c7135a7aa65fdac5ca8c68e64f9d20436e1d8fac961fe
-DIST android_system_properties-0.1.2.crate 4646 BLAKE2B c9f4cedce76fd3224fde3a094c9c1822df52e0c1eb110038427574cbb9358eb9484153a0f1419c16e34cb3d10a9d4d259dc9b1e2ebc53f80857005be9e8f6a8e SHA512 b6cb345d79f643fc26a0b0c671df4c58341de3123858637f3d4a2d3646bd65cd2dce929a6ec6ff5cdadb4f459a23e7ab881da16f973e705391e4c805742a6a70
-DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
-DIST anyhow-1.0.61.crate 43202 BLAKE2B cd13e3b187a87c1ada6fea8c3c289627893e782a9bdad0c7a32d2b4acf5182abeff3fd649664b645b14f46a25a59a5b13d0a072296146acb9954af781e972ba9 SHA512 06a7e077efb1e1cb3fd5b210a9fdfa2142141d57188660fc2e301501ba38f49291126cb1dccd0f01facbc1d0302132e41b42e5ebb14e44e152cf10b18d3e5e6d
-DIST anyhow-1.0.64.crate 43549 BLAKE2B 2cbed191296299d888fd7a02366cb3e5498920cfd6a05ebac9c4ba6d0bc248b49e8dd46a70effbf3d69349a2b8d28814cb04edbc52ccd5bf3050de438210ca77 SHA512 4d525152a0977a85719695757e515e1fc714bbaccf3ade1d7bcafa9dec3c44e93c633aade95f663f8c93378a1f2da5d55e5f2a906701a7d8369939538f860531
+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.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.82.crate 45361 BLAKE2B 558bac4de847a432fc80427e7be4e78cae4b01c4da852eae2121416af4d7e6ddeaeffd7de9bb69e55340b9a228436b975fdea88e380391a77c782a3776b835dd SHA512 e0d25a8c0b9c45e1db2072618097aff3908f70bfcbf0963d3c9dd9c97be27a85c4a763c5cb74e1ccd1b0a2059360e0879df4be80e10e58e0a5346b65f4fa1a69
DIST approx-0.5.1.crate 15100 BLAKE2B 8fe84d52263521c0b72a1d1e82ed283828f680b8b56f532df2c14ea86ca09e793686d823c5d58ecfd7a829948543bb375e85223c866cf036e9432be5d6aa7399 SHA512 c6d768496c974b6ff4cf7ad8e65f3fc9faf29a1957da497968ee112c6a0b9d7a0ff9a2579206e864976c0f65ed2190bc9d2b63b31a09ced7b57879e207c46407
-DIST arrayvec-0.5.2.crate 27838 BLAKE2B 51e2eacae0ef148f3f52d21ae00794e540e7ce4c013fb496dd1347ad91ffbbca199381fffbb064225f829216f6c5e915edfa64833f91fabdd13c3f011d86491f SHA512 1896b5f64b4dbdcff8ad234bda4ea8129bcacf87839347304717e94ee9f369cf5f4371755e453ff7d72817edb8f7fdbc726d77cc4f28ed05148dc89c7714b004
-DIST arrayvec-0.7.2.crate 29341 BLAKE2B eae9d3f494033ea2d837a6024cb24bd4574683ed1e76ac6be7f7c6b0d8ee65c0eaf03dbae7fea04cf0921299f69234ad91e1cf41342de86f554f74e287dd3ba1 SHA512 80cc6e55b6032f4882362813de970d3d99e600ada774b28ac6a24c9c8e018fda3b35c5750ac3a09fca6fb9496e2e3fe608b58d21b1b84685ebd170f567a0ecbc
-DIST ash-0.37.0+1.3.209.crate 367508 BLAKE2B c0dc5b37e7cfa7bf0e4b3236c0e2c9ae9db67d3dfc8ff054f56f68f633798cdf6ae5f6a2e5794503a617f0422e7ca8928d8ab57ca80acc9972e2c756053b3402 SHA512 6ec6deb47a6b82a41f3d462b09bfb3d479da9d3da035e47074e8d570995948b3d520a17bc0f8b56272bfbda5655872d4e6630c1a7de01c61cae393976b55c19b
-DIST async-channel-1.6.1.crate 12574 BLAKE2B 5c5c8f1cf1458d952637a439a1534e68bcb4a1cf478cec6b6d224387f56c59dc6cffd2e3621dc24e03e20df3fdbda5b8855fccfbbc26a2aa03656aff3a17d02f SHA512 797b1f5b4c07853f78670e62b67fb787c329ffa2c89475a3767a963d524a69dce082cc7f3a2878d9c990f00ae2d9cd7e0d21743fc4186769c238467bdb20c65e
-DIST atk-sys-0.15.1.crate 22726 BLAKE2B 8ba96f5eb203085b09201f47589b84a874bf9b9bbec4b2947b67f9614c55e3048f91da9fe5fbbc9a2016d6bb24f885ef92aee9182c63ca74bad3faec259a43bc SHA512 b1be38a2d9eda4a43fb493fbbad5505d9af4cdf5033b7d921c04c03cd7b014dad5ddc7664ff872ed381579fa15536c6a11ceeb6c2c0145a08703775109f74923
-DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
-DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
-DIST base64-0.13.0.crate 62070 BLAKE2B b957f65cdb1e28baeca0cefc92fa98be797409b7dabd15e0e88db6cdfb89779b662cba9f2270fbf3b7b66948fdc46c118b8040a78ab72049c48a928fa802bee0 SHA512 991a72999839daa232f508c5b24e7d3225e8a26db8d1d0e747881b115af9e408b92374e163b31e0b0d324c1c2e57e8e38d66861b61eb0a1dba87bb5871940151
-DIST bindgen-0.59.2.crate 206267 BLAKE2B de66347fcf2d538879e49c85d2db80e86a70e27d3c84464b52a840476a31edae0cfa3e1afaba33ef0b7abadcb1e23a2fe1420e3254e0de1f6848b575a9c96620 SHA512 14c49879c7443191b877957a4fd405c7f10a1e8b70016d91bf5fe33861fc5d71982a1c685c190e4f7922cedb6c8aefadac3b0b68cbe5578da791a8da6bfedf44
+DIST arboard-3.3.2.crate 45916 BLAKE2B 4d4b39d9447e7043cc30b6989fdd9955dd6028ec2aea77566ad24d91c31d4bf01306bffefa412d5b494f021dd8a3e51e61036dc64377f86c5ef1ffb1e27ecb4c SHA512 cba3917b302f4f4630275cf64d31d4052a2f7aee1b179bdcef95d5153cf92a9a46f139b76ffdfddab525c1ea36ef8e7fef78ac704222d4fb33fecaeaa8d3af50
+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-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.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.79.crate 29558 BLAKE2B f6c5c4c28b85e1907f37f9f6e556c8f4304e15d6af8f7535fd201919496fa03fb213a0389644e2d1433a8e528f36dc9aec9699bdfd37082404d4026ec03fe666 SHA512 4c417b01776d939675b0c4717edbb8e11810cf08ccccb26697809fe10898b73e03ba3332ebd20a2cea72e8f4f16903737d9923e0048f1ce6eb9c8f04465f2487
+DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c
+DIST autocfg-1.2.0.crate 14808 BLAKE2B 122327d6ffd32e08dc9fbdb4dcf69128b19d56280f9d934311b946741003b40571cdd1f3ef54b2be02c8dc505aea11c962b244d33a92206bf4ee8f6b2b9da432 SHA512 66cbfd13e33b36284cf4c74c8d654f93adcc45893d127d9aaa4c1d183e47336096e72d74e7c17dd481fb7a98931ab6cfec7e4d4165cfb491861d4e3ffe2416fc
+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.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.1.crate 10576 BLAKE2B 3a906092be85cce6af9e2ac48632d8545864c5fd1610e7e28731bd5cc44c9513f2c7eb52fa1be0b4eed65bffe130ddc98c95dfeba2f9de28ada4091396e5695d SHA512 4848d7ec592642913c7bd06cd3a0da49d3bb14291866cd22ead8e9a6b2939a787035d5cded87be3d2d3491283e31ea2cfb105885df4114720da98beb82990ee6
DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
-DIST bitflags_serde_shim-0.2.2.crate 1876 BLAKE2B 09b756c1548d007e48e0f7f849cc5e3d2b53b4b9836aa725ced9075ef14f55961a638d5f63280980394d8f39fc372c556ca24c15c259aa3665493559b5263799 SHA512 ea298ee5708f8321cd6e2def4858ce6e66306f26ed8757722b65a7935add2ef2bb913e0009ee483c7b43c126cc8c5a768e02818b5a5ba1127cf723c6a5895c7e
-DIST bitstream-io-1.5.0.crate 30422 BLAKE2B 11aaa0c5c6cfe04035b60ff5a373e86acc2c31c63e1060f649f176ca7159654fe1d4096f5cc53c87ecdeffccc4b2cf30c81f9780d9c0dd5d33c2735644b7f30d SHA512 53125e3006b74cb0b8952dd4badf80786cd5459fb835aaa998c876335c8587e8dadcb86ebe3efac58683e735d94cf831ed2c3d925f216fd103f2363faccc10eb
-DIST bitvec-0.19.6.crate 147956 BLAKE2B 63f470260a8ed3a23d6e5ca07d7f9b208c3a7e766ad35d1fb4cd926c811b4886ff28bceb2e0e609739ae5f097f9f461f3be5216b5da3435e937a8e9dc277b316 SHA512 b0ff49814a0197e7be7dda7b0781fecf9b02e7ba0301769a89cf236c981736236263bdb5872afc711731d2c84cf8fe696b0dc4e284d24d399675f4ecc6ab7ea4
+DIST bitflags-2.5.0.crate 43821 BLAKE2B 2d2a78b0a19dcb39580e6f73ed6c468b0626043010b34661084944c83561fe49db24bee1ab57fd692d57617be6506d529e095aea27b753a77e26d0b1ebf7ed78 SHA512 75d7a89e53e5e7582591932bc430e6a1db7ed0f914ded6dbcf957125be52975598df7fee14ef816f66544432ef0505f0a081f3794d17138ec429e283fe14fcf9
+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.2.crate 10258 BLAKE2B d3ad2f9f0379e04320e954e1a2226949d83cc1acdda806b98329a5ddcfdbbafdf511907d99ad7daae271a2981ad0c39de218968c22c3487e21a32817d41c23fa SHA512 8f1d99af7c08bf3b54ba7383cf0272eb5a8137f6244bc2d7e6d6761016614514ad7d27c5c51946c5cd7becd84b320f62fc2770e7aa07038d370505c29e032078
-DIST bstr-0.2.17.crate 330350 BLAKE2B 90c3a48d78b73d7e36a3da9fda0beae6e91ce534d17198ea8ceee0b613d03297f9dd8bca30e1ec5da01d1da359a1da72b2c2771b77c82bebab5006cafd665192 SHA512 883eac8210d14f89517b4dd5e25d02c97cf31602ec74498b5e186112ba0f154d47de8d1c41a8f4e5503f3b53c064e2c976b60bbfd63fc28b186bc006e00f20c2
-DIST build_const-0.2.2.crate 4511 BLAKE2B 44316d3b468e73fbeedbaa1ae35705196f787707ea861355d926e7fbc97f759bc7fe0bf88d2e97fb9b981fc7347fe0e849ce2094f50ab53075b4dfe7522089f0 SHA512 47a9949b7196791af2507d6e3a28843da67621e5b56177d3b13477e070487cdd1059207588a55bf1a393df9118e71e3024b439a3c6281b6c12b5bdee66b237a6
-DIST bumpalo-3.10.0.crate 78915 BLAKE2B 94515190837765b47feaf94946c7e4da5b84e6faf7975bd5452bd9388d34e51c84315b80bc15b37c7f4ea8b4aaa0112707cdfc82d0651eeb8b63d2e7bd247660 SHA512 60c686534588524250ea7cb43510dba69d24999769b719127ee07f6015530ac2c5778d9b93477ab075bfc15c13e3ef9adc29ac24059067ac32e109347cd509f8
-DIST bumpalo-3.11.0.crate 80945 BLAKE2B a740a674d0922794cc71b87a8bd686f677f8d0b38d88cc43467b7f8f6d1368ef5cff99bf10867d3c8af9b79b71deca7e5bfe78670b7890b04e468359780d8c76 SHA512 f747b5743bd2825c62c363ec49f1eccc492d7cf8cca8101aa9733f32489685c1777344dc6183f83c772f1067f9648b953d3ae1034976a14295f252f1ee7788fa
-DIST bytemuck-1.12.0.crate 38248 BLAKE2B 9233579e344dead7bfbea2e7ca5f905900768334c0ac53a593de98fa210d87fd799bd61f3171f69127faaebe7e2c01f1fc01698885fd042727a9342ecc21cd83 SHA512 0f1fa19fc49e941795009d864061fc171ad7cb28ebfd9c1056730121ce918afdb7d7bb5921a900ef74dd34f1a1e6c84a769c4e8396fda54af8ae59b73eddfba2
-DIST bytemuck-1.12.1.crate 38293 BLAKE2B f714ba0b4b0d693c5b26a3bcbe9de8c1496851a298bb70770e6284ed68caea61d7b8c14d67ed0e8b6d9146e76f791192fcfe11e897146203d5acf536b9721e67 SHA512 50626367364cf0cb33658f6cbb99675f1191ed3e7ad447bd7d2c24f360bd3524ebe1b2d1fcc7d78d1a0692408da8d95795b54efee91a87c55e8b54711a968790
-DIST bytemuck_derive-1.2.0.crate 13511 BLAKE2B 900f94cd1d65a793811d7a29e90c3b80bb301b31b3371640b9d417ae9fa1937d98904977dcc69a9291fe740e44896ef3f47a89cc9fd340d2f8ab0d943f4fbd6b SHA512 96d1efd4c7826130c57841343f26bf120d980ed9280ee8fa46e029bb500547278b6801d2d1d91f08bbd523b5c2c7a7c7f2ea0ad1a3a916fa5454977680353ec7
-DIST bytemuck_derive-1.2.1.crate 13615 BLAKE2B d9c5be9fd2ddfb48316aa36e55d37deecf19a37981600351557c561576584b56902e73970cecc8a41d1592912a03821dc43770c2fba54f594dd2cac1a163bbfd SHA512 753ce9d718523e26e2464135040f0c6f82c24578d7fffa7352aea57707cd982795024773054392cff668a727d696d2b90f27147065ea80962254a7a76ab24c5a
-DIST byteorder-1.4.3.crate 22512 BLAKE2B d39c546ba7346df315297fc53da4bfc77ecb1f38567ddb788549ee31cae2719a8bc0b7d1f1705abb3cff033aa57af004987d90748f5a31765273b3223a011c0d SHA512 8c8000eb8ecf40351c9ce36a3a8acd7a02f81786d1b11aab85adfeffa0f2267ed74df29b2ca5d1d38128484d1d3cad2b673aa0d0441dcd0620dfd3934bb888fa
-DIST bytes-1.2.0.crate 54688 BLAKE2B 7691bdd170be8b7bf77b52078d547c1d007fbd97c5465672cfb558bcc8934377313de06e7dcc7d6ecd3f9e7c9fcb232c8a80b933591f7c160fa07600872b80ec SHA512 91ecb2ffab68ed7ee91112ab1462a036e627470e75077d00ea163e9f91a920404f502fb55c4ba7d7941f799a6077990170a15f69a4df3cd8cb73dfb677eab7fa
-DIST cache-padded-1.2.0.crate 9125 BLAKE2B d50b506aca9cfad3117be593c33bba4a5240034a838610925f9eac969155f22e0064c91f8d3588333880d1f5b6b936df87c0728530f80cd1062c73d570bfd1e4 SHA512 5b67d06908981d0e1ba01912a973cc5c90ce6612f227b306d12b13500594f5d2376d437a046e10b9cf959b609cb67fa6e24193fc651cb2d84e1f77338c6823fc
-DIST cairo-sys-rs-0.15.1.crate 11280 BLAKE2B 382b488bccd8c01a0020f1b43462161092ad9bf1b280cab52f04cf2e8b4e52441f55f24fafc5f4ade8d8cda186eb0e5166c6a29f329f5a229cd0dcf06a4b827f SHA512 85e3eb317d410b96d8879d9f51e74a98918476e9c011dd4e2d482a602341d93e5929422e3ea9b9235360d9af5d991600de512b23fe01f1e1012610bebf513e88
-DIST calloop-0.9.3.crate 55389 BLAKE2B 60c47c5b037ca0dbfbdb737db0bf30532bde7e11ba64ca44751bb3884536c82a6d39977a177af39ba8d44ed9562524654f9a12055ad5dd180785b1273b767a8c SHA512 77ee5f508911c2c42838e29765d7e050832accb5397d4d7738f7a58a0b62c65e2d88f7c5ca9cc330e893356eb96b0ea03f67a734459e6bc11bdb89e1466c3857
-DIST castaway-0.1.2.crate 7124 BLAKE2B 43b5cc2106028b9d69a79235e9b1431fb76de1c2c881a26c158be66f79dadbe67b03c4718a439bd0b48d9de70424872c890956bd6774dd7af88375b0807137be SHA512 548c192c8e746107e4aee4b1e392425a024ea6dac53468cfd399c7dfba01e26a1c2e4a6bb824846d57cd940b6b72e26b66525ddbb14a6e3fcf5fea8659ba88a5
-DIST cc-1.0.73.crate 57880 BLAKE2B be8d7a25a54afdd759844e76aec61526fc2bd5ca09480e6cdd3bdcf27e5f9d3a88dc16cbcbf54cd021470a7cc521e1ad468116c112bbd30752bac0d5486939ac SHA512 980f012b90c6410144f6de4995048337e09214f19603076db6d4edb88e9ef9ac9e8c6e25569f66c2be3a47e99298f5886dafc102e1a9122316179aa26bc1c985
+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.1.crate 380305 BLAKE2B 52b45bd48874d052636c6b451cc36d8b012808ea5193e0188e5edd09f81d21b8306926cfebb405ad0650ec9aa710f609bacaa773bf854b21f4803dc38bb2eca7 SHA512 67e9f76719310de60f46adf3c39768b4dc078d4c32dc6bdcec1a94cd9f630c5238e427ed84cd6ec25a44f54e84adeb795a0e92060a5372d9fb9ad9f0914e3172
+DIST bumpalo-3.15.4.crate 85028 BLAKE2B 9ec98f430fef4e9b59e61d413b3703430f91bc818f3294aea7416cf8a35e0606357bb5b4d1edebe590f07fb614f832da16016c8530ff39ca853aff1d1369cc60 SHA512 59ca9f8e6b74bdd95b9b4ad1bff3bf4be46dacedeb1eea6196a65dfb0ca7b60e86ab6c25d0f91dae3caecd17ab73c48f953be0bc24bdc0ceaaf4c1726b9ffdc8
+DIST bytemuck-1.15.0.crate 47672 BLAKE2B 49f2d92cfd5abfbe3fd94e7e4c9a3d4ac22c67b58e73947f461cf8e5022738b7d38c790de2a1717b731d658f1646066bee2f936a1575e2995e6de39d20f918b2 SHA512 5b6886f252945449c4546c181bbb6c95597e498aba6b1faf81c5a4af69bcb9e3e024d7d6e849d347682e8ca72ecaa9a70d13fb06c174e17846f0c85bb4810433
+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.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 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.8.crate 11813 BLAKE2B b074b49e08b2b93e93e08276f2a79546fe1f9ba0a52b3b4ef0ecdd28fa3fe5e842c0291fed158a1a12b90804e0172d5419b7603fd0d5f87f062f44dcaf3428f6 SHA512 187acf1b8cc81078ede3353997bec9010df32aba82f56f9479d4c8eaa13436590a16f3ab6ea11ed2b31d1d1d2299d824d9ad10f04bf5281c92372cc8334b0dd2
+DIST cargo_metadata-0.18.1.crate 24535 BLAKE2B 9d0018e28a3941e269dbd30291054a882a960905a43d4818c874250356a6c203bf08ed77a8041f08607390b2a382864701c519d71a0b88818ee59c6322c74e86 SHA512 43f87d2b84597ec9a27e9fccf06ec5f2630a0147a9c85779622c25493bd61268c266643f8206a17d76a16329af85f0cc563a9af7e17ca77024c0eaf788555f7d
+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.10.3.crate 39502 BLAKE2B 8945634ccd463a54991a8f8f7249a0ebce6e0a915a75d7dbee814b8914b1f323858a991cb346eac73707ad717a786bb9321427f03202d025722c8120aa782608 SHA512 9397c13b4f5bed2e287a4d18b0d8775ea328f97465059911746f0d47976fef3648b6729ebf4e07edad4a0b3592bdb41f437c942fb340563d747abc4e8895c9a5
-DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339
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.20.crate 185054 BLAKE2B fd6f55faf9c6e0cda7a2843107150ec42e966e3812b2daa1044548d0550ac5a8b3153e8ee4877e7d3607c27c64f5498bc24cdd304d4433ba19c8becabc4e646c SHA512 ac98ab1091b4acbbfd8acc4464e280e45eaff204453f9294f62e05167d403bd9062a79bd5c41c44da284b1f8606177c9b4ce0d8679709b404ddb4ba12ac3e0dc
-DIST clang-sys-1.3.3.crate 37943 BLAKE2B 92ecba81573fc27de689752e7009514d0e51c4d09407d0345eee7a94f4713cfd01304b98370aa89d56a3b028912370f4967f8fda28ae9e3620fbb4af991da117 SHA512 fd922627ff66f9265aae30bf585bccab1efdea7f66b9fb95f45af0f316727bff7b791f36ef42010df5d8b3b474f36457fec03fdbb25c50cc8922c3b157387dc9
-DIST clap-3.2.17.crate 213699 BLAKE2B d18204da5583f67b29646ee40f2784eb51e216eb750e24dbb4cf52421668a42e655443cf3e02cb18030422718aca73c6c0d577ca05a2c8ff1693bf5dfe85affc SHA512 e1b19b1c5f862883e2e1cdab14d7ed74c2d0a6b91aafa5b227426a004ef91a8b6c4749e023554ef64c0636f02cff1530d321f934b708168ecf5e7dbad68d08c5
-DIST clap-3.2.20.crate 214114 BLAKE2B b8bf14d5b60ac0a1156718e2993df45bd867519a195414de591ae92e009930121c674bd53ce8e5cad53659a1b9b72810a7cbbabc92d3552b2131cf3836083a4f SHA512 85a1aa5f777a172aca71459225d72282fc7f21122ad7ade496a4734ffdd140476fd73d67da900fe323dd6a72d09401536e318b9654674a9f4f61dab822fe54a9
-DIST clap_derive-3.2.17.crate 28217 BLAKE2B dd98874a39aeda5bef134043547295e370478511539ada89830077f3457a853305f48c75a9eaec24e81f5bbc4e5f9f9881beb355508f961673cb1cfced7cfb4b SHA512 c51682d2b5837502211388efb3e45cad67400314d43e0492b4d52f72acae5ed0b86bce870aafef52e97c0c84c6174318d759cb21ab32caecdeac6c1dd0c2a356
-DIST clap_derive-3.2.18.crate 28208 BLAKE2B 05a23083a8e792858819d7eebf057257b1d49b0e8246d3f24c6f812456cbabfc75d9271c295a0d44539bd531ea6808ca7490e787c1fcae63bce045422d33d280 SHA512 d5349b3d5711bd4900173aa5210d7c4aebb0bf70128e11f26b362f5acb43687f6ce5ef73e4d614ce9c1d649d34b68ff15ab8b65fdf1898fd295ee4b4a7523497
-DIST clap_lex-0.2.4.crate 9652 BLAKE2B 5120b508dedf52507068c0c369a45ddfbe0369e5c05b65bc5a78c422b2a4bf488f9ef1e0bed4e335450f2c08b80148eb5f7efed678039b5a94b5bd666385939f SHA512 6c05e5fd850befd45be9005af7252385f2304aa28a107413bbe329d97aea835f7acfd0bd169c99f69f466ab93d6e1c35d73a4e48343457a06fe2d6be5bedde0f
-DIST clipboard-0.5.0.crate 10009 BLAKE2B 17aaafeb92be0dfb4ccfdb80a3d909e57491cc0adceedf378196f7bbd006d245adfdd9b2d2e075c2c041aa57eb1a0e6e306032966c30e63f94d86b0f9f7a11ce SHA512 a02994e68bb4ecdb1ba3db05e095474e67df4d73f69c92ab096913f4bd0f47ec6b62c8f0210fd67bb466e293c765888c315770e447f5c6e9b2e5c69f71d3e48a
-DIST clipboard-win-2.2.0.crate 11079 BLAKE2B 5713e17a93eac4a1d299d42a6abe5db1eadbc90bf5e7c99e84b6b5febfc817bbc1c478533af8cbec7a8e58ebbc1a8f3d83bf351d105b55017cebab8048009390 SHA512 f869775bb2e6d84096034c26c888c9f671272232af74c02bda2a6c8f0d600652af581c0e94d875d8746b986314f61168bf7539042a65cb2ccbbf858141fa42e0
-DIST cocoa-0.24.0.crate 39235 BLAKE2B 01078c3d96e88e0cac773f238d3d3144324594fd75cda87d18bc98d73f0a1acab4cd795471f4789d38b017e6cc90c0713bb33b0fdbdff36abcdc1cbae767da86 SHA512 accae0f676caa23c8d3fbc2e49365118a366c50a698ee9dce4ef194f1d391b3633cb789d65d5c2d1e43afdea5d7a82161f7e7042a9dab32747ecac29d1b1b20c
-DIST cocoa-foundation-0.1.0.crate 10645 BLAKE2B 8ea7db02939a5cf1785b2770743d609e28da415fdf49b881b620e0ae289976a5a737056976afa7e616fc49c15ce535304d70ce91e79bd61c39ed024078012e61 SHA512 cf0e8188bd4d0310716aad9f1e2cc77e4098e85306bd2098bdcfd9720782bc558f503033074e0f076748074a9067a4dfea263ee5356074207739d81c4a052ba6
+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.4.crate 55401 BLAKE2B e9ece2eee6be16c366888f6140080c43a182aa758a971ab2f60fa5c8f5e00460c3e6ae6bface1f36445306265ce13d8145ac24cef833b68b2b2c32c13a7a4a00 SHA512 c1e88968a86598a6541cd8f8144909872fe71fc707dc5327293a71425f6ff9d4957491f93c36326a9f615c1cce1a453cc85740ff18e1ca571e91bf8f7a6ad7c0
+DIST clap_builder-4.5.2.crate 163566 BLAKE2B 5eb81df416f3da0bb7e53c59ef4e914f03e2bb0563bb3707fbf70215f249aa523e3f5ef2205d0a8e25c23db6c6d0d344181c1c771566453505c769c55b355374 SHA512 af7eb8326a980cf461442a4dd6d224e61ae31a2fe4a45b34210a2c1f747eed49e00b6254699e82f986f441667f290a5de747b5e9d9d0360ed049504343385864
+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.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 colored-2.0.0.crate 21619 BLAKE2B 5abcc05a95cd74a106c4e4f3c9b1722a7a9493c7d16c2d73f2a116d1d0d20f93d00c414a19871930e6286aa60cdcb0f4f4411ae059e7e76b7632cfca3a55ebe9 SHA512 c9ee830c1e8a32372ab8c7ce569701deaa6533fa369fc1b4c04bed57b1e686ed775fc76c3d9815ad21ee69cfc7c30d645abcbacad39081c7e37ff83ebb6d9e8a
-DIST combine-4.6.4.crate 132144 BLAKE2B 9d6b513adc63b49888dc33444e3db2c0c4b950a6c4e30ff17e0bbf4b3bb39fbd679cd31ce7e584a1bedca69868606a13c0e3bd0a136a1fca1dbcdb516452d34e SHA512 2550aba009b8ab66230e7b21fd1cb5085c92bc280e31f35c9b02dc78fa138ef9b9ece0d7801473b88d11866b013c6fa3bb6e9611bdc1a7b85144e50a49829774
-DIST concurrent-queue-1.2.2.crate 15859 BLAKE2B 97eb49d7f6270999f24d37e7a3967c0abcbf584637388c4507f89fd5284120759c9845219c463cf066f6568191b874fefddd7edee9292ed02183123161074514 SHA512 84e348dc3d40c73c11c54ecd0f1e6cf7fd6c7033f4723a428ed1c09bc9548cf317a0d8182144b689cb9781190b9c8ce4374717012eccee54a11ed0869dee10fc
-DIST console-0.15.0.crate 23507 BLAKE2B 49694683baddb53e0f35584403aa93616164c2d3b94b39e0e35ebc4f915c37c8e794619d57b44ac0ea460ddbf7ec43323adecf657cc6f2869f313b3cdbf3a46a SHA512 70bd6abfafa533903f273ec3b34da6783856bd1abedaf139fddafac0dbb03fa9154f8e1e1bef01fd8de3c53100bbaa93313518c42f8ce51217c23ef34d3f9d62
+DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551
+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 console_log-0.2.0.crate 29003 BLAKE2B 69a29e215cd97b9c754d7ce6961aee44eda66ee8fbd30e21f8d0f71b1ca2a4efdf9a77b770d5a98627a74f4cf83d1ee2dd68ebb67798e346755b3b4d1a3ff8e5 SHA512 55cd628b5be60ca33d3ab3ad5d436b93ad3bfda456feee93bcc24935265ed05236f5811a73dc469492adc1d7429c7348bfe3ebc9e34ae9d1353662c369712f17
-DIST convert_case-0.5.0.crate 17902 BLAKE2B 217784fc6dfcff42c43b08da8b022d9a22aff86220942e809b7f2b0c78987ed084c82ae8aae1812e56fb8743fac31d69a016723d2ca134f60ce63dbb13fe1872 SHA512 b62bc754531ade315f6936ab89578defb97802eb67d2a0827b460510166e7ab3abacbb563c4e9d1d52721c7a0e9bc3e12e9535caf1c73f8353eb80b3647155cf
+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-factory-0.3.2.crate 14325 BLAKE2B 34a45c00e033b7d684b1bfd61a60d5969d3f5cf72532239d09f4f9f803b8cdff4858d1c827bdccc991b562c3ecad3b308995430775080c06fd5ad03538e6e9de SHA512 8c3eb5ac052368a426158ec23c4d2cd3d74f14b426782cab4b89de6070611cbdaf4360a668dc3c76d9168f738cd10389eb56094f72014c7e5c249ee1616aebc7
-DIST copyless-0.1.5.crate 8264 BLAKE2B 7f4269f6f279bd7215fcafc74d7d63f35d33b70fb914f32dee45c1bc458c78d6ff3b36c2b46b225398d89378104f9a4705156a49a81c76bb25ac9e56ec60982d SHA512 c18e936bf3d5ce11951c4a02b48a68856c8213dd9be6ff00c3eba5b1c9d2156bb4095a44c4e40e8099231c1e8888e73cfde3c43e30113550575b4683b399885e
-DIST core-foundation-0.7.0.crate 25384 BLAKE2B fde852b7673cc972da8d2f8663c2c8372fda36fd577d19c9536f9df929f649ccf94150e1e23a57013bee3cd8cbb6fb894c4fb3a5744171bc6be607cb27e2757e SHA512 919041f431e21783193c0661b82cbd15946a56e24e5100a6a9dc02476ddc714595fb0416ae182981ebf6a8b27181e3178135c27388b41ec848423d739a265da6
-DIST core-foundation-0.9.3.crate 27059 BLAKE2B d94fec51b1b1055c285609f4bba45c5169a8cc775e251eac7fbf0da7ef894e1be9ca9f4236b82b67be0610bdf811366e0c6fd3cdb671a1e83c49717e2c5b2d03 SHA512 de07967c4f5e2d2e730b6f21984c228dad2cb2f55187f13074a2200f4ce9f906763ee818267a9c67ea560229db7363473b230670a6dbd224fc335f32ba03d072
-DIST core-foundation-sys-0.7.0.crate 17033 BLAKE2B 26d190931c7462ed8c13de82e86d4417e0d130f97295c8435ec666be08c7bdc37894ef25647043970fa40eae1c63503d2ad7660c2ac17ef35d7d35698652e18b SHA512 b77566aed2b572bdbce6f71ca9dcc942ef96b628a7ed9680c4d3e3ada4a9dce90c1b439a8c7c7f22d68e51becf1d22b3262e227cafdf8cfe5f42db0ffb9dadc7
-DIST core-foundation-sys-0.8.3.crate 17519 BLAKE2B 4ac3d9ab16753dd995abe82f158d460d0d22184ab55d260e73b20305cffe4e03427dabfe0c8be968b6c3ecd348be2e17154ded7c9bbd5a95334ff266fe83bbf7 SHA512 a3ba3184cef65dafe8318c4db7e59eb2749dcde7b2370ad20272b0735ded0032daf2de3fd0cf55eb48448a335f5b81e8e745f2a647f9a43bb85946ce714bfd82
-DIST core-graphics-0.19.2.crate 28995 BLAKE2B 3efd61b69ff4a7dd6bfffe7836840d33f5101d169c20b2a73a529184a362c517032614956f37a4d170ff0073582996c5249eb8b24605d122ed5cc2e55acdfe9a SHA512 c9cace380466c26f2bb87aceaf9852ca0f29c4bdc0de11e132181939c5db0614b2cf7e882a2ef0603ead6145e05565f22d59cb7f69a501f350f6f9ce1aa9cf9b
-DIST core-graphics-0.22.3.crate 29514 BLAKE2B 6e89281ea95f323c60d1948aa2ebc808bd886e4f5f6bea8dc6c79bf8e290480cde7e54bdd4368f2976a5169948538a8b65233eadd619e279eb9c2c866426e9cc SHA512 94f0c5d55aeebfe6e6e8b335f6789e4f980dcfc2206c44b888d984747fea0f67e43df26acf8cc0d418cafa81ad1435ab584af05657c613b656bab4ede80b4557
-DIST core-graphics-types-0.1.1.crate 2530 BLAKE2B 2340e9e0147a904e5b439b3e9db53937347420d901f17677e952779680f5294955f4578273989237adbf374b13dc24d6f6efa293575ac1a449bae2bb6ce37a7d SHA512 bacfd01ad05b21851c0cf84cdf9516f63c542d51c2ee8fe2692c557a474ac0859c4ff6f0c35df68956c0389c5974ce09647a744632fcdb2faa13fc7d13cdb52a
-DIST core-video-sys-0.1.4.crate 10568 BLAKE2B aef062d1b1047d50d02e932413c7d24cf316d5b1d6947895ec2face253d26adc75811c4fb60535a35c2a0c87af6d3bb7b9e62dfe5421ee218356126a2a6c3bb7 SHA512 a6d3b0f78aebe7b64276f3accffb5d5b2ff23a19b9cb3dcf69a47b310098de8c85255c579cff8a7a711304c1f19b9fb1d8259c5eb511b617faac0da53e417bf2
-DIST coreaudio-rs-0.10.0.crate 34487 BLAKE2B 30c2273082266de0e4fe7f7f6ea56673d954efed518e522a4ea73ffec12781cdfc92df3b98e836f407ead18cae441c37f2a32d30f585ef066acee3314965eb84 SHA512 efcf47cb4337b8b17c12419be9b024687da129b24320c7da7c4875279543a622855ea100797818065710017a2f195db817f3ba1cdd4826ed70315a50244abc1e
-DIST coreaudio-sys-0.2.10.crate 5434 BLAKE2B e572ef0723e86cc21d0a8ead3131537bd4a9ae0bbb2873885ed77f81ebcc3f307229b014cb6b73a3dd2a4b36928c86ca29ca1fc933e8e6d91a2a6f2caa2ac40f SHA512 3e1e61e9376a5cd9d99ef575fc0ed1c55314ec7ef8188189132751b9d9e093fc01f1cdf497a68519350a26466a9d9c08565d8a326a546e87053d15ff7c1e6d35
-DIST cpal-0.13.5.crate 93790 BLAKE2B 9e1b6f6d385ac48a7534c716a332c6c15b77556253fbfe27153f1e68bf702f84b6450a915ba79d229443beec2c4419bf7ebe7f856a0c95278a3447236500c1b9 SHA512 ad1ee6ed7473474df716300eb6b1e5db8a4a0f9844a5bebb6704e1acaf102c4dcd495d559ef6be99db652ccc0ea2a9c2d2a266e865389ce08aa6f60ba06e1c8d
-DIST cpal-0.14.0.crate 95570 BLAKE2B 698104ff797e8428e467293e31061564720776f1669092df2b299f843cf22537f4786115eb5b8f3ea332cd2a24726092df44b336bc3a9d3ce9fe602f35126c8c SHA512 c0bf746555ebca000b59c5f758e413f554f22a2e6595729f51d65edbdb9bf385b213cdf03ae7b673563f7a40de9b690321e45c1b7086f2e24a28e6774cbe9d40
-DIST cpufeatures-0.2.2.crate 10655 BLAKE2B 7e068032f818af691ce1bbeacc1e79af17284cf6d1b9896fd146b2b87ebab7b12e7a9ec93b28f77106856c1d11a565e4a64f8dc60c30b401c08836097f587530 SHA512 a771a86e2fa26033b27d22fe250968cd80cc64031838d1c111ad5c69951d5f29de0cad375965c7c2cbceda2a005dedaf6df15c699041c9d0cf65a1c2033f69c5
-DIST crc-1.8.1.crate 9114 BLAKE2B cd96400652888e700c326a2842005c8bee699ccf3c61b87320c01196b455a55da511749241af75e903a76847beb8172598dc8f770779aefe945db7934976afbb SHA512 db0b3d0ca197cb2a2049720b753061f1532d1ba2c86c7befce36a18cb4e8008b061e39e26960b4d9dcf1e7ea55348f55c441da5d17cd0a424402a8489d52ed1a
-DIST crc32fast-1.3.2.crate 38661 BLAKE2B ce3762b03d24d5367d89738991c060f4b3af7840e0a7ac7fc17d01ed438caf964bbaefad0fc4d0c438dafa5a578429ddd353c71197f8b54b1ec441395f2f7ee0 SHA512 a683943e252afdb1b9d626a07533ed11cf7a63af603c19640056c5d2b9c884ad9aff33ac54c0853ffca2f6cf94b0730eae6c05abf3e53e55e709d180c8152357
-DIST crossbeam-channel-0.5.6.crate 90292 BLAKE2B 7da87ab15c384754d2493dd1a30e83550cd4b2b749b7f0c24de131f054e3a2e521e1bb4ba10094378c8f4c7bdf19218e35b10562c50b4ad1d2871bf6f821e488 SHA512 de6a42ffede95750a13e3b9af6ab26cbc498125860cd8e4d227c7361bd831e558254a48bdef5cf901585a915003071b0efa321f2011f282218c364780f62f44a
-DIST crossbeam-deque-0.8.2.crate 21237 BLAKE2B f00948fe90806fcbf1585c0404250dc84bca2cf27733bf7f2a0aa957e618f916162f41124333329a5b1e84909cbae3d93fb3b4461ab23e9dd97672c7d520d5b7 SHA512 a50a878d843d6eb1b5b92321ce6bfb87a23d3c16e820b1ff55472f0bd3d29b41d09ea95e1b9ccb2790f6687c043dd9ada1cd5124705e24292ccbd8fae1f243b3
-DIST crossbeam-epoch-0.9.10.crate 46918 BLAKE2B 86f33064dde615408435cd4cd8ffc878ccd7aca997440eb85705aaf71209288f2d7cd4a8a2ee8261d30d5d4e10addad1852ecce32826850fbca883430f4f0e26 SHA512 c8e103daf27a06798e4cc89c6263c08117ba7cef322421b7f91e6a96137c2fa2371ce9cf31e8d1a752be85f4feea90d4da21f1921a0a0c618c1f66ef67a5bf03
-DIST crossbeam-utils-0.8.11.crate 40887 BLAKE2B 6cf3c4e28243515f06193ef746b18129f62832abde8153503571052f4965b38ce510b09d18e51e0f563bfc14818af13463d1e2d63716b98a91b55461f5186b25 SHA512 eeb19480ca1860953507606f6649756974f65a05883c695fa371ff6d80a9fd0b94872aad5168955b4771b38f50314364236cb39363bcafe9750b687ff92a5ed5
+DIST cookie-0.17.0.crate 36545 BLAKE2B 55ca885f4ec63da16c795ac1ab223b41af425506f0597e4c1fe743443cdb95a8644bc035e0c8af70125afbf080d81a3610548da4572c7f67c1b143db1091dca7 SHA512 a0f8e6458b97dcfb70e2046ed121cec35a291666880d39a2acde32781ce55ae24218c5db9cd804f93523392de27071281c89224f9f332d4c9eabc061d7a11e47
+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.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.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 crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
-DIST csv-1.1.6.crate 886999 BLAKE2B b178d0419af671df570f37a4d054391bc883085b0cd3949de5e967aa4ca323fdadfd8c5d91eef1e8882ec112a1111cf255756eace3c7421e455ea2b6e01cb600 SHA512 81dd826f0ee85e7d335d844e9f9b4d2b66f7076c517d8050ee2e35721bfa4ecb8a906dcd9671b1c5381a968dcce0949202f1afe8eea535b6d215363d4f5be6fc
-DIST csv-core-0.1.10.crate 25668 BLAKE2B 8e9a56c26e75f4c4c9e90a21cc30c60cc3fff17515ac93bc858e8ec45e130df2ecabafa7c513b2d2815269fbbd98c418269dfb1bf1425d2fd32fe46823cee6c8 SHA512 2a269d050fbe5d9e0f5dcda2de1e84bfeb69538dde86040ad1ec7307a214eed813a1482acb5029a51f18126d384d5238355e021964e47811db971a0821bcc328
-DIST ctor-0.1.22.crate 9311 BLAKE2B a13fb97cf767fae19486ca8b970f1712bfcf4ec9edda40c01add4bdb7a81e9136acb1208c79763cd612160bf39b342460fecc334c6e421e7f7ff610c4bc44e2f SHA512 cd7c60dae8fb19c3b10e0bf1ffbcedac90cbbd147d564335e4da2d5483f64ea3dc10ad17d7573b00958db0a72cce45f8b7bc10c32864dd943fe64df8d22aaaab
-DIST cty-0.2.2.crate 7230 BLAKE2B f8fc087e6a990a354a1de9a8d0c078757a512e13fb7ca0e337949a22c3af158111b0c1edb50857c0e97db5417943165e695b4f41c328948cb344614f922f214b SHA512 1b6fb2cac48ab796ddae5c51dd27c41ff584b2503ee15f1fdecf29ca92086826efca33d2467b5721dc1dc13b5103a76c0a320f416747230bb48d1b2c4ac784b8
-DIST curl-0.4.44.crate 91415 BLAKE2B 0193d51d0ebca5a9ac87a3a2537d573a15d8f0c47e0dba5ad3c0401dfe4a96e63c43a1be054433eb782f90ec61dbc60a12ba035e4fdb033eefe53860d41c3494 SHA512 499c3496cb019856773da10c5dcdf539c3fb7542a5e5dde4923d36e0f9274515b43a68bd31fc18a9adbfa9061d752fa698dfc2fbb6a6b1c1347001b3d112b3e5
-DIST curl-sys-0.4.56+curl-7.83.1.crate 2954260 BLAKE2B 866e72ac131bdc9fcdcd294d065dcf295f6748d3823498d731ab47c8d2c4fd7d67bf76f65ba8091105da27ae03fbc08099b53b0d59bfd23d21be51639c6eb675 SHA512 631de8e5740d076599d33723656129c3790e170ac108c91f2b9d7e4a954ece205685e0339fbb87ae3416156d3089d6fff8d514096f213b99fa43d14750b69c08
-DIST d3d12-0.5.0.crate 17059 BLAKE2B 7b3d2ac8a00fa8e68463aaee1a6307284b518fedaf98f1d85d579c1b9d0c947f1d6d72bcd14312d22c96d4a44e179b7202290fc56219669845e886e7e8804703 SHA512 b7d7cc195ebd6169a86270ebc729fd68bab23ad7220bf172e7a08e4b5e82b7ba5388c0c233d066687af8cfb00193c3d25da977f3ff796b1cf4368be68062cab3
-DIST darling-0.13.4.crate 20895 BLAKE2B 76675c20937450c47c1bda80170140930fc626d27d58b7dad3db33dce2e69457e2262189853141bdabeabf257d05d954f7dc1dbfa344276e05ee6dedfc8a2dab SHA512 7392896b97b80ad24d76a985f4b950668ba351498f48ef0722c783c28d43c4a4828f5f6eba7e754ca554b6662fc419e73bcb65d4b20037285a16e345fec9ef75
-DIST darling_core-0.13.4.crate 52937 BLAKE2B e038aea27b5b56f29cec8874132881ef589c869ffc974427924605b92436ef06f21c7ea748e97d9b719aa7156b3024e788968ac0cc6144d58eeace658b62a08f SHA512 96d431ebfb9d13aaff2c50f7ad7d5ac5e95813fac851e3e1d7739d1fd5b366fda32172829af88cabadb475f83b4500199167ede54bc802ca1e52137cf6c16c0f
-DIST darling_macro-0.13.4.crate 1910 BLAKE2B 432adc44108cce6a13adc9ec45ff9b7555eb4c0ac7f1000fdc8f8e9d1bc0ecfeb65b78f81438b097946aed8e37835f82028c1b16c1d466a124998139ae854df1 SHA512 908ea6459110da16e4ec6ac843659664ed4fa3fb2ea9b92274a738ff5994cf81fbb48403db609b9a70f39c3e288da4358ce369c66821122e3a6a0940473da94c
-DIST dasp-f05a703d247bb504d7e812b51e95f3765d9c5e94.tar.gz 621307 BLAKE2B 9f82ca484fb6c6f79e4c9ba3e9e3fef44410e95b138202d65cf0dbedfbdb21b93080c0d816626d624b4cb7f4f0431fdb350fc843cd3a6706672989f660225759 SHA512 da0bbfa6e9561182ca5e896d7d6266c2205ce7757215f0dd0a5044fad7f8d4589d68ffb7b4e8f37800a966bcab21750d9db27baeb5607dfd467375803f7f7b43
-DIST deflate-1.0.0.crate 62722 BLAKE2B e8feda0890c90164ad3df45b49f79d17323626e469e50bf6025370af499c609ea14b06c2f489780f6d450d9094b09eb2ddbd7f80ddd06abc0abbdaf1d1efb482 SHA512 06ffe2829956c59b5bb80c29a58742ddcf33884410d8edfd126dbd7fd39c1dac704b2561dc99ed63ca1ea4665cf68d6bce96de99dbf105a7b1616ac858704862
-DIST derive-try-from-primitive-1.0.0.crate 3267 BLAKE2B 89982f76ca79b1697f9538a4bc84b71b8e2fecfbdfcc9af2c1dc7566cb676dafe9dbd9c59ffd414ded35adf0ac23e1303634ce340a6353b3c04df238253de8ed SHA512 d7a8bf4d1e3e4117e831b70610e1906c78a07c6f3cd029b5a1e38b43c53aa0bb6ce31bc827ef154a9c0efa4f61aab15e627986212437d31b06b2ed7e35e0832d
+DIST csv-1.3.0.crate 888212 BLAKE2B df05956223c50cde32f4ae6df922fbdedd8b50008a8898dd49bcc8bb7430d25727a03430c32ec23cc44ced043709de1f80f4d750e335bd12b22d0b06050881c6 SHA512 1b9e870c433e4d37e61cd604d2712c59ccd392cab55b8c88596a7094245072dcae02ecc80d3ee7cdaaa083ec2c2865b71712330c55e93715917a86106a2230ed
+DIST csv-core-0.1.11.crate 25852 BLAKE2B 9f56cea786b5b35f6fd5c4f41fc3cc06d777f6d643d939ca7d57b1f1a24d4ee16ae3a4de629e484b0e4cf87009abf4911dc4d1bc199968ef5c7f4100cd238d1a SHA512 0445c8a4d4d0f90f03e5d6507c26454aaeac0b355fb39d19e1676a7cb27b4372db3541367ce838d38151862b7bfbf19750cb550e24e74ab5e07ae9bb4edeedee
+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.8.crate 31234 BLAKE2B 13e8ec124715f743486d740241273fa5ff046b5ede86c39ad5413b3e767166dd90e7ba7344a69c1e14991f0572f7ffa24b081ef54236712c5286f211fcfbafd2 SHA512 2b4cf37cf7cce9af8e93f576dcf36b539816e1ee7b8881b5b8480c45e038c97ca2d3a80c54e243d7c6e1ae23782947efaf0d67a37c0d4dc66301c8a86ce0fcc3
+DIST darling_core-0.20.8.crate 64442 BLAKE2B bf1844eba6bac260104e2ef310721d3aae7ff222d99b01b9bb66e3c71ab700095af7dd5b3a77043d6751d94af131f02f23bd321fe9d4a7066f93d1fb7c0c605b SHA512 6f2d047758541355b81e43273cd1eb8865624096c951643e6ce777d716e17256528c47fe012f33eeb1f63883ca08f532b1ca52f43394dff82fd1bbf323763751
+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 diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
-DIST digest-0.10.3.crate 18990 BLAKE2B 871a9939e5a4352781dfcb1bef82aba66ddc32e77a2db5e43488302ac3836adfc87869921e95a2af63e46699419e20d526453ee31f3d7b2171198dc23922dec2 SHA512 bfc9b24e4a6e3df91669a36f8ddcdcfb643e22b3102a200d56bbe88d94e8f1f1e52f5ac29f06253913fbd977b149a3e775c95175b93950340946152f6525803e
-DIST dirs-4.0.0.crate 12503 BLAKE2B 02c0b9b68d09ca713e365410c72d761de5adb87a0fc5176c4f980050198cc05078fa67b43a8af1b16e80e7edf41a428dbe55807463bab59f3fade09b53d7399e SHA512 be582e5045f1916fb6b918c8e8c5907b4b663534025e4227ea4828e2aa9fe7fbcb3c48f1f0d08d163ba684aa4404076ac210e7f14766a09b9ed89a2825121b3b
-DIST dirs-sys-0.3.7.crate 10597 BLAKE2B bbeadbfe15d9b92e4057cb600f1957e066e295e0208e1645ee49fa76c55c45e273ae5b87337eeb398dd3ef3adf0a5584087b8fc0fb780aa23c6d9392029d6581 SHA512 e630964e4c452950a475c10a490b49b2979dd7dfda48172b905cc789153ae4a0ba2d7d91f690705cbfff23737c4b4a339eb0c49e922efd7d68a92fe6368a929f
+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 dlib-0.5.0.crate 5788 BLAKE2B 0c1bafa05ace4a51fa7f5d8db9cc46773c1da9948e6a3f7e531c60953e554798d562546b50ddbfdbc266da8cbb988c59d57a95e7c3ad6e6d84f9b4888180f264 SHA512 1f828bc845570d8d6a6fb6c4f9bacd7d4f50bf800a68fbce2e0b8f8bf1eeee7e7260fc95fc49a14a3f7e2a4264368c80d8328d408b2a6544f4f796c48a4fbf76
-DIST downcast-rs-1.2.0.crate 11670 BLAKE2B 7d44d708c1ac068a02ea5d72dd3caa8a7f6d18b7ee653d520600acc9c52365824f5b8d3c68143d1d13aa438a18b16ff9975e15131cac7ec48b2d995184673d37 SHA512 b80b72f30b42c5e6b2bd33287f2dd22be5673b2fa5c1a8c75c5de224fc7eca46a55f2fce63c02d225dfbc94ac3462b4b2fec53d63331c70da6307ebcdcc6cb14
-DIST either-1.7.0.crate 15492 BLAKE2B 3ed1c5c27e7bd9453f83b82d3f57a4a73f965b1943a7a17d3de45ee35f62db53976ba9f2055ba28c555500cda528ff3a2d7ad6cd957540c91f512bd3adf9c5e6 SHA512 894bf3980def07848a2911734c02eb0c5c5d2ff3ab7656413d2acfd164d120a7c075e0a5f3fb95243b8bda0257a5f457117d5c6eafc146f3f6aaf6c6fbc4cf33
-DIST embed-resource-1.7.3.crate 13707 BLAKE2B e0fbe2ffd1f40ca12a0b8f692d4fd59a1d8c2645a6d59c769b4c4fe36af8b7d35c5fb2a0d2f16b3af18aa9871f82648077a0eb1180f83a857c7f4313de9d4754 SHA512 c5345a45fe084403d2cd329bcb82f19217ecae2447228bb4220d7140a700be8cbffed0cb4fa780da8f5bcf4226be93e802c8670ee291bbe749aaf066a91c6e25
+DIST displaydoc-0.2.4.crate 23200 BLAKE2B 91b0ae7018109d407095060b6bbd6aed1cc21120bc30348e8b16b5121f7c35ab72b65e80bf97dbea6cb4ee6b4d5215e8e5c4374f92a569697bc9c862348620cd SHA512 a1de2c200584bfac640f8b84b5103d8687919cd29f59a14898e98d480f476a8e4dc06e3b929af479d536cd02186e2a9be72e6414338bc117b97bc0d160029592
+DIST dlib-0.5.2.crate 5806 BLAKE2B 2a8be2d76c44c95d5b1b9a5439a99a75daa703a341980d8af1c050d6096d45fb748f0acee7f7de2f9433f97ec19faec9e028f57c8149229eecb1827a1ef8eb60 SHA512 4a8f1c09007ecce1d7c829899aafb90081fe4fd89cfac3550638018760e24f63985e3060c4056b55bf58cf4622b1b31595e1c524a75b1b4354b8f3c35fc267ae
+DIST document-features-0.2.8.crate 12979 BLAKE2B 6387136adc2f2d82dcf58a5c4b4f30ab8f918649b5fda02b31b0a412c516c1c4344f4a5cbdc9be777000252f32db6826aa588ce260021b16538afb01d873b754 SHA512 7d564698eca8d20ae66f533071b8ac27243889eb41fc419e929280aa54f508398924456e6f63cc174aef9f2df294b56d6ffdb3064ae7b68583ff1f3790dd03f6
+DIST downcast-rs-1.2.1.crate 11821 BLAKE2B e8a78afcd8d2f17c9505973359e2151d59b233e1757b4c7019047f148b1c8a4f28dc3a0d6eff6cc7f4a7ed986bf592ccf0481dc112768a9751475e1b0dbe27f2 SHA512 f37804c1b1e2cb0ecf2460fd6ab274c843c43e94aa7dfbf4e3c53529cca9b5624c4ea5ab5ceaafd72481165c7335f3cd1f846ae43deaabd18f363572825a5f86
+DIST ecolor-0.27.2.crate 10172 BLAKE2B a0e04c2902e1eba70a554a03c3dd619cd88720f2bc323b7ef0e54be54e0a45ec0253a76a0a8bf36ca06e6c868f1d1422bf04d6ade4617efc9fbd03852c05170f SHA512 5bb1e6d08edd4b7238af9938c3fd4d79255e1190b40ae23ce35a914eab530ca3964ff030b079990b173973facf8774a0e7beaeb68776c51b1fb0d923fc72ec1c
+DIST egui-0.27.2.crate 301121 BLAKE2B d4b7f511a7f6305476ea7d5b168edffe973d1884f2bb816d0a337709cf330ebad74576fbe97aa5de20e6186ea6ed0e3911566d0422de0c59099000b74c90fae7 SHA512 27246cc8fddbbbced96e6671aef72ea8bde7fd698143718f629386c0aacfd47d46ca1e39fdee24f474fef5327fdd1a8ffeeaa5615f5bc805e620a6c43414da03
+DIST egui-wgpu-0.27.2.crate 21227 BLAKE2B 3c93eaf15291436cdd55d7d6967998835639f8461f68b13eb2e5bfb328dcfc8825945afd4d91ce9bfa69a5dcf1bd053b24e86c27694bca117556db8d6cf94107 SHA512 76a982536a76fd79de636bb1dbc217717b00faddbc15a6cf3fb44f30f435c9d5277ef0ef9c999d76d01dbe8ea22c3e44aadc7d72486d810bb28f79fcfa6bfdd7
+DIST egui-winit-0.27.2.crate 19368 BLAKE2B 522df61925c0a4482ac724d1e71f8f3063791ab23996ade77eeb5642c2a11d8d30c9c810fb192df72c1b099e5af1e2386657b3a8abdc41dd47c484e18c89b0b8 SHA512 d36e7ee81010b30ef90673aea33f5e3581e97ef8881325e66f9bdf3f2202ab0fde46920514db8e06e87405b76b6732db8a90373ea14366136789654f39bcf6fc
+DIST egui_extras-0.27.2.crate 32589 BLAKE2B 689af5de768b65bc33d968a3d96c152725430364393bb58bac9d91da2408f848aa80f2ecfb2927e299584670c534d93498061474a3318486d545057da7673976 SHA512 f831c0e88d954c39dfd319804d4b3ecf8e9c268fc375c258594c9ffd541e4a7b8dd4f02c3ecb6d4b93fc956f5ee5b835c42580f23decc2a1d95b9b08bcfd6bf8
+DIST either-1.11.0.crate 18973 BLAKE2B 31ece6eb44a367926b5f9ee817f6ac9d93746f5b95c95fab360361f6b3a02160c682d298d115f39615e5b4758953f3f29ece22a72fe4285875dce03483f87486 SHA512 f62a3859afdba762b004d4c766090a25d3bd81e4a14509c3bd0f39b0d433aeff997b39759f7dbc5a012bf3b680fc4510a4b2643d63dda8171bad7403554905ff
+DIST emath-0.27.2.crate 22041 BLAKE2B b286f5613c6235223103e8cb13f044f78691011ec44696eaa237a6c278f426d8a33892d82120f2efba97872b9c78653b138dc0e44434455e99545c10a69dac4f SHA512 683c090187251e1dc4d95023e07cdb50d9b9cf7e0743c6de8fcc5a489a8e892c39260ad2fffa058c15a94372d6a728f05feb4c94314fbec6b77033f4b8e9334c
+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.31.crate 1370113 BLAKE2B aedcc32bafb95c54a034c6ab082d722834c744c33b525b176ad00ca2ede4157de6765f41e52678fb05a8a1271ed234933ac26a1bfb2cf08096420384ba88e0d1 SHA512 a9e582ab63d00bfd17c9f813f886c5908279fe4d23cdd70f79580931f3a0479162b78210a27b113a7bf6fbc4f8d62bbf098ef645d598fe0eaa428639c35cec31
-DIST enum-map-2.4.1.crate 12203 BLAKE2B 6a1f36169a5a31cef903100b9031bca2f03c79acdfe44da3d9a0bb326c2e510a7c51112ff5aa2874df3dab97996dc69e618551240a57c1eb8574b1b1fb01497d SHA512 ce801ae7863d4a9c3bab00a811eccc5f68eb11b89c50aefe872f3402dfb22ac80ed7f208e2f002adc505887d0d4d5411c82c9a80b6f33f0e2399c5994c45f27d
-DIST enum-map-derive-0.10.0.crate 3824 BLAKE2B 41e42f5ee9a3e95682f03bef63a99e9f03cccafc0ba3558b6d323cca0b07887502ac056db9aa494b040616ad669fc0a9cdf8c7146bfedcf9cb0de1fa3384f3e9 SHA512 260390d3083ede5835529f771e7ff2287e6e58c70f15eb41890fe295b0c54421830588819dbf334bdc1f9c42d9e94f0b2e777fd27d1a889a87f94944f89bce1e
-DIST enumset-1.0.11.crate 20347 BLAKE2B dec5481484f6ddbe48157173ce5d924df63db4be4ed930cfecb07ea7d4081d7c02c73860548994c0ebc8775856ef6871ca0a9780cacf7f8d1deb9a48cc085e85 SHA512 ffd228882d343d91812a7ac9c8daa3b3f82cd5da244c8e4b8325630bea7cb3cc270f6dc63f558638ec7fcd8c20232eede04df54629107a6462c5f73d30c839d3
-DIST enumset_derive-0.6.0.crate 10706 BLAKE2B a3623ac96e3385d76638e7316d7603fbfbf4f00502c27dc0ad623acf1e1812de634894edab4e35230bcc866898952aa57e98ca5ba52e9b5048c3d63a0bf5a430 SHA512 7d92866fafd780be6bb8f46f73ebebeb5d6b91abec070f2489c2111b11954b741025f36b2c229722fb83860aff5eae482a5b28498fb0891a34a4df464028c211
-DIST env_logger-0.9.0.crate 33573 BLAKE2B b9c22205ee60ba97da0d338e1d40dda989f0d766d9ebc60e610b53db882a803769fb3c093348c031183856e16a5a948342e09551953f0b98cd73437bec658bee SHA512 d7db85d2f7d16f7f97b6714e01e342ab6b784c799ef26ee322ec85fcee28a549b6e49a49200ff78eceacd0c682e941f8538a497e2a2a196040769c2365feb566
-DIST euclid-0.22.7.crate 75976 BLAKE2B a2f6c1627eeeeca9686b0bc520e08a69be403836c57a6926df04a717995828209c00164c216388a4fe25200dbed5931b0813400d1a42ea9398ac135a4824de59 SHA512 44c8be57191f6e88c2123210df474a70cdaab1b527a0b171a217cc5c791ea654643c2fd127fa6b13e20bffea494a10be73c767e8aa44f38060cd44d64618efb2
-DIST event-listener-2.5.2.crate 15225 BLAKE2B 3a8b8fbc6b938fd6c2882dabc1bc23eefbaff2c1a931972bdae6866d9d03cbf3e03f49b4d57a98104b311e1bff38f83715c1e3494197d9283f494678168692ea SHA512 65a9c5669799dfad5a1dab9a500244f444693e9728b14a70aa72967f90cec6e9de06311966d85f8408950bc94e24697d9d4eaf253754a19232bb52347ba989ef
-DIST exr-1.4.2.crate 235974 BLAKE2B d4503cd910514ca4412752250c195e791a8978bcdda3cc968e507f92c5acddea7be4132e4ab3d3acfd0fd108334541af9db8ef9bbe848c99d1853f54884d9573 SHA512 c1f7bdecd9854cc6423df18661e191e5cb9215218f148c1917290c6ab946290e572123cd3d1d9689513fcb7adbd7961420a635a85aa42de913cf76bb40fbbf4c
-DIST fastrand-1.8.0.crate 11369 BLAKE2B 93e911ffcec559e30b2fefa44c4d74d1ffa9b8ef1904ace608b8576210bcd41a2b4c7adffc00cd3bb40996110d07316cf8068f4754a879c6cb47e3d41304d406 SHA512 82cbc2b29b97fa3fa2c9372d3e8c390586a7b39f6c7d8c45f9b779bdfdaa2e8a3b44bc7bfcb3367c18120726facc753c9827cf63a8fb4ddc2667509b16333cb1
-DIST flate2-1.0.24.crate 70191 BLAKE2B f5ff04557dd0a57151b4c704cce60622157be4c847fb0a42eeb5a9d531ba28d34b41632bc1b34d2f935ab576f152479f72877dc4e6b296edf125becc6e6d52b2 SHA512 8faf97c28dcc4553f4880295677b1269b4acbc6518d006913d32d7e319990c6631e10f1baf7199b96e03f6de95b9e2de04502522bb1eb45bc301a0fbb0bfc0c5
-DIST float_next_after-0.1.5.crate 5112 BLAKE2B 2f00437cce9f2da3324388c28c32ff30c272cfe3b7f12e76f801f84831b8dbf7a1dfd08330d9c22afb2136d24ccb9a04ade90fbf49877eafa79014564dfab997 SHA512 418f0256477a8459eff8587ea20e3eb0d3f8bacbbdeaf645e94d5a081985a642532154d3e6e01ce7097a67d2aab02bfb4d34ef86edadde49a7b56b4d27bbc6ef
+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.3.crate 29704 BLAKE2B fd23d377d258ead87e820dd89e4175c0596b284d629563b7d04be10f80bf859d84a6e71a21d1c333a94779262608554e95bf7b44c35b3336cbedf545184ea6d1 SHA512 50df911455429a83088c87d30137fda6fc73971ffd32eb66f21e0d006bce92580c519d4a3a3fddadb7bdcce5d6dc33df853dff6373fe66f128cfd60ca26f9f02
+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.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.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 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 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.9.2.crate 4601 BLAKE2B 59dea2cdd7c7aa8bf86606d20deb70c70aa6647f4eea2e64bfbf57955629c0fa38481519eabeb0cde813fed62b990c66a643a16eedea4fa336c69decaeaf6c9a SHA512 f94218b01d9e45b6d5fa5a754c2a7cdfbedc7127c2ee4e841594e77eab2fc095efb65c2528cf022727c125837436d4b7b820b56c0ae3c8d236d9c994a55a3a20
+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 foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
-DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
-DIST form_urlencoded-1.0.1.crate 8773 BLAKE2B e2d2224dbd85d053343aea29ef1bd540fb8be12fd600289e9c048e3b74bfb009d0770f8296556309ef756086f22feec4713dfed1006e1101075c8897be5471cc SHA512 3ab371c223561a27ffbd35cf648ef4a9145d47bba9d71900a7c54cfc2f089175e9361f6352331a9a7fa018923b15e7a3553c8f9ff9fae80e1626e641a5faff68
-DIST form_urlencoded-1.1.0.crate 8734 BLAKE2B eaca73d73d16242f3fa3e38e23531c67c01404697bc7b7eb7c64fa04167dcb403a41818487fc46c5d9118842818472d549a2f5fcef5e4d962461e1c103d895d1 SHA512 9e245495dbf235b147e4216b313f2e6a96357d2782a66d71c08c2902c6a065701ca8ecdbb6b2035983a83c44cf36c921b5c71d63af0e02dd39bf5f8347117e11
-DIST funty-1.1.0.crate 11631 BLAKE2B 37b246ed78132b52461dda9f3c1b52feafac998f6cd0ebc62408b90e5f826def1456ce820adc745aa1ccf07b281fde3df65af84eea561eeaf1ecedaebfab24b7 SHA512 771f42f601a0349a8e9344c8df552491c64af350b18eacc99463e972335d4a4c95416704ebf49e904503fb2d6f78bf201c8cb82fa20bfbf460ab1e7ed9f94a9e
-DIST futures-0.3.23.crate 51097 BLAKE2B add2a52c7f662b4432febf8aa39c0b579eac6cca47fa78c37cc0878f82934865114ffbde3edd665c4d0ef6bd481355378f9feff959712978d76d8c33d3ba2c91 SHA512 75bc61e7d45efc0d0525b50713721072591fef56798de158431c8e869a4d02cacd3b201073171953c68c4c5edcc8879f7bfa6f9f4cbeeeabd03d1cc86d943512
-DIST futures-0.3.24.crate 51399 BLAKE2B 03eb55cdcadb6646d01a485efc9ca0c679d8a71186d1dd97b078772ca298939e147537692216e2601b7d42cebe0c961b3a6693d7059c7ca735efa28fac8be07f SHA512 91f3f1b121923c239b1e3042048fd420a35506b4c1ed6527bcff0fffa8153049a384c4e0b21d59944327552c094db8de8977036c61127b27948979e0da6df949
-DIST futures-channel-0.3.23.crate 31951 BLAKE2B b633adb8bcfa76a354b1f25cc6488bb56281611e00a8f7f06b267526af5db02b514f69495af770bb6dc3d59df35f6d51979f5b63e142dc23283e651e16698015 SHA512 600c0ea3d0486eeab1a13e985f0de4b4d524e6da2eb4b22961a5968601ae2fe07540010f793ff7a84c24e9360dcdd84b755f6ec630d59e92f4005530e7bf70e4
-DIST futures-channel-0.3.24.crate 31963 BLAKE2B 2abaeb5249ce94271588cce9c6af9c96ba52d5a8900c69b5232e0e144e5e218bcd57788a3592e5b95aea84d73714552db131524d82de3655886f136789529c36 SHA512 2145a54fa7b89763c7c6352818b3e3b581190e131a3d3e7bf7b745a8e04ae6ecd9f5f1cc78ee65f7aabf1f786a25cae6b37d358cbbef34c494c34e217b84d7ac
-DIST futures-core-0.3.23.crate 14605 BLAKE2B 0811243783a358f5e33fc86742468e38d63afc52684272c8c7f698fb499b945bd936c5fbc9b136dff9cb65b23131a954ea3cb558806a717fa6b04a3c56e7d534 SHA512 cd222cf825a033cadbefd56a0e5686d85a197c1c8a3c1648cb971ddb75905c242acb3f8f847068f1a23546bdca871f7c4197bb28b29edbd86c3103238a22b7ff
-DIST futures-core-0.3.24.crate 14618 BLAKE2B 381b5f9dd5249550a859ef83987121c1574c91a2498e0e96ccdc5657cdcadc770319a4b50200cf3138bd504fe537ab2d5c701bd97d3e0e39f4a9e75d4a7459db SHA512 d39b19f0c2109d7937d8dd7f6ee45144ca3662746189a5856e0f9a29bb255bc915214c008e97475046703fa90ea28343984575fba394a93dd782b95f09963e67
-DIST futures-executor-0.3.23.crate 17744 BLAKE2B 6b395331f2f906a219a6b307d0ed4f218f9f8d1fc42a1e6035925eb381e7eddd154ee9ff2ce25eff42233fecba1a7b2e6112b3ad7017f4be55a4df8217c47f06 SHA512 563cb18ea4fbf56d83b955d485bb417a96c567ae29d5dd9c5c293f109707f92ce3d1d4fd8d0807015d219ab89ec8423510e7f63b09b169424941023428bf896d
-DIST futures-executor-0.3.24.crate 17745 BLAKE2B 835a8f835c319e513443c0c947bae83c4a4d1656acf17af333063e33f96eafc76105d45798ccfff3ac2fc362bd54b785bcd2bd406a4830962e75ecb63d710c82 SHA512 fa6385534511ddfe73e4bc80081879b0a425041557d83b1d59f3e44f86ec279327532d732ed4daa4b13e74a11460fa7a99713b00563cdad153ea13c0dade234c
-DIST futures-io-0.3.23.crate 8906 BLAKE2B 427dd8e8ecb046d68ba176e23b7945bbf077b3df9ec2b2abbfb6b69e50b7275f6262daf449e0c28e14318ceb3bcde2832374e350adc7529a027fddaa935ce75f SHA512 b9379d3de411ae0a543299bc37a6f038a6e5f8881cae532b73d479fdb636601237ddac8b2d57c17d6737144b9c7ba2ca2d2423a61a3c0859dd3e376d6109623d
-DIST futures-io-0.3.24.crate 8910 BLAKE2B 67de3c0fbb671897b7ed64967e057b03a9b018b5dcb3d78af4945d4415cceb6a866bc04de2910d124452cc3175a6cc5651af979f8fbe6343f9b96e174cb31279 SHA512 63257cf13e99b8968a797dcce9d572722858c7c91c212a52d05badcf10440824ce9c450bfe5eaeef5528369339a14144a8e94d7e8b2fc717de26fa21a16f2848
-DIST futures-lite-1.12.0.crate 36032 BLAKE2B 16cd92362ddb217fd3c316f1104635b086abbf3b482b3381d62e3b5ddbd20122d1dadb48c83d3022db080d05352ee5a40f33978529bac3eb182b875f45cd132d SHA512 3d26148ed1c87926de51412a8d08e0619c64b85b610a74d6f61fcc1972dc0cbedb04c5824fcb4ef0a920c557ac81a0b2b4403ddb1c01e11648694ae56c28d72a
-DIST futures-macro-0.3.23.crate 11250 BLAKE2B 10159db5b521a2ab6e6806df6c6cc10a223c06c0813a7a4d56f1468973018d8e3fae1da95b7d8200f616ecce4c819dfe2edcfee8d9792642cb6d235af1ea96b1 SHA512 2a94721a5c59ab84b736716d1a4881638ec93f5a059aa0cae7e5d7faaf3054b8d2417719330109eec91cdb83a697330e4b397988e53fa9e74885046c5896c072
-DIST futures-macro-0.3.24.crate 11252 BLAKE2B 397a7675d735c9be21bdbb1f540445197f6cdf8c595c952483268cc19a9a06e673338f5713cc378b66f4a93bf5a8ba0d2edcce01390ffb9f0ec9337fd3b527d6 SHA512 05cdf441404a7656a092a0b9a9a2800412a8671e2d28b8b68b26e4b9121256acdf911851ea566847462e981ab4a2bbed3bba5500cf9560f3f61e6ce536afec81
-DIST futures-sink-0.3.23.crate 7850 BLAKE2B 93f2a5f7959873bd797dad7c4828ccd437b93bb9387dec622d84e0644be87e5ccda6e080f77f50d57a89ece5f1b8e24c2a0c3e2894bf1edc9c5891dd2ba867ec SHA512 18b8803bbcf4e8101c82b9cfe04e8a345296c392914862aa94d8a4970d780930985653af22707e39d73814da576e021b2968c057cd9264813de836246cc53e4c
-DIST futures-sink-0.3.24.crate 7854 BLAKE2B c0cac5188d84de0ebdbe13419c30dcc38594b8edf9952468eb1e04dacbb2d7f754f5b555a1aed5fba9704978a294974c25cceee27a9e4ec6d90b031f324a3ac3 SHA512 4da560975ea2ce2d6cf01042f9a3a16401d769a34e2d8bfe2b0fffc818ac0c729464efa0c2d45ecd280aa7b74d7bab1d17a5670db3d2f4904e4b0a5f4cc463eb
-DIST futures-task-0.3.23.crate 11825 BLAKE2B b93f12486e4661fdb0de53d98ad0e6ecf138278e02c87b0d04af2c613ef528311c44d1c080b9fda519f42a845cc21244fb101801fad0cb8529d74c43ca9f4c1c SHA512 91a2f8e7f00225f1cf3198fac193171c4eb5aaaf99f9163797e9f3290f0748073688899323bd7e5effae33c286561c7fc74886e4f2caafcf6991d69e80864c29
-DIST futures-task-0.3.24.crate 11836 BLAKE2B 1f697816b721f4a51150dc38909974c6c765231c451e0884ae41e1ca16df9b93a8890e1df3a5083330de73ffccc3cfeeb976644504e45306ac5ee99ef4cd87ad SHA512 a78a739176c20afac835ed7b1fec04772aee1f2127bf4a4d0e54bf1e78079e854794fb3cff5858108168d8d1bfef7da99221599c9c533bc3c3059ef07286d54c
-DIST futures-util-0.3.23.crate 155793 BLAKE2B 9c70c5a3b5567a54e1b75337cd2151623bd708dd5b4c951d6a221735d14dc9c00b71b730c5786ff2946e10c1105892914271c774e44705d9c75e91cdaa9d3c7a SHA512 78893e2de37752e0ce4455fb0a0b916c8491cf7737db981194bd5fb25e819929e450ef75e32c72bcecfe49eb6ccf33a1cfb98d63ef158c3d916161cbc0a16c89
-DIST futures-util-0.3.24.crate 155823 BLAKE2B 6fd86340f0fb96240e28f3e3885be9e555675b879e844643352241de81b55cc67023746b4c3fd941b2b38cddebcef41efbf72581d41cd30e7aba8f0330ad503e SHA512 30cfa53bc58101948ca6e828839186575cd8b092a629bf59a7e4df205309f82d0cd4ec70340f5e98c76fecf604934e553562f7c79ef382ac8451c640bd95c5be
-DIST fxhash-0.2.1.crate 4102 BLAKE2B efade6722efed1cff0bcf307ababd9c9031af297baf410367212758411a21d61a473456c7f9b5cb15e444d115a62120f140c082e70dd360a3ae83f2f71bec9e6 SHA512 638e1c0a4e7f365483a329e715afbc2e57e47c03b32e0e1818c879baa96996e81dce8ab39320e24a3e1633f73dec1e5f18a06c37f3ad38043002fc99b55efc38
-DIST gc-arena-081b6883a522b38030b13744c80c84efbfcbae1f.tar.gz 26707 BLAKE2B be7546151f82c783663653c1dbf4b1c745d2a7e431223fc41151f992d849c96f6d357f0b2af329a4404f9eee4cff2afff79d35937fb57f5c9bfca9cca821ef58 SHA512 5a4c15d73deff8a55f125f00b89774ae306f760383d89fe011e05fd68e342bf5c127050e5059a119af7132298225de02dd665e82701b7da87620297a2478ad39
-DIST gc-arena-4882182850be9df64565509d8489587a2f60171c.tar.gz 26600 BLAKE2B 98ddf5f525d09074a172891bda149bd0a765317105254b3e185df34bcdf1160686ca989487872036c10c2c01d657d2117761b5a05fc14f3beed596cb2b1a20dd SHA512 990f5dca69aed6fafdfa7c0b405af72ac3a6d5047a315edfb8f0e8421d9aceae4df5d9bf3993fd4137252e747c3da8ef0389b329c25aed0e7780ad8088f6e598
-DIST gdk-pixbuf-sys-0.15.10.crate 9891 BLAKE2B 383e3cbed76a961218bec9d328460d6204fe87cf0bb7b8aa15b270b30d513289e57325a3b469c137af61b5aeb9ba58e9082e95425eff879a8ee3b241e51eb9b9 SHA512 bc2c948758240a0dc195d5b39d159ea55b4a717026b3a4d729e92b736418e0a953b841e62e14059a6c67d257adaa5cd0bfff28de9e2ded03cbd82fe45488d8cd
-DIST gdk-sys-0.15.1.crate 73599 BLAKE2B becfd7c8e2525ae90402be8db2d59b9d4a7d5271d27a4f46740de8e6e1a932347094f8c7dc4df447a410bf24bee17c75090c3b3ca707093a8d8292bcc8d0a1e6 SHA512 eb543f348a4971a636f77bbac97d1d671de5591e6314ad41544cb33e4c2d480ff7d0e81ddb187649036f7b7b0e20c3bdd8e0a33fec1f9c30d156e719f0b25cc6
-DIST generational-arena-0.2.8.crate 20899 BLAKE2B 73cccc9e3b836ddd37e7f64b6389c7bec6763ac9c390a5a9b4adc9b35200e7d26d21ba0748fc808aafac52087f552a4c56e8e10ebf8d016507e1781c579f1e73 SHA512 a5e073a8d26aa32b617fb4130d2b9401c3a3d9ff51a2910f2de4de019ddfd2e5077f2489acb40330e640c573139c1c911ce59a36011bd439c011a3af922bdc1d
-DIST generic-array-0.14.5.crate 28915 BLAKE2B 0a8c7f20ec91d218fad8a9a87b0700564744ccbdc2f1eb84bc363fd55e86a5ad68c68e446b100752238d45abd7c005f1994bc26e079270d42635c6e296e96f29 SHA512 30c86b24222503245b494c5f88cdf8115ba08c73df55930bb01bafcea22560f4d20e38c348c3896d6e1ef03209cc1571745881b4a77fd28f66b0cc435f5249a2
-DIST getrandom-0.2.7.crate 28854 BLAKE2B 30c054361c9b1d9f95bc505e27e98d8cbb685f37c91437948d9d26f22028e0797a7c704d88912c1648b3704bfe10623a8c5e130e81746c8f85848b831771db80 SHA512 01803e609848662ad8650cf451dfc2c37580da0b7b5e0d4cc764da6ded253cf49ae42a433b1c53e89773bde00c1ccc136394e58ed4548e7b5c0ca7e202e857e1
-DIST gif-0.11.4.crate 634244 BLAKE2B 537a21ed947889acde0c9b8a42a7d0308f2d9017e59145924e735aa046cc494b60b97cdf3b24d62d24159a47bd4b6bd2aa009f2871c0b4f6fecec020f8041398 SHA512 3de0534b35bd783b54715e7f8a92f2d8a22934949627716cc3ade3c8036489d2b9604292eeeeced820b149865bc44a5de9d05700ebace073b48737759b5296b9
-DIST gio-sys-0.15.10.crate 79552 BLAKE2B a2a0e6a809ffe57bb2d1f6deb072f0b4086ecf833b2e9b1d6e2c010445135918840522f57177d30487c1d19a27161aa37f2eee611b8bd9af4e41e021c425f2a1 SHA512 9a5f37afc4ee4fea2a9fb87005c2c51b1f22ba98c9ad88bcedf89b90bd1e3d6393ecea8b726b596dc298c5a4e7db1eb0503f0872db54c19c29069f5a2b1b30ff
-DIST glib-sys-0.15.10.crate 59966 BLAKE2B 6896cab768c10992b751d454f9221125d7170dfc0d453244e90d67702b7111048fa5b7c87e94cac119a54e0af13f641db84c50ce0947aa751e716ec556d0001f SHA512 b83d67d775f70d6a08b9a6a9e24b575f110a93e5dcc8c53c03015842bac2617d13ded014f46820f8b05b08e7a34aa4841923847869af26689251497daf0b69ec
-DIST glob-0.3.0.crate 18724 BLAKE2B 1f1dd380e7d668a0c2cff9134279ebda958b4bccdd4a65ff01f9665b45ec4cce8ffbd47eb46e52cf516c5fd5803561e6bcb60cdee21ddfbb8601a95d45500620 SHA512 87098ffdbc518442995c422120cef71f83069c8f88a1970ecec5105b0f284ddd92bcee929f5c230d5b90ae1ead7e1214c3eea26f4a8b26715a00c1ab8b09bc46
-DIST glow-0.11.2.crate 142135 BLAKE2B 3c4ca1960aca248f7814f0dacb53317bd217cc11a7e944e8113658d13bc5e307b989f6e97948c2ce9bc5dde5129c09d476c9a4bfc12463861f1fb8b99e866e99 SHA512 b9f9f284649996c3e1e43829f75c1c0cc10702a0efcf91c685466a919cb7819a8ac496f707096198a060ddd5fb34cc853e563ef676007dcb59ae57f03c8f3531
-DIST gobject-sys-0.15.10.crate 18534 BLAKE2B 351d9e949ba3dcdfd27622c7b1e0b6ac5ed4b7dbad77cc6f7f7a10779c25bf39c95e1a36d8a9ecd02a40b830a85170cedf63434fe7bea91fecb2fe20f709d5c0 SHA512 351b4dc985f5e0b1b3c7f2da9a615188b11a0b62052ffcd6e4fd654b086b0d66bee325f6e8807c2b3508132816540f2c8431f74ffdb4d31d436594ad2fdc0d92
-DIST gpu-alloc-0.5.3.crate 17475 BLAKE2B 71e89195e6100316bbb779ab3f11389b367657b1f7e734e0e521b2fa22727f1c30fb332cfcb51e53dc33695f4831b26bca3060a5f7f21f2a9a304c0c175cc451 SHA512 9a127fb19d7902355f2471fa40f2830818ed40e4260be149314ee86c66cca2557476b82313214c9f97425fd854b8fc95010eecc2daeb53a154e8c5ed42275edd
-DIST gpu-alloc-types-0.2.0.crate 3073 BLAKE2B 4010628ba21cab23dd8e23ebe38dafbf3ef072d686a67bdfc04ef3818d2341ea15bbec9be428ed638e57974c17db36614f9c9126faaeafeb4973fef0b8f95adb SHA512 37659361281d4e2a0785fbdf065c42d6e7922def36d225e1af78b392986647b904737f0f862c57ae0be28df24429ca999ac7a72b42d125a6f22564a92e80459e
-DIST gpu-descriptor-0.2.2.crate 5890 BLAKE2B 06b7466dadc43dcf27b82c913e10d4750e069fa8a02a7d98074bbf388ba33048157a11ba858fd966ec21d11ac690d6d99350552bd259771c029fb2df98b1f2b7 SHA512 6cd9a05181f0c7bf241ddbe1ab173eac3fa93cce1c56aa50e405b8fbe7467d12c71a2f8fafabb634d97c6f0cb71d25237617ee52c2510c09d78b5d1d52ad6e93
-DIST gpu-descriptor-types-0.1.1.crate 1956 BLAKE2B 70789874373f3e98b5659b59a71dbbf71260f331c2811b759fab8db91f15aa4b484b9d0554aa54c80e4dbd4bc308ae7b636b4e1a59dd35d0a1428e1a8bf88711 SHA512 e313ccd74ac4a7c97bf0ec85ba65d84635d7aeaeedb8764496dd5ba332e4797f7305505babb5663b5413646a0c964bf1780c93942850a8930edc1d3b400ebcd2
-DIST gtk-sys-0.15.3.crate 138220 BLAKE2B 91a057f5a16b105872e78c684a739d17e866be406b799e433321d0b53bfac9a65589936a24703a30a4b2ee2ca30ef93859ccbb8c68e528ffcf12f9b19aab0e89 SHA512 c3984bf94e3881e28874fa9611f273b8af1f463c7d1efe2315364ca71e85975554685903dba47513e21e312cd85dd281c17cf6b4c794368958894933b3c03bcd
-DIST h263-rs-023e14c73e565c4c778d41f66cfbac5ece6419b2.tar.gz 83430 BLAKE2B 8128496cf5a64edfa7d9264b9f8bf791dd0877faf60b97dc33a94c49f610bcbabfe2d6b50426460edfc4836f0602955ff70c415268c375fcd88cd030f356a4ba SHA512 2226b8ab4327d6f4f2763b3ece3958bfb604542d3db8c3df4a348edaf8cd9f2ecb6f21a965117b23ec3d331787a998a791eceb5a2f28611208d6550279224136
-DIST half-1.8.2.crate 41874 BLAKE2B c3c5c01771f05b7af652abb8e5490dde7afd04de130537e67845fe7ed58904e7ad66c7286a4e7deca3641876a6d12c5b6e95883fee2809c8e685d2f79cf96610 SHA512 5eb128e41b8b7f9769a669834b2f8380b115395bf2a2a181732bf6c71234d978dbc4c527fddadaa7bd7fae9add77958b27616bfa1767fd123d3cfb887663292e
-DIST hashbrown-0.11.2.crate 85713 BLAKE2B 402f9f1bdcb92631206f9b72923ee35e28db8623e87469c0f1496664bc7185077013ab3c8aea68268241e5b2504f10cddc613a350abd4291050deda6c112e559 SHA512 c21ca68fd49bbb741901f59fed04cc124b8da99e2a4dfc26e2e5e1140637872b344612a01691bd30cc771575c571be15f756c84dde225441699cd2322af2ad6c
-DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
-DIST heck-0.4.0.crate 11161 BLAKE2B 13b8bc39cf3ab90e71433e3c7b3e5f1c19404bec58dc4298dca05d94d5c14c2fc97350de737cb78aa45196b1241aa8f1ccf3a11ca309da5fe0f6a657673412b3 SHA512 33bdbf4ff9ecc4f4d74cf06590e056f4d96bf0d990d5381b9da5b65682b2495ed74e27b45419c2afa986c1f6200909d5175b137ae73ced5cc8ac869e4e1bce8f
-DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
+DIST fontconfig-parser-0.5.6.crate 39300 BLAKE2B d919f290d09bcfd37b790c03b301dead637543082952339394504b6de9eec2baa27fb79d08cd782b318bd8662df100e40284e929940aec94be551de332d886b4 SHA512 8d58fa2db0d6444025841d460ef3703ed1ff4bab9a7399df9830b8c13155633932e90684530ceb85a6d0803bf8a15f1647650158e5b8aa6288e4300b5201319d
+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-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 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.14.crate 37307 BLAKE2B 5904388869335ea904d950ee83ad1867a0d3f6831b7139102b53f4bb4a2c12371c9396f1f1cbcc44e3ce69a4ea316651b1674722071bfa7562385ad4b6a88c33 SHA512 6c334415e09f570e3123e3c6c6eed1727533ac6c9c4142e16ae995c237a16effe146832a891be9fdde4335bd02b454e0fdd9160f20dc02f107ad106756221658
+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 gl_generator-0.14.0.crate 22330 BLAKE2B d2e84bf81e7c4e2869c3e23872bd86466ede80d6fdbdadaddafb1ae9ab45672613cfda319b15720c35fc26ab103ba106a997ea6f5d4654bc9db19fb86f20d765 SHA512 98779d525a042b47ac373340c6fd2e019a670a5bce643128ae2cde2021c0bc8b2253064819c2b0ff444e62bfb3679dc70f11f268c660050cc891063ed6b45fd0
+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 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 h2-0.4.4.crate 168905 BLAKE2B aa71ad20ac387054449bce337d9097822d583c5daf7bc3f703f1a8dd204cd616f0f690ca39eb5e3b623b5694ca9c5c070f829d461a1f6fef0b94882b142806e6 SHA512 469ea1d854a70fa8a0510437626b0e0b2fb5409c6eefb0f5a89be5cf24d9082654be6cecba3d817a19604e8778deca6fb10762bb29e0d1bfcf8548031e3ef4e5
+DIST h263-rs-5c8d9d7d86f62b70ca484df006a75a9c8ff1985c.gh.tar.gz 89864 BLAKE2B fc2f799c7b72b4e039615ec1cc608a45c5f06c5b65c5acfe971f2fece9278094316557e4bc19af7472eaed25057a4ecc7cc0c1d5ffa1a3662b361645c7c8b083 SHA512 43cc6b5b0ba97e086f7ab22a100b4527ae6af095dfa1f9694222414210c989fc80a0001a632074b7a1e9424a7a8b3e34071e0efcb1be02e73be30de8b61f6cb4
+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.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 http-0.2.8.crate 105591 BLAKE2B 254dff38c4d7dff28e4ddee0769a2f5e2e9e4abc6aab38e965cb7efa4069d1b59d422f30fdc73b5db5bb6c3fd02633dbfdbefd59bfd6ba352c3e5c9241d39d97 SHA512 8e8d01803552299807b07a9fddb45d92af089e43344eecacf2bee07b0e745f33558d26a5cde987ac0dd50f939fdac2de6855c8b44f7362e86d05efdde8a7d956
+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.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 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.2.3.crate 271023 BLAKE2B 157ece18825fd3f8055581ccbd14191a6923da4c806ce51b3d6376682878db000a1b873f744c8e9e1966e4c1f8393643bcb603deae299ed0bd87847b0bd2c591 SHA512 1278bd561ce329e1dc7a6f24a10f83d9a068af5d15a088414f3921c6728b0d54f4d60d6f4d0d5a786596ad226263e1e50c3842f192d5758aa4665ba4ed5c269f
DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441
-DIST image-0.24.3.crate 265521 BLAKE2B 41cf78a375044cbda53ee605126d797da04935a5f1e343e82df8e4c2feda6365957053a48da43e9d469ccd7447c46ce57a54ce9dc53d5bcb322eb2d20232c158 SHA512 f669ae622f68f7a77d8a8074ca4ccc43bf9282f115b1d6ad72a70174de3e17ebba4618a2ba6605b4b3853b16dc95cd447a60299877dedc81bdad423ece36b9b0
-DIST indexmap-1.9.1.crate 54114 BLAKE2B 71e4968c85d5b3fac550590658f9fed72c754a9443221fc804efb97bd39b5fca7f894ee67f8d2c330bf212eb8a6b5c85879cd813ed56e3fc43a54f0bb689af5a SHA512 7eac99056123332ad38ef32eb65235c810e8b4d051d9b0ddd5582348c9cd3b162d36defe8e46a532e2066562f224e37fae94b52b4649ee9cfac7673b76a2513e
-DIST indicatif-0.17.0.crate 52707 BLAKE2B a4b2ca8cadcc96c13c4b148823ea153b0d02aaa7984d76351d905cd00ceb0433dfc850f5425e5dfa19a4d2495b37c4fc7547be9dbfe1bd9e384eec4133ecbfcd SHA512 2fa301bc4501680a0eecea99003a825d79643ad94069d317c54d759d47027e920a57e78f7c49754c7221ff8868a45853842184f2bae6c2b8023171ed983de360
-DIST inflate-0.4.5.crate 17715 BLAKE2B c46dd3e4d064c135921670b940a3cd3ae152c5cadc67e00f6e4a350e7d22efc66807dc64b6e5943af30f1b985b2cea2dc42e7d923a05bcc268deec22a0a7de17 SHA512 1392402f72a8463dc5cdaf815d8933e8dfcc914fb3a91e69c38e54deb7d55b5211e157b640b7cfa999400fb4d2e233a4a1a678147594dfa0be300894126d17f2
-DIST inplace_it-0.3.4.crate 13025 BLAKE2B ea00a8083845daee960335d009fb6f237908a867a88d69820928fad9d55e3af59c26d4d88b707d15966f5320cb4d62d2c3c49b658569547c3cb1adf2342906f7 SHA512 17c9c69f7ce414a5900b34df8d7f47279af387e86ce7b4218c47c3e6004ac21d92fa949de63b0bbe9a726dbd58530e8f19243e9b9478a29988eff748b914a07a
+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.9.crate 9261055 BLAKE2B b4d95a88fa2fdca01e5d89ba9975be22269e3a5d90d24bc31d5f1168007508a0337d0acc5347be012c2b98de02e4f481a573f012f47a1f1e365d26d89df236d8 SHA512 3f858efceeed54e21543eee065ca6008f40c568e1ece1016b38040eff5625c9fb6de77c7e950c08c9e82b9fcbd4c4ec2f8c4c1157ed5d232bc8e35b4850420d2
+DIST image-0.25.1.crate 9176733 BLAKE2B f7daa1982ec510de79c925157f2e1a861c89a92f1cc043617469f3c95cc9158f1ffcf274513556993bbc4bd5ee5f86bcccd406cfec06d98b0330bfc10687acac SHA512 4252672cb5b5fde61e9c7fce1712997ea082e3e7d5350970d597c0a1421b21078e1b4c3088474c4b500f396bce604d0749085fe4cdfe1c3b5f3d1ffcd39c1b04
+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.38.0.crate 86379 BLAKE2B a0d349fc486dd4dd771b292b3013e7609e44e6db70c661b37123985427004938022f09bf82dcce97124e7acc1d72c7b3895ba0cf7d4dc2ad2e6334a02c85d3ce SHA512 c0604d51c34bcfa696bcf1bb98bfeeb210a91ad8f58ae2df0c81acf99a8380484a0e4bf3697e8363fbcb2a9c946b00ce91883f5ea9fe5b997dd772b230b86827
DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
-DIST isahc-1.7.2.crate 203314 BLAKE2B 60b4b7112581740cad3321a647b71e1ff10c1a7386ae8e9c95012c0a77bb05115f9f09d451db87ad2a19820e0e985748e42898c3e856b47739103d93178ce163 SHA512 c58dac9bf57f6019a215b0d38ba97eb3042933dc327e260c007531a7afe64cb778c27b5f0fbb761ef0794833f8ad049564c3f2268850f949e9697ded61477c7b
-DIST itoa-0.4.8.crate 11926 BLAKE2B e5a648b490908d0ffa3a0832342ad11264eb4357939bb39aad014aed3938bb60e82703b7e31929a458525061e9bc40539d33753bdbd722a03b6804e57dd1f70c SHA512 6911d269ff3ed7350e4f0dcfc6e9e0d70e25833e1e7cfcc57d5b8aff1f47b8be4f2e9baf1b92e5517cff63492be489b6d29b48dd9bb642e428acaa431216b68e
-DIST itoa-1.0.2.crate 11112 BLAKE2B e277db8e2f506d4d20b6888b609d9726d594e1cb2c9f21df60a8cf8dcbad1808d8c1bdb0b7857ce7734b92c0f23fb1ec56f8564e779f27eea953d0ffbfcd3f84 SHA512 44a732a102d60b58e72fe76c43a1d185fa12ff08d04eeacf03234368552f84d3de87a2ea0a6e7a56b8cfa74cb6f6697005afcee26f45afe0c2fc7dce5da3b593
-DIST jni-0.19.0.crate 65890 BLAKE2B 78f93688f80f123027a5b800b0c3e8fa714a1a06b59ab36de73ab2d02f1f9ae3ceb2d3d4fd19c8d6d951394eb85f986f303987ad1e23b2fc451a237a04a9ef4e SHA512 75b48cd05ffbfa6e220dc4ffce3f37eb89105d42b0ac4e108930ed81c3525c4ee3d1c069342cee203c401c9f2e9bb2c53382fb61155da922ea9585d4fff9b212
+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 itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+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.24.crate 21303 BLAKE2B 571e6f18f09d56d8281d2b2d206647666dc6e9ebb0a1fa48f707d3cdf603880b78ac6a2ec2239658a220e70924ed1612dc19ad90fcef883f21972a1df4f67d57 SHA512 0feade0f1f0a458bdbcedafce8fc39f44adeb56772ea94a59f16f038a743f506db1405a7c8deae65a6a5c1695bfb363c19aeea1c82c41c7f4d1101469f32e42e
-DIST jpeg-decoder-0.2.6.crate 741477 BLAKE2B 22efe7b937b4643427013350d6bdfff7254139bfd4c730d43fb6e592a6d437d5c80dec258784fcbe54ea28ed1802354e207a555afd8171dac84ccf8ae0c2f96a SHA512 f96c95729357d87a3c1e78dd873e81346b8e98f0e9e4a161b54e2f5bcc7abb54c37de37eb032be647fcefb1e36a6343444c795ad5d37043f5e958dda71a34abe
-DIST js-sys-0.3.59.crate 78849 BLAKE2B 2dd42294717ddf922f4d329b3da1acefe1e34c5d9c735132752bab183ea186a879a8218d201238146c20374e724f9219d2c28dca8c530105a18eca81ba86fe39 SHA512 317a0cbce8ccad741dfac48a09e326460bda68a58225bd8d2eb50ff50a7355016c399660e996b328bdbb77d12bc5107d4c2908b11441183f3b3d2f45eedbfd00
-DIST khronos-egl-4.1.0.crate 27810 BLAKE2B b3f77b9ca325ce8daec5b4ac4cd8b964577c8bc94daeb30a718c04eb0cb21ce4d5f864c594e0095b56218233129b364387dc580d5f3951252272ec61f997d9cd SHA512 c0f0d0ed6d32419e77fa721f1c1164d600808fcf180560aa5d5a6ad2e56630104d108fbb109ef6660e282b7933bcf462402dbabb8d852e0cd1a28c2b2c55786a
+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 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.1.crate 8050 BLAKE2B b41f428b822f736984c988feece3f30ccff3aaf4c1ad634fa8096de625f52cc2931914846cc0d1eefb43f9a8dd900eddc858540529eae58bb0c3bf0f112962c9 SHA512 728f585884e2c46e44b7fee4d3961e8320cfd2a596fc9a834cc79fba5d950462e257e10a87ce525636f8f4f7feb030cc4752e9b97b304c6e91993785b3087369
-DIST lexical-core-0.7.6.crate 494385 BLAKE2B 417644e5e33a70aa4165cba77bad45c540aaf7bb2037a5461c691b646a5470c7ad68a60029ac50f1cf25de3b6928b3f491e9b7ef5cf5a7d3281d83fd33a173f2 SHA512 fcd7e4e073e6440183284f20a6305bbe4aafb5513a20b8ed793439e4b5a5519532a0605f31e42539f3e6236003254812b459a9b9c47b3c449f5c582dd62c3172
-DIST libc-0.2.126.crate 590481 BLAKE2B 1000de6b9fa2b3ff025b961e504d6d20b401f37cdeda6710187d18ad2dfe8ec89142bba65486d7853f1796897b58f343c5a34dd6381a0d0794b615635ac31175 SHA512 9bbb17f64a7503819616a71076ebe8ee317daf07b17b9fff783a4459da0439aecee535c09e7185bf148b1993e6fc958d182a490fc9c9a7b9fb635429c491ca44
-DIST libflate-1.2.0.crate 40864 BLAKE2B 295fdee2e332552cfbac2ccd382552dc879fb441517a49083b8574868b28ffb7f8428b94b6cbca9b673cb8bf5e0cc4b22c0e10d2efe1d94fdb93d68dcf3eb287 SHA512 a5e0448e56ab5a219952a4b4efc3407c8419d8d9a255670f42b8f1bca7f7fe5774c2711025b18285c4f1310d26d0347ab2090b0f734bae43b569a0879f67d1f2
-DIST libflate_lz77-1.1.0.crate 5729 BLAKE2B 6e8bad43512e90544e3429fbbc707ee2a532a9d5451dd6c394278069d0f17ecc7711007dbb8a4c0afae3ecea2d872c677f21732d6d509d94ce485b188b05976f SHA512 ab0cba9d324d2f7bf2a741e8ef8b0ee7bfa85ab6ee63b9ccf6ff912461ca854d6b7467e527d74ee93a219d6dec5bcecc3e61eea83d4cf5b2452f9a0aa97cd95c
-DIST libloading-0.7.3.crate 27378 BLAKE2B da36353819cbbc85dbb3196585970b431eb5570140978fed8a6b5e46bec2560b373e20fc108b9520589bfd1f804eea57a524a0cb497620d4a8fd11030e9c4818 SHA512 58da6e73f86aa05132949939507a128188ec2e26e2245e23b1534d90673c9909c7d5220aa4aeab2c16249f7433b4d0f98f20c94b8b1f7434c7abadc8b8039ae9
-DIST libnghttp2-sys-0.1.7+1.45.0.crate 4527090 BLAKE2B 29fa3021361656826d523cfb0312e35980199611887cbc43721a2276ecb3f663ac1283629552721754e256124340650e907293ab43b96e043c7aa87bae979ec4 SHA512 5d7a1e262fc91b654678cef4026886ccf1f55b8238164583ef46de58fbc46034288b198843e2483b1d8fa9070cf6640d83d140c53d780b38527ce68222c94376
-DIST libz-sys-1.1.8.crate 2481844 BLAKE2B e890a3850aed5348afe7558168c7571564687d6a7d3567a4d53ffdf79444d38c4d70d35891e16f496f31169bf73b669534f5fc584f9ec520b518dda05e80b882 SHA512 0766ab72cc1414160ccefe4812e6204cbed1341607e5d17607f24fd4ff81dca68d8f2cf43e1d27f332a508d602bff0ad340c4c647a5d5f85acc120c19cfb4100
-DIST lock_api-0.4.7.crate 25371 BLAKE2B 9ed08433ffa70af60193dcf307287991a3154f0ef16b485f32a6c83e64962661a6e08ef83a6b217d6cbf5bd964c0638d8ed86b290087677c1fb3218321c4bbf8 SHA512 b1a5227fd131edaa70e017f7ddb43af8b4efa58488007b898ca1dfc818a3a441b732b7adbf1270e72a68ee5d2a99a5d48f33b2bca8e2cf78694953d20d27636d
-DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
-DIST lyon-1.0.0.crate 3875 BLAKE2B 7ecebc2120e4e51a7a9bd8b5cbdad6c6dfc938e083380d42833538e2293469d5e0dbac049d07e9d4604dc84e82cf5c691a742f0d5024274b0109dee5ebc468ee SHA512 bd5fb89152966eb9bb300859671412f89047bf504e542140bfcb1e7dc3c389be78a1d45369a018274aed2150f6def0d6d1676644a6936d824b9e0d1e174d68b8
-DIST lyon_algorithms-1.0.0.crate 29749 BLAKE2B a721cf1c260113dbf0d188a307728e7a4250b6278936aa0187fa4636b064eb88933292050bd1c8234060e85b8881f79c05d1230ac1322ff2475c75997427aac6 SHA512 1bf4e0e6002bb4c106a5d215a4222fbb92f9c6d35565a7b9331c7764e0df9e8e6173009f849a6d0b0a0981afd36ce2377c71af92d1bc0dac85b9fec98f9983fe
-DIST lyon_geom-1.0.1.crate 52183 BLAKE2B 84b9bd6e0f3f79283205b699ef9097a5e10b99d4b3e3d9cfe5b4ddf0319a52db22ff4c748472b16e539da15582461598ae499153121171c1515885ee3edee037 SHA512 69c1c1d4a6e81dfcd6061654f9adb3fac3903f77d12cd0f071695f18de770e805c75148e8f8352ca6fa18615b04544246fc0105af71cac170aa5a7fb1d08917d
-DIST lyon_path-1.0.0.crate 35071 BLAKE2B 3e7bfbd2c6b057b86f7086a9f92a1680fc7e186a34615db1df29e9520f2170138f3dced000661c90e13759b0f0fc01e3e546817222b0d6d62b412588e3566acb SHA512 9e47c13bbd1d7da718aac5ede673170ccaf72a5ea0ff1c905da128664f85bef916883138b151b77ba8750de04d12da50a4ad0b13422ebdebcb123a7a3e9ce53d
-DIST lyon_tessellation-1.0.1.crate 181407 BLAKE2B 69bf536d8343a01ec454d367f5d1650c2bf09cb4436cef1fd95ba36a26379041ef5a847dc33e85330705697888abe522903d8f66ae04ddd46954512150ec03a1 SHA512 2028ad602d0eba544dbf6cdc2850d45507b934d3aab07ee5095f7914a4b089414e8ae43d207371306e1d278685d676006102aff29e7a15e2d9485f3b83a9caa2
-DIST lzma-rs-0.2.0.crate 26439 BLAKE2B 448c25d1348054efbb879d278a8c15e9a3d6848b02752895908a0165114af39e09468ae190a935f9f59247f09bd12db9e74eaa6ec86821f53f377623bab90742 SHA512 74a00d76da2322d7e72a3a9cf9900a5fe861292f9afa4a363b2a9c6820801d504f1ab0a0e618a95e0b5b9d4933c8b060c125e061307601c6f62cada561edf8f5
-DIST mach-0.3.2.crate 19611 BLAKE2B 683aba7d140a3697933835efe4e2e5a6a107f0a6122ce4533bd9079c0de4346dd1a817abeca4372a44a85406a424af9deff87496e79359df4c8d9ff89daab7e9 SHA512 73622b37915f3445a57cbac5eb378bfee61f5a2383c0dd8bd7c29b5e46447405ebaeb706f3a3274e5afe37b0506afaf1511836cb8897d9d480a3abd41f18fa26
+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.3.crate 28480 BLAKE2B b8588be0e7034e94c808490adb8ee6e81c29e962aec436a0d8f8c7617b3ba9177887ce59b95b2f0af00ab030bc77b73e0a889d8a77b84deb437245211a969c94 SHA512 af8fa5fe2428fa98177d6adfc01bcd6e701b0d77ac18c95b8b8d5abb3a6376f16241ccc71b9fe100782c73c843ca53c9bad465545d8bb7def52320dad0eecef9
+DIST libm-0.2.8.crate 113450 BLAKE2B fc4a55ecc0d4a558b9014b58861341887679c696af6b6539c7cdb70c033c63219b24f6f30cb8d9b335d15e3af42be6f3a6bd719e189667ca0c43ac818730b674 SHA512 753df71bb2c838abbac360db2e4400c2d931185ecff993da51a979870f2c3f7ac017380fadee4622102fb4b37ebcc1960b0cbd295afc9cd1cb3307524e1f39c5
+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.2.crate 27619 BLAKE2B 2a7bf5430933eb063015e7c8613a2cab3032c6386fe9cd3bec50b9a894b4220409d1d30fd140a5076dc2b18906338f758a7102ea1abc4987dbbea07a9bbfc772 SHA512 d1078c9481775e44ea1fe7587bb6925c3be792304e620b553c38a8c21083acd686b74a2933dd4155d6330499f496e0989afbdea5b277ecc9a41d057925485611
+DIST libudev-sys-0.1.4.crate 6177 BLAKE2B c513b5cd68fc60a7a33ba281e4fc4f9a5896946aeb1fe31abb8af22d279c39c3d781fd34109f98fd010fe8aa817b9d91726887f0ee8bf0f66a3bf313b01c9ff3 SHA512 185bd84a729a5dda6fb274584c7a731652418da9435d844870a9d09662918c9230287f4ad002273599d0a3e9709a36ae06d59a6686dfba978fb7cd1c51bbc2c7
+DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linkme-0.3.25.crate 13890 BLAKE2B af9e79f651a3f1d55f48ee2cde91b5c5746419c833d908dfe9fab00918612464e235b46406eb8647c98e56b76db65e12eeafb88895d0941e9f25a9ccc7b8ca3b SHA512 7e700c904cee012005399e73069ba75bf31c583f72c35b36c20e1dec3fc3f32fe3b87d6ee2cafe32ff1f6f8736476d60bc953227c95957162ac036dcfcd18406
+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.21.crate 43442 BLAKE2B 8429b3270794d3e2c7f7d5b58bd4fa1abb9d4807ab3a1ac980ac81c11d9544635003d8cf2e608c2c0094865459108a2879f280278e121df68d09bc1561d604ba SHA512 0becc1a06b6e7048cff6c0bb8df49a16ac4772133c00239e9e9459c0811e7715c500f440cf1a9aef8d7ad74f57434559ca9b55917f588b8e476cf36eb6d4e10b
+DIST loom-0.7.1.crate 73744 BLAKE2B e689335f9e247876650eb1d90cbf406be917ee0060d90855adddc302ec1d215f4303ae52ccaa5a7c6454e032c5fa96adb09dd50de4a737dd981630feb7fb8a2e SHA512 1546c2d1a0043274ca820afe69586cc390331cb4972bd6ee0e42143a59ebf41bf12fba6946d94234df9b7bce6cdf24d95c7e54198b619cae1c6edc446a51eda1
+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 matches-0.1.9.crate 2246 BLAKE2B de155202636c6a03ed68cdb21e8ef96e19b45be040a82943d2d7e5192c0ab5c253ab6d65f0b30b2689e21da79cba684af5be6e63c48266681aceba356f6eea41 SHA512 6a2809687d30ff04ea97bf9d1610d746e097699a4c3625ffd1b7b1e4a9673ece9d559058c9f760b99d6ab509024f7b338e7cfa6fe767499c983efa98bfb98305
-DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa
-DIST memmap2-0.3.1.crate 18393 BLAKE2B 2c851b907f2134ed2d164c9f7ab99d9dcc22ec1192236383b33cb87551c41705b4288411dbfa377b3ae2a5e47ac5f6f4ae64e0f4bc152983c219a388a5d13d35 SHA512 1cf08cd046581d882fa78cc1e6efbb2e5814dada9ee866811732dcde776fd8c0cde2f03167010f32bb4984533e787536ef1954a1152a70d7f0278d5adfa96b28
-DIST memoffset-0.6.5.crate 7686 BLAKE2B 9a797388702389076c426052c3d54dc62802d5db8bc5c9c83990429f2ffaec4fab4c7dd3f09cd0704d1ea555e87976563bb43408ba54b5e66ce7e406d4604009 SHA512 11bdd9185b99dfee8e659e051b09ee301c7142a372a8117864745a5085c015436d2efbb1478192886f09cbc562529e209d2e3325d94938a64bc75b1d91d2bf3f
-DIST metal-0.24.0.crate 684270 BLAKE2B f263f702038d60c69dd65d96ec91924e96d28acd9a42136bb502189691bc8ef0491e69b0081ff68afed3b8834d0c30770edafb1efab1e28861750fb43a0e6c86 SHA512 5f32e4c5e7c02163fab52bba8dd7cc0d93d0a19fe7bc1f8ead58f9c075ff25cd0902e308b0cce21a3bb43e152e518c8a1653aacf6cba2f6e313d0a35cc74eb4f
-DIST mime-0.3.16.crate 15206 BLAKE2B 9a599ca82fd0dd6d3d2dea68a47b8441b1024d016ee1fb23cc6431b39ead20c9b3fe1ff3397af79c2c1b2cd277c440d4fff69f6b28c550ddbe15f680923c834b SHA512 cb1d691610cb82720e553247336fc5eab63407ad37febf2eb50aaa4e329cca70959ecd8bb8c7af5753acec2c8e86fc9a0f8ad9ad2de93fe9295ce84033d6054c
+DIST matchers-0.1.0.crate 6948 BLAKE2B ec3a5d01d2fedbb4dbf5bb185afbb9401410463a61f51674e0df6a571db352b2bbabfb99cdbdcfb4e511ae783165bf0258f5163f240a229b9087f9edbd0df41a SHA512 84214c1a84952d85631aa1ab5115df7cda223ac64e2acf055b6129ba1aa26ddc87615a8b51ca890ce3fee0419053fa7fe1599ae128f1d211b58c07b0c4af3b19
+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.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 minimp3-0.5.1.crate 8606 BLAKE2B 006005e9133a4665a7ea376d3b4ee8ed23384d14e10fe28650e9010ba99a4f6330023b1fe7561bb10a920647722210fa35e87364f573434064792a94cb1660bd SHA512 59911c449a3ca0d20b6e56bf36dae3ab2871dbf5b31be683e9c7c364e2d7b86c99a434acbff247e0956cb5a98b4af96fd5a290f605d9fb8b4e28f32e0ca72fe5
-DIST minimp3-sys-0.3.2.crate 57182 BLAKE2B d84cf4833e7c37213450fd152d3e06916964ca843a006e867bccc91b7bd4534645c560633683b401de39407dcfb9449449ac156336031475c9b7b4a3c06d22b3 SHA512 7e8443b6b6b51d3a3696092ce4512f020be8922aad55e8de44e5d3469cce9949843b24210c741091dd89d909c31d8bfb59e3ac385abaca9e3ef60b07a0cce856
-DIST miniz_oxide-0.5.3.crate 53452 BLAKE2B ae99baa01c493b5eb779595be0d77a064c4624397676d3a023cc2a54941b0b3e7c80492ac47c8a28d78ec36e2f04aebe5af79f0e714380061c5e0139b9dfd9fb SHA512 cc2971ee2a2e891cdb05c1942f533b11a557199421910266ec2e4848a16dfe6882f1c08843035443935d695882720402356b4df4a50ed131a8f5fcc0591a72c5
-DIST mio-0.8.4.crate 93013 BLAKE2B bc9722d2211195dcfaf574d83b2967d299eb02ff40b4fb4df2eb6b08d78e018ae1a9e198f43268ab2d38733feaa8298e9736dec9fb9add66c401d57406fd1292 SHA512 b44675c90daa37336a25e7eef53cdc664e6f52590ed4955bac82641baf8099d3d94850da79d985255eb74b61a499b1ea4a9d7309f6ea4c41454b3dbb090b70ee
-DIST naga-0.9.0.crate 439699 BLAKE2B 2582a588f165aa89048908f269bbf331b651abf194157aa21699a2d07fad4b9c12ea8eab71566272a4250cc48205afb287f4114e8ef837fa174956f89b46962e SHA512 e4323f8d2ee2034ff24a0772d45affd17ddaca5134ae1c54b857621d734c0dc8984bb533bf40352ab1fe20a3f5cc031493eb50f977a3a1cbfb4a78c562b4c17d
-DIST nanorand-0.7.0.crate 18437 BLAKE2B f4aaf18b7cf32b385d97842cee234f0781bc2e55ca5662031204b999293d417e0ab2726eacff084dc6681ea5e46ce01335a1a5cfaa5e8bc6e602aacb1fd25252 SHA512 3ac650451d629852236eeb45dfee808acbea616036025676b47310100982d7e8317df647fe8649e7753dd0f57c501dcb3f7401c3d804af52ff2a2f50ace8cc69
-DIST ndk-0.5.0.crate 39766 BLAKE2B 787a2c053e81732c2e57bf3cc944978c9168c116689a812056597ffc203b13da6ee7677bc788d924b3cda8dbaf35e8ff7cf6e4f53c53138ad78758982fd12081 SHA512 4d61aeed68f6b309c92801bfd844abf0ca15ce1c54adeeb28792010cdf1c71ef3d9f4df36c9460eb614c8568647695dc70c4d5feac55babe1c309b65db023946
-DIST ndk-0.6.0.crate 39828 BLAKE2B cf59da1e11fed905b245520c7fb00012c194379aad9a8d75e39e771e3df629824c17bc04121b4899bd7f13e9546cde3877593f0b4f3e66d6876f9ee6625285fb SHA512 62af40a702784a35bd3517131aa5c5fe22da81091e45a8c8639fa8f1f8b3fed117991db9518dcf55878cbd6222f696d09e0bfb28e161aa47d77b2825ad2e1fbb
-DIST ndk-0.7.0.crate 54683 BLAKE2B 6b8429c4201d3efbf3665025d4126b3fc533884b211901fd167f502f29b76401175123abaaa948b2172b8b6d272174af24def92c8e176e442170867b9171b4ca SHA512 9c32cdd44f5e9d57e2c19dab764db1d4d8ec63bf08021e6f4dea4e5eede85b8bf54002016ca9385f9f6caee47d969780f653f360d866e862f760843798cbd58d
+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.2.crate 537942 BLAKE2B 0368d7de05f3ba696b1581792ffe8a420e632e287930a53ae2df5de4735783de83e20758eb6f95c1b8d33bd5452f619fb9ce7c6c9d9a2b7d2aab06787372c182 SHA512 521926b6704a6dba2d1dfbf083641bb71e575474a4c44aa5be10285f0be4467c36e68f5b2f4542a2073b7f59ba6d901249d9957ad10d0414c0015a5e1005049b
+DIST naga_oil-0.13.0.crate 102295 BLAKE2B 640d0b6d3ab92a6c98174bd9d40abf0fcf847abc8ab35eb8d826b2a89ce9df78c49a5ec9cb523b7ee7beca8cb56a83c508231ac8a1f7509e19aaca8fbea8a925 SHA512 1a09e456fb502dfc63dad209d308440d00b68c9d7facb8d298bddc47e7f7cef4c9a5952b4711e9fc24d755d6279f741ca2c77cea524af1bd8b1ebdf01eaca0d1
+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-glue-0.5.2.crate 5310 BLAKE2B b9d8303d2c5bc439e11a454075dac5b9d017d8dea50f371719e637eff06515d463ba0dc844ef3f8aee178bc7a281bf50ffdcf74463169c4ea0dd1b2da715fe53 SHA512 e58017c98f238d8b49f5a4f10be8e88e716191fc0d70bb07e48c3a2f75caf3ddb533c011c8b9198bb38616c9e71970f1b8e0c232945b1968d2a297da7980081b
-DIST ndk-glue-0.6.2.crate 5227 BLAKE2B e1b10ef9a622d8a1fbedebc5bb81e7359fe099712e1f30e4253cab71e5cbcfc35d8b1afffa4e114cb3f17b95e1037f67b7853d1834fb90d8ddd51d4aeccfce91 SHA512 0e7e82eae7104ef8c4279c5d93938d4d6270a133255429ed3b4fa307096d363f4831569f45c403d32c1564d6daced04212ad65a45fcb4ca513fefb93728c8082
-DIST ndk-macro-0.3.0.crate 4884 BLAKE2B 97f7cab83e5fcf16bd5d852327107f0f7964f5c3f7674b7764cb369ffc2554c4c550a2be57eb7253b9da26f7921c49735333497bb74a09672655ed8f76e2fbf9 SHA512 240f8b7ec5b72a450874dd6b9eefb2825714e4aa83074efe13a958313193d491e6b4547ce62d2f727afc552d9d8c009c9489a808da54d5967fb29da7eac22d3f
-DIST ndk-sys-0.2.2.crate 279365 BLAKE2B 5f1accc47aaff0eafbb4a85cb89cada8af5a75659061d41a5a5f85d0177233788b23a2794478b9a71caca0f120d472d5e931f6de94feb4cac104820a4e0fdada SHA512 a4b1280543a81996cdc23a8d2e0c519a1b0787acaaa1b9180eaa52e4ac4c751929cd403f1540ad3b7c80c550d84d5be08827e4b63c8af0eba36d3441b58efd75
-DIST ndk-sys-0.3.0.crate 282815 BLAKE2B 29342ed697feb1a02cda4ed23108c090206fe67715214de0f03dc81b7b787a40302917af7fb8f45e4510d1d1cd43d369d938af4c14f7424fb229bf97a24cbdfe SHA512 9d85898d812be7c61c7bbf4ef7a6088fa427f4ba334d491a17e5d1e8cf0ef9e37fa277008dbb940d1127c385749ca2b4665521e677388f6b01a2243fce310485
-DIST ndk-sys-0.4.0.crate 291557 BLAKE2B 349158b965701cc504c3a4d95dcc5f2d62a25b79996a0387a27e3445f2d36760a2df0cdb24932fb67406687f4c694fe4fefc3cfde47e462c223f8dd8a3899e38 SHA512 b48b76eea3e485fe4d33b7299a086b50c277a5a92c16284175129afb4f4c62e3027cd0d3db59d2326eda905285211a1a68d5838f8aa584d5a95570625bef0b3d
-DIST nellymoser-4a33521c29a918950df8ae9fe07e527ac65553f5.tar.gz 5970 BLAKE2B 70d67cfaea7fb849741fce315494644f094be7dfb653171126122aa00e80cad4ee0107dbb3b0953a046b20177242dc3f73c1253224f2fe60aa39252d9542b303 SHA512 c9c0e2ced1d725dce18ff6202262997e3290c8141dc67a6422e2fc8a0238992c48acb187bb9f12c5eb694fa074d5d89c7ebf3d953c02153115bec57016c7bd7b
-DIST nihav-vp6-9416fcc9fc8aab8f4681aa9093b42922214abbd3.tar.gz 37411 BLAKE2B 96ab391a6e9f7031506089d8e3d18bbb699c21a7d1b8e3f5ee2fa38463c8b922add2ca5e576b75a582251ecd35cc95db4a8b73654ca947bbff19e64bfd754e97 SHA512 45d8066743dad45b90d7e320d71f1328753c8a7bc1b8dc3a93a11be885a8ee6dc0702f32dc438877f3fc50011f8532da3bf70625475a691298571f33d1afaaa5
-DIST nix-0.22.3.crate 230252 BLAKE2B a65e42918c99f903a3f0b1cb64b7e4ded5ddf22aa4d4b7976938f166ab457fd5c0abd821060f7df777ca770254cc3018234a15ac4c00c6240cceb9ebb8c00430 SHA512 ee0c9c57f57ce7e723b32575e41ccce973af9fb290e314c7a1ed57c4c08dafc8500c81da34788a1c11e921e765098e074587c31498b5c0133b19530ce4a9cd28
-DIST nix-0.23.1.crate 240531 BLAKE2B 8e03f4edbad39a467c1557083cfbbd6eff4b78d5ec4e0f1ba06eb043f853352f5154f115ce75556e0d672f0499a9d4c03650bc5a1f57ba1b920cd1595cc50ea9 SHA512 23431030b094ebb027200d8cdc05d0ac1730fbb86ee088795a2314f1ba19b76ed5f24373c1aba8125575bf69f8e7d4d9c08344b9cb49a4ae3d8f7987b5f4e6b6
-DIST nom-6.1.2.crate 147539 BLAKE2B fbee4797e91662a8c255ff80598fd50f62fbdacb3b734ef6a54ea115e6411ca73002c2766deb88ac8ccb698c481763594472204871e7096613137582afc9740e SHA512 f9a12a6c523c1c3202f3c45a514d02c40c600c835b83a1f94fd8e51ab462fdb89de3b32ad11630813d8e3cf4c8bc76acc620781568dbf2eb12469dcd9d3d0b19
-DIST nom-7.1.1.crate 115818 BLAKE2B 1ec3df3d9a7527f26618a9b6b976ca8ad5176d711dc7e6163dafb1ec214a55345e952439b4c98b2ac371c9a67c7ffdc3213d1081b62b699b36af68207fa8b320 SHA512 1456efdbda4f5b3da6c8580721acf101ed7d779619ee0190c1df103244e405a8ffa0c3889901a2d8beeab0ab84074ed4c7cec5330c7cc2a5a3c30e36a2530be8
-DIST num-complex-0.4.2.crate 29341 BLAKE2B 8fbf8f22b0a59c794b7657693dbdad7384a56c2b74e9d54992f15bdb19231ebca08f16a282f0a97280cd94d3ff728bd3358a50f8c22bbe0a3f51c7c2b499c851 SHA512 b073ac863d4a389468ed4e0a3d71c453c25dcb535a9e98e38d236b60ab0950ab5be512b1f427f5f74a20b6bc24398f864d9a1e0ab717a84a01b7b89ac3517048
-DIST num-derive-0.3.3.crate 14545 BLAKE2B 3af73d35ced61f8e4fa2f2bef695f72a3cf1f1a67c77982d3518d9383331f34c1222dd7d72802cec22baa108ae08a87805a11942132c565ab8439c4983e99871 SHA512 e0f4d06fff26c2d2b140ff5ec1ba655a46c8d8fda484f03a8ad4910e8cf1392f0130d5c0bfbbe3bfb95da1f93e964f73364de6551fddd81e6fc27bfa35c15053
-DIST num-integer-0.1.45.crate 22529 BLAKE2B 4da3e801f71ba8f92c692497e200bfc8d32183c94eaad91260683b09f4697c03175fec7cff5a9ff3782d5db5d514d74f22f7a61a102c0f0d2e67a7a4b4f29222 SHA512 731bdc09c3af7f9d8b171041f2957aa60facef93b06886000d8ba60d410aabbbee358d700bf31b2588b2e077464f290f24a0b712df7bb7f12972675b6c9bd735
-DIST num-rational-0.4.1.crate 27889 BLAKE2B c6db5b2165eb341268cc8b81df44caf25a18242d0ff1cc0959444ed9a51ba9985c1238d6d79433c3927267ceb181da6d491bf282560db6bafd7768b79ec65842 SHA512 a7547ca663543e9da9e18dd079762cde371b85d55874a54d6b343ba775a9373392c85cebad511c53b5af5db298bd5d57ccef6161c1c28587a6c9fa2c5962a0bd
-DIST num-traits-0.2.15.crate 49262 BLAKE2B 942ab170b2acce1cb40e6847f766bf810a79edd293d34f3a27864f464c16fe2b99fb13171ba429cc6d584248de879434beaadf1b231a4001b0e8389ed6c1be04 SHA512 5228498af0f15daeac3c9210f3e6e71cfaaeb30beea81dd37f8eb06b9592c8bf3226a47597cd8592ad4c513964a9a40f1ab2c33102ef3dfe3800d22c8d4528e8
-DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459353a9316ffaa0245ce499df4424e39c25a81be59cd0f9a19c3214c78bdc7a84b632059282be476d8f918c44d6 SHA512 91ffe0ec792228621d6c2d5cc544ef4744203d19fc9c86e0aad2610038c43aca0448b6c27d82979417a0f6c939ea73523303a44c28df0d1c1b8d09814d5306d9
-DIST num_enum-0.5.7.crate 15199 BLAKE2B 8ff2688036ecab51fbfd74c1ff9b6ad22b229aa4dd0f9a57547252862bd149659e307042c07f473f99a8f15c744a6e6a484d57ca3b31eec785227632521966e0 SHA512 14749c9fb3cb30366e4915b2afd00b1f005de753ac3458982ef53285efa718c8059bf4804f4db170f43c1978c222aa706f30757c191f8613b8165a54a7c5f4ce
-DIST num_enum_derive-0.5.7.crate 12225 BLAKE2B 44ddaa0a4c3e9e49a4c476ee8b9db92a4ba6047628fce0758811aec2dc594a0902e4b168ff5c34aae48c3b1ef647bf1c3d84ce548d1826c7ea6877e6a4575159 SHA512 716d9b58d192230ec633207af741cd198772c6f0880a27255bf1b7d48e51f14ee987af14580982b0d22fe0e876167d9850b077f1b50557f47c6ff81b64542b15
+DIST ndk-sys-0.5.0+25.2.9519653.crate 307233 BLAKE2B 884f73ab15acf81b238d0ef06b66942949222506ff0f6deeb009348ac8870b0a8e74b4015ceceb2bf0611609ec4acd0923c2724b1240f314d0b56a42213e0b44 SHA512 380a6c0124df4bc2a835465506c1837ced58f1174ddfd89891c1784ea27508023543dfd229a5440ec1e593461e0e96b07557da72eff4b90032deb8cdf9db9be5
+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.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.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.7.2.crate 18571 BLAKE2B d68d127db218d8c4a34849cbf64a8dae823e9404bb4231504ecbe02236d04d96ac161c3dc6e400a05fb458e42bb24418ff08f937335d37839b0f9174e3a5725f SHA512 a002a35079c81eb39945b3b2a903c1d904924c8417e12f54b9825ccc04a2f1ea1b1b93ec540c746926536851c2f6a9aa71be3c05a29afbd5924236b3e7874389
+DIST num_enum_derive-0.7.2.crate 17090 BLAKE2B 708f474f6be67cf1f3a63d989b6e84ff33a165f0fce98a2d82d99eee71970f2bcc2c9b58395049d0b6e7e089446a9155ae6b7d6621895326c48049416b5817f9 SHA512 f3d825aad4a04bddaa42d07ef4dbc69c793cc53999cc2b32ef49fb28499cd812896e0c5b89b9118d9def495de0caa05e473109a0937876da4c1a628964a8ba6b
+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 oboe-0.4.6.crate 24067 BLAKE2B a3e1c3ba6534fdc2159ead7a301c6b54718b19ce2e3357ce3bcb58b31c1ee3b86b427f4470564b2e8a3e8b0120b33c25ac069bca922dfdd0a1478ece5b398f40 SHA512 bfd792bb8cf2254030e2750b09a87da70defc4fc65882d94ca70469b175e04175787bd89707cd4dee876dba127b8f3b8ad9c5eee32ef5ff0cad49b046b29a793
-DIST oboe-sys-0.4.5.crate 140656 BLAKE2B 26fdb4ea66dbf2f74ccf38beb280262715642ef22b87076d16f0b8e7f7b8d284714d8c7207567e51cbc421d22224b664f0b1051a0eed3c78c16d825ccc8a1d1e SHA512 b8e31b5cfcba10d43b9e373793427341175b7e84f8805fd18a8be387bae407801a0f196d0910103175c23e41b193c4eded2a4597b958128c29e401a27d9b4474
-DIST once_cell-1.13.0.crate 31726 BLAKE2B 76519b97e04fbfd555c2ae034bd8a95525bbfdecffb7a3fc0fa7081a721b8243faa1269bd409d01a16a62186bddcba341ba13c167e8165b7b011f57aa393c715 SHA512 20a72f8741e6edc2b7f54eee822fdbea1b1c0120d3621059f61eca2d5adbcf044a474b5142871d37a3c0f90495224ec8fbb3b90e62660b66fde3a4d3a5add303
-DIST once_cell-1.14.0.crate 31614 BLAKE2B b9ac8f889c86d4160ee026fca20b5135aa7bd60e8bfaf23946d003bcf0b666929a4da5859d874449d15b6ba0ec4c26e98273d020be50184b9d44ae90b8608175 SHA512 81531f06f32854e1794555e10ccd6ee2b6913bfefdd9eed52dd44a02e799fa6371cdf102cc67bc70d581a0cc4abb7dd16c9c12ede6df4ff38b20dc5908bad186
-DIST openssl-probe-0.1.5.crate 7227 BLAKE2B d1fd6a9498b3ab7f25b228f19043067604bf20790530fd0ab6fe3d4d3bc27f13e6e94d1e7ef49314c3663477d8916b8790b90427f74976143b54b95350895165 SHA512 7e560314150709a34520472698060c4f29689d4e608dc4dde146140aa690350d3603279c693367deeb0f21ab34ef61956143a3447827a2b7a3d578b9ccd6552c
-DIST openssl-sys-0.9.75.crate 60028 BLAKE2B 1e4b3733d3309a1157c16a236728aeaf48b1b0ea448643416747343fbb96af86c8035ae0cf4170038b4521c88842f42a2379fd733f92fc9742e7c2d837eccecc SHA512 14985af6224bf1b6aae0fbd22c09e6b8ce7b9a6ace0970b1b45fc0e8c700e6a4bcb6b1883e3c78dbeafa02a18d4a84f537a952460d3f0baac3135d1f994af13a
-DIST os_str_bytes-6.2.0.crate 21037 BLAKE2B 0ba546e68579a9221a84a66a6be0ddb5a27d78b70ca307bd514648e2a39a60265f85082f47c07ad64801c865ef613cce5f3b65e828bd594ac45fc6b00e0828d3 SHA512 aecfd7ad0433ffe532d72c6c269eefb7e7097cc1acdfe91511ecdaa7ad4db5d97026268bd216c70bf4fe17f23bc02b1fbbe95a28b8fedda3f812b3ce78723c75
-DIST ouroboros-0.15.4.crate 11179 BLAKE2B cdfb5a915809b4a68802e5d340d4eb47c0354ab64c350c222841b8a19a405e4b06addb376bebf86334d45bdff8a7b2c810c368d8c89c6ba6e0cea3d55b10a1ae SHA512 54569ce6e3800735993a886a1bb2d24b52db5dff16fa3409c7238047c5f012fe977f040ae3d6e9e2226ef468ad6da61418c21bb1cea7484ef57425c9f5c8361e
-DIST ouroboros_macro-0.15.4.crate 20732 BLAKE2B 1bf9c02d72e1e558d3bad2505e5ecc401068ea12d177983b151c8d30de9fbf5a9d3f5229a845c2a1d68c501d60acd234e25b6b2d649ee049e13ecc7cfa6ebf1d SHA512 0eb485ace3643b20c4017b53dc33523fa38a1a43b7d19ff8eea2ad3cc9d46584d7fee2536531aeaf2d60c48155241415eba6aec627c15bd3b50d73cbd39ac765
-DIST output_vt100-0.1.3.crate 4473 BLAKE2B 8c75dbcd413e1273ddf077f3b57996953d70376be6e438ee1a4de83a8c3c535d4cc866849aed91df74aa9b22d41d428b1142cefe035dab7404ec89af9efaa832 SHA512 ccca3b4c582e860b0643dea78302fbcb96f8f86b356041ae9c685e7c48f1721fd3366dd1bea39afc1bcef03b298d0f6c87918a1ba92a56e6b06bc8b4123c0d89
-DIST pango-sys-0.15.10.crate 24729 BLAKE2B fde83347113361c5bd5e0b6be729036cbdc396a87bdecc40f7b29f8c7a9c4b14a32edc09bc6f051ffbd0eaa5acc3b3bd4cc374442808ac8107c5fcb8e35171c8 SHA512 9fe2cd809e19640e034416c489d674622447701df4c7d6127ffc04556760c6425d78a9d5dc9e09d477aead1c97fe1cdd81de282a3820536a3defff572a64b047
-DIST parking-2.0.0.crate 9714 BLAKE2B e3ecd48e90289fe173b1419ad3f68350dd05359461c5842e52304e20fef9b5e089803e0c0a8e85b249a546f61cf8624367e6ec164ef7638850b451d325851075 SHA512 21c5723dc0281ade1c2cd6a1c2215ba70eb47a721a4a594ef1e54061bc79579ffe9c31f06e534fd847f936ed265cd65a59dfa9e38880f8bd42c6e8ac70a13f93
-DIST parking_lot-0.11.2.crate 39869 BLAKE2B 67c555e87b68f5763a7790563fd8d542e126bcb77f91267f3b76c51fd73060a2c32dcb91f9d0db7ea772e555d91576c8d7ff48053a9c35fbd3b749d2459a660c SHA512 526b176363dffa59501c18324bb723a3846ef5b0ff9bf1d890e40ad10e7023284f7c8012eda87520eaa94515ee828d9ef52692a9ed590a55e176383d6d472f9e
+DIST object-0.32.2.crate 286994 BLAKE2B b9085200fe0107ab0f8ddd5c5ac82bc681dc6266c6503e4a803ae4dbdec775ae84ca4a736754b770d858ebb058342af45d485d4c9a41f57966ca1466de40a4c5 SHA512 5d03d998f06dc592c3be141f7163bd72a0e73396f95d22ef1e0ffbfc66489bf727a6f6fb813a32739609b619b8e34a471974b2231dcfa23df8bff52007c25a96
+DIST oboe-0.6.1.crate 24588 BLAKE2B caaac8795247ee9c14f02e4c572605f590930686487d7f5f3195b4f1adaa837a024d8fe2043f90b97af7832f9b8624750dbe7def8111536a2cf1f154ac6b43ae SHA512 62b7573b685ff2e64d28337c3c08c556dc6355a11ad31cfb2bf3423ef1eb6a73ff38201dd5c116580b0a540b3f76dbd4a5347758ff40accc1bbd50a893cfdbf7
+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 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.8.2.crate 26400 BLAKE2B d685f62f4273a75a5820d5445892fa5878cfcf3763730c2eecdf15fee12331884d04906b7c105f437299ee01f2999f77b6a4034e94f781bf694cbad8aab82b10 SHA512 4454fb13dbec94aea5849427742856619abe77b2209dfd0a60a8f446ce5f843b423831632786eb850d0493e023977fae705d0fabff90798774d1c32366984916
+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 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.8.5.crate 32466 BLAKE2B 44d9cb65444ea93fded7e216e3bdbe2256ba1611f5cb6f80d67a01e71d428b81e6c7fc73cb928e2125f34bac0abf4d1da39f622e813dff89b01fed7632308b7e SHA512 c4315df551748d1ae77655e4d9f8c90f911498856e5358009e9e02e410bb8085f006f369188b0753a298371ebd74a5c383d848b65e31b55f3462381308c83a00
-DIST parking_lot_core-0.9.3.crate 32256 BLAKE2B 79a1924a983b948a5c2b0c074452a7b2b61abda973d3bc8040d9153d34b378f0ee330e36aa813f49544319c479665d6328be71481f2e1e41bc94abb9bfbd12a0 SHA512 fa30db0fc73b268ab8395adb8bda35d12dc15363b247a95b7c4bb848ff9b8dbfb971a20f320b4feff3317d5b533c59b62152e4c652c1809a422c5671310b30df
+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 peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721
-DIST percent-encoding-2.1.0.crate 9748 BLAKE2B f3ff35ac683724b15e40c85e0fb8ececb07b61beeea82b7020f02d27df05a8a3535f157b3cd688533e414d6541de7de8640ef4756706d8061af0fec94ba04ab3 SHA512 98af4dfa7c6a3cf0d5aa929c436f9eb1ba1b576a944513f1284e6df2ad06be7cab9eba145d888d50af88f8c970bacc702b323041bec6d4fa1dc34095186c628a
-DIST percent-encoding-2.2.0.crate 10075 BLAKE2B 397e59acc3953868c709244b89a2e0db3304c0b574ecba761026b570a485f2cb5b0b2a0159586d1f342ec395ef02ace536da3bc1c72093e1cf93f8b37b26b0ec SHA512 890a5256d2b4290e12e04a02c3529f3a017faa2b6016a4dd0f08b36509f0b1107eacfcb4702024d6a21ff8852a11f263c1adc096b16ef8d12c45a734c087fe68
-DIST pin-project-1.0.11.crate 56669 BLAKE2B a475937bc4c0fc8183ddd8e33d36cf100e29410234b410245faff6d182d5c4ed661564e2f4b6ae43330ddf7da176ddd903155c53c53112132e64c66458a0f73d SHA512 6ca211f678debd8ec4784fbf45c56ebb7374df1de519c40685ba6a5965b25b5e84e6fffcd770294bfb1e372cd66ee9ec2137ff5a2f572fa7aecd4c98b78afe37
-DIST pin-project-internal-1.0.11.crate 27900 BLAKE2B 7e61c586185a6bb668968eb47cb312d725ddee7a482b633d04827658a86fe27e49927b8b850ff6877b406a4de3fe046e2dd699acc0eb97d57c62daa4808d147e SHA512 c95cfdd3b67b5c61e4136dc495dc470e09fcc7fea3ef2299fef1a55984c6039d2fd1e03c83523c7681d6bb964702054978c649016194145721058270de2fce76
-DIST pin-project-lite-0.2.9.crate 27713 BLAKE2B d6985b5add432fb6287d1b0c9fb0cc91a195f82c5a748a9ea430e4ba884717ec7b16d730b5ea62de5b2bfead1771da2d115b3776e12e605f70f2538f374a28fa SHA512 cef0b77233adca712db1183f780732ea577cf1b27c2643de221d54c837c75ce749f907e24a967be7474812c7682cba613a3fc5d553a9578a1b80569da0e562e4
+DIST pbkdf2-0.11.0.crate 13229 BLAKE2B 33a9fb386ab9550cf5b8b54a48b8ad4582c95c1de7b15e767caf7b08d5996677f0926b57c556e43e90daa099fadfd1f5bcddec3bf4a48a82e7c71228b5398dda SHA512 f900766e8e84d865670977bbe5816b74036f0c2b3a30df4c8ed73680f76f0ae111472af7aed96524cdf7e1092609c2008c5f40efb9a9c65b3a796b7f3415c087
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST pin-project-1.1.5.crate 54214 BLAKE2B f4adef2c4f5587ab0523e92b7a662c035882237620fc87aa3919bfd360745b587ab84cce3cd0db24f4f15bd358a46af1cfd196c2071836f4d300be998b6bbcf7 SHA512 103e58f1779cd2d6c63053e9448d0f53edc7f08f29540fe0de2dded1dd0b7de50cd62d31ecaf6cf30b1a7f1f5e4728beb2cab3e40dacf8ad5d5a7a6254527578
+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 pkg-config-0.3.25.crate 16838 BLAKE2B b6ebbcacdc0f440e24ce5730edd4b371387cf7f44e438216893f29c0f303ac7920791630d4a9bf13581da840c8888e18bdd78dc61458d3331e967b3dfa6d0597 SHA512 46658794f0a7446354041c1cc08cf637970f7651c0c506e2b90c9d4e284347cb82f05ce282cc55c8087bed58a5b961424a56574f4500de9f3ba9cb9e71667aa8
-DIST png-0.17.5.crate 80450 BLAKE2B 0e686524f3d1158bbaca8828b50601c62ef601ac0541df08827ee2285b3cd636592f08efc37cb67808368c6fbb4511439ea54c96598c2e56162a8f4841e78cff SHA512 43df7662a4e31e2b734b913439e32748da149680976286ea54c7bc2aecfd8550b35956266224e6ffc410b22c40ee2ee166219602e07c3e9c3500737e5bbef7ec
-DIST png-0.17.6.crate 80695 BLAKE2B 2fd956ff04d32a386aec4210939cb9cec5dfca4b72c98dfe49aefa130a229414e6e1692ed55fe9704dd56ef11851b61c3fe0fc50a9207192407432c1332c3f15 SHA512 16a3c657efb1a23b47b2bd51f635ef35338c3b9920b604f216dd6d0ac3a8b21e12e854591739bded2947036f4fc1abde0604d9a8ae5a6639562a46e98d29ee9e
-DIST polling-2.2.0.crate 21616 BLAKE2B b431e4d31a677ee3d0d36710b27fe98b5df11bd37ac1dfdc464b8a0864dee56985125be388afe9f4c5f8e8c556f668578b2566a6de85f0797d6ecce285d42953 SHA512 6592682d6abf61341e18e5b7e6aedccc31de36016c323ee4e01ca4247d5a40be14f9f60e0602f828ce6ed55e29daa3e601e62a1d472a7ab3a75d760fb1fbd99b
-DIST ppv-lite86-0.2.16.crate 22245 BLAKE2B 03cba61af42dc3a78ab8f6b03d833c028b7ed737e101b1952467a1e19706bdce6c758eca4ec7d575b2f61daa47cb25fa1d74039b2adb0dbf949b66b7aff3f10a SHA512 264b916f7d1bb6f1c0c0d3cc45f40b72b638abc7174416b49241c3663fe500409509ef6c8241a24515a21a20288c2ba508035b6b37972e4ae7ad02ad19118b74
-DIST pretty_assertions-1.2.1.crate 79474 BLAKE2B fbdc7c7ddc40aedaaa845f9096d52eeadd9772f64fda71eb2a2ecfd40745ae6a7ed8baa2a83c909f2a01bfaad31c00aa7c24af6d449022486dac204a3671dd55 SHA512 6e6cb21bf03f34effe3c38ab9b31d768c7a7c02dfb385efb5c1dade7547a367276c5b00c4eae11aa85d90b6f2dbe5033acdf109200196e225e335e73bf5e0ad4
-DIST pretty_assertions-1.3.0.crate 79441 BLAKE2B e9d29267ee77532de9432f075daab704e8d80a3d5fd5515a7d3c1c9a58dd98ef0190a592e7fe4d8c22a149beec15fc346a68620a3835c1269f72e563d2a5fb89 SHA512 40a56ae7287552cb66e1066cfb89b26af621f894036b9a0cd49889ec5b25831d52cc07f9e117d905766701fa71786a45955186849d36e00cbdb5f884763efcd3
-DIST primal-check-0.3.1.crate 4602 BLAKE2B c31f79f2fe691b96a2c23abcd2594d694cd0732a5d8b309c422f9d2fb688a16050d92a8a64bd1a31f83ecab6b1f2ae4cd48b8f9f0d9300d736e678cbb664ea97 SHA512 00e6d9a8d8b9e93570edb4f6bbd9dd6db4c7637006650b7a98419723682f0cd2cc9401c056e004e628e4564f4e74e5cf0ac0415f51ba649ed4a4f405ecece59e
-DIST proc-macro-crate-1.1.3.crate 8758 BLAKE2B 6069127f50c5ee4ae53d95645ced75c2dbb0facdf3de505755b58ddb485bb7b19ae471491d441401461225b38cda5820c4edef0f491b95d918c04e019d78e900 SHA512 b9553235c48ec2370481df90b568ba4c85e8a9a8d8d178f94bc67e87c447b4ee70db03f7c8ca1ea0678d56197e947598a5cc3c2a8753b068aaa1a27e0a4f9bca
-DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db
-DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495
-DIST proc-macro2-1.0.43.crate 41512 BLAKE2B da0577094cb0b8b419f3160bab6342f97865b01337be4cd7a344d4dea98fc2f8905dd05a56427792379f59565a25f8e16cfe4a37edb3bf77bf2e703f27953fdb SHA512 3139c668dbf593afeb77b970c77edc70f7b46b42d80f1d0e30773dedb14ab98c9eeca0dc953bc940610954860fbce663174ea6c270b8711db45aef4d57f3b910
-DIST profiling-1.0.6.crate 1689290 BLAKE2B c110c719a7d259031ce5f3da8916909c204a5f99e57f94b8f268abd5d5bc91bc7eab052252ad1472b89b62061ae44054dab302b95cc9972e90f9c4a464a5af4f SHA512 dcc62f980a8c1123cab68ecba2a7193ea146a413c5b918674286cb84c48d4784f4ac54ec86392d1fff3d0a32ddb6af8f877b7c23df4930504c74a24161f3c1a9
-DIST quick-xml-8496365ec1412eb5ba5de350937b6bce352fa0ba.tar.gz 133091 BLAKE2B a6e703f72432fc29bce310307c933698e566ba93ae10048fcdac95abb93ef217002bed452dfcaa64a7ec86396f9eacb4e8650252618abfed0fcb0f11313d5ba7 SHA512 74b4f12120abfc29322faa185ac83f0a7a0cad7b9488978e1f9fcebc3930b0e2dec97dab8b87f9ccef1066908677f20b4a32978edc4bb9c39b3dcd7a92892436
-DIST quote-1.0.21.crate 28030 BLAKE2B 547344ba9272874f5fbb4bd27a69ef5be99823e10e1318afe71971b18f37e9c73d54168f16efb82c53a332e4874c80a82ea951fb2c85fad50cdfe783622b79fc SHA512 0728eb4df7e1f7c4d32ab08c901c2c969db8eb46b03bcec3e4956a4f6b360939d32abc6b6ebd7a31058e8e9b69c3d995a24cb484f93656f05b4ee963be1c74fc
-DIST radium-0.5.3.crate 7588 BLAKE2B ce39c4472bfa731745a0b78179e00b83116d729326d7a25dc629278949095ecc24a1eb13d4d39981e95536cad3f3fe2ac77ef9da27b8d462ed720bfc7624fbc5 SHA512 f4af86cddec991b11d86b1d976e212bb19da8d7e5ae1d40ee812391c21d3fc855bdb2770395baf7efcfdb5b2029a99c9038702a28f8c9e925e1b23f03c0e717a
+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.13.crate 103176 BLAKE2B 99bfd1c444f5967b715b81607e3c3266fb3b1d8110897e4c93afb5b6e0e28df262f9c9d842aefed922c38a5ff9d16e75cca065d7cc14ddadb3a7e9ea4776e787 SHA512 064a932f4c48c2243286a9b4cdec0487cc976291bc8ecf4753691afdfe43acda4b17ea8d48ec933f309d158df28f40ee93b5b32b3ab5252e2e7aa1ee1c0e4e84
+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.17.crate 57713 BLAKE2B 22cd81941d7ac701ec90b0d24946c4f6c12ae48e90500c58a95e8b04e1b3515872110ffdb9af18c322d0465fdeb4e75c4e57ba987b6e7d904115edc91b6f9e88 SHA512 8d67996d928b7ff6415f067d7bd20c5230f459f4e7f6e2a852427b19b91567e5c2c5bba33c1e51de8bef550a6430ac548156dc0fb5a2550715580b50334ad565
+DIST primal-check-0.3.3.crate 8720 BLAKE2B 9c7b5273a5df414c57b4104b9bf795b853b433da3a5d91a1b878ef9b7cdb6a810572dfb8fae11543a106760e449b886f6e10a12347f043171f5d7947b30f2b20 SHA512 d56fcee65802b1ca272515589574786dfd066099c55a536cb1076193242859074918651c4fa3c1a7dab4fd13ba91c8f6a2a5b0789a6cd24faffc092edf27d75e
+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.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 quick-xml-0.31.0.crate 172236 BLAKE2B b83c7f485a30576027a4ae77aa23cd6284942d786f0f0a14faafdfecff646371ba15133b3ba90f820183c8537c8ac47ad3e1e7deaad65e56761bc662be406026 SHA512 9b1f4f9c32694ccb244938a9a4e9373c3902314afb6af5d2f6b1be55e5ec63fee5cf1085f8f32161570cc10fdd96f3375c7564b1d884bb152542b86593f175de
+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.3.crate 21938 BLAKE2B 7c73e2da6d423c68dbbca31f6528bdb3f42fa39b30d0951ca7058e05ce16ef09ef5e047697b33ec17720314f934512c0907aeb892df93d63abd8b63eda2b50a7 SHA512 0fc31f96ca8ebba8c179367de01458e909265e1d627ec0c5620be7c8e83d2f9570471d6ec2cb2bc4bc531505b02fc31f1165708cc1357906791c87123b06ee87
-DIST range-alloc-0.1.2.crate 3428 BLAKE2B a81405d6999555cd1c87812f7153b6b745a0b6cd729a649ebdc912efccc2e6ba551efd033d7d1ac7d9e0e48cc7ec7f0350673200f802d8726b462ddbc85bf354 SHA512 ce6e6acbc80ea81a863a7d3a50c8892d6ab6433ea21292e446f158760b4a64904028df126f025dac25f02642ebf05b54a4cd19552ef34f767d855242e8e5d8fb
-DIST raw-window-handle-0.4.3.crate 10636 BLAKE2B c07176c36ffd074024d06bb4cc30a0c8eba7ac8f59e4717c3b00a3af7bbe5fbe398f015666fea6dbf1a3664ea0cd824085a325c1457467c19ad2da584ad2b005 SHA512 f0cd7aa69b680fc87fae11578adbd9c745a00d30ef8e13b2c4937d8bfa8d75cef1771827be485aa2d9cc7deb74f5364b39f8f59503e803ffaf9c2d9619637fb2
-DIST raw-window-handle-0.5.0.crate 11715 BLAKE2B eb6748446b380699be47d2ac601854c25b4af685ce1b3999e73de504288020b79783e0f9d32d4a8b80293c5be26caf63e80176952773cf63e9a26ddbb9e84844 SHA512 bb7db6e426ec2c8040c48757ed418efd39314db0250f31787d5bd7bdabfa0ab08c9290da601d4d449167ad6f24d3b8a8e7203c58b6c8b45b65a8c2785ba88b5c
-DIST rayon-1.5.3.crate 167246 BLAKE2B bb312c9879fea3cedecb70bff78616eb7fc761e2201d5576d86074f4926dee6266ff6f917cc97a63b6e6daffc33f5d693a5c73daa49724643b93f3b9ac77d8dd SHA512 47909226951c4d6b774880dd308e2633b1582e41e7730ac8af902895578e6f29a9b1bc47debbd9618c5a45f317b4f264480392c8982aa33576deeb9d5f8ffb82
-DIST rayon-core-1.9.3.crate 65300 BLAKE2B de5700c9def379f6a27ee0ac0667f741913c28ba4d98e95d7ae964c32f13967b4ca160d219b53394985ff4557a11a6ab3c242333e2a6d3790801bdffef3f9153 SHA512 4b852f083766e7e414132840cc8dfef148e15db47967eeedc2ddbff9a4372521c296dd4f66e0b6990f49a8ce88ebed9d44e7ad674df42f96b99b24469b1852a5
-DIST redox_syscall-0.2.15.crate 24007 BLAKE2B 755a3ebbfbcd1b561aa485f8dcbaa9679151308961f25beaff974ce39c4c135a5b77c6347865b265b59560db599a448f84fa618828868ac400e03e326d9351eb SHA512 1f9dfff4050c70912d3a8c1f21c2928ec87ec43860eb67e8cb090339f9254e2cc73fc17267d7b532974bc89dee55b40190db6db691277188790ae5f0210acbf6
-DIST redox_users-0.4.3.crate 15353 BLAKE2B 5e3b4e902566620cee8856c092cac193366ddcd2f5aef787b1d485353a0da11486ae1359dc60f3c87a198cb68f93ef99ac7551cc2315412b93b10ffb10540633 SHA512 0d3366e23cf93e1b0e025a29025eaebfcd1145bd158e2663b94fd952dc2d8a25566819e3a03c4136ca16a6408d37396e2ead0814c3f0c2bb10334dfd0b838fda
-DIST regex-1.6.0.crate 239329 BLAKE2B 646405e681ce572ebe2dc51a3339f0f8204143f9b2b8f8e74a4c80379c43c3581363ad347610a384d5ee831cf1425f74ddd944a658b1da2461e8068c5521af69 SHA512 b4861c9cc13d6fb224f67057fd3522f04576591b3d7ae0d3581dce42ca2b2bff96860cf2a7f4dfab00e46a1d29e6473f6723c4aeb02e34ed6d5f205b66f07876
+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-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.4.crate 253191 BLAKE2B 08bdb925efbea1ee9f885a89ec6b4692e39d7b17039f788e5b3c1dbfb7847d4f53b67f0c61e4085af7ef4901e67e33ea94948668bf706fef19b4102a06ef0447 SHA512 88ef121a51759f418d5dc01607a6e02651bd00343dae92962c02a80f30343d3f079a0375457780ce46bf205ca38f279b03989154638199fe2fcede10554bf21b
DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f
-DIST regex-syntax-0.6.27.crate 297300 BLAKE2B 4ca1a2e23d04e29c5925085ea4ab7ebcc398dfe135eacaab1e686aa8be43a110a28e8bec05a6910183f9a6bb1fd0d635fcb1a60b5a6a03fed4d2cf937a542a5a SHA512 5cc705a5dda08cbdb4dbcf3fa98763cadcda13d9c3ba407b35f3e88d77935efc2704bb40b3fb5aad7dfbad0df43bcb4c4cad9732defb954e2228a0739f7c37c6
-DIST regress-0.4.1.crate 99620 BLAKE2B 9141cad8f53e2a8e3ea3d746737ab5b8c75ed345f09350b6c337310255969c033a28591909f5914661414ab69caefb0d4e26c00442b40a97d8f2c2937dea5765 SHA512 05edd8e4d3a6bd8f75f4f75e79275591a3be5d481921a921c09a32053bacef8aec6104219c809d76d79784466f71f7de193305f48ce1dacc1708d50452c62a17
-DIST renderdoc-sys-0.7.1.crate 4592 BLAKE2B d5c543119a498bf295bf506b164945a3de6c48358891170278baea05db0f67813d9bd232cc52593fa02095d04cbb163fdfc9ef2c121eb1155ca761b89350cc15 SHA512 5ef5596705e4d9b752e132571960e4518b96e47b65ea799dc4fc87cc4abcf769e05dafd3a7cf78df4957ed32d42f714f9d78b2f3614597cd5a45352a3f509dab
-DIST rfd-0.10.0.crate 38170 BLAKE2B 90930add671b87f1af618ba93b809dbb37e4273d1fdf8e3d50c23b9b90e6defbded98fa0e5c3de9356e7dc6e98fef587971d4a100b25848fb544b88f39bd3541 SHA512 1ae6a3b81f590f260211735cbb73930b2c4c7bae0afbed02ce301c68f61615ba0fe8b8b70a394c4ec6cbdf33b7bc8a2618923a46ddbd633aee647933cba9f004
+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.3.crate 347497 BLAKE2B 9ac2f63098ffa3fff51fe2bc0bcf9ef164cf9389a909a3f0cb668d2598e7ca65d573e47d571ee2e6bba3a1a96ef7c298b8d681e1ef89c8c53b7d590e0e22839b SHA512 925f7bcc50d94c65d34fcc770c6e58dd5b8a045541c0109e77b8efe842eef4c110087ac9c0f86c7c3022ed013abbc5c0a187d796dce292ad5361a0cdf7153d76
+DIST regress-0.9.1.crate 329053 BLAKE2B 9122a30c7c3c2b618dcdee2d7a7998f179cc45e9594dc16c9670b32361dbfe747b5461e93e6adefeb39a1c1eea47ee38e30f54f540de6c093465974056be441c SHA512 24882c0867ce3170469c41225a140b836f9e434942020f034c97798591632c2df91502ab454f0062e37fceb5a1f423132ca25ab1ad4afcd9d987b668de8ebc26
+DIST renderdoc-0.12.1.crate 42334 BLAKE2B a964705c16d7cf30ba15740b5cbffb85be8511279890c8a19304e55d832be1a50a7fe3a0d39eb08794fc1f3f51ffe034ffecb717cf0307861f8e47f04666f61e SHA512 e6be1af1828e06a8413b9b485000e93b89d1002dee7b43df4baa7bfbc80b2ead98178b8418311d00f565d1a3412f3f8026a4415f94ba3483c8623f458964b252
+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.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.7.1.crate 53572 BLAKE2B acd1d93fcc8a3567d2ba8ca582955c391b2f33a5674e9b4724976bf9708221b9cda4c10e9fe9fee97e41c36e00b06232a7f091958ab9867082d933b33fbd95b1 SHA512 02298f035304e791c99fb16c6301d040e3a348180aacf31ddd00abc0a694901bd1820c8479fadd72028fda8681c45ff6a203c6100ae9037c845cba74b7f9f8c8
-DIST ruffle-nightly-2022-08-16.tar.gz 9847423 BLAKE2B b2d41e089ef184b0d5c31abadfed6d828e1c1a86b91ccbaac12e07ed2184ff924b78fe814128b2e4d1e8a4ea889cd169dde62cc7a50640b35786625dd7ffd5b7 SHA512 1d813372458202a7eac19c924a780939cb9d3662fb25f888ec2c99e102a5a188bea1ef8733a43af1b8edd882bf39da08a8cb4d354b5697cdbbfca97b11e50ecc
-DIST ruffle-nightly-2022-09-14.tar.gz 12134475 BLAKE2B 12827ba53ded6ef302f673e59898439290b80cbaf43d3d5c5700f8d5eb93ddc432372dce0abb546301f1aa6f122557c3dbed7aadd6b7e237fed50d17fae7a888 SHA512 622a2b28347b1250f826427e8593d6ed367c5af6f420f78243f0591b116da2c76b5f5967cd6a4b9c0308cc249ff3d0f2db791ec87d091b2ef905787a9bfd78c7
-DIST rust-flash-lso-19fecd07b9888c4bdaa66771c468095783b52bed.tar.gz 676612 BLAKE2B 3c2ff3edef1aad8e6276758fd3bac85106fa9a445180c9c7d954d5b4e469751b9a14e1cc8c3bc4736a410f5e1478eb821395b8f0a1acb0e5dca1082155b0690f SHA512 6f668066999d3454d255d227167ef92e8fcf5755017617439fc227d53c5b8169a7c585857bed4879991e8cab0a6efb4ee04eca3e1b7e01bfaaa4cab70af30d3a
+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-04-22.tar.gz 91389255 BLAKE2B 7ab6a7c2bbaea16e7506037af2e7461d5ff28c283477254a74f7179e910316f8bf73ce9ceaa26fd82c4d53542c26b88617870861db5c9bfe5be6e37415aa75c2 SHA512 9b59e24ce8e0097a052da4506deeca64d5cb35850cbae4cca1938c0ff0f69a202313a6fc2bc8a06e5109aa92af6a6ce50da843c1b578980caace975ca35e3581
+DIST rust-flash-lso-2f770555ea49c6db49c57c1dd46c7cc686e8dacc.gh.tar.gz 688059 BLAKE2B ddb791fa4c455a21d0de0c7e27a61658517f52b672d850a9da08498bfebba4ae054663b9171722617051b61e7a962a2b90be04ef168f53512a35f58ae9e84104 SHA512 6c231443267464760fab0a534c7dfc5cb8bc45cc722201133bd178eb40785ef126341b8a61b80813f6532142290ae8f7033994834f933a3fd0fabb6d02ad2a74
+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.0.crate 41385 BLAKE2B 414a5903b64b1093277e2db12ff70fbde963a79cb22a48b54376ea05cee6d46d08eba24cb5ae0b6cf2a49a54a21593dfa5ac0bb64cd30eb5394ada29bbc6aef6 SHA512 b575c4f35cdd55bcd1bc95f33aaea9600d3774a1ebe4a37e2824a9a9c81925315cb04c4b7753e64eae1e4a401657f2be572b72dfc7a2c695c1c016a5d663ac13
-DIST rustfft-6.0.1.crate 220147 BLAKE2B 82018bb93297c2b0f1e2bd5f6b132e9b14b2ba7735694e22773a82fddc6e3fe9fd201daa064d12a337ff418547628fa2f77088dbff1c085eddaf48b61cafcd0c SHA512 b09aeb27c7736bd40978cd3be1340a4a4d0d408348de87f342b5d406ac8e90e9a8ec1669c773e5b64251ebc5742ed35863d6756b8deab4dc82a7ed61ca24e252
-DIST ryu-1.0.10.crate 48485 BLAKE2B cbc0ab4e0b2031f4ca3a34914bd61395d14706d42e2414757aa23a67530d549382d61b630159c92a169d1dd3315951b0071ff18349d2b090ae262de536aa29e2 SHA512 1bd0af71a20715251dd42596df6e7677e44f712bbb40b0d9544109c1b2478a7bd2c9393535f0d4f3bfe2d1b75b3a2b899044051715a7da7d165d6d586e0775f2
-DIST safe_arch-0.6.0.crate 72016 BLAKE2B cf58644922728b0d20ccbd7045d95093013d250dcc7acee28e3f68efca40ecc5598dd5b27d38b8c0db1ecab4211a1f4dcbe4562f096eeb23227d7724219d45f0 SHA512 37af0aa16b671d3bda2b660979f6f047748b7d8b2f11458e45d8dc3127e15cd36e7d5b3afc686839130bfde39af1a0d17348fc3ba3da388f59c22e276d639d09
+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.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.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.20.crate 41579 BLAKE2B a7924b4bf0f130e2aa4668cad3c7112e39e028fdcb04259c6926fac4875f8061a9148da5f001dc49051310ed8e6ab341da0990ccf0a7cbd4dccce8da54c1ca46 SHA512 19f217fd4571a0d0fcf52060a8639e0ce7114719aa23fb0aa2ab5a531e8f8be0a21af55ef45c8da804101e5a62f15669e66fe005c4cd5bb24def09f1b4afe059
-DIST scoped-tls-1.0.0.crate 9146 BLAKE2B e6cecc543760a293b9ba4e71bf0d12f3360782795bc9d0f0bb054614a1c393f081b6178e98708b896037f5b8edcf371b727e7eb80f62bca24fe09a1903456729 SHA512 f09dd404bb45349ef444e7274a2aabfeaeda7c3c9f964bf5c52c39984c137f63bdf9fb3e33df8e312e52872f7721de25951a7f3b8333a670626c51afd36d314c
-DIST scoped_threadpool-0.1.9.crate 7800 BLAKE2B b6f887c1af054666ab7f717dfdafe5701bbc0a778169d885a1837202d4d215970af567ea620c6ef47db69fa664c6be65c782aa87d9efc1d9c8c280b6210e38f1 SHA512 df8034b347fb489735895d75e5489c264aea1b50f46a8dd512963df05cb9ba9274317b26aeca63b9b4edcf792e796659bad435ad3f3446cb397340e2bf0a5f33
-DIST scopeguard-1.1.0.crate 11470 BLAKE2B f774eb90b7d3ffb2efba47518e9d1dead4017ab4b38a4bd74914daa84a5af4bf9eb63da0496e3924499d79cd0439c37447aeda4a21226f95645bddcd6becfabe SHA512 368fa5726df8f42b599993681579a9ffd0196480ee3cd0f9f671e8493f3bedd1e1779bdf2beb329e77e0005fa09b816e3385f309490c0f2781568db275d4d17d
-DIST semver-1.0.12.crate 29615 BLAKE2B d0a8e7d148859c402c6a84ed8e261e738879079c5f755a80af6a210696ca157f1153d61596bf40f83d75bb69f27c045791ed141a32441e5d8c906aea495bab69 SHA512 d9c0984e59c8abee49418f785fdf5f7110dad8b4c84368723b7682bde3b9f97eac458f4a7ae2969548757b6d989bfb45909ec4a26b191ef304995628c7c78440
-DIST serde-1.0.143.crate 76400 BLAKE2B 119b6150d650306fad5e6b18ddce2d5dc0f3c1c0b7f2c602827b22243573fb1d606dc6d465f334a94640bb3c7a1b763d28c5c050f70067297c4d5e9eb2ac6792 SHA512 934f74aad56f3bd4f39be2e15a0f7afa718647df640166752b7417399354ba3e2584cbaeb54ef4accc9214fa936e584de657aa056dae0fd7cfe7676f1dd37df1
-DIST serde-1.0.144.crate 76387 BLAKE2B 7e66355c24e1116eec4a3ba4f9164570b6d4ab57196d39d19a0bca912c9d2acfb33d8e17e09bc07903984dad154034187d0ffcc8f9073b36336ac2b38ea012cf SHA512 d7388a40e4a5e0a65ec7b49193f2d53d758adcf26b98ca3bc6270351c7553add2f38a8434223a95826994c6d039dd91fc4f4020ce191410fe57bebd29e4938de
-DIST serde-xml-rs-0.6.0.crate 20677 BLAKE2B 84e497670bc661b3dff37f081b40679cf1c019e82eb4dc491f78665b46be20b54e826171f51dc03959b1792f4b416b007e9726e41b59074e420bc81416eb47f3 SHA512 a5096bfa71c1e02f3593ef26ee0375ef1bf5d31e42eba76938c51ec9bb507f8f1f20d325a48375b1fd688ee8b79197025ea5d49c537321cdb67ffd16fd53bbd8
-DIST serde_derive-1.0.143.crate 54877 BLAKE2B 50b51622da22f8c9dec26803ee12cc590b00e266344dd1610aa5ea5c3f5442f5256cc31efb15ef4f633a7d9d6996bcaa2a679c210b00b9379457d10c15fd2f8f SHA512 ddbd58ebaf94dd2f534195dbb738bd88da5d10bba7c3a88e73207ec2b6dd78765649edf0a2632cfd43b7237929d3a93fab7838fe73dedd0c74310d4330776959
-DIST serde_derive-1.0.144.crate 54867 BLAKE2B d1eabf53f4efdf95c3c12a907090617e0aa02661fa0e3cc51bf0ef8dcdbf45f0382a57588565ce26ef7baca330c19ad216a8a0975247bc02af37c4440bdd6859 SHA512 d41208452b36b8d3f0644e58164c9c4e75f8cab2d8be09cfd1b38bdfc690e880a062e0eafe46dd4400d01f541b34c9acd3574504c4aa856afb00cfc2e9617a0a
-DIST serde_json-1.0.83.crate 144566 BLAKE2B bb6f33e663dcfabc6d2bcf3341b4fe01e32d3bdcd9aa53abb21735b16955c927e0b0f5efc75351c72a364dbdd0dd22a7f0dd62170be85713b32130b62ed0e047 SHA512 e2694df141fe840eeba839de404c8a8f6becaa819012754d89a83653e19650c11e92d396a647d8a704dce8580d206cd2697dc2c12ce91de68627a576d9e0352f
-DIST serde_json-1.0.85.crate 144635 BLAKE2B 03d2de5563c8b8e9150b656b62329a87a5dc42c1fe389e40291a3b2a7232e2342b6e52f6625ecfaa8cde4420017a0db82b2ef332f82f2fc1caa50b98e544031b SHA512 b9ba5c8f5e5c977d31c720995317c99486897a064993784e8abd4e35e0c9ccf20d421552b4436cd88420b5e6fe1d7ebc411bbc2e803cf1732e133c29365834bc
-DIST sha2-0.10.2.crate 20213 BLAKE2B 9e8942b4f4a4a86f5fdb0e1c237d6bfac8f3f29622c98f7203e36f736ef7e6574ce067c5ede96a3773874a8b06ff45b587dc7acd80bc1fde02344ae9f70a5e80 SHA512 20b8217ce9b56fb5f2c1d71d3555889bcfcf5e40fb7fe0eec23479d384dfcd504f1046d6a12dcbb5072813792992b45261e664e9e8e14eb90a641e94336eb4d2
-DIST sha2-0.10.5.crate 20325 BLAKE2B 5f64e296c52c7ff793674a97562d178bce84bc0a154a596a62a63229da5473d5d04e646529ebdbe1695c38081aae5d2d7c6f9e5db91831b0b895c42c05336ad4 SHA512 d7d4d645912a884b502cb46cf19e2cd9e8484a96d3405744ec794997ac147d60ace5e0130599aee208fbd182828791bf0c42a0673cdbcccce408f935b6e3c192
-DIST shlex-1.1.0.crate 5199 BLAKE2B 325536bab9c9707566a099a161e7bc8448c7369cd9d7b2f144ed71543d551038ef1fd764376491e8076ccdcc928b5c4e177764a68584267a91386b8d542264c3 SHA512 e51892298dd79dc7cf04d7e6f0a03e4850a57b15cd75e6e3b56e2a0b15d4cb85ee8afcc14e3727d193c8b91baec8c2864a9c800834ee4d18a1be584f17591752
-DIST slab-0.4.7.crate 16647 BLAKE2B f567cc822e7b84f64a0b0372c22a0463d260871455a33df025808a0476dcbbd4e051a117d8896d96d6d3d0655b7c296cd691ca22edc54486440f4e2e0f5d1e1b SHA512 659a9ca3323fc2cd236f6cb9eb6feeae8a1f5fa046fa239a34cd7a5ab8a7eadb9e5977e8d5cc41e9138900dd7c75ebc0601480771c5fdd2e084ee76619b82521
-DIST slice-deque-0.3.0.crate 56827 BLAKE2B 62971bffbb7ea9f9de069ea6af1d1f41e5288a0bf9c80e0d7d86818d75dc969058dfac6c379cf1dff2f4ef6f48e263b9c7af5f41b377305a2ca59eb9cb1e66c8 SHA512 77928a2e7289935ea5cec5fdd497b383b54a7e97042de74ea109e957d61f8d99d182c58f0d1ffa148385849b7bdd9105b6378acdcb1e406b761de7b9f5bfc2bb
-DIST slotmap-1.0.6.crate 58954 BLAKE2B b00f328a8ac4738bfa4f0bc25ac7ef91fba9d5006d4806a351d21119f23c98d39c5120c2fee0a622b8229abea6dd9a08a3ebd7a34a8a64ba172c2d6f9c53b2cc SHA512 1e0fad77d39cf937fbbf32913595e836b9d8067a81e8ad9a6653cdea023f2c8ce511c0216a1222c056e57419cdfd56977af7a6e83a9cc8b5708310a17353b145
-DIST sluice-0.5.5.crate 6960 BLAKE2B 0a1ed02c2e0f3f8a90afa1e851cbd6e352881ba00fd4ef824b0768b6ec19a9eca959fa7c215ad4d6ebc8f103f5508766648004bbd897706bb44b98884627af4a SHA512 d0a85db370a921f0591d63a5a78fffedc4c97e5a68915c86753dfb7798cf120542b1fc3193e093655442b34502ce6cadc799b25e39e26c122683e26ebd0383b3
-DIST smallvec-1.9.0.crate 28396 BLAKE2B b04100f0a8db9e7c34a425e665242772c9857c5a4c5f34468a3f1b14f669d5cd21de2d54dc5295a22f52032370e8e989fc61cea3f4e6574ccca5be639c645e74 SHA512 e7158393d4257564eeb8fa53a630fdfc13edb33f3c555e41606edcfdbe9189e5c59c25d255dd21d02d4abad1ab2931e21744ec6c2f91ad4db66f87e748a45e56
-DIST smithay-client-toolkit-0.15.4.crate 129563 BLAKE2B 54870ed6db825ad63187d4467408ca1ff26d23bcf87cc72253f5d713b42e331899850e305dc84f1a9e6574e9af9b4cd535e3263f75eff22f8bb3ccdfc1ef78d2 SHA512 d4fb7f282782c190109d4344b50d6e654dbadcd48af41e5f16732ee0c07d6ffe2a87ec0d44c6221e9d6558c7da86d7c8bb17b41c036dd016d70a92a9c7d2641d
-DIST socket2-0.4.4.crate 44048 BLAKE2B b2b1aad2995e44944b98ff3291479fb74e8cc965f866e692821427e488c68282290773dcd77da0542c45daf231a5e676d20e59a1d4568b8dde2da2f16425feb2 SHA512 6624fb9b933763c22e6114a8f72c6af0969912717017dd5b13f1b5df19faa1b160376c12e8c8023c435281f6a7864e802f3c4c535de8a345fe206652104f2cd5
-DIST spin-0.9.4.crate 30180 BLAKE2B 24dfdab3e643abe5cd9ecdc14c07bafe7424ef19979b7e5b856a262ffdeb87e58291061313af2c1396ea33e14d96a728719937790d204398fe271710ddf2f8dd SHA512 156b1c471292e8cb874b59129454b56b5e84a0f10b5d064433e0abfc3384c1a594b12b095acd26da350d7f81e6849da9c07c9a506b4aa0ac4808ce3f70b5511c
-DIST spirv-0.2.0+1.5.4.crate 30491 BLAKE2B adc19c32ceafee6eddde0e92fff3b995fa062877f653efe60bcf4a73b86da4e00f77c5922ee36b239e10e4d942a12724130b726eeacca6a60ddbe2c0a87d204b SHA512 a0725df0ae9ce0ebd0b3037a740ce82c565c21a0ee343408291b30a2aebd3ced236d1df511a73abf5480ab3d23e83a88b237ee172adf5832ea7014355a3733f3
+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.22.crate 30446 BLAKE2B b77a951d959a3685b0373c80b9991a8567f8926d093b23b7b8fab48595b5d565acf7408fbfc8f4d58331f39e316a8068885d28bcd70c1476d1cda436a2dd88b2 SHA512 7dcf9b6a02650d71d6c9ab3c29e44fdef95af296208f26aa7be6fd6e16773e5e5e66418c303a0589d1165df6dbfd46ad6ebf9eb5b3adab25a51f340947b2d949
+DIST serde-1.0.198.crate 77577 BLAKE2B 10d18e00a17f38e6eca67f78a3df6bea777053b4c510be7fb89ecde7d0ac2ffe37399031ea0cdc6113a0b80f8f3f1095271bc6aa3f2147e2d675cb3f5df713d1 SHA512 561e4ec8858148e9cf59f1b824c489ab259b63819e6b031205db8d89b30a5b0c12c3828fc587cef67316d1b9752f3618d089fa21b3a27cb87a074d943f27c7ff
+DIST serde-wasm-bindgen-0.6.5.crate 21098 BLAKE2B 34b7a66752422c21031fb21202c8405c43a1e6758eb067b4fafeb24f812280e70bf16c27bbcfa4b4b5723e369bca81e42020677787a79277f32f71eaab6822fd SHA512 c457b1e8c83760d94eaf8eb49169cd620cc1fd8246af8953503c2bea9c4ae916f3de3b9070bfd4102a713f8d843b6ee96404e27b21a48c589b444aae0f9303b1
+DIST serde_derive-1.0.198.crate 55787 BLAKE2B 6fb5b68d3bd0010283a1f61d9af5471845d9f2f5a6b476245348c6bf3d3c5d3026325de87cc8ffab0300d31dfe03e093acc40e4a7f334d33b9d33cb8e03645c0 SHA512 f33fd1e1ced08a305a41114e354ec174e09c8918e28bd486549ffbb859a139e41b5de27932cb24767f4b3db4703c25e6987c55c9b3ea566d60b9f6cd893b38ef
+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.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 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.1.crate 18456 BLAKE2B f9687d74751b279d570f4ed93ef931a0fe4a6d7409f553bb9e4d738a154dd39a244072f3a5bf3d8ed7f1f159a3bd13ef8acf2da3085ffb8b7f00f837b2fc3154 SHA512 c5cc982efb1a68f1f1dc80eb5c1433edcdc48fb36cc9209d0d346c91da895c5b15f9f3dad216cce52a251e64c45d4044720f184d5d6ccd2706b56878fd5c6591
+DIST smol_str-0.2.1.crate 14689 BLAKE2B a1bc1121fcbd42fff6248b74a566ef606470b733a9e37211748512a95f3a0710ebdabe6f96d9b2d2482a8a546618e428e32fedd38ca893f6ae87c52a69948a7f SHA512 97ec765f3244210adac567a36b21436ab3cb387db0810b86258b80161ff4858d34e148fe34f5cf351b4355ef998b017d216749e12c154554fb36abe37bb541d8
+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 stdweb-0.1.3.crate 90221 BLAKE2B b8072c7be865327b47facaeac68373ce3085474d7a694f2e7f371024b5c4c0c616b8215a75e71b72b0e7aa534c9f8172593c7ec648c32049288ddfac1b0764cc SHA512 d7119427aae5d37336b8cf0002bae9c0d76a87a6865dbc9cc4c1f9abe64efe8d861c149b3975c6b3481a804e20be4fa28619257c233d3ea3d550ebd550ca5fa6
-DIST strength_reduce-0.2.3.crate 13283 BLAKE2B 8120efb6ebf74865c0bf70477a91a4e73536efe674fbfe90814c68f8653686c4cb83dfff7b4e841f689e9b0f31523a56deac863758a10dd80281632cba5f5f90 SHA512 c452e395b907b04c16f6e59a3e3ace00dda1f308d8d515800738674c97f79257b864460b4adaa376b88a3f424787791215886337d0b68b91493d85ab183a7e9b
-DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
-DIST symphonia-0.5.1.crate 10348 BLAKE2B bef16d5ac4560b2953ae0b5a91d6aeb14c8db67a950bdc819f8206d2d18ece16e68d9d22d177902801001b1652e52c42debf01a2559c562c305d9ace976ce97b SHA512 661262f643d9bc2207a2edb92c9d7d30e7d3f678c1c7adbce006b2b027b98038d6b25b98e5e96d5ed426dcdccf2b1077a487c6d3fadf35ae8be1313da7da3043
-DIST symphonia-bundle-mp3-0.5.1.crate 52668 BLAKE2B a20d6d6b6402a4bc89647f89dfdbf6cea8537a46d4f670d472da12eb12ea608403ff0935ca29be66427b6a4c183476a255d6dcf8ee2914ccf004eaf523b9038d SHA512 1969d10c2984b81917515ff910e2df7e078d1f52d58bebde65e2bb840bc063754656ed975391ba5005fb70f0318f9d532c80116f8beaad002b7b1c6b20b566b0
-DIST symphonia-core-0.5.1.crate 95813 BLAKE2B 01103c863c45d70a86441308b8e6aa011ce1f2838bd918ac7cca149306c9a31add12f613360cb8dafbce0bb8416c511170e0ed524503b4a4068ff4f158c56378 SHA512 12ea4ef40454db3e44ccbc74743f70580785e54c2c204cafece5c41817ba80676f465718379b4f938a0face40a699c9d6484151c21f4d6b317ca0e1f00476e5b
-DIST symphonia-metadata-0.5.1.crate 21087 BLAKE2B 30749e7547ffde2e98419773ee5ef5e7a5272e3723632a814ad6c5b2fc7c3d9f0c716f26bf59384a4b2331fa4708a13114e3fbc8c229627d21ff471b80093f4d SHA512 2f0507e482cfbea869c5a0cd47d1fff36c4b23e3dc1ab45fee138223406d7836fea5a663aa9f4f2da95e8634f460c38465edade9ef41ce52350f4b68dc6f0ef5
-DIST syn-1.0.99.crate 236084 BLAKE2B 852493506271ee364ecb6e907fca55f18af9dc7ec4b4737e43e104d04064a37a2a59b31f5f780621785e44606d43e74adca5cf24c9ac1a8e186955c6b3e43b85 SHA512 47a9ec4d5e6702709c1069d1804d29880a1c5bbbed5a91c44e80eec657c62ceb223d6fbd942deef591463664766ae1997d154525f4e7a212bb84151418f40d10
-DIST synstructure-0.12.6.crate 18429 BLAKE2B 7666cd83f82910e036e5b57600dec9a1c2e559453ccc2f1201e2ee4ba64f2ee62cfc1046ded5cae64dd183967b9d71cbfe4b60a88bcb93706eedd0c4ab69be4f SHA512 6ec5dd7ade904fb6d79c2be595886289846e064b8c4100f780d8adfcbb41e6ca67f4b1d682212f4673c2169f889a042049b31161ec3cebc3f399751124f01f9c
-DIST system-deps-6.0.2.crate 22869 BLAKE2B 0e5412b140cb4c667dd3e98a8b3c9bfae07c1df71abfde009dfe494bd11f3043cc3c7bb2c825b46caa8f47414b7c4076e131c47d3135c60678a2a826cc21899f SHA512 5ab193ff8ef680aafe89e6920b90d07349809018a27d962c6abf0ed6920d8a7541d6af03600c7b5e328425add04305743183e072491eacf973e6e96e6590b33d
-DIST tap-1.0.1.crate 11316 BLAKE2B 60786fd5f12c2f06097330c26809fdcfce62716586d2e1985f8c01406d356ed0ab730a04dfe72ee3e1d6208a53c76c66883d45a76130750b41ba5b82aa721b83 SHA512 d69ff11a46e2fbc276212511878f48eb93640c0b147df6578ea057b23625f9366a7fc3926693fc3809688537af5ca919c91605beed364decf83c35a032310995
-DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc02313868c0faab62358d13abfa7b4ba82f142c2801d25a6ae46ecbc8b7bdbeaa21c9105ea3b8950ab6a38cdb88513 SHA512 5838fcbfd70f300cb4b62aab50565db52074c56b152ccc8ac1173e4676c0d5a636271bf5a645a77da6e1d4edbf0091af2cd4dd6d73b85c3d198c760898c06f3a
-DIST terminal_size-0.1.17.crate 9141 BLAKE2B 048d8e8e9dad08aecde12323681d428b9182afb737136cd6699e13d231f7882091c9167cb10a08e5151df912421a6f89132645627e42ccc73d07553cadb1c8cd SHA512 96ec1bc8abd597f01ae59da567036d5d40b422764a4da662e2030c3ef4ce80a983c8b6a4ef1f34d88e649e0b1ea27b206d56a31924bcd2d31ff7e5a2e96d4201
-DIST textwrap-0.15.0.crate 52998 BLAKE2B f6c3057ea6ffde88dd9824cd3159d398316d9d21f327d2af59239ff84d79f893a9d0e96dfbd883aab6c64b631dc99457018e38baf14d40789f02d633425ded86 SHA512 f44271c542c22f17a4e3a459255f95e6c02d999f7d6bc8414d3973fd4ac9353aa4ef436932a45340738126905463d776902715feaa9329371f8a14f14b5a7bfd
-DIST thiserror-1.0.32.crate 17241 BLAKE2B 70a1fa10c54078a49cc167c2792fd54bbff17543966c221d1648a80f08da2fb880ae64f0d08984b7e0ffd6a79cac4c31c04a1c0bdea5b26d18e4a8c7d83dfe1f SHA512 cb1839b2687e228ea43838a8a2d55a04f5f3bd8c2972df0ff6a703560454abf9b838558c16095cc9b030b6b13e9d715e2b4741de6af9d5decdfeaaa508481138
-DIST thiserror-1.0.34.crate 17329 BLAKE2B 3a24342fb102104e3aca6e5808c823fee616b2d51b552f38cb62c00c5bd5e78d7e360156593cffec00f6ab3da20f92b2fa9b207e60df170b9b925ead439ad070 SHA512 62aae119dfa1d1007857ebd05589eea5b3aff00596b131689cbe871a9988bdc75efaa8e48e4a6272c05f22a58b07d19117d49e6a6655f277d6bd47fd04bb5b96
-DIST thiserror-impl-1.0.32.crate 15347 BLAKE2B 174ea820965b3de4d35b394e875e0dab51559bed098d5a3037fc09c80326c5fe87c4e79358d6f49524a5f246ac5c51995ab47e6c967947d48d2194057c8a6e66 SHA512 7dc5e842880f4ee6b3c85264048975c027e9b80834618f6abab618fa653b9ed34b887a1d72112fffaa0560b7e90fa456e241ac08e6fdcd4b3be6e39946e92d2b
-DIST thiserror-impl-1.0.34.crate 15437 BLAKE2B 5fad15ba4a3ba5bc41e78c204933097ff4304279912b795809029e94eefb477178f965be753072132282ec25a612d29d309dbef4d537e2fbd7e2d8ca841deab6 SHA512 b35ba736753473e4456a8498c669f2a26c9520c5d04ff86ba5bca414db6f32bafeb67fd736a13ca0b92b2f21f6ba751e9ee58d16694600a1bbd9794ffbc0b98a
+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.4.crate 12039 BLAKE2B 9bd9230cad0011a014471ed2e01160a2ac7e31383345e7befdb7e7d44197e12d8de86e9c399743760f79245d85214b6ac99a1209c06e899d1e1044e6e32f6c60 SHA512 fba7aee862ea3225790d6e527f7253a08c3d735e4d3eed8812c551b2fe180bec116bceb1f4718ffd1af53e48156b4f4cbdefe75657ca1487481757f7e8cb9d13
+DIST symphonia-bundle-mp3-0.5.4.crate 60104 BLAKE2B 1d7a86ee6092c706be3b622326615d161a48aebf16dea96768cf986fc9f7b295a59fdf85b47495d3444e05667d619940220df8c73f7f5a114897fb4257ff2c61 SHA512 19b2132af39be9ae7d74ef0141a637db0a0f3d4df6405331bc928a6bdffefd783e16fb75f60adc08e0235034a9862228355871b30d2adbf4d412a539e7843d56
+DIST symphonia-core-0.5.4.crate 98029 BLAKE2B f65a92cbde4b91865d088c7a7727fedffda325450281ab98f8ec93b1866d88e2ae6ec8bb25ced31a716537d664298f82658914d02c729af9f9bcad0bfa8bd160 SHA512 3f2265b9eecf405d699779d66014017f6654452607e62462bdf7914fee51d812c63773d0d22f78fa099df67a11aef375bf1859258ce1ecfb07a45c175c686888
+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.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 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.58.crate 21025 BLAKE2B 2915ed6ab691fe94e97a834ce5874d37a388c3240499889cff633ee6c67d46a2ca88098ba40c225ca0e2e3c1ac7bdcfafcfde3dcefc50867e299dc49505d6fc0 SHA512 3cba2d1f4965bc56bac8fc70540d8cd442ab6b8c7d25d328bde7f4cc108535d83c75f293316d730bbd86eb247400b6e35107d610c7caf47f43a28b1f52fed578
+DIST thiserror-impl-1.0.58.crate 15645 BLAKE2B 9c6f643a582666ee4eb43330340888e7141f0dd89d927e3345268c3eaca02fa42b018514ef38b3db3ff9722b25ebdd43c36b11ecfc7bcb36950ce2c204ff78e1 SHA512 9bbc623f54c71595e48b33bdb3e4f12eb2e48074b15ebe400d6faab43410b363e5af94df071aaa324c59dc6958173e3c301fd51b216969f095e19cb98a27292b
+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.7.3.crate 1417896 BLAKE2B f718ec0bcfb4917d15189c6b4c37df643f43e2d6042639d123c678e11dead387b5823eecd6715f3d3678bf508d8cb53795b9d05e3cdf261badac5cef42738fe5 SHA512 fb5248ae56320ec0ed98c85b545996461924c422b2b1d916b46a2fc04394ee12e111132fea6cda27c53cdf492285797fe46bd4a403a1a598bd8c8dd327814356
-DIST time-0.1.44.crate 28885 BLAKE2B 5e2ca11af9da0847239a086330d0cd00fcb5b63862f9dfec46f72a065bb35ec2236a21ee1c56bf65e3117105e7815cafe67e3725b8575373e875dfcea401d967 SHA512 736a38637be0193a06fa35d42b4873b04a0a35d84cd2af85b7f653a1b67b95078577134bb187b777730e73cce67f437b45ff5c72b8e3f1f8e2ed3420ea0324cf
+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.0.crate 1817 BLAKE2B a3d1966bf57c11afcd026269135a6189f149f905bb70b47537c0a7bcaef0bfc6c89bdcbdb0f6cb8e5255632855134631c683fc90606a254ec8ba818fd5ef0794 SHA512 d6afc83a3c70cde916a6ff599e2772588e4bbfa7a5b1c7e5c8aa0f4a8a5c9426182497a644e4a88194ece986d38fa64b6c8eda9eb1630441c8e65a8741a45873
-DIST toml-0.5.8.crate 54219 BLAKE2B b4f9f563e5ba4574d4f2dcbe244378a2e1e984bd9fbbbfa5a06bdd5f8b8d677394f0db9cb8696f6936c80a52caa86b1b3ebaf3885c53855af23f03d318785f19 SHA512 26b7901ee4b7cbb4cf8ea57d365a99ed05e0a76e73452e47d4bcb3b4eeb7bbd393c13eea9ea33dc13622942efcda39acdba9425b74b40c920c9f19673a1f2082
-DIST tracing-0.1.35.crate 72680 BLAKE2B e3f07d2c7bdc72b6845be0a18473a3a24ec0d5212a88eb1bae34795319b6500d6b8c52ff674842f5ded1f0c8cf983977a66964c16779ce1511a2e0d81cc3855a SHA512 939f649d1578e569b974ced1f28678e494f4c42fa5e6c981f38188dcb2d960f71140627e4f60b86d926d44473b311bc855e85f8d90e43932ec3ac7eca7c02394
-DIST tracing-attributes-0.1.22.crate 28199 BLAKE2B 4599e970387f385152d9fd6e354f9b9389b41c737580d0e69c642fc5e53a34201519afb9d9be6e7fe8d37b6cd7d10cc75003f936827c164993a554cc04490858 SHA512 2f13d35116a2580e8a6b43f2ebd27d9f685204c1a99d383cba2480c2f35e635b4658c2b7c75b487194424237a4a6b48b52f404ec6e11fecbb0c106448ebd81c4
-DIST tracing-core-0.1.28.crate 57723 BLAKE2B 718974afb0412e93f60fd8795fce82f13953c2cedd753236945504f8342521d047f8ce517d24aa610f67127be8d59657a5405ce85025655c562bbf4e7be70bb9 SHA512 d48ac579f01123296eab18478888b916cdb64f1d8942e06e08984a77927ff5cac4328b1586800252c16472947f1b3c53c9a30c8b59a4a905210c54429b7d4b60
-DIST tracing-futures-0.2.5.crate 11637 BLAKE2B 2b23233705674cadf5dc8092d3990f375e780de2b9bdfcbfdd5f4bc9bd0f15a14c6bc8e36963bcd332e729b33b90ecd10b2250495e0657eaeb302e666313534e SHA512 8a437a029e18dcac3a3be7a3355a63e75432ff892316c9f2929c7557e3895b1bb5efb59a7588372bd9efc386b5cab54c2b382be99ef8fa643e66ae5656e506bb
-DIST transpose-0.2.1.crate 6499 BLAKE2B 9d5fe7a176686120f3b317c019eee5b1b41f61ff07ec77ed5a7f81487e39f901431e0220fa4a54c77186428fd7fb2c26780f15c5fefbdf7237f405dca786e141 SHA512 73bed99bee032ec9d82fa64d6f6ba8d87ddb7ddf0fdfc57ffc2d1d134055202f94347466d533ee79246d2b80a2dfb4308c931b697c056f36db85270b7c9c630c
-DIST typed-arena-2.0.1.crate 11439 BLAKE2B b5bd230a22894c5545966279b40a8493940719fdf79bed144ad41c363e7f73bfd40e1492efa8d96fb9b5b32e3a31405ef9dbddd55d10bb900ac082d41a034b03 SHA512 182fdac0ef9b494fc2966005ece2107a3c53b6eafe4eebe9be3d552aebe143e05f3db2b51693c253831744fc265ec2a557d31ee42cf0ba5991b38d075278415d
-DIST typenum-1.15.0.crate 40741 BLAKE2B 5752d80396d0a37b0069b98ace9efe96d94ccaf41b33b8149c8b8c6a767537dbffe64251bbf61f3812465ecbc8cb45544f177dc97ac9735d84454282e4d1ed66 SHA512 a3c1ceac85e1aed98d0829449c35f4f36db860218b955b4e5f8f01da1d27ee6213f3c60e2b25c3745dcd67369049da5de737a9473fa9402db99cf7cddeb42288
-DIST unicode-bidi-0.3.8.crate 36575 BLAKE2B c0442dd47a8ee81f575b28e34c9781ccf507b53ea96d1d4df2e8117231e8e67579031e4244a2dacfd6f4c24ec01fbbd4da7c9ab72ad50af51ef56d7d813b6444 SHA512 810b5be48159ecbca542c715496f279518285c3b09f7c39451986f94e6c259fab1057512a2148bf99ba9abf76e861a24456b547cc2273f0b45ed5d3ce9dfe3d5
-DIST unicode-ident-1.0.2.crate 34951 BLAKE2B f03f7a040142785675a800672bb363dcf7aae266eebf50425436100249442f27b18837f9e297d93b59a9254c349e13222f8af892a9c0fbf2bac676df8a1b0e1e SHA512 60d78668b762eb842c15ee554c0c1175393702c805f1a874957d49104e9152ad2d0316966553fb14cb520aa858a84da223bf426d55e4ac23de3324a3bebc301c
-DIST unicode-normalization-0.1.21.crate 121745 BLAKE2B e67a472d39b72be66f5f8e5b924157232dcd73edb2ecc1bf4f1aa078ea3b9860838afcb1710297367fd8c95f3c1331c91a520ac46c39b94f58a633919f124c95 SHA512 2994104d3393a117cf3eafc147ec9599c870b3bd4fbd096980534c8aeb48c6ba05bcf3f9804e3f2a0148940186dfb27871b23a991360bf8253a5a644f3cdcb12
-DIST unicode-segmentation-1.9.0.crate 93241 BLAKE2B 359904bcaadfd161128d40a896a2d10e5dfdb4098de245c949ae3fffecce9b4b6b999bbc2c6ca522944733ab0074e50fe829690183639c312bba8f8d0ad24456 SHA512 7d0ea37bfb24a1a803b1cd40b7b0c0e6e44ebf9a474fdedf0dcca1ead25662e19f44af29b87de1b000c3cc75fec93320938bb3ab9d9e82298eda324bb97e7294
-DIST unicode-width-0.1.9.crate 16745 BLAKE2B 38d4b92e47a284d6881a8073089be59a73d82b91efe5522f55be977f95f479890b6c02cd519544729f1b1e62eb21bcfff8c5f5382917f953603b760e39cf1ea7 SHA512 0f5ec46c57e3b5e50cb8430c89db8d9c129e80ca11a9c398b5312bfe95001e19ca3efbfeb01c3ac09c4ce7e26c6ee1f352f7e114ecef78cefd68c54d2d50f5f4
-DIST unicode-xid-0.2.3.crate 15174 BLAKE2B 5cfb2a094047106a45eaeb77ebc1ae2e17ca51ece71082c127d3e2bf36773959f52df1c6df0d0d5cbc40ec4ee7f81820a094fd7ee99f01a2f99a1f7f68317223 SHA512 2adea0c8447c9450be34859f2b2e2b87a61b5e313685da994d21bc24a96dd94088f3320bcdb8d20466a3fdafb0bc0375823f0c28ec0077c9c42a9818f66ac1f5
-DIST url-2.2.2.crate 68555 BLAKE2B f8e59f784b6c2e16bacfba36ad68670a6af17c16ea3b0866b5aa98e5bf4686cf1b1aac9b1f0a0ea3b89a01e044a2ca37830416f42d147158ea8e88f23fd28ac2 SHA512 f9b6ad99d69ff303283b3fd9e98945fbd6cb411a3d141badcbb3a0566723a451375e6dd5d5357e3eb7a1b5b1ee5756a2347c43817db2de6fe35b9004b090e077
-DIST url-2.3.1.crate 72777 BLAKE2B 6ca0e537baf373b92269b2531945c1cdf360f1566cae4734dfb96f05a605e5c6c82e3192a1b9dde0ff22b92b87aba2d56e32a1bf17882b4de15efd7cdf52bc76 SHA512 8224010bef067574481e5d84100d944782d52b49db7c396ae2b4dfc145ed58769c15440d97a0fed4d2f9857592a8601417cc5b1bdea959c47a3e7a1f7182ed0d
-DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
-DIST version-compare-0.1.0.crate 14169 BLAKE2B e4b329f737684f43dbf390d96d8ea0182b2905120742a107e6847ae94201223206f0f111093f9490d103626f30d7a77374f10a81218a2b7e0a953a8818479d4a SHA512 d1b1a96f528e9660e38b6a08adbc186dfa93fa3e698029f68efcdea3de82c3e78cc0a2178e49281186d58de0c24ce3e62ebf1a0ef1aafa9297931cf19408d9c6
+DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
+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.12.crate 51145 BLAKE2B bbd5b7c536c16b23f26bc520298172a61a61cf72195191d1d3eddcf54ef0ceef781902ad2c0033fab5aed11229400ec537e3cf86c24645a6d111b387ca8d54c7 SHA512 dd8054e20aac5320a2a6a7d47640cc56e48c2b6db01069786382fe5ae19e9b307fe7f4811ce5b8fd283a307c0aabb2b7f57101e05edadf79636785128b5cc265
+DIST toml_datetime-0.6.5.crate 10910 BLAKE2B 93a21ab2784e96ee2e6b56c7b4f733f6ac4c68c1e7d7dac3fbd8aceedb3580e25b4a9c7d9c3f9b5ed152560353b3e80906e37824956dc4ea90bc6f039768f6cb SHA512 502bdedbcbd2ac9fbaa5f4b51f2e409af185f3633f01f8845de5e3b007f2400215ddeb82ac588bc915ed5a5f9d7251ccf93fe2a57cd40fca2927f4c0966357e6
+DIST toml_edit-0.21.1.crate 101661 BLAKE2B e794b6121ba7e2b1b3f50966cd40eebacee6968b6b28986cfe4cb7312b51ffff19f74826910d8e4ce307f74940f11e71e6afdd768ac196427bddf44595bbc797 SHA512 10cd3b16f763f55294923ce8f166f96fbd67a0acc4a93a46fb3044d8a38148097c592ebb405ced87030d35154abfcc971eacf0172b624ab477a11e616efbaa07
+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-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.3.crate 10913 BLAKE2B 5af25c7e404121acf68caaa5b4109f4f3cd56093575139ce54a68dc14bd2238ef1d3cd2c7626a1a9e860433b15d517b57af264dea1f16cd59827bfa3cc4e93f2 SHA512 1a624e7baf2c74da48489558f9327d935bde67812eec50e205a4060180612d7e6d7d18f18c1b118bd7b08650cd089d8c1574db3fbd504a6915c9cd3b4ec09b59
+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.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.8.0.crate 44043 BLAKE2B 6a5e3008f0399d5606ea4ef51e5932aedf2a02e747b9bee4b4c2c6646cd959a720373c346a734c00554ff0359fe42bdf471dea5029e23a9e70164e20895cacee SHA512 fe254f0bf6b863538ce568405569a4c755b33bce561148661b10985bf4485fa7ee7a6ec650d93656552b3cdead46b2074ebfd45b040edef19cd1648300f68ed5
+DIST valuable-0.1.0.crate 27718 BLAKE2B ef5ded994c9a6dd302bed27f0d757447b0c86dfefa499c1ef0d25c3a6745ce61cfa2c926826534c9f605f9b89b4a19f91f06f94ae7c03f1ddc4c58fab3ae58bb SHA512 a97f65db1f1c5049a276dbb0e45e25c6fc6ce9d27ac1fcd77c945324cd8216ef60344065c79799ca04e338455e4f7422c44078eea32d5fc359dd0211ee7eb387
+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_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+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.1.crate 15804 BLAKE2B 9e453a1e548157a08ef1f2ad5883c3d4dbe2a080a0d1324ea7d238d7c577279a424e7aaae7340406ce0e2f8c244e65be5628e25effddf033df3a28fec7533ae5 SHA512 1a676ebe81833893335101d6dfc4fcef50fbc0fab0bb55aff600eddd0018a7acf5c07c436d43a24d742784a46004606957f1a3c4fab4721f9b7e6610fb43760d
-DIST waker-fn-1.1.0.crate 7114 BLAKE2B e510eec0490f0caca3930000cecccde209ad387d1657c380f95122c68ccc15fcbe0684315d0aea28f094f2c65f7b7b08ae62f6ec95e0d67fc47e6af0ba4589e9 SHA512 80f612597534d9f8bdcd5e6bdff740805efe28242822bc6db360e114a23cb47ff88c74b8ab855bc764f0a73545e85a69d76bce1441e5899a36e41ca270695dc5
-DIST walkdir-2.3.2.crate 23516 BLAKE2B 473f2b51aafd6ac17e5c3da8d545d179b31486b3a65ab39fbd8bd7fbb2ebcc24bebf01781200a26a68f0b1cb464f5763a919aead3b03eba5a7e1be6efec5500b SHA512 6c44071354faf37720ec4117ded34c8d530489542ee107ac26a7a56ef4a882b9003e22e84f1d61f6078643521343e35aa1f7b57c838779e78e5937a667bf82da
-DIST wasi-0.10.0+wasi-snapshot-preview1.crate 26964 BLAKE2B 525db01649a5981ee82ad80a1a4bab9baffd235262452675619f36a1b454017a74593c53c129f8c30b865994bbe30ef19cebaad9d245ccf54b9b07ef70d5d8ec SHA512 88e2da617f50d9ebfb1e0c5857321fb86b5ee88ae8a8d199d3cc092e0f39688a2cb68503f7c6bb09dd6bc50a9a03597a1eb2e032150fbd0d0b8afa02ad771c88
+DIST vswhom-sys-0.1.2.crate 15852 BLAKE2B b21fbc0af440d3feac8ffb769f951f504e01f630d6f806d78a8f218eeb09ff8940328d6a9289e195deae9fdc43fdd55cfd037ae9c57b366ae57906b80d2f4785 SHA512 cd7e7b9e1953c70470d2f17210e83d28cd2c5ab8fc34ef0c9e06390e928853e375ed7bc2bda343b2f15820e989b5adc5bd33d9cea078716bc31545ff019435c8
+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.82.crate 166376 BLAKE2B d42f24970c6d24331633230bb6d09338531b501c449b2297c9bfa52344c97cf9b965d70ebe81267e95105712d51e03b16c33de4d2ca43b57036845edd28bb983 SHA512 406b8c0388d6e6c5bc45158819fb57ee05d30a48c776c3e40490512f5f14c04f4da59d2a74d4ae00cbcc16146b0c921f554aebdc79ca9159c24c5dfd7e514b99
-DIST wasm-bindgen-backend-0.2.82.crate 25764 BLAKE2B 29b7e2c49c9912bb84cdad7b803b9929a9e9a0d4fb65a04170a43241ebc49e40324bc1d59d6b71c2744632f245ade26518511f95a06b2969c75f476e721fef5e SHA512 07b3b45959c768b4aa9b12c287774036650e067998c18132a6ac56df735e0e647e998ee00cad8c27bff43efdb6d7d7a1778356dffc4c138af3b32e602b62e179
-DIST wasm-bindgen-futures-0.4.32.crate 15217 BLAKE2B e70e54a8f034b3a3c9bca4e495675cec45d9310b0ea0ae27f0b2802dd8c6469954a280860ee7f8045188a5d1994391e5b14ccb83a45d26389ec4fee9f8574f48 SHA512 9a9fe7c8b0754ad84cacfe31cc4ea809c89851e2c81baed097a5e631376d7774554a57599f916fff237d58f7164ce5e5a95c6995c51abb7d5dcbb715ba255a6c
-DIST wasm-bindgen-macro-0.2.82.crate 11808 BLAKE2B 47b0ec5347e7baea0c417178372f5c9099808be917068f33d0129aaa5d1ce33b6b12e99c09a3248c28d2c355b21dea321f8857020cf0e9a3bdf2f7315663be1c SHA512 718f37425ab7c1e5e98149142f2dab98f1810d0af1c3047272421fa9f4081e1735c3a30b6a45f934d7d622d6f86fdd0cd4e1b7ac57803e20257da5fc28ee1ac9
-DIST wasm-bindgen-macro-support-0.2.82.crate 18529 BLAKE2B 677a339688f1df3da57dc57cda094d9e25fe2049d6a3734fb6ee340356289aa4df469b20944e3db1958a05af0ada4a1adae16d3713654b497491ff34dfe60daf SHA512 18c72aa0e5e324e646d8d6ab5da29f068d9c3b0e0c8f54eace2ff0b36b85625d017bcb69e0e958845171b2a7fff3122b22b9815a08ec93bf32c7b44b62d9f94a
-DIST wasm-bindgen-shared-0.2.82.crate 7197 BLAKE2B a53647d302dc781ee4bb58dfde00d167800b62bc836903192edeae576c403c3bd9bd03021121572ab06970e3707cdb64a420e9f095564a84aa6415f708b8435c SHA512 58ef55f039f1e47047886d7ef617f20db616dd7790c74bca625a87b9e32600d82a9322730b9acf29a8cd22a82930c6ea6eb7e76b54cc653c9ce8cf2b43ca646a
-DIST wayland-client-0.29.4.crate 71383 BLAKE2B f7254d98ec81caeb39c88770e2d527ef84f76a1d3de6879075874fac17ae65dd9235580e6d65537fc1a45d3b3a13cf371106069df0a15ea5f0bf5e4c079b4e9c SHA512 5fae9b353216521175bbba70fd5e22504ac5b1c44e4f1a3ba1609cfce625ebbbef41c26970f9808f7e83edfa01ece0ff4e2b6d7372f9c5e79e9e4956807d95b4
-DIST wayland-commons-0.29.4.crate 20757 BLAKE2B ee1921fe8b5b56b92dc1346cb40f75bcca31d63a51318c5ae13a0c0c2260cfc8eb4ad4655d073e320436d0640c1f9f18e6be1614c878ce9d5d37e0f173b2c9fa SHA512 3de188ef2c9c7f0d4312afab6ed64d8c3cba212f9a84f603b3ede7e04fa78dbb722cd0237846eda3261af33d1d71d2fc9f1e94351697aeff7a96b3ea7747db6b
-DIST wayland-cursor-0.29.4.crate 6136 BLAKE2B 62148c18c07e10f074b2df71df30f59717e87d5801dac56ed553a1eeb51c73ac14807c73043d8b0b374061a83ad011bff674236b041a4b36288f9cdf74588eaa SHA512 2fff73d6df61492a4f5b056b1c4c1f2899b109015e615c2dbd9c7cd1943502d39f10465b36613d890346c8831d3e791cd451535951a63a66336d218ca0bfcd0d
-DIST wayland-protocols-0.29.4.crate 140842 BLAKE2B cadd086be59d41802eb54a86dd589925d0c3f1c8dd17412caac851c8dd9dfa0493c374a4230e179f31944b5398b59758cb49835002be9e6e7ad4fe436d002a35 SHA512 4e92ddd5f65f7f5450041df4a6f858bc78fe5c79a0d4445ab62d0ed0a610039825f0292c78244275ab430c019682a749da33249c75e0a493a65f5d594d927d57
-DIST wayland-scanner-0.29.4.crate 17231 BLAKE2B 59bb2fdff30c3d4a5009b461eb169e4e97a0693f970188cf98a2ed764debb956c573df66b0f96dc884941a096f831ff28a752328914db674f44e974ed08d550e SHA512 aadf88eeb8c46ceefacbc1f3462b88b92f03115e229494b3896a172b91bf2981691d023eec9b74208f17a5334c538e12ed5aa841ff26f13133b4ba230a6e38de
-DIST wayland-sys-0.29.4.crate 7919 BLAKE2B 15d7e3d4f6a62c8966d1aa6008baf28f43be0ad5211f5aeb60ced1e04fa95c28169ccc99f72bebeb52792f2c9a16288a21aa8d6b213b132e12d7ca61d19dd769 SHA512 7c2d16cad22b9697c265370c04cb063512677a48580574ada643a1d6025f90adb935d0e7105360960a3bf25faecb6dbb11a6a0f3238d140b11037c8bfdc1a31c
+DIST wasm-bindgen-0.2.92.crate 184119 BLAKE2B ca256c686bb3854492bad6afe3cd27dab314561a1ea2e0205579820066b462bacdb2cc01075fb420bd20eb33b03a648ce1ff46feee04d8759ea8aa990ff8232a SHA512 6e46501276c0d4befbf930c816d6ae6c3764e3b5ce0ef4aafa627a6ea371f1a056ecc15970a817e9e9bf51c0a2ffa57df427d758b2d367beb6a474d75b8939a5
+DIST wasm-bindgen-backend-0.2.92.crate 28348 BLAKE2B 425497aa7a023b70549c55d5a15dfed80877c5503863b186c0a9d11b29551c4606c1cd5961c7dfdeee2eab5662952ad7ad215513e93abe727a33f84b30bd181e SHA512 22e4f5848d62bd1fd55f4f054ea1293e223b3cd6f916bde2523eec10388e733623492c3a3246d61831e696dffdec5d000b95e9aa1217be6e38dd6459872166aa
+DIST wasm-bindgen-futures-0.4.42.crate 15380 BLAKE2B a20ba9f2bc814d7aac031f1cbaec90289f63893b76c60b536a65af85379771e102d6c3d949a8528328587ac776d7a3b684c12a217f9e186bf10046a1fcb34652 SHA512 0a77203499381b6bc4e9258480d7ef499d9c26b195baf38d0b7b228872f844d24c827cd57c8e2b0176927fd5957428084f53fe80cf60b35b7ba02d02b27a4682
+DIST wasm-bindgen-macro-0.2.92.crate 13835 BLAKE2B 1f2202fdaeb78c32813eaf08b2fbd7aa9c469228386df71b8ffd81a46374e39a7104b79991f702505f9b7e97957fda8574517fbb03e3f9e93098c4d6e1e46be3 SHA512 78d2ddac88a9ca3ca5eef8a7af81cdf2366187a67d844e69f65f6893d1949f9723ab5f2be762c2217a5c21aee2f3dbc2d5d55ef0c9cbf0dec0d52d67a6ba7462
+DIST wasm-bindgen-macro-support-0.2.92.crate 20092 BLAKE2B 8e274a4053e7afc680740e811c3941478caf5342e2206e3d28cdea9f9514bedbfa4f2b6bc608817306a1c455dd7134b7e17f0f04499f6bfb5302f29b041ac7ae SHA512 92543d2aad0b25798ec20e68832b823610c2c01401088cd9cac1684a86ddd1b567b3e2712acb862060f9c645a0df509b01d9834fd3e13cdaab97960f66d8daa7
+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.58.crate 696212 BLAKE2B a76b29a2a1b46239e1e6b134004bf43bd127466d9920077196e59b3ff419e059f433f94a68c24f3a6361d4f751ad3b69c6bfa67cacec0f0a2a58c87f319cd475 SHA512 58215a0d34bf0478514affa8d85f46017ab565b1dafd36f98a1d0f93e04f909b8b09348c06a189700111b5a8bee2049640a3a3a1433c4939e60bb12f32092b05
-DIST webbrowser-0.7.1.crate 20119 BLAKE2B ff19cf17cd92a8b6752a8f051ae1373df99e811e57e9c00a50c7d016b0f857147e7b5c24cf7da12ea465607fe8a828ee079c6c9b718bc3466e2d77cd79b71c87 SHA512 da404da0eab4e82d4794687425d81bce0c479e162679bd7e1c36100970cc7f6cc3230718c5d310d62b349176883ee2f317801a445a1a56df88ce7ee91b6e23d1
-DIST webbrowser-0.8.0.crate 26406 BLAKE2B 6f764de667344b4d578d30cc40fca859fec4b21509b6e654a2dc236f82b0af22d829d4e5b58d5548fe789b1b8f72162206d71dd1b1d65d84a03da22b95a311bf SHA512 a40e98042d81165510e154c60a3124ca0b46b0c2a2e4e6df77738dc282ac62e1d692d281f80858aef7fdce3496c9bc4bb753fccaedecd25924c1b3c2241db249
-DIST weezl-0.1.7.crate 42166 BLAKE2B a3a2a48dbb444b2bd910e1470507209f3d0acc75d88e22bcb42b5ca7ab8edbc41fc9e49cb6a2e18cf5e470d7bd26f4e4d9e30ea01c3eb543f171289a86927fdf SHA512 3fd8cb01dde494371df57001c97be90418b642ba88b0945cd98f973a4498743b83d383bcdfc8884db1da75271aeef4ce3b418e425f23690f12a5cc645c418e90
-DIST wepoll-ffi-0.1.2.crate 31309 BLAKE2B cd1b01c9fdb6482baff3ab12a9926c1a5a9b6e430e4609890a94b13480f8223de166558724b4d6926d6e9dd7f466926c783df54f9beabc75d646edf4f3429a73 SHA512 f0f5c379d08642aee9c6ef36175b9d858ee1cb7d444b832d6e7ad194167a4db2de5aaee3b2356ca42ef9f48a9872928c61b456305c05dd40cc53e5204686b8a7
-DIST wgpu-0.13.1.crate 134513 BLAKE2B 363d849c1e8c986d18e3bd3156263d0a61bfcb66bfcdae57b1a8dab9c5e3f75b700280197ed265222940d0ef47445324ebefd626fe901783c20d8432005cd582 SHA512 68dab61095c454f2c513a645624bdc351bc2dff1e6bcd392606417f2ed14adea7f19860996e2f7e8aef59065a3bd5037dca8d883358328b6fb0925c5aa30ec6d
-DIST wgpu-core-0.13.2.crate 192815 BLAKE2B d8dfc0eacd64c850761b365b2d6babbedbda483cdf4db6239c689bacce5bbb623342ab494acb6f0b101a748c867ec2f848c07555a76c75e06739990825a75e13 SHA512 a1d710c7c61848a2e5fef643385da75aef7e14e4e8fe6149c117ddf60aab3c73e25b8973821f711c8cd236dad5e1328a611d1e3b795baac97753988cb539d88a
-DIST wgpu-hal-0.13.2.crate 217991 BLAKE2B 1f4f0ba89b14c99f7bb907cab9495f00c2ee6904febefb85e08be4c9d9dbadc12e79f3b8eb76e9e2b4bf8daeea2634bdad04288d74ecf51852fcbf9be2eb56d4 SHA512 cd822c820e769ccef2e7499f47ed8ad6e96450e0ec211bb18a1535b9830dc4fd3293c27b4ae8191b01de6213de4a6e29470e5e19b2c4d81eb4276daf83d10f5e
-DIST wgpu-types-0.13.2.crate 35393 BLAKE2B 5db21e7b6668a466ca747230eff91a90deaf8113eb5394ac556a58c5dbc24b6e9e63df49ca5272c778426a414682aad48b1869af0b298dc1f33ed8ec12fcd57d SHA512 814b07ca79b659707a79186066cd2c4ee6483aa3576ba275264a7d5f63e84635aa8ca3ff533b096e58fd96714d672d01660cb6e582c699d2c1a8bc2f84ce64ec
-DIST wide-0.7.4.crate 70154 BLAKE2B afaf3037dd661022cd814dea899b773ed0055ae677362eb10d2b47acb7006fd5eb5bd7b5fff4830f0ea35d1141b1517a061101a4dda069ef133037c78ed04332 SHA512 2a734974ce336a556e60dc6bada943d2920477e95fa444ef3f566e6e1a281fa03446fd8de4a6614cef05487ffe3b559a4ce99cfd6934022170c98563a9f7e8e4
-DIST widestring-0.5.1.crate 41338 BLAKE2B 4d202d15df38056a004ebdc721bbe5d0fd6ab28f957dff269f0b90ab3dd08d7521dd94d00b1b21c5cba438592462989e9d360f4b566faf075fbb091982dd344c SHA512 ef39fc053cd98c070e502d0c53acf27965a06583805fb6d8b1228f76063ed343382500917ae33231470c5af3d2223070d36f394758bd6faf4e298cb981cbe3bb
+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.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.4.crate 140361 BLAKE2B e1cab07eec353b487f7cec5ef7924dfd8b892a58332ef492ad0ed2baff77766dfcdd4aab4b16c1e28b5704702b12e5f8c0cec6a33836283b628cec4bda2b332b SHA512 6a4e92be70b639ad7870db2a1425f145448e480315ae1d2f5de061c4a2b4be3dd83a2971138dc6de107356947a8bc40ec869b7b0f03a99873065f07217cd8b62
+DIST wgpu-core-0.19.3.crate 235851 BLAKE2B 40ffb89a2e4b960c4b88239980c007d70dbc4196cab10bedc5fcf9092cf2cba3423261eec34eaae1be098b83d82987f37c18e908a73118007f471cfa545d7d0a SHA512 330df424655981937f11e32c70fc2ada5f21dbfe5e82961eb3c0093ff329f5cd7db69b7e05126bbdca5fd04c4f16a08392daa0b3afee609b18ad67f5cb2091a8
+DIST wgpu-hal-0.19.3.crate 289888 BLAKE2B 4fbbecaaa29b3691156a4923d8c9bfed7fe1f84a7bd633449bf70c196ec7e96deb1f85953b2511d1c7fb471f3663431e22d4cb12a6d174507686e448fc846f11 SHA512 372e63533c796859152b21babce39e8decc8e5ee533a9ffd203f08fb7eafbbcffcdf8057008cb0fe36756ccb42eca77baeb35c501bff27b4c6640eaf547ffa08
+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.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
+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.37.0.crate 14060820 BLAKE2B 4993494caf29e403e275964a80ce64469e6ec3a688ba31c7a3d0e261c160f6baf3cd84754bd8661ed38e593f2f8dca80afd0b426104a9249cbdf5cd96391d59e SHA512 d10347d7cbede894f7acdc988e197d76b8b35f09272a1f525f0307b2c5005ea36b106b99efb2f06fa4109fed8c95257c420cc54dcb79f302d1e98438c823e223
-DIST windows-sys-0.36.1.crate 3347053 BLAKE2B 818f7812bd9a55a4e95b3d461fa5fcc14569a159882f950d20fd5a6b7d2a2841f082c0bccaab657f5830549e6286a37d9f8fdf825a42403f543b51e35b2d20d4 SHA512 80973e461bef3be0d0d0c13d02b2129aeb0d0700768d637544315654126f101b39f980738035fe325bd96f549493a2245bd7b82511f833efa7bbcb2f62266001
-DIST windows_aarch64_msvc-0.36.1.crate 661960 BLAKE2B d503150a05c4aa6ec376d1094ad24a7a4b3579d8f60cae65f4a98adfe830dd776c8996d5c3acfbfca1a69598475b918b5de2a162e3253b0b28cd6aa17de2dc13 SHA512 d0c352c78caec9c71bbaa1a688baab8f39a33c903c0492b19398c76e08194183e254ecd3a8b24af3e7e5e1d9d97373dcbab54499236829898a4fd153cfde2ccf
-DIST windows_aarch64_msvc-0.37.0.crate 661960 BLAKE2B ae184d78d8663ac491090210eaddcabc29da3ed2bc9b551bf705196f3323063c1e07f011d77760d0682347843428789a23802fd4889c01c99ad0e7308799abf7 SHA512 3d249b39a2aa329d56965ed56b171fe0996f8078c0fe49537d746b62fddce37e90d68f2a31e51022d9a6b693db7e2e35ada399fc8a125903f4f9d7af7b651d8e
-DIST windows_i686_gnu-0.36.1.crate 818115 BLAKE2B fdb78cf88e1049d1ed6c474f870dfd1ff37b48bc24726d754cfec5b3e77075162f291f93aa709c07c9fa38ccb21a6c31cb5149dabc2cc8ad8a85c03408384a0b SHA512 e2c60e6639beb879472a06ed4462667eb4a78385df6bcde1ca579af759cf2b4ac70e84f7dd7b736e7fbd1b129061555671fed4b83bcd81a6083cc013963194a5
-DIST windows_i686_gnu-0.37.0.crate 818111 BLAKE2B bba5bfc3e85dc38fef52ae7d00919262a971ecb381e6236056c29586335efc69f4a6e020c91d59f85760191ad7626a3cb2283872b009788046dea6cf7aa38fd9 SHA512 7f3aaf30530d13d9a9c6f20df4abee8ca6ddda25de289551b7223a7092277d5ec4764c048bcf566ce49b085b78d567f3a6e7c62d6d5fbe79b671dbb2d9526aef
-DIST windows_i686_msvc-0.36.1.crate 724575 BLAKE2B cf964bec007d8432e2009644cf7f89ea7d910ccf9512c067b7bf5c6c825208ce4a36e9864c0cbca137f523983eb46e58e4bd01054cecd7ac7126d2ba9f67ac0c SHA512 02bb1507981229422498ce29f6c777d5e412358040128f84b09d948ccddf0461b078a0a20cc7f6ab7da8595121bb369453ae9ea1f0506aab715662e8c631e737
-DIST windows_i686_msvc-0.37.0.crate 724577 BLAKE2B c83f437526293ae1326f4ed7598c66b0b0ce71ffc85b24807203b732fa9745a12ef1b339c28b0fb51614408503562991bdd611ab3721c1b37d83841121569c4b SHA512 b95650193a0a6f71cc8b66ca380d4e931d1c4a7a1e38a0b8222efc164c0e8c8c3cd21f26cb0e503c64e08d28e2922be5fce05302f2552086585bbb56073f077c
-DIST windows_x86_64_gnu-0.36.1.crate 790934 BLAKE2B 9dec5d966bdc89efbc81989acca242d519f51676ec37487df2bfacd6bfbc5a8de2871be72c5b96a073a899c666e3a39aa60d493e7df39fa90efe869fb744a332 SHA512 598b69e4f2cd3d68f910d526a66dadb465ff30a8c261c9a4455aa1c5b952d23c04f8edaa063cd16fb43564c116a13f06d607f3a0a9c7495054b8bfe1c04d1865
-DIST windows_x86_64_gnu-0.37.0.crate 790933 BLAKE2B ddf80027c50c150ffb542b864f4c2ce62511195db59956bfd7ced85afaefa3a53a4eb67f5c6a72a1571e8b28848846d2a199e4c9ab2b8714190952d2a8993944 SHA512 c528d0e7fa1a3e600d9adf055fc42bd19e6871feb99cb1fc1631a9a078824a9328439db17e3222c76dc8730951251478939033215a32b240058423a145877fe1
-DIST windows_x86_64_msvc-0.36.1.crate 661999 BLAKE2B 4cf967f10d4ce148bac967598168752d1996b4ddf5278a8fca53360566c37c1a014bfb4dfdc0ae2d96e01196c42eb4906ea80d8e9dd23b9e9f3163631c9e253e SHA512 89c22ed51a74f531662d80ae0fa5e0215728db1e6caf3c13eaeba95a93548b43c00b8474f52553ac866ac83c203b6c22dc44fbc870e882a4c9c97ba54b87c631
-DIST windows_x86_64_msvc-0.37.0.crate 661993 BLAKE2B ec6509a2e07ae8f94c5cb0cd6eb507b504782702698c93ec86af66c9bf3587d2dcc7b7f5a5da95ce92df42091633378374f101d64685cbdc8ef55d49523c41bc SHA512 ccfb98753311f32a591b94391dc4a8d9ffb5bdbb09e83f082b8dde6077e5ec710dc380a2a6cad90a00da5570eacd74dae810108943801a0615abf53c35ff7da6
-DIST winit-0.26.1.crate 333842 BLAKE2B 6eb454288c278be0817484fb5558e0463b4e31f76f7de73dfbb0295c369d6f2d4f1b8b111a620f30597803f6511d8dcf9b8ab29f1377fd798d662511b8013ea2 SHA512 1d9052c301263e5895dde17783600116cc88d972cf505fcfde838f13a93bc61c552b24feccbd0e4c30b64d186c817d21f9ccbb5bb48adebdd18d286bec9bf9ae
-DIST winreg-0.10.1.crate 25725 BLAKE2B db536f2a098e4ff6ae4ff80a19bd2029030d68007c3d6100f5135da1a7c223463fc17640f533bc1d4e8c53e9becb186d98351719b3b6276802c68cc755b9ba4e SHA512 09f2d18f62c3c427ebed40d667b672bb778629502ad3c39541f324b2d5ac41f0822c98b7e5320314144130580da46f1e8e51928941850e7d4af28455a564360c
-DIST wyz-0.2.0.crate 12926 BLAKE2B dd4de5ec403e57d8362a15efea78e5217164dfd6b22c16458ffff8722e8cd3f28b567a2b9b1bc2774d6c8ba153d37e350929e98b38c82d022f7890052da30e37 SHA512 3a16c3e81d3595ddf1e7816e698eb4d07c7455dec579fd5e97b5d8b77e626cda52f3cdaee71e234e5e500a7ac58b9d1d5f12b17264686f3f225d5e5b0d315de7
-DIST x11-clipboard-0.3.3.crate 7357 BLAKE2B c75868fb79574334e581a2d0e278900843471d7287a31455774fe0741b4cced5d48f0630a8f041c5d88619f79f6bf447d228402bf040733f60b368de3e663f85 SHA512 b45283bb897f3fe1a3d16d12a962376a26c2c26e37140b32c064f9a768454dffb584af2f24e13adf00dbc5e0095aacfe40b27fabc7745598037ddbebaed688e3
-DIST x11-dl-2.19.1.crate 64664 BLAKE2B 0a3a74c25e72dfb8fd786226abfc2391c245bb1c1275f61a308218515d98583bb156f656765c3cc4486e77982ade69bc6b2d1bb1941653219cd5f92329fc33c1 SHA512 6d3fad40bb305304c92312330698f722d61fca9be7294b273855bd4e305062b79990b93a7cd05f3b01a13614712ea51a2936bac6c532bd2da2a1e51b397208b1
-DIST xcb-0.8.2.crate 129071 BLAKE2B 83596850decb752c8fca84c383986e3cf1ca0708a682c083aee5e1d40d7ede2758e1a209d45745685a625d98d9438927e8f68de762bc01e843e91d9cddd16101 SHA512 276df8c84e5a416470ea5d7d29065acfa0f3b1c2f6f987242e30ceed746ee7c004257a26d01dba4f2366a76c5878b154242ed4f4cbe5b7df1b2c9c40c4d60c46
-DIST xcursor-0.3.4.crate 6069 BLAKE2B 0597eb71a6ad7ad5360674c76bab042a80f1f52f490edcdd824661288eae98f2bf2c4d7da7079bffda0fbfed0409a7ddb329d855deb784fc952d1c2f2d5dbdd1 SHA512 229ea7516d8a07c3fac46b70329e89c19fcf282134b5063b8302a64f8723d31b52b4fcf23c49aecd3a3a0a736ba4a52cd033f8c3db21a775084c6c0a0e1f6c1e
-DIST xml-rs-0.8.4.crate 52690 BLAKE2B 140d4e725ae0e82c949838c1f6d82e1fbb00e2df4d51b74486597302d4a434ccb46bbd6f5e97636b4947c0092793928c29837a3290bb525344e8a27c0951a42b SHA512 b21b0db9ee7cdfddae7c110e4fec714d719e75ba139744c290692d660caa425aa8b1ece644deb5f1879f21c0561b9b412b9ba8931f7f5b4e220ef08f8a7fc5e6
+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.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.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.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.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.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.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.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.4.crate 828019 BLAKE2B 08163b63d934114457cd64b1c372f8a0cfc1ebf48a2efb41d79031c58ea64e023acd32d2f5075b8b78536998188138562e584ece95f2021b4bc71087ac45f026 SHA512 0671fa3c0463c6d65b525ece8bc91eab2f75cb534de86ba2b1e854d4136fcb439717441881206dba7cfb602493bc24d2aefa96abf8977f5a0fe38d41eadc90f1
+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.5.crate 159316 BLAKE2B d28c6a069e3d557335c09ae04f1d90a9086b1744d711e259da230c031a0302e270e304f8f9e8bc690c01cedcf07b46e05938ab3468b3e388ae8c51ac361b6408 SHA512 5395db16797beb158e9458099279abf53c5ea62c65584bbb9e0111213ab21c88cd0b0674062757e57ceb6c762a349f22db6ef60deef866fe15ebb0818287ab99
+DIST winreg-0.52.0.crate 30148 BLAKE2B 7b458d356ed1385b23ace88d8a7e2a4e2e3211ba4bd22e6488b60fe508ab2b5f6d93c7547e45e0564f512391a8fbc2af1bbd3e3e3a773865d87adff67b5b2fb5 SHA512 50659afe4fa9671696bb5c6a50d62e493ef5359a324a71f7877e2ff0b522560ad65196ac6d2f7f4117edb2e47e84adce7d1de5ed2ce273f132cb2d5006472e25
+DIST wio-0.2.2.crate 11214 BLAKE2B 7356229f90aa50d6ac8a7651637967de3e06755a7a45eab2a144e13c876058553c22129abffb07717b1715233f6cfc1efe90ff60c1877f4291fabaa4b5ea283d SHA512 13838de6e01b20de8996c7aa9efbaca5bcd9e4551614cfc10bee45ecca4bcc70b953b2c59fe460d1a054b3ecac13445b020aa244ea70686fd19be8d65c539b0e
+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 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 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/ruffle-0_p20220816.ebuild b/app-emulation/ruffle/ruffle-0_p20220816.ebuild
deleted file mode 100644
index 0447e8da2522..000000000000
--- a/app-emulation/ruffle/ruffle-0_p20220816.ebuild
+++ /dev/null
@@ -1,515 +0,0 @@
-# Copyright 2021-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- adler-1.0.2
- adler32-1.2.0
- ahash-0.7.6
- aho-corasick-0.7.18
- alsa-0.6.0
- alsa-sys-0.3.1
- android_system_properties-0.1.2
- ansi_term-0.12.1
- anyhow-1.0.61
- approx-0.5.1
- arrayvec-0.5.2
- arrayvec-0.7.2
- ash-0.37.0+1.3.209
- async-channel-1.6.1
- atk-sys-0.15.1
- atty-0.2.14
- autocfg-1.1.0
- base64-0.13.0
- bindgen-0.59.2
- bit-set-0.5.3
- bit-vec-0.6.3
- bit_field-0.10.1
- bitflags-1.3.2
- bitflags_serde_shim-0.2.2
- bitstream-io-1.5.0
- bitvec-0.19.6
- block-0.1.6
- block-buffer-0.10.2
- bstr-0.2.17
- build_const-0.2.2
- bumpalo-3.10.0
- bytemuck-1.12.0
- bytemuck_derive-1.2.0
- byteorder-1.4.3
- bytes-1.2.0
- cache-padded-1.2.0
- cairo-sys-rs-0.15.1
- calloop-0.9.3
- castaway-0.1.2
- cc-1.0.73
- cesu8-1.1.0
- cexpr-0.6.0
- cfg-expr-0.10.3
- cfg-if-0.1.10
- cfg-if-1.0.0
- cfg_aliases-0.1.1
- chrono-0.4.20
- clang-sys-1.3.3
- clap-3.2.17
- clap_derive-3.2.17
- clap_lex-0.2.4
- clipboard-0.5.0
- clipboard-win-2.2.0
- cocoa-0.24.0
- cocoa-foundation-0.1.0
- codespan-reporting-0.11.1
- color_quant-1.1.0
- combine-4.6.4
- concurrent-queue-1.2.2
- console-0.15.0
- console_error_panic_hook-0.1.7
- console_log-0.2.0
- convert_case-0.5.0
- cookie-factory-0.3.2
- copyless-0.1.5
- core-foundation-0.7.0
- core-foundation-0.9.3
- core-foundation-sys-0.7.0
- core-foundation-sys-0.8.3
- core-graphics-0.19.2
- core-graphics-0.22.3
- core-graphics-types-0.1.1
- core-video-sys-0.1.4
- coreaudio-rs-0.10.0
- coreaudio-sys-0.2.10
- cpal-0.13.5
- cpufeatures-0.2.2
- crc-1.8.1
- crc32fast-1.3.2
- crossbeam-channel-0.5.6
- crossbeam-deque-0.8.2
- crossbeam-epoch-0.9.10
- crossbeam-utils-0.8.11
- crypto-common-0.1.6
- csv-1.1.6
- csv-core-0.1.10
- ctor-0.1.22
- cty-0.2.2
- curl-0.4.44
- curl-sys-0.4.56+curl-7.83.1
- d3d12-0.5.0
- darling-0.13.4
- darling_core-0.13.4
- darling_macro-0.13.4
- deflate-1.0.0
- derive-try-from-primitive-1.0.0
- diff-0.1.13
- digest-0.10.3
- dirs-4.0.0
- dirs-sys-0.3.7
- dispatch-0.2.0
- dlib-0.5.0
- downcast-rs-1.2.0
- either-1.7.0
- embed-resource-1.7.3
- encode_unicode-0.3.6
- encoding_rs-0.8.31
- enum-map-2.4.1
- enum-map-derive-0.10.0
- enumset-1.0.11
- enumset_derive-0.6.0
- env_logger-0.9.0
- euclid-0.22.7
- event-listener-2.5.2
- exr-1.4.2
- fastrand-1.8.0
- flate2-1.0.24
- float_next_after-0.1.5
- flume-0.10.14
- fnv-1.0.7
- foreign-types-0.3.2
- foreign-types-shared-0.1.1
- form_urlencoded-1.0.1
- funty-1.1.0
- futures-0.3.23
- futures-channel-0.3.23
- futures-core-0.3.23
- futures-executor-0.3.23
- futures-io-0.3.23
- futures-lite-1.12.0
- futures-macro-0.3.23
- futures-sink-0.3.23
- futures-task-0.3.23
- futures-util-0.3.23
- fxhash-0.2.1
- gdk-pixbuf-sys-0.15.10
- gdk-sys-0.15.1
- generational-arena-0.2.8
- generic-array-0.14.5
- getrandom-0.2.7
- gif-0.11.4
- gio-sys-0.15.10
- glib-sys-0.15.10
- glob-0.3.0
- glow-0.11.2
- gobject-sys-0.15.10
- gpu-alloc-0.5.3
- gpu-alloc-types-0.2.0
- gpu-descriptor-0.2.2
- gpu-descriptor-types-0.1.1
- gtk-sys-0.15.3
- half-1.8.2
- hashbrown-0.11.2
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- hexf-parse-0.2.1
- http-0.2.8
- humantime-2.1.0
- ident_case-1.0.1
- idna-0.2.3
- image-0.24.3
- indexmap-1.9.1
- indicatif-0.17.0
- inflate-0.4.5
- inplace_it-0.3.4
- instant-0.1.12
- isahc-1.7.2
- itoa-0.4.8
- itoa-1.0.2
- jni-0.19.0
- jni-sys-0.3.0
- jobserver-0.1.24
- jpeg-decoder-0.2.6
- js-sys-0.3.59
- khronos-egl-4.1.0
- lazy_static-1.4.0
- lazycell-1.3.0
- lebe-0.5.1
- lexical-core-0.7.6
- libc-0.2.126
- libflate-1.2.0
- libflate_lz77-1.1.0
- libloading-0.7.3
- libnghttp2-sys-0.1.7+1.45.0
- libz-sys-1.1.8
- lock_api-0.4.7
- log-0.4.17
- lyon-1.0.0
- lyon_algorithms-1.0.0
- lyon_geom-1.0.1
- lyon_path-1.0.0
- lyon_tessellation-1.0.1
- lzma-rs-0.2.0
- mach-0.3.2
- malloc_buf-0.0.6
- matches-0.1.9
- memchr-2.5.0
- memmap2-0.3.1
- memoffset-0.6.5
- metal-0.24.0
- mime-0.3.16
- minimal-lexical-0.2.1
- minimp3-0.5.1
- minimp3-sys-0.3.2
- miniz_oxide-0.5.3
- mio-0.8.4
- naga-0.9.0
- nanorand-0.7.0
- ndk-0.5.0
- ndk-0.6.0
- ndk-context-0.1.1
- ndk-glue-0.5.2
- ndk-glue-0.6.2
- ndk-macro-0.3.0
- ndk-sys-0.2.2
- ndk-sys-0.3.0
- nix-0.22.3
- nix-0.23.1
- nom-6.1.2
- nom-7.1.1
- num-complex-0.4.2
- num-derive-0.3.3
- num-integer-0.1.45
- num-rational-0.4.1
- num-traits-0.2.15
- num_cpus-1.13.1
- num_enum-0.5.7
- num_enum_derive-0.5.7
- number_prefix-0.4.0
- objc-0.2.7
- objc-foundation-0.1.1
- objc_exception-0.1.2
- objc_id-0.1.1
- oboe-0.4.6
- oboe-sys-0.4.5
- once_cell-1.13.0
- openssl-probe-0.1.5
- openssl-sys-0.9.75
- os_str_bytes-6.2.0
- output_vt100-0.1.3
- pango-sys-0.15.10
- parking-2.0.0
- parking_lot-0.11.2
- parking_lot-0.12.1
- parking_lot_core-0.8.5
- parking_lot_core-0.9.3
- path-slash-0.2.1
- peeking_take_while-0.1.2
- percent-encoding-2.1.0
- pin-project-1.0.11
- pin-project-internal-1.0.11
- pin-project-lite-0.2.9
- pin-utils-0.1.0
- pkg-config-0.3.25
- png-0.17.5
- polling-2.2.0
- ppv-lite86-0.2.16
- pretty_assertions-1.2.1
- primal-check-0.3.1
- proc-macro-crate-1.1.3
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.43
- profiling-1.0.6
- quote-1.0.21
- radium-0.5.3
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.3
- range-alloc-0.1.2
- raw-window-handle-0.4.3
- raw-window-handle-0.5.0
- rayon-1.5.3
- rayon-core-1.9.3
- redox_syscall-0.2.15
- redox_users-0.4.3
- regex-1.6.0
- regex-automata-0.1.10
- regex-syntax-0.6.27
- regress-0.4.1
- renderdoc-sys-0.7.1
- rfd-0.10.0
- rle-decode-fast-1.0.3
- ron-0.7.1
- rustc-hash-1.1.0
- rustc_version-0.4.0
- rustdct-0.7.0
- rustfft-6.0.1
- ryu-1.0.10
- safe_arch-0.6.0
- same-file-1.0.6
- schannel-0.1.20
- scoped-tls-1.0.0
- scoped_threadpool-0.1.9
- scopeguard-1.1.0
- semver-1.0.12
- serde-1.0.143
- serde_derive-1.0.143
- serde_json-1.0.83
- sha2-0.10.2
- shlex-1.1.0
- slab-0.4.7
- slice-deque-0.3.0
- slotmap-1.0.6
- sluice-0.5.5
- smallvec-1.9.0
- smithay-client-toolkit-0.15.4
- socket2-0.4.4
- spin-0.9.4
- spirv-0.2.0+1.5.4
- static_assertions-1.1.0
- stdweb-0.1.3
- strength_reduce-0.2.3
- strsim-0.10.0
- symphonia-0.5.1
- symphonia-bundle-mp3-0.5.1
- symphonia-core-0.5.1
- symphonia-metadata-0.5.1
- syn-1.0.99
- synstructure-0.12.6
- system-deps-6.0.2
- tap-1.0.1
- termcolor-1.1.3
- terminal_size-0.1.17
- textwrap-0.15.0
- thiserror-1.0.32
- thiserror-impl-1.0.32
- threadpool-1.8.1
- tiff-0.7.3
- time-0.1.44
- tinyvec-1.6.0
- tinyvec_macros-0.1.0
- toml-0.5.8
- tracing-0.1.35
- tracing-attributes-0.1.22
- tracing-core-0.1.28
- tracing-futures-0.2.5
- transpose-0.2.1
- typenum-1.15.0
- unicode-bidi-0.3.8
- unicode-ident-1.0.2
- unicode-normalization-0.1.21
- unicode-width-0.1.9
- unicode-xid-0.2.3
- url-2.2.2
- vcpkg-0.2.15
- version-compare-0.1.0
- version_check-0.9.4
- vswhom-0.1.0
- vswhom-sys-0.1.1
- waker-fn-1.1.0
- walkdir-2.3.2
- wasi-0.10.0+wasi-snapshot-preview1
- wasi-0.11.0+wasi-snapshot-preview1
- wasm-bindgen-0.2.82
- wasm-bindgen-backend-0.2.82
- wasm-bindgen-futures-0.4.32
- wasm-bindgen-macro-0.2.82
- wasm-bindgen-macro-support-0.2.82
- wasm-bindgen-shared-0.2.82
- wayland-client-0.29.4
- wayland-commons-0.29.4
- wayland-cursor-0.29.4
- wayland-protocols-0.29.4
- wayland-scanner-0.29.4
- wayland-sys-0.29.4
- weak-table-0.3.2
- web-sys-0.3.58
- webbrowser-0.7.1
- weezl-0.1.7
- wepoll-ffi-0.1.2
- wgpu-0.13.1
- wgpu-core-0.13.2
- wgpu-hal-0.13.2
- wgpu-types-0.13.2
- wide-0.7.4
- widestring-0.5.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-0.37.0
- windows-sys-0.36.1
- windows_aarch64_msvc-0.36.1
- windows_aarch64_msvc-0.37.0
- windows_i686_gnu-0.36.1
- windows_i686_gnu-0.37.0
- windows_i686_msvc-0.36.1
- windows_i686_msvc-0.37.0
- windows_x86_64_gnu-0.36.1
- windows_x86_64_gnu-0.37.0
- windows_x86_64_msvc-0.36.1
- windows_x86_64_msvc-0.37.0
- winit-0.26.1
- winreg-0.10.1
- wyz-0.2.0
- x11-clipboard-0.3.3
- x11-dl-2.19.1
- xcb-0.8.2
- xcursor-0.3.4
- xml-rs-0.8.4"
-# python is needed by xcb-0.8.2 until update to >=0.10
-PYTHON_COMPAT=( python3_{8..11} )
-PYTHON_REQ_USE="xml(+)"
-inherit cargo desktop flag-o-matic python-any-r1 xdg
-
-# 0(github) 1(repo) 2(commit hash) 3(crate:workspace,...) [see core/Cargo.toml]
-RUFFLE_GIT=(
- "RustAudio dasp f05a703d247bb504d7e812b51e95f3765d9c5e94 dasp"
- "ruffle-rs gc-arena 4882182850be9df64565509d8489587a2f60171c gc-arena:src/gc-arena"
- "ruffle-rs h263-rs 023e14c73e565c4c778d41f66cfbac5ece6419b2 h263-rs:h263,h263-rs-yuv:yuv"
- "ruffle-rs nellymoser 4a33521c29a918950df8ae9fe07e527ac65553f5 nellymoser-rs:."
- "ruffle-rs nihav-vp6 9416fcc9fc8aab8f4681aa9093b42922214abbd3 nihav_codec_support:nihav-codec-support,nihav_core:nihav-core,nihav_duck:nihav-duck"
- "ruffle-rs quick-xml 8496365ec1412eb5ba5de350937b6bce352fa0ba quick-xml:."
- "ruffle-rs rust-flash-lso 19fecd07b9888c4bdaa66771c468095783b52bed flash-lso"
-)
-ruffle_uris() {
- cargo_crate_uris
-
- local g
- for g in "${RUFFLE_GIT[@]}"; do
- g=(${g})
- echo "https://github.com/${g[0]}/${g[1]}/archive/${g[2]}.tar.gz -> ${g[1]}-${g[2]}.tar.gz"
- done
-}
-
-# using _pYYYYMMDD over YYYY.MM.DD given ruffle has an underlaying version
-# (0.1.0) which could get a non-nightly release eventually (YYYY. > 0.1.0)
-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
- $(ruffle_uris)"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB curl"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- dev-libs/glib:2
- dev-libs/openssl:=
- media-libs/alsa-lib
- sys-libs/zlib:=
- x11-libs/gtk+:3
- x11-libs/libxcb:="
-DEPEND="${RDEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- virtual/jre:*
- virtual/pkgconfig
- >=virtual/rust-1.62"
-
-QA_FLAGS_IGNORED="
- usr/bin/${PN}
- usr/bin/${PN}_exporter
- usr/bin/${PN}_scanner"
-
-src_prepare() {
- default
-
- # use [patch] directive to register git snapshots of needed crates
- local crate g
- for g in "${RUFFLE_GIT[@]}"; do
- g=(${g})
- echo "[patch.\"https://github.com/${g[0]}/${g[1]}\"]"
- for crate in ${g[3]//,/ }; do
- echo "${crate%:*} = { path = \"../${g[1]}-${g[2]}/${crate#*:}\" }"
- done
- done >> Cargo.toml || die
-}
-
-src_compile() {
- filter-lto # undefined references with ring crate and more
-
- cargo_src_compile --bins # note: configure --bins would skip tests
-}
-
-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;"
-
- 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_p20220914.ebuild b/app-emulation/ruffle/ruffle-0_p20220914.ebuild
deleted file mode 100644
index ebad754a07e0..000000000000
--- a/app-emulation/ruffle/ruffle-0_p20220914.ebuild
+++ /dev/null
@@ -1,524 +0,0 @@
-# Copyright 2021-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-CRATES="
- Inflector-0.11.4
- adler-1.0.2
- adler32-1.2.0
- ahash-0.7.6
- aho-corasick-0.7.18
- aliasable-0.1.3
- alsa-0.6.0
- alsa-sys-0.3.1
- android_system_properties-0.1.2
- anyhow-1.0.64
- approx-0.5.1
- arrayvec-0.5.2
- arrayvec-0.7.2
- ash-0.37.0+1.3.209
- async-channel-1.6.1
- atk-sys-0.15.1
- atty-0.2.14
- autocfg-1.1.0
- base64-0.13.0
- bindgen-0.59.2
- bit-set-0.5.3
- bit-vec-0.6.3
- bit_field-0.10.1
- bitflags-1.3.2
- bitflags_serde_shim-0.2.2
- bitstream-io-1.5.0
- bitvec-0.19.6
- block-0.1.6
- block-buffer-0.10.2
- bstr-0.2.17
- build_const-0.2.2
- bumpalo-3.11.0
- bytemuck-1.12.1
- bytemuck_derive-1.2.1
- byteorder-1.4.3
- bytes-1.2.0
- cache-padded-1.2.0
- cairo-sys-rs-0.15.1
- calloop-0.9.3
- castaway-0.1.2
- cc-1.0.73
- cesu8-1.1.0
- cexpr-0.6.0
- cfg-expr-0.10.3
- cfg-if-0.1.10
- cfg-if-1.0.0
- cfg_aliases-0.1.1
- chrono-0.4.20
- clang-sys-1.3.3
- clap-3.2.20
- clap_derive-3.2.18
- clap_lex-0.2.4
- clipboard-0.5.0
- clipboard-win-2.2.0
- cocoa-0.24.0
- cocoa-foundation-0.1.0
- codespan-reporting-0.11.1
- color_quant-1.1.0
- colored-2.0.0
- combine-4.6.4
- concurrent-queue-1.2.2
- console-0.15.0
- console_error_panic_hook-0.1.7
- console_log-0.2.0
- convert_case-0.6.0
- cookie-factory-0.3.2
- copyless-0.1.5
- core-foundation-0.7.0
- core-foundation-0.9.3
- core-foundation-sys-0.7.0
- core-foundation-sys-0.8.3
- core-graphics-0.19.2
- core-graphics-0.22.3
- core-graphics-types-0.1.1
- core-video-sys-0.1.4
- coreaudio-rs-0.10.0
- coreaudio-sys-0.2.10
- cpal-0.14.0
- cpufeatures-0.2.2
- crc-1.8.1
- crc32fast-1.3.2
- crossbeam-channel-0.5.6
- crossbeam-deque-0.8.2
- crossbeam-epoch-0.9.10
- crossbeam-utils-0.8.11
- crypto-common-0.1.6
- csv-1.1.6
- csv-core-0.1.10
- ctor-0.1.22
- cty-0.2.2
- curl-0.4.44
- curl-sys-0.4.56+curl-7.83.1
- d3d12-0.5.0
- darling-0.13.4
- darling_core-0.13.4
- darling_macro-0.13.4
- deflate-1.0.0
- derive-try-from-primitive-1.0.0
- diff-0.1.13
- digest-0.10.3
- dirs-4.0.0
- dirs-sys-0.3.7
- dispatch-0.2.0
- dlib-0.5.0
- downcast-rs-1.2.0
- either-1.7.0
- embed-resource-1.7.3
- encode_unicode-0.3.6
- encoding_rs-0.8.31
- enum-map-2.4.1
- enum-map-derive-0.10.0
- enumset-1.0.11
- enumset_derive-0.6.0
- env_logger-0.9.0
- euclid-0.22.7
- event-listener-2.5.2
- exr-1.4.2
- fastrand-1.8.0
- flate2-1.0.24
- float_next_after-0.1.5
- flume-0.10.14
- fnv-1.0.7
- foreign-types-0.3.2
- foreign-types-shared-0.1.1
- form_urlencoded-1.1.0
- funty-1.1.0
- futures-0.3.24
- futures-channel-0.3.24
- futures-core-0.3.24
- futures-executor-0.3.24
- futures-io-0.3.24
- futures-lite-1.12.0
- futures-macro-0.3.24
- futures-sink-0.3.24
- futures-task-0.3.24
- futures-util-0.3.24
- fxhash-0.2.1
- gdk-pixbuf-sys-0.15.10
- gdk-sys-0.15.1
- generational-arena-0.2.8
- generic-array-0.14.5
- getrandom-0.2.7
- gif-0.11.4
- gio-sys-0.15.10
- glib-sys-0.15.10
- glob-0.3.0
- glow-0.11.2
- gobject-sys-0.15.10
- gpu-alloc-0.5.3
- gpu-alloc-types-0.2.0
- gpu-descriptor-0.2.2
- gpu-descriptor-types-0.1.1
- gtk-sys-0.15.3
- half-1.8.2
- hashbrown-0.11.2
- hashbrown-0.12.3
- heck-0.4.0
- hermit-abi-0.1.19
- hexf-parse-0.2.1
- http-0.2.8
- humantime-2.1.0
- ident_case-1.0.1
- idna-0.3.0
- image-0.24.3
- indexmap-1.9.1
- indicatif-0.17.0
- inflate-0.4.5
- inplace_it-0.3.4
- instant-0.1.12
- isahc-1.7.2
- itoa-0.4.8
- itoa-1.0.2
- jni-0.19.0
- jni-sys-0.3.0
- jobserver-0.1.24
- jpeg-decoder-0.2.6
- js-sys-0.3.59
- khronos-egl-4.1.0
- lazy_static-1.4.0
- lazycell-1.3.0
- lebe-0.5.1
- lexical-core-0.7.6
- libc-0.2.126
- libflate-1.2.0
- libflate_lz77-1.1.0
- libloading-0.7.3
- libnghttp2-sys-0.1.7+1.45.0
- libz-sys-1.1.8
- lock_api-0.4.7
- log-0.4.17
- lyon-1.0.0
- lyon_algorithms-1.0.0
- lyon_geom-1.0.1
- lyon_path-1.0.0
- lyon_tessellation-1.0.1
- lzma-rs-0.2.0
- mach-0.3.2
- malloc_buf-0.0.6
- memchr-2.5.0
- memmap2-0.3.1
- memoffset-0.6.5
- metal-0.24.0
- mime-0.3.16
- minimal-lexical-0.2.1
- minimp3-0.5.1
- minimp3-sys-0.3.2
- miniz_oxide-0.5.3
- mio-0.8.4
- naga-0.9.0
- nanorand-0.7.0
- ndk-0.5.0
- ndk-0.6.0
- ndk-0.7.0
- ndk-context-0.1.1
- ndk-glue-0.5.2
- ndk-glue-0.6.2
- ndk-macro-0.3.0
- ndk-sys-0.2.2
- ndk-sys-0.3.0
- ndk-sys-0.4.0
- nix-0.22.3
- nix-0.23.1
- nom-6.1.2
- nom-7.1.1
- num-complex-0.4.2
- num-derive-0.3.3
- num-integer-0.1.45
- num-rational-0.4.1
- num-traits-0.2.15
- num_cpus-1.13.1
- num_enum-0.5.7
- num_enum_derive-0.5.7
- number_prefix-0.4.0
- objc-0.2.7
- objc-foundation-0.1.1
- objc_exception-0.1.2
- objc_id-0.1.1
- oboe-0.4.6
- oboe-sys-0.4.5
- once_cell-1.14.0
- openssl-probe-0.1.5
- openssl-sys-0.9.75
- os_str_bytes-6.2.0
- ouroboros-0.15.4
- ouroboros_macro-0.15.4
- output_vt100-0.1.3
- pango-sys-0.15.10
- parking-2.0.0
- parking_lot-0.11.2
- parking_lot-0.12.1
- parking_lot_core-0.8.5
- parking_lot_core-0.9.3
- path-slash-0.2.1
- peeking_take_while-0.1.2
- percent-encoding-2.2.0
- pin-project-1.0.11
- pin-project-internal-1.0.11
- pin-project-lite-0.2.9
- pin-utils-0.1.0
- pkg-config-0.3.25
- png-0.17.6
- polling-2.2.0
- ppv-lite86-0.2.16
- pretty_assertions-1.3.0
- primal-check-0.3.1
- proc-macro-crate-1.1.3
- proc-macro-error-1.0.4
- proc-macro-error-attr-1.0.4
- proc-macro2-1.0.43
- profiling-1.0.6
- quote-1.0.21
- radium-0.5.3
- rand-0.8.5
- rand_chacha-0.3.1
- rand_core-0.6.3
- range-alloc-0.1.2
- raw-window-handle-0.4.3
- raw-window-handle-0.5.0
- rayon-1.5.3
- rayon-core-1.9.3
- redox_syscall-0.2.15
- redox_users-0.4.3
- regex-1.6.0
- regex-automata-0.1.10
- regex-syntax-0.6.27
- regress-0.4.1
- renderdoc-sys-0.7.1
- rfd-0.10.0
- rle-decode-fast-1.0.3
- ron-0.7.1
- rustc-hash-1.1.0
- rustc_version-0.4.0
- rustdct-0.7.0
- rustfft-6.0.1
- ryu-1.0.10
- safe_arch-0.6.0
- same-file-1.0.6
- schannel-0.1.20
- scoped-tls-1.0.0
- scoped_threadpool-0.1.9
- scopeguard-1.1.0
- semver-1.0.12
- serde-1.0.144
- serde-xml-rs-0.6.0
- serde_derive-1.0.144
- serde_json-1.0.85
- sha2-0.10.5
- shlex-1.1.0
- slab-0.4.7
- slice-deque-0.3.0
- slotmap-1.0.6
- sluice-0.5.5
- smallvec-1.9.0
- smithay-client-toolkit-0.15.4
- socket2-0.4.4
- spin-0.9.4
- spirv-0.2.0+1.5.4
- static_assertions-1.1.0
- stdweb-0.1.3
- strength_reduce-0.2.3
- strsim-0.10.0
- symphonia-0.5.1
- symphonia-bundle-mp3-0.5.1
- symphonia-core-0.5.1
- symphonia-metadata-0.5.1
- syn-1.0.99
- synstructure-0.12.6
- system-deps-6.0.2
- tap-1.0.1
- termcolor-1.1.3
- terminal_size-0.1.17
- textwrap-0.15.0
- thiserror-1.0.34
- thiserror-impl-1.0.34
- threadpool-1.8.1
- tiff-0.7.3
- time-0.1.44
- tinyvec-1.6.0
- tinyvec_macros-0.1.0
- toml-0.5.8
- tracing-0.1.35
- tracing-attributes-0.1.22
- tracing-core-0.1.28
- tracing-futures-0.2.5
- transpose-0.2.1
- typed-arena-2.0.1
- typenum-1.15.0
- unicode-bidi-0.3.8
- unicode-ident-1.0.2
- unicode-normalization-0.1.21
- unicode-segmentation-1.9.0
- unicode-width-0.1.9
- unicode-xid-0.2.3
- url-2.3.1
- vcpkg-0.2.15
- version-compare-0.1.0
- version_check-0.9.4
- vswhom-0.1.0
- vswhom-sys-0.1.1
- waker-fn-1.1.0
- walkdir-2.3.2
- wasi-0.10.0+wasi-snapshot-preview1
- wasi-0.11.0+wasi-snapshot-preview1
- wasm-bindgen-0.2.82
- wasm-bindgen-backend-0.2.82
- wasm-bindgen-futures-0.4.32
- wasm-bindgen-macro-0.2.82
- wasm-bindgen-macro-support-0.2.82
- wasm-bindgen-shared-0.2.82
- wayland-client-0.29.4
- wayland-commons-0.29.4
- wayland-cursor-0.29.4
- wayland-protocols-0.29.4
- wayland-scanner-0.29.4
- wayland-sys-0.29.4
- weak-table-0.3.2
- web-sys-0.3.58
- webbrowser-0.8.0
- weezl-0.1.7
- wepoll-ffi-0.1.2
- wgpu-0.13.1
- wgpu-core-0.13.2
- wgpu-hal-0.13.2
- wgpu-types-0.13.2
- wide-0.7.4
- widestring-0.5.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-0.37.0
- windows-sys-0.36.1
- windows_aarch64_msvc-0.36.1
- windows_aarch64_msvc-0.37.0
- windows_i686_gnu-0.36.1
- windows_i686_gnu-0.37.0
- windows_i686_msvc-0.36.1
- windows_i686_msvc-0.37.0
- windows_x86_64_gnu-0.36.1
- windows_x86_64_gnu-0.37.0
- windows_x86_64_msvc-0.36.1
- windows_x86_64_msvc-0.37.0
- winit-0.26.1
- winreg-0.10.1
- wyz-0.2.0
- x11-clipboard-0.3.3
- x11-dl-2.19.1
- xcb-0.8.2
- xcursor-0.3.4
- xml-rs-0.8.4
- yansi-0.5.1"
-# python is needed by xcb-0.8.2 until update to >=0.10
-PYTHON_COMPAT=( python3_{8..11} )
-PYTHON_REQ_USE="xml(+)"
-inherit cargo desktop flag-o-matic python-any-r1 xdg
-
-# 0(github) 1(repo) 2(commit hash) 3(crate:workspace,...) [see core/Cargo.toml]
-RUFFLE_GIT=(
- "RustAudio dasp f05a703d247bb504d7e812b51e95f3765d9c5e94 dasp"
- "ruffle-rs gc-arena 081b6883a522b38030b13744c80c84efbfcbae1f gc-arena:src/gc-arena"
- "ruffle-rs h263-rs 023e14c73e565c4c778d41f66cfbac5ece6419b2 h263-rs:h263,h263-rs-yuv:yuv"
- "ruffle-rs nellymoser 4a33521c29a918950df8ae9fe07e527ac65553f5 nellymoser-rs:."
- "ruffle-rs nihav-vp6 9416fcc9fc8aab8f4681aa9093b42922214abbd3 nihav_codec_support:nihav-codec-support,nihav_core:nihav-core,nihav_duck:nihav-duck"
- "ruffle-rs quick-xml 8496365ec1412eb5ba5de350937b6bce352fa0ba quick-xml:."
- "ruffle-rs rust-flash-lso 19fecd07b9888c4bdaa66771c468095783b52bed flash-lso"
-)
-ruffle_uris() {
- cargo_crate_uris
-
- local g
- for g in "${RUFFLE_GIT[@]}"; do
- g=(${g})
- echo "https://github.com/${g[0]}/${g[1]}/archive/${g[2]}.tar.gz -> ${g[1]}-${g[2]}.tar.gz"
- done
-}
-
-# using _pYYYYMMDD over YYYY.MM.DD given ruffle has an underlaying version
-# (0.1.0) which could get a non-nightly release eventually (YYYY. > 0.1.0)
-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
- $(ruffle_uris)"
-S="${WORKDIR}/${MY_P}"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB curl"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- dev-libs/glib:2
- dev-libs/openssl:=
- media-libs/alsa-lib
- sys-libs/zlib:=
- x11-libs/gtk+:3
- x11-libs/libxcb:="
-DEPEND="${RDEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- virtual/jre:*
- virtual/pkgconfig
- >=virtual/rust-1.63"
-
-QA_FLAGS_IGNORED="
- usr/bin/${PN}
- usr/bin/${PN}_exporter
- usr/bin/${PN}_scanner"
-
-src_prepare() {
- default
-
- # use [patch] directive to register git snapshots of needed crates
- local crate g
- for g in "${RUFFLE_GIT[@]}"; do
- g=(${g})
- echo "[patch.\"https://github.com/${g[0]}/${g[1]}\"]"
- for crate in ${g[3]//,/ }; do
- echo "${crate%:*} = { path = \"../${g[1]}-${g[2]}/${crate#*:}\" }"
- done
- done >> Cargo.toml || die
-}
-
-src_compile() {
- filter-lto # undefined references with ring crate and more
-
- cargo_src_compile --bins # note: configure --bins would skip tests
-}
-
-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;"
-
- 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_p20240422.ebuild b/app-emulation/ruffle/ruffle-0_p20240422.ebuild
new file mode 100644
index 000000000000..3429c8fc5d64
--- /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
index f4ab5fe89d96..29549b6f4ecb 100644
--- a/app-emulation/ruffle/ruffle-9999.ebuild
+++ b/app-emulation/ruffle/ruffle-9999.ebuild
@@ -1,48 +1,71 @@
-# Copyright 2021-2022 Gentoo Authors
+# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-# python is needed by xcb-0.8.2 until update to >=0.10
-PYTHON_COMPAT=( python3_{8..11} )
-PYTHON_REQ_USE="xml(+)"
-inherit cargo desktop flag-o-matic git-r3 python-any-r1 xdg
+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 BSD BSD-2 CC0-1.0 ISC MIT MPL-2.0 Unicode-DFS-2016 ZLIB curl"
+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="
- dev-libs/glib:2
- dev-libs/openssl:=
media-libs/alsa-lib
- sys-libs/zlib:=
- x11-libs/gtk+:3
- x11-libs/libxcb:="
-DEPEND="${RDEPEND}"
+ virtual/libudev:=
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXrandr
+ x11-libs/libXrender
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
BDEPEND="
- ${PYTHON_DEPS}
virtual/jre:*
virtual/pkgconfig
- >=virtual/rust-1.63"
+ >=virtual/rust-1.76
+"
-QA_FLAGS_IGNORED="
- usr/bin/${PN}
- usr/bin/${PN}_exporter
- usr/bin/${PN}_scanner"
+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_compile() {
- filter-lto # undefined references with ring crate and more
+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_compile --bins # note: configure --bins would skip tests
+ cargo_src_test -- "${skip[@]}"
}
src_install() {
@@ -52,9 +75,16 @@ src_install() {
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/simh/metadata.xml b/app-emulation/simh/metadata.xml
index 115e9d64a669..b67c0c2fbff6 100644
--- a/app-emulation/simh/metadata.xml
+++ b/app-emulation/simh/metadata.xml
@@ -2,4 +2,7 @@
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">simh/simh</remote-id>
+ </upstream>
</pkgmetadata>
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/ski-1.3.2-r4.ebuild b/app-emulation/ski/ski-1.3.2-r4.ebuild
index c5bac307e7ce..ae695b1a8056 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-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="ia64 instruction set simulator"
HOMEPAGE="http://ski.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
@@ -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/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/softgun-0.22-r1.ebuild b/app-emulation/softgun/softgun-0.22-r1.ebuild
new file mode 100644
index 000000000000..f36e66a00487
--- /dev/null
+++ b/app-emulation/softgun/softgun-0.22-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 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="https://downloads.sourceforge.net/${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 adba0132e20a..50138146342f 100644
--- a/app-emulation/softgun/softgun-0.22.ebuild
+++ b/app-emulation/softgun/softgun-0.22.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -7,7 +7,7 @@ inherit flag-o-matic toolchain-funcs
DESCRIPTION="ARM software emulator"
HOMEPAGE="http://softgun.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild
index 8109d81af69c..3bd2990219d2 100644
--- a/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild
@@ -1,14 +1,20 @@
-# Copyright 1999-2022 Gentoo Authors
+# 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://www.spice-space.org/"
-SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz"
+HOMEPAGE="https://spice-space.org/"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
diff --git a/app-emulation/spice-protocol/spice-protocol-9999.ebuild b/app-emulation/spice-protocol/spice-protocol-9999.ebuild
index d2d8fbb6a858..8908284a7192 100644
--- a/app-emulation/spice-protocol/spice-protocol-9999.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-9999.ebuild
@@ -1,17 +1,16 @@
-# Copyright 1999-2021 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=""
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"
@@ -19,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 1ef47e9cd14d..49738685af14 100644
--- a/app-emulation/spice-vdagent/Manifest
+++ b/app-emulation/spice-vdagent/Manifest
@@ -1,3 +1 @@
-DIST spice-vdagent-0.19.0.tar.bz2 151356 BLAKE2B b7a99a7205d955b27edfe483746e3f267a6e0b7885c4b8146ba42d99b581cf4e1748b503a37a3d6b66623ef2515b42756f2e6a5a4775d56def7aa396bd0dfb4f SHA512 f5056dfe66df3ee8205549be22bbc8c17d2196c8448eda97f01659ff30c34d9929f330767d7fafec557dc5f7fb9b65eaf85973193b38df774042de9b72d6e60d
-DIST spice-vdagent-0.21.0.tar.bz2 164103 BLAKE2B 298122b334f880ffb8d77d3a7d822b70debce56d62bc3004bbac37445f10236a47706d23501ee3f82520c45b65deec12c9578cf4a8b9ac138df8b1c0b8cdb784 SHA512 1ff1a89e75301b1c2c89f26ba4bce8d4df29bbff6387ade128ce847ca30162a2bc731c70c10a8d129518e64bbca6b8271fd11ff3e340899182a65a5295051bff
DIST spice-vdagent-0.22.1.tar.bz2 165560 BLAKE2B 4fd4318592d20d305d515c65d7491b90ac79bcc7f5bdfafd9df7858bdce24aa57c79f2121bbf9cbadec8e6297890f4b8598b9abcadcce5a9f39712b96deaa396 SHA512 5a4d2661145f33a0583880a128d925b15ca5aec05df83271c80f8baa0fcdd28fab0242301bc38443ccddf70fbdcfd76b5d30bb5a6b4b7c895c3cea0eb38bdf92
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 749e2012d13c..000000000000
--- a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit 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
- sys-apps/dbus
- >=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.21.0.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.21.0.ebuild
deleted file mode 100644
index 4bce7514acb3..000000000000
--- a/app-emulation/spice-vdagent/spice-vdagent-0.21.0.ebuild
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit linux-info tmpfiles
-
-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
- sys-apps/dbus
- >=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}"
-}
-
-pkg_postinst() {
- tmpfiles_process spice-vdagentd.conf
-}
diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
index 6b3fd1e10224..c58c80ea1479 100644
--- a/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
+++ b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -11,10 +11,10 @@ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
+KEYWORDS="amd64 ~arm64 ~loong x86"
IUSE="gtk selinux systemd"
-DEPEND="
+COMMON_DEPEND="
dev-libs/glib:2
>=app-emulation/spice-protocol-0.14.0
media-libs/alsa-lib
@@ -27,7 +27,9 @@ DEPEND="
x11-libs/libXinerama
gtk? ( x11-libs/gtk+:3 )
systemd? ( sys-apps/systemd )"
-RDEPEND="${DEPEND}
+DEPEND="${COMMON_DEPEND}
+ x11-base/xorg-proto"
+RDEPEND="${COMMON_DEPEND}
selinux? ( sec-policy/selinux-vdagent )"
BDEPEND="virtual/pkgconfig"
@@ -65,3 +67,7 @@ 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 9fac0bce8dcb..c75ff310017c 100644
--- a/app-emulation/spice/Manifest
+++ b/app-emulation/spice/Manifest
@@ -1,2 +1,2 @@
-DIST spice-0.15.0-pthread-c5fe3df1.patch.bz2 7605 BLAKE2B 86b8094a22a02080db038ef98972bf09f391d5344fee8df2aa7d2def0b50a581353cb0e3dd97f99bbd58b88a13ceac4b54be8086a9f4274f38d132b27b62e84d SHA512 5075bd260b33c2dad8c3ce641372383871f7d69190a4f4697bd5e12af1bf5429310c592961de001d36c19a9cdd91143b8d6e8be0e08b3850b9700c2aef2ddd78
-DIST spice-0.15.0.tar.bz2 1537970 BLAKE2B 98e8f55de81a86c6370e4a74c0fd90db78a9a8e8e3af536bccd6a2a75185194ac7b87521163090c4312e392d2ee10036c0283171c7796aea630e1307128a2d55 SHA512 0a776d191c395ce1f7ebbbac47956a00a2765327d3127aeca6e232bd56fd4ccd28750ae1599eb6eb2909ac909cda517d5511faa631166db16b8b75bd4e7b86d9
+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 f62aa7298062..ce2f1efd9185 100644
--- a/app-emulation/spice/metadata.xml
+++ b/app-emulation/spice/metadata.xml
@@ -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.15.0.ebuild b/app-emulation/spice/spice-0.15.1-r1.ebuild
index dd3fc6f1e023..3a1d525ff2a6 100644
--- a/app-emulation/spice/spice-0.15.0.ebuild
+++ b/app-emulation/spice/spice-0.15.1-r1.ebuild
@@ -1,32 +1,31 @@
-# Copyright 1999-2022 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,10} )
+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"
HOMEPAGE="https://www.spice-space.org/"
SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2"
-SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-pthread-c5fe3df1.patch.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv x86"
-IUSE="lz4 sasl smartcard static-libs gstreamer test"
+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(+)?]
+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(+)?]
- dev-libs/openssl:0=[static-libs(+)?]
lz4? ( app-arch/lz4:0=[static-libs(+)?] )
smartcard? ( >=app-emulation/libcacard-2.5.1 )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] )
@@ -39,20 +38,16 @@ DEPEND="${RDEPEND}
smartcard? ( app-emulation/qemu[smartcard] )
test? ( net-libs/glib-networking )"
BDEPEND="${PYTHON_DEPS}
- sys-devel/autoconf-archive
+ dev-build/autoconf-archive
virtual/pkgconfig
$(python_gen_any_dep '
>=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]
dev-python/six[${PYTHON_USEDEP}]
')"
-PATCHES=(
- "${WORKDIR}"/${P}-pthread-c5fe3df1.patch
-)
-
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() {
@@ -73,7 +68,7 @@ src_configure() {
xdg_environment_reset
- local myconf="
+ local myconf=(
$(use_enable static-libs static)
$(use_enable lz4)
$(use_with sasl)
@@ -81,8 +76,9 @@ src_configure() {
$(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 b8eb4f72d2ec..22dfed00d335 100644
--- a/app-emulation/spice/spice-9999.ebuild
+++ b/app-emulation/spice/spice-9999.ebuild
@@ -1,60 +1,64 @@
-# Copyright 1999-2022 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,10} )
-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 lz4 opus sasl smartcard static-libs test"
-
+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.38:2
- sys-libs/zlib
- virtual/jpeg:0=
- >=x11-libs/pixman-0.17.7
- dev-libs/openssl:0=
- lz4? ( app-arch/lz4:0= )
- opus? ( media-libs/opus )
+ 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 )
+ 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
+ )
+"
+DEPEND+="
+ ${RDEPEND}
+ >=app-emulation/spice-protocol-0.14.3
smartcard? ( app-emulation/qemu[smartcard] )
- test? ( net-libs/glib-networking )"
-BDEPEND="${PYTHON_DEPS}
- sys-devel/autoconf-archive
+ 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() {
@@ -72,29 +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)
$(meson_use test tests)
- -Dmanual=false
- -Dtests=false
)
- 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/spim-8.0-r3.ebuild b/app-emulation/spim/spim-8.0-r3.ebuild
index 05f6fcdf21f3..a011ed2f09c8 100644
--- a/app-emulation/spim/spim-8.0-r3.ebuild
+++ b/app-emulation/spim/spim-8.0-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -25,7 +25,7 @@ DEPEND="
X? ( x11-base/xorg-proto )
"
BDEPEND="
- sys-devel/bison
+ app-alternatives/yacc
X? ( x11-misc/imake )
"
diff --git a/app-emulation/uxn/Manifest b/app-emulation/uxn/Manifest
index 3fe474684cb7..4d0cba24998c 100644
--- a/app-emulation/uxn/Manifest
+++ b/app-emulation/uxn/Manifest
@@ -1,2 +1 @@
-DIST uxn-0_p20220815.tar.gz 286763 BLAKE2B d50e52da1614fdd2939ad09d5c372c103cbfa074b10e1a17560baa3ad5e09a81b9627efdc5f17c7572798d06f1e6a388cb473348950cef5ba45c7d40b3716ec6 SHA512 237c6d633783006d8503b6b4726aaa1d8ed22209c0c6368e78a3da0703d92cb8b1e9c5c7372faecc374082be56608ac1857efc0629e0dff6e374a2adbf1d20ea
-DIST uxn-0_p20220921.tar.gz 286803 BLAKE2B 98230eec1f5071451a25dbe0136f3fd2d7e9ad08287df40bef611ae3012e3775d787a653a43fb4f1cb6c8f213cb8d39684e48c4f6c225bc19e86f1e4b94d73ba SHA512 8568114ddd98672aab4ca59ab279d39ff7a30c04d0b2a53da85b342a17a80d82b5b0ab90f04f63aa0491f8feaa91655f8fa725ec0d76a559b6201407b47bf1f5
+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/files/uxn-build.sh.patch b/app-emulation/uxn/files/uxn-build.sh.patch
deleted file mode 100644
index a99ed23d737e..000000000000
--- a/app-emulation/uxn/files/uxn-build.sh.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/build.sh
-+++ b/build.sh
-@@ -94,7 +94,7 @@ then
- CFLAGS="${CFLAGS} -DDEBUG -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined"
- CORE='src/uxn.c'
- else
-- CFLAGS="${CFLAGS} -DNDEBUG -Os -g0 -s"
-+ CFLAGS="${CFLAGS} -DNDEBUG"
- CORE='src/uxn.c'
- fi
-
diff --git a/app-emulation/uxn/uxn-0_p20220815.ebuild b/app-emulation/uxn/uxn-0_p20220815.ebuild
deleted file mode 100644
index ada1e5c54013..000000000000
--- a/app-emulation/uxn/uxn-0_p20220815.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-H=85ae1f6ebea635f35974218be8faf7557390a7e9
-
-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/uxn.git"
-else
- SRC_URI="https://git.sr.ht/~rabbits/uxn/archive/${H}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}"/${PN}-${H}
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="MIT"
-SLOT="0"
-
-RDEPEND="media-libs/libsdl2:="
-DEPEND="${RDEPEND}"
-
-PATCHES=( "${FILESDIR}"/uxn-build.sh.patch )
-
-src_compile() {
- CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" ./build.sh --no-run ||
- die "build failed"
-
- local f
- for f in ./projects/{examples/*,software,utils}/*.tal ; do
- ./bin/uxnasm "${f}" "$(dirname "${f}")"/"$(basename "${f}" .tal)".rom ||
- die "failed to assemble ${f}"
- done
-}
-
-src_install() {
- exeinto /usr/bin
- doexe bin/uxn*
-
- insinto /usr/share/uxn
- doins bin/*.rom
- doins -r projects
-
- einstalldocs
-}
diff --git a/app-emulation/uxn/uxn-0_p20220921.ebuild b/app-emulation/uxn/uxn-0_p20220921.ebuild
deleted file mode 100644
index 734928959333..000000000000
--- a/app-emulation/uxn/uxn-0_p20220921.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-H=cbc61578b77881232fda4cc42aa914a0806b786f
-
-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/uxn.git"
-else
- SRC_URI="https://git.sr.ht/~rabbits/uxn/archive/${H}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}"/${PN}-${H}
- KEYWORDS="~amd64 ~x86"
-fi
-
-LICENSE="MIT"
-SLOT="0"
-
-RDEPEND="media-libs/libsdl2:="
-DEPEND="${RDEPEND}"
-
-PATCHES=( "${FILESDIR}"/uxn-build.sh.patch )
-
-src_compile() {
- CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" ./build.sh --no-run ||
- die "build failed"
-
- local f
- for f in ./projects/{examples/*,software,utils}/*.tal ; do
- ./bin/uxnasm "${f}" "$(dirname "${f}")"/"$(basename "${f}" .tal)".rom ||
- die "failed to assemble ${f}"
- done
-}
-
-src_install() {
- exeinto /usr/bin
- doexe bin/uxn*
-
- insinto /usr/share/uxn
- doins bin/*.rom
- doins -r projects
-
- einstalldocs
-}
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
index ada1e5c54013..ef6e9fc2dafe 100644
--- a/app-emulation/uxn/uxn-9999.ebuild
+++ b/app-emulation/uxn/uxn-9999.ebuild
@@ -1,52 +1,71 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-H=85ae1f6ebea635f35974218be8faf7557390a7e9
-
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/
-"
+HOMEPAGE="https://wiki.xxiivv.com/site/uxn.html
+ https://git.sr.ht/~rabbits/uxn/"
-if [[ ${PV} == *9999* ]] ; then
+if [[ "${PV}" == *9999* ]] ; then
inherit git-r3
- EGIT_REPO_URI="https://git.sr.ht/~rabbits/uxn.git"
-else
- SRC_URI="https://git.sr.ht/~rabbits/uxn/archive/${H}.tar.gz -> ${P}.tar.gz"
- S="${WORKDIR}"/${PN}-${H}
+
+ 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}"
+RDEPEND="
+ media-libs/libsdl2:=
+"
+DEPEND="
+ ${RDEPEND}
+"
-PATCHES=( "${FILESDIR}"/uxn-build.sh.patch )
+PATCHES=(
+ "${FILESDIR}/uxn-0_p20230609-build.sh.patch"
+)
src_compile() {
- CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" ./build.sh --no-run ||
- die "build failed"
-
- local f
- for f in ./projects/{examples/*,software,utils}/*.tal ; do
- ./bin/uxnasm "${f}" "$(dirname "${f}")"/"$(basename "${f}" .tal)".rom ||
- die "failed to assemble ${f}"
- done
+ 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() {
- exeinto /usr/bin
- doexe bin/uxn*
+ insinto /usr/bin
+ doins bin/uxn*
+ fperms 0755 /usr/bin/uxn*
insinto /usr/share/uxn
- doins bin/*.rom
doins -r projects
einstalldocs
diff --git a/app-emulation/vagrant/Manifest b/app-emulation/vagrant/Manifest
index 75502f75960e..45b131565d44 100644
--- a/app-emulation/vagrant/Manifest
+++ b/app-emulation/vagrant/Manifest
@@ -1,2 +1,2 @@
-DIST vagrant-2.2.18.tar.gz 1620261 BLAKE2B 8938801b383373967365ca64a79f70885a61c02221eeebf75f15fa40440dfdc585f0a0d0cafe9a01484d594dc49b98397a0724776586c2c9fe4f529b6891bb26 SHA512 4694ca499136b53fc5cbab1efd47c9175293ba84521614edbe545766b93e54dc8dc11278f7170c88f3bb05a4ca0a7c52e21deca285f848578a890858b8f21b64
-DIST vagrant-2.2.19.tar.gz 1838272 BLAKE2B cb707254379f52db8571bfe132e5b852a11998d86b43ee707e03d442ca1313da7b2612af027a58f806e0b551a6f415d121dab51cf7ea5da4292e5c2afd198ab9 SHA512 24a2e5baeac5cf8c45c012cf70dd4132b1dc7a6a5bab19d1046c91cc88e669356e2e5676d96eda6ed7293ff19ada974954969a4a59b9e4a30e2d95de27fa64e4
+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 5760b56839c8..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 ruby27 ruby26 ruby25; 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/vagrant-2.2.19.ebuild b/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild
index 064cab439b20..1ed485efc094 100644
--- a/app-emulation/vagrant/vagrant-2.2.19.ebuild
+++ b/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild
@@ -1,14 +1,17 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-USE_RUBY="ruby26 ruby27"
+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
@@ -16,7 +19,7 @@ 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"
+LICENSE="BUSL-1.1"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
IUSE="test"
@@ -29,40 +32,51 @@ RDEPEND="
"
ruby_add_rdepend "
- >=dev-ruby/bcrypt_pbkdf-1.0.0
- >=dev-ruby/childprocess-4.0.0
- >=dev-ruby/ed25519-1.2.4
+ >=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.8:1
- >=dev-ruby/listen-3.1
+ >=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/rubyzip-2.0
- >=dev-ruby/net-scp-3.0.0
- >=dev-ruby/net-sftp-3.0
- >=dev-ruby/net-ssh-6.1.0
- dev-ruby/rest-client:2
- >=dev-ruby/vagrant_cloud-3.0.5
- >=dev-ruby/rexml-3.2.5
+ >=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-12.3.3
+ >=dev-ruby/rake-13.0.0
test? (
- dev-ruby/rspec
- dev-ruby/rspec-its
- dev-ruby/webmock
+ ~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 -i '/[Bb]undler/d' Rakefile || die
+ 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\|webmock: s:~>:>=:' \
+ 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:^#*:#:' \
@@ -72,6 +86,19 @@ all_ruby_prepare() {
-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() {
diff --git a/app-emulation/vagrant/vagrant-2.2.18-r1.ebuild b/app-emulation/vagrant/vagrant-2.4.1.ebuild
index 3d8077b15ec7..a64f74de084a 100644
--- a/app-emulation/vagrant/vagrant-2.2.18-r1.ebuild
+++ b/app-emulation/vagrant/vagrant-2.4.1.ebuild
@@ -1,14 +1,17 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-USE_RUBY="ruby26 ruby27"
+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
@@ -16,9 +19,9 @@ 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"
+LICENSE="BUSL-1.1"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~arm64"
IUSE="test"
RESTRICT="!test? ( test )"
@@ -29,40 +32,51 @@ RDEPEND="
"
ruby_add_rdepend "
- >=dev-ruby/bcrypt_pbkdf-1.0.0
- >=dev-ruby/childprocess-4.0.0
- >=dev-ruby/ed25519-1.2.4
+ >=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.8:1
- >=dev-ruby/listen-3.1
+ >=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/rubyzip-2.0
- >=dev-ruby/net-scp-3.0.0
- >=dev-ruby/net-sftp-3.0
- >=dev-ruby/net-ssh-6.1.0
- dev-ruby/rest-client:2
- >=dev-ruby/vagrant_cloud-3.0.5
- >=dev-ruby/rexml-3.2.5
+ >=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-12.3.3
+ >=dev-ruby/rake-13.0.0
test? (
- dev-ruby/rspec
- dev-ruby/rspec-its
- dev-ruby/webmock
+ ~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 -i '/[Bb]undler/d' Rakefile || die
+ 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\|webmock: s:~>:>=:' \
+ 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:^#*:#:' \
@@ -72,6 +86,19 @@ all_ruby_prepare() {
-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() {
diff --git a/app-emulation/vendor-reset/Manifest b/app-emulation/vendor-reset/Manifest
index 17660f5bb12e..d6e8905b5c12 100644
--- a/app-emulation/vendor-reset/Manifest
+++ b/app-emulation/vendor-reset/Manifest
@@ -1,2 +1 @@
-DIST vendor-reset-0.1.0.tar.gz 12718324 BLAKE2B 762ec8bc289b572ab8f8ecc3fa233e3c78c48c48a261c58ce1be9c10356a55957e0bd8fd01e3143443be74236bf9ed540b84d332788c67aa949599ccc5a564d3 SHA512 ed4dcb1a71fa8901732e729d37b501ac105cc2c93d0666e44c08e311d99a244027339d5709a9305ff992ca2acb2f337793cdb1f9369197911985cd20d6f3139f
-DIST vendor-reset-0.1.1_pre20220902.tar.gz 12724563 BLAKE2B 6d1aa45216a4a72981fc766ba7541873902272a27b5eebc08f7b2627f186d6236c3b6f576f997e35a3a9a3bb4b0c5f6a285585522e7c0eb86b446808e2de501b SHA512 27bc02fdbc7d0339c0f706e1ec8406bc47f163fca6d6471dd7ad92272a384ab7319f6180641177f90a38c11aee2def52ae408a2165438980b7fc3aea10f88b4e
+DIST vendor-reset-0.1.1_pre20221205.tar.gz 12725340 BLAKE2B 5f2e34b74e83c8f48daad8d2c714872ab23f50cb0fad6b5c7920476b43c2fbfcf5543e923c506dfb2d8c33846e8fdd08c7d20b30fcc053f2c191d813872b44c5 SHA512 87a3c64d917e6a44308115480f14956f65a9f84fef70de29feebe3fcd7d522b59a3dbcb5fc9a340ac9b7a3612a29ed696b4f52648f86a0d877b915c97c5a4cc9
diff --git a/app-emulation/vendor-reset/files/Fix-5.11-build.patch b/app-emulation/vendor-reset/files/Fix-5.11-build.patch
deleted file mode 100644
index 845ea08afc54..000000000000
--- a/app-emulation/vendor-reset/files/Fix-5.11-build.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 225a49a40941e350899e456366265cf82b87ad25 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?T=C3=A9rence=20Clastres?= <t.clastres@gmail.com>
-Date: Sun, 31 Jan 2021 20:22:00 +0100
-Subject: [PATCH] [core] add support for linux 5.11
-
-This approach maintains compatibility with previous kernel versions.
-
-Thanks to @justinkb for finding the commit that broke it (torvalds/linux@d19ad07).
----
- dkms.conf | 2 +-
- src/ftrace.c | 8 ++++++++
- 2 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/dkms.conf b/dkms.conf
-index 396abd3..09fbcf0 100644
---- a/dkms.conf
-+++ b/dkms.conf
-@@ -1,5 +1,5 @@
- PACKAGE_NAME="vendor-reset"
--PACKAGE_VERSION="0.1.0"
-+PACKAGE_VERSION="0.1.1"
- BUILT_MODULE_NAME[0]="${PACKAGE_NAME}"
- MAKE[0]="make KDIR=${kernel_source_dir}"
- CLEAN="make KDIR=${kernel_source_dir} clean"
-diff --git a/src/ftrace.c b/src/ftrace.c
-index 80bb4aa..7eed223 100644
---- a/src/ftrace.c
-+++ b/src/ftrace.c
-@@ -22,6 +22,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
- #include <linux/ftrace.h>
- #include <linux/kprobes.h>
- #include <linux/pci.h>
-+#include <linux/version.h>
-
- #include "ftrace.h"
-
-@@ -48,8 +49,15 @@ static int resolve_hook_address(struct ftrace_hook *hook)
- return 0;
- }
-
-+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 11, 0))
- static void notrace fh_trace_thunk(unsigned long ip, unsigned long parent_ip, struct ftrace_ops *ops, struct pt_regs *regs)
- {
-+#else
-+static void notrace fh_trace_thunk(unsigned long ip, unsigned long parent_ip, struct ftrace_ops *ops, struct ftrace_regs *fregs)
-+{
-+ struct pt_regs *regs;
-+ regs = ftrace_get_regs(fregs);
-+#endif
- struct ftrace_hook *hook = to_ftrace_hook(ops);
-
- if (!within_module(parent_ip, THIS_MODULE))
diff --git a/app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch
new file mode 100644
index 000000000000..32ae298d4049
--- /dev/null
+++ b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-allow-correct-compilation-with-clang.patch
@@ -0,0 +1,23 @@
+https://github.com/gnif/vendor-reset/commit/084881c6e9e11bdadaf05798e669568848e698a3.patch
+From: =?UTF-8?q?Marcus=20K=C3=B6hler?= <khler.marcus@gmail.com>
+Date: Mon, 25 Dec 2023 21:43:41 +0100
+Subject: [PATCH] Allow correct compilation with Clang/LLVM
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Marcus Köhler <khler.marcus@gmail.com>
+--- a/src/hook.c
++++ b/src/hook.c
+@@ -30,7 +30,11 @@ static bool hook_installed = false;
+ static int (*orig_pci_dev_specific_reset)(struct pci_dev *dev, int probe);
+
+ /* TCO breaks the hook, we must disable it for this function */
++#if defined(__GNUC__) && !defined(__llvm__)
+ __attribute__((optimize("-fno-optimize-sibling-calls")))
++#elif defined(__clang__)
++__attribute__((disable_tail_calls))
++#endif
+ static int hooked_pci_dev_specific_reset(struct pci_dev *dev, int probe)
+ {
+ int ret;
diff --git a/app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch
new file mode 100644
index 000000000000..d99212c9ee27
--- /dev/null
+++ b/app-emulation/vendor-reset/files/vendor-reset-0.1.1-fix-build-on-kernel-6.8.patch
@@ -0,0 +1,35 @@
+https://github.com/gnif/vendor-reset/commit/f72619e468846e0bab4426f5e71b069f88c33a11.patch
+From: Sakari <20642596+sakarie9@users.noreply.github.com>
+Date: Thu, 14 Mar 2024 10:59:15 +0800
+Subject: [PATCH] Fix build on kernel 6.8+
+
+--- a/src/amd/amdgpu/atom.c
++++ b/src/amd/amdgpu/atom.c
+@@ -28,6 +28,7 @@
+ #include <linux/sched.h>
+ #include <linux/slab.h>
+ #include <linux/delay.h>
++#include <linux/version.h>
+ #include <asm/unaligned.h>
+
+ //#include <drm/drm_util.h>
+@@ -39,6 +40,10 @@
+ #include "atom-names.h"
+ #include "atom-bits.h"
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
++#define strscpy strlcpy
++#endif
++
+ #define ATOM_COND_ABOVE 0
+ #define ATOM_COND_ABOVEOREQUAL 1
+ #define ATOM_COND_ALWAYS 2
+@@ -1424,7 +1429,7 @@ struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios)
+ if (*str != '\0')
+ {
+ pr_info("ATOM BIOS: %s\n", str);
+- strlcpy(ctx->vbios_version, str, sizeof(ctx->vbios_version));
++ strscpy(ctx->vbios_version, str, sizeof(ctx->vbios_version));
+ }
+
+ return ctx;
diff --git a/app-emulation/vendor-reset/vendor-reset-0.1.0.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild
index ec57b37fd6fe..43bacc3c3ea3 100644
--- a/app-emulation/vendor-reset/vendor-reset-0.1.0.ebuild
+++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit linux-mod
+inherit linux-mod-r1
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
@@ -11,35 +11,28 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
else
KEYWORDS="~amd64"
- SRC_URI="https://github.com/gnif/vendor-reset/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ 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"
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-PATCHES=( "${FILESDIR}/Fix-5.11-build.patch" )
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
-pkg_setup() {
- local CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
- linux-mod_pkg_setup
-}
+CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
src_compile() {
- set_arch_to_kernel
- default
+ local modlist=( vendor-reset )
+ local modargs=( KDIR="${KV_OUT_DIR}" )
+ linux-mod-r1_src_compile
}
src_install() {
- set_arch_to_kernel
- emake \
- DESTDIR="${ED}" \
- INSTALL_MOD_PATH="${ED}" \
- 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-r2.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r2.ebuild
new file mode 100644
index 000000000000..f34969845915
--- /dev/null
+++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2024 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"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.1.1-allow-correct-compilation-with-clang.patch"
+ "${FILESDIR}/${PN}-0.1.1-fix-build-on-kernel-6.8.patch"
+)
+
+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_pre20220902.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild
index d0f34c496d9c..245e75a24d32 100644
--- a/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20220902.ebuild
+++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit linux-mod
+inherit linux-mod toolchain-funcs
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
@@ -11,35 +11,29 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
else
KEYWORDS="~amd64"
- EGIT_COMMIT="7d43285a5054e4b2b18dbba771b57d365943a0f7"
+ 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"
-DEPEND=""
-RDEPEND="${DEPEND}"
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
-}
-
-src_compile() {
- set_arch_to_kernel
- default
+ BUILD_TARGETS="build"
+ BUILD_PARAMS="CC=\"$(tc-getBUILD_CC)\" KDIR=${KERNEL_DIR}"
}
src_install() {
- set_arch_to_kernel
- emake \
- DESTDIR="${ED}" \
- INSTALL_MOD_PATH="${ED}" \
- 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
index 64f307942f3d..2723fba58a32 100644
--- a/app-emulation/vendor-reset/vendor-reset-9999.ebuild
+++ b/app-emulation/vendor-reset/vendor-reset-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit linux-mod
+inherit linux-mod-r1
if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
@@ -11,33 +11,26 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
else
KEYWORDS="~amd64"
- SRC_URI="https://github.com/gnif/vendor-reset/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ 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"
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-pkg_setup() {
- local CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
- linux-mod_pkg_setup
-}
+CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
src_compile() {
- set_arch_to_kernel
- default
+ local modlist=( vendor-reset )
+ local modargs=( KDIR="${KV_OUT_DIR}" )
+ linux-mod-r1_src_compile
}
src_install() {
- set_arch_to_kernel
- emake \
- DESTDIR="${ED}" \
- INSTALL_MOD_PATH="${ED}" \
- 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 ffc8aa7514d5..7c0058509c3a 100644
--- a/app-emulation/vice/Manifest
+++ b/app-emulation/vice/Manifest
@@ -1 +1 @@
-DIST vice-3.6.1.tar.gz 11454300 BLAKE2B 129171380f3bd23d579dc29a96419446169cf9a98d2fec82951fa192914846053d213a19b395c9ca30596859cce35bcfea0de0c0a7461c45cb38511a546ca4b2 SHA512 9aeb1c84dc71976d12a9907d60c637ec4cc938aad103340b70a13906bbf2bebab579edc78221c7fba47f0750be3f9ded947200b42fcfc8a9169fb4bb9f288cb7
+DIST vice-3.8.tar.gz 13564021 BLAKE2B 709fd6eda874de542e5770a328b0c0308d04f755e3bf1fceba5147156eb894a95ce6f14e9f8848ca6992d4f958082f83a198d2176c1fe54e87027c7dfac8849c SHA512 fe644667736c32386b62af53314a95bf510c75d476eaab14b4c37693f2f57d6815126ab3db2f0cb11300c1a4a07c29b3f25210800ce97a673a0460ab59d0ebba
diff --git a/app-emulation/vice/metadata.xml b/app-emulation/vice/metadata.xml
index 426920c37ba3..28b3dc71db21 100644
--- a/app-emulation/vice/metadata.xml
+++ b/app-emulation/vice/metadata.xml
@@ -6,7 +6,6 @@
<name>Gentoo Games Project</name>
</maintainer>
<use>
- <flag name="cpuhistory">Enable 65xx CPU history support (may decrease performance)</flag>
<flag name="ethernet">Enable ethernet emulation</flag>
<flag name="headless">Include the headless variant of the emulator</flag>
<flag name="mpg123">Enable mp3@64 cartridge support</flag>
diff --git a/app-emulation/vice/vice-3.6.1-r2.ebuild b/app-emulation/vice/vice-3.8-r1.ebuild
index 2374e9497e2d..69fdc3b146dc 100644
--- a/app-emulation/vice/vice-3.6.1-r2.ebuild
+++ b/app-emulation/vice/vice-3.8-r1.ebuild
@@ -1,50 +1,46 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit multibuild toolchain-funcs xdg
-DESCRIPTION="The Versatile Commodore Emulator"
+DESCRIPTION="Versatile Commodore Emulator"
HOMEPAGE="https://vice-emu.sourceforge.io/"
-SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz"
+SRC_URI="https://downloads.sourceforge.net/vice-emu/releases/${P}.tar.gz"
LICENSE="GPL-2+"
SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
+KEYWORDS="amd64 ~arm ~arm64 x86"
IUSE="
- alsa cpuhistory debug doc ethernet ffmpeg flac gif +gtk headless jpeg
- lame mpg123 ogg openmp oss parport pci png portaudio pulseaudio sdl zlib"
-REQUIRED_USE="
- || ( gtk headless sdl )
- gtk? ( zlib )"
-
-# ffmpeg/lame are loaded by dlopen(), keeping := to rebuild with same headers
-# see bug #834359 for the ffmpeg upper bound
+ 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
)
- ffmpeg? ( <media-video/ffmpeg-5:= )
flac? ( media-libs/flac:= )
gif? ( media-libs/giflib:= )
gtk? (
- dev-libs/atk
+ >=app-accessibility/at-spi2-core-2.46:2
dev-libs/glib:2
media-libs/fontconfig:1.0
- media-libs/glew:0=
- sys-libs/readline:=
- virtual/opengl
+ 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
)
- jpeg? ( media-libs/libjpeg-turbo:= )
lame? ( media-sound/lame )
mpg123? ( media-sound/mpg123 )
ogg? (
@@ -55,30 +51,30 @@ RDEPEND="
pci? ( sys-apps/pciutils )
png? ( media-libs/libpng:= )
portaudio? ( media-libs/portaudio )
- pulseaudio? ( || ( media-libs/libpulse media-sound/pulseaudio ) )
+ pulseaudio? ( media-libs/libpulse )
sdl? (
media-libs/libsdl2[video]
media-libs/sdl2-image
- sys-libs/readline:=
)
- zlib? ( sys-libs/zlib:= )"
+"
DEPEND="
${RDEPEND}
- x11-base/xorg-proto"
+ 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
- sys-devel/flex
+ app-alternatives/lex
sys-devel/gettext
virtual/pkgconfig
- virtual/yacc
doc? ( virtual/texi2dvi )
- gtk? ( x11-misc/xdg-utils )"
-
-QA_CONFIGURE_OPTIONS="--disable-static" #814380
+ gtk? ( x11-misc/xdg-utils )
+"
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
@@ -127,44 +123,42 @@ multibuild_src_configure() {
local econfargs=(
--program-transform-name="${xform}"
$(vice-multi_enable gtk desktop-files)
- $(vice-multi_enable gtk native-gtk3ui)
+ $(vice-multi_enable gtk gtk3ui)
$(vice-multi_enable headless headlessui)
- $(vice-multi_enable sdl sdlui2)
+ $(vice-multi_enable sdl sdl2ui)
$(usex debug $(vice-multi_enable gtk debug-gtk3ui) --disable-debug-gtk3ui)
- $(use_enable cpuhistory)
$(use_enable debug)
$(use_enable doc pdf-docs)
$(use_enable ethernet)
- $(use_enable ffmpeg external-ffmpeg)
- $(use_enable lame)
$(use_enable openmp)
- $(use_enable parport libieee1284)
- $(use_enable portaudio)
+ $(use_enable parport parsid)
$(use_with alsa)
+ $(use_with curl libcurl)
$(use_with flac)
$(use_with gif)
- $(use_with jpeg)
+ $(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)
- $(use_with zlib)
$(usex alsa --enable-midi $(use_enable oss midi))
$(usev !pci ac_cv_header_pci_pci_h=no)
--disable-arch
- --disable-sdlui
+ --disable-ffmpeg # deprecated in 3.8, also bug #834359
+ --disable-sdl1ui
ac_cv_lib_ungif_EGifPutLine=no # ensure use giflib, not ungif
-
- # $(use_with curl libcurl) # new in 3.6 but is a unused placeholder
- # --enable-io-simulation # likewise
)
econf "${econfargs[@]}"
}
src_compile() {
- multibuild_foreach_variant run_in_build_dir emake
+ # bug #924116 wrt SHELL
+ multibuild_foreach_variant run_in_build_dir emake SHELL="${BASH}"
}
src_install() {
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 e4019949c979..bead1d85a9f0 100644
--- a/app-emulation/virt-manager/Manifest
+++ b/app-emulation/virt-manager/Manifest
@@ -1,3 +1 @@
-DIST virt-manager-3.2.0.tar.gz 2858909 BLAKE2B 83bd8589fb7d9c855300e06689fdeeeee575e354f9349b5bc63ff1da1a8b578a842f6f60d95a8b8fa53ed007c090d37f706f50fb8dcbcee83c08e27853a150cc SHA512 90cd98fe6b269007cd30f628490c65df440abe39b4925c65dc80667e7d80d059752695353ccf6ac3e2436206da311bc402eda50df31874d82ef8fe115966e1ec
-DIST virt-manager-4.0.0.tar.gz 3096236 BLAKE2B cf6ae282c6a351aab832a06387bf9daf9093c8cce3688cf0597f33d037db875638429a5320ffe28d8d860c83484ba5d6a02a8dc758c98914fa2af483552dede8 SHA512 115dc3feb499bb2f1f6df537bffe150d23b9b568fe8047d43577a138ff9b9180b10259dde3476136cdc85750576da1104e81a8c2f5761b4f2a89852467761f81
DIST virt-manager-4.1.0.tar.gz 3151412 BLAKE2B 1b4203be81bd7b82251225d691a4d9068f268e610f049bcadb96de5b539e964ca0b001f22f06ddd8266b58b079f60046f6d11942a1e4eadbc43f0607c46bbddd SHA512 725cb5bcbaebaafae417f95deffb4243ccdad769668cba6e1235f4607e2b29dbd099d2a9a3885981158f53ea854dd71cc29ed9d7557b2791161c13d34f2ef883
diff --git a/app-emulation/virt-manager/files/virt-manager-4.0.0-setuptools-61-fix.patch b/app-emulation/virt-manager/files/virt-manager-4.0.0-setuptools-61-fix.patch
deleted file mode 100644
index ace16902486c..000000000000
--- a/app-emulation/virt-manager/files/virt-manager-4.0.0-setuptools-61-fix.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c6fc4524d4448259ea85f93f85898b64a4380154 Mon Sep 17 00:00:00 2001
-From: Peter Alfredsen <crabbedhaloablution@icloud.com>
-Date: Tue, 5 Apr 2022 22:04:20 +0200
-Subject: [PATCH] setup: add bits for setuptools-61
-
-Quoting https://github.com/pypa/setuptools/issues/3227
-"Setuptools >= 61, intentionally changes the way packages are built in the
- sensec that it will try to find files and fail if something is weird.
-
- Empty packages (like this one), are asked to explicitly add packages=[]
- to their configuration.
-
- This intentional change in behaviour is described in
- https://setuptools.pypa.io/en/latest/history.html#v61-0-0."
-
-Bug: https://bugs.gentoo.org/836645
-Signed-off-by: Peter Alfredsen <crabbedhaloablution@icloud.com>
----
- setup.py | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/setup.py b/setup.py
-index e95acd39..7e47e7c7 100755
---- a/setup.py
-+++ b/setup.py
-@@ -547,4 +547,5 @@ setuptools.setup(
- },
-
- distclass=VMMDistribution,
-+ packages=[],
- )
---
-2.35.1
-
diff --git a/app-emulation/virt-manager/virt-manager-3.2.0-r1.ebuild b/app-emulation/virt-manager/virt-manager-3.2.0-r1.ebuild
deleted file mode 100644
index 07b27acd931f..000000000000
--- a/app-emulation/virt-manager/virt-manager-3.2.0-r1.ebuild
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8,9,10} )
-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
- inherit git-r3
- SRC_URI=""
- EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
- EGIT_BRANCH="master"
-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="${PYTHON_DEPS}
- app-cdr/cdrtools
- >=app-emulation/libvirt-glib-1.0.0[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}]
- ')
- >=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?]
- 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
- dev-util/intltool"
-
-DOCS=( README.md NEWS.md )
-
-# Doesn't seem to play nicely in a sandboxed environment.
-RESTRICT="test"
-distutils_enable_tests pytest
-
-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}" || 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 gtk && gnome2_pkg_postinst
- optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass
-}
diff --git a/app-emulation/virt-manager/virt-manager-4.0.0.ebuild b/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild
index cdbbb69fd970..42dbcb32b7f7 100644
--- a/app-emulation/virt-manager/virt-manager-4.0.0.ebuild
+++ b/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild
@@ -1,34 +1,35 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8,9,10} )
+PYTHON_COMPAT=( python3_{10..12} )
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
- inherit git-r3
- SRC_URI=""
+if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
- EGIT_BRANCH="master"
+ EGIT_BRANCH="main"
+ SRC_URI=""
+ inherit git-r3
else
- SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 ~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="${PYTHON_DEPS}
- app-cdr/cdrtools
+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}]
@@ -36,27 +37,33 @@ RDEPEND="${PYTHON_DEPS}
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?]
- policykit? ( sys-auth/polkit[introspection] )
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 )
-# Doesn't seem to play nicely in a sandboxed environment.
-RESTRICT="test"
+DISTUTILS_ARGS=(
+ --no-update-icon-cache
+ --no-compile-schemas
+)
+
+EPYTEST_IGNORE=(
+ # Wants to use /tmp osinfo config?
+ tests/test_cli.py
-PATCHES=(
- "${FILESDIR}"/virt-manager-4.0.0-setuptools-61-fix.patch
+ # These seem to be essentially coverage tests
+ tests/test_checkprops.py
)
distutils_enable_tests pytest
@@ -65,17 +72,18 @@ python_configure() {
esetup.py configure --default-graphics=spice
}
-python_install() {
- esetup.py install
+python_test() {
+ export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0
+
+ epytest
}
-src_install() {
- local DISTUTILS_ARGS=( --no-update-icon-cache --no-compile-schemas )
- distutils-r1_src_install
+python_install() {
+ esetup.py install
}
pkg_preinst() {
- if use gtk; then
+ if use gui ; then
gnome2_pkg_preinst
cd "${ED}" || die
@@ -90,7 +98,9 @@ pkg_preinst() {
}
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]
+ 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
index 87e7cea8ca84..3614d2d36381 100644
--- a/app-emulation/virt-manager/virt-manager-4.1.0.ebuild
+++ b/app-emulation/virt-manager/virt-manager-4.1.0.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_COMPAT=( python3_{9..11} )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_SETUPTOOLS=no
inherit gnome2 distutils-r1 optfeature
@@ -18,7 +18,7 @@ if [[ ${PV} == *9999* ]]; then
inherit git-r3
else
SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+ KEYWORDS="amd64 arm64 ppc64 x86"
fi
LICENSE="GPL-2"
@@ -30,7 +30,7 @@ RDEPEND="
app-cdr/cdrtools
>=app-emulation/libvirt-glib-1.0.0[introspection]
>=sys-libs/libosinfo-0.2.10[introspection]
- $(python_gen_cond_dep '
+ $(python_gen_cond_dep '
dev-libs/libxml2[python,${PYTHON_USEDEP}]
dev-python/argcomplete[${PYTHON_USEDEP}]
>=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
diff --git a/app-emulation/virt-manager/virt-manager-9999.ebuild b/app-emulation/virt-manager/virt-manager-9999.ebuild
index b2ec505d5c37..377897328f08 100644
--- a/app-emulation/virt-manager/virt-manager-9999.ebuild
+++ b/app-emulation/virt-manager/virt-manager-9999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_COMPAT=( python3_{10..12} )
DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_SETUPTOOLS=no
inherit gnome2 distutils-r1 optfeature
@@ -27,10 +27,10 @@ IUSE="gui policykit sasl"
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 '
+ $(python_gen_cond_dep '
dev-libs/libxml2[python,${PYTHON_USEDEP}]
dev-python/argcomplete[${PYTHON_USEDEP}]
>=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
diff --git a/app-emulation/virt-viewer/Manifest b/app-emulation/virt-viewer/Manifest
index ae22d61a303b..4bf036f22561 100644
--- a/app-emulation/virt-viewer/Manifest
+++ b/app-emulation/virt-viewer/Manifest
@@ -1,2 +1 @@
-DIST virt-viewer-10.0_p20210730.tar.bz2 271223 BLAKE2B d66e915eccdea6eadc7d93309c66d648828da65e76e4884bd2a98a645db328296d0013955fe94df45bac5d21079230218de7e09909d29f63568d2fc32b4fe762 SHA512 58d49eb67e1bbeb73fd7672871348911ef8eaab95b0f90dd3ae2564cc2321d620eec703fe8520748a96c80429ecbdcd13ba4a7c31b249fd347a935c9b9c02531
DIST virt-viewer-11.0.tar.xz 259772 BLAKE2B 41914a60361f0a47a0b0b54962d228ffaec67c6b69c664bb6fe683b7074dd5e2136d2bf3528b6e1b6b785cc4e337125fe16fdd94dd603dd42e8fde543931241a SHA512 738034e15e40a7aaadd2646bf289c12409cbf2d06925d43baa50fa7bc8438188480d6b97687e9816427ac0a9dae84d205351715cb2f38afdbefa2dd1d134904a
diff --git a/app-emulation/virt-viewer/virt-viewer-10.0_p20210730.ebuild b/app-emulation/virt-viewer/virt-viewer-10.0_p20210730.ebuild
deleted file mode 100644
index 30941a31c9d7..000000000000
--- a/app-emulation/virt-viewer/virt-viewer-10.0_p20210730.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8..10} )
-
-inherit meson python-any-r1 xdg
-
-DESCRIPTION="Graphical console client for connecting to virtual machines"
-HOMEPAGE="https://virt-manager.org/"
-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}"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="+libvirt sasl +spice +vnc"
-
-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] )
- 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 libvirt)
- $(meson_feature vnc vnc)
- $(meson_feature spice spice)
- )
- meson_src_configure
-}
diff --git a/app-emulation/virt-viewer/virt-viewer-11.0.ebuild b/app-emulation/virt-viewer/virt-viewer-11.0.ebuild
index 398445a8904f..e018a5a1b62a 100644
--- a/app-emulation/virt-viewer/virt-viewer-11.0.ebuild
+++ b/app-emulation/virt-viewer/virt-viewer-11.0.ebuild
@@ -1,14 +1,14 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
+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/"
+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"
diff --git a/app-emulation/virt-what/Manifest b/app-emulation/virt-what/Manifest
index de8d111b70bc..266b97d053ce 100644
--- a/app-emulation/virt-what/Manifest
+++ b/app-emulation/virt-what/Manifest
@@ -1 +1,2 @@
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/virt-what-1.21.ebuild b/app-emulation/virt-what/virt-what-1.21.ebuild
index 06309f67408d..7b5da45a3537 100644
--- a/app-emulation/virt-what/virt-what-1.21.ebuild
+++ b/app-emulation/virt-what/virt-what-1.21.ebuild
@@ -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 arm64 ~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.25.ebuild b/app-emulation/virt-what/virt-what-1.25.ebuild
new file mode 100644
index 000000000000..a6226954adcb
--- /dev/null
+++ b/app-emulation/virt-what/virt-what-1.25.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+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 arm64 ~hppa ppc ppc64 ~riscv 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/virtio-win/Manifest b/app-emulation/virtio-win/Manifest
index 005e6f793343..51d9ac1c93a3 100644
--- a/app-emulation/virtio-win/Manifest
+++ b/app-emulation/virtio-win/Manifest
@@ -1,2 +1,3 @@
-DIST virtio-win-0.1.190.iso 501745664 BLAKE2B f9f2bc4dc371ff412dfd0b65228e0984c30a1fe1b30307d3894f2b238a8993e96fda75f931080aeff06a29467a678ca02174a876b9f339a4c8d199fd9c8a9917 SHA512 dfdaddb99c92d633368eb243801425abbcb09e4693be658efe531c33a47600b165e598ddac594239402d2c578f24f5400b5e7b643f17e7db4ebba2d4d99cf0fd
-DIST virtio-win-0.1.208.iso 556431360 BLAKE2B 67e0858bacb580eaf9998047f5941ae523178d8bcbf7988a7f018e872b30fff347f0ddabbd7fe9d6a2bd9579c856dcf516586e5a11f2a9a1069d524958372003 SHA512 f5b223b9b2c67530b34d7231f90d89b35d8a01bd3a8c874bbb2e282140ebc1e7b99dbf954a0a72238b64ba6aacd60526dcc505b2cb30bfa07787d152a08c27aa
+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 fcf1cd64f680..bc997df6766f 100644
--- a/app-emulation/virtio-win/metadata.xml
+++ b/app-emulation/virtio-win/metadata.xml
@@ -1,5 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
- </pkgmetadata>
+ <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.229.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild
new file mode 100644
index 000000000000..1bb20ab6f1e2
--- /dev/null
+++ b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit readme.gentoo-r1
+
+MY_PV=$(ver_cut 1-3)
+MY_DW=$(ver_rs 3 -)
+
+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="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 "${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.208.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild
index 9f85acf591fb..057b187a0c4b 100644
--- a/app-emulation/virtio-win/virtio-win-0.1.208.1.ebuild
+++ b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild
@@ -1,8 +1,10 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
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.190.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild
index 9b0970a358d2..bc890c11f60a 100644
--- a/app-emulation/virtio-win/virtio-win-0.1.190.1.ebuild
+++ b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2021 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..7358e8fdae58
--- /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 b78415e8de7d..e2a3c91640b6 100644
--- a/app-emulation/virtualbox-additions/Manifest
+++ b/app-emulation/virtualbox-additions/Manifest
@@ -1,2 +1,3 @@
-DIST VBoxGuestAdditions_6.1.36.iso 63803392 BLAKE2B bcd795e4f4ed5b25542011370b0d0ede0a163c89df597d085d731627bf041a5bc8eb8d60c2041bfe1654986751e16bb382680ad487d90def2e8a7d9fab21dd24 SHA512 cf07e77ac882eb9cd6da39c6491f2536ac8c1e4bddb27e50bb6d1016ab7a291746cd59c6966c54ba007bb4cb79b82ebcfacec5984a6e7453f60ad167014542aa
-DIST VBoxGuestAdditions_6.1.38.iso 63887360 BLAKE2B 36688f43d8be5b0f408715f9ad902caf1e298d01f77e5fbb236e15c56da5097c91a4df846b786cb3fa4aa9b97d0360c627b757eebc0503a675b7eb6b752015a0 SHA512 df7051988174227af733d2fb4fd703c885f9637345077090034f3392b2c4deef8ac87d0b9e76f29149609b6e2b7158109377c9af5fdbcdc5691ae6e401c4731b
+DIST VBoxGuestAdditions_6.1.50.iso 64051200 BLAKE2B 9eff4a3643579ee0426dbe2b62247b8c89321be495e61469628574445fedc06ff2fb9afa108705cbaf24a13db99b4e6e850c61e5c97343095549f444831fcf62 SHA512 d74ce912dbbcef7f644a9f3ba9917782336cbee8e0756727a8753ffc17486a75e833adaa869e205531bc3b81b9cb26aa9b50f44210e78dceece966687122f6c6
+DIST VBoxGuestAdditions_7.0.14.iso 53526528 BLAKE2B 2ec95d9261d3a7f762f333c1e3eb36f7b75cfd7cf722d1bdcd5c0b38a3a311db82b728fe800aed79b41b979ec345cd2586e3fd8c2d2c54f8b83516061d81d304 SHA512 5aa80b04c567d383793c560eb535babd1ebc4f472aaa51753867dbee00e1f5a3efeb5dd4c9eb1a48149ff0fa2e7598aa68792d3da9959709b619d234c2b57544
+DIST VBoxGuestAdditions_7.0.18.iso 52887552 BLAKE2B 03c2b6a777f37286f97d5e2b3f90bf9592e72f5df45f05dd9ae532c092cc38120475795821a31b6106579e49f86ad0e598b15b63ff52107794d0403fdf617ed9 SHA512 21bac2c7c10b0900c0e29cebd546a31cfb058ce0567166c71d45f150824a8818f739284787181678076982dcf40a2e62578b7a5baf19eabcab4f7385e17d2b44
diff --git a/app-emulation/virtualbox-additions/metadata.xml b/app-emulation/virtualbox-additions/metadata.xml
index 3651025ac589..498143329fed 100644
--- a/app-emulation/virtualbox-additions/metadata.xml
+++ b/app-emulation/virtualbox-additions/metadata.xml
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>ceamac.paragon@gmail.com</email>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
<name>Viorel Munteanu</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
</pkgmetadata>
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.36.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild
index e65627f19d6c..b99d3c3c719a 100644
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.36.ebuild
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild
@@ -1,25 +1,19 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
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/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="amd64"
-IUSE=""
-RESTRICT="mirror"
-
-S="${WORKDIR}"
src_unpack() {
return 0
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..1cb70c695bbd
--- /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-6.1.38.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.ebuild
index e989261fd89b..92124a9f779e 100644
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.38.ebuild
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.18.ebuild
@@ -1,25 +1,19 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
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"
+LICENSE="GPL-3 || ( GPL-3 CDDL )"
SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="mirror"
-
-S="${WORKDIR}"
src_unpack() {
return 0
diff --git a/app-emulation/virtualbox-extpack-oracle/Manifest b/app-emulation/virtualbox-extpack-oracle/Manifest
index bea65dc0275e..1a62942cf04a 100644
--- a/app-emulation/virtualbox-extpack-oracle/Manifest
+++ b/app-emulation/virtualbox-extpack-oracle/Manifest
@@ -1,2 +1,3 @@
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.36.tar.gz 11231896 BLAKE2B 08872189b8be959e13f07b69635b08d41661841cc30bdea1bec73c8fc87f1e374e53658e160cd290b919465bad62ef633cdc79e11d477a6bf0b9a67ae8131f73 SHA512 98ba542fbe60848877c25cf8e8f252081e231687d8b4cc4324283e6e787c00cb83c0570379a50364ee239a10195b25740f9c2e0e559cec28b75f56717623df16
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.38.tar.gz 11232961 BLAKE2B d736cad4b9d2f0eb6207918588a1f4794b3366cc2cb5ad857d9b7501d9cf8db6e9e56fa1d99954016d508d9600218e06587b5725b3834e82d0e2ec754db00877 SHA512 1ae455bd478d47eafd13ca196914685a08105156cd706c7aa86103daac2bbe76edd051deb56a873344b40df2f8418308ce69de61f2ea68353b34a27d8ffd9510
+DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.50.tar.gz 11175855 BLAKE2B 898ef92a91dbfb39079f8dfa5f4c1e6d91df66e92deb00849ba1da8a2278e3adcfd5754bf70acc6d8b6d7d6273923999860b71c01de3eaabf4d487d718aa14ef SHA512 818f0564a8ee1266f2d03d6e0d5df44278746067ae86279f6e884f519ad3e923382c7b987b3a58fe95e2aa4f0a53b98d553106b0250923e88989e5fdaa9dc3ae
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.14.tar.gz 18331089 BLAKE2B 278341be074c7bb276b90034355da3a55e2ef5efd89ad9a26a8f53b6743890772e1486ed5552ec131a8c80a710405dac284789d71a6c3bbec2dd79cf0e7e0459 SHA512 9301300dd1c2a178c730045128574b99a4a6cd1c2dd3f6a5782a78fa08588a4c5fd9c9ff6b2dbeba04747de915e3342ebbd08a4b9ed4641ff60f90f6a5c7fc3d
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.18.tar.gz 18264093 BLAKE2B 4cd3f87b02f0340e0b226a68a595fd947de490a0eae36471beedb7f154529bc8f095f7512486660c4373a612608f42cbf6764dc84407143a4db9b1b9e684f754 SHA512 c83bdb6de0c98d558b66eaacdcf07baf004559c436201105e97bbdf387743dcefad285528a7de15c75162b38cd3b13d95155304da744a205661adfb692c6d958
diff --git a/app-emulation/virtualbox-extpack-oracle/metadata.xml b/app-emulation/virtualbox-extpack-oracle/metadata.xml
index 3651025ac589..498143329fed 100644
--- a/app-emulation/virtualbox-extpack-oracle/metadata.xml
+++ b/app-emulation/virtualbox-extpack-oracle/metadata.xml
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>ceamac.paragon@gmail.com</email>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
<name>Viorel Munteanu</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
</pkgmetadata>
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.36.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild
index 3dbb1658be56..85967cb38352 100644
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.36.ebuild
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild
@@ -1,38 +1,25 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-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_PV="$(ver_cut 1-3)"
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
-MY_P="${MY_PN}-${MY_PV}" #-${VBOX_BUILD_ID}"
+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"
+LICENSE="PUEL-11"
SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="amd64"
-IUSE=""
RESTRICT="bindist mirror strip"
-RDEPEND="=app-emulation/virtualbox-${DEP_PV}*"
-
-S="${WORKDIR}"
+RDEPEND=">=app-emulation/virtualbox-${MY_PV}"
-QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
src_install() {
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
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..14864047f715
--- /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-6.1.38.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.ebuild
index 10b24ce1fc11..8c44669215ab 100644
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.38.ebuild
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.18.ebuild
@@ -1,38 +1,30 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-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_PV="$(ver_cut 1-3)"
MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
-MY_P="${MY_PN}-${MY_PV}" #-${VBOX_BUILD_ID}"
+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"
+LICENSE="PUEL-11"
SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="~amd64"
-IUSE=""
RESTRICT="bindist mirror strip"
-RDEPEND="=app-emulation/virtualbox-${DEP_PV}*"
-
-S="${WORKDIR}"
+RDEPEND="
+ || (
+ =app-emulation/virtualbox-${MY_PV}*
+ =app-emulation/virtualbox-kvm-${MY_PV}*
+ )
+"
-QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
src_install() {
insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
diff --git a/app-emulation/virtualbox-guest-additions/Manifest b/app-emulation/virtualbox-guest-additions/Manifest
index d98f18d2ee2d..d31f95f4ac26 100644
--- a/app-emulation/virtualbox-guest-additions/Manifest
+++ b/app-emulation/virtualbox-guest-additions/Manifest
@@ -1,3 +1,6 @@
-DIST VirtualBox-6.1.36.tar.bz2 165685382 BLAKE2B 98dbb06450b9df650cb72493bcdea4b88fa9dd21f76d723fdc0bb2c1ab8266f67e972a7222dc9b5bd0d43754911710664bddace753995be025cf6bcc05a24ae5 SHA512 cc3b984a7da40c9bf14831808a2bc2bf7bf6821e53c25fa11cb4b4275feb1d4b0cb4a47d8a360b90c89e5a4038481efe8fe28ee22996dbefb6446761e88a8dec
-DIST VirtualBox-6.1.38.tar.bz2 165761175 BLAKE2B decda6e7a595f79e6ace6f8f6b8a7829223ac1422c3d280b6287a40ef942e773ad473f4fa4640a76f8fb825ebd8561c646f1b3d87922b1af55c138298b4c8f4f SHA512 7a4f2dc80e3251b1da6d29d3c6f6b802527decc70497b1a1d1008c0ab3109c2039d131c587d6ec4786aea619546757655337c2ec3456243336ca13c6f6748116
+DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
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
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
deleted file mode 100644
index 3af22dbfa49e..000000000000
--- a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-pidfile="/var/run/vboxguest-service.pid"
-command="/usr/sbin/vboxguest-service"
-command_args="--foreground"
-command_background="true"
-
-depend() {
- need dbus localmount
- before xdm
-}
-
-start_pre() {
- einfo "Loading kernel modules"
- /sbin/modprobe vboxguest 2>&1
- /sbin/modprobe vboxsf 2>&1
-}
-
-stop_post() {
- einfo "Removing kernel modules"
- /sbin/modprobe -r vboxsf 2>&1
- /sbin/modprobe -r vboxguest 2>&1
-}
diff --git a/app-emulation/virtualbox-guest-additions/metadata.xml b/app-emulation/virtualbox-guest-additions/metadata.xml
index 3651025ac589..498143329fed 100644
--- a/app-emulation/virtualbox-guest-additions/metadata.xml
+++ b/app-emulation/virtualbox-guest-additions/metadata.xml
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>ceamac.paragon@gmail.com</email>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
<name>Viorel Munteanu</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
</pkgmetadata>
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.38.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild
index f4ad72e4a393..fe43f7ac3ca9 100644
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.38.ebuild
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild
@@ -1,73 +1,74 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit edo linux-mod systemd toolchain-funcs udev
+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
+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)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
+KEYWORDS="amd64 x86"
+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"
-MODULESD_VBOXSF_ALIASES=("fs-vboxsf vboxsf") # 485996
+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
-}
+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
@@ -79,9 +80,7 @@ src_prepare() {
popd &>/dev/null || die
# PaX fixes (see bug #298988)
- pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-6.1.36-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
@@ -93,10 +92,6 @@ src_prepare() {
# Respect LDFLAGS (bug #759100)
sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk
- # 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
-
eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches"
eapply_user
}
@@ -114,6 +109,7 @@ src_configure() {
--disable-sdl-ttf
--disable-pulse
--disable-alsa
+ $(usev !dbus --disable-dbus)
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
@@ -179,20 +175,36 @@ src_compile() {
# 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
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
- linux-mod_src_compile
+ 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-r1 ${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
@@ -209,8 +221,7 @@ src_install() {
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
@@ -238,7 +249,7 @@ 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"
@@ -259,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 ""
@@ -276,6 +284,5 @@ pkg_postinst() {
}
pkg_postrm() {
- linux-mod_pkg_postrm
udev_reload
}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.36.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild
index 43c37b24a0d7..dc971ed17c12 100644
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.36.ebuild
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild
@@ -1,72 +1,78 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-inherit edo linux-mod systemd toolchain-funcs udev
+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://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${MY_PV}.tar.bz2"
+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}"
-LICENSE="GPL-2"
+# 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)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
KEYWORDS="amd64 x86"
-IUSE="X"
+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
- X? ( x11-apps/xrandr
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ 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
+ )
"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
DEPEND="
${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
+ 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-libs/pam
sys-power/iasl
- x11-base/xorg-proto
"
PDEPEND="
- X? ( x11-drivers/xf86-video-vboxvideo )
+ gui? ( 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
-}
+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
@@ -78,25 +84,21 @@ src_prepare() {
popd &>/dev/null || die
# PaX fixes (see bug #298988)
- pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-6.1.36-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
- use X || echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk
+ 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
+ sed -e '/ check_gcc$/d' -i configure || die
# Respect LDFLAGS (bug #759100)
- sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' 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
-
- eapply "${WORKDIR}/virtualbox-patches-${MY_PV}/patches"
+ eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches"
eapply_user
}
@@ -113,6 +115,7 @@ src_configure() {
--disable-sdl-ttf
--disable-pulse
--disable-alsa
+ $(usev !dbus --disable-dbus)
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
@@ -178,20 +181,36 @@ src_compile() {
# 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
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
- linux-mod_src_compile
+ 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_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-r1 ${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
@@ -202,14 +221,13 @@ src_install() {
fperms 0755 /usr/bin/VBoxControl
# VBoxClient user service and xrandr wrapper
- if use X ; then
+ 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
+ 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
@@ -237,10 +255,10 @@ 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"
+ if ! use gui ; then
+ elog "use flag gui is off, enable it to install the"
elog "X Window System video driver."
fi
elog ""
@@ -258,9 +276,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 ""
@@ -275,6 +290,5 @@ pkg_postinst() {
}
pkg_postrm() {
- linux-mod_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.18.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.18.ebuild
new file mode 100644
index 000000000000..f704b0857188
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.18.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..924a057190f7
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/Manifest
@@ -0,0 +1,11 @@
+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-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
+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-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
+DIST virtualbox-kvm-7.0.14_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494
+DIST virtualbox-kvm-7.0.14_pre20240502.tar.gz 141218 BLAKE2B fd78db709a37fd5239e52a71a5690073631c9376a0a2d6ab9a885a5892ff272d432adeabf03c3317556a9d76cc6819cc5dcd44cd19bd18bd338bb1b84bda5dae SHA512 650bbe3a8c51d7373c25834be129888b624c2d99baebe4105c2a70b1a013cdb7527224778a78f6901b91dea6e22129354ba9269bcd365b9956df5c5b8a77869b
+DIST virtualbox-kvm-7.0.18_pre20240502.tar.gz 141218 BLAKE2B fd78db709a37fd5239e52a71a5690073631c9376a0a2d6ab9a885a5892ff272d432adeabf03c3317556a9d76cc6819cc5dcd44cd19bd18bd338bb1b84bda5dae SHA512 650bbe3a8c51d7373c25834be129888b624c2d99baebe4105c2a70b1a013cdb7527224778a78f6901b91dea6e22129354ba9269bcd365b9956df5c5b8a77869b
+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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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.14_pre20240502.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240502.ebuild
new file mode 100644
index 000000000000..4c808e1dce9f
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240502.ebuild
@@ -0,0 +1,767 @@
+# 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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
+
+ 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.18_pre20240502.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240502.ebuild
new file mode 100644
index 000000000000..2b901786ab78
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.18_pre20240502.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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
+
+ 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
+ sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || 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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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 b0e0cccdad58..617a35d3e008 100644
--- a/app-emulation/virtualbox-modules/Manifest
+++ b/app-emulation/virtualbox-modules/Manifest
@@ -1,2 +1,3 @@
-DIST vbox-kernel-module-src-6.1.36.tar.xz 678624 BLAKE2B b09a9f4281287dc3a356e2af77fa024f06f64db41eac10efe8cf2b4ab39df292fac13a75247bdfa8b22dc3fbbc3747d217651da11c4788cfd08a2b6d775bb4f7 SHA512 b00c99a2db57c78c538539afc900ffa1e4729727f39ed68565a18c3fcbc28080d1ca340ee16f45e5616f535ce38ba646020a5373acc124a15821287fa29ddd52
-DIST vbox-kernel-module-src-6.1.38.tar.xz 678320 BLAKE2B 02fce9d8436e5e05cefae5e947c814470ff2898fa5ced2b734a7570e42fde2a84ecc98cbd2a3f0254443af1dd8131d541d565ecc4eb6a57ca88f7c638ed4994d SHA512 ef933e68942b847bd17ae9173d8c9963e12ffba73fe1d049e2fe9af10f720cc269ffdf7d2341ab75374f4737f4521c24316786574c0c71feb153a430c744eb0a
+DIST vbox-kernel-module-src-6.1.50.tar.xz 680700 BLAKE2B c3a10ce8f3eb7e6c0c05f81cd3c072296557b9f9f6f501bb0aec3f04aabfe1fbb67b553510104139cef290c09ff9e67161085781b8d28c968dfafd15958a1b1a SHA512 7822e421b595263cbdaae08103255742360ca7ab0c385818ec895f10570c5b9ed5c7614742d8fa8bc2414cd426907cd1c49d735cde8caf9d2b7692898058f592
+DIST vbox-kernel-module-src-7.0.14.tar.xz 718532 BLAKE2B 64df92802ab5e9fa3fdf9ba3e3b13004dc687dd2d5f3d41d24354f116a79000fe6ea07bfa8877113ab263d4f75210b600e61d983616f66b6e96324b3ea6a4b2d SHA512 2a0b9a0bbcb0a21a580000309be3a71722ee3cb9a63a5e12cd0d8a391b3832a6cc92ff806f8ca4b5fcb80fed02a44aa4de6a2d49f4583d704cec0902572a68bb
+DIST vbox-kernel-module-src-7.0.18.tar.xz 719604 BLAKE2B 44e9d895791a7ff50681dd8860456a87078b41a4eb3005a6b249f9b34c37de709e190cbd6f352d21010ddcb9d8d1c35303bafd765e999664288df9e0ead94e6c SHA512 1cc17e302ef8251abd08a078abf11fede242154b0bb78d03f8d7c2821ba7cff410bd255802316a2f13100884b35a6f14fdf0b594304bd041521b66d264f51b77
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 f2ab41b9825a..498143329fed 100644
--- a/app-emulation/virtualbox-modules/metadata.xml
+++ b/app-emulation/virtualbox-modules/metadata.xml
@@ -1,15 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>ceamac.paragon@gmail.com</email>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
<name>Viorel Munteanu</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</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.1.36.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.36.ebuild
deleted file mode 100644
index b5ac55a89c1f..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.36.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2022 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
-
-EAPI=8
-
-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://github.com/ceamac/virtualbox-modules-dist/releases/download/v${PV}/${MY_P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="amd64"
-IUSE="pax-kernel"
-
-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"
- if linux_chkconfig_present CC_IS_CLANG; then
- ewarn "Warning: building ${PN} with a clang-built kernel is experimental."
-
- BUILD_PARAMS+=' CC=${CHOST}-clang'
- if linux_chkconfig_present LD_IS_LLD; then
- BUILD_PARAMS+=' LD=ld.lld'
- if linux_chkconfig_present LTO_CLANG_THIN; then
- # kernel enables cache by default leading to sandbox violations
- BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
- fi
- fi
- fi
-}
-
-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.38.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.38.ebuild
deleted file mode 100644
index d293415c5d91..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.38.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2022 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
-
-EAPI=8
-
-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://github.com/ceamac/virtualbox-modules-dist/releases/download/v${PV}/${MY_P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0/$(ver_cut 1-2)"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="pax-kernel"
-
-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"
- if linux_chkconfig_present CC_IS_CLANG; then
- ewarn "Warning: building ${PN} with a clang-built kernel is experimental."
-
- BUILD_PARAMS+=' CC=${CHOST}-clang'
- if linux_chkconfig_present LD_IS_LLD; then
- BUILD_PARAMS+=' LD=ld.lld'
- if linux_chkconfig_present LTO_CLANG_THIN; then
- # kernel enables cache by default leading to sandbox violations
- BUILD_PARAMS+=' ldflags-y=--thinlto-cache-dir= LDFLAGS_MODULE=--thinlto-cache-dir='
- fi
- fi
- fi
-}
-
-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.50-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild
new file mode 100644
index 000000000000..83d34d6f3df3
--- /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.14-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..83f50d5bdec4
--- /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.18.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.ebuild
new file mode 100644
index 000000000000..08e22e5e0379
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.18.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 d98f18d2ee2d..05788a2aa308 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,3 +1,10 @@
-DIST VirtualBox-6.1.36.tar.bz2 165685382 BLAKE2B 98dbb06450b9df650cb72493bcdea4b88fa9dd21f76d723fdc0bb2c1ab8266f67e972a7222dc9b5bd0d43754911710664bddace753995be025cf6bcc05a24ae5 SHA512 cc3b984a7da40c9bf14831808a2bc2bf7bf6821e53c25fa11cb4b4275feb1d4b0cb4a47d8a360b90c89e5a4038481efe8fe28ee22996dbefb6446761e88a8dec
-DIST VirtualBox-6.1.38.tar.bz2 165761175 BLAKE2B decda6e7a595f79e6ace6f8f6b8a7829223ac1422c3d280b6287a40ef942e773ad473f4fa4640a76f8fb825ebd8561c646f1b3d87922b1af55c138298b4c8f4f SHA512 7a4f2dc80e3251b1da6d29d3c6f6b802527decc70497b1a1d1008c0ab3109c2039d131c587d6ec4786aea619546757655337c2ec3456243336ca13c6f6748116
+DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.18.tar.bz2 173295159 BLAKE2B 1371d54d648aafbad3814d55d495836ce7a6f9ca955aeb71e24c57a27ed8acae8c020b8094ca7386d341d5e7460b9b0823cc01e7e69dd3cdadaadee1bc608bd1 SHA512 e78a18fa808152cbdc1d407751acf3f57a8202bf238ad3432c4f0b0f97ab203e915a6cd11619e64f4aca5b907eb72be67bab146869af0e73414144addf0d76b4
+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-help-7.0.18.tar.xz 3948116 BLAKE2B 5715a7e609297387b5fccce0951c62e5969fd68adeecb869712e69f5e90daef97384bd3ff3c39de40903a1fabe7ac6d2f8ecdbb40de16abe955d40e49b962eec SHA512 ec0f915b7221bc40d02f5f1675eb0defb5506b2f2bd96c063a96a9346e1c82428ccdda8b3adac43238c451ae185ac31af4a186da17ffe091469e14e696388b3a
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.36-python3.10.patch b/app-emulation/virtualbox/files/virtualbox-6.1.36-python3.10.patch
deleted file mode 100644
index 90157ada7d96..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-6.1.36-python3.10.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/002-python310.patch
-https://github.com/archlinux/svntogit-community/blob/b103146beee8b7c70d04685033a8536aed2e5aea/trunk/003-pyunicode.patch
-
-https://www.virtualbox.org/changeset/90537/vbox
-https://www.virtualbox.org/changeset/86623/vbox
---- a/src/libs/xpcom18a4/python/src/PyXPCOM.h
-+++ b/src/libs/xpcom18a4/python/src/PyXPCOM.h
-@@ -137,7 +137,7 @@
- # define PyInt_Check(o) PyLong_Check(o)
- # define PyInt_AsLong(o) PyLong_AsLong(o)
- # define PyNumber_Int(o) PyNumber_Long(o)
--# if PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
-+# if !defined(Py_LIMITED_API) && PY_VERSION_HEX <= 0x03030000 /* 3.3 added PyUnicode_AsUTF8AndSize */
- # ifndef PyUnicode_AsUTF8
- # define PyUnicode_AsUTF8(o) _PyUnicode_AsString(o)
- # endif
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/metadata.xml b/app-emulation/virtualbox/metadata.xml
index c23ebb8dcabd..0a281e0f998b 100644
--- a/app-emulation/virtualbox/metadata.xml
+++ b/app-emulation/virtualbox/metadata.xml
@@ -1,21 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person" proxied="yes">
- <email>ceamac.paragon@gmail.com</email>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
<name>Viorel Munteanu</name>
</maintainer>
- <maintainer type="project" proxied="proxy">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</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.1.38.ebuild b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
index 93c8ac5113f7..a41107315c77 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.38.ebuild
+++ b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -15,27 +15,23 @@ EAPI=8
# trunk branch but not release branch.
#
# See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{8..10} )
+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
+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_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="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
+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}-${DIR_PV:-${MY_PV}}"
+S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-2 dtrace? ( CDDL )"
SLOT="0/$(ver_cut 1-2)"
-if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="~amd64"
-fi
+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
@@ -43,8 +39,7 @@ unset WATCOM #856769
COMMON_DEPEND="
${PYTHON_DEPS}
acct-group/vboxusers
- ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
- dev-libs/libIDL
+ ~app-emulation/virtualbox-modules-${PV}
>=dev-libs/libxslt-1.1.19
net-misc/curl
dev-libs/libxml2
@@ -53,6 +48,7 @@ COMMON_DEPEND="
sys-libs/zlib:=
!headless? (
sdl? ( media-libs/libsdl:0[X,video] )
+ x11-base/xorg-proto
x11-libs/libX11
x11-libs/libxcb:=
x11-libs/libXcursor
@@ -78,6 +74,7 @@ COMMON_DEPEND="
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
@@ -89,24 +86,27 @@ COMMON_DEPEND="
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
# but it needs more investigation.
#
-# See bug #832166.
+# 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-sound/pulseaudio )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+ pulseaudio? ( media-libs/libpulse )
"
BDEPEND="
${PYTHON_DEPS}
- >=dev-util/kbuild-0.1.9998.3127
+ >=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
@@ -132,16 +132,21 @@ RDEPEND="
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="
@@ -151,6 +156,7 @@ QA_WX_LOAD="
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="
@@ -169,12 +175,14 @@ PATCHES=(
# proper Python selection.
"${FILESDIR}"/${PN}-6.1.34-r3-python.patch
- # Patch grabbed from Arch Linux / upstream for Python 3.10 support
- "${FILESDIR}"/${PN}-6.1.36-python3.10.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
)
@@ -219,11 +227,6 @@ src_prepare() {
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
-
# Remove shipped binaries (kBuild, yasm), see bug #232775
rm -r kBuild/bin tools || die
@@ -242,6 +245,9 @@ src_prepare() {
>> 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
@@ -264,11 +270,12 @@ src_prepare() {
-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
@@ -276,6 +283,14 @@ src_configure() {
append-cxxflags $(test-flags-CXX -mno-$i)
done
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/g' {} \+ || die
+
tc-export AR CC CXX LD RANLIB
export HOST_CC="$(tc-getBUILD_CC)"
@@ -286,23 +301,23 @@ src_configure() {
--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 '')
+ $(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+=(
- $(usex opengl '' --disable-opengl)
- $(usex qt5 '' --disable-qt)
- $(usex sdl '' --disable-sdl)
+ $(usev !opengl --disable-opengl)
+ $(usev !qt5 --disable-qt)
+ $(usev !sdl --disable-sdl)
)
else
myconf+=(
@@ -315,6 +330,9 @@ src_configure() {
myconf+=( --disable-vmmraw )
fi
+ # bug #908814
+ filter-lto
+
# bug #843437
cat >> LocalConfig.kmk <<-EOF || die
CXXFLAGS=${CXXFLAGS}
@@ -459,7 +477,8 @@ src_install() {
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
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \
+ vboximg-mount *so *r0 iPxeBaseBin ; do
vbox_inst ${each}
done
@@ -480,8 +499,9 @@ src_install() {
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}
+ 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
@@ -591,9 +611,7 @@ src_install() {
# 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
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
local extensions_dir="${vbox_inst_path}/ExtensionPacks"
@@ -644,7 +662,7 @@ pkg_postinst() {
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/${DIR_PV:-${PV}}/UserManual.pdf"
+ elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
elog ""
optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
diff --git a/app-emulation/virtualbox/virtualbox-6.1.36-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
index 1ecfee53049c..5b6ec05dfcd1 100644
--- a/app-emulation/virtualbox/virtualbox-6.1.36-r2.ebuild
+++ b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -15,69 +15,71 @@ EAPI=8
# trunk branch but not release branch.
#
# See bug #785835, bug #856121.
-PYTHON_COMPAT=( python3_{8..10} )
+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
+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_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="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://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${MY_PV}.tar.bz2"
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
+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 dtrace? ( CDDL )"
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
SLOT="0/$(ver_cut 1-2)"
-if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
- KEYWORDS="amd64"
-fi
-IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
+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-${DIR_PV:-${PV}}
- dev-libs/libIDL
- >=dev-libs/libxslt-1.1.19
- net-misc/curl
+ ~app-emulation/virtualbox-modules-${PV}
+ dev-libs/libtpms
dev-libs/libxml2
+ dev-libs/openssl:0=
media-libs/libpng:0=
media-libs/libvpx:0=
- sys-libs/zlib:=
- !headless? (
- sdl? ( media-libs/libsdl:0[X,video] )
+ 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/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
- )
+ opengl? ( dev-qt/qtopengl:5 )
)
- dev-libs/openssl:0=
- virtual/libcrypt:=
lvm? ( sys-fs/lvm2 )
- opus? ( media-libs/opus )
- udev? ( >=virtual/udev-171 )
+ 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
@@ -89,24 +91,46 @@ COMMON_DEPEND="
# ("With Java 11 wsimport was removed, usually part of a separate install now.")
# but it needs more investigation.
#
-# See bug #832166.
+# 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 )
- !headless? (
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
x11-libs/libXinerama
- opengl? ( virtual/opengl )
+ x11-libs/libXmu
+ x11-libs/libXrandr
)
java? ( virtual/jdk:1.8 )
- pam? ( sys-libs/pam )
- pax-kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+ 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}
- >=dev-util/kbuild-0.1.9998.3127
+ >=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
@@ -114,34 +138,38 @@ BDEPEND="
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 )
- 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="
@@ -151,6 +179,7 @@ QA_WX_LOAD="
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="
@@ -161,40 +190,36 @@ 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
-
- # Patch grabbed from Arch Linux / upstream for Python 3.10 support
- "${FILESDIR}"/${PN}-6.1.36-python3.10.patch
-
- # 865361
- "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
-
# Downloaded patchset
- "${WORKDIR}"/virtualbox-patches-${MY_PV}/patches
+ "${WORKDIR}"/virtualbox-patches-7.0.14/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."
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
fi
- if ! use opengl ; then
+ if ! use opengl; then
einfo "No USE=\"opengl\" selected, this build will lack"
einfo "the OpenGL feature."
fi
- if ! use python ; then
+ 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() {
@@ -206,33 +231,28 @@ src_prepare() {
default
# Only add nopie patch when we're on hardened
- if gcc-specs-pie ; then
+ 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
-
- # 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
+ # 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
+ 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
@@ -242,23 +262,20 @@ src_prepare() {
-i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
# Use PAM only when pam USE flag is enbaled (bug #376531)
- if ! use pam ; then
+ 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
+ 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
-}
-
-src_configure() {
- tc-ld-disable-gold # bug #488176
#856811 #864274
# cannot filter out only one flag, some combinations of these flags produce buggy executables
@@ -267,6 +284,66 @@ src_configure() {
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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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)"
@@ -274,44 +351,37 @@ src_configure() {
--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 '')
+ $(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 headless ; then
+ if use gui || use sdl || use opengl; then
myconf+=(
- $(usex opengl '' --disable-opengl)
- $(usex qt5 '' --disable-qt)
- $(usex sdl '' --disable-sdl)
+ $(usev !opengl --disable-opengl)
+ $(usev !gui --disable-qt)
+ $(usev !sdl --disable-sdl)
)
else
myconf+=(
--build-headless
- --disable-opengl
)
fi
- if use amd64 && ! has_multilib_profile ; then
+ 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[@]}"
@@ -329,7 +399,7 @@ src_configure() {
VBOX_LIB_PYTHON=$(python_get_library_path)
EOF
- if use python ; then
+ if use python; then
local mangled_python="${EPYTHON#python}"
mangled_python="${mangled_python/.}"
@@ -388,7 +458,7 @@ src_compile() {
TOOL_YASM_AS=yasm
)
- if use amd64 && has_multilib_profile ; then
+ if use amd64 && has_multilib_profile; then
myemakeargs+=(
CC32="$(tc-getCC) -m32"
CXX32="$(tc-getCXX) -m32"
@@ -450,7 +520,8 @@ src_install() {
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
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+ vboximg-mount vbox-img *so *r0; do
vbox_inst ${each}
done
@@ -471,54 +542,55 @@ src_install() {
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}
+ 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
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
- if use pam ; then
+ 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"
+ 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 headless ; then
- vbox_inst rdesktop-vrdp
- if use sdl ; then
- vbox_inst VBoxSDL 4750
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+ 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
+ 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 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
+ 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
+ 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
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
- domenu ${PN}.desktop
- fi
+ domenu ${PN}.desktop
pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
for size in 16 32 48 64 128 ; do
@@ -531,7 +603,7 @@ src_install() {
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
+ if [[ -f "${icofile}" ]]; then
newicon -s ${size} ${icofile} ${PN}-${ico}.png
fi
done
@@ -539,22 +611,22 @@ src_install() {
popd &>/dev/null || die
fi
- if use lvm ; then
+ if use lvm; then
vbox_inst VBoxVolInfo 4750
dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
fi
- if use sdk ; then
+ if use sdk; then
insinto ${vbox_inst_path}
doins -r sdk
- if use java ; then
+ 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
+ if use udev; then
local udevdir="$(get_udevdir)"
local udev_file="VBoxCreateUSBNode.sh"
local rules_file="10-virtualbox.rules"
@@ -570,7 +642,7 @@ src_install() {
doins "${T}"/${rules_file}
fi
- if use vboxwebsrv ; then
+ if use vboxwebsrv; then
vbox_inst vboxwebsrv
dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
@@ -582,37 +654,51 @@ src_install() {
# 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
+ 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
+ if use vnc; then
insinto ${extensions_dir}
doins -r ExtensionPacks/VNC
fi
- if use dtrace ; then
+ if use dtrace; then
insinto ${extensions_dir}
doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
fi
- if use doc ; then
- dodoc UserManual.pdf
+ 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 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
+ 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
@@ -621,28 +707,28 @@ src_install() {
pkg_postinst() {
xdg_pkg_postinst
- if use udev ; then
+ if use udev; then
udev_reload
udevadm trigger --subsystem-match=usb
fi
tmpfiles_process virtualbox-vboxusb.conf
- if ! use headless && use qt5 ; then
+ 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/${DIR_PV:-${PV}}/UserManual.pdf"
+ 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
+ if ! use udev; then
ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
fi
}
diff --git a/app-emulation/virtualbox/virtualbox-7.0.18.ebuild b/app-emulation/virtualbox/virtualbox-7.0.18.ebuild
new file mode 100644
index 000000000000..bf56c96cb843
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.18.ebuild
@@ -0,0 +1,741 @@
+# 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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
+ sed -e "1 i\#! ${PYTHON}" -i vboxshell.py || 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/&nbsp;/\&#160;/g' \
+ -e 's/&ndash;/\&#8211;/g' \
+ -e 's/&larr;/\&#8592;/g' \
+ -e 's/&rarr;/\&#8594;/g' \
+ -e 's/&harr;/\&#8596;/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/&apos;[^&]*\(vboxdrv setup\|vboxconfig\)&apos;/\&apos;emerge -1 virtualbox-modules\&apos;/' {} \+ || 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
index d0abe731bac6..816f990db156 100644
--- a/app-emulation/vkd3d-proton/Manifest
+++ b/app-emulation/vkd3d-proton/Manifest
@@ -1,4 +1,8 @@
-DIST vkd3d-proton-2.6-dxil-spirv.tar.gz 631130 BLAKE2B 99f40c5efde87d0af86542b427e5b0429be68ca69ba0c2b6d10a821811756d8dadff4449f268ae404f8ace09a91b3e8aaa135e534a77c0239e58c1a970a044cc SHA512 3c20090b7a1b53c30fd4967622fc7384e1bcc504c30d8075068b87dad1bd2c6f4a12459bf42e61bf76b9dd454ec17a9d529f74ab0d5583627e966d94bb341dc3
-DIST vkd3d-proton-2.6-spirv-headers.tar.gz 1299014 BLAKE2B 0b1e635aaa6eebec3525b13698a064e0e5b8a78829a772cbe9e1890148059bf396bc5c830e8d6ee3070a3343775991642565283994c65acfa0d82a91590b7d84 SHA512 ecb2158cad55edb4ba069383668f3b311a2f6aa6777b5b7ed94795d454622426ee34fee52b13c97d2f07b5b2f965815ee61a0203b76a0b0d2c708a4786d06b96
-DIST vkd3d-proton-2.6-vulkan-headers.tar.gz 415130 BLAKE2B 0c6444c4c1cb43b9c69757d7c2257ce2fe1bc6be308341f3189766f120994e4920bc738b737d9eefc299359dab568fb8809782e3663dd589c0e4d13aecb8873a SHA512 02cf1d63b29e48ef0efe489eb32237ba2f9f4bf58a182b00dc96aab18faba94de79283398e9e945cd81130f83fff228c59b04e496716ea9ccc148a5f4465282c
+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.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-b537bbb91b.tar.gz 631130 BLAKE2B 99f40c5efde87d0af86542b427e5b0429be68ca69ba0c2b6d10a821811756d8dadff4449f268ae404f8ace09a91b3e8aaa135e534a77c0239e58c1a970a044cc SHA512 3c20090b7a1b53c30fd4967622fc7384e1bcc504c30d8075068b87dad1bd2c6f4a12459bf42e61bf76b9dd454ec17a9d529f74ab0d5583627e966d94bb341dc3
+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 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/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.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild
index 118d81a120cd..9a41d28143b1 100644
--- a/app-emulation/vkd3d-proton/vkd3d-proton-2.6.ebuild
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild
@@ -1,8 +1,12 @@
-# Copyright 2022 Gentoo Authors
+# 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
@@ -17,16 +21,20 @@ if [[ ${PV} == 9999 ]]; then
subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
)
else
- VKD3D_HASH=3e5aab6fb3e18f81a71b339be4cb5cdf55140980 # match tag on bumps
- DXIL_HASH=b537bbb91bccdbc695cb7e5211d608f8d1c205bd
- SPIRV_HASH=ae217c17809fadb232ec94b29304b4afcd417bb4
- VULKAN_HASH=83e1a9ed8ce289cebb1c02c8167d663dc1befb24
+ 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/${DXIL_HASH}.tar.gz -> ${P}-dxil-spirv.tar.gz
- https://github.com/KhronosGroup/SPIRV-Headers/archive/${SPIRV_HASH}.tar.gz -> ${P}-vulkan-headers.tar.gz
- https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKAN_HASH}.tar.gz -> ${P}-spirv-headers.tar.gz"
- KEYWORDS="-* ~amd64 ~x86"
+ 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"
@@ -40,6 +48,10 @@ 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
@@ -51,11 +63,11 @@ pkg_pretend() {
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"
+ 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 set but ${tool} does not use POSIX threads"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
fi
done
tool=-w64-mingw32-widl
@@ -72,9 +84,9 @@ pkg_pretend() {
src_prepare() {
if [[ ${PV} != 9999 ]]; then
rmdir subprojects/{{SPIRV,Vulkan}-Headers,dxil-spirv} || die
- mv ../dxil-spirv-${DXIL_HASH} subprojects/dxil-spirv || die
- mv ../SPIRV-Headers-${SPIRV_HASH} subprojects/SPIRV-Headers || die
- mv ../Vulkan-Headers-${VULKAN_HASH} subprojects/Vulkan-Headers || 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
@@ -85,19 +97,35 @@ src_prepare() {
if [[ ${PV} != 9999 ]]; then
# without .git, meson sets vkd3d_build as 0x${PV} leading to failure
- sed -i "s/@VCS_TAG@/${VKD3D_HASH::15}/" vkd3d_build.h.in || die
- sed -i "s/@VCS_TAG@/${VKD3D_HASH::7}/" vkd3d_version.h.in || die
+ 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 '-fstack-protector*' #870136
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
@@ -155,11 +183,4 @@ pkg_postinst() {
elog
elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
fi
-
- # don't try to keep wine-*[vulkan] in RDEPEND, but still give a warning
- local wine
- for wine in app-emulation/wine-{vanilla,staging}; do
- has_version ${wine} && ! has_version ${wine}[vulkan] &&
- ewarn "${wine} was not built with USE=vulkan, ${PN} will not be usable with it"
- done
}
diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild
index 118d81a120cd..12ec38649be1 100644
--- a/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild
@@ -1,8 +1,9 @@
-# Copyright 2022 Gentoo Authors
+# 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
@@ -12,20 +13,28 @@ if [[ ${PV} == 9999 ]]; then
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
+ khronos/{SPIRV,Vulkan}-Headers
subprojects/dxil-spirv
subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
)
else
- VKD3D_HASH=3e5aab6fb3e18f81a71b339be4cb5cdf55140980 # match tag on bumps
- DXIL_HASH=b537bbb91bccdbc695cb7e5211d608f8d1c205bd
- SPIRV_HASH=ae217c17809fadb232ec94b29304b4afcd417bb4
- VULKAN_HASH=83e1a9ed8ce289cebb1c02c8167d663dc1befb24
+ 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/${DXIL_HASH}.tar.gz -> ${P}-dxil-spirv.tar.gz
- https://github.com/KhronosGroup/SPIRV-Headers/archive/${SPIRV_HASH}.tar.gz -> ${P}-vulkan-headers.tar.gz
- https://github.com/KhronosGroup/Vulkan-Headers/archive/${VULKAN_HASH}.tar.gz -> ${P}-spirv-headers.tar.gz"
+ 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
@@ -34,12 +43,16 @@ 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"
+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
@@ -51,11 +64,11 @@ pkg_pretend() {
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"
+ 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 set but ${tool} does not use POSIX threads"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
fi
done
tool=-w64-mingw32-widl
@@ -71,12 +84,20 @@ pkg_pretend() {
src_prepare() {
if [[ ${PV} != 9999 ]]; then
- rmdir subprojects/{{SPIRV,Vulkan}-Headers,dxil-spirv} || die
- mv ../dxil-spirv-${DXIL_HASH} subprojects/dxil-spirv || die
- mv ../SPIRV-Headers-${SPIRV_HASH} subprojects/SPIRV-Headers || die
- mv ../Vulkan-Headers-${VULKAN_HASH} subprojects/Vulkan-Headers || die
- ln -s ../../../SPIRV-Headers/include \
- subprojects/dxil-spirv/third_party/spirv-headers || die
+ 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
@@ -85,29 +106,41 @@ src_prepare() {
if [[ ${PV} != 9999 ]]; then
# without .git, meson sets vkd3d_build as 0x${PV} leading to failure
- sed -i "s/@VCS_TAG@/${VKD3D_HASH::15}/" vkd3d_build.h.in || die
- sed -i "s/@VCS_TAG@/${VKD3D_HASH::7}/" vkd3d_version.h.in || die
+ 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 '-fstack-protector*' #870136
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
@@ -131,7 +164,7 @@ multilib_src_configure() {
--{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
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
-Denable_tests=false # needs wine/vulkan and is intended for manual use
)
@@ -142,8 +175,6 @@ 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
}
@@ -153,13 +184,24 @@ pkg_postinst() {
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."
- fi
+ 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
- # don't try to keep wine-*[vulkan] in RDEPEND, but still give a warning
- local wine
- for wine in app-emulation/wine-{vanilla,staging}; do
- has_version ${wine} && ! has_version ${wine}[vulkan] &&
- ewarn "${wine} was not built with USE=vulkan, ${PN} will not be usable with it"
- done
+ 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 5fc50d2062fe..e46132d73bb4 100644
--- a/app-emulation/vkd3d/Manifest
+++ b/app-emulation/vkd3d/Manifest
@@ -1,3 +1 @@
-DIST vkd3d-1.2.tar.xz 611240 BLAKE2B e7ea3f7120ad1092be0239bdc2e6d0dfdfecc3b1c2e7c359c4bfbd8c259f092e041a75a0e896da9a1c6370d5716590711128d31c9e552897b177b300b9a15107 SHA512 ca9d5b11e7770747b78b61f43196b45b7bda8d2dd4f1d76da915f895a04dc28c20499e1e433f5ce17416964fe0f37cdc907e7aa540ec9105afbc8a100094f3e7
-DIST vkd3d-1.4.tar.xz 774920 BLAKE2B c46a71b495fc41658ea493f65ad15aec18202889a9c7925962301cce91f32e197c5850f374331595e4bd267fcbf9836531e733fb5880ddb4936476ddedd19bbc SHA512 58535b57b0b506542f2867e9b1229682f012216b9f8913d2692d4ed64a8113248d66ea710127ec2064baf9511b7f2be7b757dffcaf95a43168d781010d007ddb
-DIST vkd3d-1.5.tar.xz 776260 BLAKE2B c021dd03b120f3ad8da61147a12f9d581a85aaf458f34308f06a648167562adedd670444473cbc5ca66c1ff6242b2add21396bbc5cce308c39482451aa5b45e5 SHA512 69ec33bef28334a9a55da34621c71623843995279fb5267cc56228cd343c8cf292deb848596e6f850dfee6d07cc35206fc034fc4ce2a911652a9c42c032cdc08
+DIST vkd3d-1.11.tar.xz 1016132 BLAKE2B 634f5f99f7605814d36a90270ddb82a6a11e2b6bfc2cdc6a6d4d31b730b9d5739479770fe00704f27a726c39aa115272c0a79dbcff8baf251188a4b3ead8faeb SHA512 2b14f7f8d4d58c2bfc6c30aa0d24b6789c0887b2869cfb6be98d03b7b001a74a1fbe24439229fa4d3a618a69fe8eeb77d7a520a16276ae494fe6ee2357dd31d0
diff --git a/app-emulation/vkd3d/vkd3d-1.5.ebuild b/app-emulation/vkd3d/vkd3d-1.11.ebuild
index f0e863b89b11..c05e18ff7123 100644
--- a/app-emulation/vkd3d/vkd3d-1.5.ebuild
+++ b/app-emulation/vkd3d/vkd3d-1.11.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -11,22 +11,25 @@ SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
LICENSE="LGPL-2.1+"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+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}] )"
+ spirv-tools? ( dev-util/spirv-tools[${MULTILIB_USEDEP}] )
+"
DEPEND="
${RDEPEND}
dev-util/spirv-headers
- dev-util/vulkan-headers"
+ dev-util/vulkan-headers
+"
BDEPEND="
sys-devel/flex
sys-devel/bison
- virtual/pkgconfig"
+ virtual/pkgconfig
+"
multilib_src_configure() {
local conf=(
@@ -40,5 +43,7 @@ multilib_src_configure() {
}
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 f1338881d76e..000000000000
--- a/app-emulation/vkd3d/vkd3d-1.2.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2022 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
-
-#Tests fail: https://bugs.gentoo.org/838655
-RESTRICT="test"
-
-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-1.4-r1.ebuild b/app-emulation/vkd3d/vkd3d-1.4-r1.ebuild
deleted file mode 100644
index 5fc7999f8241..000000000000
--- a/app-emulation/vkd3d/vkd3d-1.4-r1.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2022 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://source.winehq.org/git/vkd3d.git/"
-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() {
- find "${ED}" -type f -name '*.la' -delete || die
-}
diff --git a/app-emulation/wine-gecko/Manifest b/app-emulation/wine-gecko/Manifest
index 18eb33335baa..0924bbaa755b 100644
--- a/app-emulation/wine-gecko/Manifest
+++ b/app-emulation/wine-gecko/Manifest
@@ -6,3 +6,7 @@ DIST wine-gecko-2.47.3-x86.msi 55686144 BLAKE2B ce428b35ce70968c12141832aab6044a
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 e1932b4ddc74..8b46426a7860 100644
--- a/app-emulation/wine-gecko/metadata.xml
+++ b/app-emulation/wine-gecko/metadata.xml
@@ -5,9 +5,6 @@
<email>wine@gentoo.org</email>
<name>Wine</name>
</maintainer>
- <upstream>
- <remote-id type="sourceforge">wine</remote-id>
- </upstream>
<use>
<flag name="shared">Install pre-unpacked files which do not need to be copied into the Wine prefix</flag>
</use>
diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild
index e5a5a8df49a9..fd2e621718a3 100644
--- a/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild
+++ b/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild
@@ -1,37 +1,37 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-DESCRIPTION="A Mozilla Gecko based version of Internet Explorer for Wine"
-HOMEPAGE="https://winehq.org"
+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}/${PN}-${PV}-x86.msi )
- abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86_64.msi )
- )
shared? (
- abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86.tar.xz )
- abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86_64.tar.xz )
+ 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"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
+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"
+ use abi_x86_32 && doins -r ${P}-x86
+ use abi_x86_64 && doins -r ${P}-x86_64
else
- use abi_x86_32 && doins "${DISTDIR}/${PN}-${PV}-x86.msi"
- use abi_x86_64 && doins "${DISTDIR}/${PN}-${PV}-x86_64.msi"
+ 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
index 08acbaed7440..fd2e621718a3 100644
--- a/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild
+++ b/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild
@@ -1,37 +1,37 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-DESCRIPTION="A Mozilla Gecko based version of Internet Explorer for Wine"
-HOMEPAGE="https://winehq.org"
+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}/${PN}-${PV}-x86.msi )
- abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86_64.msi )
- )
shared? (
- abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86.tar.xz )
- abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86_64.tar.xz )
+ 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"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
+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"
+ use abi_x86_32 && doins -r ${P}-x86
+ use abi_x86_64 && doins -r ${P}-x86_64
else
- use abi_x86_32 && doins "${DISTDIR}/${PN}-${PV}-x86.msi"
- use abi_x86_64 && doins "${DISTDIR}/${PN}-${PV}-x86_64.msi"
+ 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 c55ba7ae8ae1..dd0016c86352 100644
--- a/app-emulation/wine-mono/Manifest
+++ b/app-emulation/wine-mono/Manifest
@@ -1,6 +1,10 @@
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.3.0-x86.msi 86919680 BLAKE2B 917aa260ba7a012ed1e1565f8ed23225c82060c82dbb74a1e0d105a7b38a1d840c20689e0a8e7cc1a5c5de938807c78f36c98cbef07270accaf789b6b031f22d SHA512 d92ab4a9d0ac1c48dfec583b1681317e9ec9556efcb18766a865bee06a3a53ea08159099ca3ec92149f677d67583648991d59adb9b8a612ef41de06da8c77fd2
-DIST wine-mono-7.3.0-x86.tar.xz 43557004 BLAKE2B 919912faf97cf38b2fcc9813de4e035d907b0a00db78d2a251c1c43dab65ba44847ecbf494a15dba761d9ba8203855c1a6e5f5bbd07f20484c9948c3cfe4d3bc SHA512 c26dc21d0d462b3c79e778497815e33d26b5ab545eba0552b436f30d9b7aa340ccdef69fe0dcbf32c04330e6d0f813314646ded7d2d24e6f4746e4893adbbf7f
-DIST wine-mono-7.3.1-x86.msi 86930432 BLAKE2B f43b605ab7b07a7b4d8d4675297af6e827e81b2b232c6991fb1f559a247c6b546490017dd4e1aab04aad664570cb90152ff872be61bb8e12a154ae2366dbb21c SHA512 dd9f3860c4b52edce44f51b27de2a3b4acc97271d661e41310b889fa378f502458739caaa548fff5e16ddba418d40d647528c151c0413519df54c38f9e237946
-DIST wine-mono-7.3.1-x86.tar.xz 43216532 BLAKE2B bc00f41d2e9e88c0a687fad6bdd48e9a836f3d7369747602665691ca3e430c895655e9c5e9ef955a5cf45a96818b6858bc3cc93d90c3d7a49f8d8f4ff824d45a SHA512 a2c8d10d9b34fd7775eeddb6494b84f2f04e6a2f21d93940dc902434b189d43bdfdcd198baf8133cda8b17c2bc25ee84538e12a32027cdd66da9ab029eed6777
+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 35b0a5fbed1f..83c506abfee8 100644
--- a/app-emulation/wine-mono/metadata.xml
+++ b/app-emulation/wine-mono/metadata.xml
@@ -6,12 +6,16 @@
<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>
- <upstream>
- <remote-id type="github">madewokherd/wine-mono</remote-id>
- </upstream>
<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>
</pkgmetadata>
diff --git a/app-emulation/wine-mono/wine-mono-7.0.0.ebuild b/app-emulation/wine-mono/wine-mono-7.0.0.ebuild
index cbd75a5c9f9d..f943df20d059 100644
--- a/app-emulation/wine-mono/wine-mono-7.0.0.ebuild
+++ b/app-emulation/wine-mono/wine-mono-7.0.0.ebuild
@@ -1,29 +1,26 @@
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
+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.msi )
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"
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
src_install() {
insinto /usr/share/wine/mono
+
if use shared; then
- doins -r "${P}"
+ doins -r ${P}
else
- doins "${DISTDIR}/${P}-x86.msi"
+ doins "${DISTDIR}"/${P}-x86.msi
fi
}
diff --git a/app-emulation/wine-mono/wine-mono-7.3.0.ebuild b/app-emulation/wine-mono/wine-mono-7.3.0.ebuild
deleted file mode 100644
index 0836b039a90f..000000000000
--- a/app-emulation/wine-mono/wine-mono-7.3.0.ebuild
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 1999-2022 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="
- !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi )
- shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz )
-"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-IUSE="+shared"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-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-7.3.1.ebuild b/app-emulation/wine-mono/wine-mono-9.0.0.ebuild
index f32c9e9a3a3f..f756896e7c2e 100644
--- a/app-emulation/wine-mono/wine-mono-7.3.1.ebuild
+++ b/app-emulation/wine-mono/wine-mono-9.0.0.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2022 Gentoo Authors
+# 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://www.winehq.org/"
+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 )"
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
index 69394f0077a5..4e84f540f297 100644
--- a/app-emulation/wine-proton/Manifest
+++ b/app-emulation/wine-proton/Manifest
@@ -1 +1,3 @@
-DIST proton-wine-7.0-4.tar.gz 45561670 BLAKE2B 0bc3432e5aa9ca1655e76b31dcbef08febe263e07d3635d005fbc7798b3a08fa50e2e736f33b18700f187dc755f012d7e8ae3edae6a63fb433cd9b8861b747b0 SHA512 dccdf4115e2a7c92981163783f5705e78fbfa042f06123e4802251bd2c558e8b4de7e3d2e114a5d942f9493eb64fb7fdedff2e6e8b3f21ea1de1156456930d8c
+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
+DIST proton-wine-9.0-1.tar.gz 49048661 BLAKE2B cf237c314e8b222bb36f52f316baae2351a30d22995d610c7977accc9588c474d0e598702000aa81b34fc2f3daeccd09f54ef53b7a2250c0b012ca47d69628eb SHA512 d7d3e4725a86ca120d059e5b8f9760bce45a5db0ae814cd76aa51dc361bb67af9c2834917ddad3858fc324a1d048acdd9942492c77d0f396aae7d537c70e3ca1
diff --git a/app-emulation/wine-proton/files/README.gentoo b/app-emulation/wine-proton/files/README.gentoo
index 988d28df7ddf..48f3d568a013 100644
--- a/app-emulation/wine-proton/files/README.gentoo
+++ b/app-emulation/wine-proton/files/README.gentoo
@@ -7,7 +7,7 @@ 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. ldap) may not have real upstream
+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.
@@ -32,6 +32,7 @@ To (optionally) setup some notable defaults of Proton:
- 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
@@ -48,5 +49,4 @@ 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. Note other available
-variants may be auto-selected when removing/replacing a selected slot.
+to select this variant or call it as wine-proton.
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
index e0ea57df1f22..cc21bdb8ce89 100644
--- a/app-emulation/wine-proton/metadata.xml
+++ b/app-emulation/wine-proton/metadata.xml
@@ -20,6 +20,14 @@
<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>
diff --git a/app-emulation/wine-proton/wine-proton-7.0.9999.ebuild b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild
index 3e08621d9527..fe8d48046141 100644
--- a/app-emulation/wine-proton/wine-proton-7.0.9999.ebuild
+++ b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild
@@ -1,15 +1,15 @@
-# Copyright 2022 Gentoo Authors
+# 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_{8..11} )
-inherit autotools flag-o-matic multilib multilib-build \
- python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+PYTHON_COMPAT=( python3_{10..13} )
+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.3.1
+WINE_MONO=7.4.0
WINE_PV=$(ver_rs 2 -)
if [[ ${PV} == *9999 ]]; then
@@ -19,7 +19,7 @@ if [[ ${PV} == *9999 ]]; then
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"
+ KEYWORDS="-* amd64 ~x86"
fi
DESCRIPTION="Valve Software's fork of Wine"
@@ -31,7 +31,8 @@ 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"
+ 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
@@ -39,7 +40,6 @@ RESTRICT="test"
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
WINE_DLOPEN_DEPEND="
- dev-libs/gmp:=[${MULTILIB_USEDEP}]
dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
media-libs/freetype[${MULTILIB_USEDEP}]
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
@@ -53,11 +53,15 @@ WINE_DLOPEN_DEPEND="
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${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}] )"
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
x11-libs/libX11[${MULTILIB_USEDEP}]
@@ -76,7 +80,8 @@ WINE_COMMON_DEPEND="
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
)
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )"
+ vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
+"
RDEPEND="
${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
@@ -88,21 +93,29 @@ RDEPEND="
dev-perl/XML-LibXML
)
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- x11-base/xorg-proto"
+ 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-1.2.2-r1"
+ !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=(
@@ -110,6 +123,7 @@ PATCHES=(
"${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() {
@@ -144,16 +158,29 @@ src_prepare() {
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() {
@@ -213,10 +240,21 @@ src_configure() {
$(use_with xinerama)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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
@@ -244,6 +282,19 @@ src_configure() {
# 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=*'
@@ -297,25 +348,23 @@ src_install() {
readme.gentoo_create_doc
}
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
-}
-
pkg_preinst() {
has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
}
pkg_postinst() {
- wine-eselect register
-
[[ -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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-proton/wine-proton-7.0.4.ebuild b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
index 069df0440aa8..d241cf82281d 100644
--- a/app-emulation/wine-proton/wine-proton-7.0.4.ebuild
+++ b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
@@ -1,15 +1,15 @@
-# Copyright 2022 Gentoo Authors
+# 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_{8..11} )
-inherit autotools flag-o-matic multilib multilib-build \
- python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+PYTHON_COMPAT=( python3_{10..13} )
+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.3.0
+WINE_MONO=8.1.0
WINE_PV=$(ver_rs 2 -)
if [[ ${PV} == *9999 ]]; then
@@ -19,19 +19,20 @@ if [[ ${PV} == *9999 ]]; then
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"
+ 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"
+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 debug
- +fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal
- osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb
- v4l +vkd3d +xcomposite xinerama"
+ +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
@@ -39,7 +40,6 @@ RESTRICT="test"
# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
WINE_DLOPEN_DEPEND="
- dev-libs/gmp:=[${MULTILIB_USEDEP}]
dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
media-libs/freetype[${MULTILIB_USEDEP}]
media-libs/libglvnd[X,${MULTILIB_USEDEP}]
@@ -53,22 +53,28 @@ WINE_DLOPEN_DEPEND="
fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${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}] )"
+ 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[${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? (
@@ -76,7 +82,7 @@ WINE_COMMON_DEPEND="
!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
@@ -88,28 +94,36 @@ RDEPEND="
dev-perl/XML-LibXML
)
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- x11-base/xorg-proto"
+ 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-1.2.2-r1"
+ !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}-8.0.1c-unwind.patch
+ "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch
)
pkg_pretend() {
@@ -144,16 +158,33 @@ src_prepare() {
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() {
@@ -170,6 +201,8 @@ src_configure() {
# 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
@@ -183,7 +216,6 @@ src_configure() {
--without-gphoto
--without-gssapi
--without-krb5
- --without-ldap
--without-netapi
--without-opencl
--without-pcap
@@ -192,12 +224,12 @@ src_configure() {
$(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 openal)
$(use_with osmesa)
--without-oss # media-sound/oss is not packaged (OSSv4)
$(use_with pulseaudio pulse)
@@ -208,15 +240,25 @@ src_configure() {
$(use_with unwind)
$(use_with usb)
$(use_with v4l v4l2)
- $(use_with vkd3d)
$(use_with xcomposite)
$(use_with xinerama)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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
@@ -227,8 +269,9 @@ src_configure() {
mkdir ../build${bits} || die
cd ../build${bits} || die
- # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
+ 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
@@ -241,14 +284,35 @@ src_configure() {
fi
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
- # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
+ # 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{CC,{C,LD}FLAGS}
+ export CROSS{C,LD}FLAGS
ECONF_SOURCE=${S} econf "${conf[@]}"
)
@@ -289,33 +353,35 @@ src_install() {
# 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 ||
+
+ 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 {} + || die
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
- dodoc ANNOUNCE AUTHORS README* documentation/README*
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
readme.gentoo_create_doc
}
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
-}
-
pkg_preinst() {
has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
}
pkg_postinst() {
- wine-eselect register
-
[[ -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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-proton/wine-proton-9.0.1.ebuild b/app-emulation/wine-proton/wine-proton-9.0.1.ebuild
new file mode 100644
index 000000000000..024f4d039fc9
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-9.0.1.ebuild
@@ -0,0 +1,419 @@
+# 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..13} )
+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=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 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)
+ )
+
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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-proton/wine-proton-9.0.9999.ebuild b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild
new file mode 100644
index 000000000000..6a86d9f190b0
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild
@@ -0,0 +1,421 @@
+# 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..13} )
+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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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 331f4c7a14d9..fe42d750defe 100644
--- a/app-emulation/wine-staging/Manifest
+++ b/app-emulation/wine-staging/Manifest
@@ -1,7 +1,10 @@
-DIST gentoo-wine-patches-20211122.tar.xz 59796 BLAKE2B 21460e6adf4934a52f8841f76f234a764c2dc1ac77eeed1cee10adafec3aa723640ebd4b51559e9ef433070ac731c4648620bd9e75e99f31b2e2f494cf01f02d SHA512 a18cb320617e2157977032c38c322177a2d248f14e43051d38de595af171495546c93d5e71e0dbe1a4f326a2dc819bb03dcfd04454ac85bbcd6b1975ae5d9d96
-DIST wine-7.16.tar.xz 28345428 BLAKE2B 6540dd196639c5b3e01af801439e4ca8d3d17ce6b9832c3ab7d0263909e0a963a5901b8baad00537242c32599af92d04ad58c9f51660583e28693b4ec1bdd803 SHA512 5085c7c1b0e762c508f33775f7f0aa41e94cb75805bb649093addad25f90f7f57d5101ba96227f58a6f18b3ae228bd004df11ec1c033692ad130e9b5279ea19e
-DIST wine-7.17.tar.xz 28379876 BLAKE2B 536af8f1ac9c4dd8bae2d16cba226c99c45cd64f0a9a2569022baefee61556801d3ee15f480fd18445baecb6c78dd7950f98542dc88a3282ee5d457d0e4ddfb1 SHA512 fd8017e6174db0047a3957db3045b2ad9024e07b1e2f81800521f0b7e7f7660add6a08e09bc60e3d140816cec70aae8324fe15643bd05e541f22f66ffda52508
-DIST wine-7.18.tar.xz 28412876 BLAKE2B 1f25c8669a2afbead142923a39913b3f21df641e446a6136e7ecd282f6c31bc70578036e83f3dd28d22516d987ddca179198f76effb5c9aca089f4755ffa873e SHA512 e651b18cef73b4619e953b746d0c207c0220279003560aaf195c2569a22308af129e1460651a246e6a87dcfbcfcff08f52f970734035eb55ab45d8970fd56a02
-DIST wine-staging-7.16.tar.gz 9640421 BLAKE2B 551a282c40de44a03afd7d6ef7edefac29e6ece53bd9eff854076edab400ed58c37f2d89737354c7a9d3ac9af7c576bc0ec68c61159842e9b46ac4d95c0d07ae SHA512 57003888580f3c442b9d9bc1b36c3e967bfe5b5d61b7fcd8d832a463cbea793c4bf6afce35da18ea9cee568237a0a919583e1dc6b3fea7bc09a7a13e9d9260ce
-DIST wine-staging-7.17.tar.gz 9558133 BLAKE2B ef56bae5168da021688766e1cfbc8bd510a18b0de670b0baab631389665d52230e4f9ecda2edff1f50cbd444098d33236fd0f685183e9074efc6d048665c6931 SHA512 2e9c260b56293d86a54833d128d98b2408f61a5601f0ef58db6ff02a9c5cb091d3e9acf7f6a616d7d065d9c02127936da6bdc30e6ee11b116d24aab579f512fb
-DIST wine-staging-7.18.tar.gz 9535819 BLAKE2B b7157493c8362bce4683f0cd8847e41b812fa4150cee476a5598bd5b42a95686de0a25073082f513c42d618e53538e14cb5a8ce982c731f3880fb3356f4656f0 SHA512 fce34941f53f649035b9581f3612f0e47bcbb7e52d2edd33deba9123870cf69c237d10c820c8cbe1b9a784fe6e688af8690cc9ea6d71d4fc596f94ebd1a932a9
+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-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662
+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
+DIST wine-staging-9.8.tar.gz 9580231 BLAKE2B 74d0b7d4eb49b5cb16abf17a2aae52bad9db04d3e207762f1d37a9f18870683c0115ce41b29e24edad827557de4a07235980588115b61fa86eeaaa5573460535 SHA512 8132c1fd98b55ef04993e894e11063e43ac1cae059f80e0dc3b2a4c6bf08a6ab80f7bdd02b97f62733f31850b41e5d2d6c5085b22bf873fc03ab67b79bdd3c1d
diff --git a/app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch b/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch
index 52512ca82968..f130ef5c23b3 100644
--- a/app-emulation/wine-staging/files/wine-staging-7.17-unwind.patch
+++ b/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch
@@ -3,10 +3,9 @@ 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
-@@ -734,7 +734,9 @@
- unsigned int cie_offset;
+--- 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__)
@@ -14,27 +13,24 @@ The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
+#endif
static unsigned char dwarf_get_u1( const unsigned char **p )
- {
-@@ -1456,7 +1458,7 @@
- unw_proc_info_t info;
+--- 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)
- rc = unw_init_local( &cursor, &unw_context );
-@@ -1579,11 +1581,13 @@
- NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context )
+@@ -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 );
- if (fde)
+@@ -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,
- &dispatch->LanguageHandler, &dispatch->HandlerData );
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/files/wine-staging-9.8-musl-ioctls-header.patch b/app-emulation/wine-staging/files/wine-staging-9.8-musl-ioctls-header.patch
new file mode 100644
index 000000000000..7aa1a4c00587
--- /dev/null
+++ b/app-emulation/wine-staging/files/wine-staging-9.8-musl-ioctls-header.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/931341
+https://gitlab.winehq.org/wine/wine/-/commit/24ca848c568d5a2786abd26f2e7314b2e3f509f3
+From: Fotios Valasiadis <fvalasiad@gmail.com>
+Date: Sun, 5 May 2024 03:34:57 +0300
+Subject: [PATCH] ntdll/unix: Fix building on musl by explicitly including
+ asm/ioctls.h.
+
+After commit 898ab8dab19d498c17859f39a55e317ee7e367a5 wine would no longer
+build on musl.
+
+Issue is that apparently TCSETS2 isn't defined when including sys/ioctl.h.
+
+A little digging shows that glibc goes ahead and includes asm/ioctls.h in
+sys/ioctl.h, providing said macro. Musl on the other hand doesn't and relies
+on bits/ioctl.h, which lacks said macro.
+
+Signed-off-by: Fotios Valasiadis <fvalasiad@gmail.com>
+--- a/dlls/ntdll/unix/serial.c
++++ b/dlls/ntdll/unix/serial.c
+@@ -33,6 +33,7 @@
+ #include <stdio.h>
+ #ifdef HAVE_ASM_TERMBITS_H
+ # include <asm/termbits.h>
++# include <asm/ioctls.h>
+ #else
+ # include <termios.h>
+ #endif
+--
+GitLab
+
diff --git a/app-emulation/wine-staging/metadata.xml b/app-emulation/wine-staging/metadata.xml
index d65b9b9e346e..e20c128974c9 100644
--- a/app-emulation/wine-staging/metadata.xml
+++ b/app-emulation/wine-staging/metadata.xml
@@ -23,20 +23,22 @@ This variant of the Wine packaging includes the Wine-Staging patchset.
<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="opencl">Enable OpenCL support</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 that require perl (winedump/winemaker)</flag>
- <flag name="pipelight">Apply Wine-Staging patches for Pipelight/Silverlight support</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">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="staging">Apply Wine-Staging patches for advanced feature support that haven't made it into upstream Wine yet</flag>
- <flag name="vulkan">Enable Vulkan drivers</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-7.16.ebuild b/app-emulation/wine-staging/wine-staging-7.16.ebuild
deleted file mode 100644
index 9cfa7dc58db7..000000000000
--- a/app-emulation/wine-staging/wine-staging-7.16.ebuild
+++ /dev/null
@@ -1,551 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-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"
-
-inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils
-MY_PN="${PN%%-*}"
-MY_PV="${PV/_/-}"
-MY_P="${MY_PN}-${MY_PV}"
-GECKO_VERSION="2.47.3"
-
-if [[ ${MY_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)
- if [[ ${MINOR_V} != "0" ]] ; then
- MINOR_V="x"
- fi
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-STAGING_P="wine-staging-${MY_PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20211122"
-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 [[ ${MY_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${MY_PV}.tar.gz -> ${STAGING_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${MY_PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- crossdev-mingw? ( mingw )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- pipelight? ( staging )
- test? ( abi_x86_32 )" # 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"
-
-BDEPEND="sys-devel/flex
- virtual/yacc
- virtual/pkgconfig
- mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )"
-
-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}]
- media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}]
- )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${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/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${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}] )
- 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}] )
- usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:${GECKO_VERSION}[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:7.3.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}
- ${BDEPEND}
- >=sys-kernel/linux-headers-2.6
- X? ( x11-base/xorg-proto )
- 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}-6.22-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${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 ]] || [[ ${MY_PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- # Ensure compiler support
- # (No checks here as of 2022)
- return 0
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- 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() {
- if [[ ${MERGE_TYPE} != binary ]] ; then
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from"
- eerror ">=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-
- 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
- type -P ${mingw}-gcc && continue
- 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"
- done
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${MY_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 [[ ${MY_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
-
- plocale_find_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- if use gecko; then
- local source_gecko_version=$( sed -n -e '/^#define GECKO_VERSION/p' dlls/appwiz.cpl/addons.c | grep -Eo -m 1 '[0-9.]+' )
- if [[ ${source_gecko_version} != ${GECKO_VERSION} ]] ; then
- die "app-emulation/wine-gecko version is not correct! Please file a bug."
- fi
- fi
-
- 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
-
- plocale_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
- plocale_for_each_disabled_locale 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
- if use mingw; then
- use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}"
-
- # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
- local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc}
- : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}"
- : "${CROSSLDFLAGS:=$(
- filter-flags '-fuse-ld=*'
- CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}"
- export CROSS{C,LD}FLAGS
- fi
-
- 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 cups)
- $(use_with udisks dbus)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gstreamer)
- --enable-hal
- $(use_with kerberos gssapi)
- $(use_with kerberos krb5)
- $(use_with ldap)
- # TODO: Will bug 685172 still need special handling?
- $(use_with mingw)
- $(use_enable mono mscoree)
- $(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 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 usb)
- $(use_with v4l v4l2)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- )
-
- use staging && myconf+=(
- --with-xattr
- )
-
- 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}" \
- virtx emake 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} )
- }
- plocale_for_each_locale add_locale_docs
-
- einstalldocs
- find "${ED}" -name *.la -delete || die
-
- 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
-
- 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 ${PN}-${MY_PV}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${PN}-${MY_PV} || die
- else
- if use staging; then
- eselect wine register --staging ${PN}-${MY_PV} || 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 ${PN}-${MY_PV}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${PN}-${MY_PV} || die
- else
- if use staging; then
- eselect wine deregister --staging ${PN}-${MY_PV}|| 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-7.17.ebuild b/app-emulation/wine-staging/wine-staging-7.17.ebuild
deleted file mode 100644
index c8a8a5c9d77f..000000000000
--- a/app-emulation/wine-staging/wine-staging-7.17.ebuild
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright 2022 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 toolchain-funcs wrapper
-
-WINE_GECKO=2.47.3
-WINE_MONO=7.3.0
-
-if [[ ${PV} == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/wine-staging/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-${PV}.tar.xz
- https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/wine-${PV}"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
-
-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 +vulkan xattr
- +xcomposite xinerama"
-REQUIRED_USE="
- X? ( truetype )
- crossdev-mingw? ( mingw )" # bug #551124 for truetype
-
-# 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}] )
- xattr? ( sys-apps/attr[${MULTILIB_USEDEP}] )"
-RDEPEND="
- ${WINE_COMMON_DEPEND}
- app-emulation/wine-desktop-common
- dos? ( games-emulation/dosbox )
- 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/bison
- sys-devel/flex
- virtual/pkgconfig
- mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )
- nls? ( sys-devel/gettext )"
-IDEPEND="app-eselect/eselect-wine"
-
-QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
-
-PATCHES=(
- "${FILESDIR}"/${PN}-7.17-noexecstack.patch
- "${FILESDIR}"/${PN}-7.17-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_unpack() {
- if [[ ${PV} == *9999 ]]; then
- EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
- git-r3_src_unpack
-
- 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 staging=(
- ./patchinstall.sh DESTDIR="${S}"
- --all
- --backend=eapply
- --no-autoconf
- -W winemenubuilder-Desktop_Icon_Path #652176
- ${MY_WINE_STAGING_CONF}
- )
-
- # source patcher in a subshell so can use eapply as a backend
- ebegin "Running ${staging[*]}"
- ( cd ../${P}/patches && . "${staging[@]}" )
- eend ${?} || die "Failed to apply the patchset"
-
- # 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
-
- # ensure .desktop calls this variant + slot
- sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
-
- # always update for patches (including user's wrt #432348)
- eautoreconf
- tools/make_requests || die # perl
-}
-
-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 vulkan)
- $(use_with xattr)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(usev !odbc ac_cv_lib_soname_odbc=)
- )
-
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
-
- # 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
- 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*
-}
-
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
-}
-
-pkg_postinst() {
- wine-eselect register
-}
-
-pkg_prerm() {
- nonfatal wine-eselect deregister
-}
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..d2133a1ead43
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.0.ebuild
@@ -0,0 +1,480 @@
+# 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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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..ca1f794f201c
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.5.ebuild
@@ -0,0 +1,483 @@
+# 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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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..3c4de14f4d45
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.6.ebuild
@@ -0,0 +1,478 @@
+# 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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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..3c4de14f4d45
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.7.ebuild
@@ -0,0 +1,478 @@
+# 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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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.8.ebuild b/app-emulation/wine-staging/wine-staging-9.8.ebuild
new file mode 100644
index 000000000000..5bf74a8b36bc
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.8.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 optfeature
+inherit prefix python-any-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.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
+ "${FILESDIR}"/${P}-musl-ioctls-header.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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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 c8a8a5c9d77f..f0ed10e52b22 100644
--- a/app-emulation/wine-staging/wine-staging-9999.ebuild
+++ b/app-emulation/wine-staging/wine-staging-9999.ebuild
@@ -1,42 +1,54 @@
-# Copyright 2022 Gentoo Authors
+# 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 toolchain-funcs wrapper
+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.3
-WINE_MONO=7.3.0
+WINE_GECKO=2.47.4
+WINE_MONO=9.1.0
+WINE_P=wine-$(ver_cut 1-2)
if [[ ${PV} == *9999 ]]; then
inherit git-r3
- EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
+ 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-${PV}.tar.xz
+ 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}/wine-${PV}"
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
+"
-LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
+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 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 +vulkan xattr
- +xcomposite xinerama"
+ 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 )" # bug #551124 for 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
@@ -62,13 +74,13 @@ WINE_DLOPEN_DEPEND="
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}] )"
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
@@ -83,24 +95,35 @@ WINE_COMMON_DEPEND="
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}] )
+ 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}] )
- xattr? ( sys-apps/attr[${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 )
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ 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? (
@@ -109,25 +132,51 @@ RDEPEND="
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )"
+ 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[${MULTILIB_USEDEP}] ) )
- nls? ( sys-devel/gettext )"
-IDEPEND="app-eselect/eselect-wine"
-
+ 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.17-unwind.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
)
pkg_pretend() {
@@ -135,7 +184,8 @@ pkg_pretend() {
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
+ 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:"
@@ -154,30 +204,28 @@ src_unpack() {
EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
git-r3_src_unpack
- 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
+ # 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 staging=(
- ./patchinstall.sh DESTDIR="${S}"
+ local patchinstallargs=(
--all
- --backend=eapply
--no-autoconf
- -W winemenubuilder-Desktop_Icon_Path #652176
${MY_WINE_STAGING_CONF}
)
- # source patcher in a subshell so can use eapply as a backend
- ebegin "Running ${staging[*]}"
- ( cd ../${P}/patches && . "${staging[@]}" )
- eend ${?} || die "Failed to apply the patchset"
+ 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}' \
@@ -190,12 +238,34 @@ src_prepare() {
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() {
@@ -208,9 +278,13 @@ src_configure() {
--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)
@@ -220,11 +294,9 @@ src_configure() {
$(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)
@@ -233,6 +305,7 @@ src_configure() {
$(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)
@@ -241,18 +314,64 @@ src_configure() {
$(use_with usb)
$(use_with v4l v4l2)
$(use_with vulkan)
- $(use_with xattr)
+ $(use_with wayland)
$(use_with xcomposite)
$(use_with xinerama)
- $(usev !odbc ac_cv_lib_soname_odbc=)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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)
- # build using upstream's way (--with-wine64)
- # order matters: configure+compile 64->32, install 32->64
+ 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
(
@@ -261,9 +380,7 @@ src_configure() {
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+=(
@@ -273,18 +390,6 @@ src_configure() {
# _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
- 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[@]}"
)
@@ -300,17 +405,27 @@ 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
+ # 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 \
@@ -322,31 +437,42 @@ src_install() {
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
+ # 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 ||
+
+ 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 {} + || die
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
- dodoc ANNOUNCE AUTHORS README* documentation/README*
-}
-
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
}
pkg_postinst() {
- wine-eselect register
+ 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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest
index 841ce6b8852e..fd6dd151ecd7 100644
--- a/app-emulation/wine-vanilla/Manifest
+++ b/app-emulation/wine-vanilla/Manifest
@@ -1,5 +1,7 @@
-DIST gentoo-wine-patches-20211122.tar.xz 59796 BLAKE2B 21460e6adf4934a52f8841f76f234a764c2dc1ac77eeed1cee10adafec3aa723640ebd4b51559e9ef433070ac731c4648620bd9e75e99f31b2e2f494cf01f02d SHA512 a18cb320617e2157977032c38c322177a2d248f14e43051d38de595af171495546c93d5e71e0dbe1a4f326a2dc819bb03dcfd04454ac85bbcd6b1975ae5d9d96
-DIST wine-7.0.tar.xz 27120912 BLAKE2B 84bfeb28d56f0f40bb93b1b5bf8954c8be2fd90fde5a61608e7c35f48addcce7a4d660e63c3caa3ca2c365d1e83b55a1c3485872b2d6bfa8941e2bce44c4aca6 SHA512 eec17b046ed5447eb540f421c9b2748d9419ce087496c2743a9914fd27bbe5ff9da0cfe47d3cd76fa97323bd1188a1d82b1eef4968d86ed1957dc1a95e28529c
-DIST wine-7.16.tar.xz 28345428 BLAKE2B 6540dd196639c5b3e01af801439e4ca8d3d17ce6b9832c3ab7d0263909e0a963a5901b8baad00537242c32599af92d04ad58c9f51660583e28693b4ec1bdd803 SHA512 5085c7c1b0e762c508f33775f7f0aa41e94cb75805bb649093addad25f90f7f57d5101ba96227f58a6f18b3ae228bd004df11ec1c033692ad130e9b5279ea19e
-DIST wine-7.17.tar.xz 28379876 BLAKE2B 536af8f1ac9c4dd8bae2d16cba226c99c45cd64f0a9a2569022baefee61556801d3ee15f480fd18445baecb6c78dd7950f98542dc88a3282ee5d457d0e4ddfb1 SHA512 fd8017e6174db0047a3957db3045b2ad9024e07b1e2f81800521f0b7e7f7660add6a08e09bc60e3d140816cec70aae8324fe15643bd05e541f22f66ffda52508
-DIST wine-7.18.tar.xz 28412876 BLAKE2B 1f25c8669a2afbead142923a39913b3f21df641e446a6136e7ecd282f6c31bc70578036e83f3dd28d22516d987ddca179198f76effb5c9aca089f4755ffa873e SHA512 e651b18cef73b4619e953b746d0c207c0220279003560aaf195c2569a22308af129e1460651a246e6a87dcfbcfcff08f52f970734035eb55ab45d8970fd56a02
+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
+DIST wine-9.8.tar.xz 30297460 BLAKE2B 689d1b4e55f7d66b8fad8432ad35a52e2fad303e8a9382b8893222c696697efa5de5b56cc2b933bed96d6382f9fdc919fa15e6517ffdb50105cdaea904a7d77f SHA512 3d1b0e6b7b633a0b45ba6b23e741e808dec29355721baf4489c3ad34c67d714b40897ef510c4a84f31be390d7f8b86b93a725787d733eaf77df5c82b322d2662
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/files/wine-vanilla-9.8-musl-ioctls-header.patch b/app-emulation/wine-vanilla/files/wine-vanilla-9.8-musl-ioctls-header.patch
new file mode 100644
index 000000000000..7aa1a4c00587
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-9.8-musl-ioctls-header.patch
@@ -0,0 +1,30 @@
+https://bugs.gentoo.org/931341
+https://gitlab.winehq.org/wine/wine/-/commit/24ca848c568d5a2786abd26f2e7314b2e3f509f3
+From: Fotios Valasiadis <fvalasiad@gmail.com>
+Date: Sun, 5 May 2024 03:34:57 +0300
+Subject: [PATCH] ntdll/unix: Fix building on musl by explicitly including
+ asm/ioctls.h.
+
+After commit 898ab8dab19d498c17859f39a55e317ee7e367a5 wine would no longer
+build on musl.
+
+Issue is that apparently TCSETS2 isn't defined when including sys/ioctl.h.
+
+A little digging shows that glibc goes ahead and includes asm/ioctls.h in
+sys/ioctl.h, providing said macro. Musl on the other hand doesn't and relies
+on bits/ioctl.h, which lacks said macro.
+
+Signed-off-by: Fotios Valasiadis <fvalasiad@gmail.com>
+--- a/dlls/ntdll/unix/serial.c
++++ b/dlls/ntdll/unix/serial.c
+@@ -33,6 +33,7 @@
+ #include <stdio.h>
+ #ifdef HAVE_ASM_TERMBITS_H
+ # include <asm/termbits.h>
++# include <asm/ioctls.h>
+ #else
+ # include <termios.h>
+ #endif
+--
+GitLab
+
diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml
index 3210c15635f8..99ab7d2e9aab 100644
--- a/app-emulation/wine-vanilla/metadata.xml
+++ b/app-emulation/wine-vanilla/metadata.xml
@@ -20,22 +20,26 @@ This variant of the Wine packaging does not include external patchsets
</flag>
<flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag>
<flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag>
- <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</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="opencl">Enable OpenCL support</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 that require perl (winedump/winemaker)</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">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="vulkan">Enable Vulkan drivers</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-7.0-r2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild
deleted file mode 100644
index 8647193f3913..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild
+++ /dev/null
@@ -1,474 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-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"
-
-inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper 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="20211122"
-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 crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- crossdev-mingw? ( mingw )
- 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"
-
-BDEPEND="sys-devel/flex
- virtual/yacc
- virtual/pkgconfig
- mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )"
-
-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}]
- media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}]
- )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${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/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${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}] )
- usb? ( virtual/libusb:1[${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}] )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.2[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:7.0.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}
- ${BDEPEND}
- >=sys-kernel/linux-headers-2.6
- X? ( x11-base/xorg-proto )
- 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}-6.22-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${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() {
- # Ensure compiler support
- # (No checks here as of 2022)
- return 0
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- 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; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from"
- eerror ">=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-
- 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
- type -P ${mingw}-gcc && continue
- 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"
- 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
- fi
-
- default
-
- plocale_find_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
-
- plocale_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
- plocale_for_each_disabled_locale 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
- if use mingw; then
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
-
- # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
- local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc}
- : "${CROSSCFLAGS:=$(
- filter-flags '-fstack-protector*' #870136
- CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}"
- : "${CROSSLDFLAGS:=$(
- filter-flags '-fuse-ld=*'
- CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}"
- export CROSS{C,LD}FLAGS
- fi
-
- 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 cups)
- $(use_with udisks dbus)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gssapi)
- $(use_with gstreamer)
- --enable-hal
- $(use_with kerberos krb5)
- $(use_with ldap)
- # TODO: Will bug 685172 still need special handling?
- $(use_with mingw)
- $(use_enable mono mscoree)
- $(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 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 usb)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- )
-
- 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}" \
- virtx emake 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} )
- }
- plocale_for_each_locale add_locale_docs
-
- einstalldocs
- find "${ED}" -name *.la -delete || die
-
- 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
-
- 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-r3.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
index 86104f6903a5..583683c9685c 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-7.0-r3.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
@@ -1,10 +1,11 @@
-# Copyright 2022 Gentoo Authors
+# 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 toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.2
WINE_MONO=7.0.0
@@ -16,11 +17,14 @@ 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"
+ KEYWORDS="-* amd64 x86"
fi
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
+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}"
@@ -30,10 +34,13 @@ IUSE="
+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"
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
REQUIRED_USE="
X? ( truetype )
- crossdev-mingw? ( mingw )" # bug #551124 for 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
@@ -65,7 +72,8 @@ WINE_DLOPEN_DEPEND="
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}] )"
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
@@ -92,11 +100,17 @@ WINE_COMMON_DEPEND="
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
)
usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )"
+ vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
+"
RDEPEND="
${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
- dos? ( games-emulation/dosbox )
+ 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} )
@@ -106,20 +120,28 @@ RDEPEND="
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )"
+ 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"
+ 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=(
@@ -158,12 +180,30 @@ src_prepare() {
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() {
@@ -215,10 +255,21 @@ src_configure() {
$(usev !odbc ac_cv_lib_soname_odbc=)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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
@@ -247,6 +298,19 @@ src_configure() {
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=*'
@@ -302,19 +366,18 @@ src_install() {
dodoc ANNOUNCE AUTHORS README* documentation/README*
}
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
-}
-
pkg_postinst() {
- wine-eselect register
+ 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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.16.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.16.ebuild
deleted file mode 100644
index 1bb18ebe2ce5..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-7.16.ebuild
+++ /dev/null
@@ -1,476 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-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"
-
-inherit autotools estack flag-o-matic multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-GECKO_VERSION="2.47.3"
-
-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="20211122"
-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 crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- crossdev-mingw? ( mingw )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )" # 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"
-
-BDEPEND="sys-devel/flex
- virtual/yacc
- virtual/pkgconfig
- mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )"
-
-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}]
- media-libs/libjpeg-turbo:0=[${MULTILIB_USEDEP}]
- )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${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/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${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}] )
- usb? ( virtual/libusb:1[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:${GECKO_VERSION}[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:7.3.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}
- ${BDEPEND}
- >=sys-kernel/linux-headers-2.6
- X? ( x11-base/xorg-proto )
- 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}-6.22-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${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() {
- # Ensure compiler support
- # (No checks here as of 2022)
- return 0
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- 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; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from"
- eerror ">=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-
- 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
- type -P ${mingw}-gcc && continue
- 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"
- 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
- fi
-
- default
-
- plocale_find_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- if use gecko; then
- local source_gecko_version=$( sed -n -e '/^#define GECKO_VERSION/p' dlls/appwiz.cpl/addons.c | grep -Eo -m 1 '[0-9.]+' )
- if [[ ${source_gecko_version} != ${GECKO_VERSION} ]] ; then
- die "app-emulation/wine-gecko version is not correct! Please file a bug."
- fi
- fi
-
- 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
-
- plocale_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
- plocale_for_each_disabled_locale 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
- if use mingw; then
- use crossdev-mingw || PATH="${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}"
-
- # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
- local mingwcc=${CROSSCC:-$(usex x86 i686 x86_64)-w64-mingw32-gcc}
- : "${CROSSCFLAGS:=$(CC=${mingwcc} test-flags-CC ${CFLAGS:--O2})}"
- : "${CROSSLDFLAGS:=$(
- filter-flags '-fuse-ld=*'
- CC=${mingwcc} test-flags-CCLD ${LDFLAGS})}"
- export CROSS{C,LD}FLAGS
- fi
-
- 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 cups)
- $(use_with udisks dbus)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gstreamer)
- --enable-hal
- $(use_with kerberos gssapi)
- $(use_with kerberos krb5)
- $(use_with ldap)
- # TODO: Will bug 685172 still need special handling?
- $(use_with mingw)
- $(use_enable mono mscoree)
- $(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 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 usb)
- $(use_with v4l v4l2)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- )
-
- 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}" \
- virtx emake 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} )
- }
- plocale_for_each_locale add_locale_docs
-
- einstalldocs
- find "${ED}" -name *.la -delete || die
-
- 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
-
- 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.17.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
index ac4a2a6be890..d9243957dadb 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-7.17.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
@@ -1,13 +1,14 @@
-# Copyright 2022 Gentoo Authors
+# 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 toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
WINE_GECKO=2.47.3
-WINE_MONO=7.3.0
+WINE_MONO=7.4.0
if [[ ${PV} == *9999 ]]; then
inherit git-r3
@@ -16,24 +17,28 @@ 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"
+ KEYWORDS="-* amd64 x86"
fi
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/"
-LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
+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 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 +vulkan
- +xcomposite xinerama"
+ 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 )" # bug #551124 for 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
@@ -65,7 +70,8 @@ WINE_DLOPEN_DEPEND="
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}] )"
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
@@ -80,8 +86,6 @@ WINE_COMMON_DEPEND="
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}] )
@@ -91,11 +95,17 @@ WINE_COMMON_DEPEND="
llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
!llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
)
- usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )"
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+"
RDEPEND="
${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
- dos? ( games-emulation/dosbox )
+ 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} )
@@ -105,25 +115,35 @@ RDEPEND="
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )"
+ 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"
-
+ 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.0-unwind.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
)
pkg_pretend() {
@@ -157,12 +177,30 @@ src_prepare() {
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() {
@@ -187,11 +225,9 @@ src_configure() {
$(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)
@@ -213,10 +249,21 @@ src_configure() {
$(usev !odbc ac_cv_lib_soname_odbc=)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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
@@ -227,8 +274,9 @@ src_configure() {
mkdir ../build${bits} || die
cd ../build${bits} || die
- # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
+ 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
@@ -241,15 +289,35 @@ src_configure() {
fi
: "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
- # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
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{CC,{C,LD}FLAGS}
+ export CROSS{C,LD}FLAGS
fi
ECONF_SOURCE=${S} econf "${conf[@]}"
@@ -288,31 +356,34 @@ src_install() {
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
+ # 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 ||
+
+ 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 {} + || die
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
dodoc ANNOUNCE AUTHORS README* documentation/README*
}
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
-}
-
pkg_postinst() {
- wine-eselect register
+ 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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
index ac4a2a6be890..d17683e5dff0 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-7.18.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
@@ -1,13 +1,14 @@
-# Copyright 2022 Gentoo Authors
+# 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 toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
-WINE_GECKO=2.47.3
-WINE_MONO=7.3.0
+WINE_GECKO=2.47.4
+WINE_MONO=8.1.0
if [[ ${PV} == *9999 ]]; then
inherit git-r3
@@ -16,24 +17,31 @@ 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"
+ KEYWORDS="-* amd64 x86"
fi
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
-LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
+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 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 +vulkan
+ 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 )" # bug #551124 for 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
@@ -65,7 +73,8 @@ WINE_DLOPEN_DEPEND="
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}] )"
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
@@ -80,23 +89,35 @@ WINE_COMMON_DEPEND="
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}] )
+ 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}] )"
+ 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 )
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ 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? (
@@ -105,25 +126,41 @@ RDEPEND="
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )"
+ 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[${MULTILIB_USEDEP}] ) )
- nls? ( sys-devel/gettext )"
-IDEPEND="app-eselect/eselect-wine"
-
+ 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.0-unwind.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
)
pkg_pretend() {
@@ -131,7 +168,8 @@ pkg_pretend() {
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
+ 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:"
@@ -157,12 +195,34 @@ src_prepare() {
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() {
@@ -175,9 +235,13 @@ src_configure() {
--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)
@@ -187,11 +251,9 @@ src_configure() {
$(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)
@@ -200,6 +262,7 @@ src_configure() {
$(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)
@@ -208,17 +271,60 @@ src_configure() {
$(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=)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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}
+ )}"
- # build using upstream's way (--with-wine64)
- # order matters: configure+compile 64->32, install 32->64
+ 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
(
@@ -227,9 +333,7 @@ src_configure() {
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+=(
@@ -239,18 +343,6 @@ src_configure() {
# _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
- 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[@]}"
)
@@ -266,17 +358,27 @@ 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
+ # 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 \
@@ -288,31 +390,39 @@ src_install() {
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
+ # 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 ||
+
+ 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 {} + || die
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
- dodoc ANNOUNCE AUTHORS README* documentation/README*
-}
-
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
}
pkg_postinst() {
- wine-eselect register
+ 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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-staging/wine-staging-7.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild
index c8a8a5c9d77f..bb8117b3b1b3 100644
--- a/app-emulation/wine-staging/wine-staging-7.18.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild
@@ -1,42 +1,47 @@
-# Copyright 2022 Gentoo Authors
+# 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 toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
-WINE_GECKO=2.47.3
-WINE_MONO=7.3.0
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
if [[ ${PV} == *9999 ]]; then
inherit git-r3
- EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
- WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+ 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
- https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
KEYWORDS="-* ~amd64 ~x86"
fi
-S="${WORKDIR}/wine-${PV}"
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
+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"
+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 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 +vulkan xattr
+ 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 )" # bug #551124 for 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
@@ -68,7 +73,8 @@ WINE_DLOPEN_DEPEND="
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}] )"
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
@@ -83,24 +89,35 @@ WINE_COMMON_DEPEND="
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}] )
+ 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}] )
- xattr? ( sys-apps/attr[${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 )
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ 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? (
@@ -109,25 +126,41 @@ RDEPEND="
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )"
+ 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[${MULTILIB_USEDEP}] ) )
- nls? ( sys-devel/gettext )"
-IDEPEND="app-eselect/eselect-wine"
-
+ 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.17-noexecstack.patch
- "${FILESDIR}"/${PN}-7.17-unwind.patch
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
)
pkg_pretend() {
@@ -135,7 +168,8 @@ pkg_pretend() {
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
+ 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:"
@@ -149,36 +183,7 @@ pkg_pretend() {
fi
}
-src_unpack() {
- if [[ ${PV} == *9999 ]]; then
- EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
- git-r3_src_unpack
-
- 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 staging=(
- ./patchinstall.sh DESTDIR="${S}"
- --all
- --backend=eapply
- --no-autoconf
- -W winemenubuilder-Desktop_Icon_Path #652176
- ${MY_WINE_STAGING_CONF}
- )
-
- # source patcher in a subshell so can use eapply as a backend
- ebegin "Running ${staging[*]}"
- ( cd ../${P}/patches && . "${staging[@]}" )
- eend ${?} || die "Failed to apply the patchset"
-
# 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)
@@ -190,12 +195,34 @@ src_prepare() {
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() {
@@ -208,9 +235,13 @@ src_configure() {
--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)
@@ -220,11 +251,9 @@ src_configure() {
$(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)
@@ -233,6 +262,7 @@ src_configure() {
$(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)
@@ -241,18 +271,60 @@ src_configure() {
$(use_with usb)
$(use_with v4l v4l2)
$(use_with vulkan)
- $(use_with xattr)
+ $(use_with wayland)
$(use_with xcomposite)
$(use_with xinerama)
$(usev !odbc ac_cv_lib_soname_odbc=)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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)
- # build using upstream's way (--with-wine64)
- # order matters: configure+compile 64->32, install 32->64
+ 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
(
@@ -261,9 +333,7 @@ src_configure() {
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+=(
@@ -273,18 +343,6 @@ src_configure() {
# _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
- 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[@]}"
)
@@ -300,17 +358,27 @@ 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
+ # 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 \
@@ -322,31 +390,42 @@ src_install() {
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
+ # 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 ||
+
+ 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 {} + || die
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
- dodoc ANNOUNCE AUTHORS README* documentation/README*
-}
-
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
}
pkg_postinst() {
- wine-eselect register
+ 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_prerm() {
- nonfatal wine-eselect deregister
+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..bb8117b3b1b3
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild
@@ -0,0 +1,431 @@
+# 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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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..bb8117b3b1b3
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild
@@ -0,0 +1,431 @@
+# 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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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.8.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild
new file mode 100644
index 000000000000..7a5546bbfd70
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.8.ebuild
@@ -0,0 +1,432 @@
+# 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.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
+ "${FILESDIR}"/${P}-musl-ioctls-header.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
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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 ac4a2a6be890..13bbfdc159ea 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
@@ -1,13 +1,14 @@
-# Copyright 2022 Gentoo Authors
+# 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 toolchain-funcs wrapper
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
-WINE_GECKO=2.47.3
-WINE_MONO=7.3.0
+WINE_GECKO=2.47.4
+WINE_MONO=9.1.0
if [[ ${PV} == *9999 ]]; then
inherit git-r3
@@ -20,20 +21,27 @@ else
fi
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
-LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
+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 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 +vulkan
+ 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 )" # bug #551124 for 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
@@ -65,7 +73,8 @@ WINE_DLOPEN_DEPEND="
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}] )"
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
WINE_COMMON_DEPEND="
${WINE_DLOPEN_DEPEND}
X? (
@@ -80,23 +89,35 @@ WINE_COMMON_DEPEND="
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}] )
+ 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}] )"
+ 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 )
- gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ 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? (
@@ -105,25 +126,41 @@ RDEPEND="
)
samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
+ udisks? ( sys-fs/udisks:2 )
+"
DEPEND="
${WINE_COMMON_DEPEND}
sys-kernel/linux-headers
- X? ( x11-base/xorg-proto )"
+ 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[${MULTILIB_USEDEP}] ) )
- nls? ( sys-devel/gettext )"
-IDEPEND="app-eselect/eselect-wine"
-
+ 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.0-unwind.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
)
pkg_pretend() {
@@ -131,7 +168,8 @@ pkg_pretend() {
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
+ 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:"
@@ -157,12 +195,34 @@ src_prepare() {
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() {
@@ -175,9 +235,13 @@ src_configure() {
--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)
@@ -187,11 +251,9 @@ src_configure() {
$(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)
@@ -200,6 +262,7 @@ src_configure() {
$(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)
@@ -208,17 +271,60 @@ src_configure() {
$(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=)
)
- tc-ld-force-bfd #867097
- use custom-cflags || strip-flags # can break in obscure ways, also no lto
- use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+ filter-lto # build failure
+ filter-flags -Wl,--gc-sections # runtime issues (bug #931329)
+ 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
- # build using upstream's way (--with-wine64)
- # order matters: configure+compile 64->32, install 32->64
+ # 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
(
@@ -227,9 +333,7 @@ src_configure() {
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+=(
@@ -239,18 +343,6 @@ src_configure() {
# _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
- 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[@]}"
)
@@ -266,17 +358,27 @@ 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
+ # 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 \
@@ -288,31 +390,42 @@ src_install() {
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
+ # 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 ||
+
+ 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 {} + || die
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
- dodoc ANNOUNCE AUTHORS README* documentation/README*
-}
-
-wine-eselect() {
- ebegin "${1^}ing ${P} using eselect-wine"
- eselect wine ${1} ${P} &&
- eselect wine ${1} --${PN#wine-} ${P} &&
- eselect wine update --if-unset &&
- eselect wine update --${PN#wine-} --if-unset
- eend ${?} || die -n "eselect failed, may need to manually handle ${P}"
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
}
pkg_postinst() {
- wine-eselect register
+ 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_prerm() {
- nonfatal wine-eselect deregister
+pkg_postrm() {
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/winetricks/Manifest b/app-emulation/winetricks/Manifest
index 630481697c2f..bb6973b41b47 100644
--- a/app-emulation/winetricks/Manifest
+++ b/app-emulation/winetricks/Manifest
@@ -1,3 +1,3 @@
-DIST winetricks-20210206.tar.gz 690837 BLAKE2B a1d068e9659f6b176873af49994f1e0ca884eaa1ac9b8f5dd6d7abe79a2b8b827a2334efa7862547b17cca5bcfc285ce2d65ac0e5736cddcc777d4df2dbc7af9 SHA512 57f2ce5fe531eb6ee9a578ca565fadf5ef2e6e1379abee640ee9dc0d6000c92ce983c7507002bc6ace613d6d0dd03260ede11f7bf267adf19eb67900a0449f58
-DIST winetricks-20220411.tar.gz 694292 BLAKE2B 86b81983d197db12478e290a685939ed36f90cd5986afc18730ff3b5483b312c2a290ae6990bd1cbcb34e3b82a4b9ea4e9235c062536cf583aa9d67adc443afb SHA512 c4e77c5e62d2df56db6aa75979cc775f26472917108b0498c975458fd6f7ecbef52c329b7b6f33c12510176e105190bc538447b39348a42b7f1a8e07e5d92d09
+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/winetricks-20210206.ebuild b/app-emulation/winetricks/winetricks-20230212.ebuild
index 60fe34b12e54..afdf44a0f734 100644
--- a/app-emulation/winetricks/winetricks-20210206.ebuild
+++ b/app-emulation/winetricks/winetricks-20230212.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit xdg
diff --git a/app-emulation/winetricks/winetricks-20220411.ebuild b/app-emulation/winetricks/winetricks-20240105.ebuild
index 9f2b1f57077a..91fa5d31a9b7 100644
--- a/app-emulation/winetricks/winetricks-20220411.ebuild
+++ b/app-emulation/winetricks/winetricks-20240105.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit xdg
@@ -11,7 +11,7 @@ if [[ ${PV} == "99999999" ]] ; then
SRC_URI=""
else
SRC_URI="https://github.com/Winetricks/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 x86"
+ KEYWORDS="~amd64 ~x86"
fi
wtg="winetricks-gentoo-2012.11.24"
diff --git a/app-emulation/winetricks/winetricks-99999999.ebuild b/app-emulation/winetricks/winetricks-99999999.ebuild
index 89dcbb57c973..91fa5d31a9b7 100644
--- a/app-emulation/winetricks/winetricks-99999999.ebuild
+++ b/app-emulation/winetricks/winetricks-99999999.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit xdg
diff --git a/app-emulation/x48/files/x48-0.6.4-configure.patch b/app-emulation/x48/files/x48-0.6.4-configure.patch
new file mode 100644
index 000000000000..ea3a883991a8
--- /dev/null
+++ b/app-emulation/x48/files/x48-0.6.4-configure.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac 2024-05-12 12:01:50.591368113 -0000
++++ b/configure.ac 2024-05-12 12:05:39.116023749 -0000
+@@ -10,6 +10,8 @@
+ AC_CONFIG_SRCDIR([config.h.in])
+ AC_CONFIG_HEADER([config.h])
+
++
++AC_USE_SYSTEM_EXTENSIONS
+ # Checks for programs.
+ AC_PROG_CC
+ AC_PROG_INSTALL
diff --git a/app-emulation/x48/x48-0.6.4-r2.ebuild b/app-emulation/x48/x48-0.6.4-r2.ebuild
index 74f99e360606..190b92ee0d07 100644
--- a/app-emulation/x48/x48-0.6.4-r2.ebuild
+++ b/app-emulation/x48/x48-0.6.4-r2.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
@@ -7,7 +7,7 @@ inherit autotools
DESCRIPTION="HP48 Calculator Emulator"
HOMEPAGE="http://x48.berlios.de/"
-SRC_URI="mirror://sourceforge/x48.berlios/${P}.tar.bz2"
+SRC_URI="https://downloads.sourceforge.net/x48.berlios/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
diff --git a/app-emulation/x48/x48-0.6.4-r3.ebuild b/app-emulation/x48/x48-0.6.4-r3.ebuild
new file mode 100644
index 000000000000..c584c99e820a
--- /dev/null
+++ b/app-emulation/x48/x48-0.6.4-r3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="HP48 Calculator Emulator"
+HOMEPAGE="https://sourceforge.net/projects/x48.berlios/"
+SRC_URI="https://downloads.sourceforge.net/x48.berlios/${P}.tar.bz2"
+S=${WORKDIR}
+
+LICENSE="GPL-3"
+
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="readline"
+
+RDEPEND="
+ x11-libs/libX11
+ x11-libs/libXext
+ readline? ( sys-libs/readline:0= )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ x11-libs/libXt"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-static.patch
+ "${FILESDIR}"/${P}-void_return.patch
+ "${FILESDIR}"/${P}-configure.patch
+ )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable readline)
+}
+
+src_install() {
+ default
+
+ insinto /usr/share/"${PN}"/romdump
+ doins -r romdump/{README,ROMDump*}
+}
+
+pkg_postinst() {
+ elog "The X48 emulator requires an HP48 ROM image to run."
+ elog
+ elog "If you own an HP-48 calculator, you can use the ROMDump utility"
+ elog "included with this package to obtain it from your calculator."
+ elog "The instructions of how to do this are included in the package."
+ elog
+ elog "Alternatively, HP has provided the ROM images for non-commercial"
+ elog "use only."
+ elog
+ elog "Due to confusion over the legal status of these ROMs you must"
+ elog "manually download one from http://www.hpcalc.org/hp48/pc/emulators/"
+ elog
+ elog "If you do not know which one to use, try 'HP 48GX Revision R ROM.'"
+ elog
+ elog "Once you have a ROM, you will need to install it by running:"
+ elog
+ elog "x48 -rom gxrom-r"
+ elog
+ elog "You will only have to do this the first time you run X48. The"
+ elog "ROM will be stored in ~/.hp48/rom for future runs."
+}
diff --git a/app-emulation/xcpc/metadata.xml b/app-emulation/xcpc/metadata.xml
index b1cb23b57384..d63de1a63526 100644
--- a/app-emulation/xcpc/metadata.xml
+++ b/app-emulation/xcpc/metadata.xml
@@ -4,5 +4,6 @@
<!-- 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/xen-tools/Manifest b/app-emulation/xen-tools/Manifest
index ee8f2b2f20fe..f5c6218ff757 100644
--- a/app-emulation/xen-tools/Manifest
+++ b/app-emulation/xen-tools/Manifest
@@ -1,11 +1,10 @@
-DIST OpenSSL_1_1_1j.tar.gz 9994760 BLAKE2B 749886716739dcb909bd79b29cf714640b64039917f64f6cfc4bee9861e797380d0df9ff11d7f6bb084508b322cb0db4ef7a2f871ee304548ec919d387cdb2c5 SHA512 f94ef129514e69b70f800a599ae726eff6a2fac0dfa8e42982973d1328f6fac6b1da1124e1a7b8aa3d579b720ecf9c71a8bae45db6b1630c052b0c3a22b9360e
+DIST OpenSSL_1_1_1t.tar.gz 10061233 BLAKE2B aef89c338644230305bcc75dbc13d6799a04ed8c712b6aed07a782703031e977c3e300924f26e5854d0b89ecf39d2d516a50838167754e8f63322fba51de9478 SHA512 f28a323fd78be0b16ae6db9a8f163e64c74410e12ddd1a9836dfdda34c264112184f4e22583c84b6fa56716e5aaac9cb860cb183bd3d0cb064091eea1e21815e
DIST berkeley-softfloat-b64af41c3276f97f0e181920400ee056b9c88037.tar.gz 148741 BLAKE2B 72014022926b636147e202d74c42df2ce9cfed00b91c275d5b2e0afbc5c68765445cbe7ac6389d7c2512bd1d45b0e16e999936552d09bbc733ab66c92968bd31 SHA512 8420c29faa7ff57e06d6758b03e81ca0630c59946bc031e8611f1449e23634cf901b502161f2c1423c0cff949b5481445e36a3aa53dc885b61ca2c673b3ba567
-DIST brotli-666c3280cc11dc433c303d79a83d4ffbdd12cc8d.tar.gz 23855739 BLAKE2B 7406ec5b29ac66afbcd7c1376bb3208f298d19b6592b2869c52173aa64947d58bd443f9a61c67deaf046be910a0e31c0b843e5508e97e0e1f5e7bce100d86904 SHA512 df8e90562c4fd7f0e787949df6bc4f5a165b39bd333f442d27874fe65640fbba268f9350d7113e6761a5acceb66d78e75f1a296e5a89b94574edf28109cdc812
-DIST edk2-7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5.tar.gz 13998677 BLAKE2B 3614ceb69e295a6afb37c7905d0aec3534d8daf3d9f22137c1b722da6dc764a3669d99af03f96155d45feb5058a6f725acf37d1048186fecff4232d64f96e97c SHA512 a1933d815b947fd4f13c96970a6dc36c3048e3ddf27c897684104b0129cf58331e46d3147062ae1fb8973f08cd373c319788dd850ac5e45da385eed8368571a4
-DIST ipxe-git-3c040ad387099483102708bb1839110bc788cefb.tar.gz 3962725 BLAKE2B a8084abaf93a4ab06ba170427a66dab08e68ba1288f42ea744e2cbc66d6bd2294bee82f6d0994260d2cd60daf6a6068e40eb74fdeba2bccaa432d090d81fd9db SHA512 4ac1d07ce879a3a8c6c260380258c37f5e4ecddc880b27fb59afc38fbf3718e81b04a4dda2b58fe7a438a23175e00b6179fc067acbc4a75e33d93c4b85ff5d68
-DIST seabios-1.14.0.tar.gz 628985 BLAKE2B cc1126925dab1551a655680d20d06ebf28c12c386500d1ee4df9e1a99403b4c5bc6a66c2cc5ef58b4c3d6d7226f35007506a6a1855c2cf2742469dcb7aba05bb SHA512 215c42f59425f8abd062be7b11fc0e39c977cee5001a2381551b0f851ac337d0dd53c065267e6dee0e710ffd700fa635f9007b89da8dfce0f47122c984ee8146
-DIST xen-4.15.3.tar.gz 40793144 BLAKE2B 33932d855a0502cfe2768a7c8ae19d7da285d70b4970d96fd703daf0ee24a77ad47a3d1b4bcf5f465aa81aa7eb7f9295bce96302b2149ca208fa662cd966d6af SHA512 c25903cc263891885ec76500488405226c8e025bb461d2bf0d590b9bd2d7ca5c2693de7ecc38b3655bfd6793cc96314826559f14a09cc139de8cfdbeb914cbd3
-DIST xen-4.16.2.tar.gz 44995249 BLAKE2B a221d1e4578ab6eb3250754b3b0f36fb30133c1c83246532ebb9648c3d025b3f5132227371b5d3dd82099594f4ee738227480528ee944b8de6231d9c89892d15 SHA512 b6cd036c1073798dffa167ca14c954fbdfb4c0ef99662f7c435e7e5de687d1bde8856ff6bd030d0d2e661bd17ab631551f01b2cc728cad7e70b59aaa6e692783
-DIST xen-gentoo-patches-4.15.3-gentoo-patchset-2.tar.bz2 4681 BLAKE2B 59fe5c2d5f3b975f281778ee96f8771debde7ae738636fc8294e7e2578dffc40938d8c48e4e94f0341762b2ba8e1b6769f71b7783322fb3b2a0a187bbf2b5104 SHA512 8540aa3631277fb652f90c53f6f5b4e9d119a7ed267dec96d7aecca4eac2c465ec3be32b0b82057e79f858cc8115bfdfbf2af5c4879a0be3f98ed68cbe64fdae
-DIST xen-gentoo-patches-4.16.1-gentoo-patchset-2.tar.bz2 5403 BLAKE2B 7fa3b4aa123b2deed260d02b8d34a35dd205207038edb92569278b25c6fe32e0f0e3857c07755553e047f0eb0d9fe7f8b0816e0f3d7f68aee7929afaf6611dfd SHA512 9e7d25640b24235acf756b031b8b7cee582dded65fe7b94a706c990232e9704d574036c3a9605f285e8e9534578d100a3f38719b27b22775f17ef8f68287997e
-DIST xen-upstream-patches-4.15.4-pre-patchset-0.1.tar.bz2 28980 BLAKE2B 5bdabed3bce4306fe5f656a965d1e537608c03b4706dc801a0b0b9649d001b875b1a2543c68c6b459483991570f0fbf2490a97ea1776761c9f61e9876f240fdf SHA512 4f6bbf0dab57ad58292f32fab55294b2eedd0442be7f62341a2df922a1d21880fe33cc29956ccbbb8b4aee4c10b38d4aa090e4db9496d6e0f5256e60999cad7d
+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/xen-tools-4.15.1-brotli-gcc11.patch b/app-emulation/xen-tools/files/xen-tools-4.15.1-brotli-gcc11.patch
deleted file mode 100644
index c30cb328460d..000000000000
--- a/app-emulation/xen-tools/files/xen-tools-4.15.1-brotli-gcc11.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-diff --git a/c/dec/decode.c b/c/dec/decode.c
-index ae5a3d3f..7eee9688 100644
---- a/c/dec/decode.c
-+++ b/c/dec/decode.c
-@@ -2033,8 +2033,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
- }
-
- BrotliDecoderResult BrotliDecoderDecompress(
-- size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
-- uint8_t* decoded_buffer) {
-+ size_t encoded_size,
-+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
-+ size_t* decoded_size,
-+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
- BrotliDecoderState s;
- BrotliDecoderResult result;
- size_t total_out = 0;
-diff --git a/c/enc/encode.c b/c/enc/encode.c
-index 8d90937b..0c49c641 100644
---- a/c/enc/encode.c
-+++ b/c/enc/encode.c
-@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
-
- BROTLI_BOOL BrotliEncoderCompress(
- int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
-- const uint8_t* input_buffer, size_t* encoded_size,
-- uint8_t* encoded_buffer) {
-+ const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
-+ size_t* encoded_size,
-+ uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
- BrotliEncoderState* s;
- size_t out_size = *encoded_size;
- const uint8_t* input_start = input_buffer;
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/xen-tools-4.15.4_pre.ebuild b/app-emulation/xen-tools/xen-tools-4.15.4_pre.ebuild
deleted file mode 100644
index 222cfab5381e..000000000000
--- a/app-emulation/xen-tools/xen-tools-4.15.4_pre.ebuild
+++ /dev/null
@@ -1,532 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8..10} )
-PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
-
-inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
-
-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"
-
- SEABIOS_VER="1.14.0"
- EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
- EDK2_OPENSSL_VERSION="1_1_1j"
- EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
- EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
- IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
-
- XEN_PRE_PATCHSET_NUM=0.1
- XEN_GENTOO_PATCHSET_NUM=2
- XEN_PRE_VERSION_BASE=4.15.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
- https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.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_BASE_PV})-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://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 +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux 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="
- lzma? ( app-arch/xz-utils )
- qemu? (
- dev-libs/glib:2
- sys-libs/pam
- )
- app-arch/bzip2
- dev-libs/libnl:3
- dev-libs/lzo:2
- dev-libs/yajl
- 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_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 ) )
- 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_USEDEP}]
- ')
- dev-texlive/texlive-latexextra
- media-gfx/transfig
- )
- hvm? ( x11-base/xorg-proto )
- qemu? (
- app-arch/snappy:=
- dev-util/meson
- sdl? (
- media-libs/libsdl[X]
- media-libs/libsdl2[X]
- )
- )
- system-qemu? ( app-emulation/qemu[xen] )
- ocaml? ( dev-ml/findlib
- dev-lang/ocaml[ocamlopt] )
- python? ( >=dev-lang/swig-4.0.0 )"
-
-BDEPEND="dev-lang/perl
- sys-devel/bison
- 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
- 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-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
- 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() {
- # move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
- 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
-
- 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
-
- # 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/Makefile \
- tools/qemu-xen/qemu-bridge-helper.c \
- tools/qemu-xen/qemu-options.hx \
- || die
-
- if use ovmf; then
- 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
-
- # Bug #816987
- pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
- eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
- popd > /dev/null
-
- pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
- eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
- popd > /dev/null
- fi
-
- # ipxe
- if use ipxe; then
- cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || 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
-
- # 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 :=.*;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" \&\& &:' \
- -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
-
- # 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=(
- --libdir="${EPREFIX}/usr/$(get_libdir)"
- --libexecdir="${EPREFIX}/usr/libexec"
- --localstatedir="${EPREFIX}/var"
- --disable-golang
- --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)
- --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
-
- # bug #845099
- if use ipxe; then
- local -x NO_WERROR=1
- 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/libs/stat/bindings/swig/python/xenstat.py"
- python_domodule "${S}/tools/libs/stat/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.16.2.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild
index d11d5925ee1d..c4bcc325110c 100644
--- a/app-emulation/xen-tools/xen-tools-4.16.2.ebuild
+++ b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2022 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_{8..11} )
+PYTHON_COMPAT=( python3_{10..11} )
PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
@@ -11,20 +11,20 @@ inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-
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"
+ KEYWORDS="amd64 ~arm ~arm64 x86"
- SEABIOS_VER="1.14.0"
- EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
- EDK2_OPENSSL_VERSION="1_1_1j"
+ SEABIOS_VER="1.16.0"
+ EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b"
+ EDK2_OPENSSL_VERSION="1_1_1t"
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
- EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
- IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
+ EDK2_BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea"
+ IPXE_COMMIT="1d1cf74a5e58811822bee4b3da3cff7282fcdfca"
XEN_GENTOO_PATCHSET_NUM=2
- XEN_GENTOO_PATCHSET_BASE=4.16.1
+ XEN_GENTOO_PATCHSET_BASE=4.17.0
XEN_PRE_PATCHSET_NUM=
XEN_PRE_VERSION_BASE=
@@ -128,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 ) )
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_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:=
- dev-util/meson
+ dev-build/meson
sdl? (
media-libs/libsdl[X]
media-libs/libsdl2[X]
@@ -157,7 +162,7 @@ DEPEND="${COMMON_DEPEND}
python? ( >=dev-lang/swig-4.0.0 )"
BDEPEND="dev-lang/perl
- sys-devel/bison
+ app-alternatives/yacc
sys-devel/gettext"
# hvmloader is used to bootstrap a fully virtualized kernel
@@ -263,15 +268,6 @@ src_prepare() {
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
-
- # Bug #816987
- pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
- eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
- popd > /dev/null
-
- pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
- eapply "${XEN_GENTOO_PATCHES_DIR}/ovmf/${PN}-4.15.1-brotli-gcc11.patch"
- popd > /dev/null
fi
# ipxe
@@ -380,11 +376,11 @@ src_prepare() {
# 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
+ -exec sed -i \
+ -e 's/-Werror //g' \
+ -e '/^CFLAGS *+= -Werror$/d' \
+ -e 's/, "-Werror"//' \
+ {} + || die
default
}
@@ -395,6 +391,7 @@ src_configure() {
--libexecdir="${EPREFIX}/usr/libexec"
--localstatedir="${EPREFIX}/var"
--disable-golang
+ --disable-pvshim
--disable-werror
--disable-xen
--enable-tools
diff --git a/app-emulation/xen-tools/xen-tools-4.15.3.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild
index 51f8fe6fefe4..e283301b0bd5 100644
--- a/app-emulation/xen-tools/xen-tools-4.15.3.ebuild
+++ b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild
@@ -1,31 +1,32 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{8..10} )
+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
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"
- SEABIOS_VER="1.14.0"
- EDK2_COMMIT="7b4a99be8a39c12d3a7fc4b8db9f0eab4ac688d5"
- EDK2_OPENSSL_VERSION="1_1_1j"
+ SEABIOS_VER="1.16.0"
+ EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b"
+ EDK2_OPENSSL_VERSION="1_1_1t"
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
- EDK2_BROTLI_COMMIT="666c3280cc11dc433c303d79a83d4ffbdd12cc8d"
- IPXE_COMMIT="3c040ad387099483102708bb1839110bc788cefb"
+ EDK2_BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea"
+ IPXE_COMMIT="1d1cf74a5e58811822bee4b3da3cff7282fcdfca"
- XEN_PRE_PATCHSET_NUM=
XEN_GENTOO_PATCHSET_NUM=2
- XEN_PRE_VERSION_BASE=
+ 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
@@ -50,7 +51,7 @@ else
XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
fi
if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
- XEN_GENTOO_PATCHES_TAG="${PV}-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+ 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}"
@@ -68,7 +69,7 @@ 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 +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux 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}
@@ -86,7 +87,9 @@ COMMON_DEPEND="
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/yajl
@@ -125,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 ) )
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_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:=
- dev-util/meson
+ dev-build/meson
sdl? (
media-libs/libsdl[X]
media-libs/libsdl2[X]
@@ -154,7 +162,7 @@ DEPEND="${COMMON_DEPEND}
python? ( >=dev-lang/swig-4.0.0 )"
BDEPEND="dev-lang/perl
- sys-devel/bison
+ app-alternatives/yacc
sys-devel/gettext"
# hvmloader is used to bootstrap a fully virtualized kernel
@@ -243,10 +251,11 @@ src_prepare() {
# 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/Makefile \
+ 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
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
@@ -259,15 +268,6 @@ src_prepare() {
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
-
- # Bug #816987
- pushd tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli > /dev/null
- eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
- popd > /dev/null
-
- pushd tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli > /dev/null
- eapply "${FILESDIR}/${PN}-4.15.1-brotli-gcc11.patch"
- popd > /dev/null
fi
# ipxe
@@ -279,8 +279,6 @@ src_prepare() {
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
@@ -378,11 +376,11 @@ src_prepare() {
# 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
+ -exec sed -i \
+ -e 's/-Werror //g' \
+ -e '/^CFLAGS *+= -Werror$/d' \
+ -e 's/, "-Werror"//' \
+ {} + || die
default
}
@@ -393,6 +391,7 @@ src_configure() {
--libexecdir="${EPREFIX}/usr/libexec"
--localstatedir="${EPREFIX}/var"
--disable-golang
+ --disable-pvshim
--disable-werror
--disable-xen
--enable-tools
@@ -403,6 +402,7 @@ src_configure() {
$(use_enable ocaml ocamltools)
$(use_enable ovmf)
$(use_enable rombios)
+ $(use_enable systemd)
--with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
)
@@ -427,7 +427,16 @@ src_compile() {
local -x NO_WERROR=1
fi
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
+ 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
@@ -506,27 +515,10 @@ src_install() {
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 dffb03a360bf..50042de97f70 100644
--- a/app-emulation/xen/Manifest
+++ b/app-emulation/xen/Manifest
@@ -1,4 +1,4 @@
-DIST xen-4.15.3.tar.gz 40793144 BLAKE2B 33932d855a0502cfe2768a7c8ae19d7da285d70b4970d96fd703daf0ee24a77ad47a3d1b4bcf5f465aa81aa7eb7f9295bce96302b2149ca208fa662cd966d6af SHA512 c25903cc263891885ec76500488405226c8e025bb461d2bf0d590b9bd2d7ca5c2693de7ecc38b3655bfd6793cc96314826559f14a09cc139de8cfdbeb914cbd3
-DIST xen-4.16.2.tar.gz 44995249 BLAKE2B a221d1e4578ab6eb3250754b3b0f36fb30133c1c83246532ebb9648c3d025b3f5132227371b5d3dd82099594f4ee738227480528ee944b8de6231d9c89892d15 SHA512 b6cd036c1073798dffa167ca14c954fbdfb4c0ef99662f7c435e7e5de687d1bde8856ff6bd030d0d2e661bd17ab631551f01b2cc728cad7e70b59aaa6e692783
-DIST xen-gentoo-patches-4.16.1-gentoo-patchset-2.tar.bz2 5403 BLAKE2B 7fa3b4aa123b2deed260d02b8d34a35dd205207038edb92569278b25c6fe32e0f0e3857c07755553e047f0eb0d9fe7f8b0816e0f3d7f68aee7929afaf6611dfd SHA512 9e7d25640b24235acf756b031b8b7cee582dded65fe7b94a706c990232e9704d574036c3a9605f285e8e9534578d100a3f38719b27b22775f17ef8f68287997e
-DIST xen-upstream-patches-4.15.4-pre-patchset-0.1.tar.bz2 28980 BLAKE2B 5bdabed3bce4306fe5f656a965d1e537608c03b4706dc801a0b0b9649d001b875b1a2543c68c6b459483991570f0fbf2490a97ea1776761c9f61e9876f240fdf SHA512 4f6bbf0dab57ad58292f32fab55294b2eedd0442be7f62341a2df922a1d21880fe33cc29956ccbbb8b4aee4c10b38d4aa090e4db9496d6e0f5256e60999cad7d
+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.15-efi.patch b/app-emulation/xen/files/xen-4.15-efi.patch
deleted file mode 100644
index 01133e98dde3..000000000000
--- a/app-emulation/xen/files/xen-4.15-efi.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/xen/Makefile b/xen/Makefile
-index acb2d28..b9dbd9c 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 b6567c4..0320a4a 100644
---- a/xen/arch/x86/Makefile
-+++ b/xen/arch/x86/Makefile
-@@ -123,7 +123,7 @@ ifneq ($(efi-y),)
- # Check if the compiler supports the MS ABI.
- export XEN_BUILD_EFI := $(shell $(CC) $(XEN_CFLAGS) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
- # Check if the linker supports PE.
--EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 --strip-debug
-+EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10 --strip-debug
- XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) $(EFI_LDFLAGS) -o efi/check.efi efi/check.o 2>/dev/null && echo y))
- CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
- # Check if the linker produces fixups in PE by default (we need to disable it doing so for now).
diff --git a/app-emulation/xen/files/xen-4.15-flask.patch b/app-emulation/xen/files/xen-4.15-flask.patch
deleted file mode 100644
index 7dcf91b30fc1..000000000000
--- a/app-emulation/xen/files/xen-4.15-flask.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/xen/common/Kconfig b/xen/common/Kconfig
-index eb953d1..78f058c 100644
---- a/xen/common/Kconfig
-+++ b/xen/common/Kconfig
-@@ -198,7 +198,7 @@ config XENOPROF
-
- config XSM
- bool "Xen Security Modules support"
-- default ARM
-+ default y
- ---help---
- Enables the security framework known as Xen Security Modules which
- allows administrators fine-grained control over a Xen domain and
diff --git a/app-emulation/xen/metadata.xml b/app-emulation/xen/metadata.xml
index 68e9c297bc42..bad2422fe3f9 100644
--- a/app-emulation/xen/metadata.xml
+++ b/app-emulation/xen/metadata.xml
@@ -16,6 +16,6 @@
<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.15.3.ebuild b/app-emulation/xen/xen-4.15.3.ebuild
deleted file mode 100644
index ff611b2ed315..000000000000
--- a/app-emulation/xen/xen-4.15.3.ebuild
+++ /dev/null
@@ -1,183 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-
-inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
- SRC_URI=""
-else
- KEYWORDS="amd64 ~arm -x86"
-
- XEN_PRE_PATCHSET_NUM=
- XEN_GENTOO_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://github.com/Flowdalic/xen-upstream-patches/archive/refs/tags/${XEN_UPSTREAM_PATCHES_TAG}.tar.gz -> ${XEN_UPSTREAM_PATCHES_NAME}.tar.gz"
- XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
- fi
- if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
- XEN_GENTOO_PATCHES_TAG="4.16.1-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
- XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
- SRC_URI+=" https://github.com/Flowdalic/xen-gentoo-patches/archive/refs/tags/${XEN_GENTOO_PATCHES_TAG}.tar.gz -> ${XEN_GENTOO_PATCHES_NAME}.tar.gz"
- 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="debug efi flask"
-REQUIRED_USE="arm? ( debug )"
-
-DEPEND="${PYTHON_DEPS}
- efi? ( >=sys-devel/binutils-2.22[multitarget] )
- !efi? ( >=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
-}
-
-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
-
- eapply "${FILESDIR}"/${PN}-4.15-efi.patch
-
- # Enable XSM-FLASK
- use flask && eapply "${FILESDIR}"/${PN}-4.15-flask.patch
-
- # 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 efi; 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)" \
- 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 efi; then
- mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
- fi
-
- xen_make DESTDIR="${D}" -C xen 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"
-
- 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.16.2.ebuild b/app-emulation/xen/xen-4.17.4.ebuild
index 108e94c663c3..7b2ca8a62fef 100644
--- a/app-emulation/xen/xen-4.16.2.ebuild
+++ b/app-emulation/xen/xen-4.17.4.ebuild
@@ -1,21 +1,21 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..11} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
+inherit flag-o-matic mount-boot python-any-r1 secureboot toolchain-funcs
if [[ ${PV} == *9999 ]]; then
inherit git-r3
- EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/xen.git"
SRC_URI=""
else
- KEYWORDS="~amd64 ~arm -x86"
+ KEYWORDS="amd64 ~arm -x86"
XEN_GENTOO_PATCHSET_NUM=2
- XEN_GENTOO_PATCHSET_BASE=4.16.1
+ XEN_GENTOO_PATCHSET_BASE=4.17.0
XEN_PRE_PATCHSET_NUM=
XEN_PRE_VERSION_BASE=
@@ -47,12 +47,12 @@ S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
LICENSE="GPL-2"
SLOT="0"
-IUSE="+boot-symlinks debug efi flask"
+IUSE="+boot-symlinks debug uefi flask"
REQUIRED_USE="arm? ( debug )"
DEPEND="${PYTHON_DEPS}
- efi? ( >=sys-devel/binutils-2.22[multitarget] )
- !efi? ( >=sys-devel/binutils-2.22 )
+ uefi? ( >=sys-devel/binutils-2.22[multitarget] )
+ !uefi? ( >=sys-devel/binutils-2.22 )
flask? ( sys-apps/checkpolicy )"
RDEPEND=""
PDEPEND="~app-emulation/xen-tools-${PV}"
@@ -78,6 +78,7 @@ pkg_setup() {
die "Unsupported architecture!"
fi
fi
+ use uefi && secureboot_pkg_setup
}
src_prepare() {
@@ -90,7 +91,7 @@ src_prepare() {
fi
# Symlinks do not work on fat32 volumes # 829765
- if ! use boot-symlinks || use efi; then
+ if ! use boot-symlinks || use uefi; then
eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
fi
@@ -100,7 +101,7 @@ src_prepare() {
# Drop .config
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
- if use efi; then
+ if use uefi; then
export EFI_VENDOR="gentoo"
export EFI_MOUNTPOINT="/boot"
fi
@@ -163,12 +164,16 @@ src_compile() {
src_install() {
# The 'make install' doesn't 'mkdir -p' the subdirs
- if use efi; then
+ if use uefi; then
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
fi
xen_make DESTDIR="${D}" -C xen install
- # make install likes to throw in some extra EFI bits if it built
- use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
+ 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.15.4_pre.ebuild b/app-emulation/xen/xen-4.17.4_pre2.ebuild
index c231b44c827f..ea958743d3db 100644
--- a/app-emulation/xen/xen-4.15.4_pre.ebuild
+++ b/app-emulation/xen/xen-4.17.4_pre2.ebuild
@@ -1,22 +1,23 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit flag-o-matic mount-boot python-any-r1 toolchain-funcs
+inherit flag-o-matic mount-boot python-any-r1 secureboot toolchain-funcs
if [[ ${PV} == *9999 ]]; then
inherit git-r3
- EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/xen.git"
SRC_URI=""
else
- KEYWORDS="~amd64 ~arm -x86"
+ KEYWORDS="amd64 ~arm -x86"
- XEN_PRE_PATCHSET_NUM=0.1
- XEN_GENTOO_PATCHSET_NUM=
- XEN_PRE_VERSION_BASE=4.15.3
+ 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
@@ -32,7 +33,7 @@ else
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_BASE_PV})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+ 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}"
@@ -46,12 +47,12 @@ S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
LICENSE="GPL-2"
SLOT="0"
-IUSE="debug efi flask"
+IUSE="+boot-symlinks debug uefi flask"
REQUIRED_USE="arm? ( debug )"
DEPEND="${PYTHON_DEPS}
- efi? ( >=sys-devel/binutils-2.22[multitarget] )
- !efi? ( >=sys-devel/binutils-2.22 )
+ uefi? ( >=sys-devel/binutils-2.22[multitarget] )
+ !uefi? ( >=sys-devel/binutils-2.22 )
flask? ( sys-apps/checkpolicy )"
RDEPEND=""
PDEPEND="~app-emulation/xen-tools-${PV}"
@@ -77,6 +78,7 @@ pkg_setup() {
die "Unsupported architecture!"
fi
fi
+ use uefi && secureboot_pkg_setup
}
src_prepare() {
@@ -88,10 +90,10 @@ src_prepare() {
eapply "${XEN_GENTOO_PATCHES_DIR}"
fi
- eapply "${FILESDIR}"/${PN}-4.15-efi.patch
-
- # Enable XSM-FLASK
- use flask && eapply "${FILESDIR}"/${PN}-4.15-flask.patch
+ # 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
@@ -99,7 +101,7 @@ src_prepare() {
# Drop .config
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
- if use efi; then
+ if use uefi; then
export EFI_VENDOR="gentoo"
export EFI_MOUNTPOINT="/boot"
fi
@@ -121,6 +123,12 @@ xen_make() {
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}" \
"$@"
}
@@ -156,28 +164,16 @@ src_compile() {
src_install() {
# The 'make install' doesn't 'mkdir -p' the subdirs
- if use efi; then
+ if use uefi; then
mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
fi
xen_make DESTDIR="${D}" -C xen 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"
-
- 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"
+ 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/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