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.ebuild83
-rw-r--r--app-emulation/86Box/Manifest2
-rw-r--r--app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch23
-rw-r--r--app-emulation/86Box/metadata.xml24
-rw-r--r--app-emulation/aqemu/Manifest1
-rw-r--r--app-emulation/aqemu/aqemu-0.9.2.ebuild36
-rw-r--r--app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch15
-rw-r--r--app-emulation/aqemu/metadata.xml11
-rw-r--r--app-emulation/aranym/aranym-1.1.0-r1.ebuild (renamed from app-emulation/aranym/aranym-1.1.0.ebuild)23
-rw-r--r--app-emulation/aranym/files/aranym-1.1.0-ar.patch24
-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/aranym/files/aranym-1.1.0-libcwrap.patch24
-rw-r--r--app-emulation/aranym/metadata.xml2
-rw-r--r--app-emulation/bochs/Manifest2
-rw-r--r--app-emulation/bochs/bochs-2.6.10.ebuild3
-rw-r--r--app-emulation/bochs/bochs-2.7.ebuild (renamed from app-emulation/bochs/bochs-2.6.9.ebuild)30
-rw-r--r--app-emulation/bochs/bochs-9999.ebuild27
-rw-r--r--app-emulation/bochs/metadata.xml2
-rw-r--r--app-emulation/buildah/Manifest3
-rw-r--r--app-emulation/buildah/buildah-1.14.11.ebuild47
-rw-r--r--app-emulation/buildah/buildah-1.15.1.ebuild47
-rw-r--r--app-emulation/buildah/buildah-1.16.1.ebuild47
-rw-r--r--app-emulation/buildah/metadata.xml11
-rw-r--r--app-emulation/cadvisor/Manifest410
-rw-r--r--app-emulation/cadvisor/cadvisor-0.36.0.ebuild453
-rw-r--r--app-emulation/cadvisor/files/cadvisor.initd-r119
-rw-r--r--app-emulation/cadvisor/metadata.xml11
-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/Manifest5
-rw-r--r--app-emulation/cloud-init/cloud-init-22.2.2.ebuild (renamed from app-emulation/cloud-init/cloud-init-20.1.ebuild)61
-rw-r--r--app-emulation/cloud-init/cloud-init-22.4.ebuild (renamed from app-emulation/cloud-init/cloud-init-19.4.ebuild)71
-rw-r--r--app-emulation/cloud-init/cloud-init-23.4.ebuild95
-rw-r--r--app-emulation/cloud-init/cloud-init-9999.ebuild65
-rw-r--r--app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch54
-rw-r--r--app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch30
-rw-r--r--app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch26
-rw-r--r--app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch25
-rw-r--r--app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch93
-rw-r--r--app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch25
-rw-r--r--app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch93
-rw-r--r--app-emulation/cloud-init/metadata.xml7
-rw-r--r--app-emulation/coldfire/coldfire-0.3.1-r1.ebuild39
-rw-r--r--app-emulation/coldfire/coldfire-0.3.1.ebuild16
-rw-r--r--app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch12
-rw-r--r--app-emulation/coldfire/files/coldfire-0.3.1-ld.patch11
-rw-r--r--app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch23
-rw-r--r--app-emulation/coldfire/metadata.xml2
-rw-r--r--app-emulation/conmon/Manifest1
-rw-r--r--app-emulation/conmon/conmon-2.0.20.ebuild45
-rw-r--r--app-emulation/conmon/metadata.xml11
-rw-r--r--app-emulation/containerd/Manifest10
-rw-r--r--app-emulation/containerd/containerd-1.2.10.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.2.12.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.2.13.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.2.6.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.2.7.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.3.0.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.3.1.ebuild56
-rw-r--r--app-emulation/containerd/containerd-1.3.2.ebuild55
-rw-r--r--app-emulation/containerd/containerd-1.3.4.ebuild55
-rw-r--r--app-emulation/containerd/containerd-1.3.7.ebuild84
-rw-r--r--app-emulation/containerd/files/containerd.initd24
-rw-r--r--app-emulation/containerd/files/containerd.initd-r126
-rw-r--r--app-emulation/containerd/metadata.xml28
-rw-r--r--app-emulation/containers-storage/Manifest3
-rw-r--r--app-emulation/containers-storage/containers-storage-1.18.1.ebuild58
-rw-r--r--app-emulation/containers-storage/containers-storage-1.20.2.ebuild58
-rw-r--r--app-emulation/containers-storage/containers-storage-1.23.3.ebuild58
-rw-r--r--app-emulation/containers-storage/metadata.xml21
-rw-r--r--app-emulation/cri-o/Manifest3
-rw-r--r--app-emulation/cri-o/cri-o-1.17.1.ebuild95
-rw-r--r--app-emulation/cri-o/cri-o-1.18.3.ebuild95
-rw-r--r--app-emulation/cri-o/cri-o-1.19.0.ebuild95
-rw-r--r--app-emulation/cri-o/files/cri-o.logrotated7
-rw-r--r--app-emulation/cri-o/files/crio.initd35
-rw-r--r--app-emulation/cri-o/metadata.xml28
-rw-r--r--app-emulation/cri-tools/Manifest1
-rw-r--r--app-emulation/cri-tools/cri-tools-1.18.0.ebuild32
-rw-r--r--app-emulation/cri-tools/metadata.xml8
-rw-r--r--app-emulation/crossover-bin/Manifest5
-rw-r--r--app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild (renamed from app-emulation/crossover-bin/crossover-bin-19.0.1-r1.ebuild)135
-rw-r--r--app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild190
-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.xml8
-rw-r--r--app-emulation/crun/Manifest3
-rw-r--r--app-emulation/crun/crun-0.14.1.ebuild79
-rw-r--r--app-emulation/crun/crun-0.15.ebuild68
-rw-r--r--app-emulation/crun/metadata.xml32
-rw-r--r--app-emulation/dinero/dinero-4.7-r1.ebuild4
-rw-r--r--app-emulation/dinero/metadata.xml2
-rw-r--r--app-emulation/diskimage-builder/Manifest2
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild (renamed from app-emulation/diskimage-builder/diskimage-builder-3.3.1.ebuild)14
-rw-r--r--app-emulation/diskimage-builder/diskimage-builder-9999.ebuild14
-rw-r--r--app-emulation/diskimage-builder/metadata.xml2
-rw-r--r--app-emulation/distrobuilder/Manifest1
-rw-r--r--app-emulation/distrobuilder/distrobuilder-1.1.ebuild35
-rw-r--r--app-emulation/distrobuilder/metadata.xml16
-rw-r--r--app-emulation/dlx/Manifest2
-rw-r--r--app-emulation/dlx/dlx-1.0.0.ebuild20
-rw-r--r--app-emulation/dlx/dlx-1.5.20.ebuild30
-rw-r--r--app-emulation/dlx/metadata.xml5
-rw-r--r--app-emulation/docker-bench-security/Manifest2
-rw-r--r--app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild24
-rw-r--r--app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild24
-rw-r--r--app-emulation/docker-bench-security/files/docker-bench-security7
-rw-r--r--app-emulation/docker-bench-security/metadata.xml12
-rw-r--r--app-emulation/docker-compose/Manifest5
-rw-r--r--app-emulation/docker-compose/docker-compose-1.25.5.ebuild68
-rw-r--r--app-emulation/docker-compose/docker-compose-1.26.2.ebuild72
-rw-r--r--app-emulation/docker-compose/docker-compose-1.27.2.ebuild73
-rw-r--r--app-emulation/docker-compose/docker-compose-1.27.3.ebuild73
-rw-r--r--app-emulation/docker-compose/docker-compose-1.27.4.ebuild73
-rw-r--r--app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch71
-rw-r--r--app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch77
-rw-r--r--app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch67
-rw-r--r--app-emulation/docker-compose/metadata.xml11
-rw-r--r--app-emulation/docker-credential-helpers/Manifest1
-rw-r--r--app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild58
-rw-r--r--app-emulation/docker-credential-helpers/metadata.xml27
-rw-r--r--app-emulation/docker-gc/docker-gc-9999.ebuild21
-rw-r--r--app-emulation/docker-gc/metadata.xml8
-rw-r--r--app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild8
-rw-r--r--app-emulation/docker-machine-kvm/metadata.xml2
-rw-r--r--app-emulation/docker-machine/metadata.xml2
-rw-r--r--app-emulation/docker-proxy/Manifest5
-rw-r--r--app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild34
-rw-r--r--app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild34
-rw-r--r--app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild34
-rw-r--r--app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild34
-rw-r--r--app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild35
-rw-r--r--app-emulation/docker-proxy/metadata.xml15
-rw-r--r--app-emulation/docker-registry/Manifest1
-rw-r--r--app-emulation/docker-registry/docker-registry-2.7.1.ebuild50
-rw-r--r--app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch398
-rw-r--r--app-emulation/docker-registry/files/registry.confd2
-rw-r--r--app-emulation/docker-registry/files/registry.initd19
-rw-r--r--app-emulation/docker-registry/files/registry.logrotated7
-rw-r--r--app-emulation/docker-registry/files/registry.service13
-rw-r--r--app-emulation/docker-registry/metadata.xml10
-rw-r--r--app-emulation/docker-swarm/Manifest1
-rw-r--r--app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild54
-rw-r--r--app-emulation/docker-swarm/metadata.xml10
-rw-r--r--app-emulation/docker/Manifest2
-rw-r--r--app-emulation/docker/docker-19.03.12.ebuild320
-rw-r--r--app-emulation/docker/docker-19.03.13-r2.ebuild316
-rw-r--r--app-emulation/docker/metadata.xml47
-rw-r--r--app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild16
-rw-r--r--app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch44
-rw-r--r--app-emulation/dosemu/metadata.xml7
-rw-r--r--app-emulation/dxvk/Manifest13
-rw-r--r--app-emulation/dxvk/dxvk-1.10.3-r1.ebuild152
-rw-r--r--app-emulation/dxvk/dxvk-2.2-r1.ebuild186
-rw-r--r--app-emulation/dxvk/dxvk-2.3.1-r1.ebuild190
-rw-r--r--app-emulation/dxvk/dxvk-2.3.ebuild186
-rw-r--r--app-emulation/dxvk/dxvk-9999.ebuild190
-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/metadata.xml21
-rw-r--r--app-emulation/dynamips/Manifest3
-rw-r--r--app-emulation/dynamips/dynamips-0.2.18.ebuild40
-rw-r--r--app-emulation/dynamips/dynamips-0.2.23.ebuild (renamed from app-emulation/dynamips/dynamips-0.2.21.ebuild)22
-rw-r--r--app-emulation/dynamips/metadata.xml12
-rw-r--r--app-emulation/edumips64/Manifest1
-rw-r--r--app-emulation/edumips64/edumips64-1.2.ebuild47
-rw-r--r--app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch11
-rw-r--r--app-emulation/edumips64/files/edumips64-javadoc-cp.patch11
-rw-r--r--app-emulation/edumips64/metadata.xml11
-rw-r--r--app-emulation/faudio/Manifest7
-rw-r--r--app-emulation/faudio/faudio-19.06.ebuild95
-rw-r--r--app-emulation/faudio/faudio-19.09.ebuild95
-rw-r--r--app-emulation/faudio/faudio-20.02.ebuild97
-rw-r--r--app-emulation/faudio/faudio-20.09.ebuild97
-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.ebuild95
-rw-r--r--app-emulation/faudio/files/faudio.pc11
-rw-r--r--app-emulation/faudio/metadata.xml21
-rw-r--r--app-emulation/firecracker-bin/Manifest14
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild (renamed from app-emulation/firecracker-bin/firecracker-bin-0.22.0.ebuild)41
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild (renamed from app-emulation/firecracker-bin/firecracker-bin-0.22.1.ebuild)41
-rw-r--r--app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild87
-rw-r--r--app-emulation/firecracker-bin/metadata.xml9
-rw-r--r--app-emulation/firecracker/Manifest35
-rw-r--r--app-emulation/firecracker/firecracker-0.21.1-r1.ebuild89
-rw-r--r--app-emulation/firecracker/metadata.xml8
-rw-r--r--app-emulation/flannel/Manifest1
-rw-r--r--app-emulation/flannel/files/flannel-docker.conf2
-rw-r--r--app-emulation/flannel/files/flannel.tmpfilesd1
-rw-r--r--app-emulation/flannel/files/flanneld.confd2
-rw-r--r--app-emulation/flannel/files/flanneld.initd19
-rw-r--r--app-emulation/flannel/files/flanneld.logrotated7
-rw-r--r--app-emulation/flannel/files/flanneld.service13
-rw-r--r--app-emulation/flannel/flannel-0.11.0.ebuild51
-rw-r--r--app-emulation/flannel/metadata.xml10
-rw-r--r--app-emulation/free42/Manifest6
-rw-r--r--app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch12
-rw-r--r--app-emulation/free42/files/free42-2.0.10-fix-makefile.patch67
-rw-r--r--app-emulation/free42/files/free42-3.0.14-fix-makefile.patch26
-rw-r--r--app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch65
-rw-r--r--app-emulation/free42/free42-2.5.24.ebuild (renamed from app-emulation/free42/free42-2.5.20.ebuild)4
-rw-r--r--app-emulation/free42/free42-3.1.3.ebuild (renamed from app-emulation/free42/free42-2.5.18.ebuild)14
-rw-r--r--app-emulation/free42/free42-3.1.7.ebuild (renamed from app-emulation/free42/free42-2.0.20.ebuild)39
-rw-r--r--app-emulation/free42/metadata.xml2
-rw-r--r--app-emulation/fs-uae-launcher/Manifest2
-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.0.5.ebuild)42
-rw-r--r--app-emulation/fs-uae-launcher/metadata.xml2
-rw-r--r--app-emulation/fs-uae/Manifest2
-rw-r--r--app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch43
-rw-r--r--app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch35
-rw-r--r--app-emulation/fs-uae/fs-uae-3.1.66.ebuild (renamed from app-emulation/fs-uae/fs-uae-3.0.5.ebuild)27
-rw-r--r--app-emulation/fs-uae/metadata.xml2
-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.ebuild)15
-rw-r--r--app-emulation/fuse-utils/metadata.xml11
-rw-r--r--app-emulation/fuse/Manifest2
-rw-r--r--app-emulation/fuse/files/multiple-definition.patch13
-rw-r--r--app-emulation/fuse/fuse-1.5.7.ebuild81
-rw-r--r--app-emulation/fuse/fuse-1.6.0-r1.ebuild122
-rw-r--r--app-emulation/fuse/metadata.xml11
-rw-r--r--app-emulation/gallium-nine-standalone/Manifest3
-rw-r--r--app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch34
-rw-r--r--app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch32
-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.ebuild (renamed from app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild)35
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild90
-rw-r--r--app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild50
-rw-r--r--app-emulation/gallium-nine-standalone/metadata.xml2
-rw-r--r--app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild10
-rw-r--r--app-emulation/ganeti-os-noop/metadata.xml4
-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.1.1.ebuild126
-rw-r--r--app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild146
-rw-r--r--app-emulation/genymotion-bin/metadata.xml10
-rw-r--r--app-emulation/glean/Manifest3
-rw-r--r--app-emulation/glean/glean-1.17.0.ebuild26
-rw-r--r--app-emulation/glean/glean-1.23.0-r1.ebuild (renamed from app-emulation/glean/glean-1.10.3.ebuild)15
-rw-r--r--app-emulation/glean/metadata.xml7
-rw-r--r--app-emulation/go-secbench/Manifest1
-rw-r--r--app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild27
-rw-r--r--app-emulation/go-secbench/go-secbench-0.1.0.ebuild26
-rw-r--r--app-emulation/go-secbench/metadata.xml8
-rw-r--r--app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild (renamed from app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild)27
-rw-r--r--app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild98
-rw-r--r--app-emulation/grub-xen-host/metadata.xml5
-rw-r--r--app-emulation/guestfs-tools/Manifest1
-rw-r--r--app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild165
-rw-r--r--app-emulation/guestfs-tools/metadata.xml5
-rw-r--r--app-emulation/gxemul/Manifest1
-rw-r--r--app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch10
-rw-r--r--app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch11
-rw-r--r--app-emulation/gxemul/gxemul-0.6.0-r1.ebuild50
-rw-r--r--app-emulation/gxemul/metadata.xml2
-rw-r--r--app-emulation/hercules/Manifest2
-rw-r--r--app-emulation/hercules/files/hercules-3.09-aliasing.patch41
-rw-r--r--app-emulation/hercules/files/hercules-3.13-posix-test.patch29
-rw-r--r--app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch34
-rw-r--r--app-emulation/hercules/files/hercules-3.13-user-install.patch21
-rw-r--r--app-emulation/hercules/hercules-3.12.ebuild53
-rw-r--r--app-emulation/hercules/hercules-3.13-r1.ebuild (renamed from app-emulation/hercules/hercules-3.10.ebuild)35
-rw-r--r--app-emulation/hercules/hercules-3.13.ebuild57
-rw-r--r--app-emulation/hercules/metadata.xml4
-rw-r--r--app-emulation/hyperd/metadata.xml2
-rw-r--r--app-emulation/img/Manifest1
-rw-r--r--app-emulation/img/img-0.5.7-r1.ebuild34
-rw-r--r--app-emulation/img/metadata.xml15
-rw-r--r--app-emulation/kompose/Manifest2
-rw-r--r--app-emulation/kompose/kompose-1.16.0.ebuild30
-rw-r--r--app-emulation/kompose/kompose-1.19.0.ebuild30
-rw-r--r--app-emulation/kompose/metadata.xml11
-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.xml5
-rw-r--r--app-emulation/libdsk/Manifest2
-rw-r--r--app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch22
-rw-r--r--app-emulation/libdsk/libdsk-1.5.18.ebuild20
-rw-r--r--app-emulation/libdsk/libdsk-1.5.8.ebuild23
-rw-r--r--app-emulation/libdsk/metadata.xml2
-rw-r--r--app-emulation/libguestfs-appliance/Manifest2
-rw-r--r--app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild (renamed from app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild)30
-rw-r--r--app-emulation/libguestfs-appliance/metadata.xml18
-rw-r--r--app-emulation/libguestfs/Manifest4
-rw-r--r--app-emulation/libguestfs/files/1.28/0000_bug_499150.patch10
-rw-r--r--app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch15
-rw-r--r--app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch16
-rw-r--r--app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch21
-rw-r--r--app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch13
-rw-r--r--app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch29
-rw-r--r--app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch25
-rw-r--r--app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch40
-rw-r--r--app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch42
-rw-r--r--app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch45
-rw-r--r--app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch40
-rw-r--r--app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch45
-rw-r--r--app-emulation/libguestfs/libguestfs-1.36.13.ebuild174
-rw-r--r--app-emulation/libguestfs/libguestfs-1.36.15.ebuild179
-rw-r--r--app-emulation/libguestfs/libguestfs-1.38.6.ebuild175
-rw-r--r--app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild255
-rw-r--r--app-emulation/libguestfs/metadata.xml29
-rw-r--r--app-emulation/libpod/Manifest1
-rw-r--r--app-emulation/libpod/files/podman.initd17
-rw-r--r--app-emulation/libpod/files/podman.logrotated7
-rw-r--r--app-emulation/libpod/libpod-2.1.0.ebuild154
-rw-r--r--app-emulation/libpod/metadata.xml33
-rw-r--r--app-emulation/libspectrum/Manifest2
-rw-r--r--app-emulation/libspectrum/libspectrum-1.5.0.ebuild (renamed from app-emulation/libspectrum/libspectrum-1.4.4.ebuild)12
-rw-r--r--app-emulation/libspectrum/metadata.xml11
-rw-r--r--app-emulation/libvirt-glib/Manifest5
-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-1.0.0-r1.ebuild46
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild46
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild43
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild53
-rw-r--r--app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild48
-rw-r--r--app-emulation/libvirt-glib/metadata.xml21
-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.ebuild40
-rw-r--r--app-emulation/libvirt-snmp/metadata.xml5
-rw-r--r--app-emulation/libvirt/Manifest12
-rw-r--r--app-emulation/libvirt/files/README.gentoo-r32
-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-6.7.0-do-not-use-sysconfig.patch169
-rw-r--r--app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch9
-rw-r--r--app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch51
-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.patch209
-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.ebuild (renamed from app-emulation/libvirt/libvirt-6.7.0.ebuild)212
-rw-r--r--app-emulation/libvirt/libvirt-10.2.0.ebuild (renamed from app-emulation/libvirt/libvirt-6.8.0.ebuild)211
-rw-r--r--app-emulation/libvirt/libvirt-9.8.0-r2.ebuild366
-rw-r--r--app-emulation/libvirt/libvirt-9.9.0-r2.ebuild367
-rw-r--r--app-emulation/libvirt/libvirt-9999.ebuild208
-rw-r--r--app-emulation/libvirt/metadata.xml197
-rw-r--r--app-emulation/lxc-templates/Manifest2
-rw-r--r--app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch12
-rw-r--r--app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild30
-rw-r--r--app-emulation/lxc-templates/metadata.xml15
-rw-r--r--app-emulation/lxc/Manifest3
-rw-r--r--app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch5
-rw-r--r--app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch27
-rw-r--r--app-emulation/lxc/files/lxc.initd.8131
-rw-r--r--app-emulation/lxc/files/lxc_at.service.4.0.015
-rw-r--r--app-emulation/lxc/lxc-4.0.4.ebuild171
-rw-r--r--app-emulation/lxc/lxc-4.0.5.ebuild172
-rw-r--r--app-emulation/lxc/metadata.xml21
-rw-r--r--app-emulation/lxd/Manifest4
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0.confd23
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0.initd54
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0.service20
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0.socket12
-rw-r--r--app-emulation/lxd/files/lxd-4.0.0_apparmor.service21
-rw-r--r--app-emulation/lxd/files/lxd-containers-4.0.0.service16
-rw-r--r--app-emulation/lxd/lxd-4.0.3-r2.ebuild212
-rw-r--r--app-emulation/lxd/lxd-4.0.4-r1.ebuild144
-rw-r--r--app-emulation/lxd/metadata.xml24
-rw-r--r--app-emulation/metadata.xml3
-rw-r--r--app-emulation/nemu/Manifest4
-rw-r--r--app-emulation/nemu/metadata.xml18
-rw-r--r--app-emulation/nemu/nemu-3.0.0.ebuild (renamed from app-emulation/nemu/nemu-2.2.1.ebuild)58
-rw-r--r--app-emulation/nemu/nemu-3.1.0.ebuild77
-rw-r--r--app-emulation/nemu/nemu-3.3.0.ebuild80
-rw-r--r--app-emulation/nemu/nemu-9999.ebuild71
-rw-r--r--app-emulation/open-vm-tools/Manifest4
-rw-r--r--app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch33
-rw-r--r--app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch60
-rw-r--r--app-emulation/open-vm-tools/files/11.3.5-icu.patch26
-rw-r--r--app-emulation/open-vm-tools/metadata.xml8
-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-11.1.0.ebuild)41
-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-11.0.1-r1.ebuild)43
-rw-r--r--app-emulation/pcem/Manifest2
-rw-r--r--app-emulation/pcem/files/pcem-15-respect-cflags.patch13
-rw-r--r--app-emulation/pcem/files/pcem-17-respect-cflags.patch11
-rw-r--r--app-emulation/pcem/metadata.xml2
-rw-r--r--app-emulation/pcem/pcem-17-r2.ebuild (renamed from app-emulation/pcem/pcem-16-r1.ebuild)30
-rw-r--r--app-emulation/phpvirtualbox/metadata.xml4
-rw-r--r--app-emulation/plus42/Manifest2
-rw-r--r--app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch65
-rw-r--r--app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch25
-rw-r--r--app-emulation/plus42/metadata.xml11
-rw-r--r--app-emulation/plus42/plus42-1.1.3.ebuild50
-rw-r--r--app-emulation/plus42/plus42-1.1.9.ebuild49
-rw-r--r--app-emulation/protontricks/Manifest4
-rw-r--r--app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch36
-rw-r--r--app-emulation/protontricks/metadata.xml3
-rw-r--r--app-emulation/protontricks/protontricks-1.10.5.ebuild (renamed from app-emulation/protontricks/protontricks-1.4.1.ebuild)39
-rw-r--r--app-emulation/protontricks/protontricks-1.11.1.ebuild (renamed from app-emulation/protontricks/protontricks-1.4.2.ebuild)32
-rw-r--r--app-emulation/punes/Manifest2
-rw-r--r--app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch33
-rw-r--r--app-emulation/punes/metadata.xml6
-rw-r--r--app-emulation/punes/punes-0.106.ebuild58
-rw-r--r--app-emulation/punes/punes-0.111.ebuild63
-rw-r--r--app-emulation/q4wine/Manifest2
-rw-r--r--app-emulation/q4wine/metadata.xml2
-rw-r--r--app-emulation/q4wine/q4wine-1.3.13.ebuild (renamed from app-emulation/q4wine/q4wine-1.3.12.ebuild)13
-rw-r--r--app-emulation/qemu-guest-agent/Manifest10
-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-2.5.0-sysmacros.patch17
-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.xml10
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild (renamed from app-emulation/qemu-guest-agent/qemu-guest-agent-4.0.0.ebuild)23
-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-3.1.0.ebuild)37
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.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.3.ebuild82
-rw-r--r--app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild89
-rw-r--r--app-emulation/qemu-init-scripts/metadata.xml2
-rw-r--r--app-emulation/qemu-riscv64-bin/Manifest2
-rw-r--r--app-emulation/qemu-riscv64-bin/metadata.xml16
-rw-r--r--app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild22
-rw-r--r--app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild22
-rw-r--r--app-emulation/qemu/Manifest16
-rw-r--r--app-emulation/qemu/files/65-kvm.rules-r2 (renamed from app-emulation/qemu/files/65-kvm.rules-r1)1
-rw-r--r--app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch11
-rw-r--r--app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch12
-rw-r--r--app-emulation/qemu/files/qemu-4.2.0-cflags.patch16
-rw-r--r--app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch62
-rw-r--r--app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch90
-rw-r--r--app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch25
-rw-r--r--app-emulation/qemu/files/qemu-6.0.0-make.patch14
-rw-r--r--app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch32
-rw-r--r--app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch31
-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.patch32
-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/metadata.xml33
-rw-r--r--app-emulation/qemu/qemu-7.2.10.ebuild (renamed from app-emulation/qemu/qemu-5.1.0-r1.ebuild)432
-rw-r--r--app-emulation/qemu/qemu-7.2.4.ebuild972
-rw-r--r--app-emulation/qemu/qemu-7.2.9.ebuild971
-rw-r--r--app-emulation/qemu/qemu-8.0.4.ebuild970
-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.1.ebuild991
-rw-r--r--app-emulation/qemu/qemu-8.2.2.ebuild992
-rw-r--r--app-emulation/qemu/qemu-9999.ebuild492
-rw-r--r--app-emulation/qt-virt-manager/metadata.xml14
-rw-r--r--app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild49
-rw-r--r--app-emulation/qtrvsim/Manifest1
-rw-r--r--app-emulation/qtrvsim/metadata.xml11
-rw-r--r--app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild25
-rw-r--r--app-emulation/reg/Manifest2
-rw-r--r--app-emulation/reg/files/reg-0.16.0-config.patch254
-rw-r--r--app-emulation/reg/files/reg.confd2
-rw-r--r--app-emulation/reg/files/reg.initd19
-rw-r--r--app-emulation/reg/metadata.xml11
-rw-r--r--app-emulation/reg/reg-0.16.1.ebuild54
-rw-r--r--app-emulation/rex-client/metadata.xml5
-rw-r--r--app-emulation/rex-client/rex-client-9999.ebuild45
-rw-r--r--app-emulation/ruffle/Manifest896
-rw-r--r--app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch16
-rw-r--r--app-emulation/ruffle/metadata.xml11
-rw-r--r--app-emulation/ruffle/ruffle-0_p20240217.ebuild735
-rw-r--r--app-emulation/ruffle/ruffle-0_p20240319.ebuild742
-rw-r--r--app-emulation/ruffle/ruffle-0_p20240422.ebuild767
-rw-r--r--app-emulation/ruffle/ruffle-9999.ebuild90
-rw-r--r--app-emulation/runc/Manifest1
-rw-r--r--app-emulation/runc/metadata.xml26
-rw-r--r--app-emulation/runc/runc-1.0.0_rc10-r1.ebuild78
-rw-r--r--app-emulation/runc/runc-1.0.0_rc10.ebuild57
-rw-r--r--app-emulation/runv/metadata.xml2
-rw-r--r--app-emulation/s6-overlay/Manifest1
-rw-r--r--app-emulation/s6-overlay/metadata.xml11
-rw-r--r--app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild58
-rw-r--r--app-emulation/sen/Manifest3
-rw-r--r--app-emulation/sen/metadata.xml20
-rw-r--r--app-emulation/sen/sen-0.6.0.ebuild38
-rw-r--r--app-emulation/sen/sen-0.6.1.ebuild38
-rw-r--r--app-emulation/sen/sen-0.6.1_p20200905.ebuild42
-rw-r--r--app-emulation/simh/metadata.xml10
-rw-r--r--app-emulation/simplevirt/Manifest6
-rw-r--r--app-emulation/simplevirt/files/simplevirtd.confd4
-rw-r--r--app-emulation/simplevirt/files/simplevirtd.initd15
-rw-r--r--app-emulation/simplevirt/metadata.xml15
-rw-r--r--app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild76
-rw-r--r--app-emulation/ski/Manifest1
-rw-r--r--app-emulation/ski/metadata.xml10
-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/skopeo/Manifest4
-rw-r--r--app-emulation/skopeo/metadata.xml11
-rw-r--r--app-emulation/skopeo/skopeo-0.1.41.ebuild52
-rw-r--r--app-emulation/skopeo/skopeo-0.2.0.ebuild52
-rw-r--r--app-emulation/skopeo/skopeo-1.1.0.ebuild52
-rw-r--r--app-emulation/skopeo/skopeo-1.1.1.ebuild52
-rw-r--r--app-emulation/slirp4netns/Manifest1
-rw-r--r--app-emulation/slirp4netns/metadata.xml15
-rw-r--r--app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild40
-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/metadata.xml4
-rw-r--r--app-emulation/softgun/softgun-0.22-r1.ebuild38
-rw-r--r--app-emulation/softgun/softgun-0.22.ebuild16
-rw-r--r--app-emulation/spectemu/metadata.xml2
-rw-r--r--app-emulation/spice-html5/Manifest2
-rw-r--r--app-emulation/spice-html5/metadata.xml16
-rw-r--r--app-emulation/spice-html5/spice-html5-0.2.1.ebuild28
-rw-r--r--app-emulation/spice-html5/spice-html5-0.2.2.ebuild28
-rw-r--r--app-emulation/spice-protocol/Manifest2
-rw-r--r--app-emulation/spice-protocol/metadata.xml2
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild2
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild14
-rw-r--r--app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild20
-rw-r--r--app-emulation/spice-protocol/spice-protocol-9999.ebuild14
-rw-r--r--app-emulation/spice-vdagent/Manifest3
-rw-r--r--app-emulation/spice-vdagent/metadata.xml2
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild62
-rw-r--r--app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild (renamed from app-emulation/spice-vdagent/spice-vdagent-0.20.0.ebuild)31
-rw-r--r--app-emulation/spice/Manifest3
-rw-r--r--app-emulation/spice/metadata.xml5
-rw-r--r--app-emulation/spice/spice-0.15.1-r1.ebuild (renamed from app-emulation/spice/spice-0.14.3.ebuild)43
-rw-r--r--app-emulation/spice/spice-0.15.2.ebuild97
-rw-r--r--app-emulation/spice/spice-9999.ebuild92
-rw-r--r--app-emulation/spim/metadata.xml2
-rw-r--r--app-emulation/spim/spim-8.0-r3.ebuild38
-rw-r--r--app-emulation/uade/metadata.xml16
-rw-r--r--app-emulation/uade/uade-2.13-r1.ebuild39
-rw-r--r--app-emulation/uade/uade-2.13-r2.ebuild52
-rw-r--r--app-emulation/umoci/Manifest1
-rw-r--r--app-emulation/umoci/metadata.xml8
-rw-r--r--app-emulation/umoci/umoci-0.2.1.ebuild42
-rw-r--r--app-emulation/uxn/Manifest1
-rw-r--r--app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch20
-rw-r--r--app-emulation/uxn/metadata.xml18
-rw-r--r--app-emulation/uxn/uxn-0_p20240304.ebuild72
-rw-r--r--app-emulation/uxn/uxn-9999.ebuild72
-rw-r--r--app-emulation/vagrant/Manifest4
-rw-r--r--app-emulation/vagrant/files/vagrant.in2
-rw-r--r--app-emulation/vagrant/metadata.xml16
-rw-r--r--app-emulation/vagrant/vagrant-2.2.7-r1.ebuild93
-rw-r--r--app-emulation/vagrant/vagrant-2.2.9-r1.ebuild93
-rw-r--r--app-emulation/vagrant/vagrant-2.4.0-r1.ebuild122
-rw-r--r--app-emulation/vagrant/vagrant-2.4.1.ebuild122
-rw-r--r--app-emulation/vendor-reset/Manifest1
-rw-r--r--app-emulation/vendor-reset/files/modload.conf1
-rw-r--r--app-emulation/vendor-reset/metadata.xml11
-rw-r--r--app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild39
-rw-r--r--app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild40
-rw-r--r--app-emulation/vendor-reset/vendor-reset-9999.ebuild37
-rw-r--r--app-emulation/vice/Manifest3
-rw-r--r--app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch29
-rw-r--r--app-emulation/vice/metadata.xml2
-rw-r--r--app-emulation/vice/vice-3.4_p37498.ebuild172
-rw-r--r--app-emulation/vice/vice-3.4_p38553.ebuild185
-rw-r--r--app-emulation/vice/vice-3.8-r1.ebuild187
-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/Manifest3
-rw-r--r--app-emulation/virt-manager/metadata.xml35
-rw-r--r--app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild98
-rw-r--r--app-emulation/virt-manager/virt-manager-3.1.0.ebuild99
-rw-r--r--app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild106
-rw-r--r--app-emulation/virt-manager/virt-manager-4.1.0.ebuild106
-rw-r--r--app-emulation/virt-manager/virt-manager-9999.ebuild108
-rw-r--r--app-emulation/virt-viewer/Manifest4
-rw-r--r--app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch36
-rw-r--r--app-emulation/virt-viewer/metadata.xml7
-rw-r--r--app-emulation/virt-viewer/virt-viewer-11.0.ebuild68
-rw-r--r--app-emulation/virt-viewer/virt-viewer-7.0.ebuild36
-rw-r--r--app-emulation/virt-viewer/virt-viewer-8.0.ebuild39
-rw-r--r--app-emulation/virt-viewer/virt-viewer-9.0.ebuild39
-rw-r--r--app-emulation/virt-what/Manifest5
-rw-r--r--app-emulation/virt-what/metadata.xml6
-rw-r--r--app-emulation/virt-what/virt-what-1.19.ebuild24
-rw-r--r--app-emulation/virt-what/virt-what-1.21.ebuild (renamed from app-emulation/virt-what/virt-what-1.20.ebuild)4
-rw-r--r--app-emulation/virt-what/virt-what-1.25.ebuild (renamed from app-emulation/virt-what/virt-what-1.18.ebuild)6
-rw-r--r--app-emulation/virtio-win/Manifest6
-rw-r--r--app-emulation/virtio-win/files/README.gentoo15
-rw-r--r--app-emulation/virtio-win/metadata.xml18
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild (renamed from app-emulation/virtio-win/virtio-win-0.1.173.9.ebuild)19
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild (renamed from app-emulation/virtio-win/virtio-win-0.1.185.1.ebuild)18
-rw-r--r--app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild (renamed from app-emulation/virtio-win/virtio-win-0.1.187.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/Manifest9
-rw-r--r--app-emulation/virtualbox-additions/metadata.xml9
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild34
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild34
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.1.48.ebuild (renamed from app-emulation/virtualbox-additions/virtualbox-additions-6.1.14.ebuild)23
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild (renamed from app-emulation/virtualbox-additions/virtualbox-additions-6.1.12.ebuild)21
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild25
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild25
-rw-r--r--app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild25
-rw-r--r--app-emulation/virtualbox-extpack-oracle/Manifest9
-rw-r--r--app-emulation/virtualbox-extpack-oracle/metadata.xml9
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild43
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild43
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild43
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild43
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild28
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild28
-rw-r--r--app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild28
-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.16.ebuild33
-rw-r--r--app-emulation/virtualbox-guest-additions/Manifest15
-rw-r--r--app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch (renamed from app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch)4
-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.initd-r1 (renamed from app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd)4
-rw-r--r--app-emulation/virtualbox-guest-additions/metadata.xml9
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild221
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild221
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.48.ebuild (renamed from app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.24-r1.ebuild)202
-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.16.ebuild)201
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild294
-rw-r--r--app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild294
-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.16.ebuild290
-rw-r--r--app-emulation/virtualbox-kvm/Manifest8
-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.16_pre20240325.ebuild768
-rw-r--r--app-emulation/virtualbox-kvm/virtualbox-kvm-9999.ebuild768
-rw-r--r--app-emulation/virtualbox-modules/Manifest9
-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.xml10
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild55
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild55
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild55
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild55
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild38
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild34
-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.12-r1.ebuild38
-rw-r--r--app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild34
-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.16.ebuild34
-rw-r--r--app-emulation/virtualbox/Manifest18
-rw-r--r--app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch59
-rw-r--r--app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch15
-rw-r--r--app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch14
-rw-r--r--app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.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/files/virtualbox-ose-6-wrapper2
-rw-r--r--app-emulation/virtualbox/metadata.xml24
-rw-r--r--app-emulation/virtualbox/virtualbox-6.0.24.ebuild510
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.12a.ebuild512
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.14a.ebuild512
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.16.ebuild512
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild677
-rw-r--r--app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild681
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild739
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild740
-rw-r--r--app-emulation/virtualbox/virtualbox-7.0.16.ebuild740
-rw-r--r--app-emulation/virtualbox/virtualbox-9999.ebuild769
-rw-r--r--app-emulation/vkd3d-proton/Manifest15
-rw-r--r--app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch14
-rw-r--r--app-emulation/vkd3d-proton/metadata.xml18
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild207
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild201
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild207
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild186
-rw-r--r--app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild207
-rw-r--r--app-emulation/vkd3d/Manifest4
-rw-r--r--app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch22
-rw-r--r--app-emulation/vkd3d/metadata.xml2
-rw-r--r--app-emulation/vkd3d/vkd3d-1.0.ebuild39
-rw-r--r--app-emulation/vkd3d/vkd3d-1.1-r1.ebuild43
-rw-r--r--app-emulation/vkd3d/vkd3d-1.1.ebuild39
-rw-r--r--app-emulation/vkd3d/vkd3d-1.11.ebuild49
-rw-r--r--app-emulation/vkd3d/vkd3d-1.2.ebuild40
-rw-r--r--app-emulation/vkd3d/vkd3d-9999.ebuild47
-rw-r--r--app-emulation/wine-desktop-common/metadata.xml10
-rw-r--r--app-emulation/wine-gecko/Manifest16
-rw-r--r--app-emulation/wine-gecko/metadata.xml8
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild28
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild26
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild37
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild37
-rw-r--r--app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild37
-rw-r--r--app-emulation/wine-mono/Manifest25
-rw-r--r--app-emulation/wine-mono/metadata.xml11
-rw-r--r--app-emulation/wine-mono/wine-mono-4.6.4.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.7.0.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.7.1.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.7.3.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.7.5.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.8.0.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.8.1.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.8.3.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.9.0.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.9.2.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.9.3.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-4.9.4.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-5.0.0.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-5.1.0.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-5.1.1.ebuild21
-rw-r--r--app-emulation/wine-mono/wine-mono-7.0.0.ebuild26
-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.ebuild26
-rw-r--r--app-emulation/wine-mono/wine-mono-9.1.0.ebuild26
-rw-r--r--app-emulation/wine-proton/Manifest2
-rw-r--r--app-emulation/wine-proton/files/README.gentoo52
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch17
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch7
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch14
-rw-r--r--app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch40
-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.xml36
-rw-r--r--app-emulation/wine-proton/wine-proton-7.0.6.ebuild369
-rw-r--r--app-emulation/wine-proton/wine-proton-8.0.5c.ebuild386
-rw-r--r--app-emulation/wine-proton/wine-proton-9.0.9999.ebuild420
-rw-r--r--app-emulation/wine-staging/Manifest17
-rw-r--r--app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch7
-rw-r--r--app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch36
-rw-r--r--app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch15
-rw-r--r--app-emulation/wine-staging/metadata.xml59
-rw-r--r--app-emulation/wine-staging/wine-staging-5.17.ebuild621
-rw-r--r--app-emulation/wine-staging/wine-staging-5.18.ebuild621
-rw-r--r--app-emulation/wine-staging/wine-staging-5.19.ebuild621
-rw-r--r--app-emulation/wine-staging/wine-staging-5.20.ebuild621
-rw-r--r--app-emulation/wine-staging/wine-staging-9.0.ebuild479
-rw-r--r--app-emulation/wine-staging/wine-staging-9.5.ebuild482
-rw-r--r--app-emulation/wine-staging/wine-staging-9.6.ebuild477
-rw-r--r--app-emulation/wine-staging/wine-staging-9.7.ebuild477
-rw-r--r--app-emulation/wine-staging/wine-staging-9999.ebuild845
-rw-r--r--app-emulation/wine-vanilla/Manifest16
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch7
-rw-r--r--app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch40
-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/metadata.xml49
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild531
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild538
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild538
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild539
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild539
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild539
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild539
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild382
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild388
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild427
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild430
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild430
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild430
-rw-r--r--app-emulation/wine-vanilla/wine-vanilla-9999.ebuild735
-rw-r--r--app-emulation/winetricks/Manifest5
-rw-r--r--app-emulation/winetricks/metadata.xml6
-rw-r--r--app-emulation/winetricks/winetricks-20191224.ebuild88
-rw-r--r--app-emulation/winetricks/winetricks-20230212.ebuild (renamed from app-emulation/winetricks/winetricks-20190912.ebuild)22
-rw-r--r--app-emulation/winetricks/winetricks-20240105.ebuild (renamed from app-emulation/winetricks/winetricks-20200412.ebuild)17
-rw-r--r--app-emulation/winetricks/winetricks-99999999.ebuild17
-rw-r--r--app-emulation/x48/metadata.xml2
-rw-r--r--app-emulation/x48/x48-0.6.4-r2.ebuild2
-rw-r--r--app-emulation/xcpc/Manifest2
-rw-r--r--app-emulation/xcpc/metadata.xml3
-rw-r--r--app-emulation/xcpc/xcpc-0.37.0-r1.ebuild29
-rw-r--r--app-emulation/xcpc/xcpc-20070122.ebuild15
-rw-r--r--app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch35
-rw-r--r--app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch11
-rw-r--r--app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch4
-rw-r--r--app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch4
-rw-r--r--app-emulation/xe-guest-utilities/metadata.xml6
-rw-r--r--app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120-r1.ebuild (renamed from app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120.ebuild)41
-rw-r--r--app-emulation/xen-pvgrub/Manifest8
-rw-r--r--app-emulation/xen-pvgrub/files/newlib-implicits.patch149
-rw-r--r--app-emulation/xen-pvgrub/files/xen-4.10-externals.patch74
-rw-r--r--app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch13
-rw-r--r--app-emulation/xen-pvgrub/metadata.xml16
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild155
-rw-r--r--app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild155
-rw-r--r--app-emulation/xen-tools/Manifest22
-rw-r--r--app-emulation/xen-tools/files/README.gentoo16
-rw-r--r--app-emulation/xen-tools/files/gentoo-patches.conf84
-rw-r--r--app-emulation/xen-tools/files/xenstored.initd-r12
-rw-r--r--app-emulation/xen-tools/metadata.xml8
-rw-r--r--app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild511
-rw-r--r--app-emulation/xen-tools/xen-tools-4.17.4.ebuild (renamed from app-emulation/xen-tools/xen-tools-4.13.1-r3.ebuild)374
-rw-r--r--app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild (renamed from app-emulation/xen-tools/xen-tools-4.13.1-r4.ebuild)372
-rw-r--r--app-emulation/xen/Manifest9
-rw-r--r--app-emulation/xen/files/xen-4.11-efi.patch36
-rw-r--r--app-emulation/xen/files/xen-4.14-efi.patch38
-rw-r--r--app-emulation/xen/metadata.xml9
-rw-r--r--app-emulation/xen/xen-4.13.1-r4.ebuild165
-rw-r--r--app-emulation/xen/xen-4.13.1-r5.ebuild165
-rw-r--r--app-emulation/xen/xen-4.14.0-r3.ebuild165
-rw-r--r--app-emulation/xen/xen-4.17.4.ebuild179
-rw-r--r--app-emulation/xen/xen-4.17.4_pre2.ebuild179
-rw-r--r--app-emulation/xtrs/files/xtrs-4.9d-implicit.patch35
-rw-r--r--app-emulation/xtrs/metadata.xml2
-rw-r--r--app-emulation/xtrs/xtrs-4.9d-r6.ebuild (renamed from app-emulation/xtrs/xtrs-4.9d-r5.ebuild)17
831 files changed, 40668 insertions, 27987 deletions
diff --git a/app-emulation/86Box/86Box-4.0.1-r1.ebuild b/app-emulation/86Box/86Box-4.0.1-r1.ebuild
new file mode 100644
index 000000000000..9945e8bf8d6e
--- /dev/null
+++ b/app-emulation/86Box/86Box-4.0.1-r1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Emulator of x86-based machines based on PCem"
+HOMEPAGE="https://github.com/86Box/86Box"
+SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="dinput experimental +fluidsynth +munt new-dynarec +openal qt5 +qt6 +threads"
+
+DEPEND="
+ app-emulation/faudio
+ dev-libs/libevdev
+ media-libs/freetype:2=
+ media-libs/libpng:=
+ media-libs/libsdl2
+ media-libs/openal
+ media-libs/rtmidi
+ net-libs/libslirp
+ sys-libs/zlib
+ qt5? ( x11-libs/libXi )
+ qt6? ( x11-libs/libXi )
+"
+
+RDEPEND="
+ ${DEPEND}
+ fluidsynth? ( media-sound/fluidsynth )
+ munt? ( media-libs/munt-mt32emu )
+ openal? ( media-libs/openal )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtopengl:5
+ dev-qt/qttranslations:5
+ dev-qt/qtwidgets:5
+ kde-frameworks/extra-cmake-modules
+ )
+ qt6? (
+ dev-qt/qtbase:6[gui,network,opengl,widgets]
+ dev-qt/qttranslations:6
+ kde-frameworks/extra-cmake-modules
+ )
+"
+
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}/${PN}-4.0.1-incompatible-pointer-types.patch" )
+
+src_configure() {
+ # LTO needs to be filtered
+ # See https://bugs.gentoo.org/854507
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ local mycmakeargs=(
+ -DCPPTHREADS="$(usex threads)"
+ -DDEV_BRANCH="$(usex experimental)"
+ -DDINPUT="$(usex dinput)"
+ -DDYNAREC="ON"
+ -DMUNT_EXTERNAL="$(usex munt)"
+ -DFLUIDSYNTH="$(usex fluidsynth)"
+ -DMINITRACE="OFF"
+ -DMUNT="$(usex munt)"
+ -DNEW_DYNAREC="$(usex new-dynarec)"
+ -DOPENAL="$(usex openal)"
+ -DPREFER_STATIC="OFF"
+ -DRTMIDI="ON"
+ -DQT="$(usex qt5 'ON' $(usex qt6))"
+ -DRELEASE="ON"
+ $(usex qt6 '-DUSE_QT6=ON')
+ )
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ elog "In order to use 86Box, you will need some roms for various emulated systems."
+ elog "See https://github.com/86Box/roms for more information."
+}
diff --git a/app-emulation/86Box/86Box-4.1.1-r1.ebuild b/app-emulation/86Box/86Box-4.1.1-r1.ebuild
new file mode 100644
index 000000000000..1acbe1d341bd
--- /dev/null
+++ b/app-emulation/86Box/86Box-4.1.1-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Emulator of x86-based machines based on PCem"
+HOMEPAGE="https://github.com/86Box/86Box"
+SRC_URI="https://github.com/${PN}/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="experimental +fluidsynth +munt new-dynarec +openal qt5 +qt6 +threads"
+
+DEPEND="
+ app-emulation/faudio
+ dev-libs/libevdev
+ media-libs/freetype:2=
+ media-libs/libpng:=
+ media-libs/libsdl2
+ media-libs/openal
+ media-libs/rtmidi
+ net-libs/libslirp
+ sys-libs/zlib
+ qt5? ( x11-libs/libXi )
+ qt6? ( x11-libs/libXi )
+"
+
+RDEPEND="
+ ${DEPEND}
+ fluidsynth? ( media-sound/fluidsynth )
+ munt? ( media-libs/munt-mt32emu )
+ openal? ( media-libs/openal )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtopengl:5
+ dev-qt/qttranslations:5
+ dev-qt/qtwidgets:5
+ kde-frameworks/extra-cmake-modules
+ )
+ qt6? (
+ dev-qt/qtbase:6[gui,network,opengl,widgets]
+ dev-qt/qttranslations:6
+ kde-frameworks/extra-cmake-modules
+ )
+"
+
+BDEPEND="virtual/pkgconfig"
+
+src_configure() {
+ # LTO needs to be filtered
+ # See https://bugs.gentoo.org/854507
+ filter-lto
+ append-flags -fno-strict-aliasing
+
+ local mycmakeargs=(
+ -DCPPTHREADS="$(usex threads)"
+ -DDEV_BRANCH="$(usex experimental)"
+ -DDYNAREC="ON"
+ -DMUNT_EXTERNAL="$(usex munt)"
+ -DFLUIDSYNTH="$(usex fluidsynth)"
+ -DMINITRACE="OFF"
+ -DMUNT="$(usex munt)"
+ -DNEW_DYNAREC="$(usex new-dynarec)"
+ -DOPENAL="$(usex openal)"
+ -DPREFER_STATIC="OFF"
+ -DRTMIDI="ON"
+ -DQT="$(usex qt5 'ON' $(usex qt6))"
+ -DRELEASE="ON"
+ $(usex qt6 '-DUSE_QT6=ON')
+ )
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ elog "In order to use 86Box, you will need some roms for various emulated systems."
+ elog "See https://github.com/86Box/roms for more information."
+}
diff --git a/app-emulation/86Box/Manifest b/app-emulation/86Box/Manifest
new file mode 100644
index 000000000000..afe37841ea36
--- /dev/null
+++ b/app-emulation/86Box/Manifest
@@ -0,0 +1,2 @@
+DIST 86Box-4.0.1.tar.gz 5206128 BLAKE2B 56a4d374757eb67368bbc5782bceca3f4dec79dd36fad6698065a86c3937238b352425dd856169a1a65a42a4f60f1a68b099ece4a7c019be4229d61fabfc444a SHA512 b06a8c50558276f35f98795e0513b5bd39eed3a0d3a8d61bf79b373501cd823ab3ab12fb943e879a240292bca39c507a1a42b1b6f3f9ae596499b685a03acf98
+DIST 86Box-4.1.1.tar.gz 5383817 BLAKE2B 04a03f039e3112e9dc02d25073afdf53d45603a71e27f8377309667917f30ef9f213cf0a7a6d8c2f4c2f1dd0fd73adfac3bbd8f0f9fc4b47fb2e9cbedffb4b6c SHA512 d1b0a1810f8712464ce8266942e9bfdc9721ab4ac70bbb242b3b06d6a7d6613b7bcb0ba730a2e458b2731c8d58e38c4b245b6f4afb5ee6c11ab4a2fb0dfd6d5e
diff --git a/app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch b/app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch
new file mode 100644
index 000000000000..df708d337b65
--- /dev/null
+++ b/app-emulation/86Box/files/86Box-4.0.1-incompatible-pointer-types.patch
@@ -0,0 +1,23 @@
+From 13d582b56faf9caca114ec5625b34a7859ecb41f Mon Sep 17 00:00:00 2001
+From: OBattler <oubattler@gmail.com>
+Date: Fri, 5 Jan 2024 13:01:17 +0100
+Subject: [PATCH] Unix: Use proper parentheses to cast the result, not the
+ flags, fixes #3994.
+
+---
+ src/unix/unix.c | 4 +---
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unix/unix.c b/src/unix/unix.c
+index e784df38e6..cfa8243135 100644
+--- a/src/unix/unix.c
++++ b/src/unix/unix.c
+@@ -635,7 +635,7 @@
+ SDL_MessageBoxData msgdata;
+ SDL_MessageBoxButtonData msgbtn;
+ if (!header)
+- header = (void *) (flags & MBX_ANSI) ? "86Box" : L"86Box";
++ header = (void *) ((flags & MBX_ANSI) ? "86Box" : L"86Box");
+ if (header <= (void *) 7168)
+ header = (void *) plat_get_string((int) header);
+ if (message <= (void *) 7168)
diff --git a/app-emulation/86Box/metadata.xml b/app-emulation/86Box/metadata.xml
new file mode 100644
index 000000000000..a06647c003b6
--- /dev/null
+++ b/app-emulation/86Box/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>conikost@gentoo.org</email>
+ <name>Conrad Kostecki</name>
+ </maintainer>
+ <longdescription>
+ 86Box is a low level x86 emulator that runs older operating systems and software
+ designed for IBM PC systems and compatibles from 1981 through
+ fairly recent system designs based on the PCI bus.
+ </longdescription>
+ <use>
+ <flag name="dinput">Enable legacy Dinput mode instead of Xinput for older controllers.</flag>
+ <flag name="experimental">Enable hardware from devbranch, which may be unstable or unusable.</flag>
+ <flag name="fluidsynth">Enable MIDI support through <pkg>media-sound/fluidsynth</pkg>.</flag>
+ <flag name="munt">Enable MIDI MT-32 support through <pkg>media-libs/munt-mt32emu</pkg>.</flag>
+ <flag name="new-dynarec">Enable new dynamic recompiler from PCem 15, which should provide an even better emulation speed.</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/86Box/86Box/issues</bugs-to>
+ <remote-id type="github">86Box/86Box</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/aqemu/Manifest b/app-emulation/aqemu/Manifest
deleted file mode 100644
index 966ea6c08330..000000000000
--- a/app-emulation/aqemu/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST aqemu-0.9.2.tar.gz 1373465 BLAKE2B 8b2b3ed311f8dd723a0d06ab74659514c6ccda67643c747af832f1677ab86ffcecde3607ead0b3410a310c38a2fe360a5ff187ef86b5953e4f5a5054a862c26c SHA512 9d4808172ee1be82509956560e4d3f9ee349fedd920342146083cc9bc79ef51fc95937c64f20ffb13e2849c577f95f59b5b65271d6e29e2d2e1ec2d1562006ba
diff --git a/app-emulation/aqemu/aqemu-0.9.2.ebuild b/app-emulation/aqemu/aqemu-0.9.2.ebuild
deleted file mode 100644
index 85102613981e..000000000000
--- a/app-emulation/aqemu/aqemu-0.9.2.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit cmake-utils
-
-DESCRIPTION="Graphical interface for QEMU and KVM emulators, using Qt5"
-HOMEPAGE="https://sourceforge.net/projects/aqemu"
-SRC_URI="https://github.com/tobimensch/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="vnc"
-
-RDEPEND="app-emulation/qemu
- dev-qt/qtcore:5
- dev-qt/qtnetwork:5
- dev-qt/qtprintsupport:5
- dev-qt/qttest:5
- dev-qt/qtwidgets:5
- vnc? ( net-libs/libvncserver )"
-DEPEND="${RDEPEND}"
-
-DOCS=( AUTHORS CHANGELOG README TODO )
-PATCHES=( "${FILESDIR}/${PN}-0.9.2-qtbindir.patch" )
-
-src_configure() {
- local mycmakeargs=(
- "-DMAN_PAGE_COMPRESSOR="
- "-DWITHOUT_EMBEDDED_DISPLAY=$(usex vnc "OFF" "ON")"
- )
-
- cmake-utils_src_configure
-}
diff --git a/app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch b/app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch
deleted file mode 100644
index 5c5548058427..000000000000
--- a/app-emulation/aqemu/files/aqemu-0.9.2-qtbindir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Ensure the Qt 5 version of rcc is used instead of whatever is in $PATH.
-
-Gentoo-bug: 589332
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -285,7 +285,7 @@
-
- SET( _out ${CMAKE_CURRENT_SOURCE_DIR}/${_basename}.rcc )
-
-- ADD_CUSTOM_COMMAND( OUTPUT ${_out} COMMAND rcc ARGS ${_in} -binary -o ${_out} DEPENDS ${_in} )
-+ ADD_CUSTOM_COMMAND( OUTPUT ${_out} COMMAND ${Qt5Core_RCC_EXECUTABLE} ARGS ${_in} -binary -o ${_out} DEPENDS ${_in} )
-
- SET( ${_sources} ${${_sources}} ${_out} )
- ENDFOREACH( curFile )
diff --git a/app-emulation/aqemu/metadata.xml b/app-emulation/aqemu/metadata.xml
deleted file mode 100644
index 4afc1191c4bb..000000000000
--- a/app-emulation/aqemu/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>maksbotan@gentoo.org</email>
- </maintainer>
- <upstream>
- <remote-id type="sourceforge">aqemu</remote-id>
- <remote-id type="github">tobimensch/aqemu</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/aranym/aranym-1.1.0.ebuild b/app-emulation/aranym/aranym-1.1.0-r1.ebuild
index fe2c0f728ab6..f471b146140f 100644
--- a/app-emulation/aranym/aranym-1.1.0.ebuild
+++ b/app-emulation/aranym/aranym-1.1.0-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit autotools multibuild xdg
+inherit autotools flag-o-matic multibuild toolchain-funcs xdg
DESCRIPTION="Atari Running on Any Machine, VM running Atari ST/TT/Falcon OS and TOS/GEM apps"
HOMEPAGE="https://aranym.github.io"
@@ -20,10 +20,10 @@ REQUIRED_USE="|| ( jit pmmu standard ) lilo? ( pmmu )"
RDEPEND="
dev-libs/gmp:0=
media-libs/libsdl2[video]
- clipboard? ( !kernel_Winnt? (
+ clipboard? (
media-libs/libsdl2[X]
x11-libs/libX11
- ) )
+ )
jpeg? ( virtual/jpeg )
kernel_linux? ( virtual/libudev )
lilo? ( sys-libs/zlib )
@@ -38,6 +38,11 @@ BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/${PN}-1.1.0-conditional-installs.patch
+ "${FILESDIR}"/${PN}-1.1.0-libcwrap.patch
+ "${FILESDIR}"/${PN}-1.1.0-ar.patch
+ "${FILESDIR}"/${PN}-1.1.0-clang-16-register.patch
+ "${FILESDIR}"/${PN}-1.1.0-configure-clang16.patch
+ "${FILESDIR}"/${PN}-1.1.0-configure-bashisms.patch
)
ECONF_SOURCE="${S}"
@@ -49,6 +54,16 @@ src_prepare() {
}
src_configure() {
+ # configure probe fatally errors out since it tries to peek at LTO'ed code using grep
+ # https://bugs.gentoo.org/854510
+ # https://github.com/aranym/aranym/commit/52c56bba30ddea27a0a7179da89cac1c71228de6
+ #
+ # Fixed in git master. Try removing this on the next version bump.
+ filter-lto
+
+ tc-export_build_env
+ export CC_FOR_BUILD=$(tc-getBUILD_CC) CXX_FOR_BUILD=$(tc-getBUILD_CXX)
+
# standard must come last otherwise the aranym executable gets
# overwritten by the others.
MULTIBUILD_VARIANTS=(
diff --git a/app-emulation/aranym/files/aranym-1.1.0-ar.patch b/app-emulation/aranym/files/aranym-1.1.0-ar.patch
new file mode 100644
index 000000000000..55026a626334
--- /dev/null
+++ b/app-emulation/aranym/files/aranym-1.1.0-ar.patch
@@ -0,0 +1,24 @@
+From 9d8586fe8b0f210b2a2d3f5e6f710993015945aa Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 16 Apr 2022 21:51:04 +0100
+Subject: [PATCH] Respect the AR environment variable when building
+
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 14eedb5f..8d425dee 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -371,6 +371,7 @@ AC_PROG_MAKE_SET
+ AC_PROG_INSTALL
+ AC_PROG_MKDIR_P
+ AC_PROG_RANLIB
++AM_PROG_AR
+ AC_PATH_PROG(PERL, perl)
+ AC_CHECK_TOOLS(WINDRES, [windres], :)
+ PKG_PROG_PKG_CONFIG
+--
+2.34.1
+
diff --git a/app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch b/app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch
new file mode 100644
index 000000000000..2adc5fb3c1fe
--- /dev/null
+++ b/app-emulation/aranym/files/aranym-1.1.0-clang-16-register.patch
@@ -0,0 +1,219 @@
+https://bugs.gentoo.org/894446
+https://github.com/aranym/aranym/commit/e19e21151d5e394dd45d4db08e68245e86e32ab7
+https://github.com/aranym/aranym/commit/64414e43deebc665772481d802b6c1c88d752ac3
+
+From e19e21151d5e394dd45d4db08e68245e86e32ab7 Mon Sep 17 00:00:00 2001
+From: Thorsten Otto <admin@tho-otto.de>
+Date: Tue, 2 Aug 2022 18:12:19 +0200
+Subject: [PATCH] Remove obsolete register keywords
+
+--- a/src/blitter.cpp
++++ b/src/blitter.cpp
+@@ -114,8 +114,8 @@ void BLITTER::SM_UW(memptr addr, UW value) {
+ #define HOP_OPS(_fn_name,_op,_do_source_shift,_get_source_data,_shifted_hopd_data, _do_halftone_inc) \
+ static void _fn_name ( BLITTER& b ) \
+ { \
+- register unsigned int skew = (unsigned int) b.skewreg & 15; \
+- register unsigned int source_buffer=0; \
++ unsigned int skew = b.skewreg & 15; \
++ unsigned int source_buffer=0; \
+ if (b.hop & 1) { \
+ if (b.line_num & 0x20) \
+ b.halftone_curroffset = b.skewreg & 15; \
+@@ -127,7 +127,7 @@ static void _fn_name ( BLITTER& b ) \
+ b.halftone_direction = -1; \
+ } \
+ do \
+- { register UW x,dst_data,opd_data; \
++ { UW x,dst_data,opd_data; \
+ if (b.FXSR) \
+ { _do_source_shift; \
+ _get_source_data; \
+--- a/src/md5.cpp
++++ b/src/md5.cpp
+@@ -168,7 +168,7 @@ MD5::MD5Final(md5byte digest[16])
+ void
+ MD5::MD5Transform(UWORD32 buf[4], UWORD32 const in[16])
+ {
+- register UWORD32 a, b, c, d;
++ UWORD32 a, b, c, d;
+
+ a = buf[0];
+ b = buf[1];
+
+From 64414e43deebc665772481d802b6c1c88d752ac3 Mon Sep 17 00:00:00 2001
+From: Thorsten Otto <admin@tho-otto.de>
+Date: Tue, 9 Aug 2022 09:17:31 +0200
+Subject: [PATCH] Remove more obsolete register keywords
+
+--- a/src/disasm/disasm-builtin.cpp
++++ b/src/disasm/disasm-builtin.cpp
+@@ -277,7 +277,7 @@ static const char *const bitfieldtable[] =
+
+ static void ps(m68k_disasm_info *info, const char *str)
+ {
+- register char c;
++ char c;
+
+ while ((c = *str++) != '\0')
+ {
+@@ -486,7 +486,7 @@ static void oadi(m68k_disasm_info *info, int regnum)
+
+ static int os(m68k_disasm_info *info, int opcode)
+ {
+- register int size;
++ int size;
+
+ size = insize(opcode);
+ sputc('.');
+@@ -501,7 +501,7 @@ static int os(m68k_disasm_info *info, int opcode)
+
+ static int os2(m68k_disasm_info *info, int opcode)
+ {
+- register int size;
++ int size;
+
+ size = (opcode >> 9) & 3;
+ sputc('.');
+@@ -968,10 +968,10 @@ static void doextended(m68k_disasm_info *info, int opcode2, int srcr)
+
+ static void doea(m68k_disasm_info *info, int opcode, int size)
+ {
+- register int srcr;
+- register int opcode2;
++ int srcr;
++ int opcode2;
+ uae_s32 offset;
+- register uae_s32 adr;
++ uae_s32 adr;
+
+ srcr = srcreg(opcode);
+ switch (srcmod(opcode))
+@@ -1071,7 +1071,7 @@ static void doea(m68k_disasm_info *info, int opcode, int size)
+
+ static void reglist(m68k_disasm_info *info, int regmask)
+ {
+- register int regnum;
++ int regnum;
+ int liststart;
+ int lastreg;
+ int status;
+@@ -1113,8 +1113,8 @@ static void reglist(m68k_disasm_info *info, int regmask)
+
+ static int revbits(int mask, int n)
+ {
+- register int i;
+- register int newmask;
++ int i;
++ int newmask;
+
+ for (newmask = 0, i = n; i > 0; i--)
+ {
+@@ -1390,7 +1390,7 @@ static void group0(m68k_disasm_info *info, int opcode)
+
+ static void group11(m68k_disasm_info *info, int opcode)
+ {
+- register int size;
++ int size;
+
+ if ((opcode & 0x0100) != 0 && insize(opcode) != 3)
+ {
+@@ -1441,7 +1441,7 @@ static void group11(m68k_disasm_info *info, int opcode)
+
+ static void group1(m68k_disasm_info *info, int opcode)
+ {
+- register int size = 0;
++ int size = 0;
+
+ ps(info, "move");
+ if (dstmod(opcode) == 1)
+@@ -1475,7 +1475,7 @@ static void group1(m68k_disasm_info *info, int opcode)
+
+ static void group14(m68k_disasm_info *info, int opcode)
+ {
+- register short size;
++ short size;
+ unsigned int opcode2;
+ unsigned int bf;
+
+@@ -2069,7 +2069,7 @@ static enum fpu_size print_fpsize(m68k_disasm_info *info, int mask)
+ static void print_freglist(m68k_disasm_info *info, int regmask, int mode, bool cntl)
+ {
+ const char *const * regs;
+- register int regnum;
++ int regnum;
+ int liststart;
+ int lastreg;
+ int status;
+@@ -3011,8 +3011,8 @@ static void pspreg(m68k_disasm_info *info, int mask)
+
+ static void group4(m68k_disasm_info *info, int opcode)
+ {
+- register int mask;
+- register int size;
++ int mask;
++ int size;
+
+ if (opcode & 0x0100)
+ {
+@@ -3540,7 +3540,7 @@ static void group4(m68k_disasm_info *info, int opcode)
+
+ static void group5(m68k_disasm_info *info, int opcode)
+ {
+- register uae_s32 adr;
++ uae_s32 adr;
+
+ if (insize(opcode) == 3)
+ {
+@@ -3603,9 +3603,9 @@ static void group5(m68k_disasm_info *info, int opcode)
+
+ static void group6(m68k_disasm_info *info, int opcode)
+ {
+- register uae_s32 adr;
+- register int cond;
+- register signed char dist;
++ uae_s32 adr;
++ int cond;
++ signed char dist;
+
+ /* 0110 cccc dddddddd */
+ switch (cond = (opcode >> 8) & 0x000f)
+@@ -3686,7 +3686,7 @@ static void group7(m68k_disasm_info *info, int opcode)
+
+ static void g812(m68k_disasm_info *info, int opcode, const char *andor, const char *muldiv, const char *as)
+ {
+- register int size;
++ int size;
+
+ info->num_oper = 2;
+ if (dstmod(opcode) == 3)
+@@ -3772,7 +3772,7 @@ static void group8(m68k_disasm_info *info, int opcode)
+
+ static void group12(m68k_disasm_info *info, int opcode)
+ {
+- register int d5;
++ int d5;
+
+ if ((d5 = (opcode >> 3) & 0x003f) == 0x0028)
+ {
+@@ -3813,7 +3813,7 @@ static void group12(m68k_disasm_info *info, int opcode)
+
+ static void g913(m68k_disasm_info *info, int opcode, const char *addsub)
+ {
+- register int size;
++ int size;
+
+ ps(info, addsub);
+ if ((opcode & 0x0100) != 0 && insize(opcode) != 3 && ((opcode >> 4) & 3) == 0)
+@@ -4125,8 +4125,8 @@ static void (*const grphdlrs[])(m68k_disasm_info *, int) = {
+
+ int m68k_disasm_builtin(m68k_disasm_info *info)
+ {
+- register int opcode;
+- register void (*hdlr)(m68k_disasm_info *info, int opcode);
++ int opcode;
++ void (*hdlr)(m68k_disasm_info *info, int opcode);
+ unsigned int insn_size;
+ struct priv_data *priv;
+
+
diff --git a/app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch b/app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch
new file mode 100644
index 000000000000..f2a453095a52
--- /dev/null
+++ b/app-emulation/aranym/files/aranym-1.1.0-configure-bashisms.patch
@@ -0,0 +1,37 @@
+https://github.com/aranym/aranym/pull/102
+
+From 1a45b77ee2eaabc53fef0794c0e3a64a7c41683e Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 19 Mar 2023 02:05:09 +0000
+Subject: [PATCH] configure.ac: fix bashisms
+
+configure scripts need to be runnable with a POSIX-compliant /bin/sh.
+
+On many (but not all!) systems, /bin/sh is provided by Bash, so errors
+like this aren't spotted. Notably Debian defaults to /bin/sh provided
+by dash which doesn't tolerate such bashisms as '=='.
+
+This retains compatibility with bash.
+--- a/configure.ac
++++ b/configure.ac
+@@ -1714,7 +1714,7 @@ SDL_CFLAGS=
+ SDL_LIBS=
+ no_sdl=yes
+ no_sdl2=yes
+-if test "$OS_TYPE" == darwin -a "$WITH_FINK" = no; then
++if test "$OS_TYPE" = darwin -a "$WITH_FINK" = no; then
+ ARANYM_CHECK_FRAMEWORK(SDL, [])
+ if test "$have_framework_SDL" = yes ; then
+ ARANYM_CHECK_FRAMEWORK_LOCATION(SDL)
+@@ -1781,7 +1781,7 @@ SDL_LIBS="$SDL_LIBS -lpthread"
+ AM_CONDITIONAL([ENABLE_SDL2], test "$enable_sdl2" = yes)
+ #
+ # SDL2 on macOS needs 10.6 or above
+-if test "$enable_sdl2" = yes -a "$OS_TYPE" == darwin; then
++if test "$enable_sdl2" = yes -a "$OS_TYPE" = darwin; then
+ export MACOSX_DEPLOYMENT_TARGET=10.6
+ fi
+
+--
+2.40.0
+
diff --git a/app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch b/app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch
new file mode 100644
index 000000000000..66d2c091b860
--- /dev/null
+++ b/app-emulation/aranym/files/aranym-1.1.0-configure-clang16.patch
@@ -0,0 +1,30 @@
+https://github.com/aranym/aranym/pull/102
+
+From ef9ba74fcbf868aeb1b0e0b02e53775a14cda0f7 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 19 Mar 2023 01:56:56 +0000
+Subject: [PATCH] configure.ac: fix -Wimplicit-function-declaration in TUN/TAP
+ test
+
+Clang 16 makes -Wimplicit-function-declaration an error by default.
+
+Unfortunately, this can lead to misconfiguration or miscompilation of software as configure
+tests may then return the wrong result.
+
+For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
+or the (new) c-std-porting mailing list [3].
+
+[0] https://lwn.net/Articles/913505/
+[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
+[2] https://wiki.gentoo.org/wiki/Modern_C_porting
+[3] hosted at lists.linux.dev.
+--- a/configure.ac
++++ b/configure.ac
+@@ -539,6 +539,7 @@ AC_CACHE_CHECK([whether TUN/TAP is supported],
+ #include <net/if.h>
+ #include <net/if_tun.h>
+ #endif
++ #include <string.h>
+ ], [
+ struct ifreq ifr;
+ memset(&ifr, 0, sizeof(ifr));
diff --git a/app-emulation/aranym/files/aranym-1.1.0-libcwrap.patch b/app-emulation/aranym/files/aranym-1.1.0-libcwrap.patch
new file mode 100644
index 000000000000..39ef32c7cc41
--- /dev/null
+++ b/app-emulation/aranym/files/aranym-1.1.0-libcwrap.patch
@@ -0,0 +1,24 @@
+From baa00c51d3cd63602912ee1b252fa774a43b042f Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 16 Apr 2022 10:41:44 +0100
+Subject: [PATCH] Use libcwrap.h specifically with glibc, not just Linux, to
+ fix musl
+
+---
+ src/include/linux/libcwrap.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/include/linux/libcwrap.h b/src/include/linux/libcwrap.h
+index f68bafb1..9c5c6b8e 100644
+--- a/src/include/linux/libcwrap.h
++++ b/src/include/linux/libcwrap.h
+@@ -1,5 +1,5 @@
+ /* glibc bindings for target ABI version glibc 2.11 */
+-#if defined(__linux__) && !defined (__LIBC_CUSTOM_BINDINGS_H__) && !defined(__ANDROID__)
++#if defined(__GLIBC__) && defined(__linux__) && !defined (__LIBC_CUSTOM_BINDINGS_H__) && !defined(__ANDROID__)
+
+ #if defined (__cplusplus)
+ extern "C" {
+--
+2.34.1
+
diff --git a/app-emulation/aranym/metadata.xml b/app-emulation/aranym/metadata.xml
index a9d26d2bbfb7..34e1093dcb4b 100644
--- a/app-emulation/aranym/metadata.xml
+++ b/app-emulation/aranym/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>chewi@gentoo.org</email>
diff --git a/app-emulation/bochs/Manifest b/app-emulation/bochs/Manifest
index f01ca66acfe9..37499a1033c0 100644
--- a/app-emulation/bochs/Manifest
+++ b/app-emulation/bochs/Manifest
@@ -1,2 +1,2 @@
DIST bochs-2.6.10.tar.gz 5282176 BLAKE2B 9f75d5afd6bad9f91eb18dc0bd5c9ed998bf12077d3e8d944769055f0def1eed019756346071d3809d492c54177ec798e739259ee13f67ff4760744377dc877c SHA512 eff422cadc3e0db7a47c4015a59ca0fa8caf88ed3026706c1f766e802449ec8e4798e5f147a583e1cfbbc578f71da8800542c0e1f4d04bc2dea77955855e8689
-DIST bochs-2.6.9.tar.gz 5169187 BLAKE2B 49824a96a48294d8d507bc15128103e9c2839515554657d282c7c9533aa299cb6289581e760ea40a6c659adfb7ebdac0d273d2a9e7b598c95b145d65e8cdc977 SHA512 dfecf3a1bad07f06c2f7bb989d146e4a8eaeca493b598d415f5a4aec2a85eb5524ba417422157608c8b0828832611df487c6923c8f4ad98a147ac089fc514c46
+DIST bochs-2.7.tar.gz 5298413 BLAKE2B 570ac0fec74b8e79a8e78d32a1a8655b8e3a202a3247407a45b66991598486bd6c566711a1f8e18e717d4f2119b82ae03bf4a792eebdd25a6e7ca4dedb3901ab SHA512 d43bd557316dc370ba1c317f5c3292f724460515db01316614b2d585b2760120cadd1d27a286083ac3e6f57466ed889959abd7fe960c219c149dab9a053c6967
diff --git a/app-emulation/bochs/bochs-2.6.10.ebuild b/app-emulation/bochs/bochs-2.6.10.ebuild
index c4f9fde9ba89..65f52e4ec67a 100644
--- a/app-emulation/bochs/bochs-2.6.10.ebuild
+++ b/app-emulation/bochs/bochs-2.6.10.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -33,7 +33,6 @@ DEPEND="${RDEPEND}
"
BDEPEND="
doc? ( app-text/docbook-sgml-utils )
- sys-apps/sed
>=app-text/opensp-1.5
"
diff --git a/app-emulation/bochs/bochs-2.6.9.ebuild b/app-emulation/bochs/bochs-2.7.ebuild
index 80e103e7f589..0191aeeca226 100644
--- a/app-emulation/bochs/bochs-2.6.9.ebuild
+++ b/app-emulation/bochs/bochs-2.7.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
DESCRIPTION="LGPL-ed pc emulator"
HOMEPAGE="http://bochs.sourceforge.net/"
@@ -11,7 +11,7 @@ LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
-IUSE="3dnow avx debugger doc gdb ncurses readline svga sdl +smp vnc X +x86-64"
+IUSE="3dnow avx debugger doc gdb ncurses readline sdl +smp vnc X +x86-64"
REQUIRED_USE="
avx? ( x86-64 )
gdb? ( !debugger !smp )
@@ -19,24 +19,27 @@ REQUIRED_USE="
"
RDEPEND="
- X? ( x11-libs/libICE
+ ncurses? ( sys-libs/ncurses:= )
+ readline? ( sys-libs/readline:= )
+ sdl? ( media-libs/libsdl )
+ X? (
+ x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
- x11-libs/libXpm )
- sdl? ( media-libs/libsdl )
- svga? ( media-libs/svgalib )
- readline? ( sys-libs/readline:= )
- ncurses? ( sys-libs/ncurses:= )
+ x11-libs/libXpm
+ )
"
DEPEND="${RDEPEND}
- doc? ( app-text/docbook-sgml-utils )
X? ( x11-base/xorg-proto )
- sys-apps/sed
+"
+BDEPEND="
>=app-text/opensp-1.5
+ doc? ( app-text/docbook-sgml-utils )
"
src_prepare() {
default
+
sed -i "s:^docdir.*:docdir = ${EPREFIX}/usr/share/doc/${PF}:" \
Makefile.in || die
}
@@ -48,7 +51,6 @@ src_configure() {
--enable-cdrom \
--enable-clgd54xx \
--enable-cpu-level=6 \
- --enable-disasm \
--enable-e1000 \
--enable-gameport \
--enable-iodebug \
@@ -75,9 +77,7 @@ src_configure() {
$(use_enable x86-64) \
$(use_with ncurses term) \
$(use_with sdl) \
- $(use_with svga) \
$(use_with vnc rfb) \
$(use_with X x) \
- $(use_with X x11) \
- ${myconf}
+ $(use_with X x11)
}
diff --git a/app-emulation/bochs/bochs-9999.ebuild b/app-emulation/bochs/bochs-9999.ebuild
index fa7208ddc58f..2ddaf54249b1 100644
--- a/app-emulation/bochs/bochs-9999.ebuild
+++ b/app-emulation/bochs/bochs-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -12,9 +12,8 @@ ESVN_REPO_URI="svn://svn.code.sf.net/p/bochs/code/trunk/bochs"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS=""
-IUSE="3dnow avx debugger doc gdb ncurses readline svga sdl +smp vnc X +x86-64"
+IUSE="3dnow avx debugger doc gdb ncurses readline sdl +smp vnc X +x86-64"
REQUIRED_USE="
avx? ( x86-64 )
gdb? ( !debugger !smp )
@@ -22,26 +21,27 @@ REQUIRED_USE="
"
RDEPEND="
- X? ( x11-libs/libICE
+ ncurses? ( sys-libs/ncurses:= )
+ readline? ( sys-libs/readline:= )
+ sdl? ( media-libs/libsdl )
+ X? (
+ x11-libs/libICE
x11-libs/libSM
x11-libs/libX11
- x11-libs/libXpm )
- sdl? ( media-libs/libsdl )
- svga? ( media-libs/svgalib )
- readline? ( sys-libs/readline:= )
- ncurses? ( sys-libs/ncurses:= )
+ x11-libs/libXpm
+ )
"
DEPEND="${RDEPEND}
X? ( x11-base/xorg-proto )
"
BDEPEND="
- doc? ( app-text/docbook-sgml-utils )
- sys-apps/sed
>=app-text/opensp-1.5
+ doc? ( app-text/docbook-sgml-utils )
"
src_prepare() {
default
+
sed -i "s:^docdir.*:docdir = ${EPREFIX}/usr/share/doc/${PF}:" \
Makefile.in || die
}
@@ -53,7 +53,6 @@ src_configure() {
--enable-cdrom \
--enable-clgd54xx \
--enable-cpu-level=6 \
- --enable-disasm \
--enable-e1000 \
--enable-gameport \
--enable-iodebug \
@@ -80,9 +79,7 @@ src_configure() {
$(use_enable x86-64) \
$(use_with ncurses term) \
$(use_with sdl) \
- $(use_with svga) \
$(use_with vnc rfb) \
$(use_with X x) \
- $(use_with X x11) \
- ${myconf}
+ $(use_with X x11)
}
diff --git a/app-emulation/bochs/metadata.xml b/app-emulation/bochs/metadata.xml
index 4e953a303483..41f8336a25e7 100644
--- a/app-emulation/bochs/metadata.xml
+++ b/app-emulation/bochs/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>lu_zero@gentoo.org</email>
diff --git a/app-emulation/buildah/Manifest b/app-emulation/buildah/Manifest
deleted file mode 100644
index 37a7c8f236f6..000000000000
--- a/app-emulation/buildah/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST buildah-1.14.11.tar.gz 10660686 BLAKE2B ae24982b2da66b536a0bbba21d07da8c54af7726e065545c2ab6167395ec45f7298c25811ab0e2aec5ffccd084557107313baa36f873327d7b520a61dd8081af SHA512 6522ef39cdf6166ddb6eca6e43025953d025b92a677055ec026f4e163b0bb4b3334e20369e5850593189822c74fe82e39807ea387ad22ee64b3557bbaf8e30ce
-DIST buildah-1.15.1.tar.gz 10344892 BLAKE2B e84f8d245536f8864f057f576d92c218420ac975fabfbdc8b6bf591c2ef43494d49fe9095320a07de450f2ea64d046aa4ad680f08be80210e0dce1ffa874a286 SHA512 61cbe91867dc664a9e76b367e0f99bf5c797c68dda7182ed43c6a6a5a72a0f0519e45db6b2746b26933d829834757cc93bdbd30c62ce6a947ee546dbc1f930be
-DIST buildah-1.16.1.tar.gz 10525480 BLAKE2B d7a174049b9a99d11fa31a1b52fa6acfe037197171c7112607d755c788509b0798af315d1fde5c229bd6e029fdd3e57ae93042044f373d4ff63fcb121264730d SHA512 c17358d71e9102ef5da530df54648eaa13a1384b06cd43fe74094cdbaa2dfda6aa6d1a218fb88e12898ae4b9dca2d8c555643326779c5f09b6a118f0a440d17a
diff --git a/app-emulation/buildah/buildah-1.14.11.ebuild b/app-emulation/buildah/buildah-1.14.11.ebuild
deleted file mode 100644
index 717adf3f3541..000000000000
--- a/app-emulation/buildah/buildah-1.14.11.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit bash-completion-r1 go-module
-
-KEYWORDS="~amd64"
-DESCRIPTION="A tool that facilitates building OCI images"
-HOMEPAGE="https://github.com/containers/buildah"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-IUSE="selinux"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT=7a921ff79b
-SRC_URI="https://github.com/containers/buildah/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-RDEPEND="app-crypt/gpgme:=
- app-emulation/skopeo
- dev-libs/libgpg-error:=
- dev-libs/libassuan:=
- sys-fs/lvm2:=
- sys-libs/libseccomp:=
- selinux? ( sys-libs/libselinux:= )"
-DEPEND="${RDEPEND}"
-RESTRICT+=" test"
-
-src_prepare() {
- default
- [[ -f selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- selinux_tag.sh || die; }
-}
-
-src_compile() {
- emake GIT_COMMIT=${GIT_COMMIT} all
-}
-
-src_install() {
- dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md
- doman docs/*.1
- dodoc -r docs/tutorials
- dobin ${PN} imgtype
- dobashcomp contrib/completions/bash/buildah
-}
-
-src_test() {
- emake test-unit
-}
diff --git a/app-emulation/buildah/buildah-1.15.1.ebuild b/app-emulation/buildah/buildah-1.15.1.ebuild
deleted file mode 100644
index ef3db50fcacf..000000000000
--- a/app-emulation/buildah/buildah-1.15.1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit bash-completion-r1 go-module
-
-KEYWORDS="~amd64 ~arm64"
-DESCRIPTION="A tool that facilitates building OCI images"
-HOMEPAGE="https://github.com/containers/buildah"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-IUSE="selinux"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT=c967e88ef6
-SRC_URI="https://github.com/containers/buildah/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-RDEPEND="app-crypt/gpgme:=
- app-emulation/skopeo
- dev-libs/libgpg-error:=
- dev-libs/libassuan:=
- sys-fs/lvm2:=
- sys-libs/libseccomp:=
- selinux? ( sys-libs/libselinux:= )"
-DEPEND="${RDEPEND}"
-RESTRICT+=" test"
-
-src_prepare() {
- default
- [[ -f selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- selinux_tag.sh || die; }
-}
-
-src_compile() {
- emake GIT_COMMIT=${GIT_COMMIT} all
-}
-
-src_install() {
- dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md
- doman docs/*.1
- dodoc -r docs/tutorials
- dobin ${PN} imgtype
- dobashcomp contrib/completions/bash/buildah
-}
-
-src_test() {
- emake test-unit
-}
diff --git a/app-emulation/buildah/buildah-1.16.1.ebuild b/app-emulation/buildah/buildah-1.16.1.ebuild
deleted file mode 100644
index 1389caa53b6a..000000000000
--- a/app-emulation/buildah/buildah-1.16.1.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit bash-completion-r1 go-module
-
-KEYWORDS="~amd64 ~arm64"
-DESCRIPTION="A tool that facilitates building OCI images"
-HOMEPAGE="https://github.com/containers/buildah"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-IUSE="selinux"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT=0de2694a2e
-SRC_URI="https://github.com/containers/buildah/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-RDEPEND="app-crypt/gpgme:=
- app-emulation/skopeo
- dev-libs/libgpg-error:=
- dev-libs/libassuan:=
- sys-fs/lvm2:=
- sys-libs/libseccomp:=
- selinux? ( sys-libs/libselinux:= )"
-DEPEND="${RDEPEND}"
-RESTRICT+=" test"
-
-src_prepare() {
- default
- [[ -f selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- selinux_tag.sh || die; }
-}
-
-src_compile() {
- emake GIT_COMMIT=${GIT_COMMIT} all
-}
-
-src_install() {
- dodoc CHANGELOG.md CONTRIBUTING.md README.md install.md troubleshooting.md
- doman docs/*.1
- dodoc -r docs/tutorials
- dobin bin/{${PN},imgtype}
- dobashcomp contrib/completions/bash/buildah
-}
-
-src_test() {
- emake test-unit
-}
diff --git a/app-emulation/buildah/metadata.xml b/app-emulation/buildah/metadata.xml
deleted file mode 100644
index 491730ac55c1..000000000000
--- a/app-emulation/buildah/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <upstream>
- <remote-id type="github">containers/buildah</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/cadvisor/Manifest b/app-emulation/cadvisor/Manifest
deleted file mode 100644
index c86bf301824f..000000000000
--- a/app-emulation/cadvisor/Manifest
+++ /dev/null
@@ -1,410 +0,0 @@
-DIST bazil.org%2Ffuse%2F@v%2Fv0.0.0-20160811212531-371fbbdaa898.mod 22 BLAKE2B c2b56c0b043a2c0225c3b4142f179a2d2e4938dad64b95c8662a6d641e69a455b50ed79c66a3bcc10982792d3b7742ac96a2d74eefa7fec40a7c3146e5c949cd SHA512 7b3ef87f98485bb9ec325680f57d43a9bd76e90bdcfb1e798458f28f7d3addf91dbb6a07b654749468860981413ad2267df2d5f3535c85579e9f79d9328d355c
-DIST cadvisor-0.36.0.tar.gz 6182273 BLAKE2B 0406bd88c6595f23de06be1e63e7c0affda7f94a3bbbb1b9e390f2747fdd3ef3199622a5003b79ed083a0cd80e6c013d7776e18269044150dafb98341c54425b SHA512 2da8a2e81d33b97e6f7c5ba3982e51b6d87748b138345ff94eb7671df851f0a535ceeef61358b0ee43bc161a88becdb153065bd7ff8fc9d7c390a4629ad10f02
-DIST cloud.google.com%2Fgo%2F@v%2Fv0.1.1-0.20160913182117-3b1ae45394a2.mod 27 BLAKE2B 814b0fa8f12d5ce6171fa629b5a7eb34e0e882cc0c5430986896bb38c243e08dc83098f271227f4ba019e78f16dc97fbb381e833aff1819833d243b08add916b SHA512 5132f3438533427c0ab0fbb7a12112a7830ea9122662ed46019ff89c71d9cf80c02edc32dd5c892da572031b5a2cce100f2602fa6a19bea6be7c02781f701273
-DIST cloud.google.com%2Fgo%2F@v%2Fv0.1.1-0.20160913182117-3b1ae45394a2.zip 889396 BLAKE2B 37e1420148340c6d59d3bdc554c8d92ccce4dc145403915d067fe18966fa8baea5a3090714dc8d27c8c24831ca71213c11f1c719d0044647f887590a9b5bcc62 SHA512 f5d89d8eed8a58bfba541ab1102db390e6b4e7ce181f9d6e166c03685cedb1974169b298074bf8c5b2ac7c1e965e0e9794d379a9bb6537a3a11deab41fbec772
-DIST cloud.google.com%2Fgo%2F@v%2Fv0.26.0.mod 27 BLAKE2B 814b0fa8f12d5ce6171fa629b5a7eb34e0e882cc0c5430986896bb38c243e08dc83098f271227f4ba019e78f16dc97fbb381e833aff1819833d243b08add916b SHA512 5132f3438533427c0ab0fbb7a12112a7830ea9122662ed46019ff89c71d9cf80c02edc32dd5c892da572031b5a2cce100f2602fa6a19bea6be7c02781f701273
-DIST cloud.google.com%2Fgo%2F@v%2Fv0.26.0.zip 2508208 BLAKE2B d17c22f3d8e3f0b52bab350e86c8fe29ea474e104ba89e3238e71dbd29139717a0d26586589f47303da4eb743fe86a76f727b772707584aba5bf76d8f5ef1969 SHA512 6dc6f4229011d8606e1eb3c046640f6938dae2e12a1b0a9e2a22b7d26b4ab50051cee09d17fc05298ef5d4901a6b7e12d4b06b8b8eac6b1e71442653eb25b541
-DIST github.com%2F!azure%2Fgo-ansiterm%2F@v%2Fv0.0.0-20170929234023-d6e3b3328b78.mod 36 BLAKE2B 52a2c5272e004524397df00dfa03b4c2d2ebd985a0c974236aad6b847d6b2b4b7c9b69ef48e263f4c67983b845b020d2004fe749b46fee3c0525da0416b20f3e SHA512 350a16c68553738ce8c2f4a6ac8beba66a7dcf2386a42aff938ebaa3bdc526bda8e5c51c493331eda4666cbcf8411ee7ca3aeb0768cc4f557f34585960f9eb84
-DIST github.com%2F!azure%2Fgo-ansiterm%2F@v%2Fv0.0.0-20170929234023-d6e3b3328b78.zip 32735 BLAKE2B 5de266d7400ae80c027f209cea91c911e22b0ff4fc6a2e964e8906f1a86cc6905b9c12d2588d5fdc91d0d8e9501a0ddf2f7a376cca9935d21943386c3ef31979 SHA512 72621865ffc0cadd27603e2f4032f1cd9c9d8bdcb920b3ca9fd02dbf88e52876a6f092c5b74eceb136021c514b68dc599f0cbbf18ed1620b827d46462aa55e32
-DIST github.com%2F!burnt!sushi%2Ftoml%2F@v%2Fv0.3.1.mod 34 BLAKE2B ce54a247aef91043830bdf0603c8452ba38eceb1495af6e7a74c9119234a0dc5cd080cb25258c28f5e270acf91189a5ed33e361cbf17de2be5e37dadbda1d90d SHA512 320941bc3b7fb8bc595e6135cbc513a7583d129f0cd92508055291e141191066303cf75148e25198c21f6c6c539a790ea3210f3ecf5de6a2a03b70c753091146
-DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.3.2.mod 37 BLAKE2B 21cbcf43ce9e4dc3485c260f4b20ae34fa1aa41676ccdc1f4bd28fdbd9402db8c1f77d4c644e5044a0f2cc44e06a6109791f6d6cc4620b32e1d2c36426df65a5 SHA512 752909cad98e7eafe9ff00951c27d955242d3d76c99c3e52427987f1c81720af76ad1da5e4d67e31bc192822b7de299edeb2077b248c0f070b6adfde4e9b8ec2
-DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.3.2.zip 85048 BLAKE2B add5bc63d378f3bcb73a571f9760a48368c6f0d0ca5fb304c94e2754315845ee170c24ea2bec180d594c47c513565f3213e2369cd1429b1b52771c3bd9a53356 SHA512 18e3af1670149982591c99ae52682e527e2324fa4e6ce8a59efe153f34557c867489ae77a0de16876fd0b24c455407808656dc3278760d41de816a4d919e030d
-DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.4.15-0.20190919025122-fc70bd9a86b5.mod 177 BLAKE2B f2d2eb41aaa0f3f47a75ab260a461e6df690c34e7e817ec61afc7854ae26bec641cddf4f4481b5b3b27394e303d1fb1c4a9864f4de2d6c01f33e3fa0521b05bc SHA512 584c9a707b6115caac28ff373974faa59d12531962997f9640a4172b020f72c5d527355f035449a767d65ce426fc9705c143a7bd8afb5058c9ece241c9ad5d1f
-DIST github.com%2F!microsoft%2Fgo-winio%2F@v%2Fv0.4.15-0.20190919025122-fc70bd9a86b5.zip 162259 BLAKE2B 71daa9e2a01282e0f29e7f47081f8e5cebb59a31837b2e70b2b52d1ab371b351f6f00a8a0cdf33efaf0529f6ea5e0230ef9a35209dcd7600ad1204cadefa53a2 SHA512 31cef74693dcc7ff3e5e3542654b4174eb8ce7fd3a8a763df52414c99e01679404f2a5e6a1ab9cdbfed958b588e6584feeb8676ef9e149c4d24ae095dd654b64
-DIST github.com%2F!microsoft%2Fhcsshim%2F@v%2Fv0.8.7.mod 1988 BLAKE2B e89ecdb4644e50e2cd545eb43452729d909745705f5254a59547420baf3da357e77bf5d73b220da6899fe08a4eb034b0d1815702dceda20ada57e277b83b9954 SHA512 67df97dbec1c4a0c0f84551ea80df88a827c9ff4467614ef61544a611e19de6d063af40cf33673621f2e52e198595b61c8d6e5d732fe87f00eb7c5bd653e0399
-DIST github.com%2F!microsoft%2Fhcsshim%2F@v%2Fv0.8.7.zip 552856 BLAKE2B ec7ad9c6e4c49c04f8aaca1c42e198027e5db5abd79ed84f1bc8dcef2e26d3e386e02554285b666eaed6dae5ac9bec5f0e9c01cb703585921f2834cd8f49b65e SHA512 5d4575dc4e98137cfacd463cabbaefe2df0e49b81af900e9c43d2f98fe2aa4a02323e395b390bdf4c05bdb1d470f8fd2f2766123d27360541f249cde5e91c738
-DIST github.com%2F!nvveen%2F!gotty%2F@v%2Fv0.0.0-20120604004816-cd527374f1e5.mod 31 BLAKE2B a9858e56714c0ef3f20576058bbad347aa76d00379ba71c7944479abe032692c3f0d33303ca82ad6d140ff529b0c6bf23a844c4c0b8b655c4fd23f6df414ff02 SHA512 ee0d1ac5d8bed0498ae9b304c1f3b07566a2e192b6f7cf706b4d801e74e62ad3157b101be9878733b48a06d5aaec3ee916336c7f73bf155d63f606d039f8c6e5
-DIST github.com%2F!nvveen%2F!gotty%2F@v%2Fv0.0.0-20120604004816-cd527374f1e5.zip 12531 BLAKE2B 0435dd738f6fe3b88b291f0744bc33659a47191cd6a091ca471f34690078b3d376e8794ac47133d2275d409646a28ee3899965c90037af293628f7b16543a23a SHA512 9f57f79977f08762c6b6cdc5bbe94f00b578046e08832afad7b5d9b860ba4ce23f13252a39b144f9878c5c1433e1fe8c44de465591c19549d686abe7a753f3b2
-DIST github.com%2F!rican7%2Fretry%2F@v%2Fv0.1.1-0.20160712041035-272ad122d6e5.mod 31 BLAKE2B 012006f0261236f5728b4c28b3f8aa7e4d0bf60599990328b81e9db5f11ed24fd8d82c3b2cf3c72f35bac3f31dd0f41dd4768b27d379a67346d968b32e814c75 SHA512 68c463f83b740db632f4e26bee20bfa047d1c4b3ca49dabc2dbd0d684f82bab86fc7368eed0abcaf970d1d46f86b22fe063c97dc563bc12e96656df79fdeaf17
-DIST github.com%2F!rican7%2Fretry%2F@v%2Fv0.1.1-0.20160712041035-272ad122d6e5.zip 12553 BLAKE2B 02ef5505656d09b5bda2db7f598160d8d502aa5cdb219549b1ace34871f456d08e849e8afbd28bd7c2b5cc5a90afbc749ee959a202685f64713ac050ac81296f SHA512 1b81f66f1689dbb10aa0befad35e509a74c71f5db3b41691f02cf2db6b6c2e5b4092c13fc4bb0d39fa2d54fef47e52ac08f1628777a47f109285592cc4177887
-DIST github.com%2F!sean!dolphin%2Fbqschema%2F@v%2Fv0.0.0-20150424181127-f92a08f515e1.mod 39 BLAKE2B 66aba0853e0d4cc0f2a8dfdb226b3228bc16b3058a7731a60a9308f89de0c5a79997221be7e5a78268015ee19faf7dbd9ecfd4ca9dd2044ea1d6b0ab9a044ca7 SHA512 266093f2ee3e775bd66d952fb6e6634f42f58e05b687bd52d16088e76a71fd2a6045d02dc87900c80beef294bcf17bf09634712cc3e3ad1f2a6ee1cbf7cfcf48
-DIST github.com%2F!sean!dolphin%2Fbqschema%2F@v%2Fv0.0.0-20150424181127-f92a08f515e1.zip 11346 BLAKE2B a30d93f0e3f7639a4b379b82d90eeeb5712342fceb7b98d1f62faa53eabd94402fb8ea60ee9d2211c1b4b8e67eb2b03e2d76034a2b8cc25431a878b38425a68e SHA512 54aa484e0b6c80798665c1ddb694b0caf68809f542dedd35b536e588f942081cf967b3edb6e161964c19f883b1c560b76f9ada2f9ebf7afe8234398a39c92649
-DIST github.com%2F!shopify%2Fsarama%2F@v%2Fv1.8.0.mod 33 BLAKE2B 7013f44d03c22c21595c5369c52e1538a526891c9fc4cccac37373504f13c66d7c504552251f46632917739dfa1d6c3a15e15aec4dc03b9c69902b0bcfc8785c SHA512 db3271d8abd514934ce5d06fd20f7490db8368e57822a2379bbfd4ccb94e67354400d487d388a57467a5a16cec339cbae9488cecf82e41d85918639bedaa0a87
-DIST github.com%2F!shopify%2Fsarama%2F@v%2Fv1.8.0.zip 160528 BLAKE2B 41e98a255190d3f4b96cb5070bc09f997da4d6273e9b19a8f124372a656444b21d10c5d733667cacf7c68c1e28ea4d4c24d77a3856f79c40d83094af3f431181 SHA512 40a346aa828a45555dd0318bb1eaea5f07a02b9fb9cc446745a57e8c55c47629a277bc6f85e561ee57a014fc6dd7299fcadb856594d8d36b262cd507cad87be1
-DIST github.com%2F!shopify%2Ftoxiproxy%2F@v%2Fv2.1.4+incompatible.mod 36 BLAKE2B af7b84d9f1cd163555b32bcf960b28b64a5689a1c9694f430af310f5041cd967fcf0d6c1a6c4020478544d347e4ba5b2fd16a6ef54258d33314ee0ad9239752c SHA512 917ada7ac198a013d2b090dfc59a45bd2619dcb7227df1521ca38a0d822fab12ea8c158c526257fef4ef506af29d9fa678e8dc2a73fc13c8dfeb57b398801744
-DIST github.com%2F!shopify%2Ftoxiproxy%2F@v%2Fv2.1.4+incompatible.zip 64188 BLAKE2B 8a83e77b1720a9c4d2004f8f8c14fbb8208687f54a5f4f09dda758c2516c0d907a5734c2a8d566b0461810899cc8e0877819612cd2d715220ac9da21d9cb4970 SHA512 89d7b18a1eda0e215851b894ed019d27cb302650ad12eb07edeb49e663ac0910be41a0e4281e1e9b7c1ff2948a74e174d47ae5dbd7956e946c7d3c72633d0a24
-DIST github.com%2Fabbot%2Fgo-http-auth%2F@v%2Fv0.0.0-20140618235127-c0ef4539dfab.mod 37 BLAKE2B c2092425b8c00b2d65f9acd280a767c1688bf3836e447a49d9e16e1f36984d6f0a8efffe35ed40fda5553a4bf45202f716e0471dd95086064c67da107a535730 SHA512 37c17489e7a493c676569f210c4909a5dbe595992919a65b1e5e5111fe39c567e8e8238e31d9e034b64fb72f5c9addc4ed958b3e7ef264ba9387b24760ddff78
-DIST github.com%2Fabbot%2Fgo-http-auth%2F@v%2Fv0.0.0-20140618235127-c0ef4539dfab.zip 18902 BLAKE2B 733bee970c2d5937dd2e3a8cd359bf5b2d4ae05a55f1686ef17210b7c381798142604ac5324ee32182486a36c1442f6b859dedbe849b2d0403b21a2386da063c SHA512 34237a94ca69ec91af68d03658a2c05b45b09b7a41cc4c31823dff6d17b0619b59c562bb732bb31e21882200ea44e6cfcbf2ab012be9481f3b49e2cf48f7c5f1
-DIST github.com%2Faws%2Faws-sdk-go%2F@v%2Fv1.6.10.mod 33 BLAKE2B 6d4b4fe348c4fc9c7572c5b5b701116eb294cb4879799b76e31b538cd27822723e789e9db75468cb93c150c7d427b4db38d33899fc42a0d930413785524fe8cf SHA512 3f13e3b470e58f31e1a5b158363e141fa75bb44f639d268aca11cc82ebe41a12e840f978c14966dab8642652e2a1f564df3ff532dbfdd06fc27b1defbb002fca
-DIST github.com%2Faws%2Faws-sdk-go%2F@v%2Fv1.6.10.zip 6241755 BLAKE2B f1e5c9962d054c8668fc83ff9419bf8620eca83be07d87a07c372df8d1bb26311bee73c751307784bad337a5662a0486acdc3cfe3f5447c8f162e97be40c7698 SHA512 0448732a346599899674fa1b24ae67a3a1dec820015fe91dd917f7f0d33cecf2e3c62ec40bc62a253def36d9e2c7f0ecb34d688d2aa00c17861074fb473fdeba
-DIST github.com%2Fbeorn7%2Fperks%2F@v%2Fv0.0.0-20150223135152-b965b613227f.mod 31 BLAKE2B f69b0989e51b0b649f81b044169fe4309f130eba5bcc6ff33aa9666b1b754aa0e524b8c7a627a91000ccc4f93bf93cdee3e97bd3b2184b050878bc3f413f0c72 SHA512 f21fd002853e4435421f8396e6be016f65be1537815c60d23940caf26e3f14dd6f2caac802cb64cd586b1b1f1220b2727de347b3d1816b8e741f68d87ebcf03f
-DIST github.com%2Fbeorn7%2Fperks%2F@v%2Fv0.0.0-20150223135152-b965b613227f.zip 13772 BLAKE2B e3dc57d4d51cf851aec2eb2b5741b235f7a9f79a9eee2f063ea39c68cf93ebd253934939b75d791f29b011cfe1ec13c84f9877a29a4b7dc49ed201e51cc2a3ea SHA512 1c233df9b1f88795039983f03b86de76d859c397fc91c524cccce34937b31d959c90400cd2acccb11b1c5fef3f52308bd571d95d7de940e8e668dee013772b1f
-DIST github.com%2Fblang%2Fsemver%2F@v%2Fv3.1.0+incompatible.mod 31 BLAKE2B 15785a01a9f07d2cfe324a1ece5c8188395300b11821621fe13427b702cb9f452ebe125566c3c2648d2d83139add9ad6224d00536aaea7b16306eb62f67f8184 SHA512 5f7f52012aa82bdc43bd89d1491fbe00091299554bd85dbfc07f0cc757fcf44f4499df97a4f19c234ce70fbb7af0f4c54c13ffd547ef0a733365ea9c68dd0297
-DIST github.com%2Fblang%2Fsemver%2F@v%2Fv3.1.0+incompatible.zip 16367 BLAKE2B 848e8bc2105e93e6cffd9af9773b1e188a26666f03884a46aa0413fa8ba1065a2256a9ac8418eb12e465e456fe5d269becae7b67c63fbee6b2d29ea6254a5389 SHA512 515ee2520b32394c1050f67e0ca4306991b715a2bbab17ad94dda4dbe718fdffe363203851a13ad44371ad69c10a9b2a4e9fc0d52b2f96996f4b188c4ecf03c5
-DIST github.com%2Fcensus-instrumentation%2Fopencensus-proto%2F@v%2Fv0.2.1.mod 58 BLAKE2B d724c8e5ab039b227f3c437ba570398b789f53fe80db6f8e57fd2cb2199a5e7acef24d7451f9b27a4da464770660d31fc785c7165deafbc35009718851329fc6 SHA512 23d6171dbcf339c72fe25ab7a7e70cb385dffd654998824fac0f6b6464717873332d39fe1f96101414f5e2d240faaab0b960da2e31c08ef98443aa238bbf02d4
-DIST github.com%2Fcheckpoint-restore%2Fgo-criu%2F@v%2Fv0.0.0-20190109184317-bdb7599cd87b.mod 45 BLAKE2B f83f212c68ab30e030daa35c16b4e388d6be9822f6bb3c424fed3f3f7272c1331017a90d96d9bd63f375c1e04cc437748be3cbed0bda68043c6f6d1e10845f43 SHA512 8da8c7a2809f2568d2f3fb1d5918e4ab002370919f9dbe3123c4a92dbed79425c129cf9a6cec9a41f2a280f3c0a5d685aa886c961fb1b5c980c29150ef6a9619
-DIST github.com%2Fcheckpoint-restore%2Fgo-criu%2F@v%2Fv0.0.0-20190109184317-bdb7599cd87b.zip 30683 BLAKE2B 1229a9ffcdd787aef5dd65c8e391bd9975e59b87b1f0080cdb9acaa718ab554faed007f3a8a89691f8321781ca08fa29c70d638464dac0c7822b87c3b9712e9a SHA512 78578aab606d9e0c903268c72279b86f8e9c92d6d2c2803ca98196f0e7bd6c0d05217b4b74bccf25a9234f4bf69879e14c53f6bd37d47aad11f5704797c900df
-DIST github.com%2Fcilium%2Febpf%2F@v%2Fv0.0.0-20191113100448-d9fb101ca1fb.mod 135 BLAKE2B 1b785fb4e0af530378f15100e4523543e22b2f5f7f350eb46cb16290c1e2f55b18a9f8894024a472c7e9d45deacb1e7a3828a54368ce1ef83095916e2262c194 SHA512 242e8e3859ac02adf7d059da6d2fd5f774892e8a11b69d8e22bd2de43c534f7d4a472e9b3bde5e5bac106211f41546614cefd078ac23115557e26c3d8457d7d0
-DIST github.com%2Fcilium%2Febpf%2F@v%2Fv0.0.0-20191113100448-d9fb101ca1fb.zip 96807 BLAKE2B d15a37efdd5e99f037e0d24f556ef8c2903769ba5e8d977cce182d8943ebc249597862ccd782ef2a543e3241fe0060851fb0ae9e1d5e8833542cb35f6feecd90 SHA512 333dfca246ee2e738167cccae976b173a0a01c088205e37aecee075b5d7e5ccf9ca7cb1641e43368d72dd1e4059472e78924d9b988f8ae2fdac77ea83dbe8319
-DIST github.com%2Fclient9%2Fmisspell%2F@v%2Fv0.3.4.mod 35 BLAKE2B 45d27e6bbd9255a355b6bd14ac839c7d87fabb393693a8b862ad974017af01309e5d36fa99d4925905c1617c0d90b5263b54cd95af2dbab186e293936dc86459 SHA512 ca8192c6321468b4332eb63c765a5798150dce9312873123b48d9ec67ebb4229cffc7b7e8054b8b0a6f45611f08130008031edf33da3468bb9a4ee9455fa02a5
-DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20190919134610-bf292b21730f.mod 411 BLAKE2B aaed1a7526861470d053cfa204fe5af2ba4ebca024322c8007d3660acce6fdca03264a12ca0bedcb6fe1f0cc5c78de920f8e8e19a36b12e1604cc3274bb88733 SHA512 32f6adadbc5dc2c9a57c698ba76fa4fd83637e67f58da55c6a22d4faad9f705fef7a472c2b2b2b94b2bba2b839b85856254fac4681dc9770893afa940bc734a5
-DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20190919134610-bf292b21730f.zip 75084 BLAKE2B 873262c8f3527814f7d3210753cb811f625126cafe63016e5bb3ac9df34217143e55f11f7ca0f63b51c95b17859eddfb25ac24daf75fb9f19898d264fb71d9fb SHA512 cf73ed0a23c1a392935706058d4d0fc24f077b775d31e6f56d81cedfa259be9b0203a8ddfb3f31bfcb07951b02c3c7ab74e8ea8f601ca75befc6afadb321f37e
-DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20200108155730-918ed86e29cc.mod 575 BLAKE2B f19cf7d6c982a3274431d1717ef475e66946e4cd691249e7510174bfda7f06680cc0f939bd939121e196c1b753453ed044b7bc7354f027dc49ad287d3ea273ae SHA512 e821fbab7a09b8529b2ddda45a53a4b2d7f99d89be7878c6cee893b91b8530cc25fcbcce64a17adc87ed2635a4ea12ecb874fa1ac923ba2869385992d37f7cfe
-DIST github.com%2Fcontainerd%2Fcgroups%2F@v%2Fv0.0.0-20200108155730-918ed86e29cc.zip 125872 BLAKE2B 04d2e536305a951bb328ae1917959aec55cf48dfbf1f501405eef7690cbd9724c80bff26b7b21eb2933fd30a6516d4d5bd3d82aa91743f0133ea64d025735db8 SHA512 a6e879e874bd978bf7d88fec957c2b2102a68b911a5b633a503b7d2b8406ae7f02d347ef65878e477a7954ab16562db0cbe9db4d8ac7f9025275231990409145
-DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20170925154832-84eeaae905fa.mod 37 BLAKE2B 7037e2b6c6f7927a37d8298f91976232fac6e1723d9ffda59b2c01bf81c24acaf124fceeddd8791b6a6bb1e81b03e1bd5ba88ec9613784462a235bdfdea76498 SHA512 3d4ac776b750aac30718ecb1a3efdb383cf39d0838ca60db5ba266152baa1dcbee739a8f384965b5b8d39b9d9b18561ac317eb8c64c61076986db66bc10bc1dc
-DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20170925154832-84eeaae905fa.zip 17672 BLAKE2B fcc09e0f6e7ce1c47da9f334f3de6998f32789ef6e15b32e16c50514fd7d8972095d9c6b45dc783ce775c42d63527fc467bad67608a01f417efdf4bd9a6f64cb SHA512 be49f73f1dcae8c2a982237b6f35329a7e5a7b2637cb6536ed2701f4682d1bf12c398ddfa59c3910055606e9cf6d08f730be20b5f994753cc93527357941ee2e
-DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20180822173158-c12b1e7919c1.mod 37 BLAKE2B 7037e2b6c6f7927a37d8298f91976232fac6e1723d9ffda59b2c01bf81c24acaf124fceeddd8791b6a6bb1e81b03e1bd5ba88ec9613784462a235bdfdea76498 SHA512 3d4ac776b750aac30718ecb1a3efdb383cf39d0838ca60db5ba266152baa1dcbee739a8f384965b5b8d39b9d9b18561ac317eb8c64c61076986db66bc10bc1dc
-DIST github.com%2Fcontainerd%2Fconsole%2F@v%2Fv0.0.0-20180822173158-c12b1e7919c1.zip 23623 BLAKE2B 530b1f6c1520b33a93dd4036000ac8b227d4cefdd8cd3fa877d640cc29dc822dd5d5195015fe75e7e9efacf19a54f5190ae5eaab3f63c5e4d7b2f356c74f0349 SHA512 ed79b9255d477bcaa1be18790b4f258b21f41fc97deae532a52e5a5c2f19e2d9e326547aa1735c1b1d77a0b1f00efdd3ceb6a201bb8c1fffb1af1f8ac6e322d0
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.0.2.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.0.2.zip 1992081 BLAKE2B ae493ccd96fc8dde5f5b4f6499ae80d3ab3e4cdfe5074505fd69fcc1c17a4dce3e4da730cbf1db15f4373219fb5e96da592e0d7d6751aba6b666d0d485f88d79 SHA512 45b5bb1fcd240f11caf665e0e715e6541d27888e9b240898eca4283860de912cc0bf499284d3e979c81c637aee8e6fe11dd35c683ab70484887eb13f5d62ed88
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.0-beta.2.0.20190828155532-0293cbd26c69.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.2.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.2.zip 1650463 BLAKE2B 8958a1e2bf03007734564896962be34189c6b56d1674a771819e6bee9ede0cb78601ca9f5888ec88b251b9d1bdab2e70190d0203b7694b4b30545003813b45c9 SHA512 5a355ead5a6996bd85e4c45d026371cce836a9379de65adf7f39596d9332c51f5cfdacfec66ed7e8efe7a49532b927a0ee53359f52178aa6df24787a0fc11068
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.3.mod 40 BLAKE2B 5aab68428b3a2f13611b2994bc4ffa44a6d2863ce69d937f0fc36553d9850723ecbbc6ecc373ec7e4fa084edcf6387c828a9ab1c5266bd19ae84c86f529b8070 SHA512 2be7fea972fe99bd4406e4bf4770acc363ee0a5c88d3cdde9e273754c22a7c986509de5078dedc96e79aaaacf93c3ef101b787179b855ab592bb232f0274092c
-DIST github.com%2Fcontainerd%2Fcontainerd%2F@v%2Fv1.3.3.zip 1652053 BLAKE2B 2dce8684aba3184342c9019b4e554b9e79855819da1c785e2e81b47d90dbd793504fcbcd7f520d8d57f3a4aa3f7753fd8f9c516620794bb76e38044533552e14 SHA512 42543e7a2ef51fef0e2890b8b803af947a39a9baa8e6792f86b8a4836fc97b0c0558b1ba6cd40ec99fc56ee9ae0ffff04e8d5cb39464da528b90a02b2bd95879
-DIST github.com%2Fcontainerd%2Fcontinuity%2F@v%2Fv0.0.0-20190426062206-aaeac12a7ffc.mod 40 BLAKE2B d99a912436af30ef3f5fd53f6348367016633170289e08c271f0148a47db1f9c5ac5da362fcc3f6fa5a7e7977377299adcffe63e9c3315c45ec173d55248006c SHA512 442fc394b0be5c87d2b9edc858f47d52b1027acf1fade259879bac7c598e51692199cba7d4e175f21f772193f1570e47e82d6c6c6fa160e253eb49b09cbca793
-DIST github.com%2Fcontainerd%2Fcontinuity%2F@v%2Fv0.0.0-20200107194136-26c1120b8d41.mod 1000 BLAKE2B 595d0a4ca474b1143bfaff75d8bb1089953f1b68da5b593966f85461b5a20ea0a8ebefe6340ae8747b12e9fda5a13dff135e751262f4efbf7142993938a103a8 SHA512 b6ec25dca49d545033cf2e97f7907e4709103e1bd76b341a27511c25df44788246d9788281d2f2636bfc7b4f39ac7fb25fc1de293917bd68ebaec92babea8557
-DIST github.com%2Fcontainerd%2Fcontinuity%2F@v%2Fv0.0.0-20200107194136-26c1120b8d41.zip 137748 BLAKE2B 6ccbe78dd7b1773d54ffb28aaede1b1a10ced9228c4ba511be4b5c20940f7d8551dea187254c9aea915b4f3095ea415bae6ea7bc3df00f36966e29ef8309560a SHA512 38f840756874baeca822de082893f9a5774b29164f9b798660adbc99122f8c4d42be0e0538bf5d1c4c428ee2f2f2af5592b9eba4e2b5f01a74f4e8b591212592
-DIST github.com%2Fcontainerd%2Ffifo%2F@v%2Fv0.0.0-20190226154929-a9fb20d87448.mod 34 BLAKE2B 24e82d551cc42b7a7c8c830ff4941074686a06dfc753202e49bdf1c7d5f7b960d0ddcf73f618585b6dc925cde9cbf123196fc4b45cba6bff79a16500f49c178e SHA512 9ae770f38dd2c9560c8c3e858890a835ed848d5434a289d889c312d681af748b11471efa47739b08ccc12beb6e9050d2f1104ac6299a50a83344f496af516761
-DIST github.com%2Fcontainerd%2Ffifo%2F@v%2Fv0.0.0-20191213151349-ff969a566b00.mod 175 BLAKE2B 1573b65ca6fa922fe9d47ba40920cc95f7f7f9135c729fe9d8f9c2723492a136033f6b16680bc5c405377ce7bf14db34d989c563af74bce702db0b5ab761bc13 SHA512 b227a5f0ea52840001d34ebdfb11b0209dad5dc49faa55c20f5d7283c67992f1e63e4325c4cda3a3e5b70cbc7231301ea448a7e272a5f864d78585cf938f0d2b
-DIST github.com%2Fcontainerd%2Ffifo%2F@v%2Fv0.0.0-20191213151349-ff969a566b00.zip 22168 BLAKE2B 9be413f55a84b6af8f8537fd3ad96c021cad01a27ebab1fb88f29b95c642c4f9aa55b9bc3110eb98d3042193485a8aa076184720158f5f6b07dc5010ac2d3279 SHA512 7b5005a900f3b8dc7ad910c0b864fa086eec1bdc4201b029ba09f63afa8711086086773ad84ed319ec328508c70cfd254cbceb68971a2e670afa94b3a284614f
-DIST github.com%2Fcontainerd%2Fgo-runc%2F@v%2Fv0.0.0-20180907222934-5a6d9f37cfa3.mod 37 BLAKE2B b3d06413bdfc072eba71c8b51cb7aaf27ca29ba736959bd0fc9ef2de8fe3dbf3f194cdff7d030aa259c8e78fcc9003dee040be0d1b858a677d9e306c89a3542b SHA512 62de290e5234d6bd82d9a865d1ff592736f075130d1c29e9d9f2544ca3f9514c4a81ce1a726cf8fc8be8404e8ca41a88958dac755174ef2c20ec9b455d0cbc50
-DIST github.com%2Fcontainerd%2Fttrpc%2F@v%2Fv0.0.0-20190828154514-0e0f228740de.mod 35 BLAKE2B e2c6e0700e40d563dc690884628fa22b6dd56872a63ada54374c07cd6328aa332b6df2396300090da5c9f7ac730b6b9bd60dbc776557c4614d5ab3ce003579f2 SHA512 93f981daaa62351a480595cfb2feffad6c34770cf89f35399d777096fc524cafa50d0dd3f56231ae41b15e56061ab83f0f6829190730dbfc7f9fcd594af7b054
-DIST github.com%2Fcontainerd%2Fttrpc%2F@v%2Fv0.0.0-20191028202541-4f1b8fe65a5c.mod 368 BLAKE2B 52b871af9fd9f2b71074286d0877d16dbf6e9395f18326cfee8cd1eb7339b4694bfb90ae4c843ae1f71cea664a64d4b090b3b8be7e72f01366424400ec2ff05a SHA512 1655c00f6600d5a2ce87971a893f5e23b4d40f1e49d62fc39916751fc8c5352766321761b1e4c5f321f8e205d5164409c964ec508c9cb7372bd182b850692045
-DIST github.com%2Fcontainerd%2Fttrpc%2F@v%2Fv0.0.0-20191028202541-4f1b8fe65a5c.zip 45569 BLAKE2B 115f7ede07ac90d49016cfa0b025f0d8f4703ce661f7c678cf1ed4c76137770e637c468f604d92bc905e8be0a66d3317af94dbceb6781aae80f3f8f81169e9c1 SHA512 c97faa564c01661b4d8694f6dff0a73fa237427aded6709aa5be832f0f000ca55f80e02a1671f9b09e3fc265f8113a6237b7d942f521e55399b0086d0cd6b765
-DIST github.com%2Fcontainerd%2Ftypeurl%2F@v%2Fv0.0.0-20180627222232-a93fcdb778cd.mod 37 BLAKE2B 109f32f2dc537cfeff1699937e93eed980f34a37faa111ad3831be6dbbb1df965c56ef266deba48aa1390fd94bdedfda9ba3a51f4f6d9519ae24db6b99dfe1d4 SHA512 6485196f4703578401e82673647b49d58fe60d7f90c311294096504d3e11477c75fa50684f00c7b378b2566e6e8683cf18d99f2ac78043b077318a643fb11720
-DIST github.com%2Fcontainerd%2Ftypeurl%2F@v%2Fv0.0.0-20190911142611-5eb25027c9fd.mod 122 BLAKE2B 775bbfe519746bae037f93939baef72c091af97099c61ce8ac2e4ddc93a52ce06a4d4fccc52ae28f533da9c7aa147d9f302269d57448a003a695cc765d32cbc0 SHA512 a92ddbef593ef363aee93b81d810ff76b2df0a4155714d95dbae9d000edfcb4383953625becc3f24cbea19a77431cebc0767e40c746b6abf613ca5346f024370
-DIST github.com%2Fcontainerd%2Ftypeurl%2F@v%2Fv0.0.0-20190911142611-5eb25027c9fd.zip 12038 BLAKE2B 9a696cc9f413521860f0102e286746d4d2f86038335089e6d3e04be60ae3193747a4a7aa23c68245bdba909a3fcc9c3635d76170a3e9ac18ac259b6df1dd169e SHA512 47979bb6dab434002892b3d8ed3a49a3abb92e1dfcfcd80875eb5474cd2208edd73548a8792ef47a41f0033c4aaf813523d1bc7b68fcdba9d7154f4157cdf61f
-DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20160527140244-4484981625c1.mod 36 BLAKE2B bec7662666b7a5313f4b7ed0789ca75f07dcebed3b4498cced2b75b3622bc4c8c7d624066338fc6d77adea4b778c89f0a1218fad524c6804ef350deae2f24d68 SHA512 00ccb440abed145db781cbc7bc12695057b7dfa034c8ebd7ab1aaf5ea509fafc0be7147328dd9654e3fc2623bbbf91fd3992a86ff29e78bfa3e868d994b47e7d
-DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20160527140244-4484981625c1.zip 77401 BLAKE2B 9389afd7f0b14177f4e07b3777d6d6e732d79b491e72d066fce2abe0a8d6e94b7a52bafd8c55b184c285b2ffd228f26089d4506d0103c75084676105c7b1ce52 SHA512 3d8101acb510bcb07999baa511520835e861a673a2fd566ce8973b2bfb1b1fe03201124a0ac9591f16f3462521b32e157a72af5ccce3b07703832f2ddd853d7c
-DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20190321100706-95778dfbb74e.mod 36 BLAKE2B bec7662666b7a5313f4b7ed0789ca75f07dcebed3b4498cced2b75b3622bc4c8c7d624066338fc6d77adea4b778c89f0a1218fad524c6804ef350deae2f24d68 SHA512 00ccb440abed145db781cbc7bc12695057b7dfa034c8ebd7ab1aaf5ea509fafc0be7147328dd9654e3fc2623bbbf91fd3992a86ff29e78bfa3e868d994b47e7d
-DIST github.com%2Fcoreos%2Fgo-systemd%2F@v%2Fv0.0.0-20190321100706-95778dfbb74e.zip 109838 BLAKE2B 82e02c44f4fa60aa7257b79e385af47e23508e260415f0f768e4f7aac6a5962c713488458a50f1bc98308446ee3f45de973d5240811dc5a113e5b9577f33bab3 SHA512 7acd6ca00d067e6a81fbb12697ae9d46fa9880834934065549bb23671153012a8596d4c7875705578ca58a259ff81b1165e45aa65c93406d2c324c61954ea4df
-DIST github.com%2Fcoreos%2Fgo-systemd%2Fv22%2F@v%2Fv22.0.0-20191111152658-2d78030078ef.mod 91 BLAKE2B fad30507d91fca15291c8f13100206c9d9eae4f73ca4034e37de10d1494b42b03535540ce704582cd7a4be4ffa2685f778ac9cd3aa647d6c48d8e6fe33a345cb SHA512 54e3700ced7222d086eac5a73a5973147473e9d063a7a8dd719bff2dbe3d61d9e4cd7427f30c926a2289ef53948f158bc09e189d9714f0437d446f7c30d0cc6e
-DIST github.com%2Fcpuguy83%2Fgo-md2man%2Fv2%2F@v%2Fv2.0.0-20190314233015-f79a8a8ca69d.mod 217 BLAKE2B 4232fdc22064d42e7b97efa666b5345f93d53d40ba11231778e5d17bc7d48c6178d27f4e8678d2139ba4e40a90d46a6caeab1a9696b76db5aa361fc17d3c8c93 SHA512 000449de8fe27ac12c5e7614bfb48a31d506b582ce2deaf0a0709d3673c9fad41e3b97e25df872609c5a190e899a56755d2d9f974a38523c51c9fa3af521d73d
-DIST github.com%2Fcpuguy83%2Fgo-md2man%2Fv2%2F@v%2Fv2.0.0-20190314233015-f79a8a8ca69d.zip 12266 BLAKE2B 93705895ca63c348ac5397fe8531214f5745a3be6f5760f9d3fbf67fd85b917dab4a2077376251a005bcf07450df1fe0b0114feacc5f92c6facbb2da637beacd SHA512 284116b4f2778ee7981e3aa5583c4e685afd8434e36ca647f0c72c5bb308e87bc3bfae8c83acd259c9da75549339aa382663b7103e4033b2418e314106923c0f
-DIST github.com%2Fcyphar%2Ffilepath-securejoin%2F@v%2Fv0.2.2-0.20170720062807-ae69057f2299.mod 45 BLAKE2B fd78b551df24aaa503a1e3a673291776e988c7975ac3bad69beadbec7ac5c85675da6e6da9deb4463535e1b0ef0a3e640df6e7ce771de71f033f0e7a3f67a1c1 SHA512 9d9af0844e5c76f84c3804b788cd643e461b02b8a00fa5a41a6238dd72dbada1bb03aa3e7e420f0c68d9926b9cbd2d159456f26ceb64f1c51162da939742d0fd
-DIST github.com%2Fcyphar%2Ffilepath-securejoin%2F@v%2Fv0.2.2-0.20170720062807-ae69057f2299.zip 9352 BLAKE2B a1364dccf9880c325bcb1bbd1cc2ed15a2ba7a1c50e27f2c8e98421ef320ec767fa5dc15414b34125326197e68832fab9d52f82533a5b785445dcb0c545439da SHA512 a7ad0a58946953dba6cff15a81a68e813b0391e78c4935ff9481ee746cb0081d609f9a3534047824a9ad49d0c47976b1cde5633fd72112503912051731899bc1
-DIST github.com%2Fdavecgh%2Fgo-spew%2F@v%2Fv1.1.0.mod 34 BLAKE2B 7e09c2779bf7a84a9271e31522ebbe600a1c11b107d651d91f58c8373e4336332a3a881f3e12b382543d75f20398af66085fcb3e780eed341e870e9c30f29267 SHA512 5e079462f7e0dff0efda71f580aa185700cfa936b718a19d0e2a8c63212e47a07022dca0c282832d48e5165aae8e82aeeeb2ac3664268f1148fc772010fb860e
-DIST github.com%2Fdavecgh%2Fgo-spew%2F@v%2Fv1.1.1.mod 34 BLAKE2B 7e09c2779bf7a84a9271e31522ebbe600a1c11b107d651d91f58c8373e4336332a3a881f3e12b382543d75f20398af66085fcb3e780eed341e870e9c30f29267 SHA512 5e079462f7e0dff0efda71f580aa185700cfa936b718a19d0e2a8c63212e47a07022dca0c282832d48e5165aae8e82aeeeb2ac3664268f1148fc772010fb860e
-DIST github.com%2Fdavecgh%2Fgo-spew%2F@v%2Fv1.1.1.zip 60320 BLAKE2B 86bdbc333e5c23ccf4f805945ca9f2aecc5c242d2ae824d20127eceaa2bf7bbab239ff2799572a2c8fa206166a36e97d5eccc8fc5021743d8ad32f39cd53b9eb SHA512 7b4e4df2fea731e23e05437f26f24e32b2e99028d685b72e3a726c1cb616ada4a77ca4fb9db4a6fae48178cc5172e724b74499bc776d63a9110cb97377d5edeb
-DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible.mod 38 BLAKE2B cd95ca3c9baa32743ad6a0c2359dfb95eaa79009366a4019e5e1a4d3ded54090b005d307ef18942fe4de4027e7fe688e7ad046f226c77a3495e2ec579223a9ee SHA512 662e7810daa3242958f5ac7c71bccd25fc39ce814db684641cf69e96a5573dff638faff15aad77b7abddce767f4ddbfbd8a1bbb85a2aee5a0e80c96baa3f39a3
-DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible.zip 670439 BLAKE2B 19d27f2608369a4564fb990c1cc7f59e92f229e6c793fd918bc53b63d30bf69de3034893c117e4fc100c3ac2019fba6d7027b0810c7c45a11c4a1c46a3924719 SHA512 c5e053079e297d5b7c8bbc147fa154291348e369393fa78de0c7c8f94f057ccd0dfff325cd275789026f33c56927c175bd1e8a2fec055cbdff2d8b74da917a0f
-DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1+incompatible.mod 38 BLAKE2B cd95ca3c9baa32743ad6a0c2359dfb95eaa79009366a4019e5e1a4d3ded54090b005d307ef18942fe4de4027e7fe688e7ad046f226c77a3495e2ec579223a9ee SHA512 662e7810daa3242958f5ac7c71bccd25fc39ce814db684641cf69e96a5573dff638faff15aad77b7abddce767f4ddbfbd8a1bbb85a2aee5a0e80c96baa3f39a3
-DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1+incompatible.zip 662227 BLAKE2B e9c50aec1dd4d34aab11819bd341b1f0f6fdc32bac63124930d45f76f0259aa5e1e4781bb408411e643574112ecbe57c3b9c4c5fe59399c153d48dc5eb5bea41 SHA512 aff78c88f3bdb596f1855ab993d8ec3315de9d4809757e2cba6fe22ad4d5dc220242f90e73d9d0a33f9a13521705b82c8526082e26c752fb027dee4b28299d52
-DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1-0.20190205005809-0d3efadf0154+incompatible.mod 38 BLAKE2B cd95ca3c9baa32743ad6a0c2359dfb95eaa79009366a4019e5e1a4d3ded54090b005d307ef18942fe4de4027e7fe688e7ad046f226c77a3495e2ec579223a9ee SHA512 662e7810daa3242958f5ac7c71bccd25fc39ce814db684641cf69e96a5573dff638faff15aad77b7abddce767f4ddbfbd8a1bbb85a2aee5a0e80c96baa3f39a3
-DIST github.com%2Fdocker%2Fdistribution%2F@v%2Fv2.7.1-0.20190205005809-0d3efadf0154+incompatible.zip 681938 BLAKE2B 62693a6170e7f843812aed03d05965ef0a7f1d212029239924385746efbef5d4df3c649e14ae60977805063e521c0b5c68a42f32e3b8ae131b438da4d062269e SHA512 7280b01be97dba11cd18c2cf044dcd0edbe9ef09538966cc3d92d27400bc615f8106a858377e8f9c80453e8db0449829d4437fb371aed5bccda370f12479a621
-DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv0.7.3-0.20190327010347-be7ac8be2ae0.mod 32 BLAKE2B 60d7bedad25f2503b81b09e753b7f5aac1ce61c5b128e08dbb42f73cb5f3748d376aafcd475cda1f50f97a88790992ec920d2309e8b3faf914640ebdf4b21404 SHA512 ac7ef0a0baf8fd96efb31c685f838842cecc51e9332cafefab138f16438fe00962e91b31e53d93214ff9d18558634d4b9bed4a0a9567e06646da2d2bd3e9c439
-DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv0.7.3-0.20190327010347-be7ac8be2ae0.zip 3670933 BLAKE2B 781d56b59eff75e2188b5d36dfc78adde32c8056b853bde0e236261b96a55b8884f38afada9eee6897ab240f9d6a8d7a1de61f0a4d8cede90a3528dcbfc800bb SHA512 49871909bdcb08272ace18dae42d8e6cb4e9ce9e4b87d9a4039497252a3c0e6b5606e8a9c70c937375a4497c16be5a718cffda1b22fd718f5471121f012c61a5
-DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv1.4.2-0.20180612054059-a9fbbdc8dd87.mod 32 BLAKE2B 60d7bedad25f2503b81b09e753b7f5aac1ce61c5b128e08dbb42f73cb5f3748d376aafcd475cda1f50f97a88790992ec920d2309e8b3faf914640ebdf4b21404 SHA512 ac7ef0a0baf8fd96efb31c685f838842cecc51e9332cafefab138f16438fe00962e91b31e53d93214ff9d18558634d4b9bed4a0a9567e06646da2d2bd3e9c439
-DIST github.com%2Fdocker%2Fdocker%2F@v%2Fv1.4.2-0.20180612054059-a9fbbdc8dd87.zip 3515250 BLAKE2B d0fd8d2399a52787c76c8a7fb09c05aa136c596fa8e09c3f4c5d856a3e2a4984fc7364547e6f05b78a2cc218eabcc3fb36cdadafff4c933800ca6380966d896e SHA512 3f0827865f72afe304ef4811c9bf8133faa859c206ff46c42614546c3ae8e847734e0acb49d45a0b6875b140668ee1a7fa0e5e7d67d726cb5b1a916499b52a47
-DIST github.com%2Fdocker%2Fgo-connections%2F@v%2Fv0.3.0.mod 40 BLAKE2B 13f8b46e2e71edb04180a1734d63e1e84dc75661ca635d150fd2bb8b1213df768520fc1c5cffa7a9cb224cb11788efc5242dd85138915fc21dfc9ff95b1d2737 SHA512 721f6b5cc358f8ee7093f7c80e4153ebc474f2052bdb3a91bf2a4ae9d2dbd2e2e50635a5bb8f9b62bd8ee7a0b7420ca9f18c60abcfd5287a953ea63d21aec53d
-DIST github.com%2Fdocker%2Fgo-connections%2F@v%2Fv0.3.0.zip 42715 BLAKE2B d34249f3328c742dbedfd2620ca178ff29b909c31606fe7abff0eb9e04dfdd488bf51f4faf489061cf540fc765a5d0842ae3e0d9840894ebe8b4c6d8d7793847 SHA512 ca175bd5bcc7757538ad04b6953287f8c869d5c5ed2e4f930cb3104b7a96f73a34c656e85d1de054f2b982eb813bdf5b02cf7dd89c4824a25c8385add7778598
-DIST github.com%2Fdocker%2Fgo-events%2F@v%2Fv0.0.0-20190806004212-e31b211e4f1c.mod 35 BLAKE2B cb3636f6ba689ab17bbd240c10dd1f1f150988421212af1498f68fcce3250f61f1dedf1aec95c5437ca7ce92c26ebd115d1b3a16da55d07cfa423871e6f6f73c SHA512 ff56a30d40408c088c121984ad3ecfbc1214da641baf359fc36b8a3ae50ebfac8b98add4b9e4a47f8e03f586800fdd9c268582e581bf99e95009abdcb4e83af3
-DIST github.com%2Fdocker%2Fgo-events%2F@v%2Fv0.0.0-20190806004212-e31b211e4f1c.zip 22827 BLAKE2B 33b13d02d0031c2a898aca18f16292ef603fcdb6aab746a77cb782fd0bb786668434fd5dc99287176b6d57679d0ea565bc55b2954ea8b26fe8914160da4dc10b SHA512 c7770bd3cfd352b844a988b8a0921ec4bac94dfbbf7223a55639ed8501e0fbd06b0b55d2458727459db41c8f0ca93a9c9abd7956f37b39bce2be30acd0f09fa0
-DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.2.1-0.20151230175859-0bbddae09c5a.mod 34 BLAKE2B 37c07a43d4e36f25bb5bbc10a863a717fa114a5eb980f17942f5bc5b1d1a4f58de5301ce871ec5d41f5dae3f05edd7c03a5c9246317ebf089c1cff27d6634aa1 SHA512 53dd482245593fe74b94c319cf4f3079b47313a22aaa69ba023b9e60e8b5dc81177ecfac49e0cbd9b1eb6706f654f387301ceb00313f8cbe530b4dc24eaefe97
-DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.2.1-0.20151230175859-0bbddae09c5a.zip 20087 BLAKE2B a3f34d4ac1ce6d901219529e4a1a9e1fef99dc25b3c769c0ee59f3c9bb0dd78af3d74f3d67bc3a6416d4513084df13f9a1f7a1359e7936a506c5eddc7a7bda85 SHA512 12f8f88fa60054b92b6bb633334c40da0bce5c75f53055d7aee4db3cf6e3f322892fa38e09f97055edfb6b25799e9b87cae5924a38435b30686433546957075e
-DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.4.0.mod 34 BLAKE2B 37c07a43d4e36f25bb5bbc10a863a717fa114a5eb980f17942f5bc5b1d1a4f58de5301ce871ec5d41f5dae3f05edd7c03a5c9246317ebf089c1cff27d6634aa1 SHA512 53dd482245593fe74b94c319cf4f3079b47313a22aaa69ba023b9e60e8b5dc81177ecfac49e0cbd9b1eb6706f654f387301ceb00313f8cbe530b4dc24eaefe97
-DIST github.com%2Fdocker%2Fgo-units%2F@v%2Fv0.4.0.zip 14089 BLAKE2B a825c998f5a7e6432a9d23f49fdf9d8559b8664ce6508468540530efe9585a98400bd38681a24b5a8b2d10b13c4ad91216f6c71153e8c597e3d2e8c8472622e9 SHA512 294682c312e079f96ac920c3f4e3dde7211e36622a378f54f32483e032f4df6f54a1f7314df7c73e2b7391bc559003ffe2bdb97380e4507aba7620ea4123d872
-DIST github.com%2Fdustin%2Fgo-humanize%2F@v%2Fv0.0.0-20171111073723-bb3d318650d4.mod 37 BLAKE2B f097ba062c5ae93b06edbf7827cc21a40d6bf6d2130c44fc8002344e860b3471742cf930e505a74a6a2af3a77a6dcc7d01b103d01f6f208c96dd9ca713c96344 SHA512 be96d9da23cc31932c1001e2ed367e55d06ccf2af41cc106e83b92fb866b61110d06ff224797c942b9ab6104bdcba4542f2214b9fb2d88df63e69be8158c6e2b
-DIST github.com%2Feapache%2Fgo-resiliency%2F@v%2Fv1.0.1-0.20160104191539-b86b1ec0dd42.mod 40 BLAKE2B 9300f3006801602e05416487e6021123ff345e36835b5f4841158bc87556afa086470218c3f2178d125baae065c1af3cb27e210a50173a5bc9a469c592758eb6 SHA512 fb616884898669f21d53576f0fb70c8babc38bb98da066a2cb77fa85ceab6bcc8775feea3d3bcec19ea3b25544c776b8d55ad82f8876da5d0ed5176768da735f
-DIST github.com%2Feapache%2Fgo-resiliency%2F@v%2Fv1.0.1-0.20160104191539-b86b1ec0dd42.zip 18832 BLAKE2B 1c1cbad4523fb8a60546e9c538b11b456003698dcfe44b16a303d426979460dc6d4da5f5ab8888024a669bde18b7ac636479590b3faab41dc82abb9a41c316ae SHA512 10b4417312167ce291062371105c961a3e929ea1085e5d9fcca647cdc1bfa815007b87ec7fa80a3866920a1c2052f63cb6deedd2805637e9deac19763d350002
-DIST github.com%2Feapache%2Fqueue%2F@v%2Fv1.0.2.mod 32 BLAKE2B 51c322074fb7a69418dcdfd2e54b187fbfe541c21a979c8bf8b155a6264cc670eeaa95c2949f2b760b187fa582e86688a045f3f022cb45f053a58e00ec2c0c60 SHA512 bc43f85d5a21cbdf4b3821e707c845d08f8a6d8f2c6ef0f6ec76f7711c53bb4407f2a356c79bbbda438fe138a3cf74a4b279e8757cec7aa134a93f2173b931a0
-DIST github.com%2Feapache%2Fqueue%2F@v%2Fv1.0.2.zip 4272 BLAKE2B 2cd425cdfb9c97c4c942b7d9f43c6a5aec2a3dd6d9db3478abd6e6b2879d30d57d444c826b887f3229e43323145c4a668130de3eac2d3d7fe6008a9dacb5511d SHA512 04c72bf0347f055445575e1f2cca6ad3e2f704ad7d22717276415510f443abe6fe896cad8018c31bd79497527cdd1c872a80ef7426e55acc60da16fd43a99402
-DIST github.com%2Fenvoyproxy%2Fgo-control-plane%2F@v%2Fv0.9.1-0.20191026205805-5f8ba28d4473.mod 378 BLAKE2B 571b914afee85b0d13a567132dd40a80f60224e20685279cfaa1e5e875897c8e0fc94d7097992881495f4c0c090b27c87f6d95db0161e1064434ca0434ae06dd SHA512 f0135b61ef0638fe384c875786abbf8ed9a93836f6ed29d19a2e9a626cf6d6c6a252146352eb32298b826e93bb61b8c733f8a6aa683e5856ebec37cccc64ce58
-DIST github.com%2Fenvoyproxy%2Fprotoc-gen-validate%2F@v%2Fv0.1.0.mod 49 BLAKE2B d910253a9c976078b790d134a9d75e53cbde427e7733ab9e09c9060b312a5749aa083fc48263501e3339a580cc409b5859dafb820a4465827e7fba4eaca31ecd SHA512 755a3d173d43e70ca40fde2d5ce16c405365da90ff595003ef64598c9b9734b7200fe07a16fd555e4209f83e5e17561d18227c46a5f25a41976ff7ac024cb9aa
-DIST github.com%2Feuank%2Fgo-kmsg-parser%2F@v%2Fv2.0.0+incompatible.mod 39 BLAKE2B 869effe65ac30d12ea51ff1945c803b1eea65547381e0ad01f37bf8a68c263a3793e03c7dbcc7cecd0c882020e506cd8e1f2afe187ae8f9c2cce03b5fb9dcf47 SHA512 172218826ef7cc862b47a76156818293267308e8193a2fcd7d0a56b67397f9ee8bd3cf136b4e94c6cf045145189d9a579df05a48c7b413d220d6098940792eaf
-DIST github.com%2Feuank%2Fgo-kmsg-parser%2F@v%2Fv2.0.0+incompatible.zip 12175 BLAKE2B 591c1bc97cf60adb577353983f12eea0897ba836ae9f3d40212c00f8f1d7107375b53449e0ec0472ba5f9bb365be188e05ff74d0e0ff3e5b8f4f17b8b4bfc99d SHA512 65dfa8dc30ec9348bd2a027e29e279d0d24e66e34ad550244340a6a2a775f91c4539478eb14ec7d7041a0f9b8837d8b4c125675c7498f9ae832af348f6870f63
-DIST github.com%2Ffsnotify%2Ffsnotify%2F@v%2Fv1.4.7.mod 36 BLAKE2B 2b77fbdbb6c6c20767c120b390fbd2992bf79dcae0a35c27121a6e755233da3ecb7d74e74c38c0a2463976b546ed8bbfb8a8d8cb140526dd9a0c4f524cc131a4 SHA512 5749d33fb085d63b7c12f43df824c96f168323cf6d88cfea3e2536eeb7b56689dab9dddb8cde1ec8bc9c2848e7148b8a37abf8523a99c55ce10f896245c5f341
-DIST github.com%2Ffsnotify%2Ffsnotify%2F@v%2Fv1.4.7.zip 41278 BLAKE2B e0b440a81efbe3c7c16ad276b4509652fd58bc94cd162b9ab13bb37c1e6edcd561e3fbb999e55619d58c8e3279b785b8eb67fa4e200b38fe6fcb60f0918e6e8a SHA512 9b1075ccd3d1f53773db97687e06fb777741d6c3b228bcc329be580562fb3c34006768eb3f989f92367ca116c597140045b3c345fe36065f5015d1d4652633c3
-DIST github.com%2Fgaryburd%2Fredigo%2F@v%2Fv0.0.0-20150301180006-535138d7bcd7.mod 34 BLAKE2B aacafc6177e1e87c8f4a17f295900d749608f722755d31a1939d1b601e4719984c0d1299fc4de9fe74c1109852009daf4641cb5c81629788a639eeb9314867c5 SHA512 c4b5fc4230e8e9c7631f577ee15414f7a72bfe27af524fd6bfad8c38a81426411dce35a191d840a9c69eeedfeacacd3f2a108c5eec35a3e30b0a7b262b15340a
-DIST github.com%2Fgaryburd%2Fredigo%2F@v%2Fv0.0.0-20150301180006-535138d7bcd7.zip 44132 BLAKE2B 8e06264f68464b00ed9aaa2f9eaf2a2e823d603f7bcf70003b76b896349ce0f9f4f068ba1a7c035cb3ec2932d72cde88d94e929ab564babed04da778476d0e26 SHA512 6ab36b2e7c2848649a3f7cc53b1cde73b43745077576eebf432989511096313291d8f5809e91306120f2bc1c73362a810b9f3d87a4dd93c8f885d18d8947c051
-DIST github.com%2Fgo-ini%2Fini%2F@v%2Fv1.9.0.mod 29 BLAKE2B ec6988d536e1cfabecc7e1ee6070c6429c88de9bd970b3ecb35bf8e42ac3d2dfa08beefbd3741ef7a039020e6d41332039c6bc0e13d5e79bca84cf669e4f552f SHA512 67077f6e3f3c2571d6df326aa1d6351c3f7950337a23c548ff69e73df265db516eee559ee4afff17868068f2754c7ef272e46bc3dd5ac324ed002b749116794f
-DIST github.com%2Fgo-ini%2Fini%2F@v%2Fv1.9.0.zip 35014 BLAKE2B c454b77da0ad2710f1f6622658bbe13ded7b4b8330948b7111fc16762dd4be2bbfb24de5c93e6b2a262da9f4dc45c979c0921505d5f49802435825e5926632f4 SHA512 3f53aede0178d73f42441de2d424a115b3a66e03a1fd10d72c2c9491bb4411ac70daef69d9a23b8c1a281a1cc96cf862989b9970caa37f59bc1b1d5222443a64
-DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20151105175453-c7fdd8b5cd55.mod 30 BLAKE2B e9f919d91a822060a84e112358ad361bc7be6f3e6e7cd668aaa89ea053c08d27bd20d281550e1f5a34f3db10ef19d7ec918bf094c755ba58bc01e17f7269fb40 SHA512 b096b5a6e72184dd2be5fb4f7ea9458e0b61cf6ef43f92a5fe5d225318315fdedd92bdc351b0802bb0959f77beb0aba830ef171ed61c6d84103690c22e8d8945
-DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20151105175453-c7fdd8b5cd55.zip 64714 BLAKE2B b975e15faa6450a7cfdfa55f24d52d833c30d5dddbc10c16dc224a4aa0ccd98a9fb64b0845d3a4a0482f148c862009aa8b2c31d8b0ab9584284c35ae1c299dc2 SHA512 dfe1b44b5b7121a9a4aa1c15424e8f56ae32b2a37e93cfaa20a0931b5e89f49a463b0310188f66d0abe3e916044488d7f752749b593c66d74779e398a8ca6eb4
-DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20190422162347-ade71ed3457e.mod 39 BLAKE2B 9884f8a07f2a84a159eb17ef62e9b17398b84bdea38fc37591af050dcebc2f56b83f851046c3333e604a7f954b7628c16b267c0c94807f7a41d5d2b797db0918 SHA512 c32a84bb302c9db3f31f714484131ee3ea96fa98b224b9cbf2c5fdd15100a24094e94b55175cf1fb0b6326128c2db8950677d8f6d281b49645b0c7b51b759093
-DIST github.com%2Fgodbus%2Fdbus%2F@v%2Fv0.0.0-20190422162347-ade71ed3457e.zip 91123 BLAKE2B 16eab5a0f642cdf2af9b9ffe96a6e83ad03f0a6d7898841defe1ee5855de12a28939c27c7cfa5c1a676c8293238e6282256ed22c10a32ea47bf3d41f7b2fd507 SHA512 74be69e28d337ea6c5a8ad4f2a563f0480d04efcd1e07d75cc73c008a79e5dc9bc4f8eb068a7eae263729a81f686f5614af211ba78dcdb786eaf65e4199e5363
-DIST github.com%2Fgodbus%2Fdbus%2Fv5%2F@v%2Fv5.0.3.mod 42 BLAKE2B 79541bfacd3378a6c6dbe9591309a80390444f2dc2419fb0137c723c6a2ec1e0588c00704ce3c19dc93297b19db89f79bfa09daa2632f6674e35e76819473cb0 SHA512 b9aad4f1c1d4f2c43b293b0c9ca8a600a37ca407ba8b22b0f826c8355828cb7860a96a85df84f720fe8aa2840974807ea7ea7b790790c6dafed794e761f1f26b
-DIST github.com%2Fgogo%2Fgoogleapis%2F@v%2Fv1.3.1.mod 84 BLAKE2B df632df8e017eefb9ef1a1e571927824fb444555a575106c6a4539d41b34f59e2d4c63b214ec07d89bbf03975846e80aacd0b91169e699c7b3702a4c38849457 SHA512 dcf05925d5bc8555650415e460aad5fc38b291116fd633f576ec62250eb098c3074c22378ed0bd3b7c30af20c86e4eef7fa351b2d09a464ca78c7e2165e12338
-DIST github.com%2Fgogo%2Fgoogleapis%2F@v%2Fv1.3.1.zip 172759 BLAKE2B c76ad12b4a6126ec4a6ea89cb7809c93f134e3a6c9ed39a21e49026c6be3fb5577507c7f9d3b2684f77018fd594be506d9f51911915a6d062350da2d2b1187dc SHA512 24ebc4984116e2158b9fcd85d9590c8d4ab56fc4c9e9c1342bc0963c3e68f2e51cbbfae00d28cd226adf63a27162af592235a08507a3a2a4bbe4773372e51b98
-DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.2.1.mod 88 BLAKE2B 0699027ef7284edb7deb6a2640db52a5b93076e3250d42710bf02a1cd7d5f591f1d335ffb1e7e753dda5fe177837fad87a25bf69b03466bb545708fb2952fd7d SHA512 b91b25b4fe769a403fd7a1f82d7720bdb0526a349ffe7cfdfff09a2ba5e0015d5a3446cd8e0e5fe46479b7d2296a8616de38a8183c0185f84fcfc75d202db106
-DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.0.mod 139 BLAKE2B 0c793b0070acfae7ad92de8d8e177d6b9a2519d521bb397da4dc2610927374e4c010db6a4454783556edaabf64e585b00112aea05820874c49f9bb4c4f049fb4 SHA512 232bef55468d9ff66ef7f446d8096a44a0a947533c8665f0f018300b7ec1804a634299a1a6ab64deaa67f1475e9ef68e7be233dc72fb2d9173559800f01af142
-DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.0.zip 2678507 BLAKE2B 016de242c488728027e7867b9e6bdb79547c315035769b9daf9f35200602e2eaa9c7f86ed37da6524cc4913e8a0ccd8306f9439f5d139ec00eefcc6c72da3eed SHA512 0dc9193de5a4dc03e31a128d3eaff02072f6a8cea64101adca52fc66be93374aec522b511032dc19514aa200ce5672641304fcb812b26b26a18326868a527358
-DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.1.mod 139 BLAKE2B 0c793b0070acfae7ad92de8d8e177d6b9a2519d521bb397da4dc2610927374e4c010db6a4454783556edaabf64e585b00112aea05820874c49f9bb4c4f049fb4 SHA512 232bef55468d9ff66ef7f446d8096a44a0a947533c8665f0f018300b7ec1804a634299a1a6ab64deaa67f1475e9ef68e7be233dc72fb2d9173559800f01af142
-DIST github.com%2Fgogo%2Fprotobuf%2F@v%2Fv1.3.1.zip 2698974 BLAKE2B 5fcb1c66d3fa55efca631fe5def383ec089fab784cad7d6a031ea390463a0c552f5fc4698f7648d271f40fb0ae3eee525f149347bb409c951d15d86b7f560e16 SHA512 c7e2170eda176da203ca64e402c11489c1fd183afd3359742e373927ff228d62e445f5dfc001a471303e1708862998c125ad4c2db86919596297b11cae4aee9e
-DIST github.com%2Fgolang%2Fglog%2F@v%2Fv0.0.0-20160126235308-23def4e6c14b.mod 30 BLAKE2B 6dea6116bb7fb72123a93cc8b83dca5455b76591c7948524ffe664bf966780799c4d007154502922e21f688aef5148211db6b0e3dd3f6b545c4192f5bd5166a8 SHA512 3714d2a95d0435a113c36df5feb13f77a07a1514fdf6b5f01e6e8cc5d159067736e0065bad8062dc636fa5c52c98e3fea6985075005b2838bdf53e0b07093024
-DIST github.com%2Fgolang%2Fglog%2F@v%2Fv0.0.0-20160126235308-23def4e6c14b.zip 22449 BLAKE2B 8d2eaf41ab75e870a445d50b62c02877ae8049e282f066d9aedc0dfb54d04af55d921ebc84d1e4131cc66a3f9efdf8270a0e423e563d3f8fc5a6bdd403bcdb39 SHA512 a3c086e660f2285d9fb7d56d1eba74994e8f0052363413337413cb50009ba46d3a432e2b4c67a73bfb753e7c60646d96bdad308d8e634e53f0bb0bb97ea17bda
-DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20190702054246-869f871628b6.mod 36 BLAKE2B 3eee85c76d1ccaca7488ee3039bae6a7a9b4c8253481cdf6d62d1126623312a07264ed0e061bf5d7bde3aafb23e078b2bc86c3718cb2fff6618976c420c7dcae SHA512 5a0f44d45d666885e31206077a515fa02246d56699aa02f7809868029fdf6a718a5df8edac0ec245880f982882c2f4ca1d13a1dc0c7c0f79d7e89c6c46fab523
-DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20190702054246-869f871628b6.zip 39652 BLAKE2B c4c9dd2930eb417b8c6bf129489c3f067b5d127ed0194808d8e7594b477fd13ef20154508126708fc69cf855ee298cd4e9031bc34d3ab8025d2b2fc67ea21f78 SHA512 e23a4491896904321a371bb972437a0b55df33fe7fc31170967d6b4c0ccf917e34f94753112d4623518875ccb4e4da2e58cad54e0a821dc4e07528021a814b3e
-DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20191227052852-215e87163ea7.mod 36 BLAKE2B 3eee85c76d1ccaca7488ee3039bae6a7a9b4c8253481cdf6d62d1126623312a07264ed0e061bf5d7bde3aafb23e078b2bc86c3718cb2fff6618976c420c7dcae SHA512 5a0f44d45d666885e31206077a515fa02246d56699aa02f7809868029fdf6a718a5df8edac0ec245880f982882c2f4ca1d13a1dc0c7c0f79d7e89c6c46fab523
-DIST github.com%2Fgolang%2Fgroupcache%2F@v%2Fv0.0.0-20191227052852-215e87163ea7.zip 39683 BLAKE2B cebd7b69e8f18547e77e07d49ca26fabd513b6bf95317553c5bcabac3b513dc1d7becc259118eadbad18ee4d45a1dffc3ec96864b80d87c0dc6885983bdbb3d4 SHA512 e7a8277f9b7d2e35d1e8586c580d03457ac1e755e1051fcda20ff9f819a6fb9c3cd1892be3a50d4cbf141b35d1c7b85b27bdc402eb45b700a37ce994be4e5b5e
-DIST github.com%2Fgolang%2Fmock%2F@v%2Fv1.1.1.mod 30 BLAKE2B 5c355e64d858c99536e459f9fc4428dc00435bea944b67bf3dda5b61edb5f0c193c5857eb10bed926987cef865836c3f7ae3d8f081a58551ccd0772e4eb565b1 SHA512 ae6a1a6f8d31592ea6141f2ea39c9b60cd28e73ffae74bcf370fa739865b95a7ed56f687975f017b42c59e3b0f1c02884fbd5c93140bce268771380c8c7a7a96
-DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.2.0.mod 34 BLAKE2B a4239cba934b6e80714b93d47e88f22ad28ce41d1d984c4261cc3f5f3b857fb28785223fa911b258e2665be2a9d24ffbd925e9e0f374452a2aacd712ad9d5f75 SHA512 e059a34363bb826bbcb8981adbfc10da90e04b86dc5376ab20bdfe1fab135953cff41ef1daa116aff10e9f3e6503168f6baf902f09aa0e8cd9a0da96b932f4b6
-DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.1.mod 34 BLAKE2B a4239cba934b6e80714b93d47e88f22ad28ce41d1d984c4261cc3f5f3b857fb28785223fa911b258e2665be2a9d24ffbd925e9e0f374452a2aacd712ad9d5f75 SHA512 e059a34363bb826bbcb8981adbfc10da90e04b86dc5376ab20bdfe1fab135953cff41ef1daa116aff10e9f3e6503168f6baf902f09aa0e8cd9a0da96b932f4b6
-DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.1.zip 461624 BLAKE2B 37b2bbde9cd1153fe5811ae008983179820ce40fd6816155fc7b7d040e29b8725509f68c30b5099b686e9a6ff31a2d029188aa526ada6375fb9c7a236b8a7d1a SHA512 a99c2150515bc3deef1d7887644497fc4aaa96ed6c2aaeae91aabfaee6668c144b34a2c75ca829636c7e88d59b297601867b0f188ac048de452b5e0767480608
-DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.2.mod 34 BLAKE2B a4239cba934b6e80714b93d47e88f22ad28ce41d1d984c4261cc3f5f3b857fb28785223fa911b258e2665be2a9d24ffbd925e9e0f374452a2aacd712ad9d5f75 SHA512 e059a34363bb826bbcb8981adbfc10da90e04b86dc5376ab20bdfe1fab135953cff41ef1daa116aff10e9f3e6503168f6baf902f09aa0e8cd9a0da96b932f4b6
-DIST github.com%2Fgolang%2Fprotobuf%2F@v%2Fv1.3.2.zip 465217 BLAKE2B 4caaf832a22faf1c45e04bebf35d29b38bfab18a490ad1fd7b2c6cd85ae678fd3991505f68e526f9f2205cf919374b07d57f8abe95d8f74dc8263cd37a9db3dd SHA512 7fe69c066b2407e6000ae21888f6cc696e51df2342a71e196aba1a9a9ecce630bd9a4d41c58b3105002508a4d0efb9c5ae2b8a87f848b8e2c6293558b8c4b4ad
-DIST github.com%2Fgolang%2Fsnappy%2F@v%2Fv0.0.0-20150730031844-723cc1e459b8.mod 32 BLAKE2B 8b498b103962181cf69cf5de686eee1a7f0e481ccd35430e33999c951b91ebb98e9dcb1dc9c4e40cb379fe4abae40a47eb36d9456fea076e44245022552d055a SHA512 c9faa5760addf2869df9a3ec5ed9da02944823afc5be93b8b6193c43261d167cff2aeb65bb844d959d368ada83932c86056aefbff799be326e889d3de4c2b8f5
-DIST github.com%2Fgolang%2Fsnappy%2F@v%2Fv0.0.0-20150730031844-723cc1e459b8.zip 13277 BLAKE2B 259278e0f62f51a8843872aeecd582d5c21c2d718849f79eb43ead75a8f1da05e760b34cae8114f24d20952ffce470746c230476e9cad59968f2b7e09c43136c SHA512 d4f6b0163d3d8180b79958f79fbeaef816af644ae6426700cd8d6f3ccc60f74d6f0aa2074a5b9fb991a25af5f96c7f2461fa4702a98d60cda8efd5bee7e90944
-DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.2.0.mod 32 BLAKE2B 7c7baa1e29b9806fb97e0d557200e8722f2d373e149127307efa285cdfedb36dd57355168554d1a1bada62144e6a6a00c4d3246aa9afc7d0ffae0f087459c552 SHA512 7229d917bb0c788b07297e1b09b8f7952f951998a56f17ea1f69ff7c2f565a5686b212f42f45c6b8351905d6740a2ec5a235e493daa531ae00cb709faf67ae45
-DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.3.0.mod 40 BLAKE2B c717b6aaf18662c20120746a021b0ca878e7b190b3456cab24ec98032390a85b0af8540295e470647d403bf1beb582c8f8a74fa7129c4cbf747257206235c5a5 SHA512 351dc24af135b9c9d714aadce40fe9fa1ec05a35a4df90af79926d5119c3f33a6510ab9d78243748d7dad10bd2178f47d342ea2389972b88d5e9b4be6dee7daa
-DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.3.1.mod 40 BLAKE2B c717b6aaf18662c20120746a021b0ca878e7b190b3456cab24ec98032390a85b0af8540295e470647d403bf1beb582c8f8a74fa7129c4cbf747257206235c5a5 SHA512 351dc24af135b9c9d714aadce40fe9fa1ec05a35a4df90af79926d5119c3f33a6510ab9d78243748d7dad10bd2178f47d342ea2389972b88d5e9b4be6dee7daa
-DIST github.com%2Fgoogle%2Fgo-cmp%2F@v%2Fv0.3.1.zip 99651 BLAKE2B 14632f8da685fecc046b2cc9e61eecca02e7bd4720ebb1d3cd01a299e59d47cc604abc57d5518e18dea69785e3d5d539d87da211279e238a78dd23e3d7f8c7bd SHA512 4b47aa3677a464af17f3e320f41f59e775b45f04cabf2cf749e00ba1aa97e27ee78a07daad347bac4b5c41e2c430634fba57c6edbcd7ad405b5a084142871362
-DIST github.com%2Fgoogle%2Fuuid%2F@v%2Fv1.1.1.mod 30 BLAKE2B 704029826c505198458e86463528ce2c1b209376f376b92d4f05a0f4094d161b45470d04ed3c1b5635397aca3126c25911299711139d794cca3e9b2bb373ee17 SHA512 695f3424e0cc247a069fbd6b94820554e003030eb0e208ba7be38f660c5fc29f74a057e60031ec77918b5b320913d6deabdf19a0f0666b0f5bc5e2724e1fddba
-DIST github.com%2Fgoogle%2Fuuid%2F@v%2Fv1.1.1.zip 21279 BLAKE2B d8013c686f7cd497091f4c7d782b283eb95faa7617d68ec7f8cf937c5925d677d8552c662291e41cf2c137fce163d45fb62dfcde88088225c13e0980fcde3d7e SHA512 f28071ffb6515262fb73276725181a806740688fea8de8d9484e1204fcfe6e5fd437e38a3299acec6bb545deb31373d910a09d92937308176b2043ccc9f5397f
-DIST github.com%2Fgopherjs%2Fgopherjs%2F@v%2Fv0.0.0-20181017120253-0766667cb4d1.mod 36 BLAKE2B d7cd8f31950392cb5de7f4223ff9fe3257568dd0a1c1b81c8b97934ba92379753dc936c81c39e5b553e4101bc7c035ce81c8d669d85ed1d1eee41a74218f3d88 SHA512 35151946ce44fde9d3bde1d0626749ac4bc68cc448736c3b0f056f40a9ae30aef591db614b271df3eba3a96dbc94052ea5bf7ff68749ec980088d60361934771
-DIST github.com%2Fgopherjs%2Fgopherjs%2F@v%2Fv0.0.0-20181017120253-0766667cb4d1.zip 257755 BLAKE2B 13d505a73dd179828fd3dbcbc1dfb90f6bdf8a888bb7ab160713a566472adf63d45491fa29928853d76725c2ffa5ada33e802cf857376c83cd8085a31acb48b5 SHA512 5bb0e61c8622e09cecc099c80cd97cdefbc497d4ad0e88984b2936e7731991e972883eb639be1cc3f56249a97b4f14c6820cda6b1c08e4a2323aaca22b840dea
-DIST github.com%2Fgorilla%2Fmux%2F@v%2Fv1.7.3.mod 30 BLAKE2B e02807a9c1526691f789f8b176ad7757507d87fc5fe0d52b8997d72e9d528682a6fd10aea2426d11649c3caa7b6e4ae3c552e86fa30f3f710e6354caace3a88b SHA512 2facee17b28c8b9111ec642ffa0975e7f80601b4ffcc4d1756468e963236fc303cf69d3b5129287b746dc08a66fb719706bef277171b709a3013e6b4ce7e43c9
-DIST github.com%2Fgorilla%2Fmux%2F@v%2Fv1.7.3.zip 54002 BLAKE2B 8f6fc685cc85f850ecc0b7dfd63c37a23dfb6d0b43107ac749365b10f254f8d6cbb16462848e317d91410af8524bbb1c7856eac54c7e94ab6a92d813434b9c40 SHA512 8f82d0b2d7e881b7533e6755448c01a8e32db5bd117d61afd9456387ec87761b58ffad050c4b5051ec4853096c0f11fcc5b87be21c4062ddb3d365e23405123c
-DIST github.com%2Fgotestyourself%2Fgotestyourself%2F@v%2Fv2.2.0+incompatible.mod 48 BLAKE2B 1928fe4e63005bf9d678f5d275400bd3519d679207918c44b0d93e829e1171dd1dded06cb8d82109e1f0b06b5b8a3f5124f1596e736ed83c15b6831de57a271c SHA512 dc9bf8e49c8937007be31d97dac8bc58e0ff9e983b8f287c50944ba074281c1e2d20e643cb26fb207a936a1703680a2884ef10d07bb0b9fa0c545d5414dcdb91
-DIST github.com%2Fgotestyourself%2Fgotestyourself%2F@v%2Fv2.2.0+incompatible.zip 93535 BLAKE2B 5bf87f311a8e5467a6202c59609ea2620aedfcde525a1ff7e7ce2c6b436a4eb965ba7bfc2d19883ba467395629d9f0835e9b55f795e9456fc29974d37e6be12c SHA512 9e7aff78ddfa1ef1f98af32b05d6f8da72fcc49dd1cc3b9297d803cb5d6709e8135bf43aedab7ce5a55b29891964f15aa36029893c069b9088c65d225783d3ae
-DIST github.com%2Fhashicorp%2Ferrwrap%2F@v%2Fv0.0.0-20141028054710-7554cd9344ce.mod 36 BLAKE2B e3101c1f32c24b5d5bd3de55b4f15645e7f0b338cdcfa00d30cc4c063bf4e9e31e68972979e8282d04920ffcb54f112c8c8f6e0e109824e56881a6a699cdf622 SHA512 2b68ca06311d8602f04eb738a68a24951a9187aa70018d938e549cf7b555bf54dadbda5825501436c52f6103bcd220ed170c99e4cf777187e2b997c87f05fb0d
-DIST github.com%2Fhashicorp%2Fgo-multierror%2F@v%2Fv0.0.0-20161216184304-ed905158d874.mod 42 BLAKE2B adaf8e14cd6696bc97bedcada70988d2508d8bf28e94a8b528067359665aac351ec7b7f38ca1a89ceb0c18c3c7935e30af4df20102563c9372b34b0cf54d41bb SHA512 da70feb8b6a17512c3761ce6f13653ea47bfcb4af69b471a3bfde9b79901d0f24ede05c10d35f3e051df54e1e636a848be5d00194ef5e9b85bf7915d6b27dd0e
-DIST github.com%2Fhashicorp%2Fgolang-lru%2F@v%2Fv0.5.1.mod 39 BLAKE2B 13f90f934356dd1daefd27a94bb7a8c31f09835ea69f3fc83d343004858c6728bdd6bfaaa919331f7ee04744d18ac37f46a13be9feaa20e24e88ee364991a9b0 SHA512 bc3e0c3b16454e0f079bef539857c22f09ebf11e78ac1744a22f5af87d7297979b7ccdd48e4f59605cac562c268c3cacdbf2745f65be5c934f73f216707120e1
-DIST github.com%2Fhashicorp%2Fgolang-lru%2F@v%2Fv0.5.1.zip 19548 BLAKE2B fe48c3db37bc280cf5f36e522f4b13f7daa45768cad11c1148634ce7af618c1c20f568f98ea7193b0be7021fe8a4d209a4a7f1c94be3c05924a36022a57c46b1 SHA512 6927a910a368e1f2b0792989858d25c5a55891082cc38f5907c539a35919916e02872619cbf45ed583c6f6f8e85936a3fa790a161b071dddc922383e983d37ee
-DIST github.com%2Fhashicorp%2Fgolang-lru%2F@v%2Fv0.5.3.mod 48 BLAKE2B d49fb83b0e128d1d891c78fd7efc4d1f6c92ff9ba30943fcda9b89d752d468836df7c37d6f30d1b4e8eaa5cd966c4b2ec90efc087887f037cce94654761ac107 SHA512 a55d0882366adebd894e5ebf9de5f70ac8b5f8f945e52b7dac8e56b4efc03f40930d132ac03bacb51ca220bad114940b9e27bc0ecbb92dc739691674a8aa5e15
-DIST github.com%2Fhpcloud%2Ftail%2F@v%2Fv1.0.0.mod 31 BLAKE2B 7202132cff9b47a4484c61586949dbf7e13622067675cdd09dace3ce2e5b3a37b6fc5275b3bd6dbb0ec6ca0335bb7c9a036cc043b2d8ff1f38bc90ce13041aec SHA512 54a5bbc02b82693a977a4f690314b16d94cf071decddee3a4af2a90398e626ff188bc34ab3517278e7aac4e657f3f3070a020c85274be3750371dfdeee139b23
-DIST github.com%2Fhpcloud%2Ftail%2F@v%2Fv1.0.0.zip 24894 BLAKE2B ab55c48bafc78202f2a0a494c6b00657dd81c078c0a23f797a59049e8ac59bc399f784ff81beb710aabd1d035e7ee3db5a4c90653d6e57dc3b3f0bcbd098fd39 SHA512 b77e39712e985744e277604bbbcd48f32d28ea69eac7a6b6cc0a3f8706e2970ccd5410761784b64eae73a07786cf81c665934c145369317b8b961b503582643a
-DIST github.com%2Finconshreveable%2Fmousetrap%2F@v%2Fv1.0.0.mod 44 BLAKE2B 764581d416faa477a91695a42c68cef5638d019a1622fb3bcee976c1581e904995d33c79ffed1d3b805f660931ece844b3e17437f158f8b82ddae82e95f0358f SHA512 0c77200112d96f9cddf8cf7da0059204914b06a8c400e2e672443bd02a45d9ebb3274275c20e6e7ee0728992e77579d945b36de44ccbaab2ee92fd55f382f7ac
-DIST github.com%2Finfluxdb%2Finfluxdb%2F@v%2Fv0.9.6-0.20151125225445-9eab56311373.mod 36 BLAKE2B 9741c89f9ed24611ce292f620b467f1be2e514583a191046aa2bbc68242776d92ca85f1b18bc216683b137dee00b6210eecf424b48b418cd05b2684aac4e8c80 SHA512 3f7987e0aecbedbd121eb6ef63e8472450cdd607cc116cb4e85bfdac79fede96aec13ab0882efe8cf45d15a959e56121ac684be7033f4284339896183a492eb0
-DIST github.com%2Finfluxdb%2Finfluxdb%2F@v%2Fv0.9.6-0.20151125225445-9eab56311373.zip 1186832 BLAKE2B 40d745a2d0754058e06641decbe49d07f7cf27d1144306e6e36fb23faea71a2ffe95d920773e8996ba99cc55c9f296dc03d7ac6388e061e36a85012196dc81e7 SHA512 7dcbc89888e2396067bbcf000bbfb3f109e128815de122ddecfdac84002310d27c591611cc7935d852cf9820f5e7b0fd092cf43726fb6feabdc0780ad298d2cf
-DIST github.com%2Fjmespath%2Fgo-jmespath%2F@v%2Fv0.0.0-20160202185014-0b12d6b521d8.mod 39 BLAKE2B 6129177aeb4cc82860b5e233715d4330fc61c4b6783af687d936a5d783b32f7192f268ee0954d8a37fc1a6c22c147e86a1fc1c9ee8f48cc979931b0500fc92b9 SHA512 19819e43a514d9d7b1c8703c06c3729456a39a963a1cd3cdce7f6318a3ef67f8663c5a66b6bc402cf422d823b1b63540a6c79f371cb81ecd1f13de646598566a
-DIST github.com%2Fjmespath%2Fgo-jmespath%2F@v%2Fv0.0.0-20160202185014-0b12d6b521d8.zip 231438 BLAKE2B 3441c5935f2f495a78c9f80dcca293e8c08fc8dff96a85dba673411b12cc03af2cb8b363c2cea07cb131435063e6f6ecf0c4e0a59f6060ff66cfe96466f8a96b SHA512 5dfbed7fa77c3827515f046923237a17c1dde62275e2365ec599ea6dfe4c93a1cacb1401c5d36f4379e4d80425352abf67ae1a0b25c7ebfb974256cc9b26d983
-DIST github.com%2Fjtolds%2Fgls%2F@v%2Fv4.20.0+incompatible.mod 29 BLAKE2B 8efd6f84dfcb696fa2ebf7b09c7405d57457dc67e03a2cc753cddd93698b1b03d84022f241c4b652dd80e0521b2b1ede8127fa15dd47d1f678a7fe1c31fafedc SHA512 3a397e0ee84d8d426eb5a1f39c07d608e0ed53b1d4b2fdbd137d23bf9f401840802d18d5203bc468fac76402c508bfebf49bb20869d8a715e44c49e21fd3da4f
-DIST github.com%2Fjtolds%2Fgls%2F@v%2Fv4.20.0+incompatible.zip 9901 BLAKE2B 0c8cf7ad0809f65d91b9ad5b27759cfedc5efc25194f19effd4b19c35c940461a48a57636ef3c707b27ac614b693ea05830bdef6943f11993bf561ef558cb99d SHA512 08b7201a9aa3294a3fc59bec78fee09f0d1bc7507b50b1d1cb1fa29a523c6870d00b633ea9679c9c86df9841739f46e9d5d9bbf0e3ec15b8ad08e57db67eedc0
-DIST github.com%2Fkarrick%2Fgodirwalk%2F@v%2Fv1.7.5.mod 74 BLAKE2B c12920e4f3f51d17f6d3349a0833623766ec6a3a609850db89372062a02ca712e3080ce187754a22ce45ebbf35b6d4e317dd6e5a4071d8fd140cdd7a6b09965f SHA512 407f46f7cfac9c4dd5feaedab0f708a9ed13107091a15251dd4963cc2c32290f57614d4b5b0a371dc9cfa8ecd49d85b13114d635e1176d56782098e8978cbfc7
-DIST github.com%2Fkarrick%2Fgodirwalk%2F@v%2Fv1.7.5.zip 25761 BLAKE2B 08f337201ce7a01146ced18673c87e0905a39309943cd56149a9b536ab51932cf92ed6a70050b44400f8767fddd5537628e16206d0af4f084fd096b9ccf979bf SHA512 213fb487b2c6aedef502a24522f0ec8fbda28adc215959d576d1d03646dc516b9e7c4cfe8949ca2598ae8082d1806e66af796f086d23098cee6c40659d342d3d
-DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.16.0+incompatible.mod 40 BLAKE2B 1553a76830770feb3d6220cdf688b2f8f1f296f1141fd84197d5222b170806b508e895e5edf6cd5e052de5e272a211b7e01146d859670d210fcfc9ebd85862a9 SHA512 b4fd0fd62d0eb05abc32196dde7798d4d170680ca6cc151e19be765e5998759a5d570ea76f9c047259a2fbe82032e0ba5c73b63ff48b13a2e314240ac2a922d2
-DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.16.0+incompatible.zip 15411331 BLAKE2B c717893838b22cf5de73016e0502bc1ab1df82418889e866ed402edc630b423467603725934f56c6033c0290552625f28f66465e601f6dc1824ae158a7514e98 SHA512 5d5fa181f705c1ec4521ee2629564a33b22cb64726b3355b91a2abddb715e38a6e162d2902c91c4e13028e4978d4f5744d001db1d75a80e3798c39872e4069d7
-DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.17.0+incompatible.mod 40 BLAKE2B 1553a76830770feb3d6220cdf688b2f8f1f296f1141fd84197d5222b170806b508e895e5edf6cd5e052de5e272a211b7e01146d859670d210fcfc9ebd85862a9 SHA512 b4fd0fd62d0eb05abc32196dde7798d4d170680ca6cc151e19be765e5998759a5d570ea76f9c047259a2fbe82032e0ba5c73b63ff48b13a2e314240ac2a922d2
-DIST github.com%2Fkevinburke%2Fgo-bindata%2F@v%2Fv3.17.0+incompatible.zip 15412126 BLAKE2B fca367ac69d50f551e25a6fe026c13e8f359efac91735aa6ad6cd89e92870dffbe9bbad316d03d8f9af50d9474ce391714e7b0f14eaeceeba60f2b1cc5014ade SHA512 ca9628715de79cebfe6b10158698b7656245a16c96e41c43c7831c3902847b5cb1e7dcd5fc17da6e56287058289d34e429f63acf18e57dcf9068429e9bd1ee09
-DIST github.com%2Fkisielk%2Ferrcheck%2F@v%2Fv1.1.0.mod 143 BLAKE2B 128f8934f81d0e497e1258ec65129fe5d8831b66058669a5aef3fdb2fbe5f6d8ab30bfe97a1de7befadd34aafd55d6d15bb787e8948fb7718761392817203874 SHA512 c5e546822036a7114a29454e28290f8e1082392a47a101fb1d370e0969fc2c83186b4487473f903dd638abb8a763ce3180dc87993906895a2df33db7d8bc4790
-DIST github.com%2Fkisielk%2Ferrcheck%2F@v%2Fv1.2.0.mod 98 BLAKE2B b9d3c55999054ed927f666a43066ccc6758a6c5f550651f43ad5d85b5403c882ee76ac2b2553803d71789da33c60ea41857ed545003072ab6c666dbb77118e00 SHA512 3529b37d770af511a716a612b7fd7fb6a4805d13166e3a6f9378950443f6eceb2f3d95db5a46027437ce55b36e571c75bba72a03769d21ecdc97888019d80a68
-DIST github.com%2Fkisielk%2Fgotool%2F@v%2Fv1.0.0.mod 35 BLAKE2B 2f43dcbab430f12316fde243db4bafe24372c74d60874b05917269e249a36660309c23da151db31d89c0d0a8fd0f179e2dd7f386af3ca533c95ef74017609af9 SHA512 86aca37f7f94ada381e0528a535b344c8fdbab9e0dcc7b71d716083501ad3d61db701ee159ccfb5455a351fc18a405301abe798037dd1200f9950bdd805d3dc9
-DIST github.com%2Fklauspost%2Fcrc32%2F@v%2Fv0.0.0-20151223135126-a3b15ae34567.mod 34 BLAKE2B de38b76cc80d4772016edec60ac6de4a290b1083a1979630a8aeeb2d6e7ad0c5e92ad3c25e1a47b6a540f106cd66a39a5057f3acc0f39ec16ca0c1a23691bb9c SHA512 97259895cac5090158a564861a3e58ff60728471fa5f0cc5225588cc5072dec813433942e39ef3fef99a00fe1b3147814e76789501c45d1f56f30403151399d0
-DIST github.com%2Fklauspost%2Fcrc32%2F@v%2Fv0.0.0-20151223135126-a3b15ae34567.zip 13878 BLAKE2B d074bd1aa584d1635a0283376a82e01f499f7abefbd91bb081c9be94052a4b9defdee9e004a137e98ced42a8cd876dbd9520fe70ea9fad3b5181c25f409613c5 SHA512 52c61fbeae7ecfd7a00bfec7586e20394cb5834e15ffffff631677e57569354e6b80e3680bbfb618cfff7c2e5ae3344be5e46c0ef3093b25cde46e7dd8cda0c0
-DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.1.mod 58 BLAKE2B 4cf48282c28d2b8237fe9ff852ad25d102cce038fbd1852a1938bcf69c895df05dfdef6e533b3c0b4da28103eb5e3a9561f802414ccdd99b2d3ec2e2db0807ee SHA512 fe33ca4de6588b95f0155458b8b6daab218553b58de5dac220efe54019dfab085838cc6a22012a106fa36a6094447f744825cad04aaf0b158fce5aa676048fe5
-DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.1.zip 3567 BLAKE2B 80b7bf217df9367160180d44c1fab6a9f10154bb9a6455538860158a08c5bf8c794fff973b899b1376e4e65764a9aa0d6b8b162a6d9ebe1adb1368b9a2a42786 SHA512 27910ae03fc9fbf573ac31454635c43bfd771d2a91325eca544f7be0e24b43c2798ed8e74b4c31e8c20c1a9cd266b835017aea3a3e24c2ecb43a14a6143af8e1
-DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.2.mod 58 BLAKE2B 4cf48282c28d2b8237fe9ff852ad25d102cce038fbd1852a1938bcf69c895df05dfdef6e533b3c0b4da28103eb5e3a9561f802414ccdd99b2d3ec2e2db0807ee SHA512 fe33ca4de6588b95f0155458b8b6daab218553b58de5dac220efe54019dfab085838cc6a22012a106fa36a6094447f744825cad04aaf0b158fce5aa676048fe5
-DIST github.com%2Fkonsorten%2Fgo-windows-terminal-sequences%2F@v%2Fv1.0.2.zip 3968 BLAKE2B 223cfe3604cb674a11d4558b8f5a35e2eb41cf11d536e2e2cbdccd6a3c6bed8abf66f450774b39e7247493ea8a382906617c5f297fda02a272b18eef8dcbcf47 SHA512 16c4bf83b78541d2d684113926813ce4cc91f3f13f34dc2cf8d643661dc9f21a988b8382d2c058e138fc87c1ca197e8f694b07595959e917c82bd6ca9101a5ec
-DIST github.com%2Fkr%2Fpretty%2F@v%2Fv0.0.0-20140723054909-088c856450c0.mod 28 BLAKE2B 2b6688f37d22922f112b15c0c59e6b4c0f1ae21a6280e7de57af2d3d154edb42b529ed75b6634eabff8fb5dcf302ba54c033013aa3f89bcd0e20e82988ffb8da SHA512 9ad5dd53c8baa8c46ac9f42b4644ea39b312ae2254cf4df3f488a09986fbc9ca9305531466943a2949de87d7527a8884601b24278d2b2792e5e93c848ce689c9
-DIST github.com%2Fkr%2Fpretty%2F@v%2Fv0.0.0-20140723054909-088c856450c0.zip 8979 BLAKE2B 5abf959d2309934b63bdca0c8e3682ac46023fb01adac0b119b885041a710e949d9f0b9b91d2a8799f30cf9ae98d67afd9962fb1be08ee27c22feabc91d602b4 SHA512 d5eb26749e8387eedc039518f5f9e0022207ccdc32cea455e55ad254a876474e23612841b7a331e210b876cfecc52b3dadb10e8cf015d70bf0ff7a84d381b0e1
-DIST github.com%2Fkr%2Ftext%2F@v%2Fv0.0.0-20130911015532-6807e777504f.mod 26 BLAKE2B 26aa3d077de6f102d7d295c5c9bbd422469261f9a3d9a0795e287eedc9a18c4dbefe2be0d748d89dc6744feaa786c3d295b05edd5688767b358f345417485c69 SHA512 fe4154b5dd6a373fe0f862d74cfe6ef4cc581c584a534b4b2c8e4ff49ea4653fc91b09b0dec9807c26deb37825192fea822ca26a810e154df3f974304a1746fc
-DIST github.com%2Fkr%2Ftext%2F@v%2Fv0.0.0-20130911015532-6807e777504f.zip 9203 BLAKE2B 67c7481eff5296a98455ecc705a36ee8e7191871f958fac2b11dab96f4cf3117d72966eab5abed4dac67a625a17587d02450bf2a877cf3b3208cfdad7a1b0f00 SHA512 bcfc876a373e23827ec9ca91ee15b7be74c803ed05e893de49b06f2b5bbf127ee90904fc836cb4e3fd0e8dedde3920be63fd407b70e1b3f49c858aa74f242d16
-DIST github.com%2Fmattn%2Fgo-shellwords%2F@v%2Fv1.0.4-0.20180201004752-39dbbfa24bbc.mod 38 BLAKE2B ddc3076fa3a93a287dcc66d087fcfa08483a03baeccc6fcfdca7c390908cd0b83017754103a78f6977c929d24868a9ce78859bf9e270fd84b5fb38ef8f939f9c SHA512 79ad90998c2a3e01501014598c152d4d08a92d354678b5e395c4a16ded8519f12e4ea883485ef49f07e240c52e075c7f9a07a410eaa9a1aca3657cfbfe4b6368
-DIST github.com%2Fmattn%2Fgo-shellwords%2F@v%2Fv1.0.4-0.20180201004752-39dbbfa24bbc.zip 6775 BLAKE2B a10a2c73e0368afa3553965bc71c0054edc49db8b35e854d65583954d34e2c64408307d64e81682e3594315196cdd6c7ea08c50244d9c30e350db7552d0dd800 SHA512 60daf098d8d55e798617057db433216a0842ad5c143be717d0ff7d208895ddc747674f815f3992acca13962cca4b982dad463807270cf0efb8488bdd113e9dd7
-DIST github.com%2Fmatttproud%2Fgolang_protobuf_extensions%2F@v%2Fv1.0.2-0.20181231171920-c182affec369.mod 178 BLAKE2B ad9b4e7186954eb025beefa7c1d622146e2329ec6d9483da5f6066488a2422c28bc54071bc28bfc50b916a5cb9f07549bdf09bcfc4e1edc78234b84900638a91 SHA512 e830b9801e4d9645c55dbec3750189c4070d7125dd2aa7332c58e9307917a869bd432cc628680d2e9e88ce646eea9c63ba2f8aa85c53b20bfd3758c5217f5fd9
-DIST github.com%2Fmatttproud%2Fgolang_protobuf_extensions%2F@v%2Fv1.0.2-0.20181231171920-c182affec369.zip 46423 BLAKE2B ece8bcfeaa56e6d038bafb4986733763fffff1a29e232b0b86513a0ed00416221d7b31352bff01a711cf8952687bf9fe3a4e51024e6d8bba04f4defa457bbb4e SHA512 87ef30626fc29616a17023a2c9303e1e55cc9ab98b58444119717d97641d92fea8bca0fa6a64131fc4c01c4f9a1f293571a54b76f2b938be4518378ff4b73342
-DIST github.com%2Fmesos%2Fmesos-go%2F@v%2Fv0.0.7-0.20180413204204-29de6ff97b48.mod 33 BLAKE2B c2ae3fb0378f569fb65273b84ce9a1bfc018fc215f007231e174b35289617d0115440adef419fde8392d6f6a4af42b50c5e0ec1ea751130a83554420ecb0d885 SHA512 638ac70369bf89f7a511e8c8407897921860f1046e9d99ec285b361720647586bc2bd47e1bc9a1cf382f477373b82caf29922b9bda1fbb875c501f6de4723310
-DIST github.com%2Fmesos%2Fmesos-go%2F@v%2Fv0.0.7-0.20180413204204-29de6ff97b48.zip 1522483 BLAKE2B d6f43b2c21fca6325a7a3c63571abb09d9dd9bcecaf37851f12f7cf8d18fddf4e64e910214ae8333b7ed8c2b5975de1c044f3cc3d9d785b75847b6f42b897575 SHA512 93da8b09105d5d055731ece9c335516a77f146fc3c47915ded5ededc679dffc4a8647d450f11b170b7420532e4a3ee29a7549eb776bfedf708b0b70b0c8424ba
-DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20171110221305-fee913ce8fb2.mod 36 BLAKE2B 18ec4ace4de7c41e3147a0c0b1e2fd044434216707275d2a3db0da6f072f6d45f3c5a451050d4881cd0a684ec2ee12c975d94bbbab68865453b08339bd4169d5 SHA512 ade92d48e56c72c2260143b7d9e00437e55cf825a2d5cd3240fece4e1c01c77a97d7b2b5db4227112bf656b402b91be3cfe4d8890ab9b6873e2e828da1615d50
-DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20171110221305-fee913ce8fb2.zip 57760 BLAKE2B 7f9b4ba6a103c9983f3c006cc3b8dc18a5adc65ca70fb23496867ff151bb49fa00a31273272a35eb24a1a0d37c10133822063066b82007fa7efda1e47592d15a SHA512 3c987c83fecc8db1e34f9b6b155b080a7ccaa13f6c84943e6c8caf2d0a3313db2870e5320286ee41d92288e0717fc11b76c8910765a6a0bc9a898ecb288a5839
-DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20190828220739-9ebdce4bb989.mod 36 BLAKE2B 18ec4ace4de7c41e3147a0c0b1e2fd044434216707275d2a3db0da6f072f6d45f3c5a451050d4881cd0a684ec2ee12c975d94bbbab68865453b08339bd4169d5 SHA512 ade92d48e56c72c2260143b7d9e00437e55cf825a2d5cd3240fece4e1c01c77a97d7b2b5db4227112bf656b402b91be3cfe4d8890ab9b6873e2e828da1615d50
-DIST github.com%2Fmindprince%2Fgonvml%2F@v%2Fv0.0.0-20190828220739-9ebdce4bb989.zip 60421 BLAKE2B 4bdcf5bc8127af87eb60f981948527dc179a37e6861f17b31ccfdc7992a7f7c24d8005273cc1577d7e48c92fe67d3e11670e88dc90abd0097de28fb3d8c40bae SHA512 97ffd225c5fbfa53aef12e4d7b25788098d07d96230834d8707aa9446d99c40ca092e5fa59790b5cdf1c2ad81edc19a946730390c0616653c8cb9cb604106d4d
-DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20170901132433-166dd29edf05+incompatible.mod 35 BLAKE2B f74f76885a3c86b832d1e7e80ef9d282c27cc236a3e48ce3bfeb10bb5a5b2ee0820adcffc89c0e30b7a27493b9ee8f131cb5a151baf9c1b7edc8845d30fd4531 SHA512 c5cf4433f35fd5795d64388816ffe45b49fb7192c2c7bf4fad21e680cb35bbbbf046945c48e3a6e1c3d8cf528942b5c2eca85de9d8f70811d910c4624b53f2bb
-DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20170901132433-166dd29edf05+incompatible.zip 21170 BLAKE2B 3ea0965d40ea11c968f930096a4de086f15d8898225ef2d74f55b2909172fe346cbadfb1545e0e6ab8613e9c2462af72a34f131a23270ce1da92e5a2d1e2b306 SHA512 f67d2e2d02e366a16126e922f2fc6e6de3c2755fb90ff6b37d366afa6614e77e639ba26332388d1416fe42da6721d0f030487b861bcb3012342cd59fb546fae4
-DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20190413222219-f784269be439+incompatible.mod 35 BLAKE2B f74f76885a3c86b832d1e7e80ef9d282c27cc236a3e48ce3bfeb10bb5a5b2ee0820adcffc89c0e30b7a27493b9ee8f131cb5a151baf9c1b7edc8845d30fd4531 SHA512 c5cf4433f35fd5795d64388816ffe45b49fb7192c2c7bf4fad21e680cb35bbbbf046945c48e3a6e1c3d8cf528942b5c2eca85de9d8f70811d910c4624b53f2bb
-DIST github.com%2Fmistifyio%2Fgo-zfs%2F@v%2Fv2.1.2-0.20190413222219-f784269be439+incompatible.zip 21210 BLAKE2B 4528a715b184a73330d73f5ddea1288225cb3054cbead83b4d5c9a1675c2c6a66bab77a1b09591ddbd8929b31e76b3f9b8bf6de329527654e108e2e4cc48fa59 SHA512 6c077c8497e01a67d4839b82b6b74b13d1c2b5591a92b7f018a622fb1388bd1e100435db5fb9de19caae5c9cd1a647befed4da5e496fcae42afc68ead47b8d80
-DIST github.com%2Fmrunalp%2Ffileutils%2F@v%2Fv0.0.0-20160930181131-4ee1cc9a8058.mod 36 BLAKE2B 787cabe805d9f0e03a6271f517cb58f18796783b308a50becd1183382cbaeaed9d55f449a7dcfdb22c050859a7654dbf0131be32e36a3974e7bb49f4ed70a2d7 SHA512 61796004d8b6e98d8dff2423ea5bba89fbaa36ca91640957801a079c8202026945d6c3d1c37acd09a8e555d7c17ed03c3a8da4e2691f3046ad0d39fd4877c101
-DIST github.com%2Fmrunalp%2Ffileutils%2F@v%2Fv0.0.0-20160930181131-4ee1cc9a8058.zip 7634 BLAKE2B f911dc1d95ab7996840763c292cdc53253cc9d431c37b548b949c41095346a0ebc794247fdae59eed95bd482f80e9e34b7443cfae45146d0cfdb223fccb4d9ea SHA512 5316932d7aa0d07f66d3b04477d05411dcc22656723d943ceae684e6fca5b2312eea7d640f006f348cff0325456c3f3e6776c2c51239bdd8678d413fb1a10081
-DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.10.1.mod 30 BLAKE2B 54980427295e87f99bc189c9ec00c2167e9aa771cd8777d61cec8127a3eb19f718843e2e736a6d4c08877d23528bc6da810da0c61a1dc07620422fb1b5434684 SHA512 1b8b7ce4a8f0092f0b2a2395fbcafa8cfd6830183bc36fdd58e740dc9ec4fc5201f5eec2daa6e2effeb59f9e1c0ce986ceef838d16876c9fbf0fffad4b7660ba
-DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.10.3.mod 30 BLAKE2B 54980427295e87f99bc189c9ec00c2167e9aa771cd8777d61cec8127a3eb19f718843e2e736a6d4c08877d23528bc6da810da0c61a1dc07620422fb1b5434684 SHA512 1b8b7ce4a8f0092f0b2a2395fbcafa8cfd6830183bc36fdd58e740dc9ec4fc5201f5eec2daa6e2effeb59f9e1c0ce986ceef838d16876c9fbf0fffad4b7660ba
-DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.10.3.zip 244154 BLAKE2B c770944d112fe8352d48de60bf0ef0c656008eefbe1ccd0e498e3f129d948a77bb625b6f2b7f9b26998774bf1a5490d1106774caf2171e7c7d2bc3a8e2338ae9 SHA512 fba02794ec34d0cf1083c48373889c62be424b5b0b63a614d64bd03718bba0cd928fa5d6124bc71ac014c8cc8a644861e0630bbffdf56295e56c670fda919e3a
-DIST github.com%2Fonsi%2Fginkgo%2F@v%2Fv1.6.0.mod 30 BLAKE2B 54980427295e87f99bc189c9ec00c2167e9aa771cd8777d61cec8127a3eb19f718843e2e736a6d4c08877d23528bc6da810da0c61a1dc07620422fb1b5434684 SHA512 1b8b7ce4a8f0092f0b2a2395fbcafa8cfd6830183bc36fdd58e740dc9ec4fc5201f5eec2daa6e2effeb59f9e1c0ce986ceef838d16876c9fbf0fffad4b7660ba
-DIST github.com%2Fonsi%2Fgomega%2F@v%2Fv1.7.0.mod 555 BLAKE2B b182f5a37e6169f7e40ea33bdda2790e7e1b01c1e61cc9d109ca6b8803ce9161cc0c2e2ee857ef5af582b1b9317c58734683ac3e8a8d11c620865b3b12c6baf6 SHA512 a7ef7e84c93e09b01b83de08580bec055f0164d3272a3e2571707d0b33f4b4616a379d440ab3835d455d8d573e357a6df1163fa8415684d5d55af8e22c68f7d8
-DIST github.com%2Fonsi%2Fgomega%2F@v%2Fv1.7.1.mod 556 BLAKE2B 8e36edf565660234a9c939b93e99acfd61c30620cf45619158d5a87c102492333387de1bda35aa226695f913358a4385d1b8b768527d8a63d056ab8f13cdae61 SHA512 3c48b6f2cd9bc71efc218b11ae432776164936d4474df73510a785819c417fc894ca71f5783da77f323754ece56b681f8f1e9dacd5bf309f189997ba0b317dfb
-DIST github.com%2Fonsi%2Fgomega%2F@v%2Fv1.7.1.zip 157699 BLAKE2B 15dfd7933294898066316bcf6a0943e1dfa8b6099ec8d7f05425561f622c4d81989a239d46543c37d9cba761eb08ab6a1bc6ef1fc8c8f48fc0059edfe6720ece SHA512 286608571a79faf71bc8cbc29a77ad4478cd2a1d6ece91bdaf4a7c056141a154a04c2c8a93612c3d6536a6064b9ac9198527888a3fc0cb7756ec41548e7dbd31
-DIST github.com%2Fopencontainers%2Fgo-digest%2F@v%2Fv0.0.0-20180430190053-c9281466c8b2.mod 43 BLAKE2B 42ef42def0f24844eed6bfc710d0c5070a2bee3a4f5aa8b0ec68f862840385f035fdf6b7206d7e15a94ca419af29f7fc86358aa6fdd1a014f71f5acbebc4c182 SHA512 2fcb2cf84eb579794ba81bc9f79090999b3fded538a1649fee55d1e973425a775dcfba008a11ec1ba873bfbd3c2ce13abcd99fcbd9b0ca67fd35925896bca588
-DIST github.com%2Fopencontainers%2Fgo-digest%2F@v%2Fv1.0.0-rc1.mod 43 BLAKE2B 42ef42def0f24844eed6bfc710d0c5070a2bee3a4f5aa8b0ec68f862840385f035fdf6b7206d7e15a94ca419af29f7fc86358aa6fdd1a014f71f5acbebc4c182 SHA512 2fcb2cf84eb579794ba81bc9f79090999b3fded538a1649fee55d1e973425a775dcfba008a11ec1ba873bfbd3c2ce13abcd99fcbd9b0ca67fd35925896bca588
-DIST github.com%2Fopencontainers%2Fgo-digest%2F@v%2Fv1.0.0-rc1.zip 27125 BLAKE2B ace23a65113f48afafaf52d19231b51238dba82a08a85dc615a0037b037530f3fa3bba1af1ad885eed9ca453aeaa0e2585d2f1b94cecdccccf2e32d36a86f11b SHA512 95dd5f43096dcde7c21338e393977b2d8ff3389b9c9b24ffc11df2cffc73b26f3f16a6406b10281add7d6d952ce2276639ba94929491be7792a2cb8f40746bee
-DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.0-rc6.0.20170604055404-372ad780f634.mod 44 BLAKE2B e60ef6b775d320cbbd7d0d655e4a0d855f79c0f563ff3aaf0cf0a13485005c800680cb95535d57342c6f23a69da021089f7cb4d3caa3021852e1462126137887 SHA512 e7d3276e531b754a441e94acc632d7322837cc2320ced66e3e91e3512164ff84428a4665493bb3a7cf7e1057e82097bc54d0b811738b1e967b9c248b907d777b
-DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.0-rc6.0.20170604055404-372ad780f634.zip 171668 BLAKE2B 3efdf3d8fc341991f6a3961da7cc9fd77aaa0aa158e04003551f798765f61ef2f740f5c641d8041234d06d4287d514df8b562cd122ea4e8f2f98b2f78c34023a SHA512 b3412772adb60cda1146433134d4a0a881db45394e43e5c7a8177ee1d10e179ebbca87a8086363effceb69a3dca7ff16352f5e8f9599b68e412641f1739574c0
-DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.1.mod 44 BLAKE2B e60ef6b775d320cbbd7d0d655e4a0d855f79c0f563ff3aaf0cf0a13485005c800680cb95535d57342c6f23a69da021089f7cb4d3caa3021852e1462126137887 SHA512 e7d3276e531b754a441e94acc632d7322837cc2320ced66e3e91e3512164ff84428a4665493bb3a7cf7e1057e82097bc54d0b811738b1e967b9c248b907d777b
-DIST github.com%2Fopencontainers%2Fimage-spec%2F@v%2Fv1.0.1.zip 170576 BLAKE2B 52c16c643c1e621cb967bfcfa1e1209b564dd81bbf1b0427cd5c02b85160c444fcbe2ad9563bd491f040df2c4c6b9cc35f6ec83f671fc00e3cd5f40c8ca3af25 SHA512 04aa87f93002428f1ab79190ea584b23363126390dbdd6c05064646e7c5c3710da712b730f8da194bd83c7b95f260eb1773fd8c1c9daa9f41891a765e6a21742
-DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv0.0.0-20190115041553-12f6a991201f.mod 38 BLAKE2B 3b83f93aa086dfd3028fedf54552dacb3d904867e62704526f679f2f0da0df8cbc73ffaa4e0164718c850d638d4a4d3d9d036be176be94b430d13da25e19217c SHA512 9aa2622003271b0763bcf11c8c7e39d5a5259deb17b7463451ceb13a9fd46a8786ea9a31936e22919ac8b871458952224687fef8dc87286ea25294945371c9f6
-DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc10.mod 38 BLAKE2B 3b83f93aa086dfd3028fedf54552dacb3d904867e62704526f679f2f0da0df8cbc73ffaa4e0164718c850d638d4a4d3d9d036be176be94b430d13da25e19217c SHA512 9aa2622003271b0763bcf11c8c7e39d5a5259deb17b7463451ceb13a9fd46a8786ea9a31936e22919ac8b871458952224687fef8dc87286ea25294945371c9f6
-DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc10.zip 399911 BLAKE2B 28f8edfd3757ccfe69cdfe15f4e4a80dadd7ad7ced50e60d5014db1d0f56f57cd1d2fc64cfc5da71cfd9c9c16c157b983b76e4834c1dd8c559b3a6bda4f4b378 SHA512 e007741726693345d12a16be9bb5e8ca43e185686bf08c137f0eef6140bb702e35fd27e1f1f0e75a41d8c749f10c7a7f91abca88f60f95d35a41d4c1ee116049
-DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc8.0.20190906011214-a6606a7ae9d9.mod 38 BLAKE2B 3b83f93aa086dfd3028fedf54552dacb3d904867e62704526f679f2f0da0df8cbc73ffaa4e0164718c850d638d4a4d3d9d036be176be94b430d13da25e19217c SHA512 9aa2622003271b0763bcf11c8c7e39d5a5259deb17b7463451ceb13a9fd46a8786ea9a31936e22919ac8b871458952224687fef8dc87286ea25294945371c9f6
-DIST github.com%2Fopencontainers%2Frunc%2F@v%2Fv1.0.0-rc8.0.20190906011214-a6606a7ae9d9.zip 403306 BLAKE2B a2f1f6710db078a565c3ef52f0d28955738d94466dcb0f62536cbc9f6ecf2071a637ce7d3b4ffa66f9b4da26ddb30b6a1a6d6fb1246b8938d2992573b3887c4c SHA512 6b0af281a50e884d77531e13dbaf5b067fa924ccc889f2d861f8a6eaf9f1c407accf5f2b6ab580bdf17ccda20e8afd1faafef16e8a6c29b3f111e3fc121728af
-DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv0.1.2-0.20190507144316-5b71a03e2700.mod 46 BLAKE2B b950a3627aa8b0625601e8e2ed393660f8529b63e02167e08c9890d22be7f6d6e72ed571ac4b80702e44a7caf7e1a9647e9742d8c18938d1de37631e7475d56c SHA512 bc65703ed85e23c1b8c2e4a1e1838deb91729a396e28e551cba9970ee06aab653da4ef43fce22615cdd8389efa6228e5cc04a8e749c99457bf192208b882e3e2
-DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.0.mod 46 BLAKE2B b950a3627aa8b0625601e8e2ed393660f8529b63e02167e08c9890d22be7f6d6e72ed571ac4b80702e44a7caf7e1a9647e9742d8c18938d1de37631e7475d56c SHA512 bc65703ed85e23c1b8c2e4a1e1838deb91729a396e28e551cba9970ee06aab653da4ef43fce22615cdd8389efa6228e5cc04a8e749c99457bf192208b882e3e2
-DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.0.zip 78774 BLAKE2B 09f57d4427503eab35f8b1d8a26769eddec6b61658c4bdbd9cfe1f4eef1b13e893301fcf0f32b2cd938d633e757e3ae610bca5212117a22c5acef5f840593472 SHA512 8f2cf0f60644c5106cc8b9d7e4634ed869c4b56247e3d675f1746cac2c50013667a64b2d915e9e6c1a47441fb5b5c711d1e55ef35f6aaa73e44b762df2a7acd3
-DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.1.mod 46 BLAKE2B b950a3627aa8b0625601e8e2ed393660f8529b63e02167e08c9890d22be7f6d6e72ed571ac4b80702e44a7caf7e1a9647e9742d8c18938d1de37631e7475d56c SHA512 bc65703ed85e23c1b8c2e4a1e1838deb91729a396e28e551cba9970ee06aab653da4ef43fce22615cdd8389efa6228e5cc04a8e749c99457bf192208b882e3e2
-DIST github.com%2Fopencontainers%2Fruntime-spec%2F@v%2Fv1.0.1.zip 79636 BLAKE2B 54d182e4edd486a8d2ab61cac262b8227d392430730850cc670a3dfc038c25325a60056565e383a94d21c5016c28d86255185fb6cd7e75edd0f99e8e87d8085f SHA512 1674aba312894bdaa50e2d5b91a65ac557daa696289f395adcc1f458dd1298c305453e38b85c7ff6c125ecb7ba57904f4e23bc613b0ab09171018223e1f7db36
-DIST github.com%2Fopencontainers%2Fruntime-tools%2F@v%2Fv0.0.0-20181011054405-1d69bd0f9c39.mod 47 BLAKE2B 0eda9805fe0e1acdcc1e7b2693e72e39ea416cf57a108b1847491e1f15f8a7965c8aaa77baad1ae6148f39d36b1fc5fcf159b54111bee0d20bf2fe8edfdf85e2 SHA512 4e53e67b276ea3fe8a3977bbe72758bb2f844e22cdc3e23994176821cea51b10f5e802ca3db848a8b3d00a146c133a89271ee76158c478683b393682806400de
-DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.1-0.20190929122143-5215b1806f52.mod 41 BLAKE2B 183bfbb35eccb78acfbdcadd1a80aa8746354813000d559b8e597e5a6447812060c8e4daa2f8ec8fdf20ee8c04bf632d54f0445d6d81946c4f629e17748c4a39 SHA512 7aee5e544927cd9673f3cd9b02ad6607ed56e53782160a20c8e737511f0a021ac38ac0ad3548808552348a3573831f5c4bb3c85625cf1dff96cfa39b9a30129c
-DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.1-0.20190929122143-5215b1806f52.zip 27376 BLAKE2B 636f28d65cfae0e099fbfba16137a3867397186d9ccaa9c1edc8448dcdee90bf997354e2282287b1b2d32368b837a406778da47fdd93ab255666df5f4e7d5dc4 SHA512 94affda6f4f7bc17e073e13273d6cddf238a7523ed5e9e03dc596633aca90a8c4a97fde2dcd3fdcd8d37258633df8b46aa6415eb910dfd8734464e41d122e014
-DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.2.mod 146 BLAKE2B 5f1b9af6a04921a636cbef00a5dce3fcd8dc2836d8922a16b4abb1b06f898b9fbafaafc732e5c43dd774f0bc4416e186f936afd3734aa08be41908ff88971aee SHA512 737cceb5d3f0b5a231216e0b264ef250e550073302e4b3ff6fab616a90a4652a4ca7051eae98dbeaf1cd6d13ab703bdd6cb12e17ed7d2c44c0bde3a0f0a435ba
-DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.2.zip 27107 BLAKE2B 0fe74b88e85a3e508134750d89d8276f5819c8c73cfb06f69f685c7dc16e690032c13a8fc3367e5c27eb9f390c8fb46fdcc442fc9cd81c56b8ad67e7a857a14e SHA512 ff9765aef5320032664d33d84de687854dc304a1c311c1712a98105d8d3d4f35c286533cb91b279439141254d5772689700a0b34d10bb5313d2288484536b60b
-DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.3.mod 146 BLAKE2B 5f1b9af6a04921a636cbef00a5dce3fcd8dc2836d8922a16b4abb1b06f898b9fbafaafc732e5c43dd774f0bc4416e186f936afd3734aa08be41908ff88971aee SHA512 737cceb5d3f0b5a231216e0b264ef250e550073302e4b3ff6fab616a90a4652a4ca7051eae98dbeaf1cd6d13ab703bdd6cb12e17ed7d2c44c0bde3a0f0a435ba
-DIST github.com%2Fopencontainers%2Fselinux%2F@v%2Fv1.3.3.zip 27482 BLAKE2B c4c58609d2a04122066eedf5f3e0a4206e2150dd6452e5efa48a94fcabda80329fc1163a9a987a1640a36619fb1a81166f4b1e178507284abab9d3a329c642f5 SHA512 e884a87848b78d8d3700dbe2bf200a788df708220bca8ad82b2a1ab5554ad4ba0c2287ee742b142b213c269a76caafea2e3eefa0d622fc1dad85982d07f7ae46
-DIST github.com%2Fpborman%2Fuuid%2F@v%2Fv0.0.0-20150824212802-cccd189d45f7.mod 31 BLAKE2B 0a64e2a7ce87c9805064a3f5f88293c35baa03f682945fe626a9b2fcae2905152f80766d7686e7cec0e2186fe57f850875e1f893b58df1cd440faffd9c0b1b7e SHA512 25d317e15b065eb389c517d977a770fc0c8965f24992ab4e1b665679e8de30625cc53b382863c93f9448cb365c64e2a9adea4202c3b6c224e840e78d1403dbeb
-DIST github.com%2Fpborman%2Fuuid%2F@v%2Fv0.0.0-20150824212802-cccd189d45f7.zip 17595 BLAKE2B f088f958031d2a658e22930595d44d7b910aacb8d55b9546e50d68bdcbad48a925d944185cd905f8216a03e58fadd96eab2dbc972604dcd8b2e0925ebf006545 SHA512 b83ba8dbd390ecf9555738896bacffb462ec343a3ec4910e76d8f6ba101d89f76a119ac57a117c426c4adebc20880ed3e68e73d516c0000f702479e814ef8b8b
-DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.0.mod 29 BLAKE2B 7fb53b19bd1be0e783039647b42ecbe2070f51af102e473ec6d3544eea0ffa5863f1874ca1615348d5f8abbaa39c841b4fe18d43a8a615fa648cf22f35955e38 SHA512 0c156e21d35c45a89c1a1b69ff1976b4f7511b3870bf96126121f5a5effa3723eb45bf080e840d5c8b96898c65207dba83eb3e1a23668dd8a5e20ee6be775cc0
-DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.1-0.20171018195549-f15c970de5b7.mod 29 BLAKE2B 7fb53b19bd1be0e783039647b42ecbe2070f51af102e473ec6d3544eea0ffa5863f1874ca1615348d5f8abbaa39c841b4fe18d43a8a615fa648cf22f35955e38 SHA512 0c156e21d35c45a89c1a1b69ff1976b4f7511b3870bf96126121f5a5effa3723eb45bf080e840d5c8b96898c65207dba83eb3e1a23668dd8a5e20ee6be775cc0
-DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.1.mod 29 BLAKE2B 7fb53b19bd1be0e783039647b42ecbe2070f51af102e473ec6d3544eea0ffa5863f1874ca1615348d5f8abbaa39c841b4fe18d43a8a615fa648cf22f35955e38 SHA512 0c156e21d35c45a89c1a1b69ff1976b4f7511b3870bf96126121f5a5effa3723eb45bf080e840d5c8b96898c65207dba83eb3e1a23668dd8a5e20ee6be775cc0
-DIST github.com%2Fpkg%2Ferrors%2F@v%2Fv0.8.1.zip 14339 BLAKE2B 9332d9cac7dd3aa2f4d756f0d92c911cd0fb8e00232db3bb013a0ef12addae0aea2388ce3adf79407a81e13cfe9cd4b45aeb2bc9f8b84b4e3c5dfa63b59d46a1 SHA512 f97471d54c5e73b3f59326847cdd4dbbb142a9ae790df83493f11a851d716fb407e01a857152812caf731b8f3e0f37ae151ee83300feaa73152173f6cb5b8515
-DIST github.com%2Fpmezard%2Fgo-difflib%2F@v%2Fv1.0.0.mod 37 BLAKE2B 94636062c94f8ff68cdcab7593a3acae7b9ffff616cad7b1d5c9cd147a4a1042d33666cbeed6fd816d6793113abfb595183097dcc46de7a3dfadc1423ed43e79 SHA512 c3d5c48cdb8ba6af7071a07cfede06e0ab67e3726d9de592a952fad40167dcbdd9621dc2c4df1bd3c28eb99d70b1b6d8d812441237c35bf492e5b7f07bd33902
-DIST github.com%2Fpmezard%2Fgo-difflib%2F@v%2Fv1.0.0.zip 12433 BLAKE2B 0c911c9d173080abd8edbbab1f47222343801d8eeae36b4add24773e3282fc2a39283fdf519a3d4483e39cdb7d9509b8570d151f46841ac1a616f312dc4cb0ba SHA512 3b85697185ba85cdef6202444ab6cabeabfad8a03d66b3839a852586b1f91ddae7897a57c8c138d5647022aa44906c7ef3c5339d520f90eeea0742a935da8cf2
-DIST github.com%2Fpquerna%2Fffjson%2F@v%2Fv0.0.0-20171002144729-d49c2bc1aa13.mod 33 BLAKE2B 5d9bd69b984101e78df4f8137b633bf94decf11dc822cc2940a8f4566032975c5e9041264bac3dd24d7a877e62f21d04cf62005c1c2cfd9bc29157c2e36881d3 SHA512 04a5987e65bb878dcd0b5a364d677f1a87926bf545333ae18ee97e9eee281965f126001e7811d6dfc3b0fd22b8cbd719ddb2a3596e30f2a6a99222d28a052161
-DIST github.com%2Fpquerna%2Fffjson%2F@v%2Fv0.0.0-20171002144729-d49c2bc1aa13.zip 151613 BLAKE2B 743c362fd207bd06ce1ed2eacbeeaaecd500eabbf7082a26923d2888a65ae4de7cbff51cb1061f2ed996ee66b975b4a5a0b3d1371fec70a1a8d9d3ee28a1ac82 SHA512 7fc538a4c342416dae749d39e87b5fc53aa273a4af6e785906dd79338878fcb78e766404b4f79462e4b87020b7f0f79b190cf0723901dacf297edfa53014d214
-DIST github.com%2Fprometheus%2Fclient_golang%2F@v%2Fv0.9.1.mod 43 BLAKE2B 2bfedb841a10d8d6a861189203de74eb9bc6bc37bb10cdfc2404b1e972b7672568ed27d235e143d831cf2f840943c039398296cb78f1309f00d1ad9e0ce21056 SHA512 191cf6496c41b2b82c9a8f2ab2aeab63ede47807160f7cf746c548b3e92e367fc8f80ff8c6efbb7e91ca5903d5672b235c1ab9f14d3f9f988e8ff1c821d3b8bf
-DIST github.com%2Fprometheus%2Fclient_golang%2F@v%2Fv0.9.1.zip 190367 BLAKE2B 3672fecc77f62ce656fd138e1ec906068a300f147f9daef304802a813578dc50b873540e16cdd5fe03940a612c0737a6b67217e8bd6fd19eced29e8c1ed875e1 SHA512 13f04c5c3978426e5961c5d0b2494497149352ddc5cb7a528b69dab2a38edda2df0d3440445270b90d2588bc4d77ea2164815dad475d3a50f0898e8a64999b61
-DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20170216185247-6f3806018612.mod 42 BLAKE2B 5519896b44b7bc3089a8965dc61aae63745c64ba1a390d3fff1202be7f8dd34f59862c04b49e377d6616a93a0341662becce65d431d445703a160ba49eda208b SHA512 c84dfe43954b19c1e4ac5ff8738e79db469f3bc1dc55e69b12503d0a5cf125cc74f4797ddbfe64b2a1bd1e2940575c32678671d51f67161c4f5b53b2a85ac46a
-DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20170216185247-6f3806018612.zip 65956 BLAKE2B 6d8aa01b2ece4e8779ec7ba58dadd27a5b1ae072397188eba425e7f7e189c62fb7192f12cf0174f76e6aeb7d43a0f32b4419b283664d9e1b25c04794ebb2edba SHA512 e6ff1af5896e5bb9e3753288ec3d1bb74ee2a32b8f9614d754d7c6d94b3ac6048d78da1751dbac8a67c36e1e9d6d226a1ee962765bae30947ffd8a9c414edf22
-DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20190812154241-14fe0d1b01d4.mod 164 BLAKE2B ed42e8dec25021e488793be8e008c34ab5bdd6b5b884762d69f40d6c8968bb539041920ac7108e685ae56f2ef71b7174245772d96cc8f20463eba71580afae29 SHA512 4e0e6941b43c17cdce0205e9ba3d9fb18937f426ea2ac9a9e53396c906101d6ec2eb501cd8a791ee3ba9a32185f86495e9189134b8a9858134c73238d98ce0f6
-DIST github.com%2Fprometheus%2Fclient_model%2F@v%2Fv0.0.0-20190812154241-14fe0d1b01d4.zip 69219 BLAKE2B 6ecc62f2f3ae4622ba6e19c51f7ff7ca3bafcadcb38cb7a9d79dfcc2ddd7183d79dca8e0d6b534f5a2dc508c21e0fb349310b4feaac35c1f7b1166c3febd1228 SHA512 934c3e50ebdc1ea65ccfd4de1e2e0f0ebdece54be1cccaffa5e325c667ab22bae84a7fc7ead1066e75094697a86452fdc36fab57b955f42337708de32e7eec32
-DIST github.com%2Fprometheus%2Fcommon%2F@v%2Fv0.0.0-20170220103846-49fee292b27b.mod 36 BLAKE2B 39120b6af83d45857c990115ff52d8828278a9ce158b01621d8dcc517c23ff139532a2c2e53ec97616f0c65a2e0db3ede7c5fe59eb33be277e2c60650362b232 SHA512 1b262da0100655c3a56c0e551866491b81d2b88fd5fed9cc43a57bce3634c88c82c798ed1a823237011f6be68b5f0e1fe8284526cd68204851de30a44fc34fbf
-DIST github.com%2Fprometheus%2Fcommon%2F@v%2Fv0.0.0-20170220103846-49fee292b27b.zip 103336 BLAKE2B f707e3b48d8c3eb8491a4e67871159bbea1068029b8b72bb79c60b832d201f88db7888be037028cb81f5278e33ebc28cb702e6b693f788df88420113975aad03 SHA512 065c4c469d6497da3ae424eee127bdef887520dec7846ead84b1d5a3f6b931f06aa5576598ff924b7ee0c0108988caaf917f189d9fe9b65dd202f7613e8c0113
-DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.0-20170419201554-1e2146578273.mod 36 BLAKE2B 3c6acbd1022261065a321c6f3cfa2946b58011f45fae9b98761397eb7e5e0984dae4ea34c4f837f798ab29ca8e26ed3f07771be10e500a99ce7e5e9f4c401b5c SHA512 05f032eba0c264b186936c2b9831624a01999972d4f1bba6aa15c452407eb10d402f1ac674eb41e2d24fa66e85ae2e56efd2326fc4ecc741169b9908d7935335
-DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.0-20170419201554-1e2146578273.zip 51433 BLAKE2B 2bbe06abf0100e465d21c5815c3b05f42004e680441dc525afe9c017ef870fff8425d2d84e76d9a847b03123cadc1cef2b704b5c32c623f19bfd8d5283b057e7 SHA512 9ef7bc49e3cd7f511fc6ad40246ae58d84b6ecbeb292d9eb928d0111fec2933e217bb797f201c8277465ffbc170b49ebc641d3a1367b3a30475ca6f2013e1270
-DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.0-20190522114515-bc1a522cf7b1.mod 98 BLAKE2B 23576c142554e5a22a11d704cbff1bbaf1029518ceec7f04e22aa849763a7aa5e26ad1405a8cbc0d87097264a5fa7cfa3d655cad18148f5de6209a06580722d3 SHA512 0897ba1b7b4a32f206763327e138d3b460194097d19bedb8ee1bb6889b9d188afae9439178d1c2151fbe17b7d18545cd6cfebd050bade93cd39b435b35b6acdb
-DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.5.mod 136 BLAKE2B 49b2b47ca2cb64a1522a3719c1b46dc6f44d3122d3a05ea475dab88e89336aae3f396082f4de0f89400a0e8db85208446582a226238a701fb92c155a2e85fef8 SHA512 fbbbd57eff765585e67074e5c278d7d3077289c3d13c306147d6c3efb98232ff317ad92464ba768fc3d921b4a09cb3f3ff5c5480c89a01ec821bc86e5dca82f1
-DIST github.com%2Fprometheus%2Fprocfs%2F@v%2Fv0.0.5.zip 188550 BLAKE2B 6163258786861881f6a7b621f8578e8dbe3eccecee396c3564a88686cfe72584e234f593847ee5cb4fed6a6a1009f1f14da8238f967ce5d68ff919410d25d8df SHA512 42a764174dc4a56c6e27b0e83004f042b3fba397039a923310b8bdfc658ec24096395f27bbd69e8275c1d0f0ea45ed68c2015ffdcc74b6186c6d1497f0ea1e6a
-DIST github.com%2Frussross%2Fblackfriday%2Fv2%2F@v%2Fv2.0.1.mod 42 BLAKE2B 23dbba19737db7327590adaf3988abb9b5548cb3f959a9746a3b745c51f3c1397f071f2573a413a088f58e32959a2210c2b5354c47c263e90ad2ff1506872a5d SHA512 ac376a387fa39fe35dc4d073d8becd74e79f52e9d36b0a6628740dfe0e7c1f4fb6533fc262212663b105afcaa104082e055fa87d20cb3068359faae6dcba7738
-DIST github.com%2Frussross%2Fblackfriday%2Fv2%2F@v%2Fv2.0.1.zip 110026 BLAKE2B 862c858d51e59569c38e1304de08c256752db260cde7f7f44fab41d22695999fe73483d3854166f4e8d3da9b4f8e41b7999d7e44510ab8c2ca6c0120173b77e3 SHA512 992df87104aa66dec048d39496c85819cab19bc890cb2c60326660d011642f49cd926b082d3eb4136b229a6e4893ed023a133e4bf83a4993c534b24e14d77b4d
-DIST github.com%2Fseccomp%2Flibseccomp-golang%2F@v%2Fv0.0.0-20150813023252-1b506fc7c24e.mod 44 BLAKE2B 74f7855fc5488715e3e4b73dfbe83b0a35a050447fc3369c06c532592c7678cdeb28e9f1fc7ef4f5c14fc90c458d8654baec12ab0453117219ab7b865259ab63 SHA512 b9123f2c64dfb2b16e7081bdd7cd3e5a54f911387cb13ccd5c50c113b3ad75ccb64c754123a3b41d916b4a8d089512eb65a5db5eb303f30118775eea553f1d8b
-DIST github.com%2Fseccomp%2Flibseccomp-golang%2F@v%2Fv0.0.0-20150813023252-1b506fc7c24e.zip 14720 BLAKE2B 94485892a25edcfbf3abf1afddb6c718ef4aca089326318752083d9030fd0fda7b6e0e6aa9d007b99143b3c94cb8e76c11df0dd2cae38a27181b9455d7e7c5b9 SHA512 66bfb937afbed88d8a7fe3085888636e525f7c0561ae7acad4a692f53c15c50bd33ef0f6d8f00cc316440d0c6b9525922db3c30a7c335796e99822588efe4526
-DIST github.com%2Fshurcoo!l%2Fsanitized_anchor_name%2F@v%2Fv1.0.0.mod 49 BLAKE2B 47bc5235e81d233e28b446ec2403accc442b4cc1ee956a0b7d47b5dac2a525f22bba87d05c3fe09179837860655f27191e073a3f6d7d0dad81c9a750752fe5f8 SHA512 6f6b924c2a3af28ef4342cdf8b83b726f2c409accf19c6ba0a4a47c6ae61857e4b69727fceb9e9e16fb8ce660a7181952714d49b6cafaacb282fa4e8af6e13b3
-DIST github.com%2Fshurcoo!l%2Fsanitized_anchor_name%2F@v%2Fv1.0.0.zip 3399 BLAKE2B 348c2171bf3404d8b69166fd412707d8a348e1d808618036de2ae01fce77e3880fc782ef301f9b4135a19d81ca9ded5cc0cc4fd73d36b66b121b7f0baa73df51 SHA512 d02d5e4b8a24b1709c053138c4128d4bd6347d4adef95d1e25141935cf560fdcfd5c2b7837d6e690f175f1cd5a21b0279ce97b8b3b66d5e0a5006e4103b25f46
-DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.0.4-0.20170822132746-89742aefa4b2.mod 34 BLAKE2B 9ff118e3db6f2a49d8cef81bbb78af4ae29fbcf97955758c08c4a9a610fa66f1f6da80dec5aff3c657bbbdf1fd5330331e58dc46c2b2bb657438ec0879a3c45f SHA512 186b34d707aaf1557ddc8edaf49fbc559024f454bd560ca8451cfa555abc211cccf861aea94018363547e39140d9e507c97f7a3c87bb9f1e5d444bab4c531e36
-DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.4.1.mod 337 BLAKE2B 41471db637c5c0363cd36be6d16a6228671ce9658ef71103ad2122a2cd8cfc13c30b87bf2b34df7ba9d6c1fff1ac821462fbb86b622c274cf26a1e3ecb7fd2e9 SHA512 29a4efc27c658b047fbfc6eb2ae311753b01fe878cc733e2fdfd83f5791b3e30ab50b08addd300dff37e7880f6b57662ac0cb0f4b98df2c5a5a9f7d555bc98a5
-DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.4.2.mod 337 BLAKE2B 94ce7d2e23281061ee0ac0b1be2f8c3439c86e62c56ecf556a81123d57d819b1e0e95ec3b7c6425f13abaaa1683942b7a3d0bb8ad489577284b2a6063c777b37 SHA512 38a79599dbd09661614d54fc92149fe581575b7833e89dd73a3f754fafa4bc549c6c9078753ab8e2a85ce2be3ab81e528e29b6d19e7c329e0cb0f74896d2e418
-DIST github.com%2Fsirupsen%2Flogrus%2F@v%2Fv1.4.2.zip 58627 BLAKE2B f4276f0095188324c06e4412303ac19e3006b18823985e26ca49b2de54ef58cade626b3d2439f5f2a29c47618420b890951f94e5a4801dbaad4c3294f6555a4e SHA512 3bf6be07dd9a97bde938309857e16dc425587c100e35b2acd1a6f11a9ac196238b0844abbaded43fcc01be0664efa15b64f159f6259322043e3046e7d361dc20
-DIST github.com%2Fsmartystreets%2Fassertions%2F@v%2Fv0.0.0-20180927180507-b2de0cb4f26d.mod 43 BLAKE2B ea265a40bcaaba6e4401504643cb9bc2f775a23792b1802d6c1b665121c49db7d4d850ba03c31087fbd6f344b08349ce00a106e430c8690b8016c95318cf3973 SHA512 222b0edcf745e14eb775eac28668dfa0c52051cbf302ec441b58d75846fc2570a0fc2e616cbec68f6312a1648fd7e6997b6597b160b1a7f84c1c500a42e93e6d
-DIST github.com%2Fsmartystreets%2Fassertions%2F@v%2Fv0.0.0-20180927180507-b2de0cb4f26d.zip 81760 BLAKE2B a5767557b0e96fa3bbbace46e08d6a2167be2c203a44ffaadcf14079a23e906ee9197c8028fb29bdfc596d4f39e7bdd29993a1a520c36c8b08c5c5b6bd6bd2cc SHA512 e204307d5a06550292a4fb6e44912260aa5a7f9fcce0883d8abb324a53673512218982b1893e7d563eb7d6313ac98a8638072aaf7b5d66d359e82832f2a8bb2f
-DIST github.com%2Fsmartystreets%2Fgoconvey%2F@v%2Fv1.6.4.mod 302 BLAKE2B 69fd290c3e72f4ee0597f480bae8647d80ab5c4acab21ac3ea19e847e3af4ac91a767876fac04c94c2db8bc782a24577d3478d3d0653f673609f2d57d6cc3427 SHA512 24806ff2cbf2719f50bb37cc5ffadeca1b64c7b089a1647695b45d647ddac16332504c7026813b4ab9316e53e755ad0ebbf6db9ca88179d0526ca2634e27e25f
-DIST github.com%2Fsmartystreets%2Fgoconvey%2F@v%2Fv1.6.4.zip 1521758 BLAKE2B 653e697d76d392b18c09e5c1c96734a737071667345b9d6ff9c9589bbe74e1c50849dcd7fc00b660adc1aaa30366aa9ca93a94d5eb4e605f7897d9714119f926 SHA512 3bdd2bbeaf755618d9fa7f324814497308361cb0f3f93a7ac84b9fc01b79ab346353ff0a022d3d85e74aef57b3773e03ea9279d0a60de317a1c57d5eca2d1507
-DIST github.com%2Fspf13%2Fafero%2F@v%2Fv1.2.2.mod 64 BLAKE2B 51fb4de1e12106663228a747aa9e5fc135104573154f2a33f2a6cd2a927873efeb19bbb6d7a0a74fa1c7050683ba40d176d7c9e2c32b31e71aa43f9284b868b6 SHA512 e091de41de8e320e4eb47a082cc419a6d102791c888646a0482bf4d2b91a9f357455fe59ef0657e043dcd021441d6d78fe89440db3f11d4d516995903e0aa3b1
-DIST github.com%2Fspf13%2Fcobra%2F@v%2Fv0.0.2-0.20171109065643-2da4a54c5cee.mod 30 BLAKE2B cb72701c052ce4059500f4c6b3d0c4fb336d118865bf1f7f45ce0b0279e1d01b6e58d49f82182c2523681a97bcaa7a70216d63ceeca0ea1d09c1921226f6bc4e SHA512 ea13ed8e166d16a7bcd14a7cde90af1cacc0b05995d1c5ec245fa536208e0cbfffd689dd460d66c0a1ad315f2b0ae9f4b803ed72bcdfd89c4a98a7ed934289c7
-DIST github.com%2Fspf13%2Fpflag%2F@v%2Fv1.0.1-0.20171106142849-4c012f6dcd95.mod 30 BLAKE2B 18c9fb79a291aaf800991a296c8d7b1933cf45bf56082301a64ce17ea64dd15fd304094fd4b0561bd99c48ada545dfe7fa8cf47a15593cd3166eb66657a5e114 SHA512 d08b4540b799cee9c5f088c4e1fe002c9fda86f1634380409eec1404598b84376d3ca26b4c1cbcf58bc19234ab56531ab11db8a00c6dd2e15a53f3b4ae757efc
-DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.0.mod 32 BLAKE2B d698910da1ef00a70a1673b8c74105de195020ccd95d1e70c5dd1e1615210886ff9acbc9cfd03f46e99f5223b60b04695b8d362b9e0edd4e485480f802bd229a SHA512 4e366e5a60559a8863cb2a50280deb307d8bf885ca5440cce1b49a084b4cc4583b3481240125f35f161226592a43f2c0a426152f117d79b68c92c72a93f751d5
-DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.0.zip 34637 BLAKE2B 9e26766ed5717903173455e60ee1b690779e286b6be3cc22f633ccf26592839d149f813a1b92775ab2a447f0c1a20960f956fe5aa4a7c56abc6642b58b7973e3 SHA512 968b76a138261cfee0d1f58ede483741328968e24d073b24affdc7ab9cbf9bb76dd9fa1785423c49471c02ea4804810ebe673bc623c4f72389b2654a64a565e1
-DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.1.mod 32 BLAKE2B d698910da1ef00a70a1673b8c74105de195020ccd95d1e70c5dd1e1615210886ff9acbc9cfd03f46e99f5223b60b04695b8d362b9e0edd4e485480f802bd229a SHA512 4e366e5a60559a8863cb2a50280deb307d8bf885ca5440cce1b49a084b4cc4583b3481240125f35f161226592a43f2c0a426152f117d79b68c92c72a93f751d5
-DIST github.com%2Fstretchr%2Fobjx%2F@v%2Fv0.1.1.zip 37190 BLAKE2B 7c8b79cb736f53337fdd2878cd1d745a6da3d803c3d3f6a0ed53a86f1d4789d2c656c6e7a17f90caed496fac91fdc89fa66b1de7b2caf97409114aa59658efa3 SHA512 b2af82dccd20e9539d72c8629f2d4babd573f711a810fa77e629fec897a614776cc4ff857700c0b6eb32370a13d122504c0a4abdd3d9111eb8ac0938a0e7234f
-DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.2.2.mod 35 BLAKE2B 0357260904c9ba41892132c7e07d2add9b10ce4a09e8db4966219d1f515f917581e2afa0987094c90759634bc2aeb66e758074e023ff331a8337f5090c0102f6 SHA512 5b7ce867497852e4918b8cde5f75ecf2f24b9c95ad112478ac132322e904243f1cea3d16f5731646efb669256dbefc129ac70a499c8b1d25403a14c7e4fad10b
-DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.3.0.mod 154 BLAKE2B 60cd7801e7cd33746305cd636b048b25a86270ec3b29a21c3c078c7e95b769bce7e80c2c7c5474113786bd788c7f88f3719e34f02141038e0d161b36e32f39b9 SHA512 bb808fad059f5abd0171e4bdc724411eff2c7e8d303a4ffb3608a00e21bb3cfafe9e83b4b4e9bccd42c9a4331f67ddc6043e3dd5eaa9a122c86626eed43a8383
-DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.3.0.zip 83537 BLAKE2B 6d6de57cc5e393aaef1cdc7e2140143eb7fa324bb2ea3b9f63bfe1e8652c02d24eb441fc3b435c6b287f165c5540a008a7c21ab4070d8bc77c77e6fb608f7e46 SHA512 c5cd06f825bbfdcf2ae58ea21edbeea03c110de3fc20fcf69db07aae26c9ae67a8ac57a9ffedec9b3b4f1f3b016089935049d75d92a9a03e45ce6345b4c9c611
-DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.4.0.mod 179 BLAKE2B 3bb7cee3118f0d335ade107dfefc3a594dc3883564fe4c9e96d615e179d394a49a3d6cd6584ba9c684772bc3dc6479af6a168dd3841c03957252667384f6ba11 SHA512 243bf1f69c146252164ad72f853773dcc77f15d7c9e9b731bee26a95e7c8f4ce9ed9738db601b01edb82f4b3808873e1f153a6d4a0c97be0babbe65abc0f8d52
-DIST github.com%2Fstretchr%2Ftestify%2F@v%2Fv1.4.0.zip 90474 BLAKE2B 2f79f0cac2c15acaeae764aeb640534f58ec2ae86fe88a82533498e718cf37d67c563606090ad39b38e22ffca1e63a25cd881d6a472b862ddaf150c7d329b16a SHA512 a047ba8d5f529d459fb6ae8dd39367e6f6cd2e785e90f54a5f8759ff76e4cfff990f1b8c1e0cf49c67b97ca8de36ecf8fdeb3b8f16e579aeae2d563d38da69db
-DIST github.com%2Fsyndtr%2Fgocapability%2F@v%2Fv0.0.0-20170704070218-db04d3cc01c8.mod 38 BLAKE2B eafcc0e8c3633f2d4c2cb4eeb38eacdb7d029944b76da9ee611b3fd2d3b82d2adfb726405168a34f70251be920da17fdc6c70e8052720a6093c788dd724d24b3 SHA512 1efa76d27434ede74fd37d57c1673c8a60cf06248a73c425b5bd08dd068d6b50166b17a15b52d0c059218479fa3976e80e16cba08f671e9ecf7744cf5daa199c
-DIST github.com%2Fsyndtr%2Fgocapability%2F@v%2Fv0.0.0-20180916011248-d98352740cb2.mod 38 BLAKE2B eafcc0e8c3633f2d4c2cb4eeb38eacdb7d029944b76da9ee611b3fd2d3b82d2adfb726405168a34f70251be920da17fdc6c70e8052720a6093c788dd724d24b3 SHA512 1efa76d27434ede74fd37d57c1673c8a60cf06248a73c425b5bd08dd068d6b50166b17a15b52d0c059218479fa3976e80e16cba08f671e9ecf7744cf5daa199c
-DIST github.com%2Fsyndtr%2Fgocapability%2F@v%2Fv0.0.0-20180916011248-d98352740cb2.zip 14006 BLAKE2B 98de01f568485c6909fd0e98a46e2cb040bc556c175948af267453cff5c750c32e95b27609b513073d374da19a8521e62f7a8cc195e0eb993662e1c443cbbfd5 SHA512 7782b65f0d21a519d280f1655257da7b15e5e433f3eb3ff4bc963c81fab22cc9d18ffaea0786d9a7e9f5f32425353c055ea8fcc1daa1e8a30caac47ef2ef31b1
-DIST github.com%2Furfave%2Fcli%2F@v%2Fv0.0.0-20171014202726-7bc6a0acffa5.mod 29 BLAKE2B 4f20ac8fb7beef2b678cff290a28c8125d368504aebfcde33e746d3ca7b9606804bd94c59c50fe328da4c1c592b8768b1aad89bc1d22ddf76cbc88d0f0f76b74 SHA512 5edcf2aac39658fc7e60d5086b066470c6d6213b66a2432bc35c6f67b8cb37a66a67fd97cdd4b8fa1b8b1bddfd544e4aa9838cec06806b89f8e1447e3c61bd2a
-DIST github.com%2Furfave%2Fcli%2F@v%2Fv1.22.1.mod 180 BLAKE2B 5d858ca40ba2af791726707bdab12d76aebc9f9c9ea79e49a6125308b079cb945d6ed06ca2425116f19604651eb56f29b3ec8d79fd9f38ed044e745c9b73ddb6 SHA512 b5431ec3fbdaf9efda016ea275ff597106916f5d5781b2ca82e075e42da98f6c5d34a00410fe65ac3a3e64b3ac0e1ab02e68579effc426ccc5ee19a583c44d2c
-DIST github.com%2Furfave%2Fcli%2F@v%2Fv1.22.1.zip 103935 BLAKE2B 3c8512512515eae07ff3690657bd8800880246c3cd667dac372268d59e0a6b2e4f01d2879e121af2a4535300404d9265e491f1f1792e30e7eda7604f121ad0b1 SHA512 28b5760cea9765d971fa36f8465b6f9ad3eb507af619f7782df86da44cbe61de5c95353bdb64b2a151c170f5e1afdb14ef4aa6bbcd9734aec10a1b104487ac7d
-DIST github.com%2Fvishvananda%2Fnetlink%2F@v%2Fv0.0.0-20150820014904-1e2e08e8a2dc.mod 38 BLAKE2B 3ade12a1ed924c4e12dd9422b763bf2cadf710ef072d593dc40923d48477b792d87aaa3035e020bcab860da3ceeddcadc44afd74d9e11c3902a5d6241c8826b9 SHA512 637521629966c8f1b3d711a2b2b7b1753bed946f26570cd8e5e55ee3da5b106d418e0b80f48cac7a2651b71103c0d09116707d7b9d8cfb2d78d7bac2e908560a
-DIST github.com%2Fvishvananda%2Fnetlink%2F@v%2Fv0.0.0-20150820014904-1e2e08e8a2dc.zip 63370 BLAKE2B 532cde14c4a77e867609ec8c6298c867322f9cb7f266a67eda9f8f823b0d942835792ff4828f2944badb439146771a40097464b3f775e6ce481b2c460c9d234e SHA512 3a67f6dc286b7e61ebd8b6f1334f90bad4c96b10354f2d74ba738352cb874631e028261dbe64ce05d2b7f8f93d94368559416275b4ac25aeb12ed9b10c7c5e20
-DIST github.com%2Fvishvananda%2Fnetns%2F@v%2Fv0.0.0-20191106174202-0a2b9b5464df.mod 45 BLAKE2B bca314ac4894ffa7e671b1d4ef848ae73386b60786cde851e62ff43e3534310c32b0b5e1134a3c81439ded6766c176ebf1d3759c9690ddcf31c4a36edc625bba SHA512 b4dd7f2c1eaa083bdc0e90f3f636ac1fe32b290b6dfbf09153b8b076aa7cb39c9fae038822059413a4883bab87982bfe873477cc38b23076a7c70b3ce9bf1f45
-DIST github.com%2Fvishvananda%2Fnetns%2F@v%2Fv0.0.0-20191106174202-0a2b9b5464df.zip 10040 BLAKE2B cbb85164b1525fed1ee710c1510a898d3dde2498f457bd70b57f25dadc7fa139b5ee9913140dfe500b31bc1ad6f6090ff47ba86d2c0704461f704955980f3403 SHA512 eb20cdd07df50c217fd67d1567da82c17ee020ea6d1f7bc79f4554a4f0beafd311c70b8a601f13df6534424bd45ce1a05c0262b0f1e54a10c77b2fb25720b99f
-DIST github.com%2Fxeipuuv%2Fgojsonpointer%2F@v%2Fv0.0.0-20180127040702-4e3ac2762d5f.mod 40 BLAKE2B bd8fe364e43fdad423aa574d01229ce91e9b3211cbe3a0234070805150d960d3c0fc0c6ec229e7ce5b4079906f2595a2b5f50a8da7bbe9bd906a72a6a7a7434b SHA512 cdd8a665fc41a4b04c59e869b021d5a9b793b9a441c320a234bf2a13be67af9aa60378c58991161f73d83c184039a52fc3f11cd121490996737f0508e277e1cc
-DIST github.com%2Fxeipuuv%2Fgojsonreference%2F@v%2Fv0.0.0-20180127040603-bd5ef7bd5415.mod 42 BLAKE2B c2d6fb272d8ae4e541c98023713bcf0b7f47f334d09ad7f9f375ed13eb14d27ee2995745782ecea40d31a561e28702fddeae4b5e32750726c7188118d741cf82 SHA512 14c839017eebd5dcf49dd3495a1ef6421d522389a2943c010d7869d214f757fe7d19d6ac3482fb3d8cbaaeb3977c5c311523aba90e9f7909fb1ba593ba57ae8a
-DIST github.com%2Fxeipuuv%2Fgojsonschema%2F@v%2Fv0.0.0-20180618132009-1d523034197f.mod 39 BLAKE2B 4a9a7321d9c10929abaf038e336248709fcfcde17c0ec9ec8e96407a9e12910b84e7008a7a847f533bd8695b56a8e35313d5771931d2fb1dfddd74ff59b58d5b SHA512 8ee8fb19b40e1366446a91a48a495fa96e4626f594903b7d4a53355069043c5a2958612dd0bf0f8b0a01a4fadf9dd92d0b9dfafbd10ab9c8ee6e3bcaa01853d2
-DIST go.opencensus.io%2F@v%2Fv0.22.0.mod 408 BLAKE2B c96dc637d392594cdf710b9542b90504fb090392662ab45208d45abe2cbaac5b64e55f2f62d1afe5542d2747abef1eedfcff97cfc48d6e0649c23b9b8293f7e5 SHA512 823e1ca3a9adedb1a98f5ac900e190bd51480686872bd901cc20a394cf03be6c8fd69cfe7343e42cb6f9d3500282a8097b6c32376aeb3e92bf0b1ce3e75872d1
-DIST go.opencensus.io%2F@v%2Fv0.22.0.zip 291484 BLAKE2B ca3bfc9c9864a2218ec373d78792ba0a40f4e2522bf3e0acd01b153eee43083cf8b124ae19b5fb0eaf7eef7cd59b2733b6c3ad847761518eeff2b183780c79cf SHA512 4fe718c3dd4c7bc0914b32844ae86ce281721f98b05797fb0a0fb51245129dfe1a74d2d04b419f4e0b7a31409b874e0e9d7939c8426af1efd92fdd5f12a52a98
-DIST go.opencensus.io%2F@v%2Fv0.22.2.mod 478 BLAKE2B 534d5c63341897b7213d30ae225708b5465b0bc5efd7b42ecfdd7fd67fe6e8fb5ec7a20345b734d07fc2793b41a115dde74a1f80510f3970aaee8f6d4effd7b8 SHA512 62820051cdf582849bd310ca77bba4b2caef82c9e6bb27e7c2de6c3bb1be0af90443770971e893d0eb466832857190a9908633d069880cb1980120c14ef391c0
-DIST go.opencensus.io%2F@v%2Fv0.22.2.zip 296264 BLAKE2B 0b0e20eb2f10b81748d55b843f8489ffb8147a8b17c063cb21fe505fcdb46feb9cc0830f3b3a91ea7034b1e7ba78df27b0b235b8500b8c1ade19f6837366aaa1 SHA512 c98a43e1bfc9f4bd1e54847dfd6b07e9af14efdbcd8d61b70c9f9701541ee2405f800b1e33cf115615a43030accb735a1235e2b7d81f54efd127e2fe5c992326
-DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20171113213409-9f005a07e0d3.mod 27 BLAKE2B f91145aab2cee00c3567772e97f6162b9681d6cbcbe67a1b5b2f59b8f912572f705a0d1280fdced086d92efd10c50ecede26d1cfa3d5419217e5eef95097b4b1 SHA512 a88da5b983ff482a4e8b512761eeee466a8b0664b42da54ec9772c2eb3cb1bc5b7545045e283bac82552336802d8bc8efe137ba16f3530228b529366744a33e6
-DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20190308221718-c2843e01d9a2.mod 88 BLAKE2B aec7d0eea1278eb3d1568d5bfb4041267501ad14457ebfcbdbc5fe21473170b8616ca4028f52af2edbfd85922cbe04540b4b0df7f69f63197698143cc5557a7a SHA512 2df49895053b36fed7ea905aa73f86568fbafd79ff0a7976679d8c77cf15025129435d9dbfd89367b611b1aadbea4f4bd1835eb4efa9ea702466e443638d379e
-DIST golang.org%2Fx%2Fcrypto%2F@v%2Fv0.0.0-20190308221718-c2843e01d9a2.zip 1776515 BLAKE2B 5833fc2a16dec541a1362c9df7c02abe04a54e92e04eaafd5767c1a923e3a9cf90bc8d8ae0ee3c60b9745f5f0e3234350be1cafd984052353594d6e6b9fba041 SHA512 a1418dbc50d1e41495fd68ccba2ac84fed5edfd3e613c68850068afcce1136c3456e99d226674908a77c9648f16d7861edacb70afebcf3a7e73ea3dcdf8edbe7
-DIST golang.org%2Fx%2Fexp%2F@v%2Fv0.0.0-20190121172915-509febef88a4.mod 24 BLAKE2B 9615629f1bf7d58419f5b73842e19f6be3a8c8cefb217364917f1aaf68aec00de41d96700378b048d6cc385e154ed6d3db59256b4a00e9165bac7951cd0bcbab SHA512 9131017b8ab0c2362b74e0c010daeb849689025aa31cb464dc379b0e34d0fcdb66749329b111041127997440bac052249dab522ab27239858405c056e3ac5dbf
-DIST golang.org%2Fx%2Flint%2F@v%2Fv0.0.0-20181026193005-c67002cb31c3.mod 25 BLAKE2B 8942ceba0f85f2e950663feb634e602815315834dea89d18f7319100c19a27f15746a11b50157d682756fc922138660512cd6c8e75a2458b0cd512aba19760da SHA512 3ba23f3472e0ae7904b4250e2e3a1b04c719c4bb66c59ccfaf96fae2fb25ae0abf19f542f03c7179a312a008521acaf4ff389517b11dba8b6f581a9dded44883
-DIST golang.org%2Fx%2Flint%2F@v%2Fv0.0.0-20190227174305-5b3e6a55c961.mod 88 BLAKE2B ce393846b227c374753f46fc076385826a6288b0c85095e097c041b844f46b87120774c68924492c4f33c33729103a2d916d2335e24953022630314b63f606d0 SHA512 0097db2957ab98a21a73960d2a37c526e5cabcd5ba4825e44f0ec4851ef83743ae171c8dc4b6c09ea4d931c15879c247e362ca53ef8dc762b484f1ddcc483d04
-DIST golang.org%2Fx%2Flint%2F@v%2Fv0.0.0-20190313153728-d0100b6bd8b3.mod 88 BLAKE2B 04ec98f76d6779784920b4f746fccafdba5ee6f365edc58985219675791d417746575165985de6d866ee891b6c768d317360a4229e61f19a1f05e4f0bafdb111 SHA512 5e787e9d2c16c87238995214eab353f87d009acf8ef78889295d11dfabef73cea4e8cabfc2999f9ef0c936efb84c22963e0aa2bce4b3678680a389cbe23df961
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20180724234803-3673e40ba225.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20180826012351-8a410e7b638d.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20180906233101-161cd47e91fd.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190213061140-3a22650c66bd.mod 24 BLAKE2B dad51d0aff48ef669f448f7b41bcdb153dbdc48863761ba1cac6aa3e3eaeec838e22733e6c61796b22bcc95d9e0a274085676bf191a8072717a398a067fe9e62 SHA512 d7446d3dd844b97512470f7ff05fce72d099f7800396e2738a54d41796f0f76be07e7aea1f638fee0190c7d8ce65eefc54eebe6917a06d14da04d0c9c8f9891a
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190311183353-d8887717615a.mod 119 BLAKE2B e042b2716739483252c3340451b2c3c7b421fdf8d6b3e0333e979802fca66159596982ea63a24b6a64457b2757a0ad24cbb9ea032bab4c5377edf84a3ea18b97 SHA512 26b6c92eecd2208967336d4d23f8a71f77f9a73643ad1e5cd84dee36b2f626fffc806e4dd33acc284831a0961e2b363d898a747903235945fbfb665c5b4d5ef2
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190501004415-9ce7a6920f09.mod 119 BLAKE2B e042b2716739483252c3340451b2c3c7b421fdf8d6b3e0333e979802fca66159596982ea63a24b6a64457b2757a0ad24cbb9ea032bab4c5377edf84a3ea18b97 SHA512 26b6c92eecd2208967336d4d23f8a71f77f9a73643ad1e5cd84dee36b2f626fffc806e4dd33acc284831a0961e2b363d898a747903235945fbfb665c5b4d5ef2
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190603091049-60506f45cf65.mod 172 BLAKE2B 6c58510adee25cabb2e31dcbd88939145c6c0856ba2fd1f0b78f82ec6f2589fe0dcce736a192d145dbab8f4ba892bebb80cb6cea4ea89fbef72f7822d157c1a1 SHA512 5b9748f38f64301e4895d9d2bc106fc9bd05a29feff5cfb53e248d168af998fd1a501c1a3c27e23af663b283093d2a48393bb0798bea449256d89ae119b225eb
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190603091049-60506f45cf65.zip 1417575 BLAKE2B 8c8f5c30c87eb0b1da6b5b8f60b64fcd5eb901e4b37dc504613bb344107086b2c12426cee08dfea04ad8dbeea80285dfe70fdc160599a40fa6266287811c86da SHA512 effdad1ad7877458a130ed4e895fce038c6aa4e94b7e4b32aee3fb5bd18813f2443e3cd4c019e3819839b9f6ddfef1850ffd88dfe334b14586a0899f42b362df
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20190620200207-3b0461eec859.mod 181 BLAKE2B 95ef87cbad118eb6bfc963893e37a555067b7fcf70e52cf4261de029eb46b739b12f50530a46fb91ec9119febcf5033176324a55064f589c17b240a23a15bb4a SHA512 2794c616072f01ca3324107aad2ed97e05f6e6c1e9811a1749073376a89c9ce57a910cfdc8dd6bdc2583d133bb53605c7a68917eaa221ec5c1c8319e5dfbb236
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20191209160850-c0dbc17a3553.mod 181 BLAKE2B 95ef87cbad118eb6bfc963893e37a555067b7fcf70e52cf4261de029eb46b739b12f50530a46fb91ec9119febcf5033176324a55064f589c17b240a23a15bb4a SHA512 2794c616072f01ca3324107aad2ed97e05f6e6c1e9811a1749073376a89c9ce57a910cfdc8dd6bdc2583d133bb53605c7a68917eaa221ec5c1c8319e5dfbb236
-DIST golang.org%2Fx%2Fnet%2F@v%2Fv0.0.0-20191209160850-c0dbc17a3553.zip 1499692 BLAKE2B 2ca64710a73a42e2c956ac30aff1ef35e9df2619ae3eaf7ebea4e6efe6cd322244daac868fce5842f08d14eb2ae3b20654d721bd8713fe2141b409aac593dbc7 SHA512 49ce7d40e2a126a4bece83b274e7c5ec18dfbc3fe2203290022a47d4eb651425dd3e90e23e747229e0b5c734fde374bfdbff629ff8466767cb17e8e94385719d
-DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20150321034511-ca8a464d23d5.mod 27 BLAKE2B 078fc99b981406f4ee3f8da94c83954e80619e76ea63cf6323f27614bbcb870bb650eb5ffaac865a374f3ed0ef0619d97e11f05924c92e395e72cb73f28630e6 SHA512 53431e560b5d6a9b50f44997ef6755f71741ccca155767dd954da41f11f53a3e8d01d7e01a2bb9de1fdd551dd2e734cb65e5641cf5de5c9a8a6a25a4894336f5
-DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20150321034511-ca8a464d23d5.zip 46377 BLAKE2B f4b0b1310f0661416f7c5a1ff711b8e27bae0ab50f757a7a787d45ace8a3fef730fe7d7a8c382b448d6d527c8d46e94c38ff25ba7aac9a597ef0c03ff508d6ee SHA512 023dc91a36f639a1f675c49201ba3df4f247e1b529c7df2725571b5fcfcb462f1cd4378f9eb9f7d6627fa6751da4c1187490aa3bd0c4940a4eb546b2f92afbcb
-DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20180821212333-d2e6202438be.mod 27 BLAKE2B 078fc99b981406f4ee3f8da94c83954e80619e76ea63cf6323f27614bbcb870bb650eb5ffaac865a374f3ed0ef0619d97e11f05924c92e395e72cb73f28630e6 SHA512 53431e560b5d6a9b50f44997ef6755f71741ccca155767dd954da41f11f53a3e8d01d7e01a2bb9de1fdd551dd2e734cb65e5641cf5de5c9a8a6a25a4894336f5
-DIST golang.org%2Fx%2Foauth2%2F@v%2Fv0.0.0-20180821212333-d2e6202438be.zip 81780 BLAKE2B 48e9b7ec89ad3f9cec88fe6c62ce64348a9217a134aab7306a07fd8cb28eeff91b15cf6f59ffec36df23a086195322f28e76fc16c026f33d2f419dcd3f84de04 SHA512 c7656f3c10140a5cb08620ce0647d0b2026272ec41bcd9df346dd2b5de5bd2236835ea117091646151a991f8f3aeeebd0cdfc1f784015d140162db5dc49f7325
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20180314180146-1d60e4601c6f.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20181108010431-42b317875d0f.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20181221193216-37e7f081c4d4.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20181221193216-37e7f081c4d4.zip 24746 BLAKE2B 743f3b4641f002cdfec6805ead87d196b43a4de1ec59c788f8516f4bc78ef2d58fc8f0cc34a52e8762f39f0845470dfe4e50f269036576d021d65a5f30aaf08a SHA512 f7622fbf44dcdf894cd397edc8399e38b734cdfc6a6ef4f8e81af9408c9d912a1b96544e713c42237fb3116e70678755e829da8f5f628bc1cbf6767921cd380e
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190227155943-e225da77a7e6.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190227155943-e225da77a7e6.zip 24987 BLAKE2B 5514571e2f35de919bf97d652901664298019c210e05e2f87c687e5ce8b83076ad2404f9aff704389f08ecb1a145f726f08a74c79a6c8b473545d79b426c589b SHA512 fe30b59f79b7819ecf634d22581da90684b2d76a1673a77e42f86dff9c418f85622b003982df7b066a3a8fd07f0dd8204c91c4733eeabb7fac4626ab43bd60b9
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190423024810-112230192c58.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190911185100-cd5d95a43a6e.mod 25 BLAKE2B 01f7f78a0324ca728efd4d662ea130d7e200ab25805125e472720ca01feaaf2625b15bf53f51837a6913e35e060a19018928a38851d7445f39e6e42e237dfda2 SHA512 a9dd073f69c5be1153aaab6e84dd3bb1610a0df8b9882ca4c486c6625d4b5201e5032f86e5014421358dff564d93c4e67f20e5fd1d21ed5e259ddfbc90af43c0
-DIST golang.org%2Fx%2Fsync%2F@v%2Fv0.0.0-20190911185100-cd5d95a43a6e.zip 26635 BLAKE2B a464a4ad04b36e50cfe966e6e6dc299c0f8b45d0f4198ba64483bb70ab815d033cec5cde60753b76dd1fbb16fed087b41179100a2002b0a61cd4a08f9de779fc SHA512 ae6f29d5f7790b37d1722d65f31708670bf19f429c60b2f6633756ecd40e47c1fab40fc128e0d70b3b6ed0ba47ce5f970ce5f4e55b8f1fa407d2efee7444b646
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180830151530-49385e6e1522.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180905080454-ebe1bf3edb33.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20180909124046-d0be0721c37e.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190215142949-d0b11bdaac8a.mod 24 BLAKE2B 64a70c4594f5d3c37d962c1ed07630fba8abeaf534242f8f1509af271684499252af9a2320d5bac8e44064dba344b807535e4e9dd085fc0fb47bd9304120601a SHA512 ffe50fccf7f1d200f2ebc805b190e3f10c5a3184458a38f4590e520d7ce115e1520fbabe56651bbdc2e08da4a8db5ac86d0e88728efde3ab26c64ab4e0cd604c
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190422165155-953cdadca894.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190502145724-3ef323f4f1fd.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190509141414-a5b02f93d862.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190509141414-a5b02f93d862.zip 1774674 BLAKE2B 1471e1c192483dba5292c653b7a34971ed6831bf2b0dad4e841da721ccb19d6f3497222cf6bf7b2c0a24f3a7e9a78d1585e52450ccd449a04cb31b91b2f4e3ca SHA512 fd411842df14ae4d9640d4213278510b76aaa9b24dbe6bb6369d7c1ba241bf6e37c9eee571615f878f65cadc61afdfdf4d2930241e914da21770cd92ddb8570b
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190514135907-3a4b5fb9f71f.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190522044717-8097e1b27ff5.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20190916202348-b4ddaad3f8a3.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191022100944-742c48ecaeb7.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191112214154-59a1497f0cea.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191115151921-52ab43148777.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191210023423-ac6580df4449.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20191210023423-ac6580df4449.zip 1910695 BLAKE2B 316571a5971606dba4acc980849d499d719bbdac688f86844468e462af5357e1f488509491d0f233d615348c4c4c8af685ce24b0c8dd585c4b4101d7637a1e99 SHA512 217a6b72ebe4d132ffa67cf34be0081325eb684ebb611544fcc8d91d00413351cbdc493a21fc6310290f64bb9af0e0a72c98f119a74405bb153734ab51fc4095
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200107162124-548cf772de50.mod 33 BLAKE2B 8be160de26713fd50f15adfb6fd7fff2643ee587aa17de9385b1e315869d0ecf102fc567294666bf232aa677d1ab04ba8341157f3d9b66a0f53543a7a47cf148 SHA512 0c7b940d567c7685dcb55c76c69aedeaab2170f4f3bde458994c879bf344169f34fb3f3ca899b0f138a8b0b8be5031217b57a6edf5980e6066ff5cb92d1ff9ab
-DIST golang.org%2Fx%2Fsys%2F@v%2Fv0.0.0-20200107162124-548cf772de50.zip 1913079 BLAKE2B 8beb8e74d186ac1a5424f65cef958515d39b3082fd35c348a86305743b26d6e378635f8b4df868ddc386a700fac7e92d24f5aac3da467a8ee08abfcab7060be6 SHA512 7ccc0910f3dd4ca652bb2f02bd0e423497b4ecb6f9e124c4c6016597893ca3c9bed3c293922e28e5e6c958cdfedc0b8ffef2fe44ca3b282ebde1ab310a975fd9
-DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.0.mod 25 BLAKE2B 31009af0fdcd0f8730c9985287e6e364ec4e5183e57e92560dbc80a2010eced51b8a90f01a82b49384268c8a0adbf69d179c205d3f68e0eb459169d2ea9528f0 SHA512 ca081ef7cccd7bbedc6843fbe0c452352661a07e1298cd02ff338ed79d807c6401d613a3cf20011189d2f98a794ffa410547b3e352eb58a6f0a84822285d391d
-DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.0.zip 6349244 BLAKE2B 0aa464ac7b7d17fa7ec0627b64cd2301ed4f2819f837807db7a55725950dacb40be899b5148b07ea31b51530818edcccc6444a9800755e1d369ba8f1bce949b0 SHA512 982d78f580a7eac99a0c51e6f1fd2b2c3b91f56cd5e2b96fe960510049f7daf5915264f73f55f05675eee232a52998f9667fa84a9ccba15ed7819e4c93f583a7
-DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.2.mod 88 BLAKE2B f3dd520e0e4e9b57feab62ecabb9169f37f1ce49b2846b949f9266f807767d38f55e4aa8ea006229c6f81cfc1e2c9dc0d1e3c186235e416dfb90fe7e04751d07 SHA512 d9361afb453b10c9d02787568ec33ea4c97a115899c6b3d1a1246547a749244e9218475ae5ae9f741d9b355260d2d3c33852673e805fcdd5f26f3ca40f035884
-DIST golang.org%2Fx%2Ftext%2F@v%2Fv0.3.2.zip 7430601 BLAKE2B d2403817cb6b7e32462b90995412c4e63cfdeaf3710fc9386f4b708e0ae2be9593649e923f0d844dc4420b177e42e7abfa7657e03e27fa08be9e98d76da4cb9c SHA512 8d8dad296f1497f352e94c416711dbb1f468901a3fd2dfd0a9c67f2d59306ea611d77917289521d2845f6958f571f6c3fe2d3dab289524d8145489d5b386fbaa
-DIST golang.org%2Fx%2Ftime%2F@v%2Fv0.0.0-20191024005414-555d28b269f0.mod 25 BLAKE2B ba9e31cf2a4ab0f78a5c67d78026c2ef9571bcff7c820ce212637c8360420af274bfc47cb14bbc3df24457a4d3acb5dee38448a848abbd4e82232bef05b6b2e9 SHA512 6e51811c33b84ddd4a7548013579204266e466bd2e87aa9b6e34892570aa09c607ffa806f8a420474e26ca0e277ab23c81bb07b0ebf2c3b6ed193014c1bc37a7
-DIST golang.org%2Fx%2Ftime%2F@v%2Fv0.0.0-20191024005414-555d28b269f0.zip 11971 BLAKE2B 7b29c746b75b42c23fca353b8299a4feaf69556ce1395872470e891835a8dec88a4e4c3b64ba6dcb4b5512aafb9bb44cc38c68915a0f6702f1027cda89d03d81 SHA512 58cb42ebeb88c06e049caf8c609e95243e7bdba51057de7d7301885aa904111dbe85962b5faef216ae45aa73f371b5de6516800a6f5765219cfde3fb06372afe
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20180221164845-07fd8470d635.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20180917221912-90fa682c2a6e.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20181030221726-6c7e314b6563.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190114222345-bf090417da8b.mod 26 BLAKE2B 2a44c2cc034af3473d9a1d4e1c23b0f4542333853bfc0ecbfcf9eacacbb3593b449fcfc94d23f49ccc16e5a844bc72a3462a3e08a5c26194106a64d1f2732e0a SHA512 3c166b18c0ce47a47e95da9eeede63879a92b0205bd4589d554f7bae89699be0efa83e1f5bba8e50f47714ea23e759b07f4543fe06301995d39373da2db16fc0
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190226205152-f727befe758c.mod 194 BLAKE2B 94f62204dd4fd9b865aca70366a7a7754e2e92ed27591beaf789b268ad272dfb34ca0906d888c608393b4c71bc5c9f975fc86c164528ed7d0390e41b66206ec4 SHA512 8b68acbca48744320e64a70a983a471e9e2fc2249562064b10256269033473fd50264b6544646227fb666f075c4f266df1835ca3f88ee679bb97d34bf62bd195
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190311212946-11955173bddd.mod 87 BLAKE2B 32cb406deea05323b1121386bf61f344f8eda0b5370e95bb73828ce0bea50bee375ae3e9b076b9d683a4d89561709c5e97e45e6b08344fbdf6b03b3ce4398dcd SHA512 18ae9b2f54109b4ec5cdea433ee0e3b7006e4d5ea57022d6e8151d4d364735a6b55cf7b5eb2f43b602ec786b2b6819ad78dfc33151ee1a63a0b1199f54ce34a1
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190328211700-ab21143f2384.mod 87 BLAKE2B 32cb406deea05323b1121386bf61f344f8eda0b5370e95bb73828ce0bea50bee375ae3e9b076b9d683a4d89561709c5e97e45e6b08344fbdf6b03b3ce4398dcd SHA512 18ae9b2f54109b4ec5cdea433ee0e3b7006e4d5ea57022d6e8151d4d364735a6b55cf7b5eb2f43b602ec786b2b6819ad78dfc33151ee1a63a0b1199f54ce34a1
-DIST golang.org%2Fx%2Ftools%2F@v%2Fv0.0.0-20190524140312-2c0ae7006135.mod 146 BLAKE2B 78e7f7eaadf244c74a90edd8a3e8d092b255cc9246320ca921558467fa02e84ccc68bc6c4d1d5d4baf3c9cab7da37cf6515e4d4889d490d21f374fc4415f1733 SHA512 e9c7b67e28905435e1420333a531e6c0a8f025dc3023f22e5067d5395c8d081bd7993ceeb6ae08c4cd2d1f13aa0f46274a8788e1be085e4b12eaef785f3d7213
-DIST google.golang.org%2Fapi%2F@v%2Fv0.0.0-20150730141719-0c2979aeaa5b.mod 29 BLAKE2B 411ad882e1d61d9e7a02f83256abf55c6a9557a980b89d7fd1a8981cd44f81182c17659e2fec1f4a587163a16556076418f166e90118a04041a8c488f9bb69dd SHA512 f2367919f017863362525d492f3c7f9e36aa311a55f96533ad6a2db1dcbdc9628f516ca435a43cd63a09c677c3528c2fe386907fda1da7dcb69ac2f6c95bfdc1
-DIST google.golang.org%2Fapi%2F@v%2Fv0.0.0-20150730141719-0c2979aeaa5b.zip 2771008 BLAKE2B 6e25a953858b1c8d6a2da19b4138df38cc4bb2a2979e410c0b0a13b8ada8ac29e9ba02c43ebdc9435b5bf121149a4b094473d13f2333f42c1aa6875ae1a04fac SHA512 c191253b0e76c52c3620c3b0de4caf7dd88a5d98e46b3cbfc149c5e5820338533191a462164170f4182c7f192be0a3d4b374e7565dcbb738ff10124d8633c80c
-DIST google.golang.org%2Fappengine%2F@v%2Fv1.1.0.mod 35 BLAKE2B 24fb6ba95138448c45da7f1ecc4c87391485006b54b8e7ff96ec582c2659f9ea77574b4d5fef2442eff9e5564f3c3263ed8e6963c5d21cde8772a7143d82f3ed SHA512 6644c398d639794470e49cad4402d17765422934915b5a13e13e1f84d8890cc8fad9e6ea8c580d114aefea70d894242e05ce3a432ee596f772b98b6b73069fe2
-DIST google.golang.org%2Fappengine%2F@v%2Fv1.4.0.mod 162 BLAKE2B 21c4d160665b6a87101d2aec39d2f7faef9a66f6be50f7293706686022f808b131c9ce7ddfcba6c2b6d27d15f9414101650436a2403f156a0368de2bce72e482 SHA512 60fb2454326103e4905f79f23a25320cb2c0035b7a0e3c228af845ed7dae23014efb81685f29805303edf277e8b1a2d9a7530b8f3a1a8e57caa1a85edeb52475
-DIST google.golang.org%2Fappengine%2F@v%2Fv1.6.5.mod 171 BLAKE2B 09b1ead1721eaa1dab7106f0206fd6f1c1509ddd07f70d7a23f73a1c047b9b33b41bae2519d2ba7e5c6ca632a9082483080dbffe0af3c371934f2ceab9ad334c SHA512 f99bba4e696291aae951ea3865a1cbaf0ba2df7cde4f86e942b2e5f5a4dfc6dfde95c74e52ff31ba69f2aa2a838d21843343b2203c732279eede5936b92d7c8c
-DIST google.golang.org%2Fappengine%2F@v%2Fv1.6.5.zip 417678 BLAKE2B cdb4e693ed5fb2bb77ed1ce0e0b1b25dbc3648c00554ade874ce28fffd5824f487fac744f9f2cb0920aad2c94a82024e1d233d1663887f0681790488a3af6f3c SHA512 1ffe3894d8fd004f6c28916e06d8e64708c20321ff914e82d05c50ce4c62b76bcd93e74e45871f7adc779791240ef8e25df08fdaaf2abdce20a3640d8964bb28
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20170731182057-09f6ed296fc6.mod 34 BLAKE2B cd6cb61b9f55a3c1e8b33588e98e62c9c27613ac20fb039cd70c9ecbe41c34d11d80246290ab73a9faf3ec809a15fc00267654b0eb00dbf23fe5c9758c705d9c SHA512 1c29af2b4f8b54234f09dfbfad120b4b11d4fe67e9578b0553412f1587cac2fa2bfe5537fbf15e6d52dcb04332413231c250c3c460b04e64326d2eaed3102464
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20170731182057-09f6ed296fc6.zip 1123155 BLAKE2B 8e361c2d35ecf55377521d01b9d07105703ece0ae2a3f2841766c06801dd61d87556852b5ab42ee23c2466dcae1fd7982bbfee36fc8f489c57aee24bfba5e066 SHA512 5e2ed5fdfd1172cff14fbf934e626033031a30dc8cc8c8b6322a798fcc3dabc02430ef4ca203dbdc537d974395e42bc35b8845d6828c63f1db8418c05b3302b3
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20180817151627-c66870c02cf8.mod 34 BLAKE2B cd6cb61b9f55a3c1e8b33588e98e62c9c27613ac20fb039cd70c9ecbe41c34d11d80246290ab73a9faf3ec809a15fc00267654b0eb00dbf23fe5c9758c705d9c SHA512 1c29af2b4f8b54234f09dfbfad120b4b11d4fe67e9578b0553412f1587cac2fa2bfe5537fbf15e6d52dcb04332413231c250c3c460b04e64326d2eaed3102464
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190425155659-357c62f0e4bb.mod 450 BLAKE2B bf0efd5f0ff915b9f59fa81611892e70644a4b14fefd15190d0ff68043f7809f51d53766dc50fc0eb9372df3e6590d3fbcf51aec5e9b0c18027e156ce53b8df1 SHA512 37a99611220df08ac5f15ed6f718f37a35523f5cef392b7b7da86b0eaf05e4fa5e52aceb42a6b6ddf6924b1f7cc151876d2e532c83dd2edbcca7c41b9191c427
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190522204451-c2c4e71fbf69.mod 331 BLAKE2B 7a174749635ef1cfd4ef7a5c67d29c51934734bb7d7d0873f56a461f040373213cd4c5deac8fe12b3ee75b7c210e5d26e7b378e31214ea0278ac84eb001f99fd SHA512 1ab2bfe29c78700b879cd08ba8993d452715b4d374d349f48018a7ea8bd5999c236be0d164fe8d340d660e222e229f8ed490b7d8f5c931e754f3617510145905
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190522204451-c2c4e71fbf69.zip 5299917 BLAKE2B 1e9e17b4453165e49537ec7edaf7be3959ea31c5ed6d434b7e3d4206f584fbb462e19469d40347cd89d9cc184cce8c215b1984f82b77e6f9e558cb5fa7b4a3c3 SHA512 c7e1da10eff6349af97c415b3a981601e40b384a7541668c0d55d969cdfbe5535582128a4cbeaab8978480760b56d3e2363bef6c0a6b709e2469fcda143421bc
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20190819201941-24fa4b261c55.mod 331 BLAKE2B 63923e4fcfa896f163dc77009fbdee8ce8c2e31a4694b6ccddf3397cad5c89a3be5796dbc65b77cf059f1601729d976f9afd2969bd426c0cd8781b106ffe0be8 SHA512 9f22a11a1d639cc7a465b6e826c2bc3915fe0ac847159a38c470f0b1631d6f6b2e0ae0548344f7a8e97161d4c6b80113062c04062b7ab887d7d615c39cbfc2dd
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20191230161307-f3c370f40bfb.mod 340 BLAKE2B bb2207855662037de3179be2e667a9cd8798e2d3c1b1eeb939f76095b9c32cca6dacd47439429b5705ad1d5c5597cb4170f17e49bcfa310c0733f1e68ffc1610 SHA512 1095755ae781f0370bb3dd72fca348c5d6640a4f89b6eddfcdd349f320ae117a4da47e48707f66743fc8dc4067285750d816d178b484dee0d21de0b2d1b129b2
-DIST google.golang.org%2Fgenproto%2F@v%2Fv0.0.0-20191230161307-f3c370f40bfb.zip 8035997 BLAKE2B 701b65c8b51271f8ff0e96f5fc2164f42951506c6c0d5caa1a621607e32fc1521a5be3dd287b461aee3f0022d5928eaddc314afad2f33d48da45d1d1df33347b SHA512 b1c72908124eeb0eca965973f0585e26216cc441b6eedb2c99698998fa16a3adde17879cc1d795fb1f4a9f902a2230f8647fdf2b4ea1d879bccc0980625f0ad4
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.19.0.mod 833 BLAKE2B 71052eaeaf40883bff624eecce8fd6f5669fdea9355e6ae0db9c86c841a62f7176d5ab58838d1645f59b9cb4ad4b636048aa3e9f1d7db521104b8f09dc535bc7 SHA512 38c4f75a0121cecd31b2628da3c3d77aeeb9b2c1974eef2d2d2bb7a3eb507d330debb7f14a724c8910174439b38ab54458096aaf665ea4af87a83f866ca0452e
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.20.1.mod 795 BLAKE2B b825f2ab62a96b9b164410f761228575fd9882de37635c09803b9d2ce682ebbec30f301fd874aafaad95a5aa2431ba25962073e1bd4f336d8cb137e5939a8708 SHA512 585d4cf68b50a70d7967ac3941a7a83b83ed5df1a31773589a38348b6fdf247eb49e7778f7054b78ba1a65eef48d004a815abad932876cb1af2c09deea9c0db8
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.21.0.mod 828 BLAKE2B a57ef0fe7edabd002918282ba9ef83386689db2688fd8f1b9ebedd191bb0b7059cc0b99d95974ab68112cd48e1865558d314dda64c71ab239de39fe6e8f0db5b SHA512 f9ab0c8ed5a58799a39f64c63b995badb24d8ba1148c7a1be1e3342d1b0d6a6e334fa2cab16f8e9396907e60386cbccb6495dbbe3ca09440bb878e10e1686d62
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.21.0.zip 1027057 BLAKE2B aea0c3492c86bffd080c6e1c2d1bd213a6a6c9f6a47a63557f87397901177a78bbbfd40798ecb05bac315c250ad8d0d13e792e16cff69b5dec4557d7dc292d07 SHA512 ade68a1bb465469ad19340518e388da498afbaacad5e4decba807fad863fdaf22a36baf13b6bd629b15f18211057a94393aacfc31a5753216cffd86368cf74df
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.23.0.mod 762 BLAKE2B 3c67c1bfdf0cef36f702e4a56d42cd7861cc573282ecf1667c7b19b97b8329a67f34a4c2ef3b2b865cabbd35a03dc43284e4c1af90dd8bb6018b0d8a192484b5 SHA512 4ea69ff3644e3e51f4a9ce73325a995b119088a9c97fec4a4811d1d9f119799182cd4dac377e3b58d96e10b8f6ba500a85ad72463ef4305d04ed1c55261526c2
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.26.0.mod 562 BLAKE2B 33a46aa2516aa10a1bfed0431c4f3d41554aa8ab5cff1f259323c47999696d0cdf9113f162eebf3bbc18cea163f1c6f8225777653191380cfccf06e5921db81e SHA512 6e06146c3ee73338a24698b08d0091dca5cc67d033e1a98ca28157dccd8e056a3a2624c798180eda5917f90e1e37aff31158cb8ab2cedeb8e4578324719605ef
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.26.0.zip 1101208 BLAKE2B bee7938f7e39bd6acfe03bf03e1d4787f30384f34fbf292ddabf7e172dcf8736ebc0d32f7d26bdf0021252dcb984766bc3b778312434a4ffc5f515f009fd26ed SHA512 8b90599cca0b31538086a5d65dc124c2e7641ec42b4774b15b3f5cb063b39f3d8f83a7114e89e6aac1dc4cebbac526105378a3cd9504bc723cb26781b5d214fd
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.7.0.mod 30 BLAKE2B 8ec04a655d1d0c3cfde5c051842d84f8a8615d7d56563ad57769905212e0e7cc821933d5adedcb210c724de9699b6b9cd5bcfd3a2c9555516354d3e19ffd3482 SHA512 10c6aa20da47c7923358430b63d5d5264d54f6a6cf70b008ed157807c07073cd0c64bef9db282b39fdb523515e1429125079cc29273ba186f7e4b42712d3d37a
-DIST google.golang.org%2Fgrpc%2F@v%2Fv1.7.0.zip 466649 BLAKE2B dec58f439a38bb283fbc8ce13470800077f0f70e1707f47d32c490c7ead22a4a12ba085397903d1819d0212aca5d7cc5ae0a69439de01a728a7c3eeb1628079c SHA512 46c800c5e1d5eb475cd5f4a5d38ffcad3deecb799c0b5c96ff6eabebb0bbcffe3408548534cdd56c2a438238a872889af2d67a475bf675873a8238698074d235
-DIST gopkg.in%2Fairbrake%2Fgobrake.v2%2F@v%2Fv2.0.9.mod 36 BLAKE2B 33002a8288351a233f5e8236743a91df1f630355380a4ae8df10c32abc03470955eac6c15c95655caec990eb17ef2661985570e49293cb146517828090d95635 SHA512 8482c3135335a3a69611529f0d50bd19257b0fe8a8de2d4f2d6441ccde5f1e7a57d487cedc375575c5fe16094e5fc1c7f7f1a6bf04acc8a9d4f92701db279002
-DIST gopkg.in%2Fcheck.v1%2F@v%2Fv0.0.0-20161208181325-20d25e280405.mod 25 BLAKE2B 6470f3d94700c4d8b3176d692bdb91646750f2c6a866ff2ef4183aff1de01f024a8757f97b4626ec0355092e5f25e7ded91cd5be845f627d107c58b1daf400d7 SHA512 9ac0f80ef05881387cb2f48f81560f3207fe586ea16495383662e6d62e43d93fac01dfe72e1d0063d3ab065331dab3a8098d7da4f1830ba1aff6f27f8e1bc1b2
-DIST gopkg.in%2Fcheck.v1%2F@v%2Fv0.0.0-20161208181325-20d25e280405.zip 39844 BLAKE2B b3dab69dbd1ebb999938c12595de7007dce9431cfeaeb5e77aba80c49918d1a4edf7fb95279e9b66686cb45deaf57a011c083e55fb66ec2c614582ba323954da SHA512 97c96a92ec86372c2f06141c30bceaa86ed62c1db34696f9542f43f3411cb0a37dea654de923a5ee054e603198179b9048e3b477da140e4092ffadc4525b9241
-DIST gopkg.in%2Ffsnotify.v1%2F@v%2Fv1.4.7.mod 28 BLAKE2B ee2514c386f6cb3ff4a9b829d903e57372ce765aeab91fb2f29e95358e3472e0612a00f2982f53790159738e416819e368afa03e44bf8f6b43511347bc6d6995 SHA512 7cf7d1933039974dd4fa16febc52cc118bcd0e35c329d4c563c7f411b8000d9e17be5bca9a60d94f5309cbef97b3d176110704ebfbc3c114572cbadf63a55a34
-DIST gopkg.in%2Ffsnotify.v1%2F@v%2Fv1.4.7.zip 40894 BLAKE2B 5edf237401ae1a48c425ffec6fc67146850d7137c7026260e894656f6c832066321d930151bdd7624489e1f768fc04b47b0fd3dac3b2171bd092dff344de16a7 SHA512 f99afc545324e49ef1de05fd4c8dde0dae37094e2fb1b81de8d8c9b8ba9b28f39f9b5ab715c728e4a0375544a48d49c2dbd719fc178d222e0b914a425d9aeb63
-DIST gopkg.in%2Fgemnasium%2Flogrus-airbrake-hook.v2%2F@v%2Fv2.1.2.mod 50 BLAKE2B c715a977e733670d4047cc0f62fd485ce2af214d87e799cdea97015f64ee66488e1f68f4aec8e8ab139cd70574a0dd5f54b7bcedad09b8890ad098bcb01d7f5f SHA512 2d48fa45b7183412ac358a60c0af0b3c2f77d5c461f6bf4ba5d7a162195d49076870e739ac6c59e95d41dae2002370f52faf183fd6ca7999d60374866fa3ebdc
-DIST gopkg.in%2Folivere%2Felastic.v2%2F@v%2Fv2.0.12.mod 35 BLAKE2B a362618fa34bbb067989eecaa1db22ce48db4d54bc2c445da1793ef909fd177047e6522f1aa6960d0dcf2033e5745d1be900c76f257c929af28340e65af49009 SHA512 305a12fa532d9a1b55fbb6cb95f0ef40012fce95411e54d2ebc309c3cfec3fb4d6c4ef85084478339618b5f8baed84ea793bebcc89726bff4955caa0ecf02c5c
-DIST gopkg.in%2Folivere%2Felastic.v2%2F@v%2Fv2.0.12.zip 398866 BLAKE2B a6f73c8fd00afa7b58adad07ad08a14bb63a734822c0ac5ec1c2778d75d39524f6de19d4bd90166c4785cbe12aad8c3263218740ff672a7877b5c8fd62157d9f SHA512 42ec4ed03304aaad0f18bc3b3818dd580c6af5f38ff940b9740461d4da71c113d73d1bad247fd079abcf8d4e134ef1b824681c713bc8a0a515a872afe4ecb4f8
-DIST gopkg.in%2Ftomb.v1%2F@v%2Fv1.0.0-20141024135613-dd632973f1e7.mod 24 BLAKE2B 24a0c476e6590543f1b46175c4f0e036498afd9af616f6e204cac280e61cc10454e0c2a54fe10b9a7a306715ab966a5822ad78626c6cf20c2c78aac02598c922 SHA512 b147b03cabc4666519b94f4d9c7d9fefdea45810e3e35a9b3d303dba491d486fe03c0d5969a6186adbb9c75665e4f3e9811c7bf4ce72c46280b053611c198c41
-DIST gopkg.in%2Ftomb.v1%2F@v%2Fv1.0.0-20141024135613-dd632973f1e7.zip 5099 BLAKE2B 56a68e317ccf9e6b0912331e7006742c3bfffd087742293b3d48ca7069c707db57b3722179c76b8c724303c8d58ac9ebf847c4277ed38a59e1510c676ebc941c SHA512 658ebdf931b23afe9d9d5d33d6c910fba7cf37740efe7052ba7627199c1a5fa4f93f093796674e341109430ba1f1b5ea933ea4a32356f63eaf337f05a562004a
-DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.1.mod 95 BLAKE2B adb3684980f1d8e6c23444e91028f8db55f1bc496114eb3508dbecf9917dbc8a0a4bed7c0d761123335a75b9ffe727e180f2d6aa5f84312edb05a798185c8362 SHA512 916ff67ddb6c2ba39905db4277ce42596d9ca5a42f8aa7f47f16335e78d91a1b30419fd1b7b6967b37e248363397ec527b38d2f500b3546edda5d2bce1944379
-DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.2.mod 95 BLAKE2B adb3684980f1d8e6c23444e91028f8db55f1bc496114eb3508dbecf9917dbc8a0a4bed7c0d761123335a75b9ffe727e180f2d6aa5f84312edb05a798185c8362 SHA512 916ff67ddb6c2ba39905db4277ce42596d9ca5a42f8aa7f47f16335e78d91a1b30419fd1b7b6967b37e248363397ec527b38d2f500b3546edda5d2bce1944379
-DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.4.mod 95 BLAKE2B adb3684980f1d8e6c23444e91028f8db55f1bc496114eb3508dbecf9917dbc8a0a4bed7c0d761123335a75b9ffe727e180f2d6aa5f84312edb05a798185c8362 SHA512 916ff67ddb6c2ba39905db4277ce42596d9ca5a42f8aa7f47f16335e78d91a1b30419fd1b7b6967b37e248363397ec527b38d2f500b3546edda5d2bce1944379
-DIST gopkg.in%2Fyaml.v2%2F@v%2Fv2.2.4.zip 80160 BLAKE2B 7c19bcfee1136e9afaa54bb36a296e48c276e21517eead613313409f3ff85f4a961c1dca7926d3c4fd51feb0f537a85de905294d2a310276bb8177f27f3776c3 SHA512 a8fa21d2f84f8c6f28250e9ec7d678ae160963eaa0a373f345fe67804925b2647239a6117ad6f253f458f34ec9f62bc21e8f2071fc9dfe76dbd2a7ded1e1a0e0
-DIST gotest.tools%2F@v%2Fv2.2.0+incompatible.mod 20 BLAKE2B 25d11078b1caa5a705f3ae32f28d155683dfe0109d96531b1fc20e632acdc2f8429395975e6509f5dc78bc042b5e70e90fa2daa9790c39eb3422cbc189fb21af SHA512 5a73bc54777766425ba833348d2986408baedcaff86acf1648384bbcb31e302b0b0de38e1a92d53083551e35c62f375262497c0d5a37c9fb39824ae68fe8113e
-DIST gotest.tools%2F@v%2Fv2.2.0+incompatible.zip 88327 BLAKE2B 8730134244a00fb47b24b347ee4758fac8c11e3f627788c03d6568af129acb5b911b08857ab77a619bf571986ee90dd1c6c6aa12fd8e6e26d395a64bb7513a8b SHA512 66a13fedc358399644b869ac4b39a295c6c15d642e074ec66ff042e1b109f9603bc941ff25aaf7d9bc700f6c2fb1f60bf2a637a471e26ae037d822f0f1e2c518
-DIST honnef.co%2Fgo%2Ftools%2F@v%2Fv0.0.0-20190102054323-c2f93a96b099.mod 26 BLAKE2B db6cc87a17bed88b955e6b36a17568930239c94a969211b02c2d5acc70386fbea63ac44365a0d3241e900125bd64644d698d8f1bdcabc3e6cf99c47259c63df5 SHA512 d00ae74b24e7fb3ff351ff68b88e59636153bbcf92b36e81e91556e3e75a7ccfb08ce471f757f92fd7612378944de3d7309c73923812e2df6a26b74e999ca9ce
-DIST honnef.co%2Fgo%2Ftools%2F@v%2Fv0.0.0-20190523083050-ea95bdfd59fc.mod 26 BLAKE2B db6cc87a17bed88b955e6b36a17568930239c94a969211b02c2d5acc70386fbea63ac44365a0d3241e900125bd64644d698d8f1bdcabc3e6cf99c47259c63df5 SHA512 d00ae74b24e7fb3ff351ff68b88e59636153bbcf92b36e81e91556e3e75a7ccfb08ce471f757f92fd7612378944de3d7309c73923812e2df6a26b74e999ca9ce
-DIST k8s.io%2Fklog%2F@v%2Fv0.3.0.mod 19 BLAKE2B 2af8f84f1cc7227be731c55dbe33e87e9d4fbba134ae86b6a86bac30260f32c7f17422789189486b17e1a2b84cfdca35984dd6d6079aab621620e90da230a6ac SHA512 cd5afa0488338a1b22bb852219078d74d61f894fd075b60b22bf062dbc49ad16c1088ab55bc8ae72aeadb4f7fb9534b99adceeaf3913e47bbf00df1ead1c7aaf
-DIST k8s.io%2Fklog%2F@v%2Fv0.3.0.zip 35266 BLAKE2B 73313b579008ab1bf3f4b1c0857ba24b34798ea7c92c18b5da11db956b5f544cd2b2e8d601256f2ed012b972033662b3cb6afe1c85de048dc76978373b2c0e6e SHA512 adec8e9a68d5729c35604764b24caafdd30ea097e9e493f35fa47f0f2b4632d7055d50a1d90be3bcc22bc00e3c431e30795ea189ecf7ddfc634ad380eb686f9a
-DIST k8s.io%2Fkubernetes%2F@v%2Fv1.13.0.mod 25 BLAKE2B 4060536d51fac9854215957b1108a158adb0b3aeb8bfc659eca1140efdcf79cffe378db6f3cb1f4a4b68aa36468b7d5631e993d5a089eb839bd03b6b608496be SHA512 2349b7dbe8409836cc70d97c5b336f518b809f5731baf05ce68d957c9970895a9b7f89caf09763794cf13824ee29410b3a6e431b2da7f64610895c44b86c4d2d
-DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20190712204705-3dccf664f023.mod 164 BLAKE2B cd4086710de69fcfd2179978f78cb5fb4633a6700b6cab545a83a733fef06e492428deb492149294c3fea186aa01b86080d2a387c1af2a789f35b5f37abfc7ac SHA512 d2cb2a60b25ab16fe3d377d4811a04503c068eef7901bb971f4107d3cc1339279ee95e3c3967651c98112b61fa7bc0fd913dd61a8aec6348180fa8bb357914c5
-DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20190712204705-3dccf664f023.zip 93888 BLAKE2B f02de12146b319d3f1788ce00abcb4d73e1e00b7d372b59722bafafc94ecdec831985228595fc424fdf5125438fe03eaf93e55fe43f379a95180cc5e93348f2e SHA512 6b198501669452d40fbf42de191dae2e0289a9f7d9c8eb299aa1ec010010d3d01f5c34cd184e389b9eb88d27ef3fae8fa14e0c7c6dc05ff5ba79c7f60f4063e0
-DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200117235808-5f6fbceb4c31.mod 164 BLAKE2B cd4086710de69fcfd2179978f78cb5fb4633a6700b6cab545a83a733fef06e492428deb492149294c3fea186aa01b86080d2a387c1af2a789f35b5f37abfc7ac SHA512 d2cb2a60b25ab16fe3d377d4811a04503c068eef7901bb971f4107d3cc1339279ee95e3c3967651c98112b61fa7bc0fd913dd61a8aec6348180fa8bb357914c5
-DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200117235808-5f6fbceb4c31.zip 139116 BLAKE2B 0de019e1229821d8c2c53df204e6f8f9c3b80f1b3fe5ca6ff7482dd8f684c2bec95bdbfcfe84b9fb54fe060687d4f0740759a24aaaac27dc8d4794a4157d01ff SHA512 a67bcdc90e4d5395a2ff1ec6030bbbbd105a7a8cc564abdef28fed07a3d7a53382ff06b36b10a59f717e52d3fd3b3a54e92ff98ccafb31096fc03f7d78ce3cdf
-DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200122174043-1e243dd1a584.mod 164 BLAKE2B cd4086710de69fcfd2179978f78cb5fb4633a6700b6cab545a83a733fef06e492428deb492149294c3fea186aa01b86080d2a387c1af2a789f35b5f37abfc7ac SHA512 d2cb2a60b25ab16fe3d377d4811a04503c068eef7901bb971f4107d3cc1339279ee95e3c3967651c98112b61fa7bc0fd913dd61a8aec6348180fa8bb357914c5
-DIST k8s.io%2Futils%2F@v%2Fv0.0.0-20200122174043-1e243dd1a584.zip 139668 BLAKE2B 503f321d47d7e30d85b1c6ef96cd136901e3a4d100cfad50382d2f88f312d0c525b134f0414abf3e03faa6ed86a665646746e848c2f55a8747f7fa90f0d9e4cc SHA512 631e2314df6041fc800bf34e10359894223f7500034d6a53ae578a117f05602708ae0030a312656a15147064ec8a17465f0c917ed400d4fc5b163e6ece89c764
diff --git a/app-emulation/cadvisor/cadvisor-0.36.0.ebuild b/app-emulation/cadvisor/cadvisor-0.36.0.ebuild
deleted file mode 100644
index 0dcf7a935df8..000000000000
--- a/app-emulation/cadvisor/cadvisor-0.36.0.ebuild
+++ /dev/null
@@ -1,453 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit go-module
-COMMIT=4fe450a23991beb6c61dc941c0f87f56021ad386
-
-DESCRIPTION="Analyzes resource usage and performance characteristics of running containers"
-HOMEPAGE="https://github.com/google/cadvisor"
-
-EGO_SUM=(
- "bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod"
- "cloud.google.com/go v0.1.1-0.20160913182117-3b1ae45394a2"
- "cloud.google.com/go v0.1.1-0.20160913182117-3b1ae45394a2/go.mod"
- "cloud.google.com/go v0.26.0"
- "cloud.google.com/go v0.26.0/go.mod"
- "github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78"
- "github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod"
- "github.com/BurntSushi/toml v0.3.1/go.mod"
- "github.com/Microsoft/go-winio v0.3.2"
- "github.com/Microsoft/go-winio v0.3.2/go.mod"
- "github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5"
- "github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod"
- "github.com/Microsoft/hcsshim v0.8.7"
- "github.com/Microsoft/hcsshim v0.8.7/go.mod"
- "github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5"
- "github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod"
- "github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5"
- "github.com/Rican7/retry v0.1.1-0.20160712041035-272ad122d6e5/go.mod"
- "github.com/SeanDolphin/bqschema v0.0.0-20150424181127-f92a08f515e1"
- "github.com/SeanDolphin/bqschema v0.0.0-20150424181127-f92a08f515e1/go.mod"
- "github.com/Shopify/sarama v1.8.0"
- "github.com/Shopify/sarama v1.8.0/go.mod"
- "github.com/Shopify/toxiproxy v2.1.4+incompatible"
- "github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod"
- "github.com/abbot/go-http-auth v0.0.0-20140618235127-c0ef4539dfab"
- "github.com/abbot/go-http-auth v0.0.0-20140618235127-c0ef4539dfab/go.mod"
- "github.com/aws/aws-sdk-go v1.6.10"
- "github.com/aws/aws-sdk-go v1.6.10/go.mod"
- "github.com/beorn7/perks v0.0.0-20150223135152-b965b613227f"
- "github.com/beorn7/perks v0.0.0-20150223135152-b965b613227f/go.mod"
- "github.com/blang/semver v3.1.0+incompatible"
- "github.com/blang/semver v3.1.0+incompatible/go.mod"
- "github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod"
- "github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b"
- "github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b/go.mod"
- "github.com/cilium/ebpf v0.0.0-20191113100448-d9fb101ca1fb"
- "github.com/cilium/ebpf v0.0.0-20191113100448-d9fb101ca1fb/go.mod"
- "github.com/client9/misspell v0.3.4/go.mod"
- "github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f"
- "github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod"
- "github.com/containerd/cgroups v0.0.0-20200108155730-918ed86e29cc"
- "github.com/containerd/cgroups v0.0.0-20200108155730-918ed86e29cc/go.mod"
- "github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa"
- "github.com/containerd/console v0.0.0-20170925154832-84eeaae905fa/go.mod"
- "github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1"
- "github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod"
- "github.com/containerd/containerd v1.0.2"
- "github.com/containerd/containerd v1.0.2/go.mod"
- "github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod"
- "github.com/containerd/containerd v1.3.2"
- "github.com/containerd/containerd v1.3.2/go.mod"
- "github.com/containerd/containerd v1.3.3"
- "github.com/containerd/containerd v1.3.3/go.mod"
- "github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod"
- "github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41"
- "github.com/containerd/continuity v0.0.0-20200107194136-26c1120b8d41/go.mod"
- "github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod"
- "github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00"
- "github.com/containerd/fifo v0.0.0-20191213151349-ff969a566b00/go.mod"
- "github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod"
- "github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod"
- "github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c"
- "github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod"
- "github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod"
- "github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd"
- "github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod"
- "github.com/coreos/go-systemd v0.0.0-20160527140244-4484981625c1"
- "github.com/coreos/go-systemd v0.0.0-20160527140244-4484981625c1/go.mod"
- "github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e"
- "github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod"
- "github.com/coreos/go-systemd/v22 v22.0.0-20191111152658-2d78030078ef/go.mod"
- "github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d"
- "github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod"
- "github.com/cyphar/filepath-securejoin v0.2.2-0.20170720062807-ae69057f2299"
- "github.com/cyphar/filepath-securejoin v0.2.2-0.20170720062807-ae69057f2299/go.mod"
- "github.com/davecgh/go-spew v1.1.0/go.mod"
- "github.com/davecgh/go-spew v1.1.1"
- "github.com/davecgh/go-spew v1.1.1/go.mod"
- "github.com/docker/distribution v2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible"
- "github.com/docker/distribution v2.6.0-rc.1.0.20170726174610-edc3ab29cdff+incompatible/go.mod"
- "github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible"
- "github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod"
- "github.com/docker/distribution v2.7.1+incompatible"
- "github.com/docker/distribution v2.7.1+incompatible/go.mod"
- "github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0"
- "github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod"
- "github.com/docker/docker v1.4.2-0.20180612054059-a9fbbdc8dd87"
- "github.com/docker/docker v1.4.2-0.20180612054059-a9fbbdc8dd87/go.mod"
- "github.com/docker/go-connections v0.3.0"
- "github.com/docker/go-connections v0.3.0/go.mod"
- "github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c"
- "github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod"
- "github.com/docker/go-units v0.2.1-0.20151230175859-0bbddae09c5a"
- "github.com/docker/go-units v0.2.1-0.20151230175859-0bbddae09c5a/go.mod"
- "github.com/docker/go-units v0.4.0"
- "github.com/docker/go-units v0.4.0/go.mod"
- "github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod"
- "github.com/eapache/go-resiliency v1.0.1-0.20160104191539-b86b1ec0dd42"
- "github.com/eapache/go-resiliency v1.0.1-0.20160104191539-b86b1ec0dd42/go.mod"
- "github.com/eapache/queue v1.0.2"
- "github.com/eapache/queue v1.0.2/go.mod"
- "github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod"
- "github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod"
- "github.com/euank/go-kmsg-parser v2.0.0+incompatible"
- "github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod"
- "github.com/fsnotify/fsnotify v1.4.7"
- "github.com/fsnotify/fsnotify v1.4.7/go.mod"
- "github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7"
- "github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod"
- "github.com/go-ini/ini v1.9.0"
- "github.com/go-ini/ini v1.9.0/go.mod"
- "github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55"
- "github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod"
- "github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e"
- "github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod"
- "github.com/godbus/dbus/v5 v5.0.3/go.mod"
- "github.com/gogo/googleapis v1.3.1"
- "github.com/gogo/googleapis v1.3.1/go.mod"
- "github.com/gogo/protobuf v1.2.1/go.mod"
- "github.com/gogo/protobuf v1.3.0"
- "github.com/gogo/protobuf v1.3.0/go.mod"
- "github.com/gogo/protobuf v1.3.1"
- "github.com/gogo/protobuf v1.3.1/go.mod"
- "github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b"
- "github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod"
- "github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6"
- "github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod"
- "github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7"
- "github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod"
- "github.com/golang/mock v1.1.1/go.mod"
- "github.com/golang/protobuf v1.2.0/go.mod"
- "github.com/golang/protobuf v1.3.1"
- "github.com/golang/protobuf v1.3.1/go.mod"
- "github.com/golang/protobuf v1.3.2"
- "github.com/golang/protobuf v1.3.2/go.mod"
- "github.com/golang/snappy v0.0.0-20150730031844-723cc1e459b8"
- "github.com/golang/snappy v0.0.0-20150730031844-723cc1e459b8/go.mod"
- "github.com/google/go-cmp v0.2.0/go.mod"
- "github.com/google/go-cmp v0.3.0/go.mod"
- "github.com/google/go-cmp v0.3.1"
- "github.com/google/go-cmp v0.3.1/go.mod"
- "github.com/google/uuid v1.1.1"
- "github.com/google/uuid v1.1.1/go.mod"
- "github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1"
- "github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod"
- "github.com/gorilla/mux v1.7.3"
- "github.com/gorilla/mux v1.7.3/go.mod"
- "github.com/gotestyourself/gotestyourself v2.2.0+incompatible"
- "github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod"
- "github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod"
- "github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod"
- "github.com/hashicorp/golang-lru v0.5.1"
- "github.com/hashicorp/golang-lru v0.5.1/go.mod"
- "github.com/hashicorp/golang-lru v0.5.3/go.mod"
- "github.com/hpcloud/tail v1.0.0"
- "github.com/hpcloud/tail v1.0.0/go.mod"
- "github.com/inconshreveable/mousetrap v1.0.0/go.mod"
- "github.com/influxdb/influxdb v0.9.6-0.20151125225445-9eab56311373"
- "github.com/influxdb/influxdb v0.9.6-0.20151125225445-9eab56311373/go.mod"
- "github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8"
- "github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod"
- "github.com/jtolds/gls v4.20.0+incompatible"
- "github.com/jtolds/gls v4.20.0+incompatible/go.mod"
- "github.com/karrick/godirwalk v1.7.5"
- "github.com/karrick/godirwalk v1.7.5/go.mod"
- "github.com/kevinburke/go-bindata v3.16.0+incompatible"
- "github.com/kevinburke/go-bindata v3.16.0+incompatible/go.mod"
- "github.com/kevinburke/go-bindata v3.17.0+incompatible"
- "github.com/kevinburke/go-bindata v3.17.0+incompatible/go.mod"
- "github.com/kisielk/errcheck v1.1.0/go.mod"
- "github.com/kisielk/errcheck v1.2.0/go.mod"
- "github.com/kisielk/gotool v1.0.0/go.mod"
- "github.com/klauspost/crc32 v0.0.0-20151223135126-a3b15ae34567"
- "github.com/klauspost/crc32 v0.0.0-20151223135126-a3b15ae34567/go.mod"
- "github.com/konsorten/go-windows-terminal-sequences v1.0.1"
- "github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod"
- "github.com/konsorten/go-windows-terminal-sequences v1.0.2"
- "github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod"
- "github.com/kr/pretty v0.0.0-20140723054909-088c856450c0"
- "github.com/kr/pretty v0.0.0-20140723054909-088c856450c0/go.mod"
- "github.com/kr/text v0.0.0-20130911015532-6807e777504f"
- "github.com/kr/text v0.0.0-20130911015532-6807e777504f/go.mod"
- "github.com/mattn/go-shellwords v1.0.4-0.20180201004752-39dbbfa24bbc"
- "github.com/mattn/go-shellwords v1.0.4-0.20180201004752-39dbbfa24bbc/go.mod"
- "github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369"
- "github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod"
- "github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48"
- "github.com/mesos/mesos-go v0.0.7-0.20180413204204-29de6ff97b48/go.mod"
- "github.com/mindprince/gonvml v0.0.0-20171110221305-fee913ce8fb2"
- "github.com/mindprince/gonvml v0.0.0-20171110221305-fee913ce8fb2/go.mod"
- "github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989"
- "github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod"
- "github.com/mistifyio/go-zfs v2.1.2-0.20170901132433-166dd29edf05+incompatible"
- "github.com/mistifyio/go-zfs v2.1.2-0.20170901132433-166dd29edf05+incompatible/go.mod"
- "github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible"
- "github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod"
- "github.com/mrunalp/fileutils v0.0.0-20160930181131-4ee1cc9a8058"
- "github.com/mrunalp/fileutils v0.0.0-20160930181131-4ee1cc9a8058/go.mod"
- "github.com/onsi/ginkgo v1.6.0/go.mod"
- "github.com/onsi/ginkgo v1.10.1/go.mod"
- "github.com/onsi/ginkgo v1.10.3"
- "github.com/onsi/ginkgo v1.10.3/go.mod"
- "github.com/onsi/gomega v1.7.0/go.mod"
- "github.com/onsi/gomega v1.7.1"
- "github.com/onsi/gomega v1.7.1/go.mod"
- "github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod"
- "github.com/opencontainers/go-digest v1.0.0-rc1"
- "github.com/opencontainers/go-digest v1.0.0-rc1/go.mod"
- "github.com/opencontainers/image-spec v1.0.0-rc6.0.20170604055404-372ad780f634"
- "github.com/opencontainers/image-spec v1.0.0-rc6.0.20170604055404-372ad780f634/go.mod"
- "github.com/opencontainers/image-spec v1.0.1"
- "github.com/opencontainers/image-spec v1.0.1/go.mod"
- "github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod"
- "github.com/opencontainers/runc v1.0.0-rc10"
- "github.com/opencontainers/runc v1.0.0-rc10/go.mod"
- "github.com/opencontainers/runc v1.0.0-rc8.0.20190906011214-a6606a7ae9d9"
- "github.com/opencontainers/runc v1.0.0-rc8.0.20190906011214-a6606a7ae9d9/go.mod"
- "github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod"
- "github.com/opencontainers/runtime-spec v1.0.0"
- "github.com/opencontainers/runtime-spec v1.0.0/go.mod"
- "github.com/opencontainers/runtime-spec v1.0.1"
- "github.com/opencontainers/runtime-spec v1.0.1/go.mod"
- "github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod"
- "github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52"
- "github.com/opencontainers/selinux v1.3.1-0.20190929122143-5215b1806f52/go.mod"
- "github.com/opencontainers/selinux v1.3.2"
- "github.com/opencontainers/selinux v1.3.2/go.mod"
- "github.com/opencontainers/selinux v1.3.3"
- "github.com/opencontainers/selinux v1.3.3/go.mod"
- "github.com/pborman/uuid v0.0.0-20150824212802-cccd189d45f7"
- "github.com/pborman/uuid v0.0.0-20150824212802-cccd189d45f7/go.mod"
- "github.com/pkg/errors v0.8.0/go.mod"
- "github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod"
- "github.com/pkg/errors v0.8.1"
- "github.com/pkg/errors v0.8.1/go.mod"
- "github.com/pmezard/go-difflib v1.0.0"
- "github.com/pmezard/go-difflib v1.0.0/go.mod"
- "github.com/pquerna/ffjson v0.0.0-20171002144729-d49c2bc1aa13"
- "github.com/pquerna/ffjson v0.0.0-20171002144729-d49c2bc1aa13/go.mod"
- "github.com/prometheus/client_golang v0.9.1"
- "github.com/prometheus/client_golang v0.9.1/go.mod"
- "github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612"
- "github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612/go.mod"
- "github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4"
- "github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod"
- "github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b"
- "github.com/prometheus/common v0.0.0-20170220103846-49fee292b27b/go.mod"
- "github.com/prometheus/procfs v0.0.0-20170419201554-1e2146578273"
- "github.com/prometheus/procfs v0.0.0-20170419201554-1e2146578273/go.mod"
- "github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod"
- "github.com/prometheus/procfs v0.0.5"
- "github.com/prometheus/procfs v0.0.5/go.mod"
- "github.com/russross/blackfriday/v2 v2.0.1"
- "github.com/russross/blackfriday/v2 v2.0.1/go.mod"
- "github.com/seccomp/libseccomp-golang v0.0.0-20150813023252-1b506fc7c24e"
- "github.com/seccomp/libseccomp-golang v0.0.0-20150813023252-1b506fc7c24e/go.mod"
- "github.com/shurcooL/sanitized_anchor_name v1.0.0"
- "github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod"
- "github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod"
- "github.com/sirupsen/logrus v1.4.1/go.mod"
- "github.com/sirupsen/logrus v1.4.2"
- "github.com/sirupsen/logrus v1.4.2/go.mod"
- "github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d"
- "github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod"
- "github.com/smartystreets/goconvey v1.6.4"
- "github.com/smartystreets/goconvey v1.6.4/go.mod"
- "github.com/spf13/afero v1.2.2/go.mod"
- "github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod"
- "github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod"
- "github.com/stretchr/objx v0.1.0"
- "github.com/stretchr/objx v0.1.0/go.mod"
- "github.com/stretchr/objx v0.1.1"
- "github.com/stretchr/objx v0.1.1/go.mod"
- "github.com/stretchr/testify v1.2.2/go.mod"
- "github.com/stretchr/testify v1.3.0"
- "github.com/stretchr/testify v1.3.0/go.mod"
- "github.com/stretchr/testify v1.4.0"
- "github.com/stretchr/testify v1.4.0/go.mod"
- "github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod"
- "github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2"
- "github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod"
- "github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod"
- "github.com/urfave/cli v1.22.1"
- "github.com/urfave/cli v1.22.1/go.mod"
- "github.com/vishvananda/netlink v0.0.0-20150820014904-1e2e08e8a2dc"
- "github.com/vishvananda/netlink v0.0.0-20150820014904-1e2e08e8a2dc/go.mod"
- "github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df"
- "github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod"
- "github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod"
- "github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod"
- "github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod"
- "go.opencensus.io v0.22.0"
- "go.opencensus.io v0.22.0/go.mod"
- "go.opencensus.io v0.22.2"
- "go.opencensus.io v0.22.2/go.mod"
- "golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod"
- "golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2"
- "golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod"
- "golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod"
- "golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod"
- "golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod"
- "golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod"
- "golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod"
- "golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod"
- "golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod"
- "golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod"
- "golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod"
- "golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod"
- "golang.org/x/net v0.0.0-20190603091049-60506f45cf65"
- "golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod"
- "golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod"
- "golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553"
- "golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod"
- "golang.org/x/oauth2 v0.0.0-20150321034511-ca8a464d23d5"
- "golang.org/x/oauth2 v0.0.0-20150321034511-ca8a464d23d5/go.mod"
- "golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be"
- "golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod"
- "golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod"
- "golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod"
- "golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4"
- "golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod"
- "golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6"
- "golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod"
- "golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod"
- "golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e"
- "golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod"
- "golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod"
- "golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod"
- "golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod"
- "golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod"
- "golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod"
- "golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod"
- "golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862"
- "golang.org/x/sys v0.0.0-20190509141414-a5b02f93d862/go.mod"
- "golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod"
- "golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod"
- "golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod"
- "golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod"
- "golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod"
- "golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod"
- "golang.org/x/sys v0.0.0-20191210023423-ac6580df4449"
- "golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod"
- "golang.org/x/sys v0.0.0-20200107162124-548cf772de50"
- "golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod"
- "golang.org/x/text v0.3.0"
- "golang.org/x/text v0.3.0/go.mod"
- "golang.org/x/text v0.3.2"
- "golang.org/x/text v0.3.2/go.mod"
- "golang.org/x/time v0.0.0-20191024005414-555d28b269f0"
- "golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod"
- "golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod"
- "golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod"
- "golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod"
- "golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod"
- "golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod"
- "golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod"
- "golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod"
- "golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod"
- "google.golang.org/api v0.0.0-20150730141719-0c2979aeaa5b"
- "google.golang.org/api v0.0.0-20150730141719-0c2979aeaa5b/go.mod"
- "google.golang.org/appengine v1.1.0/go.mod"
- "google.golang.org/appengine v1.4.0/go.mod"
- "google.golang.org/appengine v1.6.5"
- "google.golang.org/appengine v1.6.5/go.mod"
- "google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6"
- "google.golang.org/genproto v0.0.0-20170731182057-09f6ed296fc6/go.mod"
- "google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod"
- "google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod"
- "google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69"
- "google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod"
- "google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod"
- "google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb"
- "google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod"
- "google.golang.org/grpc v1.7.0"
- "google.golang.org/grpc v1.7.0/go.mod"
- "google.golang.org/grpc v1.19.0/go.mod"
- "google.golang.org/grpc v1.20.1/go.mod"
- "google.golang.org/grpc v1.21.0"
- "google.golang.org/grpc v1.21.0/go.mod"
- "google.golang.org/grpc v1.23.0/go.mod"
- "google.golang.org/grpc v1.26.0"
- "google.golang.org/grpc v1.26.0/go.mod"
- "gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod"
- "gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405"
- "gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod"
- "gopkg.in/fsnotify.v1 v1.4.7"
- "gopkg.in/fsnotify.v1 v1.4.7/go.mod"
- "gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod"
- "gopkg.in/olivere/elastic.v2 v2.0.12"
- "gopkg.in/olivere/elastic.v2 v2.0.12/go.mod"
- "gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7"
- "gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod"
- "gopkg.in/yaml.v2 v2.2.1/go.mod"
- "gopkg.in/yaml.v2 v2.2.2/go.mod"
- "gopkg.in/yaml.v2 v2.2.4"
- "gopkg.in/yaml.v2 v2.2.4/go.mod"
- "gotest.tools v2.2.0+incompatible"
- "gotest.tools v2.2.0+incompatible/go.mod"
- "honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod"
- "honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod"
- "k8s.io/klog v0.3.0"
- "k8s.io/klog v0.3.0/go.mod"
- "k8s.io/kubernetes v1.13.0/go.mod"
- "k8s.io/utils v0.0.0-20190712204705-3dccf664f023"
- "k8s.io/utils v0.0.0-20190712204705-3dccf664f023/go.mod"
- "k8s.io/utils v0.0.0-20200117235808-5f6fbceb4c31"
- "k8s.io/utils v0.0.0-20200117235808-5f6fbceb4c31/go.mod"
- "k8s.io/utils v0.0.0-20200122174043-1e243dd1a584"
- "k8s.io/utils v0.0.0-20200122174043-1e243dd1a584/go.mod"
- )
-go-module_set_globals
-SRC_URI="https://github.com/google/cadvisor/archive/v${PV}.tar.gz -> ${P}.tar.gz
- ${EGO_SUM_SRC_URI}"
-
-LICENSE="Apache-2.0 BSD BSD-2 ISC MIT"
-KEYWORDS="~amd64"
-SLOT="0"
-
-COMMON_DEPEND="acct-group/cadvisor
- acct-user/cadvisor"
-DEPEND="${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}"
-
-src_prepare() {
- sed -i -e "/go get/d" build/assets.sh || die
- sed -i -e "s/git describe.*/echo ${PV} )/"\
- -e "s/git rev-parse --short HEAD.*/echo ${COMMIT} )/"\
- build/build.sh || die
- default
-}
-
-src_compile() {
- rm -fr vendor || die
- GO_FLAGS="${GOFLAGS}" VERBOSE="true" emake build
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
- dobin ${PN}
- keepdir /var/log/${PN}
- fowners ${PN}:${PN} /var/log/${PN}
-}
diff --git a/app-emulation/cadvisor/files/cadvisor.initd-r1 b/app-emulation/cadvisor/files/cadvisor.initd-r1
deleted file mode 100644
index 37fc16c8f63d..000000000000
--- a/app-emulation/cadvisor/files/cadvisor.initd-r1
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2016-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="cAdvisor - Analyzes resource usage and performance characteristics of running containers"
-pidfile=${pidfile:-"/run/${SVCNAME}.pid"}
-user=${user:-${SVCNAME}}
-group=${group:-${SVCNAME}}
-
-command="/usr/bin/cadvisor"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${SVCNAME}/${SVCNAME}.log \
- --stderr /var/log/${SVCNAME}/${SVCNAME}.log"
-
-depend() {
- after net
- use docker
-}
diff --git a/app-emulation/cadvisor/metadata.xml b/app-emulation/cadvisor/metadata.xml
deleted file mode 100644
index 054ff1968a44..000000000000
--- a/app-emulation/cadvisor/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <upstream>
- <remote-id type="github">google/cadvisor</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/cloud-hypervisor/Manifest b/app-emulation/cloud-hypervisor/Manifest
new file mode 100644
index 000000000000..5519f9b3e4fc
--- /dev/null
+++ b/app-emulation/cloud-hypervisor/Manifest
@@ -0,0 +1,2 @@
+DIST cloud-hypervisor-31.0-vendor.tar.gz 36783838 BLAKE2B 6087223f6cf17954bbe81a792233e735672da97e7b83515ce705b6b789afefcdee1d5a6c3a8f9aded27fd842eab0d1c31b1d09c0e56391ba4422ae4360befd5d SHA512 3595445a765a3571fe3597488940f7fa01576063de2324aa7a212f69b09b9fb0163ff922e3f789696702626ca51df4512fe9e60fe0cd59c3ea191c421718bf4f
+DIST cloud-hypervisor-31.0.tar.gz 849675 BLAKE2B b88f1cb53fde6085c33e969d508fbccf29d54e2f04cee143340d0a43547a967d7cdea6bc880c24c84e34bfc4a4d8c4e4478aeb54e858d4518e528f07b521b9b3 SHA512 9ddb8bce534331f609d00703e1c47e4359723432661aef4e0b920f8b289f13c9fda68d0f3320bcbc80824f699df1e456375b6268355c8a79d69c78e5d7659f52
diff --git a/app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild b/app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild
new file mode 100644
index 000000000000..6de65cf5be66
--- /dev/null
+++ b/app-emulation/cloud-hypervisor/cloud-hypervisor-31.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Auto-Generated by cargo-ebuild 0.5.4
+
+EAPI=8
+
+CRATES=" "
+inherit cargo
+
+DESCRIPTION="Open source Virtual Machine Monitor (VMM) that runs on top of KVM"
+HOMEPAGE="https://www.cloudhypervisor.org"
+SRC_URI="https://github.com/cloud-hypervisor/cloud-hypervisor/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/${P}-vendor.tar.gz"
+
+LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_unpack() {
+ cargo_src_unpack
+ mkdir "${S}"/{vendor,.cargo} || die
+ ln -s "${WORKDIR}/vendor/"* "${S}"/vendor || die
+ cp "${FILESDIR}"/${P}-vendor-config "${S}"/.cargo/config.toml || die
+}
+
+src_prepare() {
+ default
+ sed -i 's/strip = true/strip = false/' Cargo.toml || die
+}
+
+src_configure() {
+ cargo_gen_config
+ cargo_src_configure --frozen
+}
+
+src_test() {
+ # Intergration tests require root
+ # https://github.com/cloud-hypervisor/cloud-hypervisor/issues/5388
+ cargo_src_test --bins
+}
+
+src_install() {
+ cargo_src_install
+ dodoc -r docs
+}
diff --git a/app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild b/app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild
new file mode 100644
index 000000000000..2769f9c4605b
--- /dev/null
+++ b/app-emulation/cloud-hypervisor/cloud-hypervisor-9999.ebuild
@@ -0,0 +1,44 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Auto-Generated by cargo-ebuild 0.5.4
+
+EAPI=8
+
+inherit cargo git-r3
+
+DESCRIPTION="Open source Virtual Machine Monitor (VMM) that runs on top of KVM"
+HOMEPAGE="https://www.cloudhypervisor.org"
+EGIT_REPO_URI="https://github.com/cloud-hypervisor/cloud-hypervisor.git"
+
+LICENSE="0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 MIT MPL-2.0 Unicode-DFS-2016 Unlicense ZLIB"
+SLOT="0"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+src_unpack() {
+ git-r3_src_unpack
+ cargo_live_src_unpack
+}
+
+src_prepare() {
+ default
+ sed -i 's/strip = true/strip = false/' Cargo.toml || die
+}
+
+src_configure() {
+ cargo_gen_config
+ cargo_src_configure --frozen
+}
+
+src_test() {
+ # Integration tests require root
+ # https://github.com/cloud-hypervisor/cloud-hypervisor/issues/5388
+ cargo_src_test --bins
+}
+
+src_install() {
+ cargo_src_install
+ dodoc -r docs
+}
diff --git a/app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config b/app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config
new file mode 100644
index 000000000000..b20bf67b611d
--- /dev/null
+++ b/app-emulation/cloud-hypervisor/files/cloud-hypervisor-31.0-vendor-config
@@ -0,0 +1,45 @@
+[source.crates-io]
+replace-with = "vendored-sources"
+
+[source."https://github.com/cloud-hypervisor/kvm-bindings"]
+git = "https://github.com/cloud-hypervisor/kvm-bindings"
+branch = "ch-v0.6.0-tdx"
+replace-with = "vendored-sources"
+
+[source."https://github.com/cloud-hypervisor/versionize_derive"]
+git = "https://github.com/cloud-hypervisor/versionize_derive"
+branch = "ch"
+replace-with = "vendored-sources"
+
+[source."https://github.com/firecracker-microvm/micro-http"]
+git = "https://github.com/firecracker-microvm/micro-http"
+branch = "main"
+replace-with = "vendored-sources"
+
+[source."https://github.com/rust-vmm/acpi_tables"]
+git = "https://github.com/rust-vmm/acpi_tables"
+branch = "main"
+replace-with = "vendored-sources"
+
+[source."https://github.com/rust-vmm/mshv"]
+git = "https://github.com/rust-vmm/mshv"
+branch = "main"
+replace-with = "vendored-sources"
+
+[source."https://github.com/rust-vmm/vfio"]
+git = "https://github.com/rust-vmm/vfio"
+branch = "main"
+replace-with = "vendored-sources"
+
+[source."https://github.com/rust-vmm/vfio-user"]
+git = "https://github.com/rust-vmm/vfio-user"
+branch = "main"
+replace-with = "vendored-sources"
+
+[source."https://github.com/rust-vmm/vm-fdt"]
+git = "https://github.com/rust-vmm/vm-fdt"
+branch = "main"
+replace-with = "vendored-sources"
+
+[source.vendored-sources]
+directory = "vendor"
diff --git a/app-emulation/cloud-hypervisor/metadata.xml b/app-emulation/cloud-hypervisor/metadata.xml
new file mode 100644
index 000000000000..81242aa0ae84
--- /dev/null
+++ b/app-emulation/cloud-hypervisor/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>jsmolic@gentoo.org</email>
+ <name>Jakov Smolić</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">cloud-hypervisor/cloud-hypervisor</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/cloud-init/Manifest b/app-emulation/cloud-init/Manifest
index c613182719d4..a1fdc85deb9c 100644
--- a/app-emulation/cloud-init/Manifest
+++ b/app-emulation/cloud-init/Manifest
@@ -1,2 +1,3 @@
-DIST cloud-init-19.4.tar.gz 1091893 BLAKE2B 2ab8fef70b420c066d6d8f83871568eeac24f00879ecf3d58c3768dd809cff6a3b79c7e72d9a10204002101049ab86ab64f0c524362e00497a9222960ef380df SHA512 e69ea47eab41d69d64fa44102fbde59319da5f71a68f28a0f6ac65cd6866542b4fe58a71b84c903cfa9b1d2f26eb648cdf4de633b8df61e4f89c9fa4c2a2b1d3
-DIST cloud-init-20.1.tar.gz 1088152 BLAKE2B 1c075676bcf7454965beafaaa38f3cdf08f321ddd0303b7f710c49d2a69e0fb2ec8a81870a632b7504c47af6436555c97ea9fa9c8416955de78f8f551b5509b7 SHA512 ad28e4a0290165308ef2cdb8a935778ad99039978a204bee1098460de006bc3f375a3b81d0d72971fc4f4195d5d2ade9c648fb19e6d6eba12decf750dc54b6eb
+DIST cloud-init-22.2.2.tar.gz 1349451 BLAKE2B fdb6669e9762984614fefe787834f20f056345d304327679fa8bc7b4d6566509a23ecc4a7ac4e6368b9b9078a72fe6fe35533a67e7aeb0c0accbf5ad014f8aae SHA512 18b75ebbb5e808e19df5ceddb6402cc881c33443fb169f736f54837254ba43836994f2392a26febbd8df3342b3467ee72759b6942cfeb96d07c0e452c11dd0bf
+DIST cloud-init-22.4.tar.gz 1494295 BLAKE2B 5f961c895c0d6c78a7cee47d2b52acd57d959baeb5172cea89d75ffe23424e3a8a3170a0ecdcad729c6cb0c898477ea94c43a5f8bdf200fc3f122c32fdb2e96d SHA512 6151d1d5e4be241219cb5804ca2bad2dd790f366bc847d286a8840faad1fb4adf5d780c9418ce574c2cfcefc16851a49961f33c5da1fbc84bb8299cf138bfcfc
+DIST cloud-init-23.4.tar.gz 1648908 BLAKE2B 0acec9c437c7a5a86ed9cd8718830a7311c257ae9f223a68959b8d1eccc693b35f6a716de5c04112d848c1e2e54f6461a3919fd733debba18989145f6669d359 SHA512 34966b173571764bf83779bef0e89a86971310ff0fa62feceef4fbe17c9fa6d1b69f11f57caaa32cc4ae4a74f598f157dfb3ce356221044666401230cfb1ad13
diff --git a/app-emulation/cloud-init/cloud-init-20.1.ebuild b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
index 2ab63c9b9602..a1d0ec08c413 100644
--- a/app-emulation/cloud-init/cloud-init-20.1.ebuild
+++ b/app-emulation/cloud-init/cloud-init-22.2.2.ebuild
@@ -1,18 +1,21 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python3_6 python3_7 python3_8 )
-DISTUTILS_USE_SETUPTOOLS=rdepend
+EAPI=8
-inherit distutils-r1
+# Disabled for now: bug #850628
+# https://bugs.launchpad.net/cloud-init/+bug/1978328
+#DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_10 )
-if [[ ${PV} == *9999 ]];then
+inherit distutils-r1 udev
+
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.launchpad.net/cloud-init"
else
SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 x86"
+ KEYWORDS="amd64 arm64 ppc64 x86"
fi
DESCRIPTION="Cloud instance initialisation magic"
@@ -20,7 +23,7 @@ HOMEPAGE="https://launchpad.net/cloud-init"
LICENSE="GPL-3"
SLOT="0"
-IUSE="test"
+IUSE="selinux test"
RESTRICT="!test? ( test )"
CDEPEND="
@@ -32,17 +35,16 @@ CDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
+ dev-python/netifaces[${PYTHON_USEDEP}]
"
-DEPEND="
+BDEPEND="
+ ${CDEPEND}
test? (
- ${CDEPEND}
>=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/unittest2[${PYTHON_USEDEP}]
- dev-python/coverage[${PYTHON_USEDEP}]
- dev-python/contextlib2[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
)
"
RDEPEND="
@@ -51,28 +53,19 @@ RDEPEND="
sys-apps/iproute2
sys-fs/growpart
virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
"
-PATCHES=(
- # Fix Gentoo support
- # https://code.launchpad.net/~gilles-dartiguelongue/cloud-init/+git/cloud-init/+merge/358777
- "${FILESDIR}/${PN}-18.4-fix-packages-module.patch"
- "${FILESDIR}/${PN}-20.1-gentoo-support-upstream-templates.patch"
- "${FILESDIR}"/18.4-fix-filename-for-storing-locale.patch
- "${FILESDIR}"/18.4-fix-update_package_sources-function.patch
- "${FILESDIR}"/18.4-add-support-for-package_upgrade.patch
-)
+distutils_enable_tests pytest
python_prepare_all() {
# Fix location of documentation installation
sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die
- sed -i 's/version=get_version(),/version=9999,/g' setup.py || die
- distutils-r1_python_prepare_all
-}
-python_test() {
- # Do not use Makefile target as it does not setup environment correclty
- esetup.py nosetests -v --where cloudinit --where tests/unittests || die
+ if [[ ${PV} == *9999 ]] ; then
+ sed -i 's/version=get_version(),/version=9999,/g' setup.py || die
+ fi
+ distutils-r1_python_prepare_all
}
python_install() {
@@ -85,10 +78,16 @@ python_install_all() {
distutils-r1_python_install_all
# installs as non-executable
- chmod +x "${D}"/etc/init.d/*
+ chmod +x "${D}"/etc/init.d/* || die
+}
+
+pkg_prerm() {
+ udev_reload
}
pkg_postinst() {
+ udev_reload
+
elog "cloud-init-local needs to be run in the boot runlevel because it"
elog "modifies services in the default runlevel. When a runlevel is started"
elog "it is cached, so modifications that happen to the current runlevel"
diff --git a/app-emulation/cloud-init/cloud-init-19.4.ebuild b/app-emulation/cloud-init/cloud-init-22.4.ebuild
index 6ece034faa12..839d6105a832 100644
--- a/app-emulation/cloud-init/cloud-init-19.4.ebuild
+++ b/app-emulation/cloud-init/cloud-init-22.4.ebuild
@@ -1,20 +1,29 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python3_6 python3_7 )
-DISTUTILS_USE_SETUPTOOLS=rdepend
+EAPI=8
-inherit distutils-r1
+# Disabled for now: bug #850628
+# https://bugs.launchpad.net/cloud-init/+bug/1978328
+#DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_10 python3_11 )
+
+inherit distutils-r1 udev
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.launchpad.net/cloud-init"
+else
+ SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+ KEYWORDS="amd64 arm64 ppc64 x86"
+fi
DESCRIPTION="Cloud instance initialisation magic"
HOMEPAGE="https://launchpad.net/cloud-init"
-SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="test"
+IUSE="selinux test"
RESTRICT="!test? ( test )"
CDEPEND="
@@ -26,17 +35,16 @@ CDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
+ dev-python/netifaces[${PYTHON_USEDEP}]
"
-DEPEND="
+BDEPEND="
+ ${CDEPEND}
test? (
- ${CDEPEND}
>=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/unittest2[${PYTHON_USEDEP}]
- dev-python/coverage[${PYTHON_USEDEP}]
- dev-python/contextlib2[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
)
"
RDEPEND="
@@ -45,28 +53,19 @@ RDEPEND="
sys-apps/iproute2
sys-fs/growpart
virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
"
-PATCHES=(
- # Fix Gentoo support
- # https://code.launchpad.net/~gilles-dartiguelongue/cloud-init/+git/cloud-init/+merge/358777
- "${FILESDIR}/${PN}-18.4-fix-packages-module.patch"
- "${FILESDIR}/${P}-gentoo-support-upstream-templates.patch"
- "${FILESDIR}"/18.4-fix-filename-for-storing-locale.patch
- "${FILESDIR}"/18.4-fix-update_package_sources-function.patch
- "${FILESDIR}"/18.4-add-support-for-package_upgrade.patch
- "${FILESDIR}/${P}_CVE-2020-8631.patch"
-)
-
-src_prepare() {
+distutils_enable_tests pytest
+
+python_prepare_all() {
# Fix location of documentation installation
sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die
- distutils-r1_src_prepare
-}
-python_test() {
- # Do not use Makefile target as it does not setup environment correclty
- esetup.py nosetests -v --where cloudinit --where tests/unittests || die
+ if [[ ${PV} == *9999 ]] ; then
+ sed -i 's/version=get_version(),/version=9999,/g' setup.py || die
+ fi
+ distutils-r1_python_prepare_all
}
python_install() {
@@ -79,10 +78,16 @@ python_install_all() {
distutils-r1_python_install_all
# installs as non-executable
- chmod +x "${D}"/etc/init.d/*
+ chmod +x "${D}"/etc/init.d/* || die
+}
+
+pkg_prerm() {
+ udev_reload
}
pkg_postinst() {
+ udev_reload
+
elog "cloud-init-local needs to be run in the boot runlevel because it"
elog "modifies services in the default runlevel. When a runlevel is started"
elog "it is cached, so modifications that happen to the current runlevel"
diff --git a/app-emulation/cloud-init/cloud-init-23.4.ebuild b/app-emulation/cloud-init/cloud-init-23.4.ebuild
new file mode 100644
index 000000000000..eba8a0ee55f0
--- /dev/null
+++ b/app-emulation/cloud-init/cloud-init-23.4.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Disabled for now: bug #850628
+# https://bugs.launchpad.net/cloud-init/+bug/1978328
+#DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_10 python3_11 python3_12 )
+
+inherit distutils-r1 udev
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.launchpad.net/cloud-init"
+else
+ SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Cloud instance initialisation magic"
+HOMEPAGE="https://launchpad.net/cloud-init"
+
+LICENSE="GPL-3"
+SLOT="0"
+IUSE="selinux test"
+RESTRICT="!test? ( test )"
+
+CDEPEND="
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/oauthlib[${PYTHON_USEDEP}]
+ dev-python/pyserial[${PYTHON_USEDEP}]
+ >=dev-python/configobj-5.0.2[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/netifaces[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ ${CDEPEND}
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/passlib[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ )
+"
+RDEPEND="
+ ${CDEPEND}
+ net-analyzer/macchanger
+ sys-apps/iproute2
+ sys-fs/growpart
+ virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # Fix location of documentation installation
+ sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die
+
+ if [[ ${PV} == *9999 ]] ; then
+ sed -i 's/version=get_version(),/version=9999,/g' setup.py || die
+ fi
+ distutils-r1_python_prepare_all
+}
+
+python_install() {
+ distutils-r1_python_install --init-system=sysvinit_openrc,systemd --distro gentoo
+}
+
+python_install_all() {
+ keepdir /etc/cloud
+
+ distutils-r1_python_install_all
+
+ # installs as non-executable
+ chmod +x "${D}"/etc/init.d/* || die
+}
+
+pkg_prerm() {
+ udev_reload
+}
+
+pkg_postinst() {
+ udev_reload
+
+ elog "cloud-init-local needs to be run in the boot runlevel because it"
+ elog "modifies services in the default runlevel. When a runlevel is started"
+ elog "it is cached, so modifications that happen to the current runlevel"
+ elog "while you are in it are not acted upon."
+}
diff --git a/app-emulation/cloud-init/cloud-init-9999.ebuild b/app-emulation/cloud-init/cloud-init-9999.ebuild
index 581d49cdff12..7bb69ee6336a 100644
--- a/app-emulation/cloud-init/cloud-init-9999.ebuild
+++ b/app-emulation/cloud-init/cloud-init-9999.ebuild
@@ -1,18 +1,21 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python3_6 python3_7 python3_8 )
-DISTUTILS_USE_SETUPTOOLS=rdepend
+EAPI=8
-inherit distutils-r1
+# Disabled for now: bug #850628
+#DISTUTILS_USE_PEP517=setuptools
+# https://bugs.launchpad.net/cloud-init/+bug/1978328
+PYTHON_COMPAT=( python3_10 python3_11 python3_12 )
-if [[ ${PV} == *9999 ]];then
+inherit distutils-r1 udev
+
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://git.launchpad.net/cloud-init"
else
SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
+ KEYWORDS="~amd64 ~arm64 ~x86"
fi
DESCRIPTION="Cloud instance initialisation magic"
@@ -20,8 +23,7 @@ HOMEPAGE="https://launchpad.net/cloud-init"
LICENSE="GPL-3"
SLOT="0"
-IUSE="test"
-RESTRICT="!test? ( test )"
+IUSE="selinux"
CDEPEND="
dev-python/jinja[${PYTHON_USEDEP}]
@@ -32,17 +34,16 @@ CDEPEND="
dev-python/requests[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
dev-python/jsonschema[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
+ dev-python/netifaces[${PYTHON_USEDEP}]
"
-DEPEND="
+BDEPEND="
+ ${CDEPEND}
test? (
- ${CDEPEND}
- >=dev-python/httpretty-0.7.1[${PYTHON_USEDEP}]
dev-python/mock[${PYTHON_USEDEP}]
- dev-python/nose[${PYTHON_USEDEP}]
- dev-python/unittest2[${PYTHON_USEDEP}]
- dev-python/coverage[${PYTHON_USEDEP}]
- dev-python/contextlib2[${PYTHON_USEDEP}]
+ dev-python/passlib[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
)
"
RDEPEND="
@@ -51,28 +52,20 @@ RDEPEND="
sys-apps/iproute2
sys-fs/growpart
virtual/logger
+ selinux? ( sec-policy/selinux-cloudinit )
"
-PATCHES=(
- # Fix Gentoo support
- # https://code.launchpad.net/~gilles-dartiguelongue/cloud-init/+git/cloud-init/+merge/358777
- "${FILESDIR}/${PN}-18.4-fix-packages-module.patch"
- "${FILESDIR}/${PN}-20.1-gentoo-support-upstream-templates.patch"
- "${FILESDIR}"/18.4-fix-filename-for-storing-locale.patch
- "${FILESDIR}"/18.4-fix-update_package_sources-function.patch
- "${FILESDIR}"/18.4-add-support-for-package_upgrade.patch
-)
+distutils_enable_tests pytest
python_prepare_all() {
# Fix location of documentation installation
sed -i "s:USR + '/share/doc/cloud-init:USR + '/share/doc/${PF}:" setup.py || die
- sed -i 's/version=get_version(),/version=9999,/g' setup.py || die
- distutils-r1_python_prepare_all
-}
-python_test() {
- # Do not use Makefile target as it does not setup environment correclty
- esetup.py nosetests -v --where cloudinit --where tests/unittests || die
+ if [[ ${PV} == *9999 ]] ; then
+ sed -i 's/version=get_version(),/version=9999,/g' setup.py || die
+ fi
+
+ distutils-r1_python_prepare_all
}
python_install() {
@@ -85,10 +78,16 @@ python_install_all() {
distutils-r1_python_install_all
# installs as non-executable
- chmod +x "${D}"/etc/init.d/*
+ chmod +x "${D}"/etc/init.d/* || die
+}
+
+pkg_prerm() {
+ udev_reload
}
pkg_postinst() {
+ udev_reload
+
elog "cloud-init-local needs to be run in the boot runlevel because it"
elog "modifies services in the default runlevel. When a runlevel is started"
elog "it is cached, so modifications that happen to the current runlevel"
diff --git a/app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch b/app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch
deleted file mode 100644
index 9c542cfc0777..000000000000
--- a/app-emulation/cloud-init/files/18.4-add-support-for-package_upgrade.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 7868b97507d0dd7d7721ad5c4539e22c67635f92 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 14 Nov 2018 15:58:30 +0100
-Subject: [PATCH 5/5] gentoo: add support for package_upgrade
-
----
- cloudinit/distros/gentoo.py | 25 ++++++++++++++-----------
- 1 file changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py
-index 7b838e82..22ad2cf3 100644
---- a/cloudinit/distros/gentoo.py
-+++ b/cloudinit/distros/gentoo.py
-@@ -189,23 +189,26 @@ class Distro(distros.Distro):
- distros.set_etc_timezone(tz=tz, tz_file=self._find_tz_file(tz))
-
- def package_command(self, command, args=None, pkgs=None):
-- if pkgs is None:
-- pkgs = []
--
- cmd = ['emerge']
- # Redirect output
- cmd.append("--quiet")
-
-- if args and isinstance(args, str):
-- cmd.append(args)
-- elif args and isinstance(args, list):
-- cmd.extend(args)
-+ if command == "upgrade":
-+ cmd.extend(["--update", "world"])
-+ else:
-+ if pkgs is None:
-+ pkgs = []
-+
-+ if args and isinstance(args, str):
-+ cmd.append(args)
-+ elif args and isinstance(args, list):
-+ cmd.extend(args)
-
-- if command:
-- cmd.append(command)
-+ if command:
-+ cmd.append(command)
-
-- pkglist = util.expand_package_list('%s-%s', pkgs)
-- cmd.extend(pkglist)
-+ pkglist = util.expand_package_list('%s-%s', pkgs)
-+ cmd.extend(pkglist)
-
- # Allow the output of this to flow outwards (ie not be captured)
- util.subp(cmd, capture=False)
---
-2.19.1
-
diff --git a/app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch b/app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch
deleted file mode 100644
index a5bbf6034ac5..000000000000
--- a/app-emulation/cloud-init/files/18.4-fix-filename-for-storing-locale.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 3756cdea3e844b9611de321a8075df80e7dbf74d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 14 Nov 2018 15:28:22 +0100
-Subject: [PATCH 3/5] gentoo: fix filename for storing locale
-
-There must have been a misunderstanding as locale.gen is meant to
-contain locales to be generated if no argument is passed to locale-gen.
-
-When using openrc, Gentoo stores system locale in /etc/env.d/02locale
-which is generally manipulated through eselect.
----
- cloudinit/distros/gentoo.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py
-index 98ac41ca..50bb61fb 100644
---- a/cloudinit/distros/gentoo.py
-+++ b/cloudinit/distros/gentoo.py
-@@ -20,7 +20,7 @@ LOG = logging.getLogger(__name__)
-
-
- class Distro(distros.Distro):
-- locale_conf_fn = '/etc/locale.gen'
-+ locale_conf_fn = '/etc/env.d/02locale'
- network_conf_fn = '/etc/conf.d/net'
- resolve_conf_fn = '/etc/resolv.conf'
- hostname_conf_fn = '/etc/conf.d/hostname'
---
-2.19.1
-
diff --git a/app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch b/app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch
deleted file mode 100644
index d90258d1bc48..000000000000
--- a/app-emulation/cloud-init/files/18.4-fix-update_package_sources-function.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b15c4c4b24c894b3c8d444466110c881c35525e2 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 14 Nov 2018 15:35:37 +0100
-Subject: [PATCH 4/5] gentoo: fix update_package_sources function
-
-Method is meant to update packages repository, not to update the system.
----
- cloudinit/distros/gentoo.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py
-index 50bb61fb..7b838e82 100644
---- a/cloudinit/distros/gentoo.py
-+++ b/cloudinit/distros/gentoo.py
-@@ -212,7 +212,7 @@ class Distro(distros.Distro):
-
- def update_package_sources(self):
- self._runner.run("update-sources", self.package_command,
-- ["-u", "world"], freq=PER_INSTANCE)
-+ ["--sync"], freq=PER_INSTANCE)
-
-
- def convert_resolv_conf(settings):
---
-2.19.1
-
diff --git a/app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch b/app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch
deleted file mode 100644
index 4a42cbb7d9e1..000000000000
--- a/app-emulation/cloud-init/files/cloud-init-18.4-fix-packages-module.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e894c6f57b88305cdf6e4e2b1543475b2e02f436 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Tue, 23 Oct 2018 18:59:58 +0200
-Subject: [PATCH 1/2] Fix Gentoo package installation command
-
----
- cloudinit/distros/gentoo.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cloudinit/distros/gentoo.py b/cloudinit/distros/gentoo.py
-index dc57717d..98ac41ca 100644
---- a/cloudinit/distros/gentoo.py
-+++ b/cloudinit/distros/gentoo.py
-@@ -192,7 +192,7 @@ class Distro(distros.Distro):
- if pkgs is None:
- pkgs = []
-
-- cmd = list('emerge')
-+ cmd = ['emerge']
- # Redirect output
- cmd.append("--quiet")
-
---
-2.19.0
-
diff --git a/app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch b/app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch
deleted file mode 100644
index 210c29437361..000000000000
--- a/app-emulation/cloud-init/files/cloud-init-19.4-gentoo-support-upstream-templates.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 823454f1ea140ec47f5f9c5c3c5ad62eb458eb8a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 24 Oct 2018 10:52:46 +0200
-Subject: [PATCH 2/5] Add support for gentoo in cloud.cfg and templates
-
----
- config/cloud.cfg.tmpl | 8 ++++++--
- templates/hosts.gentoo.tmpl | 24 ++++++++++++++++++++++++
- tools/render-cloudcfg | 2 +-
- 3 files changed, 31 insertions(+), 3 deletions(-)
- create mode 100644 templates/hosts.gentoo.tmpl
-
-diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl
-index 1fef133a..3f5a41a2 100644
---- a/config/cloud.cfg.tmpl
-+++ b/config/cloud.cfg.tmpl
-@@ -134,7 +134,7 @@ cloud_final_modules:
- # (not accessible to handlers/transforms)
- system_info:
- # This will affect which distro class gets used
--{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu"] %}
-+{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "gentoo", "rhel", "suse", "ubuntu"] %}
- distro: {{ variant }}
- {% else %}
- # Unknown/fallback distro.
-@@ -172,7 +172,7 @@ system_info:
- primary: http://ports.ubuntu.com/ubuntu-ports
- security: http://ports.ubuntu.com/ubuntu-ports
- ssh_svcname: ssh
--{% elif variant in ["arch", "centos", "fedora", "rhel", "suse"] %}
-+{% elif variant in ["arch", "centos", "fedora", "gentoo", "rhel", "suse"] %}
- # Default user name + that default users groups (if added/used)
- default_user:
- name: {{ variant }}
-@@ -180,6 +180,10 @@ system_info:
- {% endif %}
- {% if variant == "suse" %}
- groups: [cdrom, users]
-+{% elif variant == "gentoo" %}
-+ groups: [users, wheel]
-+ primary_group: users
-+ no_user_group: true
- {% elif variant == "arch" %}
- groups: [wheel, users]
- {% else %}
-diff --git a/templates/hosts.gentoo.tmpl b/templates/hosts.gentoo.tmpl
-new file mode 100644
-index 00000000..cd045fa6
---- /dev/null
-+++ b/templates/hosts.gentoo.tmpl
-@@ -0,0 +1,24 @@
-+## template:jinja
-+{#
-+This file /etc/cloud/templates/hosts.gentoo.tmpl is only utilized
-+if enabled in cloud-config. Specifically, in order to enable it
-+you need to add the following to config:
-+ manage_etc_hosts: True
-+-#}
-+# Your system has configured 'manage_etc_hosts' as True.
-+# As a result, if you wish for changes to this file to persist
-+# then you will need to either
-+# a.) make changes to the master file in /etc/cloud/templates/hosts.gentoo.tmpl
-+# b.) change or remove the value of 'manage_etc_hosts' in
-+# /etc/cloud/cloud.cfg or cloud-config from user-data
-+#
-+# The following lines are desirable for IPv4 capable hosts
-+127.0.0.1 {{fqdn}} {{hostname}}
-+127.0.0.1 localhost.localdomain localhost
-+127.0.0.1 localhost4.localdomain4 localhost4
-+
-+# The following lines are desirable for IPv6 capable hosts
-+::1 {{fqdn}} {{hostname}}
-+::1 localhost.localdomain localhost
-+::1 localhost6.localdomain6 localhost6
-+
-diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg
-index 8b7cb875..d109044e 100755
---- a/tools/render-cloudcfg
-+++ b/tools/render-cloudcfg
-@@ -4,7 +4,7 @@ import argparse
- import os
- import sys
-
--VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse",
-- "ubuntu", "unknown"]
-+VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "gentoo", "rhel",
-+ "suse", "ubuntu", "unknown"]
-
- if "avoid-pep8-E402-import-not-top-of-file":
- _tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
---
-2.19.1
-
diff --git a/app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch b/app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch
deleted file mode 100644
index 625473c68f1d..000000000000
--- a/app-emulation/cloud-init/files/cloud-init-19.4_CVE-2020-8631.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 42788bf24a1a0a5421a2d00a7f59b59e38ba1a14 Mon Sep 17 00:00:00 2001
-From: Ryan Harper <ryan.harper@canonical.com>
-Date: Fri, 24 Jan 2020 21:33:12 +0200
-Subject: [PATCH] cc_set_password: increase random pwlength from 9 to 20 (#189)
-
-Increasing the bits of security from 52 to 115.
-
-LP: #1860795
----
- cloudinit/config/cc_set_passwords.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cloudinit/config/cc_set_passwords.py b/cloudinit/config/cc_set_passwords.py
-index e3b39d8be..4943d5453 100755
---- a/cloudinit/config/cc_set_passwords.py
-+++ b/cloudinit/config/cc_set_passwords.py
-@@ -236,7 +236,7 @@ def handle(_name, cfg, cloud, log, args):
- raise errors[-1]
-
-
--def rand_user_password(pwlen=9):
-+def rand_user_password(pwlen=20):
- return util.rand_str(pwlen, select_from=PW_SET)
-
-
diff --git a/app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch b/app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch
deleted file mode 100644
index c840f4fde3eb..000000000000
--- a/app-emulation/cloud-init/files/cloud-init-20.1-gentoo-support-upstream-templates.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 823454f1ea140ec47f5f9c5c3c5ad62eb458eb8a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Wed, 24 Oct 2018 10:52:46 +0200
-Subject: [PATCH 2/5] Add support for gentoo in cloud.cfg and templates
-
----
- config/cloud.cfg.tmpl | 8 ++++++--
- templates/hosts.gentoo.tmpl | 24 ++++++++++++++++++++++++
- tools/render-cloudcfg | 2 +-
- 3 files changed, 31 insertions(+), 3 deletions(-)
- create mode 100644 templates/hosts.gentoo.tmpl
-
-diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl
-index 1fef133a..3f5a41a2 100644
---- a/config/cloud.cfg.tmpl
-+++ b/config/cloud.cfg.tmpl
-@@ -134,7 +134,7 @@ cloud_final_modules:
- # (not accessible to handlers/transforms)
- system_info:
- # This will affect which distro class gets used
--{% if variant in ["amazon", "arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu"] %}
-+{% if variant in ["amazon", "arch", "centos", "debian", "fedora", "freebsd", "gentoo", "rhel", "suse", "ubuntu"] %}
- distro: {{ variant }}
- {% else %}
- # Unknown/fallback distro.
-@@ -172,7 +172,7 @@ system_info:
- primary: http://ports.ubuntu.com/ubuntu-ports
- security: http://ports.ubuntu.com/ubuntu-ports
- ssh_svcname: ssh
--{% elif variant in ["amazon", "arch", "centos", "fedora", "rhel", "suse"] %}
-+{% elif variant in ["amazon", "arch", "centos", "fedora", "gentoo", "rhel", "suse"] %}
- # Default user name + that default users groups (if added/used)
- default_user:
- name: {{ variant }}
-@@ -180,6 +180,10 @@ system_info:
- {% endif %}
- {% if variant == "suse" %}
- groups: [cdrom, users]
-+{% elif variant == "gentoo" %}
-+ groups: [users, wheel]
-+ primary_group: users
-+ no_user_group: true
- {% elif variant == "arch" %}
- groups: [wheel, users]
- {% else %}
-diff --git a/templates/hosts.gentoo.tmpl b/templates/hosts.gentoo.tmpl
-new file mode 100644
-index 00000000..cd045fa6
---- /dev/null
-+++ b/templates/hosts.gentoo.tmpl
-@@ -0,0 +1,24 @@
-+## template:jinja
-+{#
-+This file /etc/cloud/templates/hosts.gentoo.tmpl is only utilized
-+if enabled in cloud-config. Specifically, in order to enable it
-+you need to add the following to config:
-+ manage_etc_hosts: True
-+-#}
-+# Your system has configured 'manage_etc_hosts' as True.
-+# As a result, if you wish for changes to this file to persist
-+# then you will need to either
-+# a.) make changes to the master file in /etc/cloud/templates/hosts.gentoo.tmpl
-+# b.) change or remove the value of 'manage_etc_hosts' in
-+# /etc/cloud/cloud.cfg or cloud-config from user-data
-+#
-+# The following lines are desirable for IPv4 capable hosts
-+127.0.0.1 {{fqdn}} {{hostname}}
-+127.0.0.1 localhost.localdomain localhost
-+127.0.0.1 localhost4.localdomain4 localhost4
-+
-+# The following lines are desirable for IPv6 capable hosts
-+::1 {{fqdn}} {{hostname}}
-+::1 localhost.localdomain localhost
-+::1 localhost6.localdomain6 localhost6
-+
-diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg
-index 8b7cb875..d109044e 100755
---- a/tools/render-cloudcfg
-+++ b/tools/render-cloudcfg
-@@ -4,7 +4,7 @@ import argparse
- import os
- import sys
-
--VARIANTS = ["amazon", "arch", "centos", "debian", "fedora", "freebsd", "rhel",
-- "suse", "ubuntu", "unknown"]
-+VARIANTS = ["amazon", "arch", "centos", "debian", "fedora", "freebsd",
-+ "gentoo", "rhel", "suse", "ubuntu", "unknown"]
-
- if "avoid-pep8-E402-import-not-top-of-file":
- _tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
---
-2.19.1
-
diff --git a/app-emulation/cloud-init/metadata.xml b/app-emulation/cloud-init/metadata.xml
index 997452569a62..a754b254be6b 100644
--- a/app-emulation/cloud-init/metadata.xml
+++ b/app-emulation/cloud-init/metadata.xml
@@ -1,18 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
- <maintainer type="person">
- <email>eva@gentoo.org</email>
- <name>Gilles Dartiguelongue</name>
- </maintainer>
<longdescription lang="en">
Cloud-init is the industry standard multi-distribution method for cross-platform cloud instance initialization. It is supported across all major public cloud providers, provisioning systems for private cloud infrastructure, and bare-metal installations.
</longdescription>
<upstream>
<remote-id type="launchpad">cloud-init</remote-id>
+ <remote-id type="github">canonical/cloud-init</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/coldfire/coldfire-0.3.1-r1.ebuild b/app-emulation/coldfire/coldfire-0.3.1-r1.ebuild
new file mode 100644
index 000000000000..768ca068bcb2
--- /dev/null
+++ b/app-emulation/coldfire/coldfire-0.3.1-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Motorola Coldfire Emulator"
+HOMEPAGE="http://www.slicer.ca/coldfire/"
+SRC_URI="http://www.slicer.ca/coldfire/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+DEPEND="
+ sys-libs/ncurses:0=
+ sys-libs/readline:0=
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-build.patch
+ "${FILESDIR}"/${P}-headers.patch
+ "${FILESDIR}"/${P}-ld.patch
+ "${FILESDIR}"/${P}-no-common.patch
+ "${FILESDIR}"/${P}-implicit-function-declarations.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+
+ tc-export LD
+}
+
+src_install() {
+ dobin coldfire
+ dodoc CONTRIBUTORS HACKING README
+}
diff --git a/app-emulation/coldfire/coldfire-0.3.1.ebuild b/app-emulation/coldfire/coldfire-0.3.1.ebuild
index 21e971272979..653abff711e4 100644
--- a/app-emulation/coldfire/coldfire-0.3.1.ebuild
+++ b/app-emulation/coldfire/coldfire-0.3.1.ebuild
@@ -1,8 +1,10 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+inherit toolchain-funcs
+
DESCRIPTION="Motorola Coldfire Emulator"
HOMEPAGE="http://www.slicer.ca/coldfire/"
SRC_URI="http://www.slicer.ca/coldfire/files/${P}.tar.gz"
@@ -16,10 +18,18 @@ DEPEND="sys-libs/ncurses:0=
sys-libs/readline:0="
PATCHES=(
- "${FILESDIR}/${P}-build.patch"
- "${FILESDIR}/${P}-headers.patch"
+ "${FILESDIR}"/${P}-build.patch
+ "${FILESDIR}"/${P}-headers.patch
+ "${FILESDIR}"/${P}-ld.patch
+ "${FILESDIR}"/${P}-no-common.patch
)
+src_prepare() {
+ default
+
+ tc-export LD
+}
+
src_install() {
dobin coldfire
dodoc CONTRIBUTORS HACKING README
diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch b/app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch
new file mode 100644
index 000000000000..2a96229e101f
--- /dev/null
+++ b/app-emulation/coldfire/files/coldfire-0.3.1-implicit-function-declarations.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/900326
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -87,6 +87,7 @@ AC_CHECK_FUNCS(_snprintf snprintf)
+
+ AC_MSG_CHECKING(for unaligned long accesses)
+ AC_TRY_RUN([
++ #include <stdlib.h>
+ void main(void)
+ { unsigned char data[sizeof(long)*2];
+ long *ptr;
diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-ld.patch b/app-emulation/coldfire/files/coldfire-0.3.1-ld.patch
new file mode 100644
index 000000000000..b0b16fec8603
--- /dev/null
+++ b/app-emulation/coldfire/files/coldfire-0.3.1-ld.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.rules.in
++++ b/Makefile.rules.in
+@@ -1,7 +1,7 @@
+ CC = @CC@
+ CFLAGS = -Wall @CPPFLAGS@ @CFLAGS@ -I$(TOPSRCDIR)
+ LIBS = @LIBS@
+-LD_R = ld -r
++LD_R = $(LD) -r
+ RM = rm -f
+ LDFLAGS = @LDFLAGS@
+
diff --git a/app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch b/app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch
new file mode 100644
index 000000000000..f4cc61f7bb46
--- /dev/null
+++ b/app-emulation/coldfire/files/coldfire-0.3.1-no-common.patch
@@ -0,0 +1,23 @@
+https://bugs.gentoo.org/706942
+--- a/peripherals/sim_5206.c
++++ b/peripherals/sim_5206.c
+@@ -23,7 +23,7 @@ static struct _sim_register *sim_register_lookup_by_offset(s32 offset);
+ static struct _sim_register *sim_register_lookup_by_name(char *name);
+ static void sim_interrupt_assert(s16 number, s16 vector);
+ static void sim_interrupt_withdraw(s16 number);
+-struct _sim sim_data;
++static struct _sim sim_data;
+
+ /* name, offset, width, read, write, resetvalue, description */
+ static struct _sim_register sim_reg[] = {
+--- a/peripherals/sim_5307.c
++++ b/peripherals/sim_5307.c
+@@ -59,7 +59,7 @@ static struct _sim_register *sim_register_lookup_by_offset(s32 offset);
+ static struct _sim_register *sim_register_lookup_by_name(char *name);
+ static void sim_interrupt_assert(s16 number, s16 vector);
+ static void sim_interrupt_withdraw(s16 number);
+-struct _sim sim_data;
++static struct _sim sim_data;
+
+ /* name, offset, width, read, write, resetvalue, description */
+ static struct _sim_register sim_reg[] = {
diff --git a/app-emulation/coldfire/metadata.xml b/app-emulation/coldfire/metadata.xml
index 71b1461e1146..98ae10b3c34a 100644
--- a/app-emulation/coldfire/metadata.xml
+++ b/app-emulation/coldfire/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>embedded@gentoo.org</email>
diff --git a/app-emulation/conmon/Manifest b/app-emulation/conmon/Manifest
deleted file mode 100644
index 15b98a0d987f..000000000000
--- a/app-emulation/conmon/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST conmon-2.0.20.tar.gz 64716 BLAKE2B d7eb464f5be0b117824571134f08077955f56e1637dd2cbc6b70413dc9a6f109a1b9b207f5523103f205659ac20cc65f5f2340475d771fdf4b852d6895887975 SHA512 b719e41e1ead0d38c0874a30901c5660dc8612dc7aa1c025068480846a1e458a744b55bb8d5d74d2c2ce38fdbbe03505fce216a2f2c0748740983e3272a82f0e
diff --git a/app-emulation/conmon/conmon-2.0.20.ebuild b/app-emulation/conmon/conmon-2.0.20.ebuild
deleted file mode 100644
index 8aa13fbc4d2a..000000000000
--- a/app-emulation/conmon/conmon-2.0.20.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="13244db638cf987c415298a3c23393ae5abeb885"
-DESCRIPTION="An OCI container runtime monitor"
-HOMEPAGE="https://github.com/containers/conmon"
-SRC_URI="https://github.com/containers/conmon/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="systemd"
-RESTRICT="test"
-
-RDEPEND="dev-libs/glib:=
- systemd? ( sys-apps/systemd:= )"
-DEPEND="${RDEPEND}"
-
-S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
-
-src_prepare() {
- default
-
- if ! use systemd; then
- sed -e 's| $(PKG_CONFIG) --exists libsystemd-journal | false |' \
- -e 's| $(PKG_CONFIG) --exists libsystemd | false |' \
- -i Makefile || die
- fi
-}
-
-src_compile() {
- emake GIT_COMMIT="${EGIT_COMMIT}" \
- all
-}
-
-src_install() {
- emake DESTDIR="${D}" \
- PREFIX="/usr" \
- install
- dodir /usr/libexec/podman
- ln "${ED}/usr/"{bin,libexec/podman}/conmon || die
- dodoc README.md
-}
diff --git a/app-emulation/conmon/metadata.xml b/app-emulation/conmon/metadata.xml
deleted file mode 100644
index 15f05bae08e9..000000000000
--- a/app-emulation/conmon/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <upstream>
- <remote-id type="github">containers/conmon</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/containerd/Manifest b/app-emulation/containerd/Manifest
deleted file mode 100644
index c00825bee4e3..000000000000
--- a/app-emulation/containerd/Manifest
+++ /dev/null
@@ -1,10 +0,0 @@
-DIST containerd-1.2.10.tar.gz 4923354 BLAKE2B 6727fde9949ca96f351964df3c0c7481cb5274895aa3b31552258d57cc5958bd2d3006cfe4d87088d24ac53de1c391b6029b3f800363ee743f08e1937f0d0fec SHA512 14d4f1cad1a68414915c1e98b64dfb6f3f29a0e86e18570d6cc138f4db14b56499b978135954198fe9e2a1363383694eed530b301a9dc699d28c305d4dbf3cd8
-DIST containerd-1.2.12.tar.gz 4990623 BLAKE2B 640ff03f74e94dd3f919d3c26015cebae1f316c910442db881cd999c92991b7011131f05501648e9f08b6e34d38e2aa6ee1065ae31550de88ad79d9cafa5687e SHA512 bcb4f94aea984c804e34137cab6aad252c01dc75d5e33ade5d1e533e4266fd0af67d2bf8aa85f0e6eba4e43756e84f884f1dec4c9febd66f8a3e3bc8cd3ac775
-DIST containerd-1.2.13.tar.gz 4993470 BLAKE2B 8a094745358ee60f37eeee826898668bbbad3dc8c02b20d29bc977dd99bcb78ca4cba0cda737caaa66bf827b09f38e5ad1357bc7cbc85c0c3bf21d7ff8d8eff8 SHA512 19504a7419595f75160de2b85c5ea505257dc9b58972545bc3d31c144d59c8255f7a3d326b2a96b4fe1b34fb27525db8f3aa61bad97b40a315591a16c240ca5b
-DIST containerd-1.2.6.tar.gz 4874159 BLAKE2B 202e19cffbe2b5335558dc1db28ea28a05dcc9e9b3aad864e090d86f7590df9e67ae685c9fc6ab2b8abdd1762d001fa9b298b1d311c080449bc86087b6af8c36 SHA512 287b064cb3e57369e34f6debb434526d6bd4857e337e489c56e4ca484c66e161bbda911b4fc29cb49808a756f6ec7af5629e46d693644500e3bf2d9e45e87e73
-DIST containerd-1.2.7.tar.gz 4877757 BLAKE2B 6cf98e370547d3ca5158f546e72e3ff5fdccc08c2e9f390988d080222195f95512dbf6f7dc042b7a966283a040000b7b8777b3fbeb4c5b861caae4f6209c59c5 SHA512 b96ca236d28933c1bf309fc7204af7d2c356e19af394d5c2274a178c8f15298faf6ca9bb8e7d04acb7c3c9c41035446643a8df0103017f7ed0320bfc37cb8ca9
-DIST containerd-1.3.0.tar.gz 5697153 BLAKE2B c334cfd2aa11dd430c74bc9f3fe6f31d83faf752b9794da26021033bb6af492c48ed1665fc76ddfe5b858f04d45e9b77505f331e3c3da556af2d75e3cca3bb12 SHA512 cff9f0189b9fdc2b5492c92129af284aa8cd099e48de94cafd90aed191e2d20060c96008111b05fe081de0d4fc41d35f8cba5a3dc2d8cc0a5c37f695fd3cedc1
-DIST containerd-1.3.1.tar.gz 5703741 BLAKE2B 6eae3fe9714128e7a5378484115378629baf6c4f7ef4b795e625cc1fbc05323a123c2337c5b203a2c3c3b34486c81f7e5b3ad200c000c961931fc99347ef4513 SHA512 4991286d1a8a221dad24121c5e6cd31a00685d91e652546d0d97745624486450bc05ff4f889f2975c178c4c175fedd7b15f89121a7ce4e6687919aabd04501b4
-DIST containerd-1.3.2.tar.gz 5704320 BLAKE2B 32ea22ff445cc66f4c8db8abdbaaa7fa0c8c620b294bda54f2319045af1925398057ba1a5cb5c265cfc73bcff5b49943013b517ecb3bd05f4504920c4a8d6f29 SHA512 768a19eb0829e196a61ddedaa11b0d6691caf8f9cc590a3e47ac77c1acad62e64b7a55017a1a6cccfcb87785a083d5ce131048b0e39e48c65e6cd5922382fc3c
-DIST containerd-1.3.4.tar.gz 5700890 BLAKE2B 9d5642399eafbf3df25d2bdb6ffeb8e98362e9f2c6cdcd7a64fff12bad40f58fa97451228a607def408cc8a8cfbfce67c47fcfdf86865d8086d0b7aad7595d5a SHA512 b186d5aef3e5a0d35c12dcc3cfa5d48a9602f6278c4650942859a1ab6abd1299d33a1bc623376955a834a2626491196b604591d92a05d39745dfc33ff51ad5aa
-DIST containerd-1.3.7.tar.gz 5709989 BLAKE2B 0cfa6f5bcd41c1591e64f41dbba2720bed5f25d61625b6d09be19df56fe74b61532b627c35a830e1e4937333f790f7ff8a5fad18b8869a679a6fec18daf238d3 SHA512 7c6de27b6529e3fb3f924ec67a260a51bc45186d69baa4cae6720a08e5c3b74aeb43d236c0a4739f297b2863233bde7d2246a597c9e17713c48bec767c6bbfee
diff --git a/app-emulation/containerd/containerd-1.2.10.ebuild b/app-emulation/containerd/containerd-1.2.10.ebuild
deleted file mode 100644
index 5a1d397114b4..000000000000
--- a/app-emulation/containerd/containerd-1.2.10.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT="b34a5c8af56e510852c35414db4c1f4fa6172339"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc8
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.2.12.ebuild b/app-emulation/containerd/containerd-1.2.12.ebuild
deleted file mode 100644
index 5e5bc5aef5e8..000000000000
--- a/app-emulation/containerd/containerd-1.2.12.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT=35bd7a5f69c13e1563af8a93431411cd9ecf5021
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc8
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.2.13.ebuild b/app-emulation/containerd/containerd-1.2.13.ebuild
deleted file mode 100644
index e9635351fbd7..000000000000
--- a/app-emulation/containerd/containerd-1.2.13.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT=35bd7a5f69c13e1563af8a93431411cd9ecf5021
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc8
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.2.6.ebuild b/app-emulation/containerd/containerd-1.2.6.ebuild
deleted file mode 100644
index 48bf1f799cf1..000000000000
--- a/app-emulation/containerd/containerd-1.2.6.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT="894b81a4b802e4eb2a91d1ce216b8817763c29fb"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc6
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.2.7.ebuild b/app-emulation/containerd/containerd-1.2.7.ebuild
deleted file mode 100644
index 1cba833a7419..000000000000
--- a/app-emulation/containerd/containerd-1.2.7.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT="85f6aa58b8a3170aec9824568f7a31832878b603"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc8
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.3.0.ebuild b/app-emulation/containerd/containerd-1.3.0.ebuild
deleted file mode 100644
index 0c41a6c57dd0..000000000000
--- a/app-emulation/containerd/containerd-1.3.0.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT="36cf5b690dcc00ff0f34ff7799209050c3d0c59a"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc8
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.3.1.ebuild b/app-emulation/containerd/containerd-1.3.1.ebuild
deleted file mode 100644
index 97f5996a48aa..000000000000
--- a/app-emulation/containerd/containerd-1.3.1.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/containerd/${PN}"
-
-inherit toolchain-funcs
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT="c7a4f87"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc9
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.3.2.ebuild b/app-emulation/containerd/containerd-1.3.2.ebuild
deleted file mode 100644
index b280fe999e58..000000000000
--- a/app-emulation/containerd/containerd-1.3.2.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-EGO_PN="github.com/containerd/${PN}"
-inherit toolchain-funcs
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT=ff48f57f
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc9
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="strip test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.3.4.ebuild b/app-emulation/containerd/containerd-1.3.4.ebuild
deleted file mode 100644
index 4733a84998c6..000000000000
--- a/app-emulation/containerd/containerd-1.3.4.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-EGO_PN="github.com/containerd/${PN}"
-inherit toolchain-funcs
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- MY_PV="${PV/_rc/-rc.}"
- EGIT_COMMIT="v${MY_PV}"
- CONTAINERD_COMMIT=814b7956
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor btrfs +cri hardened +seccomp"
-
-DEPEND="btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )"
-RDEPEND=">=app-emulation/runc-1.0.0_rc9
- seccomp? ( sys-libs/libseccomp )"
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="strip test"
-
-src_prepare() {
- default
- if [[ ${PV} != *9999* ]]; then
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo $CONTAINERD_COMMIT)/"\
- -e "s/-s -w//" \
- Makefile || die
- fi
-}
-
-src_compile() {
- local options=( $(usex btrfs "" "no_btrfs") $(usex cri "" "no_cri") $(usex seccomp "seccomp" "") $(usex apparmor "apparmor" "") )
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '') BUILDTAGS="${options[@]}" emake
-}
-
-src_install() {
- newinitd "${FILESDIR}"/${PN}.initd ${PN}
- keepdir /var/lib/containerd
- dobin bin/*
-}
diff --git a/app-emulation/containerd/containerd-1.3.7.ebuild b/app-emulation/containerd/containerd-1.3.7.ebuild
deleted file mode 100644
index 583c12cb94ad..000000000000
--- a/app-emulation/containerd/containerd-1.3.7.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-# update on bump, look for https://github.com/docker\
-# docker-ce/blob/<docker ver OR branch>/components/engine/hack/dockerfile/install/containerd.installer
-CONTAINERD_COMMIT="8fba4e9a7d01810a393d5d25a3621dc101981175"
-EGO_PN="github.com/containerd/${PN}"
-
-inherit golang-vcs-snapshot toolchain-funcs
-
-DESCRIPTION="A daemon to control runC"
-HOMEPAGE="https://containerd.io/"
-SRC_URI="https://github.com/containerd/${PN}/archive/${CONTAINERD_COMMIT}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~x86"
-IUSE="apparmor btrfs device-mapper +cri hardened +seccomp selinux test"
-
-DEPEND="
- btrfs? ( sys-fs/btrfs-progs )
- seccomp? ( sys-libs/libseccomp )
-"
-
-RDEPEND="
- ${DEPEND}
- ~app-emulation/runc-1.0.0_rc10
-"
-
-BDEPEND="
- dev-go/go-md2man
- virtual/pkgconfig
- test? ( "${RDEPEND}" )
-"
-
-# tests require root or docker
-# upstream does not recommend stripping binary
-RESTRICT+=" strip test"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_prepare() {
- default
- sed -i -e "s/git describe --match.*$/echo ${PV})/"\
- -e "s/git rev-parse HEAD.*$/echo ${CONTAINERD_COMMIT})/"\
- -e "s/-s -w//" \
- Makefile || die
-}
-
-src_compile() {
- local options=(
- $(usev apparmor)
- $(usex btrfs "" "no_btrfs")
- $(usex cri "" "no_cri")
- $(usex device-mapper "" "no_devmapper")
- $(usev seccomp)
- $(usev selinux)
- )
-
- myemakeargs=(
- BUILDTAGS="${options[*]}"
- DESTDIR="${ED}"
- LDFLAGS=$(usex hardened '-extldflags -fno-PIC' '')
- )
-
- export GOPATH="${WORKDIR}/${P}" # ${PWD}/vendor
- export GOFLAGS="-v -x -mod=vendor"
- emake "${myemakeargs[@]}" all man
-}
-
-src_install() {
- dobin bin/*
- doman man/*
- newinitd "${FILESDIR}"/${PN}.initd-r1 "${PN}"
- keepdir /var/lib/containerd
-
- # we already installed manpages, remove markdown source
- # before installing docs directory
- rm -rf docs/man || die
- local DOCS=( README.md PLUGINS.md docs/. )
- einstalldocs
-}
diff --git a/app-emulation/containerd/files/containerd.initd b/app-emulation/containerd/files/containerd.initd
deleted file mode 100644
index bedf000cad5b..000000000000
--- a/app-emulation/containerd/files/containerd.initd
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-description="Containerd container runtime"
-command="/usr/bin/containerd"
-pidfile="${pidfile:-/run/${RC_SVCNAME}.pid}"
-start_stop_daemon_args="--background --make-pidfile --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-start_pre() {
- checkpath -m 0750 -d /var/log/${RC_SVCNAME}
-
- ulimit -n 1048576
-
- # Having non-zero limits causes performance problems due to accounting overhead
- # in the kernel. We recommend using cgroups to do container-local accounting.
- ulimit -u unlimited
-
- return 0
-}
-
-start_post() {
- ewaitfile 5 /run/containerd/containerd.sock
-}
diff --git a/app-emulation/containerd/files/containerd.initd-r1 b/app-emulation/containerd/files/containerd.initd-r1
deleted file mode 100644
index 6536fc9ef209..000000000000
--- a/app-emulation/containerd/files/containerd.initd-r1
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-description="Containerd container runtime"
-command="/usr/bin/containerd"
-command_args="${command_args:-}"
-command_background="true"
-pidfile="${pidfile:-/run/${RC_SVCNAME}.pid}"
-start_stop_daemon_args="--stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-start_pre() {
- checkpath -m 0750 -d "/var/log/${RC_SVCNAME}"
-
- ulimit -n 1048576
-
- # Having non-zero limits causes performance problems due to accounting overhead
- # in the kernel. We recommend using cgroups to do container-local accounting.
- ulimit -u unlimited
-
- return 0
-}
-
-start_post() {
- ewaitfile 5 /run/containerd/containerd.sock
-}
diff --git a/app-emulation/containerd/metadata.xml b/app-emulation/containerd/metadata.xml
deleted file mode 100644
index 534d7d6a1880..000000000000
--- a/app-emulation/containerd/metadata.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <longdescription>
- Containerd is a daemon with an API and a command line client, to manage
- containers on one machine. It uses runC to run containers according to
- the OCI specification. Containerd has advanced features such as seccomp
- and user namespace support as well as checkpoint and restore for cloning
- and live migration of containers.
- </longdescription>
- <maintainer type="person">
- <email>admwiggin@gmail.com</email>
- <name>Tianon</name>
- </maintainer>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <use>
- <flag name="apparmor">Support for AppArmor</flag>
- <flag name="btrfs">Support for BTRFS snapshot driver</flag>
- <flag name="cri">Support for Kubernetes CRI</flag>
- <flag name="device-mapper">Support for device mapper snapshot driver</flag>
- </use>
- <upstream>
- <remote-id type="github">containerd/containerd</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/containers-storage/Manifest b/app-emulation/containers-storage/Manifest
deleted file mode 100644
index 68e76893028e..000000000000
--- a/app-emulation/containers-storage/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST containers-storage-1.18.1.tar.gz 3803605 BLAKE2B 6ecf7a2ac395f0973f2d071d6736ccd6dfe8917168b50daeb26b141457d9fc53d9f4471577c659dcf77f2d4058d0a5cecbe1599a365d7ae102916188dc44aa5d SHA512 1b2d16ae5703af232c58eb4ecc65b98a7f754cd9784b563e5323ef3303dc8f72896453f2fd84fee20490b72f9c2455437d5879f6c5c23aaa188316cb1b272211
-DIST containers-storage-1.20.2.tar.gz 3827404 BLAKE2B 7284a86c34c91c21e49d7c9f89bfe8cc65d3a6673d37ea2e6e769c8abda581189b62119480bfcb0757cc3b4b47e29c7e0c65d245ec9bac082674f4b29f0899e1 SHA512 6ed73080da5c284eb421dd3c192662b16b2c72801bd0043f676c1e3bf44ee9899b10dea7fe5e2e52f95ecc511606aa2d971fd064b4cc7c993459ea75bf14536f
-DIST containers-storage-1.23.3.tar.gz 3345068 BLAKE2B 2eb62b851e23055409a3ba41beb08add1faa0ed508572ce125359d35dd9163e85547bbec1b71903a67580f9f9f7f056107adce549b680a84cb356cba3954cde4 SHA512 0aaf2ba71f6e4ee26e9798f42c4ad4f5b5b9c625891177757bdbdcf760c2e55526167f4775cd3ddab83a0b0b61f1aebc75be4abc6565846cb442cdc26afbe17e
diff --git a/app-emulation/containers-storage/containers-storage-1.18.1.ebuild b/app-emulation/containers-storage/containers-storage-1.18.1.ebuild
deleted file mode 100644
index 868c589909c5..000000000000
--- a/app-emulation/containers-storage/containers-storage-1.18.1.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit go-module
-
-KEYWORDS="~amd64"
-DESCRIPTION="containers/storage library"
-HOMEPAGE="https://github.com/containers/storage"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-IUSE="btrfs +device-mapper test"
-SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-RDEPEND="
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )"
-DEPEND="${RDEPEND}
- dev-go/go-md2man
- test? (
- sys-fs/btrfs-progs
- sys-fs/lvm2
- sys-apps/util-linux
- )"
-RESTRICT="test"
-
-S=${WORKDIR}/${P#containers-}
-
-src_prepare() {
- default
-
- sed -e 's|: install\.tools|:|' -i Makefile || die
-
- [[ -f hack/btrfs_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- "hack/btrfs_tag.sh" || die; }
-
- [[ -f hack/libdm_tag.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
- "hack/libdm_tag.sh" || die; }
-}
-
-src_compile() {
- export -n GOCACHE GOPATH XDG_CACHE_HOME #678856
- emake GOMD2MAN=go-md2man FFJSON= containers-storage docs
-}
-
-src_install() {
- dobin "${PN}"
- while read -r -d ''; do
- mv "${REPLY}" "${REPLY%.1}" || die
- done < <(find "${S}/docs" -name '*.[[:digit:]].1' -print0)
- find "${S}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
-}
-
-src_test() {
- env -u GOFLAGS unshare -m emake local-test-unit || die
-}
diff --git a/app-emulation/containers-storage/containers-storage-1.20.2.ebuild b/app-emulation/containers-storage/containers-storage-1.20.2.ebuild
deleted file mode 100644
index 868c589909c5..000000000000
--- a/app-emulation/containers-storage/containers-storage-1.20.2.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit go-module
-
-KEYWORDS="~amd64"
-DESCRIPTION="containers/storage library"
-HOMEPAGE="https://github.com/containers/storage"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-IUSE="btrfs +device-mapper test"
-SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-RDEPEND="
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )"
-DEPEND="${RDEPEND}
- dev-go/go-md2man
- test? (
- sys-fs/btrfs-progs
- sys-fs/lvm2
- sys-apps/util-linux
- )"
-RESTRICT="test"
-
-S=${WORKDIR}/${P#containers-}
-
-src_prepare() {
- default
-
- sed -e 's|: install\.tools|:|' -i Makefile || die
-
- [[ -f hack/btrfs_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- "hack/btrfs_tag.sh" || die; }
-
- [[ -f hack/libdm_tag.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
- "hack/libdm_tag.sh" || die; }
-}
-
-src_compile() {
- export -n GOCACHE GOPATH XDG_CACHE_HOME #678856
- emake GOMD2MAN=go-md2man FFJSON= containers-storage docs
-}
-
-src_install() {
- dobin "${PN}"
- while read -r -d ''; do
- mv "${REPLY}" "${REPLY%.1}" || die
- done < <(find "${S}/docs" -name '*.[[:digit:]].1' -print0)
- find "${S}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
-}
-
-src_test() {
- env -u GOFLAGS unshare -m emake local-test-unit || die
-}
diff --git a/app-emulation/containers-storage/containers-storage-1.23.3.ebuild b/app-emulation/containers-storage/containers-storage-1.23.3.ebuild
deleted file mode 100644
index 868c589909c5..000000000000
--- a/app-emulation/containers-storage/containers-storage-1.23.3.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit go-module
-
-KEYWORDS="~amd64"
-DESCRIPTION="containers/storage library"
-HOMEPAGE="https://github.com/containers/storage"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-IUSE="btrfs +device-mapper test"
-SRC_URI="https://github.com/containers/storage/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-RDEPEND="
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )"
-DEPEND="${RDEPEND}
- dev-go/go-md2man
- test? (
- sys-fs/btrfs-progs
- sys-fs/lvm2
- sys-apps/util-linux
- )"
-RESTRICT="test"
-
-S=${WORKDIR}/${P#containers-}
-
-src_prepare() {
- default
-
- sed -e 's|: install\.tools|:|' -i Makefile || die
-
- [[ -f hack/btrfs_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- "hack/btrfs_tag.sh" || die; }
-
- [[ -f hack/libdm_tag.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho btrfs_noversion exclude_graphdriver_devicemapper" > \
- "hack/libdm_tag.sh" || die; }
-}
-
-src_compile() {
- export -n GOCACHE GOPATH XDG_CACHE_HOME #678856
- emake GOMD2MAN=go-md2man FFJSON= containers-storage docs
-}
-
-src_install() {
- dobin "${PN}"
- while read -r -d ''; do
- mv "${REPLY}" "${REPLY%.1}" || die
- done < <(find "${S}/docs" -name '*.[[:digit:]].1' -print0)
- find "${S}/docs" -name '*.[[:digit:]]' -exec doman '{}' + || die
-}
-
-src_test() {
- env -u GOFLAGS unshare -m emake local-test-unit || die
-}
diff --git a/app-emulation/containers-storage/metadata.xml b/app-emulation/containers-storage/metadata.xml
deleted file mode 100644
index ea691c789838..000000000000
--- a/app-emulation/containers-storage/metadata.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <use>
- <flag name="btrfs">
- Enables dependencies for the "btrfs" graph driver, including
- necessary kernel flags.
- </flag>
- <flag name="device-mapper">
- Enables dependencies for the "devicemapper" graph driver, including
- necessary kernel flags.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">containers/storage</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/cri-o/Manifest b/app-emulation/cri-o/Manifest
deleted file mode 100644
index 10b6399bd014..000000000000
--- a/app-emulation/cri-o/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST cri-o-1.17.1.tar.gz 10532728 BLAKE2B 12747b0161ca2fa7dc7e95fd4c000b9011402e65dac0885ed59a37a87b53907044d3b3c873d6fe82186313af6745e463ce84be259dae99793c6363794c76e16f SHA512 1548c4b20081e8f1af772b0b0fadd0f1b63af641283bef8b8cd8478bd626699c23b30b39fe460660776bc7e6509e85db73d1d7e0d030dd7bd3dbfe319c82e332
-DIST cri-o-1.18.3.tar.gz 11210469 BLAKE2B 16a9ed89c594c082e18d5a08ba1f87eaed600b95baed1e36c5b718e9dbaf52c7b482dbf6dba94a1cbc5e02f3dc58f0f21236b6b11c65fa60666d654e28c793fd SHA512 28798d0a46a9fe361fa2e57f350375abe2a66b955447d667a0a51b39034d73f98abf06371ccf5ea27dfcad38dc46907a2fe9583b94c9a0092ad18b2485b12640
-DIST cri-o-1.19.0.tar.gz 13383665 BLAKE2B 8288985392a08fb7fdc58f509d34f8814bf9670386b7aae42be349765cb1f3bd3f4b77077e9c282a4a25b0f99b8a8fc335c6a53053bd2575b3e23c225483a1d3 SHA512 15b506d755be735d7b71e503b02b309693e3090be41f5790bd34cec460238eab56829239caf18849f3656cf8c12f77a10bbb3ae4ad81eb4e18858946e454583d
diff --git a/app-emulation/cri-o/cri-o-1.17.1.ebuild b/app-emulation/cri-o/cri-o-1.17.1.ebuild
deleted file mode 100644
index f8d6d2c59f40..000000000000
--- a/app-emulation/cri-o/cri-o-1.17.1.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT=ee2de87bd8e2a7a84799476cb4fc4ce8a78fdf6d
-
-inherit go-module
-
-DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface"
-HOMEPAGE="https://cri-o.io/"
-SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="btrfs +device-mapper selinux systemd"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- app-emulation/conmon
- app-emulation/runc
- dev-libs/glib:=
- dev-libs/libassuan:=
- dev-libs/libgpg-error:=
- net-firewall/conntrack-tools
- net-firewall/iptables
- net-misc/cni-plugins
- net-misc/socat
- sys-apps/iproute2
- sys-libs/libseccomp:=
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- selinux? ( sys-libs/libselinux:= )
- systemd? ( sys-apps/systemd:= )"
-DEPEND="
- ${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}
- !<app-emulation/libpod-1.3.2-r1"
-
-src_prepare() {
- default
-
- sed -e '/^GIT_.*/d' \
- -e '/ git diff --exit-code/d' \
- -e 's/$(GO) build -i/$(GO) build -v -work -x/' \
- -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \
- -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \
- -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \
- -i Makefile || die
-
- echo ".NOTPARALLEL: binaries docs" >> Makefile || die
-
- sed -e 's:/usr/local/bin:/usr/bin:' \
- -i contrib/systemd/* || die
-}
-
-src_compile() {
- [[ -f hack/btrfs_installed_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- hack/btrfs_installed_tag.sh || die; }
-
- [[ -f hack/libdm_installed.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \
- hack/libdm_installed.sh || die; }
-
- [[ -f hack/selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- hack/selinux_tag.sh || die; }
-
- mkdir -p bin || die
- GOBIN="${S}/bin" \
- emake all
-}
-
-src_install() {
- emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install install.config install.systemd
-
- keepdir /etc/crio
- mv "${ED}/etc/crio/crio.conf"{,.example} || die
-
- newinitd "${FILESDIR}/crio.initd" crio
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${PN}.logrotated" "${PN}"
-
- # Suppress crio log error messages triggered if these don't exist.
- keepdir /etc/containers/oci/hooks.d
- keepdir /usr/share/containers/oci/hooks.d
-
- # Suppress crio "Missing CNI default network" log message.
- keepdir /etc/cni/net.d
- insinto /etc/cni/net.d
- doins contrib/cni/99-loopback.conf
-}
diff --git a/app-emulation/cri-o/cri-o-1.18.3.ebuild b/app-emulation/cri-o/cri-o-1.18.3.ebuild
deleted file mode 100644
index 96ab6f0d2857..000000000000
--- a/app-emulation/cri-o/cri-o-1.18.3.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT=61de18161fb4ccda720768c001713592b5a04e46
-
-inherit go-module
-
-DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface"
-HOMEPAGE="https://cri-o.io/"
-SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="btrfs +device-mapper selinux systemd"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- app-emulation/conmon
- app-emulation/runc
- dev-libs/glib:=
- dev-libs/libassuan:=
- dev-libs/libgpg-error:=
- net-firewall/conntrack-tools
- net-firewall/iptables
- net-misc/cni-plugins
- net-misc/socat
- sys-apps/iproute2
- sys-libs/libseccomp:=
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- selinux? ( sys-libs/libselinux:= )
- systemd? ( sys-apps/systemd:= )"
-DEPEND="
- ${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}
- !<app-emulation/libpod-1.3.2-r1"
-
-src_prepare() {
- default
-
- sed -e '/^GIT_.*/d' \
- -e '/ git diff --exit-code/d' \
- -e 's/$(GO) build -i/$(GO) build -v -work -x/' \
- -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \
- -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \
- -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \
- -i Makefile || die
-
- echo ".NOTPARALLEL: binaries docs" >> Makefile || die
-
- sed -e 's:/usr/local/bin:/usr/bin:' \
- -i contrib/systemd/* || die
-}
-
-src_compile() {
- [[ -f hack/btrfs_installed_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- hack/btrfs_installed_tag.sh || die; }
-
- [[ -f hack/libdm_installed.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \
- hack/libdm_installed.sh || die; }
-
- [[ -f hack/selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- hack/selinux_tag.sh || die; }
-
- mkdir -p bin || die
- GOBIN="${S}/bin" \
- emake all
-}
-
-src_install() {
- emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install install.config install.systemd
-
- keepdir /etc/crio
- mv "${ED}/etc/crio/crio.conf"{,.example} || die
-
- newinitd "${FILESDIR}/crio.initd" crio
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${PN}.logrotated" "${PN}"
-
- # Suppress crio log error messages triggered if these don't exist.
- keepdir /etc/containers/oci/hooks.d
- keepdir /usr/share/containers/oci/hooks.d
-
- # Suppress crio "Missing CNI default network" log message.
- keepdir /etc/cni/net.d
- insinto /etc/cni/net.d
- doins contrib/cni/99-loopback.conf
-}
diff --git a/app-emulation/cri-o/cri-o-1.19.0.ebuild b/app-emulation/cri-o/cri-o-1.19.0.ebuild
deleted file mode 100644
index 35566324ab43..000000000000
--- a/app-emulation/cri-o/cri-o-1.19.0.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT=99c925bebdd9e392f2d575e25f2e6a1082e6c232
-
-inherit go-module
-
-DESCRIPTION="OCI-based implementation of Kubernetes Container Runtime Interface"
-HOMEPAGE="https://cri-o.io/"
-SRC_URI="https://github.com/cri-o/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="btrfs +device-mapper selinux systemd"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- app-emulation/conmon
- app-emulation/runc
- dev-libs/glib:=
- dev-libs/libassuan:=
- dev-libs/libgpg-error:=
- net-firewall/conntrack-tools
- net-firewall/iptables
- net-misc/cni-plugins
- net-misc/socat
- sys-apps/iproute2
- sys-libs/libseccomp:=
- btrfs? ( sys-fs/btrfs-progs )
- device-mapper? ( sys-fs/lvm2:= )
- selinux? ( sys-libs/libselinux:= )
- systemd? ( sys-apps/systemd:= )"
-DEPEND="
- ${COMMON_DEPEND}"
-RDEPEND="${COMMON_DEPEND}
- !<app-emulation/libpod-1.3.2-r1"
-
-src_prepare() {
- default
-
- sed -e '/^GIT_.*/d' \
- -e '/ git diff --exit-code/d' \
- -e 's/$(GO) build -i/$(GO) build -v -work -x/' \
- -e 's/\${GIT_COMMIT}/'${EGIT_COMMIT}'/' \
- -e "s|^GIT_COMMIT := .*|GIT_COMMIT := ${EGIT_COMMIT}|" \
- -e "s|^COMMIT_NO := .*|COMMIT_NO := ${EGIT_COMMIT}|" \
- -i Makefile || die
-
- echo ".NOTPARALLEL: binaries docs" >> Makefile || die
-
- sed -e 's:/usr/local/bin:/usr/bin:' \
- -i contrib/systemd/* || die
-}
-
-src_compile() {
- [[ -f hack/btrfs_installed_tag.sh ]] || die
- use btrfs || { echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- hack/btrfs_installed_tag.sh || die; }
-
- [[ -f hack/libdm_installed.sh ]] || die
- use device-mapper || { echo -e "#!/bin/sh\necho exclude_graphdriver_devicemapper" > \
- hack/libdm_installed.sh || die; }
-
- [[ -f hack/selinux_tag.sh ]] || die
- use selinux || { echo -e "#!/bin/sh\ntrue" > \
- hack/selinux_tag.sh || die; }
-
- mkdir -p bin || die
- GOBIN="${S}/bin" \
- emake all
-}
-
-src_install() {
- emake DESTDIR="${D}" PREFIX="${D}${EPREFIX}/usr" install install.config install.systemd
-
- keepdir /etc/crio
- mv "${ED}/etc/crio/crio.conf"{,.example} || die
-
- newinitd "${FILESDIR}/crio.initd" crio
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${PN}.logrotated" "${PN}"
-
- # Suppress crio log error messages triggered if these don't exist.
- keepdir /etc/containers/oci/hooks.d
- keepdir /usr/share/containers/oci/hooks.d
-
- # Suppress crio "Missing CNI default network" log message.
- keepdir /etc/cni/net.d
- insinto /etc/cni/net.d
- doins contrib/cni/99-loopback.conf
-}
diff --git a/app-emulation/cri-o/files/cri-o.logrotated b/app-emulation/cri-o/files/cri-o.logrotated
deleted file mode 100644
index fb0b8b14a8a1..000000000000
--- a/app-emulation/cri-o/files/cri-o.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/crio/crio.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/app-emulation/cri-o/files/crio.initd b/app-emulation/cri-o/files/crio.initd
deleted file mode 100644
index 9e6383ac976b..000000000000
--- a/app-emulation/cri-o/files/crio.initd
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2015-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-description="OCI Kubernetes Container Runtime daemon"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-extra_started_commands="reload"
-command="/usr/bin/${RC_SVCNAME}"
-command_args="${command_args}"
-command_background="true"
-start_stop_daemon_args=" \
- --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
- --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-depend() {
- need net
-}
-
-checkconfig() {
- checkpath --directory --owner root:root --mode 0775 \
- /var/log/${RC_SVCNAME}
- checkpath --file --owner root:root --mode 0644 \
- /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log
-}
-
-start() {
- checkconfig
- default_start
-}
-
-reload() {
- ebegin "Reloading ${RC_SVCNAME}"
- start-stop-daemon --signal HUP --pidfile "${pidfile}"
- eend $?
-}
diff --git a/app-emulation/cri-o/metadata.xml b/app-emulation/cri-o/metadata.xml
deleted file mode 100644
index ec23ec09fcc9..000000000000
--- a/app-emulation/cri-o/metadata.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <longdescription lang="en">
- CRI-O is meant to provide an integration path between
- OCI conformant runtimes and the kubelet. Specifically, it
- implements the Kubelet Container Runtime Interface (CRI)
- using OCI conformant runtimes. The scope of CRI-O is tied to
- the scope of the CRI.
- </longdescription>
- <use>
- <flag name="btrfs">
- Enables dependencies for the "btrfs" graph driver, including
- necessary kernel flags.
- </flag>
- <flag name="device-mapper">
- Enables dependencies for the "devicemapper" graph driver, including
- necessary kernel flags.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">cri-o/cri-o</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/cri-tools/Manifest b/app-emulation/cri-tools/Manifest
deleted file mode 100644
index 7e57aa95daf2..000000000000
--- a/app-emulation/cri-tools/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST cri-tools-1.18.0.tar.gz 5295512 BLAKE2B 9dda4a401b858e98aa60521d3268d8f6ff6a2c1bd2c219a0e5e9e5360fba58d41e97258c636da26ee57bbfc3286798c74107c7de92d3e3398bdf53b7d9078e94 SHA512 849b496e6d19eec29e0e56f0b37c094649311b80514f319b0c68c6519e3ddd48e1973c3d288144db998826676416644ec705b7ea0916c21898b40928ea800af1
diff --git a/app-emulation/cri-tools/cri-tools-1.18.0.ebuild b/app-emulation/cri-tools/cri-tools-1.18.0.ebuild
deleted file mode 100644
index 32412429f575..000000000000
--- a/app-emulation/cri-tools/cri-tools-1.18.0.ebuild
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-inherit bash-completion-r1 go-module
-MY_PV="v${PV/_beta/-beta.}"
-
-DESCRIPTION="CLI and validation tools for Kubelet Container Runtime (CRI)"
-HOMEPAGE="https://github.com/kubernetes-sigs/cri-tools"
-SRC_URI="https://github.com/kubernetes-sigs/cri-tools/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="amd64"
-
-RESTRICT+=" test"
-
-src_compile() {
- emake VERSION="${MY_PV}"
- _output/crictl completion bash > ${PN}.bash || die
- _output/crictl completion zsh > ${PN}.zsh || die
-}
-
-src_install() {
- dobin _output/crictl
-
- newbashcomp ${PN}.bash ${PN}
- insinto /usr/share/zsh/site-functions
- newins ${PN}.zsh _${PN}
-
- dodoc -r docs {README,RELEASE,CHANGELOG,CONTRIBUTING}.md
-}
diff --git a/app-emulation/cri-tools/metadata.xml b/app-emulation/cri-tools/metadata.xml
deleted file mode 100644
index ded6fbaced72..000000000000
--- a/app-emulation/cri-tools/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <!-- maintainer-needed -->
- <upstream>
- <remote-id type="github">kubernetes-sigs/cri-tools</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/crossover-bin/Manifest b/app-emulation/crossover-bin/Manifest
index c2c94cd1ea00..cdf8db6e0822 100644
--- a/app-emulation/crossover-bin/Manifest
+++ b/app-emulation/crossover-bin/Manifest
@@ -1 +1,4 @@
-DIST install-crossover-19.0.1.bin 227349999 BLAKE2B 3f43c9ad1bc6e2ca77404eb69894b34fab04002c41b33551a01272201e15b5523049d7e7abe87c741f5913f18a45714ff2b83fda6c375dff68c7648d5e7c26bb SHA512 aedf2d3a071facf15a4aec9280a10c99229825fd3e5412e3949a0e1d85c235625a04d4453e7b8e182659f7500c864bab168c225f51cb0a839b08a96ef36596dd
+DIST install-crossover-22.1.1.bin 335606941 BLAKE2B 3c5eada7190283f348348ef4d3b044db8e24e0dc3588d847854feb712d39bc9013e4f958a80c3f46e84b32f6b5c7d419ef6ab4fa1e946d308ba546140fb95504 SHA512 54bb40941baea184aa824c371a2eb73cdda26fa7c0765e242384e2c29a78f6b600c7455640b9888fd28ad482bf14f53a0308cbd55d9453f76d6eeb75cf0abfc7
+DIST install-crossover-23.0.0.bin 340426479 BLAKE2B eb78fd03475e88a021d8ca3c46358e0092863a8d123fa00ebebef30774c16a5350d489b8b0fe158fbdeb2daf60c2dd5b9ca1b3db855d94901561cfcad09a1ac5 SHA512 29c4303e43a857451d7954fc86337cf007e5d32fbcbed4a65066b464e1caf5aad4dd58bc4e65b1c77bb70903f7b7e541b5c1b7df2b44f60d1235aeb558deda1e
+DIST install-crossover-23.6.0.bin 333783609 BLAKE2B d24ef036530d2b8ce916ecb6adb6f5599d9beedb374a27a0009d14ff601685e8a4b23424a3a08e2ce613b3e77ea9893ce1b6caa07448aca365feea86f23fe320 SHA512 203c8966e71b91d98676b5e15646f790c2b4db3db3dbb8539a8ffe29b335f301535f5d7c80bf954c5e79b56668707ae960c396204f59e4079c455f12e663a445
+DIST install-crossover-24.0.0.bin 320724952 BLAKE2B a95028fda5c53889f09e567742fc881aaefc8c3c618b4de0f30cb53604bfa1a25097d56d8e025a509a9cce7aecde48b35ab7c8d87ba04761a8b42b717d1cf3b4 SHA512 93f3a4415ff29de98b38a488213d7f00b64f6fe70ae3a7555b911d5423163a678941ab859117172bf716b658eb8aecb1b6b430aed3233c1c55fd51893e8de046
diff --git a/app-emulation/crossover-bin/crossover-bin-19.0.1-r1.ebuild b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild
index e3e7f205d8a6..8f1820b96a94 100644
--- a/app-emulation/crossover-bin/crossover-bin-19.0.1-r1.ebuild
+++ b/app-emulation/crossover-bin/crossover-bin-22.1.1.ebuild
@@ -1,8 +1,8 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8} )
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
inherit python-single-r1 unpacker
@@ -14,37 +14,15 @@ LICENSE="CROSSOVER-3"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="+capi +cups doc +gphoto2 +gsm +gstreamer +jpeg +lcms ldap +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan"
-REQUIRED_USE=${PYTHON_REQUIRED_USE}
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="bindist test"
-
-QA_FLAGS_IGNORED="opt/cxoffice/.*"
-QA_PRESTRIPPED="
- opt/cxoffice/lib/.*
- opt/cxoffice/lib64/.*
- opt/cxoffice/bin/cxburner
- opt/cxoffice/bin/cxntlm_auth
- opt/cxoffice/bin/wineserver
- opt/cxoffice/bin/wineserver32
- opt/cxoffice/bin/wineserver64
- opt/cxoffice/bin/wine64-preloader
- opt/cxoffice/bin/unrar
- opt/cxoffice/bin/wine-preloader
- opt/cxoffice/bin/cxdiag
- opt/cxoffice/bin/cxdiag64
- opt/cxoffice/bin/cxgettext
- opt/cxoffice/bin/wineloader
- opt/cxoffice/bin/wineloader64
-"
-QA_TEXTRELS="
- opt/cxoffice/lib/wine/*
- opt/cxoffice/lib/libwine.so*
-"
-
+QA_PREBUILT="*"
S="${WORKDIR}"
DEPEND=""
BDEPEND="${PYTHON_DEPS}
+ app-alternatives/cpio
app-arch/unzip
dev-lang/perl
dev-util/bbe
@@ -52,13 +30,16 @@ BDEPEND="${PYTHON_DEPS}
RDEPEND="${DEPEND}
${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
!prefix? ( sys-libs/glibc )
- !app-emulation/crossover-office-pro-bin
- !app-emulation/crossover-office-bin
capi? ( net-libs/libcapi[abi_x86_32(-)] )
cups? ( net-print/cups[abi_x86_32(-)] )
gsm? ( media-sound/gsm[abi_x86_32(-)] )
- jpeg? ( virtual/jpeg:0[abi_x86_32(-)] )
+ jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] )
lcms? ( media-libs/lcms:2 )
ldap? ( net-nds/openldap[abi_x86_32(-)] )
gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] )
@@ -78,17 +59,23 @@ RDEPEND="${DEPEND}
pcap? ( net-libs/libpcap[abi_x86_32(-)] )
png? ( media-libs/libpng:0[abi_x86_32(-)] )
scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
- ssl? ( net-libs/gnutls:0/30[abi_x86_32(-)] )
+ ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] )
v4l? ( media-libs/libv4l[abi_x86_32(-)] )
vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] )
+ dev-libs/glib:2
dev-libs/gobject-introspection
+ || (
+ dev-libs/openssl-compat:1.1.1
+ =dev-libs/openssl-1.1.1*
+ )
dev-util/desktop-file-utils
media-libs/alsa-lib[abi_x86_32(-)]
media-libs/freetype:2[abi_x86_32(-)]
media-libs/mesa[abi_x86_32(-),osmesa?]
- media-libs/tiff:0[abi_x86_32(-)]
+ media-libs/tiff-compat:4[abi_x86_32(-)]
sys-auth/nss-mdns[abi_x86_32(-)]
sys-apps/util-linux[abi_x86_32(-)]
+ sys-libs/libunwind[abi_x86_32(-)]
sys-libs/ncurses-compat:5[abi_x86_32(-)]
sys-libs/zlib[abi_x86_32(-)]
x11-libs/libICE[abi_x86_32(-)]
@@ -105,13 +92,10 @@ RDEPEND="${DEPEND}
x11-libs/gdk-pixbuf:2[introspection]
x11-libs/gtk+:3[introspection]
x11-libs/pango[introspection]
+ x11-libs/vte:2.91[introspection]
+ sys-libs/libxcrypt[compat]
"
-pkg_nofetch() {
- einfo "Please visit ${HOMEPAGE}"
- einfo "and place ${A} into your DISTDIR directory"
-}
-
src_unpack() {
# self unpacking zip archive; unzip warns about the exe stuff
unpack_zip ${A}
@@ -120,12 +104,6 @@ src_unpack() {
src_prepare() {
default
- sed -i \
- -e "s:xdg_install_icons(:&\"${ED}\".:" \
- -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \
- -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \
- "${S}/lib/perl/CXMenuXDG.pm"
-
# Remove unnecessary files, license.txt file kept as it's used by
# multiple files (apart of the menu to show the license)
rm -r guis/ || die "Could not remove files"
@@ -133,6 +111,12 @@ src_prepare() {
}
src_install() {
+ sed -i \
+ -e "s:xdg_install_icons(:&\"${ED}\".:" \
+ -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \
+ -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \
+ "${S}/lib/perl/CXMenuXDG.pm" || die
+
# Install crossover symlink, bug #476314
dosym ../cxoffice/bin/crossover /opt/bin/crossover
@@ -146,6 +130,9 @@ src_install() {
find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \
|| die "Could not install into ${ED}/opt/cxoffice"
+ # Disable auto-update
+ sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die
+
# Install configuration file
insinto /opt/cxoffice/etc
doins share/crossover/data/cxoffice.conf
@@ -170,60 +157,38 @@ src_install() {
sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
|| die "Could not apply workaround for konqueror"
- rm "${ED}/usr/share/applications/"*"Uninstall CrossOver Linux.desktop" \
+ # Drop Uninstall menus
+ rm "${ED}/usr/share/applications/"*"Uninstall"* \
|| die "Could not remove uninstall menus"
+
+ # Fix PATHs
sed -i \
-e "s:\"${ED}\".::" \
-e "s:${ED}::" \
"${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \
|| die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
- sed -i -e "s:${ED}:/:" \
+ sed -i -e "s:${ED}::" \
"${ED}/usr/share/applications/"*"CrossOver.desktop" \
|| die "Could not fix paths of *.desktop files"
# Workaround missing libs
- # https://www.codeweavers.com/support/forums/general/?t=26;mhl=198658;msg=198658
- if use gphoto2; then
- bbe -e 's/libgphoto2_port.so.10/libgphoto2_port.so.12/' "${ED}/opt/cxoffice/lib/wine/gphoto2.ds.so" >tmp || die
- mv tmp "${ED}/opt/cxoffice/lib/wine/gphoto2.ds.so" || die
- bbe -e 's/libgphoto2_port.so.10/libgphoto2_port.so.12/' "${ED}/opt/cxoffice/bin/cxdiag" >tmp || die
- mv tmp "${ED}/opt/cxoffice/bin/cxdiag" || die
- fperms a+x "/opt/cxoffice/bin/cxdiag"
- fi
+ #
# It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900
+ # https://bugs.gentoo.org/721108
if use pcap; then
- dosym "../../../usr/lib64/libpcap.so.1.9.1" "/opt/cxoffice/lib64/libpcap.so.0.8"
- dosym "../../../usr/lib32/libpcap.so.1.9.1" "/opt/cxoffice/lib/libpcap.so.0.8"
+ bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die
+ bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die
+ mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die
+ mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die
+ fi
+
+ # Remove libs that link to openldap
+ if ! use ldap; then
+ rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/wldap32.so
fi
-}
-pkg_postinst() {
- einfo "${P} is open source software with the exception of the GUI."
- einfo "Source code can be obtained from:"
- einfo
- einfo "https://media.codeweavers.com/pub/crossover/source/crossover-sources-${PV}.tar.gz"
-
- # The check done by /opt/cxoffice/bin/cxdiag is far superior to this.
- # However, we do this check because I noticed that we could end up with a
- # system that doesn't have a working OpenCL according to cxdiag, yet the
- # dependencies have been installed. This is a defensive measure to reduce
- # user frustration. A more robust check might be worthwhile.
- if use opencl; then
- local b32=false
- local b64=false
- if [[ ! -e "${EROOT}/usr/lib32/libOpenCL.so.1" ]]; then
- b32=true
- ewarn "32-bit libOpenCL.so.1 missing."
- fi
-
- if use amd64 && [[ ! -e "${EROOT}/usr/lib64/libOpenCL.so.1" ]]; then
- b64=true
- ewarn "64-bit libOpenCL.so.1 missing."
- fi
-
- if $b32 || $b64; then
- ewarn
- ewarn "Set OpenCL via eselect opencl to avoid problems"
- fi
+ # Remove libs that link to opencl
+ if ! use opencl; then
+ rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die
fi
}
diff --git a/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild
new file mode 100644
index 000000000000..5639acd7f096
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-23.0.0.ebuild
@@ -0,0 +1,190 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit python-single-r1 unpacker
+
+DESCRIPTION="Commercial version of app-emulation/wine with paid support"
+HOMEPAGE="https://www.codeweavers.com/products/"
+SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin"
+
+LICENSE="CROSSOVER-3"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="+capi +cups doc +gphoto2 +gstreamer +jpeg +lcms ldap +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="bindist test"
+QA_PREBUILT="*"
+S="${WORKDIR}"
+
+DEPEND=""
+BDEPEND="${PYTHON_DEPS}
+ app-alternatives/cpio
+ app-arch/unzip
+ dev-lang/perl
+ dev-util/bbe
+"
+
+RDEPEND="${DEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ !prefix? ( sys-libs/glibc )
+ capi? ( net-libs/libcapi[abi_x86_32(-)] )
+ cups? ( net-print/cups[abi_x86_32(-)] )
+ jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] )
+ lcms? ( media-libs/lcms:2 )
+ ldap? ( net-nds/openldap[abi_x86_32(-)] )
+ gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] )
+ gstreamer? (
+ media-libs/gstreamer:1.0[abi_x86_32(-)]
+ jpeg? ( media-plugins/gst-plugins-jpeg:1.0[abi_x86_32(-)] )
+ media-plugins/gst-plugins-meta:1.0[abi_x86_32(-)]
+ )
+ mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] )
+ nls? ( sys-devel/gettext[abi_x86_32(-)] )
+ openal? ( media-libs/openal[abi_x86_32(-)] )
+ opencl? ( virtual/opencl[abi_x86_32(-)] )
+ opengl? (
+ virtual/glu[abi_x86_32(-)]
+ virtual/opengl[abi_x86_32(-)]
+ )
+ pcap? ( net-libs/libpcap[abi_x86_32(-)] )
+ png? ( media-libs/libpng:0[abi_x86_32(-)] )
+ scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
+ ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] )
+ v4l? ( media-libs/libv4l[abi_x86_32(-)] )
+ vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] )
+ dev-libs/glib:2
+ dev-libs/gobject-introspection
+ dev-libs/openssl-compat:1.1.1
+ dev-util/desktop-file-utils
+ media-libs/alsa-lib[abi_x86_32(-)]
+ media-libs/freetype:2[abi_x86_32(-)]
+ media-libs/mesa[abi_x86_32(-),osmesa?]
+ media-libs/tiff-compat:4[abi_x86_32(-)]
+ sys-auth/nss-mdns[abi_x86_32(-)]
+ sys-apps/util-linux[abi_x86_32(-)]
+ sys-libs/libunwind[abi_x86_32(-)]
+ sys-libs/ncurses-compat:5[abi_x86_32(-)]
+ sys-libs/zlib[abi_x86_32(-)]
+ x11-libs/libICE[abi_x86_32(-)]
+ x11-libs/libSM[abi_x86_32(-)]
+ x11-libs/libX11[abi_x86_32(-)]
+ x11-libs/libXau[abi_x86_32(-)]
+ x11-libs/libXcursor[abi_x86_32(-)]
+ x11-libs/libXdmcp[abi_x86_32(-)]
+ x11-libs/libXext[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ x11-libs/libxcb[abi_x86_32(-)]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection]
+ x11-libs/vte:2.91[introspection]
+ sys-libs/libxcrypt[compat]
+"
+
+src_unpack() {
+ # self unpacking zip archive; unzip warns about the exe stuff
+ unpack_zip ${A}
+}
+
+src_prepare() {
+ default
+
+ # Remove unnecessary files, license.txt file kept as it's used by
+ # multiple files (apart of the menu to show the license)
+ rm -r guis/ || die "Could not remove files"
+ use doc || rm -r doc/ || die "Could not remove files"
+}
+
+src_install() {
+ sed -i \
+ -e "s:xdg_install_icons(:&\"${ED}\".:" \
+ -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \
+ -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \
+ "${S}/lib/perl/CXMenuXDG.pm" || die
+
+ # Install crossover symlink, bug #476314
+ dosym ../cxoffice/bin/crossover /opt/bin/crossover
+
+ # Install documentation
+ dodoc README changelog.txt
+ rm README changelog.txt || die "Could not remove README and changelog.txt"
+
+ # Install files
+ dodir /opt/cxoffice
+ #cp -r ./* "${ED}/opt/cxoffice" \
+ find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \
+ || die "Could not install into ${ED}/opt/cxoffice"
+
+ # Disable auto-update
+ sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die
+
+ # Install configuration file
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+ dodir /etc/env.d
+ echo "CONFIG_PROTECT=/opt/cxoffice/etc/cxoffice.conf" >> "${ED}"/etc/env.d/30crossover-bin || die
+
+ # Konqueror in its infinite wisdom decides to try opening things for
+ # writing, which are sandbox violations. This breaks the install process if
+ # it is installed, so we ninja edit it to false so it so doesn't run.
+ sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
+ || die "Could not apply workaround for konqueror"
+
+ # Install menus
+ # XXX: locate_gui.sh automatically detects *-application-merged directories
+ # This means what we install will vary depending on the contents of
+ # /etc/xdg, which is a QA violation. It is not clear how to resolve this.
+ XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
+ "${ED}/opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
+ || die "Could not install menus"
+
+ # Revert ninja edit
+ sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
+ || die "Could not apply workaround for konqueror"
+
+ # Drop Uninstall menus
+ rm "${ED}/usr/share/applications/"*"Uninstall"* \
+ || die "Could not remove uninstall menus"
+
+ # Fix PATHs
+ sed -i \
+ -e "s:\"${ED}\".::" \
+ -e "s:${ED}::" \
+ "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \
+ || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
+ sed -i -e "s:${ED}::" \
+ "${ED}/usr/share/applications/"*"CrossOver.desktop" \
+ || die "Could not fix paths of *.desktop files"
+
+ # Workaround missing libs
+ #
+ # It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900
+ # https://bugs.gentoo.org/721108
+ if use pcap; then
+ bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die
+ bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die
+ mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die
+ mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die
+ fi
+
+ # Remove libs that link to openldap
+ if ! use ldap; then
+ rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/wldap32.so
+ fi
+
+ # Remove libs that link to opencl
+ if ! use opencl; then
+ rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die
+ fi
+}
diff --git a/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild b/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild
new file mode 100644
index 000000000000..0d24c74fa191
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-23.6.0.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit python-single-r1 unpacker
+
+DESCRIPTION="Commercial version of app-emulation/wine with paid support"
+HOMEPAGE="https://www.codeweavers.com/products/"
+SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin"
+
+LICENSE="CROSSOVER-3"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="+capi +cups doc +gphoto2 +gstreamer +jpeg +lcms +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="bindist test"
+QA_PREBUILT="*"
+S="${WORKDIR}"
+
+DEPEND=""
+BDEPEND="${PYTHON_DEPS}
+ app-alternatives/cpio
+ app-arch/unzip
+ dev-lang/perl
+ dev-util/bbe
+"
+
+RDEPEND="${DEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ !prefix? ( sys-libs/glibc )
+ capi? ( net-libs/libcapi[abi_x86_32(-)] )
+ cups? ( net-print/cups[abi_x86_32(-)] )
+ jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] )
+ lcms? ( media-libs/lcms:2 )
+ gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] )
+ gstreamer? (
+ media-libs/gstreamer:1.0[abi_x86_32(-)]
+ jpeg? ( media-plugins/gst-plugins-jpeg:1.0[abi_x86_32(-)] )
+ media-plugins/gst-plugins-meta:1.0[abi_x86_32(-)]
+ )
+ mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] )
+ nls? ( sys-devel/gettext[abi_x86_32(-)] )
+ openal? ( media-libs/openal[abi_x86_32(-)] )
+ opencl? ( virtual/opencl[abi_x86_32(-)] )
+ opengl? (
+ virtual/glu[abi_x86_32(-)]
+ virtual/opengl[abi_x86_32(-)]
+ )
+ pcap? ( net-libs/libpcap[abi_x86_32(-)] )
+ png? ( media-libs/libpng:0[abi_x86_32(-)] )
+ scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
+ ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] )
+ v4l? ( media-libs/libv4l[abi_x86_32(-)] )
+ vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] )
+ dev-libs/glib:2
+ dev-libs/gobject-introspection
+ dev-libs/openssl-compat:1.1.1
+ dev-util/desktop-file-utils
+ media-libs/alsa-lib[abi_x86_32(-)]
+ media-libs/freetype:2[abi_x86_32(-)]
+ media-libs/mesa[abi_x86_32(-),osmesa?]
+ media-libs/tiff-compat:4[abi_x86_32(-)]
+ sys-auth/nss-mdns[abi_x86_32(-)]
+ sys-apps/util-linux[abi_x86_32(-)]
+ sys-libs/libunwind[abi_x86_32(-)]
+ sys-libs/ncurses-compat:5[abi_x86_32(-)]
+ sys-libs/zlib[abi_x86_32(-)]
+ x11-libs/libICE[abi_x86_32(-)]
+ x11-libs/libSM[abi_x86_32(-)]
+ x11-libs/libX11[abi_x86_32(-)]
+ x11-libs/libXau[abi_x86_32(-)]
+ x11-libs/libXcursor[abi_x86_32(-)]
+ x11-libs/libXdmcp[abi_x86_32(-)]
+ x11-libs/libXext[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ x11-libs/libxcb[abi_x86_32(-)]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection]
+ x11-libs/vte:2.91[introspection]
+ sys-libs/libxcrypt[compat]
+"
+
+src_unpack() {
+ # self unpacking zip archive; unzip warns about the exe stuff
+ unpack_zip ${A}
+}
+
+src_prepare() {
+ default
+
+ # Remove unnecessary files, license.txt file kept as it's used by
+ # multiple files (apart of the menu to show the license)
+ rm -r guis/ || die "Could not remove files"
+ use doc || rm -r doc/ || die "Could not remove files"
+}
+
+src_install() {
+ sed -i \
+ -e "s:xdg_install_icons(:&\"${ED}\".:" \
+ -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \
+ -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \
+ "${S}/lib/perl/CXMenuXDG.pm" || die
+
+ # Install crossover symlink, bug #476314
+ dosym ../cxoffice/bin/crossover /opt/bin/crossover
+
+ # Install documentation
+ dodoc README changelog.txt
+ rm README changelog.txt || die "Could not remove README and changelog.txt"
+
+ # Install files
+ dodir /opt/cxoffice
+ #cp -r ./* "${ED}/opt/cxoffice" \
+ find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \
+ || die "Could not install into ${ED}/opt/cxoffice"
+
+ # Disable auto-update
+ sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die
+
+ # Install configuration file
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+ dodir /etc/env.d
+ echo "CONFIG_PROTECT=/opt/cxoffice/etc/cxoffice.conf" >> "${ED}"/etc/env.d/30crossover-bin || die
+
+ # Konqueror in its infinite wisdom decides to try opening things for
+ # writing, which are sandbox violations. This breaks the install process if
+ # it is installed, so we ninja edit it to false so it so doesn't run.
+ sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
+ || die "Could not apply workaround for konqueror"
+
+ # Install menus
+ # XXX: locate_gui.sh automatically detects *-application-merged directories
+ # This means what we install will vary depending on the contents of
+ # /etc/xdg, which is a QA violation. It is not clear how to resolve this.
+ XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
+ "${ED}/opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
+ || die "Could not install menus"
+
+ # Revert ninja edit
+ sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
+ || die "Could not apply workaround for konqueror"
+
+ # Drop Uninstall menus
+ rm "${ED}/usr/share/applications/"*"Uninstall"* \
+ || die "Could not remove uninstall menus"
+
+ # Fix PATHs
+ sed -i \
+ -e "s:\"${ED}\".::" \
+ -e "s:${ED}::" \
+ "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \
+ || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
+ sed -i -e "s:${ED}::" \
+ "${ED}/usr/share/applications/"*"CrossOver.desktop" \
+ || die "Could not fix paths of *.desktop files"
+
+ # Workaround missing libs
+ #
+ # It tries to load libpcap as packaged in Debian, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=657900
+ # https://bugs.gentoo.org/721108
+ if use pcap; then
+ bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" >tmp || die
+ bbe -e 's/libpcap.so.0.8/libpcap.so.1.9.1/' "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" >tmp64 || die
+ mv tmp "${ED}/opt/cxoffice/lib/wine/i386-unix/wpcap.so" || die
+ mv tmp64 "${ED}/opt/cxoffice/lib/wine/x86_64-unix/wpcap.so" || die
+ fi
+
+ # Remove libs that link to opencl
+ if ! use opencl; then
+ rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die
+ fi
+}
diff --git a/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild b/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild
new file mode 100644
index 000000000000..1dac82ed70b9
--- /dev/null
+++ b/app-emulation/crossover-bin/crossover-bin-24.0.0.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit python-single-r1 unpacker
+
+DESCRIPTION="Commercial version of app-emulation/wine with paid support"
+HOMEPAGE="https://www.codeweavers.com/products/"
+SRC_URI="https://media.codeweavers.com/pub/crossover/cxlinux/demo/install-crossover-${PV}.bin"
+
+LICENSE="CROSSOVER-3"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~x86"
+IUSE="+capi +cups doc +gphoto2 +gstreamer +jpeg +lcms +mp3 +nls osmesa +openal +opencl +opengl +pcap +png +scanner +ssl +v4l +vulkan"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="bindist test"
+QA_PREBUILT="*"
+S="${WORKDIR}"
+
+DEPEND=""
+BDEPEND="${PYTHON_DEPS}
+ app-alternatives/cpio
+ app-arch/unzip
+ dev-lang/perl
+ dev-util/bbe
+"
+
+RDEPEND="${DEPEND}
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pycairo[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ !prefix? ( sys-libs/glibc )
+ capi? ( net-libs/libcapi[abi_x86_32(-)] )
+ cups? ( net-print/cups[abi_x86_32(-)] )
+ jpeg? ( media-libs/libjpeg-turbo:0[abi_x86_32(-)] )
+ lcms? ( media-libs/lcms:2 )
+ gphoto2? ( media-libs/libgphoto2[abi_x86_32(-)] )
+ gstreamer? (
+ media-libs/gstreamer:1.0[abi_x86_32(-)]
+ jpeg? ( media-plugins/gst-plugins-jpeg:1.0[abi_x86_32(-)] )
+ media-plugins/gst-plugins-meta:1.0[abi_x86_32(-)]
+ )
+ mp3? ( >=media-sound/mpg123-1.5.0[abi_x86_32(-)] )
+ nls? ( sys-devel/gettext[abi_x86_32(-)] )
+ openal? ( media-libs/openal[abi_x86_32(-)] )
+ opencl? ( virtual/opencl[abi_x86_32(-)] )
+ opengl? (
+ virtual/glu[abi_x86_32(-)]
+ virtual/opengl[abi_x86_32(-)]
+ )
+ pcap? ( net-libs/libpcap[abi_x86_32(-)] )
+ png? ( media-libs/libpng:0[abi_x86_32(-)] )
+ scanner? ( media-gfx/sane-backends[abi_x86_32(-)] )
+ ssl? ( net-libs/gnutls:0/30.30[abi_x86_32(-)] )
+ v4l? ( media-libs/libv4l[abi_x86_32(-)] )
+ vulkan? ( media-libs/vulkan-loader[abi_x86_32(-)] )
+ dev-libs/glib:2
+ dev-libs/gobject-introspection
+ dev-libs/openssl-compat:1.1.1
+ dev-util/desktop-file-utils
+ media-libs/alsa-lib[abi_x86_32(-)]
+ media-libs/freetype:2[abi_x86_32(-)]
+ media-libs/mesa[abi_x86_32(-),osmesa?]
+ media-libs/tiff-compat:4[abi_x86_32(-)]
+ sys-auth/nss-mdns[abi_x86_32(-)]
+ sys-apps/util-linux[abi_x86_32(-)]
+ sys-libs/libunwind[abi_x86_32(-)]
+ sys-libs/ncurses-compat:5[abi_x86_32(-)]
+ sys-libs/zlib[abi_x86_32(-)]
+ x11-libs/libICE[abi_x86_32(-)]
+ x11-libs/libSM[abi_x86_32(-)]
+ x11-libs/libX11[abi_x86_32(-)]
+ x11-libs/libXau[abi_x86_32(-)]
+ x11-libs/libXcursor[abi_x86_32(-)]
+ x11-libs/libXdmcp[abi_x86_32(-)]
+ x11-libs/libXext[abi_x86_32(-)]
+ x11-libs/libXi[abi_x86_32(-)]
+ x11-libs/libXrandr[abi_x86_32(-)]
+ x11-libs/libXxf86vm[abi_x86_32(-)]
+ x11-libs/libxcb[abi_x86_32(-)]
+ x11-libs/gdk-pixbuf:2[introspection]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/pango[introspection]
+ x11-libs/vte:2.91[introspection]
+ sys-apps/pcsc-lite[abi_x86_32(-)]
+ sys-libs/libxcrypt[compat]
+"
+
+src_unpack() {
+ # self unpacking zip archive; unzip warns about the exe stuff
+ unpack_zip ${A}
+}
+
+src_prepare() {
+ default
+
+ # Remove unnecessary files, license.txt file kept as it's used by
+ # multiple files (apart of the menu to show the license)
+ rm -r guis/ || die "Could not remove files"
+ use doc || rm -r doc/ || die "Could not remove files"
+}
+
+src_install() {
+ sed -i \
+ -e "s:xdg_install_icons(:&\"${ED}\".:" \
+ -e "s:\"\(.*\)/applications:\"${ED}\1/applications:" \
+ -e "s:\"\(.*\)/desktop-directories:\"${ED}\1/desktop-directories:" \
+ "${S}/lib/perl/CXMenuXDG.pm" || die
+
+ # Install crossover symlink, bug #476314
+ dosym ../cxoffice/bin/crossover /opt/bin/crossover
+
+ # Install documentation
+ dodoc README changelog.txt
+ rm README changelog.txt || die "Could not remove README and changelog.txt"
+
+ # Install files
+ dodir /opt/cxoffice
+ #cp -r ./* "${ED}/opt/cxoffice" \
+ find . | cpio -dumpl "${ED}/opt/cxoffice" 2>/dev/null \
+ || die "Could not install into ${ED}/opt/cxoffice"
+
+ # Disable auto-update
+ sed -i -e 's/;;\"AutoUpdate\" = \"1\"/\"AutoUpdate\" = \"0\"/g' share/crossover/data/cxoffice.conf || die
+
+ # Install configuration file
+ insinto /opt/cxoffice/etc
+ doins share/crossover/data/cxoffice.conf
+ dodir /etc/env.d
+ echo "CONFIG_PROTECT=/opt/cxoffice/etc/cxoffice.conf" >> "${ED}"/etc/env.d/30crossover-bin || die
+
+ # Konqueror in its infinite wisdom decides to try opening things for
+ # writing, which are sandbox violations. This breaks the install process if
+ # it is installed, so we ninja edit it to false so it so doesn't run.
+ sed -i -e 's/cxwhich konqueror/false &/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
+ || die "Could not apply workaround for konqueror"
+
+ # Install menus
+ # XXX: locate_gui.sh automatically detects *-application-merged directories
+ # This means what we install will vary depending on the contents of
+ # /etc/xdg, which is a QA violation. It is not clear how to resolve this.
+ XDG_DATA_HOME="/usr/share" XDG_CONFIG_HOME="/etc/xdg" \
+ "${ED}/opt/cxoffice/bin/cxmenu" --destdir="${ED}" --crossover --install \
+ || die "Could not install menus"
+
+ # Revert ninja edit
+ sed -i -e 's/false \(cxwhich konqueror\)/\1/' "${ED}/opt/cxoffice/bin/locate_gui.sh" \
+ || die "Could not apply workaround for konqueror"
+
+ # Drop Uninstall menus
+ rm "${ED}/usr/share/applications/"*"Uninstall"* \
+ || die "Could not remove uninstall menus"
+
+ # Fix PATHs
+ sed -i \
+ -e "s:\"${ED}\".::" \
+ -e "s:${ED}::" \
+ "${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm" \
+ || die "Could not fix paths in ${ED}/opt/cxoffice/lib/perl/CXMenuXDG.pm"
+ sed -i -e "s:${ED}::" \
+ "${ED}/usr/share/applications/"*"CrossOver.desktop" \
+ || die "Could not fix paths of *.desktop files"
+
+ # Remove libs that link to opencl
+ if ! use opencl; then
+ rm "${ED}"/opt/cxoffice/lib/wine/{i386,x86_64}-unix/opencl.so || die
+ fi
+}
diff --git a/app-emulation/crossover-bin/metadata.xml b/app-emulation/crossover-bin/metadata.xml
index 7be1d14b856a..c176b5ef980c 100644
--- a/app-emulation/crossover-bin/metadata.xml
+++ b/app-emulation/crossover-bin/metadata.xml
@@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>ryao@gentoo.org</email>
- <name>Richard Yao</name>
+ <email>pacho@gentoo.org</email>
+ <name>Pacho Ramos</name>
</maintainer>
<use>
<flag name="capi">Enable ISDN support via CAPI</flag>
<flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag>
- <flag name="opencl">Enable OpenCL support</flag>
<flag name="pcap">Support packet capture software (e.g. wireshark)</flag>
- <flag name="vulkan">Enable Vulkan drivers</flag>
</use>
</pkgmetadata>
diff --git a/app-emulation/crun/Manifest b/app-emulation/crun/Manifest
deleted file mode 100644
index 412ce2e26eb7..000000000000
--- a/app-emulation/crun/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST crun-0.14.1.tar.gz 1341891 BLAKE2B c20d5001161e298050ddca859fa78487fe3f8577ef0b06eb5515056f19ba4f981debeb684148de49111a0370b9bafb7f6454d65f7ecf087862c697a162c9b377 SHA512 420f1713653cbd17df83b2a63d163aaa41baf78115b093877a2241305e10b2ceeaf08ea6700658eca894729ff8a20cbc66f868d18d27fba3fbedf1a9993b122e
-DIST crun-0.15.tar.gz 1364861 BLAKE2B 7078e71229bae4bc663398891b21344abc3189c78a11e4feeae3236e1df4a2c5160cf26f2cc243d4c0898a642a779603d473d2c22ca2b67123c6ac4654fce4d7 SHA512 f9a9e94b6a9c5cff01fe93b1c3d5876a0794e6288b802cf579556e11411ca5d6e63cae3859aaa4df4bb600e2d27aa131872a93a92784b9b48f7885411d86f325
-DIST libcrun.lds 257 BLAKE2B 00e7cdf3162ea0b7231dbb9037b192bcf5ffa83316e1aa60268560bc9fe8302be351c405861f9dfc06620ea64561a9226f58b7133039c0af1299dc4088b98272 SHA512 0e9b836c79ee4ad7ff33c592eca8ff41f38aed588f2f5a2416bed82efa819cd4c61ad65a2dfd11a37838a19d950688b1d5adb3b75841963dbb589536e8a867f7
diff --git a/app-emulation/crun/crun-0.14.1.ebuild b/app-emulation/crun/crun-0.14.1.ebuild
deleted file mode 100644
index 651d5f88be89..000000000000
--- a/app-emulation/crun/crun-0.14.1.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-
-inherit autotools python-any-r1
-
-DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
-HOMEPAGE="https://github.com/containers/crun"
-SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz
- https://github.com/containers/${PN}/raw/${PV}/libcrun.lds"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~ppc64"
-IUSE="bpf +caps man seccomp systemd static-libs"
-
-DEPEND="
- dev-libs/yajl
- caps? ( sys-libs/libcap )
- seccomp? ( sys-libs/libseccomp )
- systemd? ( sys-apps/systemd:= )
-"
-RDEPEND="${DEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- man? ( dev-go/go-md2man )
-"
-
-# the crun test suite is comprehensive to the extent that tests will fail
-# within a sandbox environment, due to the nature of the privileges
-# required to create linux "containers".
-RESTRICT="test"
-
-DOCS=( README.md )
-
-src_unpack() {
- # dont' try to unpack the .lds file
- MY_A=( ${A[@]/libcrun.lds} )
- unpack ${MY_A}
-}
-
-src_prepare() {
- default
- eautoreconf
- cp -v "${DISTDIR}"/libcrun.lds "${S}"/ || die "libcrun.lds could not be copied"
-}
-
-src_configure() {
- local myeconfargs=(
- --disable-criu \
- $(use_enable bpf) \
- $(use_enable caps) \
- $(use_enable seccomp) \
- $(use_enable systemd) \
- $(usex static-libs '--enabled-shared --enabled-static' '--enable-shared --disable-static' '' '')
- )
-
- econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- emake -C libocispec
- emake crun
- if use man ; then
- emake generate-man
- fi
-}
-
-src_install() {
- emake "DESTDIR=${D}" install-exec
- if use man ; then
- emake "DESTDIR=${D}" install-man
- fi
-
- einstalldocs
-}
diff --git a/app-emulation/crun/crun-0.15.ebuild b/app-emulation/crun/crun-0.15.ebuild
deleted file mode 100644
index 888df44272f7..000000000000
--- a/app-emulation/crun/crun-0.15.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6..9} )
-
-inherit autotools python-any-r1
-
-DESCRIPTION="A fast and low-memory footprint OCI Container Runtime fully written in C"
-HOMEPAGE="https://github.com/containers/crun"
-SRC_URI="https://github.com/containers/${PN}/releases/download/${PV}/${P}.tar.gz"
-
-LICENSE="GPL-2+ LGPL-2.1+"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
-IUSE="+bpf +caps criu man +seccomp systemd static-libs"
-
-DEPEND="
- sys-kernel/linux-headers
- >=dev-libs/yajl-2.0.0
- caps? ( sys-libs/libcap )
- criu? ( >=sys-process/criu-3.13 )
- seccomp? ( sys-libs/libseccomp )
- systemd? ( sys-apps/systemd:= )
-"
-RDEPEND="${DEPEND}"
-BDEPEND="
- ${PYTHON_DEPS}
- man? ( dev-go/go-md2man )
-"
-
-# the crun test suite is comprehensive to the extent that tests will fail
-# within a sandbox environment, due to the nature of the privileges
-# required to create linux "containers".
-RESTRICT="test"
-
-DOCS=( README.md )
-
-src_configure() {
- local myeconfargs=(
- $(use_enable bpf) \
- $(use_enable caps) \
- $(use_enable criu) \
- $(use_enable seccomp) \
- $(use_enable systemd) \
- $(usex static-libs '--enabled-shared --enabled-static' '--enable-shared --disable-static' '' '')
- )
-
- econf "${myeconfargs[@]}"
-}
-
-src_compile() {
- emake -C libocispec
- emake crun
- if use man ; then
- emake generate-man
- fi
-}
-
-src_install() {
- emake "DESTDIR=${D}" install-exec
- if use man ; then
- emake "DESTDIR=${D}" install-man
- fi
-
- einstalldocs
-}
diff --git a/app-emulation/crun/metadata.xml b/app-emulation/crun/metadata.xml
deleted file mode 100644
index e26e3d83bf66..000000000000
--- a/app-emulation/crun/metadata.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>robert@gnzler.io</email>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
- <longdescription lang="en">
- While most of the tools used in the Linux containers ecosystem are written in
- Go, crun authors believe C is a better fit for a lower level tool like a
- container runtime. runc; the most used implementation of the OCI runtime specs
- written in Go, re-execs itself and use a module written in C for setting up
- the environment before the container process starts.
-
- crun aims to be also usable as a library that can be easily included in
- programs without requiring an external process for managing OCI containers.
- </longdescription>
- <upstream>
- <changelog>https://github.com/containers/crun/releases</changelog>
- <remote-id type="github">containers/crun</remote-id>
- </upstream>
- <use>
- <flag name="bpf">Enable in Kernel, eBPF (enhanced Berkley Packet Filter)
- support for managing device controllers.
- </flag>
- <flag name="man">Build and install man pages</flag>
- <flag name="criu">Enable CRIU based checkpoint/restore support</flag>
- </use>
-</pkgmetadata>
diff --git a/app-emulation/dinero/dinero-4.7-r1.ebuild b/app-emulation/dinero/dinero-4.7-r1.ebuild
index 5768448f3886..6fe3a1546442 100644
--- a/app-emulation/dinero/dinero-4.7-r1.ebuild
+++ b/app-emulation/dinero/dinero-4.7-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -8,7 +8,7 @@ inherit autotools toolchain-funcs
MY_P="d${PV/./-}"
S="${WORKDIR}/${MY_P}"
DESCRIPTION="Cache simulator"
-HOMEPAGE="http://www.cs.wisc.edu/~markhill/DineroIV/"
+HOMEPAGE="https://pages.cs.wisc.edu/~markhill/DineroIV/"
SRC_URI="ftp://ftp.cs.wisc.edu/markhill/DineroIV/${MY_P}.tar.gz"
LICENSE="free-noncomm"
diff --git a/app-emulation/dinero/metadata.xml b/app-emulation/dinero/metadata.xml
index 6f49eba8f496..85e4ed814fa2 100644
--- a/app-emulation/dinero/metadata.xml
+++ b/app-emulation/dinero/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/app-emulation/diskimage-builder/Manifest b/app-emulation/diskimage-builder/Manifest
index 69807ba0b093..6d2f7d256e5a 100644
--- a/app-emulation/diskimage-builder/Manifest
+++ b/app-emulation/diskimage-builder/Manifest
@@ -1 +1 @@
-DIST diskimage-builder-3.3.1.tar.gz 450130 BLAKE2B 09f3b3549527d726f8479e1f8dc89ae50fdeacf6969e43f5b35591fa0a9d38ae0dd03b7292633604a938b0ef14e31b4e655645643bae22df4f3519c75d9dde83 SHA512 095c0968f5ceeb220c3871ccd14c7bf7c1b3d883bcb02f9cfe7406d5a336c36a813c8290bf133441a2a59972f485596aa5620b755016aba348afe3b7fc723c9f
+DIST diskimage-builder-3.32.0.tar.gz 532942 BLAKE2B e436e5268b649dc5e050f66b098e527b79f172df00da93f23c115e3d88692c3f6546774c2046c8d4722cdd4139af4d05701725496f283b60e08ce0885b70de66 SHA512 6f5c2e0df428bf85b847fdc0ceebfdb66823b92b5b903de247d0e83ff2588c36e6f9786ea91f252c838cedeec22913f491d79643e77d83ad1fb690da7566af47
diff --git a/app-emulation/diskimage-builder/diskimage-builder-3.3.1.ebuild b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild
index 893f0c3ae6b6..ee67baf77be4 100644
--- a/app-emulation/diskimage-builder/diskimage-builder-3.3.1.ebuild
+++ b/app-emulation/diskimage-builder/diskimage-builder-3.32.0.ebuild
@@ -1,19 +1,20 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python3_{9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
inherit distutils-r1
-DESCRIPTION="Golden Disk Image builder."
+DESCRIPTION="Golden Disk Image builder"
HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git"
else
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ inherit pypi
KEYWORDS="amd64 ~arm64 x86 ~amd64-linux ~x86-linux"
fi
@@ -29,6 +30,7 @@ RDEPEND="${CDEPEND}
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
>=dev-python/networkx-1.10[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
app-emulation/qemu
diff --git a/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild b/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
index eb082f7274ea..f94dda84287d 100644
--- a/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
+++ b/app-emulation/diskimage-builder/diskimage-builder-9999.ebuild
@@ -1,19 +1,20 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python3_{9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
inherit distutils-r1
-DESCRIPTION="Golden Disk Image builder."
+DESCRIPTION="Golden Disk Image builder"
HOMEPAGE="http://docs.openstack.org/developer/diskimage-builder/"
if [[ ${PV} == 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://opendev.org/openstack/diskimage-builder.git"
else
- SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+ inherit pypi
KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
fi
@@ -29,6 +30,7 @@ RDEPEND="${CDEPEND}
!~dev-python/Babel-2.4.0[${PYTHON_USEDEP}]
>=dev-python/networkx-1.10[${PYTHON_USEDEP}]
>=dev-python/pyyaml-3.12[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
>=dev-python/stevedore-1.20.0[${PYTHON_USEDEP}]
app-emulation/qemu
diff --git a/app-emulation/diskimage-builder/metadata.xml b/app-emulation/diskimage-builder/metadata.xml
index f8379974f846..ac7f0ae3a814 100644
--- a/app-emulation/diskimage-builder/metadata.xml
+++ b/app-emulation/diskimage-builder/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>prometheanfire@gentoo.org</email>
diff --git a/app-emulation/distrobuilder/Manifest b/app-emulation/distrobuilder/Manifest
deleted file mode 100644
index 787431ed6f34..000000000000
--- a/app-emulation/distrobuilder/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST distrobuilder-1.1.tar.gz 17339508 BLAKE2B 5dc023520783301bfaaee9dbdb7f6707a565b6b7cde18afe53051c47cf4ec243be4f279846753f4fdab75f8aa3333fc4e74d90376390073e36edcb57a1d22815 SHA512 4638cb7ad34032a4ab6d6d85a07b92b7ee3ebc6fe34672d148b0574d487ca2a572fbcc700f829865faa77ec07f78e47555246cb8a2455c713d5051f19cbf8426
diff --git a/app-emulation/distrobuilder/distrobuilder-1.1.ebuild b/app-emulation/distrobuilder/distrobuilder-1.1.ebuild
deleted file mode 100644
index becaf0c0f236..000000000000
--- a/app-emulation/distrobuilder/distrobuilder-1.1.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit go-module linux-info
-
-DESCRIPTION="System container image builder for LXC and LXD"
-HOMEPAGE="https://linuxcontainers.org/distrobuilder/introduction/"
-SRC_URI="https://linuxcontainers.org/downloads/distrobuilder/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="
- dev-util/debootstrap
- app-crypt/gnupg
- sys-fs/squashfs-tools
- dev-vcs/git
- net-misc/rsync
- "
-
-CONFIG_CHECK="~OVERLAY_FS"
-RESTRICT+=" test"
-
-src_compile() {
- cd _dist/src/github.com/lxc/distrobuilder || die "cd failed"
- GO111MODULE="off" GOBIN="${S}/bin" GOPATH="${S}/_dist" \
- go install ./... || die "compile failed"
-}
-
-src_install() {
- dobin bin/*
-}
diff --git a/app-emulation/distrobuilder/metadata.xml b/app-emulation/distrobuilder/metadata.xml
deleted file mode 100644
index b495e2e1bb0b..000000000000
--- a/app-emulation/distrobuilder/metadata.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <maintainer type="person">
- <email>posting@vodacomm.ca</email>
- <name>Stephen Bosch</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/dlx/Manifest b/app-emulation/dlx/Manifest
deleted file mode 100644
index d495844051b6..000000000000
--- a/app-emulation/dlx/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST dlx-1.0.0.tar.gz 112589 BLAKE2B 307785d08fd69e45264471fbc21e3b2bdba99798c0b7144c3d6a92819c29e4ac6449a6db83fdd55ba81d3b2e3f8ca6c991ee6c117ddc490a88ae210e5bc07ab8 SHA512 99297f14f6716ada7a29b204723a0c951002529362a22f695b3647517462f43af563ea55467985dda3e21d79a14d46b84dbc9b22a8c0751fba49257e30f70a7f
-DIST dlx-1.5.20.zip 137039 BLAKE2B 99dbb2e5bcd89b3e9f3d8edc2fe7e7cc0a59f870f597a40a61a993b95d8b27c4f95b8d0490fdbcbc15693040d6e3abdfb8b0062e109916f5299c3da3c203d755 SHA512 5c832c2a486a82574ae03ec0cb4e30bfec74ef968658a38fbd896a1383dcdc558501baef7cbbdf99df453ba2840622d16c1619f9c5fe34b6cd058a7718bd3790
diff --git a/app-emulation/dlx/dlx-1.0.0.ebuild b/app-emulation/dlx/dlx-1.0.0.ebuild
deleted file mode 100644
index 401c626c72df..000000000000
--- a/app-emulation/dlx/dlx-1.0.0.ebuild
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-S=${WORKDIR}/dlx
-
-DESCRIPTION="DLX Simulator"
-HOMEPAGE="https://www.davidviner.com/dlx"
-SRC_URI="mirror://gentoo/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="ppc x86"
-IUSE=""
-
-src_install() {
- dobin masm mon dasm
- dodoc README.txt MANUAL.TXT
-}
diff --git a/app-emulation/dlx/dlx-1.5.20.ebuild b/app-emulation/dlx/dlx-1.5.20.ebuild
deleted file mode 100644
index 30e768088a51..000000000000
--- a/app-emulation/dlx/dlx-1.5.20.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="DLX Simulator"
-HOMEPAGE="https://www.davidviner.com/dlx"
-SRC_URI="https://www.davidviner.com/zip/dlx/dlx.zip -> ${P}.zip"
-S=${WORKDIR}/dlx
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE=""
-
-DEPEND="app-arch/unzip"
-
-src_compile() {
- # CXX not used
- emake CC="$(tc-getCC)" LINK="$(tc-getCC)" \
- CFLAGS="${CFLAGS} ${CPPFLAGS}" \
- LFLAGS="${CFLAGS} ${LDFLAGS}"
-}
-
-src_install() {
- dobin masm mon dasm
- dodoc README.txt MANUAL.TXT
-}
diff --git a/app-emulation/dlx/metadata.xml b/app-emulation/dlx/metadata.xml
deleted file mode 100644
index 6f49eba8f496..000000000000
--- a/app-emulation/dlx/metadata.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<!-- maintainer-needed -->
-</pkgmetadata>
diff --git a/app-emulation/docker-bench-security/Manifest b/app-emulation/docker-bench-security/Manifest
deleted file mode 100644
index 343ff9b85b6d..000000000000
--- a/app-emulation/docker-bench-security/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST docker-bench-security-1.3.2.tar.gz 414608 BLAKE2B 27977df473c341783aab400bbe5064e267d6f53aa62ffd6f95386572e059616750eb06b98ad3044efaf565f929e6ebfb5d57607b227718032fa33d70ce65eed5 SHA512 7d271167584ff99fdaff15b1d303f1cedeb5888057437cc3bfae8260aff96f98d8a0173c4d4e5718bf8ee4e0ffe3ae0280f0026cf386ae32c38e8302159a2226
-DIST docker-bench-security-1.3.3.tar.gz 274361 BLAKE2B b0a3fef0fedd7353a11f18603af0a9bd5a9c5674df8e0c2988f3b7430739b1fe1c37b3bc29323f39604e8f9d3af66e4a64b97c1e4bb1ef253cc39e9b1e1cb6e2 SHA512 0b9a8bb3cc0bf0887f3b3462c3529568f6cc4d327f66fe482ceb24865a3df51ffee48a1a12c93ca13401f23bf1cd47b3e8b25c99537f63a823ff173d54994fe9
diff --git a/app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild b/app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild
deleted file mode 100644
index 6e423e8ccc19..000000000000
--- a/app-emulation/docker-bench-security/docker-bench-security-1.3.2.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Test for best practices around deploying docker containers"
-HOMEPAGE="https://github.com/docker/docker-bench-security"
-SRC_URI="https://github.com/docker/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND=">=app-emulation/docker-1.10"
-
-src_install() {
-dobin "${FILESDIR}/docker-bench-security"
-exeinto /usr/lib/${PN}
-doexe ${PN}.sh
-insinto /usr/lib/${PN}
-doins -r *lib.sh tests
- dodoc -r benchmark_log.png CONTRIBUTING.md distros docker-compose.yml \
- Dockerfile MAINTAINERS README.md
-}
diff --git a/app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild b/app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild
deleted file mode 100644
index 6e423e8ccc19..000000000000
--- a/app-emulation/docker-bench-security/docker-bench-security-1.3.3.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Test for best practices around deploying docker containers"
-HOMEPAGE="https://github.com/docker/docker-bench-security"
-SRC_URI="https://github.com/docker/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND=">=app-emulation/docker-1.10"
-
-src_install() {
-dobin "${FILESDIR}/docker-bench-security"
-exeinto /usr/lib/${PN}
-doexe ${PN}.sh
-insinto /usr/lib/${PN}
-doins -r *lib.sh tests
- dodoc -r benchmark_log.png CONTRIBUTING.md distros docker-compose.yml \
- Dockerfile MAINTAINERS README.md
-}
diff --git a/app-emulation/docker-bench-security/files/docker-bench-security b/app-emulation/docker-bench-security/files/docker-bench-security
deleted file mode 100644
index 3a79d1b3af4d..000000000000
--- a/app-emulation/docker-bench-security/files/docker-bench-security
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-if [ $(id -u) -ne 0 ]; then
- printf "%s\n" "This script must be run as root."
- exit 1
-fi
-cd "$(dirname $0)/../lib/docker-bench-security"
-./docker-bench-security.sh
diff --git a/app-emulation/docker-bench-security/metadata.xml b/app-emulation/docker-bench-security/metadata.xml
deleted file mode 100644
index eb6d1553ceb4..000000000000
--- a/app-emulation/docker-bench-security/metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <longdescription lang="en">
- The Docker Bench for Security is a script that checks for dozens of
- common best-practices around deploying Docker containers in production.
- </longdescription>
-</pkgmetadata>
diff --git a/app-emulation/docker-compose/Manifest b/app-emulation/docker-compose/Manifest
deleted file mode 100644
index 240475af83e6..000000000000
--- a/app-emulation/docker-compose/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-DIST docker-compose-1.25.5.tar.gz 308569 BLAKE2B 5d5d1fd60f9bcb87f7e9628dbe10b275996f9af38fb8488a547f4cb5427e6f7aaac09a98a421a0c35a7c2c863713e5de9a490ad21adf080f74a7c3bc4336559b SHA512 efe59bd5e82e12e63c82341ccf5ca11eaebd47c8154a50b40d39bc98ec48c37532919335172a5667f036bab4e884df950ebc4b4ccab8174200cc7ea6683bbbd7
-DIST docker-compose-1.26.2.tar.gz 313494 BLAKE2B 656bac181547a3484c45d0ede7111384007db8109aaf3673a06b848bb9b27059cfb8b2cd583e6bc7acd0ebbd90d40e485251d473eefe56a6493abe187132e520 SHA512 4cb8a2f5e25f17eb842e36dea96fae8862df099d706ec590e6fc0790c7a814bed3bb60ec00207e4afc15bf8ad4ca37075320fd28ee0bea5bbec1646f3aed681f
-DIST docker-compose-1.27.2.tar.gz 309004 BLAKE2B 1017016989b25afa812d2e7251c6dbf45922867d66ef0c69292889a5de8f31908c8d2f418b2c29c319fbd7d0ba4e213d932665e7128b61164295105f35b23579 SHA512 2156a2b283d0ace6a8bfb0d6bbe93bfca7cd651c30fdeea4e1fa2acc6a85790d34a869d4625ef83ad11e9ecc1fbc1e9acac6f40eb8ef5225ccc36bab2ddcf847
-DIST docker-compose-1.27.3.tar.gz 309220 BLAKE2B eaf066f24bfff893e515a460be9abba79a59e5112a3a34a9002870babefd93950cf92ef66db469102c37e781d7fb986de069eef3fa09e4041b3a43d8bf1a3d30 SHA512 43e34760574d1ec009faa7a1fa09d621a2708f01f05819b46c67fe7ebf280807f97d9a5867cbfe75e9af6f097cd3f7c8c8fee66aa5392a4c62cdf44c7fb38075
-DIST docker-compose-1.27.4.tar.gz 309308 BLAKE2B 098af5e0308de4fe72f8f7d5c9cbdb285ec1cb6fbd492baef8a4223f93591321c585ebabd4c7e4a40d7a1bce3ab2d7ccf4cee1d0a15e7f59bb80eb4df5b6c8d6 SHA512 b41b7cf88b1380021a30f9becb7567d1e154ef875c42b37483673b5107f1a26dae6868b92c6a61f695001eb63759b25f3729e6783272eb784047717cafea3b80
diff --git a/app-emulation/docker-compose/docker-compose-1.25.5.ebuild b/app-emulation/docker-compose/docker-compose-1.25.5.ebuild
deleted file mode 100644
index 92e8455fcfac..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.25.5.ebuild
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2018-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit bash-completion-r1 distutils-r1
-
-DESCRIPTION="Multi-container orchestration for Docker"
-HOMEPAGE="https://github.com/docker/compose"
-SRC_URI="https://github.com/docker/compose/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/docker-py-3.7.0[${PYTHON_USEDEP}]
- >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}]
- >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP}]
- >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
- >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]"
-
-DEPEND="${RDEPEND}
- test? (
- >=dev-python/pytest-5[${PYTHON_USEDEP}]
- dev-python/ddt[${PYTHON_USEDEP}]
- )"
-
-S="${WORKDIR}/compose-${PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.25.2-setup-py.patch
-)
-
-src_prepare() {
- # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command."
- sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die
-
- default
-}
-
-python_test() {
- distutils_install_for_testing
- ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp contrib/completion/bash/docker-compose ${PN}
-
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/*
-
- distutils-r1_python_install_all
-}
diff --git a/app-emulation/docker-compose/docker-compose-1.26.2.ebuild b/app-emulation/docker-compose/docker-compose-1.26.2.ebuild
deleted file mode 100644
index 352afa3a5dc2..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.26.2.ebuild
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright 2018-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit bash-completion-r1 distutils-r1
-
-DESCRIPTION="Multi-container orchestration for Docker"
-HOMEPAGE="https://github.com/docker/compose"
-SRC_URI="https://github.com/docker/compose/archive/${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/docker-py-4.2.2[${PYTHON_USEDEP}]
- >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}]
- >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP}]
- >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
- >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]"
-
-DEPEND="${RDEPEND}
- test? (
- >=dev-python/pytest-5[${PYTHON_USEDEP}]
- >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}]
- )"
-
-S="${WORKDIR}/compose-${PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.26.2-setup-py.patch
-)
-
-DOCS=( CHANGELOG.md README.md )
-
-src_prepare() {
- # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command."
- sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die
-
- default
-}
-
-python_test() {
- distutils_install_for_testing
- ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp contrib/completion/bash/docker-compose ${PN}
-
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/*
-
- distutils-r1_python_install_all
-}
diff --git a/app-emulation/docker-compose/docker-compose-1.27.2.ebuild b/app-emulation/docker-compose/docker-compose-1.27.2.ebuild
deleted file mode 100644
index 21b5b42471fc..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.27.2.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 2018-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit bash-completion-r1 distutils-r1
-
-MY_PV=${PV/_/-}
-DESCRIPTION="Multi-container orchestration for Docker"
-HOMEPAGE="https://github.com/docker/compose"
-SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/docker-py-4.3.1[${PYTHON_USEDEP}]
- >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}]
- >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP}]
- >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
- >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]"
-
-DEPEND="${RDEPEND}
- test? (
- >=dev-python/pytest-5[${PYTHON_USEDEP}]
- >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}]
- )"
-
-S="${WORKDIR}/compose-${MY_PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.27.0_rc3-setup-py.patch
-)
-
-DOCS=( CHANGELOG.md README.md )
-
-src_prepare() {
- # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command."
- sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die
-
- default
-}
-
-python_test() {
- distutils_install_for_testing
- ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp contrib/completion/bash/docker-compose ${PN}
-
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/*
-
- distutils-r1_python_install_all
-}
diff --git a/app-emulation/docker-compose/docker-compose-1.27.3.ebuild b/app-emulation/docker-compose/docker-compose-1.27.3.ebuild
deleted file mode 100644
index 21b5b42471fc..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.27.3.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 2018-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit bash-completion-r1 distutils-r1
-
-MY_PV=${PV/_/-}
-DESCRIPTION="Multi-container orchestration for Docker"
-HOMEPAGE="https://github.com/docker/compose"
-SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/docker-py-4.3.1[${PYTHON_USEDEP}]
- >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}]
- >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP}]
- >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
- >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]"
-
-DEPEND="${RDEPEND}
- test? (
- >=dev-python/pytest-5[${PYTHON_USEDEP}]
- >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}]
- )"
-
-S="${WORKDIR}/compose-${MY_PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.27.0_rc3-setup-py.patch
-)
-
-DOCS=( CHANGELOG.md README.md )
-
-src_prepare() {
- # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command."
- sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die
-
- default
-}
-
-python_test() {
- distutils_install_for_testing
- ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp contrib/completion/bash/docker-compose ${PN}
-
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/*
-
- distutils-r1_python_install_all
-}
diff --git a/app-emulation/docker-compose/docker-compose-1.27.4.ebuild b/app-emulation/docker-compose/docker-compose-1.27.4.ebuild
deleted file mode 100644
index 21b5b42471fc..000000000000
--- a/app-emulation/docker-compose/docker-compose-1.27.4.ebuild
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright 2018-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8,9} )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit bash-completion-r1 distutils-r1
-
-MY_PV=${PV/_/-}
-DESCRIPTION="Multi-container orchestration for Docker"
-HOMEPAGE="https://github.com/docker/compose"
-SRC_URI="https://github.com/docker/compose/archive/${MY_PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
- >=dev-python/cached-property-1.2.0[${PYTHON_USEDEP}]
- >=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
- >=dev-python/docker-py-4.3.1[${PYTHON_USEDEP}]
- >=dev-python/dockerpty-0.4.1[${PYTHON_USEDEP}]
- >=dev-python/docopt-0.6.1[${PYTHON_USEDEP}]
- >=dev-python/python-dotenv-0.13.0[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-2.5.1[${PYTHON_USEDEP}]
- dev-python/paramiko[${PYTHON_USEDEP}]
- >=dev-python/PySocks-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/pyyaml-3.10[${PYTHON_USEDEP}]
- >=dev-python/requests-2.20.0[${PYTHON_USEDEP}]
- >=dev-python/six-1.3.0[${PYTHON_USEDEP}]
- >=dev-python/texttable-0.9.0[${PYTHON_USEDEP}]
- >=dev-python/websocket-client-0.32.0[${PYTHON_USEDEP}]"
-
-DEPEND="${RDEPEND}
- test? (
- >=dev-python/pytest-5[${PYTHON_USEDEP}]
- >=dev-python/ddt-1.2.2[${PYTHON_USEDEP}]
- )"
-
-S="${WORKDIR}/compose-${MY_PV}"
-
-PATCHES=(
- # Bug #679968 -- https://bugs.gentoo.org/679968
- # Bug #681002 -- https://bugs.gentoo.org/681002
- "${FILESDIR}"/${PN}-1.27.0_rc3-setup-py.patch
-)
-
-DOCS=( CHANGELOG.md README.md )
-
-src_prepare() {
- # Address QA issue "docker-compose.exe: missing alias (symlink) for completed command."
- sed 's,^\(complete.*\) docker-compose\.exe\(.*\),\1\2,' -i contrib/completion/bash/docker-compose || die
-
- default
-}
-
-python_test() {
- distutils_install_for_testing
- ${PYTHON} -m pytest tests/unit/ || die "tests failed under ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp contrib/completion/bash/docker-compose ${PN}
-
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/*
-
- distutils-r1_python_install_all
-}
diff --git a/app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch
deleted file mode 100644
index 3af8d2de06e6..000000000000
--- a/app-emulation/docker-compose/files/docker-compose-1.25.2-setup-py.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 19d9b58b97127f24e2280e3119e420393e7d239f Mon Sep 17 00:00:00 2001
-From: Sebastian Pipping <sebastian@pipping.org>
-Date: Mon, 20 Jan 2020 19:27:46 +0100
-Subject: [PATCH] setup.py: Drop generic upper version boundaries
-
----
- setup.py | 38 +++++++++++++++++++-------------------
- 1 file changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 110441d..3f6a46f 100644
---- a/setup.py
-+++ b/setup.py
-@@ -30,35 +30,35 @@ def find_version(*file_paths):
-
-
- install_requires = [
-- 'cached-property >= 1.2.0, < 2',
-- 'docopt >= 0.6.1, < 1',
-- 'PyYAML >= 3.10, < 6',
-- 'requests >= 2.20.0, < 3',
-- 'texttable >= 0.9.0, < 2',
-- 'websocket-client >= 0.32.0, < 1',
-- 'docker[ssh] >= 3.7.0, < 5',
-- 'dockerpty >= 0.4.1, < 1',
-- 'six >= 1.3.0, < 2',
-- 'jsonschema >= 2.5.1, < 4',
-+ 'cached-property >= 1.2.0',
-+ 'docopt >= 0.6.1',
-+ 'PyYAML >= 3.10',
-+ 'requests >= 2.20.0',
-+ 'texttable >= 0.9.0',
-+ 'websocket-client >= 0.32.0',
-+ 'docker[ssh] >= 3.7.0',
-+ 'dockerpty >= 0.4.1',
-+ 'six >= 1.3.0',
-+ 'jsonschema >= 2.5.1',
- ]
-
-
- tests_require = [
-- 'pytest < 6',
-+ 'pytest',
- ]
-
-
- if sys.version_info[:2] < (3, 4):
-- tests_require.append('mock >= 1.0.1, < 4')
-+ tests_require.append('mock >= 1.0.1')
-
- extras_require = {
-- ':python_version < "3.2"': ['subprocess32 >= 3.5.4, < 4'],
-- ':python_version < "3.4"': ['enum34 >= 1.0.4, < 2'],
-- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'],
-- ':python_version < "3.3"': ['backports.shutil_get_terminal_size == 1.0.0',
-- 'ipaddress >= 1.0.16, < 2'],
-- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'],
-- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'],
-+ ':python_version < "3.2"': ['subprocess32 >= 3.5.4'],
-+ ':python_version < "3.4"': ['enum34 >= 1.0.4'],
-+ ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'],
-+ ':python_version < "3.3"': ['backports.shutil_get_terminal_size >= 1.0.0',
-+ 'ipaddress >= 1.0.16'],
-+ ':sys_platform == "win32"': ['colorama >= 0.4'],
-+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'],
- }
-
-
---
-2.24.1
-
diff --git a/app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch
deleted file mode 100644
index 6c678326952c..000000000000
--- a/app-emulation/docker-compose/files/docker-compose-1.26.2-setup-py.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 067109b44ae049c3f6d72c6dc80e387ff8750b17 Mon Sep 17 00:00:00 2001
-From: Sebastian Pipping <sebastian@pipping.org>
-Date: Tue, 30 Jun 2020 21:00:28 +0200
-Subject: [PATCH] setup.py: Drop generic upper version boundaries
-
----
- setup.py | 44 ++++++++++++++++++++++----------------------
- 1 file changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index ac55ce4..dd69bba 100644
---- a/setup.py
-+++ b/setup.py
-@@ -30,38 +30,38 @@ def find_version(*file_paths):
-
-
- install_requires = [
-- 'cached-property >= 1.2.0, < 2',
-- 'docopt >= 0.6.1, < 1',
-- 'PyYAML >= 3.10, < 6',
-- 'requests >= 2.20.0, < 3',
-- 'texttable >= 0.9.0, < 2',
-- 'websocket-client >= 0.32.0, < 1',
-- 'distro >= 1.5.0, < 2',
-- 'docker[ssh] >= 4.2.2, < 5',
-- 'dockerpty >= 0.4.1, < 1',
-- 'six >= 1.3.0, < 2',
-- 'jsonschema >= 2.5.1, < 4',
-- 'python-dotenv >= 0.13.0, < 1',
-+ 'cached-property >= 1.2.0',
-+ 'docopt >= 0.6.1',
-+ 'PyYAML >= 3.10',
-+ 'requests >= 2.20.0',
-+ 'texttable >= 0.9.0',
-+ 'websocket-client >= 0.32.0',
-+ 'distro >= 1.5.0',
-+ 'docker[ssh] >= 4.2.2',
-+ 'dockerpty >= 0.4.1',
-+ 'six >= 1.3.0',
-+ 'jsonschema >= 2.5.1',
-+ 'python-dotenv >= 0.13.0',
- ]
-
-
- tests_require = [
-- 'ddt >= 1.2.2, < 2',
-- 'pytest < 6',
-+ 'ddt >= 1.2.2',
-+ 'pytest',
- ]
-
-
- if sys.version_info[:2] < (3, 4):
-- tests_require.append('mock >= 1.0.1, < 4')
-+ tests_require.append('mock >= 1.0.1')
-
- extras_require = {
-- ':python_version < "3.2"': ['subprocess32 >= 3.5.4, < 4'],
-- ':python_version < "3.4"': ['enum34 >= 1.0.4, < 2'],
-- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'],
-- ':python_version < "3.3"': ['backports.shutil_get_terminal_size == 1.0.0',
-- 'ipaddress >= 1.0.16, < 2'],
-- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'],
-- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'],
-+ ':python_version < "3.2"': ['subprocess32 >= 3.5.4'],
-+ ':python_version < "3.4"': ['enum34 >= 1.0.4'],
-+ ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'],
-+ ':python_version < "3.3"': ['backports.shutil_get_terminal_size >= 1.0.0',
-+ 'ipaddress >= 1.0.16'],
-+ ':sys_platform == "win32"': ['colorama >= 0.4'],
-+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'],
- 'tests': tests_require,
- }
-
---
-2.26.2
-
diff --git a/app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch b/app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch
deleted file mode 100644
index 3026933addd2..000000000000
--- a/app-emulation/docker-compose/files/docker-compose-1.27.0_rc3-setup-py.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 3b4800ed5b24cea7af00aa868964e3d46e81364e Mon Sep 17 00:00:00 2001
-From: Sebastian Pipping <sebastian@pipping.org>
-Date: Thu, 3 Sep 2020 19:59:36 +0200
-Subject: [PATCH] setup.py: Drop generic upper version boundaries
-
----
- setup.py | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index e0d4340..648a736 100644
---- a/setup.py
-+++ b/setup.py
-@@ -25,33 +25,33 @@ def find_version(*file_paths):
-
-
- install_requires = [
-- 'cached-property >= 1.2.0, < 2',
-- 'docopt >= 0.6.1, < 1',
-- 'PyYAML >= 3.10, < 6',
-- 'requests >= 2.20.0, < 3',
-- 'texttable >= 0.9.0, < 2',
-- 'websocket-client >= 0.32.0, < 1',
-- 'distro >= 1.5.0, < 2',
-- 'docker[ssh] >= 4.3.1, < 5',
-- 'dockerpty >= 0.4.1, < 1',
-- 'jsonschema >= 2.5.1, < 4',
-- 'python-dotenv >= 0.13.0, < 1',
-+ 'cached-property >= 1.2.0',
-+ 'docopt >= 0.6.1',
-+ 'PyYAML >= 3.10',
-+ 'requests >= 2.20.0',
-+ 'texttable >= 0.9.0',
-+ 'websocket-client >= 0.32.0',
-+ 'distro >= 1.5.0',
-+ 'docker[ssh] >= 4.3.1',
-+ 'dockerpty >= 0.4.1',
-+ 'jsonschema >= 2.5.1',
-+ 'python-dotenv >= 0.13.0',
- ]
-
-
- tests_require = [
-- 'ddt >= 1.2.2, < 2',
-- 'pytest < 6',
-+ 'ddt >= 1.2.2',
-+ 'pytest',
- ]
-
-
- if sys.version_info[:2] < (3, 4):
-- tests_require.append('mock >= 1.0.1, < 4')
-+ tests_require.append('mock >= 1.0.1')
-
- extras_require = {
-- ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5, < 4'],
-- ':sys_platform == "win32"': ['colorama >= 0.4, < 1'],
-- 'socks': ['PySocks >= 1.5.6, != 1.5.7, < 2'],
-+ ':python_version < "3.5"': ['backports.ssl_match_hostname >= 3.5'],
-+ ':sys_platform == "win32"': ['colorama >= 0.4'],
-+ 'socks': ['PySocks >= 1.5.6, != 1.5.7'],
- 'tests': tests_require,
- }
-
---
-2.27.0
-
diff --git a/app-emulation/docker-compose/metadata.xml b/app-emulation/docker-compose/metadata.xml
deleted file mode 100644
index e8aeb1e23f1e..000000000000
--- a/app-emulation/docker-compose/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>sping@gentoo.org</email>
- <name>Sebastian Pipping</name>
- </maintainer>
- <upstream>
- <remote-id type="pypi">docker-compose</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/docker-credential-helpers/Manifest b/app-emulation/docker-credential-helpers/Manifest
deleted file mode 100644
index 73b7729ba3f7..000000000000
--- a/app-emulation/docker-credential-helpers/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST docker-credential-helpers-0.6.3.tar.gz 28971 BLAKE2B b50e4de0f3b126e0118f24f845a94be5e932975ab54ad6e0a52129a56109ecafb021f14986569295242cb0af4ea109d8786b8a5ca8481cc48daad14671841432 SHA512 2d15be8df134bff08eef9461348f07cd57c70c15a0ab044de2e69296c400b8c0e16198c90fd064d5ce83037d0bad57520e7524b0832b7a00e69397203dc90d10
diff --git a/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild b/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild
deleted file mode 100644
index 1b1d5979dcfc..000000000000
--- a/app-emulation/docker-credential-helpers/docker-credential-helpers-0.6.3.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="A suite of programs to use native stores to keep Docker credentials safe"
-HOMEPAGE="https://github.com/docker/docker-credential-helpers"
-EGO_PN=github.com/docker/docker-credential-helpers
-
-LICENSE="MIT"
-SLOT="0"
-
-if [[ ${PV} = *9999* ]]; then
- inherit golang-vcs
-else
- KEYWORDS="~amd64 ~arm64"
- EGIT_COMMIT="v${PV}"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- inherit golang-vcs-snapshot
-fi
-inherit golang-build
-
-IUSE="gnome-keyring pass"
-REQUIRED_USE="|| ( gnome-keyring pass )"
-RESTRICT="test"
-
-DEPEND="gnome-keyring? ( app-crypt/libsecret )"
-
-RDEPEND="(
- ${DEPEND}
- pass? ( app-admin/pass )
-)
-"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-src_compile() {
- local -x GOPATH="${WORKDIR}/${P}"
- use gnome-keyring && emake secretservice
- use pass && emake pass
-}
-
-src_install() {
- dobin bin/*
- dodoc CHANGELOG.md MAINTAINERS README.md
-}
-
-pkg_postinst() {
- if use gnome-keyring; then
- elog "For gnome-keyring/kwallet add:\n"
- elog ' "credStore": "secretservice"'"\n"
- fi
- if use pass; then
- elog "For 'pass' add:\n"
- elog ' "credStore": "pass"'"\n"
- fi
- elog "to your ~/.docker/config.json"
-}
diff --git a/app-emulation/docker-credential-helpers/metadata.xml b/app-emulation/docker-credential-helpers/metadata.xml
deleted file mode 100644
index 196e66de1e6e..000000000000
--- a/app-emulation/docker-credential-helpers/metadata.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <longdescription>
- A suite of programs to use native stores to keep Docker credentials
- safe. Currently provides docker-credential-secretservice to use the
- D-Bus secret service APIs, and docker-credential-pass to use the
- pass framework.
- </longdescription>
- <maintainer type="person">
- <email>rkitover@gmail.com</email>
- <name>Rafael Kitover</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
- <use>
- <flag name="gnome-keyring">
- Build secretservice helper which works with gnome-keyring or kwallet
- using D-Bus.
- </flag>
- <flag name="pass">
- Build pass helper for the pass utility.
- </flag>
- </use>
-</pkgmetadata>
diff --git a/app-emulation/docker-gc/docker-gc-9999.ebuild b/app-emulation/docker-gc/docker-gc-9999.ebuild
deleted file mode 100644
index 9324081bc947..000000000000
--- a/app-emulation/docker-gc/docker-gc-9999.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-EGIT_REPO_URI="https://github.com/spotify/docker-gc.git"
-
-inherit git-r3
-
-DESCRIPTION="Docker garbage collection of containers and images"
-HOMEPAGE="https://github.com/spotify/docker-gc/"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-
-RDEPEND="app-emulation/docker"
-
-src_install() {
- dosbin docker-gc
- dodoc README.md
-}
diff --git a/app-emulation/docker-gc/metadata.xml b/app-emulation/docker-gc/metadata.xml
deleted file mode 100644
index 444c94200f5c..000000000000
--- a/app-emulation/docker-gc/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <!-- maintainer-needed -->
- <upstream>
- <remote-id type="github">spotify/docker-gc</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild b/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild
index 20d5054f6d83..1a254c9e6627 100644
--- a/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild
+++ b/app-emulation/docker-machine-kvm/docker-machine-kvm-0.10.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -26,6 +26,12 @@ RDEPEND="${COMMON_DEPEND}"
SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
${EGO_VENDOR_URI}"
+src_prepare() {
+ # go build -i is no longer supported #893080
+ sed -e 's: -i::' -i src/github.com/dhiltgen/docker-machine-kvm/cmd/docker-machine-driver-kvm/Makefile || die
+ default
+}
+
src_compile() {
export GOPATH=${S}
cd "${S}"/src/${EGO_PN}/cmd/${PN/kvm/driver-kvm} || die
diff --git a/app-emulation/docker-machine-kvm/metadata.xml b/app-emulation/docker-machine-kvm/metadata.xml
index 92a59d8fc1b9..c489cf4ce6b1 100644
--- a/app-emulation/docker-machine-kvm/metadata.xml
+++ b/app-emulation/docker-machine-kvm/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>zmedico@gentoo.org</email>
diff --git a/app-emulation/docker-machine/metadata.xml b/app-emulation/docker-machine/metadata.xml
index 8549b7fc81f3..0d7c55025f93 100644
--- a/app-emulation/docker-machine/metadata.xml
+++ b/app-emulation/docker-machine/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>zmedico@gentoo.org</email>
diff --git a/app-emulation/docker-proxy/Manifest b/app-emulation/docker-proxy/Manifest
deleted file mode 100644
index aea9f8853f1d..000000000000
--- a/app-emulation/docker-proxy/Manifest
+++ /dev/null
@@ -1,5 +0,0 @@
-DIST docker-proxy-0.8.0_p20190513.tar.gz 2705298 BLAKE2B ff897b18b8265b3d718caf7afaf10f7b8eeed9be0cc9c73b02d5c42c5c9ddd1be32cf7d1259ce26d56219cda57707e25e154e50cfa2cc80e823a4b924da4e5e0 SHA512 0a833510df0029999bfc05c23445a58a8b2ff165c0fb2fd5c411498d1e89b5b1990d2778b32346dd2b6d61c166ff707c6277a5d1937db6345c77d3825eb59875
-DIST docker-proxy-0.8.0_p20190604.tar.gz 2721379 BLAKE2B edc36302ca4b2be297505a5bfd8acd45f17bc752e88bcaa72f34e2d972230d92b9bfe3d0dccbb2f1e04718fb1adc95631fc0f533ca5572bdcfc468d843ce480e SHA512 dea31fd82ab2d445fbd39fe15550a91f7e489a06f6dedd32ea1925f7e9a7971952d26b874f9687249609a0d204ea35da357e0a957b819df2026a0cf8109cb354
-DIST docker-proxy-0.8.0_p20190807.tar.gz 3377742 BLAKE2B c1ccc76dd9157c715d09db27b6800a86b0dc7532089d87eb78a6e656f3b42d4c4824c34e972196038f915e3b08b12197f305fd1a86e3fe75fec621ed49e5e71a SHA512 ffe18805dc6b85f8b058e342cde2baedf2497465298daa444fecba8222885606c85242ca59016bc32a5c2c0164c1c980b92ed3d5f82e011a7e9871a67d67b947
-DIST docker-proxy-0.8.0_p20191011.tar.gz 3377526 BLAKE2B 10dd1817ffa65dc75855daba5efbe6dc7c8a048e8868354d2ad7c2cc4e99dcedb95ba4c5e37a54d60e4bd89c5f5bcac5fde4db8d21b7cc903fd42e4224a084e0 SHA512 a21b9b5883056cf75dda9f229ff199e6daad63d94dcf75ebe3e21204bdeef89c41ddd5730bb6bb4387af9a84a8a81e7adfaf726b2fdd299d8aa9d6d35a096ce2
-DIST docker-proxy-0.8.0_p20200617.tar.gz 3386043 BLAKE2B b32c3b6ef97f656414fdf026307f4054d4dd11cc91dc44a235eb5e5dc9f5f3da0cc4b001eaa28387b79f8f79f0124e6c01b8aab56d5c9e37d777e21cc186cb9c SHA512 fe8644611e975c051ee6e7ad4871624fb45862d9b4a2fd62ea4283e76ad9804d91d585e2165915b09356f11f9dfb31c40dd9ce6a66d63c5032c8c62354960538
diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild
deleted file mode 100644
index 1dea70405311..000000000000
--- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190513.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/docker/libnetwork"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- EGIT_COMMIT="e7933d41e7b206756115aa9df5e0599fc5169742"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="Docker container networking"
-HOMEPAGE="https://github.com/docker/libnetwork"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test" # needs dockerd
-
-src_compile() {
- GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die
-}
-
-src_install() {
- dodoc ROADMAP.md README.md CHANGELOG.md
- dobin bin/docker-proxy
-}
diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild
deleted file mode 100644
index 4400a3255a11..000000000000
--- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190604.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/docker/libnetwork"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- EGIT_COMMIT="fc5a7d91d54cc98f64fc28f9e288b46a0bee756c"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="Docker container networking"
-HOMEPAGE="https://github.com/docker/libnetwork"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test" # needs dockerd
-
-src_compile() {
- GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die
-}
-
-src_install() {
- dodoc README.md CHANGELOG.md
- dobin bin/docker-proxy
-}
diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild
deleted file mode 100644
index 1c5ef257e177..000000000000
--- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20190807.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/docker/libnetwork"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- EGIT_COMMIT="45c710223c5fbf04dc3028b9a90b51892e36ca7f"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~ppc64"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="Docker container networking"
-HOMEPAGE="https://github.com/docker/libnetwork"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test" # needs dockerd
-
-src_compile() {
- GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die
-}
-
-src_install() {
- dodoc README.md CHANGELOG.md
- dobin bin/docker-proxy
-}
diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild
deleted file mode 100644
index 5bab21c33ef2..000000000000
--- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20191011.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/docker/libnetwork"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- EGIT_COMMIT="3eb39382bfa6a3c42f83674ab080ae13b0e34e5d"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="Docker container networking"
-HOMEPAGE="https://github.com/docker/libnetwork"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-RESTRICT="test" # needs dockerd
-
-src_compile() {
- GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die
-}
-
-src_install() {
- dodoc README.md CHANGELOG.md
- dobin bin/docker-proxy
-}
diff --git a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild b/app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild
deleted file mode 100644
index 8720f1704d63..000000000000
--- a/app-emulation/docker-proxy/docker-proxy-0.8.0_p20200617.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-EGO_PN="github.com/docker/libnetwork"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-vcs
-else
- EGIT_COMMIT="026aabaa659832804b01754aaadd2c0f420c68b6"
- SRC_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm arm64 ppc64 ~x86"
- inherit golang-vcs-snapshot
-fi
-
-DESCRIPTION="Docker container networking"
-HOMEPAGE="https://github.com/docker/libnetwork"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE=""
-
-S=${WORKDIR}/${P}/src/${EGO_PN}
-
-# needs dockerd
-RESTRICT="test"
-
-src_compile() {
- GOPATH="${WORKDIR}/${P}" go build -o "bin/docker-proxy" ./cmd/proxy || die
-}
-
-src_install() {
- dodoc README.md CHANGELOG.md
- dobin bin/docker-proxy
-}
diff --git a/app-emulation/docker-proxy/metadata.xml b/app-emulation/docker-proxy/metadata.xml
deleted file mode 100644
index f40cbc947f07..000000000000
--- a/app-emulation/docker-proxy/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>tianon@dockerproject.org</email>
- <name>Tianon</name>
- </maintainer>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <upstream>
- <remote-id type="github">docker/libnetwork</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/docker-registry/Manifest b/app-emulation/docker-registry/Manifest
deleted file mode 100644
index c13a696e584b..000000000000
--- a/app-emulation/docker-registry/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST docker-registry-2.7.1.tar.gz 1996699 BLAKE2B 2e22db69f476be5a4688f5b3d6b41fbbf71460351543ae849f707dd5b3d56624f674815a25214002886b057f0859f75fd197bb275a7b3cc8a7787422f716ad0e SHA512 f6baf0e7aa96ebe828c628f7dfd84ee899331c3c1bdab86662aef595b092702b6d9b2c9be766a6de6d153ff4ca55d85c5fd8785a0968f285f56a32a50092c754
diff --git a/app-emulation/docker-registry/docker-registry-2.7.1.ebuild b/app-emulation/docker-registry/docker-registry-2.7.1.ebuild
deleted file mode 100644
index 76e7bd12811a..000000000000
--- a/app-emulation/docker-registry/docker-registry-2.7.1.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-vcs-snapshot systemd user
-
-KEYWORDS="amd64 ~arm64"
-EGO_PN="github.com/docker/distribution"
-EGIT_COMMIT="2461543d988979529609e8cb6fca9ca190dc48da"
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Docker Registry 2.0"
-HOMEPAGE="https://github.com/docker/distribution"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 MIT ZLIB"
-SLOT="0"
-IUSE=""
-SVCNAME=registry
-
-pkg_setup() {
- enewgroup ${SVCNAME}
- enewuser ${SVCNAME} -1 -1 /dev/null ${SVCNAME}
-}
-
-src_prepare() {
- default
- pushd src/${EGO_PN} || die
- eapply "${FILESDIR}"/${PN}-2.7.0-notification-metrics.patch
- sed -i -e "s/git describe.*/echo ${PV})/"\
- -e "s/git rev-parse.*/echo ${EGIT_COMMIT})/"\
- -e "s/-s -w/-w/" Makefile || die
- popd || die
-}
-
-src_compile() {
- export -n GOCACHE XDG_CACHE_HOME #681072
- GOPATH="${S}" GO_BUILD_FLAGS="-v" emake -C src/${EGO_PN} binaries
-}
-
-src_install() {
- exeinto /usr/libexec/${PN}
- doexe src/${EGO_PN}/bin/*
- insinto /etc/docker/registry
- newins src/${EGO_PN}/cmd/registry/config-example.yml config.yml.example
- newinitd "${FILESDIR}/${SVCNAME}.initd" "${SVCNAME}"
- newconfd "${FILESDIR}/${SVCNAME}.confd" "${SVCNAME}"
- systemd_dounit "${FILESDIR}/${SVCNAME}.service"
- keepdir /var/{lib,log}/${SVCNAME}
- fowners ${SVCNAME}:${SVCNAME} /var/{lib,log}/${SVCNAME}
- insinto /etc/logrotate.d
- newins "${FILESDIR}/${SVCNAME}.logrotated" "${SVCNAME}"
-}
diff --git a/app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch b/app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch
deleted file mode 100644
index 8adf364ce164..000000000000
--- a/app-emulation/docker-registry/files/docker-registry-2.7.0-notification-metrics.patch
+++ /dev/null
@@ -1,398 +0,0 @@
-From 7b2292ee20c5d49053cc5262dfbc99ce121b9b74 Mon Sep 17 00:00:00 2001
-From: tifayuki <tifayuki@gmail.com>
-Date: Tue, 13 Feb 2018 13:30:56 -0800
-Subject: [PATCH 1/4] Add notification metrics
-
-It adds notification related prometheus metrics, including:
- - total count for events/success/failure/error
- - total count for notification per each status code
- - gauge of the pending notification queue
-
-Signed-off-by: tifayuki <tifayuki@gmail.com>
----
- metrics/prometheus.go | 3 +++
- notifications/metrics.go | 28 ++++++++++++++++++++++++++++
- 2 files changed, 31 insertions(+)
-
-diff --git a/metrics/prometheus.go b/metrics/prometheus.go
-index b5a532144..91b32b23d 100644
---- a/metrics/prometheus.go
-+++ b/metrics/prometheus.go
-@@ -10,4 +10,7 @@ const (
- var (
- // StorageNamespace is the prometheus namespace of blob/cache related operations
- StorageNamespace = metrics.NewNamespace(NamespacePrefix, "storage", nil)
-+
-+ // NotificationsNamespace is the prometheus namespace of notification related metrics
-+ NotificationsNamespace = metrics.NewNamespace(NamespacePrefix, "notifications", nil)
- )
-diff --git a/notifications/metrics.go b/notifications/metrics.go
-index a20af1687..69960e9cb 100644
---- a/notifications/metrics.go
-+++ b/notifications/metrics.go
-@@ -5,6 +5,18 @@ import (
- "fmt"
- "net/http"
- "sync"
-+
-+ prometheus "github.com/docker/distribution/metrics"
-+ "github.com/docker/go-metrics"
-+)
-+
-+var (
-+ // eventsCounter counts total events of incoming, success, failure, and errors
-+ eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type")
-+ // pendingGauge measures the pending queue size
-+ pendingGauge = prometheus.NotificationsNamespace.NewGauge("pending", "The gauge of pending events in queue", metrics.Total)
-+ // statusCounter counts the total notification call per each status code
-+ statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code")
- )
-
- // EndpointMetrics track various actions taken by the endpoint, typically by
-@@ -61,6 +73,9 @@ func (emsl *endpointMetricsHTTPStatusListener) success(status int, events ...Eve
- defer emsl.safeMetrics.Unlock()
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Successes += len(events)
-+
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-+ eventsCounter.WithValues("Successes").Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Event) {
-@@ -68,12 +83,17 @@ func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Eve
- defer emsl.safeMetrics.Unlock()
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Failures += len(events)
-+
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-+ eventsCounter.WithValues("Failures").Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) {
- emsl.safeMetrics.Lock()
- defer emsl.safeMetrics.Unlock()
- emsl.Errors += len(events)
-+
-+ eventsCounter.WithValues("Errors").Inc(1)
- }
-
- // endpointMetricsEventQueueListener maintains the incoming events counter and
-@@ -87,12 +107,17 @@ func (eqc *endpointMetricsEventQueueListener) ingress(events ...Event) {
- defer eqc.Unlock()
- eqc.Events += len(events)
- eqc.Pending += len(events)
-+
-+ eventsCounter.WithValues("Events").Inc()
-+ pendingGauge.Inc(1)
- }
-
- func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) {
- eqc.Lock()
- defer eqc.Unlock()
- eqc.Pending -= len(events)
-+
-+ pendingGauge.Dec(1)
- }
-
- // endpoints is global registry of endpoints used to report metrics to expvar
-@@ -149,4 +174,7 @@ func init() {
- }))
-
- registry.(*expvar.Map).Set("notifications", &notifications)
-+
-+ // register prometheus metrics
-+ metrics.Register(prometheus.NotificationsNamespace)
- }
-
-From 4497e40eda1e0024f055c09ab480b7816a1147b1 Mon Sep 17 00:00:00 2001
-From: Honglin Feng <tifayuki@gmail.com>
-Date: Thu, 11 Oct 2018 21:39:02 +0800
-Subject: [PATCH 2/4] add label to the metrics
-
-Signed-off-by: Honglin Feng <tifayuki@gmail.com>
----
- notifications/endpoint.go | 2 +-
- notifications/http_test.go | 2 +-
- notifications/metrics.go | 26 ++++++++++++++------------
- notifications/sinks_test.go | 2 +-
- 4 files changed, 17 insertions(+), 15 deletions(-)
-
-diff --git a/notifications/endpoint.go b/notifications/endpoint.go
-index a8a52d0c9..854f1dd6c 100644
---- a/notifications/endpoint.go
-+++ b/notifications/endpoint.go
-@@ -58,7 +58,7 @@ func NewEndpoint(name, url string, config EndpointConfig) *Endpoint {
- endpoint.url = url
- endpoint.EndpointConfig = config
- endpoint.defaults()
-- endpoint.metrics = newSafeMetrics()
-+ endpoint.metrics = newSafeMetrics(name)
-
- // Configures the inmemory queue, retry, http pipeline.
- endpoint.Sink = newHTTPSink(
-diff --git a/notifications/http_test.go b/notifications/http_test.go
-index de47f789e..b7845cf95 100644
---- a/notifications/http_test.go
-+++ b/notifications/http_test.go
-@@ -63,7 +63,7 @@ func TestHTTPSink(t *testing.T) {
- })
- server := httptest.NewTLSServer(serverHandler)
-
-- metrics := newSafeMetrics()
-+ metrics := newSafeMetrics("")
- sink := newHTTPSink(server.URL, 0, nil, nil,
- &endpointMetricsHTTPStatusListener{safeMetrics: metrics})
-
-diff --git a/notifications/metrics.go b/notifications/metrics.go
-index 69960e9cb..4464edd8f 100644
---- a/notifications/metrics.go
-+++ b/notifications/metrics.go
-@@ -12,11 +12,11 @@ import (
-
- var (
- // eventsCounter counts total events of incoming, success, failure, and errors
-- eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type")
-+ eventsCounter = prometheus.NotificationsNamespace.NewLabeledCounter("events", "The number of total events", "type", "to")
- // pendingGauge measures the pending queue size
-- pendingGauge = prometheus.NotificationsNamespace.NewGauge("pending", "The gauge of pending events in queue", metrics.Total)
-+ pendingGauge = prometheus.NotificationsNamespace.NewLabeledGauge("pending", "The gauge of pending events in queue", metrics.Total, "to")
- // statusCounter counts the total notification call per each status code
-- statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code")
-+ statusCounter = prometheus.NotificationsNamespace.NewLabeledCounter("status", "The number of status code", "code", "to")
- )
-
- // EndpointMetrics track various actions taken by the endpoint, typically by
-@@ -34,14 +34,16 @@ type EndpointMetrics struct {
- // safeMetrics guards the metrics implementation with a lock and provides a
- // safe update function.
- type safeMetrics struct {
-+ EndpointName string
- EndpointMetrics
- sync.Mutex // protects statuses map
- }
-
- // newSafeMetrics returns safeMetrics with map allocated.
--func newSafeMetrics() *safeMetrics {
-+func newSafeMetrics(name string) *safeMetrics {
- var sm safeMetrics
- sm.Statuses = make(map[string]int)
-+ sm.EndpointName = name
- return &sm
- }
-
-@@ -74,8 +76,8 @@ func (emsl *endpointMetricsHTTPStatusListener) success(status int, events ...Eve
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Successes += len(events)
-
-- statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-- eventsCounter.WithValues("Successes").Inc(1)
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status)), emsl.EndpointName).Inc(1)
-+ eventsCounter.WithValues("Successes", emsl.EndpointName).Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Event) {
-@@ -84,8 +86,8 @@ func (emsl *endpointMetricsHTTPStatusListener) failure(status int, events ...Eve
- emsl.Statuses[fmt.Sprintf("%d %s", status, http.StatusText(status))] += len(events)
- emsl.Failures += len(events)
-
-- statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status))).Inc(1)
-- eventsCounter.WithValues("Failures").Inc(1)
-+ statusCounter.WithValues(fmt.Sprintf("%d %s", status, http.StatusText(status)), emsl.EndpointName).Inc(1)
-+ eventsCounter.WithValues("Failures", emsl.EndpointName).Inc(1)
- }
-
- func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) {
-@@ -93,7 +95,7 @@ func (emsl *endpointMetricsHTTPStatusListener) err(err error, events ...Event) {
- defer emsl.safeMetrics.Unlock()
- emsl.Errors += len(events)
-
-- eventsCounter.WithValues("Errors").Inc(1)
-+ eventsCounter.WithValues("Errors", emsl.EndpointName).Inc(1)
- }
-
- // endpointMetricsEventQueueListener maintains the incoming events counter and
-@@ -108,8 +110,8 @@ func (eqc *endpointMetricsEventQueueListener) ingress(events ...Event) {
- eqc.Events += len(events)
- eqc.Pending += len(events)
-
-- eventsCounter.WithValues("Events").Inc()
-- pendingGauge.Inc(1)
-+ eventsCounter.WithValues("Events", eqc.EndpointName).Inc()
-+ pendingGauge.WithValues(eqc.EndpointName).Inc(1)
- }
-
- func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) {
-@@ -117,7 +119,7 @@ func (eqc *endpointMetricsEventQueueListener) egress(events ...Event) {
- defer eqc.Unlock()
- eqc.Pending -= len(events)
-
-- pendingGauge.Dec(1)
-+ pendingGauge.WithValues(eqc.EndpointName).Dec(1)
- }
-
- // endpoints is global registry of endpoints used to report metrics to expvar
-diff --git a/notifications/sinks_test.go b/notifications/sinks_test.go
-index 06f88b2c9..4a69486b5 100644
---- a/notifications/sinks_test.go
-+++ b/notifications/sinks_test.go
-@@ -66,7 +66,7 @@ func TestBroadcaster(t *testing.T) {
- func TestEventQueue(t *testing.T) {
- const nevents = 1000
- var ts testSink
-- metrics := newSafeMetrics()
-+ metrics := newSafeMetrics("")
- eq := newEventQueue(
- // delayed sync simulates destination slower than channel comms
- &delayedSink{
-
-From 73e4232b5171c2988b0daeea517aa07386e7945d Mon Sep 17 00:00:00 2001
-From: Honglin Feng <tifayuki@gmail.com>
-Date: Mon, 15 Oct 2018 19:50:38 +0800
-Subject: [PATCH 3/4] run go fmt
-
-Signed-off-by: Honglin Feng <tifayuki@gmail.com>
----
- registry/storage/driver/s3-aws/s3.go | 10 +++++-----
- registry/storage/linkedblobstore.go | 16 ++++++++--------
- registry/storage/linkedblobstore_test.go | 4 ++--
- 3 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go
-index 800435d01..9cd87dbab 100644
---- a/registry/storage/driver/s3-aws/s3.go
-+++ b/registry/storage/driver/s3-aws/s3.go
-@@ -476,11 +476,11 @@ func New(params DriverParameters) (*Driver, error) {
- // }
-
- d := &driver{
-- S3: s3obj,
-- Bucket: params.Bucket,
-- ChunkSize: params.ChunkSize,
-- Encrypt: params.Encrypt,
-- KeyID: params.KeyID,
-+ S3: s3obj,
-+ Bucket: params.Bucket,
-+ ChunkSize: params.ChunkSize,
-+ Encrypt: params.Encrypt,
-+ KeyID: params.KeyID,
- MultipartCopyChunkSize: params.MultipartCopyChunkSize,
- MultipartCopyMaxConcurrency: params.MultipartCopyMaxConcurrency,
- MultipartCopyThresholdSize: params.MultipartCopyThresholdSize,
-diff --git a/registry/storage/linkedblobstore.go b/registry/storage/linkedblobstore.go
-index de591c8a5..3fb1da26f 100644
---- a/registry/storage/linkedblobstore.go
-+++ b/registry/storage/linkedblobstore.go
-@@ -312,14 +312,14 @@ func (lbs *linkedBlobStore) newBlobUpload(ctx context.Context, uuid, path string
- }
-
- bw := &blobWriter{
-- ctx: ctx,
-- blobStore: lbs,
-- id: uuid,
-- startedAt: startedAt,
-- digester: digest.Canonical.Digester(),
-- fileWriter: fw,
-- driver: lbs.driver,
-- path: path,
-+ ctx: ctx,
-+ blobStore: lbs,
-+ id: uuid,
-+ startedAt: startedAt,
-+ digester: digest.Canonical.Digester(),
-+ fileWriter: fw,
-+ driver: lbs.driver,
-+ path: path,
- resumableDigestEnabled: lbs.resumableDigestEnabled,
- }
-
-diff --git a/registry/storage/linkedblobstore_test.go b/registry/storage/linkedblobstore_test.go
-index e0ffd2796..85376f715 100644
---- a/registry/storage/linkedblobstore_test.go
-+++ b/registry/storage/linkedblobstore_test.go
-@@ -162,8 +162,8 @@ type mockBlobDescriptorServiceFactory struct {
- func (f *mockBlobDescriptorServiceFactory) BlobAccessController(svc distribution.BlobDescriptorService) distribution.BlobDescriptorService {
- return &mockBlobDescriptorService{
- BlobDescriptorService: svc,
-- t: f.t,
-- stats: f.stats,
-+ t: f.t,
-+ stats: f.stats,
- }
- }
-
-
-From 5c66b577b027e3b314680f245be4213a002fcee0 Mon Sep 17 00:00:00 2001
-From: Honglin Feng <tifayuki@gmail.com>
-Date: Mon, 15 Oct 2018 20:18:36 +0800
-Subject: [PATCH 4/4] run go fmt and goimports
-
-Signed-off-by: Honglin Feng <tifayuki@gmail.com>
----
- registry/storage/driver/s3-aws/s3.go | 10 +++++-----
- registry/storage/linkedblobstore.go | 16 ++++++++--------
- registry/storage/linkedblobstore_test.go | 4 ++--
- 3 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/registry/storage/driver/s3-aws/s3.go b/registry/storage/driver/s3-aws/s3.go
-index 9cd87dbab..800435d01 100644
---- a/registry/storage/driver/s3-aws/s3.go
-+++ b/registry/storage/driver/s3-aws/s3.go
-@@ -476,11 +476,11 @@ func New(params DriverParameters) (*Driver, error) {
- // }
-
- d := &driver{
-- S3: s3obj,
-- Bucket: params.Bucket,
-- ChunkSize: params.ChunkSize,
-- Encrypt: params.Encrypt,
-- KeyID: params.KeyID,
-+ S3: s3obj,
-+ Bucket: params.Bucket,
-+ ChunkSize: params.ChunkSize,
-+ Encrypt: params.Encrypt,
-+ KeyID: params.KeyID,
- MultipartCopyChunkSize: params.MultipartCopyChunkSize,
- MultipartCopyMaxConcurrency: params.MultipartCopyMaxConcurrency,
- MultipartCopyThresholdSize: params.MultipartCopyThresholdSize,
-diff --git a/registry/storage/linkedblobstore.go b/registry/storage/linkedblobstore.go
-index 3fb1da26f..de591c8a5 100644
---- a/registry/storage/linkedblobstore.go
-+++ b/registry/storage/linkedblobstore.go
-@@ -312,14 +312,14 @@ func (lbs *linkedBlobStore) newBlobUpload(ctx context.Context, uuid, path string
- }
-
- bw := &blobWriter{
-- ctx: ctx,
-- blobStore: lbs,
-- id: uuid,
-- startedAt: startedAt,
-- digester: digest.Canonical.Digester(),
-- fileWriter: fw,
-- driver: lbs.driver,
-- path: path,
-+ ctx: ctx,
-+ blobStore: lbs,
-+ id: uuid,
-+ startedAt: startedAt,
-+ digester: digest.Canonical.Digester(),
-+ fileWriter: fw,
-+ driver: lbs.driver,
-+ path: path,
- resumableDigestEnabled: lbs.resumableDigestEnabled,
- }
-
-diff --git a/registry/storage/linkedblobstore_test.go b/registry/storage/linkedblobstore_test.go
-index 85376f715..e0ffd2796 100644
---- a/registry/storage/linkedblobstore_test.go
-+++ b/registry/storage/linkedblobstore_test.go
-@@ -162,8 +162,8 @@ type mockBlobDescriptorServiceFactory struct {
- func (f *mockBlobDescriptorServiceFactory) BlobAccessController(svc distribution.BlobDescriptorService) distribution.BlobDescriptorService {
- return &mockBlobDescriptorService{
- BlobDescriptorService: svc,
-- t: f.t,
-- stats: f.stats,
-+ t: f.t,
-+ stats: f.stats,
- }
- }
-
diff --git a/app-emulation/docker-registry/files/registry.confd b/app-emulation/docker-registry/files/registry.confd
deleted file mode 100644
index bfa97f127ef1..000000000000
--- a/app-emulation/docker-registry/files/registry.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# arguments for docker-registry
-command_args="serve /etc/docker/registry/config.yml"
diff --git a/app-emulation/docker-registry/files/registry.initd b/app-emulation/docker-registry/files/registry.initd
deleted file mode 100644
index b81303c624d1..000000000000
--- a/app-emulation/docker-registry/files/registry.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2016-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Docker Registry 2.0"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-${RC_SVCNAME}}
-group=${group:-${RC_SVCNAME}}
-
-command="/usr/libexec/docker-${RC_SVCNAME}/${RC_SVCNAME}"
-command_args="${command_args:-serve /etc/docker/registry/config.yml}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
- --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-depend() {
- need net
-}
diff --git a/app-emulation/docker-registry/files/registry.logrotated b/app-emulation/docker-registry/files/registry.logrotated
deleted file mode 100644
index 3cb63f949a08..000000000000
--- a/app-emulation/docker-registry/files/registry.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/registry/registry.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/app-emulation/docker-registry/files/registry.service b/app-emulation/docker-registry/files/registry.service
deleted file mode 100644
index 14ff5f9c0b77..000000000000
--- a/app-emulation/docker-registry/files/registry.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Docker Registry 2.0
-Requires=network-online.target
-After=network-online.target
-
-[Service]
-User=registry
-PrivateDevices=Yes
-Environment="DOCKER_REGISTRY_ARGS=serve /etc/docker/registry/config.yml"
-ExecStart=/usr/libexec/docker-registry/registry $DOCKER_REGISTRY_ARGS
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-emulation/docker-registry/metadata.xml b/app-emulation/docker-registry/metadata.xml
deleted file mode 100644
index 4f66ba32a890..000000000000
--- a/app-emulation/docker-registry/metadata.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- </maintainer>
- <upstream>
- <remote-id type="github">docker/distribution</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/docker-swarm/Manifest b/app-emulation/docker-swarm/Manifest
deleted file mode 100644
index e67d6adbf65b..000000000000
--- a/app-emulation/docker-swarm/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST docker-swarm-1.2.9.tar.gz 1532493 BLAKE2B 243a3cb6d2e9f719d81947429c6616e93cf1b08187685922ad5daf732e61db12bd626fa26f30174af7e779c8ba45ecce7d2cfb33835ef985bdd57657e30e2228 SHA512 cc0e0e27d0ed4845abd99d1554630cc8e2ab0645d40a76358a83b2ea6d1bc5287dbf5d1aefdd2eb4302aeef3894725e75cae3f5da2353b045492a4357631daa2
diff --git a/app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild b/app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild
deleted file mode 100644
index 5ca267108edf..000000000000
--- a/app-emulation/docker-swarm/docker-swarm-1.2.9.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit go-module
-
-KEYWORDS="~amd64"
-EGO_PN=github.com/docker/swarm
-EGIT_COMMIT="527a849cc6b8297690f478905083fc77951da2a7"
-MY_PN=classicswarm
-SRC_URI="https://github.com/docker/classicswarm/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-DESCRIPTION="Swarm Classic: a container clustering system"
-HOMEPAGE="https://docs.docker.com/swarm"
-LICENSE="Apache-2.0 CC-BY-SA-4.0 BSD BSD-2 ISC MIT MPL-2.0 WTFPL-2"
-SLOT="0"
-IUSE=""
-RESTRICT="test"
-
-S="${WORKDIR}/${MY_PN}-${PV}"
-
-src_prepare() {
- # It would require internet access to run `go mod vendor`, so
- # generate approximate go.mod and vendor/modules.txt from the
- # content of vendor.conf. Use a dummy vendor_version that is
- # good enough for go to recognize as a valid version.
- rm -f go.mod vendor/modules.txt || die
- local x vendor_version=v1.0.0
- printf -- 'module %s\n' "${EGO_PN}" >> go.mod || die
- printf -- 'go 1.14\n' >> go.mod || die
- printf -- 'require (\n' >> go.mod || die
- while read -r x; do
- printf -- '\t%s %s\n' "${x}" "${vendor_version}" >> go.mod || die
- printf -- '# %s %s\n' "${x}" "${vendor_version}" >> vendor/modules.txt || die
- printf -- '## explicit\n' >> vendor/modules.txt || die
- printf -- '%s\n' "${x}" >> vendor/modules.txt || die
- done < <(grep -Eo "^[^#[:space:]]+" vendor.conf)
- printf -- ')\n' >> go.mod || die
- default
-}
-
-src_compile() {
- GOBIN="${S}/bin" \
- go install -v -work -x -mod=vendor -x \
- -ldflags "-w -X github.com/docker/swarm/version.GITCOMMIT=${EGIT_COMMIT} \
- -X github.com/docker/swarm/version.BUILDTIME=$(date -u +%FT%T%z)" \
- ./... || die
-}
-
-src_install() {
- dobin bin/swarm
- dosym swarm /usr/bin/docker-swarm
- dodoc CHANGELOG.md CONTRIBUTING.md logo.png README.md
-}
diff --git a/app-emulation/docker-swarm/metadata.xml b/app-emulation/docker-swarm/metadata.xml
deleted file mode 100644
index 127ef4728e20..000000000000
--- a/app-emulation/docker-swarm/metadata.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- </maintainer>
- <upstream>
- <remote-id type="github">docker/swarm</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/docker/Manifest b/app-emulation/docker/Manifest
deleted file mode 100644
index 7ae436f7bd75..000000000000
--- a/app-emulation/docker/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST docker-19.03.12.tar.gz 18218138 BLAKE2B a018a1677d36c01a9eb8d9c597e6b264304a742929bf7f8bb3c12b03c75748bc6f3313f8e7c293323bc3ae013b5555044f7cf1ad7a8750a5794418bee05e405a SHA512 6ede7e0c5494882d88dae5b4ae45049937dfc65b9d655988ae4c0d6f9759bcac8799251f37a3e4ce49cdfbb04e31f9a6a05d131fb5005b382d2306ca0d5fcfa3
-DIST docker-19.03.13.tar.gz 18242693 BLAKE2B c19afed62694274298b42fc9af3b36c4cc6429b40f7e5447a996b87636a0d2e916476875652e20abd7aeab4e5e0e1cf887a04dcade1de03ded549fc36d911ac4 SHA512 5f34a14ef0b36a309d4a08926ac482ca82d24cdd873aa359c5ba7c65473cbb2e987fe615c38c1bc1c50135284da78a7eb98a8a0106d7d073aeda0cd8f1c31873
diff --git a/app-emulation/docker/docker-19.03.12.ebuild b/app-emulation/docker/docker-19.03.12.ebuild
deleted file mode 100644
index 319ca92ef6cf..000000000000
--- a/app-emulation/docker/docker-19.03.12.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_PN="github.com/docker/docker-ce"
-
-if [[ ${PV} = *9999* ]]; then
- # Docker cannot be fetched via "go get", thanks to autogenerated code
- EGIT_REPO_URI="https://${EGO_PN}.git"
- EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${EGO_PN}"
- inherit git-r3
-else
- DOCKER_GITCOMMIT=48a66213fe
- MY_PV=${PV/_/-}
- SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86"
- [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
- inherit golang-vcs-snapshot
-fi
-inherit bash-completion-r1 golang-base linux-info systemd udev
-
-DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
-HOMEPAGE="https://www.docker.com/"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor aufs btrfs +container-init device-mapper hardened +overlay seccomp"
-
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
-COMMON_DEPEND="
- acct-group/docker
- >=dev-db/sqlite-3.7.9:3
- device-mapper? (
- >=sys-fs/lvm2-2.02.89[thin]
- )
- seccomp? ( >=sys-libs/libseccomp-2.2.1 )
- apparmor? ( sys-libs/libapparmor )
-"
-
-DEPEND="
- ${COMMON_DEPEND}
-
- >=dev-lang/go-1.13.12
- dev-go/go-md2man
-
- btrfs? (
- >=sys-fs/btrfs-progs-3.16.1
- )
-"
-
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#optional-dependencies
-RDEPEND="
- ${COMMON_DEPEND}
- !sys-apps/systemd[-cgroup-hybrid(+)]
- >=net-firewall/iptables-1.4
- sys-process/procps
- >=dev-vcs/git-1.7
- >=app-arch/xz-utils-4.9
- dev-libs/libltdl
- ~app-emulation/containerd-1.2.13
- ~app-emulation/runc-1.0.0_rc10[apparmor?,seccomp?]
- ~app-emulation/docker-proxy-0.8.0_p20191011
- container-init? ( >=sys-process/tini-0.18.0[static] )
-"
-
-RESTRICT="installsources strip"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-# see "contrib/check-config.sh" from upstream's sources
-CONFIG_CHECK="
- ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
- ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
- ~KEYS
- ~VETH ~BRIDGE ~BRIDGE_NETFILTER
- ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE
- ~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK ~NETFILTER_XT_MATCH_IPVS
- ~IP_NF_NAT ~NF_NAT
- ~POSIX_MQUEUE
-
- ~USER_NS
- ~SECCOMP
- ~CGROUP_PIDS
- ~MEMCG_SWAP
-
- ~BLK_CGROUP ~BLK_DEV_THROTTLING
- ~CGROUP_PERF
- ~CGROUP_HUGETLB
- ~NET_CLS_CGROUP
- ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
- ~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR
-
- ~VXLAN
- ~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH ~XFRM_ALGO ~XFRM_USER
- ~IPVLAN
- ~MACVLAN ~DUMMY
-"
-
-ERROR_KEYS="CONFIG_KEYS: is mandatory"
-ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers"
-ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering"
-
-ERROR_BLK_CGROUP="CONFIG_BLK_CGROUP: is optional for container statistics gathering"
-ERROR_IOSCHED_CFQ="CONFIG_IOSCHED_CFQ: is optional for container statistics gathering"
-ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
-ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
-ERROR_XFRM_ALGO="CONFIG_XFRM_ALGO: is optional for secure networks"
-ERROR_XFRM_USER="CONFIG_XFRM_USER: is optional for secure networks"
-
-pkg_setup() {
- if kernel_is lt 3 10; then
- ewarn ""
- ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported."
- ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies"
- fi
-
- if kernel_is le 3 18; then
- CONFIG_CHECK+="
- ~RESOURCE_COUNTERS
- "
- fi
-
- if kernel_is le 3 13; then
- CONFIG_CHECK+="
- ~NETPRIO_CGROUP
- "
- else
- CONFIG_CHECK+="
- ~CGROUP_NET_PRIO
- "
- fi
-
- if kernel_is lt 4 5; then
- CONFIG_CHECK+="
- ~MEMCG_KMEM
- "
- ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
- fi
-
- if kernel_is lt 4 7; then
- CONFIG_CHECK+="
- ~DEVPTS_MULTIPLE_INSTANCES
- "
- fi
-
- if kernel_is lt 5 1; then
- CONFIG_CHECK+="
- ~NF_NAT_IPV4
- ~IOSCHED_CFQ
- ~CFQ_GROUP_IOSCHED
- "
- fi
-
- if kernel_is lt 5 2; then
- CONFIG_CHECK+="
- ~NF_NAT_NEEDED
- "
- fi
-
- if kernel_is lt 5 8; then
- CONFIG_CHECK+="
- ~MEMCG_SWAP_ENABLED
- "
- fi
-
- if use aufs; then
- CONFIG_CHECK+="
- ~AUFS_FS
- ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
- "
- ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used instead of aufs4/aufs3"
- fi
-
- if use btrfs; then
- CONFIG_CHECK+="
- ~BTRFS_FS
- ~BTRFS_FS_POSIX_ACL
- "
- fi
-
- if use device-mapper; then
- CONFIG_CHECK+="
- ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
- "
- fi
-
- if use overlay; then
- CONFIG_CHECK+="
- ~OVERLAY_FS ~EXT4_FS_SECURITY ~EXT4_FS_POSIX_ACL
- "
- fi
-
- linux-info_pkg_setup
-}
-
-src_compile() {
- export GOPATH="${WORKDIR}/${P}"
-
- # setup CFLAGS and LDFLAGS for separate build target
- # see https://github.com/tianon/docker-overlay/pull/10
- export CGO_CFLAGS="-I${ROOT}/usr/include"
- export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
-
- # if we're building from a tarball, we need the GITCOMMIT value
- [[ ${DOCKER_GITCOMMIT} ]] && export DOCKER_GITCOMMIT
-
- # fake golang layout
- ln -s docker-ce/components/engine ../docker || die
- ln -s docker-ce/components/cli ../cli || die
-
- # let's set up some optional features :)
- export DOCKER_BUILDTAGS=''
- for gd in aufs btrfs device-mapper overlay; do
- if ! use $gd; then
- DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}"
- fi
- done
-
- for tag in apparmor seccomp; do
- if use $tag; then
- DOCKER_BUILDTAGS+=" $tag"
- fi
- done
-
- pushd components/engine || die
-
- if use hardened; then
- sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die
- grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
- sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \
- -i hack/make/dynbinary-daemon || die
- grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed'
- fi
-
- # build daemon
- VERSION="$(cat ../../VERSION)" \
- ./hack/make.sh dynbinary || die 'dynbinary failed'
-
- popd || die # components/engine
-
- pushd components/cli || die
-
- # build cli
- emake \
- LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \
- VERSION="$(cat ../../VERSION)" \
- GITCOMMIT="${DOCKER_GITCOMMIT}" \
- DISABLE_WARN_OUTSIDE_CONTAINER=1 \
- dynbinary
-
- # build man pages
- go build -o gen-manpages github.com/docker/cli/man || die
- ./gen-manpages --root . --target ./man/man1 || die
- ./man/md2man-all.sh -q || die
- rm gen-manpages || die
- # see "components/cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man)
-
- popd || die # components/cli
-}
-
-src_install() {
- dosym containerd /usr/bin/docker-containerd
- dosym containerd-shim /usr/bin/docker-containerd-shim
- dosym runc /usr/bin/docker-runc
- use container-init && dosym tini /usr/bin/docker-init
-
- pushd components/engine || die
- newbin bundles/dynbinary-daemon/dockerd-${PV} dockerd
-
- newinitd contrib/init/openrc/docker.initd docker
- newconfd contrib/init/openrc/docker.confd docker
-
- systemd_dounit contrib/init/systemd/docker.{service,socket}
-
- udev_dorules contrib/udev/*.rules
-
- dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md
- dodoc -r docs/*
-
- insinto /usr/share/vim/vimfiles
- doins -r contrib/syntax/vim/ftdetect
- doins -r contrib/syntax/vim/syntax
-
- # note: intentionally not using "doins" so that we preserve +x bits
- dodir /usr/share/${PN}/contrib
- cp -R contrib/* "${ED}/usr/share/${PN}/contrib"
- popd || die # components/engine
-
- pushd components/cli || die
-
- newbin build/docker-* docker
-
- doman man/man*/*
-
- dobashcomp contrib/completion/bash/*
- insinto /usr/share/fish/vendor_completions.d/
- doins contrib/completion/fish/docker.fish
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/_*
- popd || die # components/cli
-}
-
-pkg_postinst() {
- udev_reload
-
- elog
- elog "To use Docker, the Docker daemon must be running as root. To automatically"
- elog "start the Docker daemon at boot, add Docker to the default runlevel:"
- elog " rc-update add docker default"
- elog "Similarly for systemd:"
- elog " systemctl enable docker.service"
- elog
- elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
- elog " usermod -aG docker youruser"
- elog
-
- elog " Devicemapper storage driver has been deprecated"
- elog " It will be removed in a future release"
-}
diff --git a/app-emulation/docker/docker-19.03.13-r2.ebuild b/app-emulation/docker/docker-19.03.13-r2.ebuild
deleted file mode 100644
index 551e97bccf7b..000000000000
--- a/app-emulation/docker/docker-19.03.13-r2.ebuild
+++ /dev/null
@@ -1,316 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_PN="github.com/docker/docker-ce"
-
-if [[ ${PV} = *9999* ]]; then
- # Docker cannot be fetched via "go get", thanks to autogenerated code
- EGIT_REPO_URI="https://${EGO_PN}.git"
- EGIT_CHECKOUT_DIR="${WORKDIR}/${P}/src/${EGO_PN}"
- inherit git-r3
-else
- DOCKER_GITCOMMIT=4484c46d9d
- MY_PV=${PV/_/-}
- SRC_URI="https://${EGO_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm arm64 ppc64 ~x86"
- [ "$DOCKER_GITCOMMIT" ] || die "DOCKER_GITCOMMIT must be added manually for each bump!"
- inherit golang-vcs-snapshot
-fi
-inherit bash-completion-r1 golang-base linux-info systemd udev
-
-DESCRIPTION="The core functions you need to create Docker images and run Docker containers"
-HOMEPAGE="https://www.docker.com/"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="apparmor aufs btrfs +container-init device-mapper hardened overlay seccomp selinux"
-
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
-BDEPEND="
- >=dev-lang/go-1.13.12
- dev-go/go-md2man
- virtual/pkgconfig
-"
-
-DEPEND="
- acct-group/docker
- >=dev-db/sqlite-3.7.9:3
- apparmor? ( sys-libs/libapparmor )
- btrfs? ( >=sys-fs/btrfs-progs-3.16.1 )
- device-mapper? ( >=sys-fs/lvm2-2.02.89[thin] )
- seccomp? ( >=sys-libs/libseccomp-2.2.1 )
-"
-
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#runtime-dependencies
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#optional-dependencies
-# https://github.com/docker/docker-ce/tree/master/components/engine/hack/dockerfile/install
-# make sure containerd, docker-proxy, runc and tini pinned to exact versions from ^,
-# for appropriate brachch/version of course
-RDEPEND="
- ${DEPEND}
- !sys-apps/systemd[-cgroup-hybrid(+)]
- >=net-firewall/iptables-1.4
- sys-process/procps
- >=dev-vcs/git-1.7
- >=app-arch/xz-utils-4.9
- dev-libs/libltdl
- ~app-emulation/containerd-1.3.7[apparmor?,btrfs?,device-mapper?,seccomp?,selinux?]
- ~app-emulation/runc-1.0.0_rc10[apparmor?,seccomp?,selinux(-)?]
- ~app-emulation/docker-proxy-0.8.0_p20200617
- container-init? ( >=sys-process/tini-0.18.0[static] )
-"
-
-RESTRICT="installsources strip"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-# see "contrib/check-config.sh" from upstream's sources
-CONFIG_CHECK="
- ~NAMESPACES ~NET_NS ~PID_NS ~IPC_NS ~UTS_NS
- ~CGROUPS ~CGROUP_CPUACCT ~CGROUP_DEVICE ~CGROUP_FREEZER ~CGROUP_SCHED ~CPUSETS ~MEMCG
- ~KEYS
- ~VETH ~BRIDGE ~BRIDGE_NETFILTER
- ~IP_NF_FILTER ~IP_NF_TARGET_MASQUERADE
- ~NETFILTER_NETLINK ~NETFILTER_XT_MATCH_ADDRTYPE ~NETFILTER_XT_MATCH_CONNTRACK ~NETFILTER_XT_MATCH_IPVS
- ~IP_NF_NAT ~NF_NAT
- ~POSIX_MQUEUE
-
- ~USER_NS
- ~SECCOMP
- ~CGROUP_PIDS
- ~MEMCG_SWAP
-
- ~BLK_CGROUP ~BLK_DEV_THROTTLING
- ~CGROUP_PERF
- ~CGROUP_HUGETLB
- ~NET_CLS_CGROUP
- ~CFS_BANDWIDTH ~FAIR_GROUP_SCHED ~RT_GROUP_SCHED
- ~IP_VS ~IP_VS_PROTO_TCP ~IP_VS_PROTO_UDP ~IP_VS_NFCT ~IP_VS_RR
-
- ~VXLAN
- ~CRYPTO ~CRYPTO_AEAD ~CRYPTO_GCM ~CRYPTO_SEQIV ~CRYPTO_GHASH ~XFRM_ALGO ~XFRM_USER
- ~IPVLAN
- ~MACVLAN ~DUMMY
-
- ~OVERLAY_FS ~!OVERLAY_FS_REDIRECT_DIR
- ~EXT4_FS_SECURITY
- ~EXT4_FS_POSIX_ACL
-"
-
-ERROR_KEYS="CONFIG_KEYS: is mandatory"
-ERROR_MEMCG_SWAP="CONFIG_MEMCG_SWAP: is required if you wish to limit swap usage of containers"
-ERROR_RESOURCE_COUNTERS="CONFIG_RESOURCE_COUNTERS: is optional for container statistics gathering"
-
-ERROR_BLK_CGROUP="CONFIG_BLK_CGROUP: is optional for container statistics gathering"
-ERROR_IOSCHED_CFQ="CONFIG_IOSCHED_CFQ: is optional for container statistics gathering"
-ERROR_CGROUP_PERF="CONFIG_CGROUP_PERF: is optional for container statistics gathering"
-ERROR_CFS_BANDWIDTH="CONFIG_CFS_BANDWIDTH: is optional for container statistics gathering"
-ERROR_XFRM_ALGO="CONFIG_XFRM_ALGO: is optional for secure networks"
-ERROR_XFRM_USER="CONFIG_XFRM_USER: is optional for secure networks"
-
-pkg_setup() {
- if kernel_is lt 3 10; then
- ewarn ""
- ewarn "Using Docker with kernels older than 3.10 is unstable and unsupported."
- ewarn " - http://docs.docker.com/engine/installation/binaries/#check-kernel-dependencies"
- fi
-
- if kernel_is le 3 18; then
- CONFIG_CHECK+="
- ~RESOURCE_COUNTERS
- "
- fi
-
- if kernel_is le 3 13; then
- CONFIG_CHECK+="
- ~NETPRIO_CGROUP
- "
- else
- CONFIG_CHECK+="
- ~CGROUP_NET_PRIO
- "
- fi
-
- if kernel_is lt 4 5; then
- CONFIG_CHECK+="
- ~MEMCG_KMEM
- "
- ERROR_MEMCG_KMEM="CONFIG_MEMCG_KMEM: is optional"
- fi
-
- if kernel_is lt 4 7; then
- CONFIG_CHECK+="
- ~DEVPTS_MULTIPLE_INSTANCES
- "
- fi
-
- if kernel_is lt 5 1; then
- CONFIG_CHECK+="
- ~NF_NAT_IPV4
- ~IOSCHED_CFQ
- ~CFQ_GROUP_IOSCHED
- "
- fi
-
- if kernel_is lt 5 2; then
- CONFIG_CHECK+="
- ~NF_NAT_NEEDED
- "
- fi
-
- if kernel_is lt 5 8; then
- CONFIG_CHECK+="
- ~MEMCG_SWAP_ENABLED
- "
- fi
-
- if use aufs; then
- CONFIG_CHECK+="
- ~AUFS_FS
- ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
- "
- ERROR_AUFS_FS="CONFIG_AUFS_FS: is required to be set if and only if aufs-sources are used instead of aufs4/aufs3"
- fi
-
- if use btrfs; then
- CONFIG_CHECK+="
- ~BTRFS_FS
- ~BTRFS_FS_POSIX_ACL
- "
- fi
-
- if use device-mapper; then
- CONFIG_CHECK+="
- ~BLK_DEV_DM ~DM_THIN_PROVISIONING ~EXT4_FS ~EXT4_FS_POSIX_ACL ~EXT4_FS_SECURITY
- "
- fi
-
- linux-info_pkg_setup
-}
-
-src_compile() {
- export GOPATH="${WORKDIR}/${P}"
-
- # setup CFLAGS and LDFLAGS for separate build target
- # see https://github.com/tianon/docker-overlay/pull/10
- export CGO_CFLAGS="-I${ROOT}/usr/include"
- export CGO_LDFLAGS="-L${ROOT}/usr/$(get_libdir)"
-
- # if we're building from a tarball, we need the GITCOMMIT value
- [[ ${DOCKER_GITCOMMIT} ]] && export DOCKER_GITCOMMIT
-
- # fake golang layout
- ln -s docker-ce/components/engine ../docker || die
- ln -s docker-ce/components/cli ../cli || die
-
- # let's set up some optional features :)
- export DOCKER_BUILDTAGS=''
- for gd in aufs btrfs device-mapper overlay; do
- if ! use $gd; then
- DOCKER_BUILDTAGS+=" exclude_graphdriver_${gd//-/}"
- fi
- done
-
- for tag in apparmor seccomp selinux; do
- if use $tag; then
- DOCKER_BUILDTAGS+=" $tag"
- fi
- done
-
- pushd components/engine || die
-
- if use hardened; then
- sed -i "s/EXTLDFLAGS_STATIC='/&-fno-PIC /" hack/make.sh || die
- grep -q -- '-fno-PIC' hack/make.sh || die 'hardened sed failed'
- sed "s/LDFLAGS_STATIC_DOCKER='/&-extldflags -fno-PIC /" \
- -i hack/make/dynbinary-daemon || die
- grep -q -- '-fno-PIC' hack/make/dynbinary-daemon || die 'hardened sed failed'
- fi
-
- # build daemon
- VERSION="$(cat ../../VERSION)" \
- ./hack/make.sh dynbinary || die 'dynbinary failed'
-
- popd || die # components/engine
-
- pushd components/cli || die
-
- # build cli
- DISABLE_WARN_OUTSIDE_CONTAINER=1 emake \
- LDFLAGS="$(usex hardened '-extldflags -fno-PIC' '')" \
- VERSION="$(cat ../../VERSION)" \
- GITCOMMIT="${DOCKER_GITCOMMIT}" \
- dynbinary
-
- # build man pages
- go build -o gen-manpages github.com/docker/cli/man || die
- ./gen-manpages --root . --target ./man/man1 || die
- ./man/md2man-all.sh -q || die
- rm gen-manpages || die
- # see "components/cli/scripts/docs/generate-man.sh" (which also does "go get" for go-md2man)
-
- popd || die # components/cli
-}
-
-src_install() {
- dosym containerd /usr/bin/docker-containerd
- dosym containerd-shim /usr/bin/docker-containerd-shim
- dosym runc /usr/bin/docker-runc
- use container-init && dosym tini /usr/bin/docker-init
-
- pushd components/engine || die
- newbin bundles/dynbinary-daemon/dockerd-${PV} dockerd
-
- newinitd contrib/init/openrc/docker.initd docker
- newconfd contrib/init/openrc/docker.confd docker
-
- systemd_dounit contrib/init/systemd/docker.{service,socket}
-
- udev_dorules contrib/udev/*.rules
-
- dodoc AUTHORS CONTRIBUTING.md CHANGELOG.md NOTICE README.md
- dodoc -r docs/*
-
- insinto /usr/share/vim/vimfiles
- doins -r contrib/syntax/vim/ftdetect
- doins -r contrib/syntax/vim/syntax
-
- # note: intentionally not using "doins" so that we preserve +x bits
- dodir /usr/share/${PN}/contrib
- cp -R contrib/* "${ED}/usr/share/${PN}/contrib"
- popd || die # components/engine
-
- pushd components/cli || die
-
- newbin build/docker-* docker
-
- doman man/man*/*
-
- sed -i 's@dockerd\?\.exe@@g' contrib/completion/bash/docker || die
- dobashcomp contrib/completion/bash/*
- bashcomp_alias docker dockerd
- insinto /usr/share/fish/vendor_completions.d/
- doins contrib/completion/fish/docker.fish
- insinto /usr/share/zsh/site-functions
- doins contrib/completion/zsh/_*
- popd || die # components/cli
-}
-
-pkg_postinst() {
- udev_reload
-
- elog
- elog "To use Docker, the Docker daemon must be running as root. To automatically"
- elog "start the Docker daemon at boot, add Docker to the default runlevel:"
- elog " rc-update add docker default"
- elog "Similarly for systemd:"
- elog " systemctl enable docker.service"
- elog
- elog "To use Docker as a non-root user, add yourself to the 'docker' group:"
- elog " usermod -aG docker youruser"
- elog
-
- elog " Devicemapper storage driver has been deprecated"
- elog " It will be removed in a future release"
-}
diff --git a/app-emulation/docker/metadata.xml b/app-emulation/docker/metadata.xml
deleted file mode 100644
index 6a9a6876f14f..000000000000
--- a/app-emulation/docker/metadata.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <longdescription>
- Docker is an open-source project to easily create lightweight,
- portable, self-sufficient containers from any application. The same
- container that a developer builds and tests on a laptop can run at
- scale, in production, on VMs, bare metal, OpenStack clusters, public
- clouds and more.
- </longdescription>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <maintainer type="person">
- <email>gyakovlev@gentoo.org</email>
- <name>Georgy Yakovlev</name>
- </maintainer>
- <use>
- <flag name="aufs">
- Enables dependencies for the "aufs" graph driver, including
- necessary kernel flags.
- </flag>
- <flag name="apparmor">
- Enable AppArmor support.
- </flag>
- <flag name="btrfs">
- Enables dependencies for the "btrfs" graph driver, including
- necessary kernel flags.
- </flag>
- <flag name="container-init">
- Makes the a staticly-linked init system tini available inside a
- container.
- </flag>
- <flag name="device-mapper">
- Enables dependencies for the "devicemapper" graph driver, including
- necessary kernel flags.
- </flag>
- <flag name="overlay">
- Enables dependencies for the "overlay" graph driver, including
- necessary kernel flags.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">docker/docker</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
index 61a15bd1f53c..2dbe9f043651 100644
--- a/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
+++ b/app-emulation/dosemu/dosemu-1.4.1_pre20130107-r5.ebuild
@@ -1,9 +1,9 @@
-# Copyright 2002-2020 Gentoo Authors
+# Copyright 2002-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-inherit autotools eutils flag-o-matic pax-utils toolchain-funcs
+inherit autotools flag-o-matic pax-utils toolchain-funcs
P_FD="dosemu-freedos-1.0-bin"
COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71"
@@ -13,7 +13,7 @@ COMMIT="15cfb41ff20a052769d753c3262c57ecb050ad71"
DESCRIPTION="DOS Emulator"
HOMEPAGE="http://www.dosemu.org/"
SRC_URI="mirror://sourceforge/dosemu/${P_FD}.tgz
- https://dev.gentoo.org/~slyfox/distfiles/${P}.zip"
+ https://dev.gentoo.org/~sam/distfiles/${P}.zip"
LICENSE="GPL-2"
SLOT="0"
@@ -56,6 +56,7 @@ PATCHES=(
"${FILESDIR}"/${P}-fix-inline.patch
"${FILESDIR}"/${P}-lto.patch
"${FILESDIR}"/${P}-as.patch
+ "${FILESDIR}"/${P}-nm.patch
)
pkg_pretend() {
@@ -90,6 +91,8 @@ src_configure() {
fi
# sndfile support is unconditionally disabled in src/plugin/sndfile/snd_o_wav.c
+ # CPP has to be set explicitly to workaround autoconf-2.69
+ # CPP detection (fixed in 2.70). bug #762748.
econf $(use_with X x) \
$(use_with svga svgalib) \
$(use_enable debug) \
@@ -100,12 +103,13 @@ src_configure() {
--with-fdtarball="${DISTDIR}"/${P_FD}.tgz \
--sysconfdir="${EPREFIX}"/etc/dosemu/ \
--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
- IA16_LDFLAGS_EXTRA=${nopie_flag}
+ IA16_LDFLAGS_EXTRA=${nopie_flag} \
+ CPP="$(tc-getCPP)"
}
src_compile() {
- # src/makefile.common is fritten manually, uses AR=ar
- emake AR=$(tc-getAR)
+ # src/makefile.common is written manually, uses AR=ar
+ emake AR="$(tc-getAR)"
}
src_install() {
diff --git a/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch
new file mode 100644
index 000000000000..73bfd9dfbc5b
--- /dev/null
+++ b/app-emulation/dosemu/files/dosemu-1.4.1_pre20130107-nm.patch
@@ -0,0 +1,44 @@
+https://bugs.gentoo.org/762778
+--- a/Makefile.conf.in
++++ b/Makefile.conf.in
+@@ -82,6 +82,8 @@ REQUIRED:=@REQUIRED@
+ OS=@CONFIG_HOST@
+ RANLIB:=@RANLIB@
+
++NM:=@NM@
++
+ @ASPI_SUPPORT@
+ @USE_DL_PLUGINS@
+ @USE_APBUILD@
+--- a/configure.ac
++++ b/configure.ac
+@@ -39,6 +39,7 @@ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+ AC_PROG_RANLIB
+ AC_PROG_YACC
++AC_CHECK_TOOL(NM, nm)
+ dnl The bison problem
+ if test -z "`echo $YACC | grep bison`" ; then
+ AC_MSG_WARN( )
+--- a/src/arch/linux/Makefile.main
++++ b/src/arch/linux/Makefile.main
+@@ -80,7 +80,7 @@ emu.o: emu.c
+ $(BINPATH)/bin/$(DOSBIN): emu.o $(LIBS_)
+ $(LD) $(ALL_LDFLAGS) $(DOSBIN_LDFLAGS) -o $@ emu.o \
+ -Wl,--whole-archive $(LIBS_) -Wl,--no-whole-archive $(LIBS)
+- @nm $(BINPATH)/bin/$(DOSBIN) | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | \
++ @$(NM) $(BINPATH)/bin/$(DOSBIN) | grep -v '\(compiled\)\|\(\.o$$\)\|\( a \)' | \
+ sort > $(BINPATH)/bin/dosemu.map
+ @ln -sf $(DOSBIN) $(BINPATH)/bin/dos
+ ifdef X_SUPPORT
+--- a/src/plugin/term/Makefile
++++ b/src/plugin/term/Makefile
+@@ -33,7 +33,7 @@ SLANGLIB:=`relaytool --partial-map partial.map --relay slang \
+ libslang.so.1-UTF8 libslang-utf8.so.1 libslang.so.1 $(SLANGLIB)`
+
+ partial.map: $(OBJS)
+- nm $(OBJS) | LC_ALL=C grep SL | LC_ALL=C sort | LC_ALL=C uniq | \
++ $(NM) $(OBJS) | LC_ALL=C grep SL | LC_ALL=C sort | LC_ALL=C uniq | \
+ LC_ALL=C sed -e 's/ *U \(SL[^_]*_[a-z0-9].*\)/F \1/' \
+ -e 's/ *U \(SL[^_]*_[A-Z0-9].*\)/V \1/' > $@
+ echo 'F SLsmg_write_nwchars' >> $@
diff --git a/app-emulation/dosemu/metadata.xml b/app-emulation/dosemu/metadata.xml
index 02fe93487b16..05cd00dae726 100644
--- a/app-emulation/dosemu/metadata.xml
+++ b/app-emulation/dosemu/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
+ <!-- maintainer-needed -->
<use>
<flag name="fluidsynth">use <pkg>media-sound/fluidsynth</pkg> for MIDI emulation</flag>
</use>
diff --git a/app-emulation/dxvk/Manifest b/app-emulation/dxvk/Manifest
new file mode 100644
index 000000000000..cc8ab92a4080
--- /dev/null
+++ b/app-emulation/dxvk/Manifest
@@ -0,0 +1,13 @@
+DIST dxvk-1.10.3.tar.gz 1204407 BLAKE2B 3507ffe4abf9c45f2a138b05e7cf706322a6bf3d2e9ae86a9d6216b206c09f79eac696ee7dfe33d0bef55e727f51301c36eb89bfa3b3f429d7d5fafc1eebdcb4 SHA512 8995b231b3f3650beda04c01f30186d10a373075a4774b4ecbfb3bbeb4de99c57555f1db0611e5c61c6a411a7215e0faf228f9861f6b7adae6fc365e8056f7e3
+DIST dxvk-2.2.tar.gz 976671 BLAKE2B 537fb8d8adb69562f8e759c6f68e5ed38a62e6ebcf05d7ed1ea32fef518af30cd53d3ffec0e3dba175d449d80de980585f91bfcf8c3904a08385b17b55b9b63b SHA512 02d066093855c3ecae7123fcaeaa32212e03fcda9556c5b70ff23eadc07240199003b8e4673f5b492487fa6e240d70a36f5b4e60b0f389f422cf4474b7197e2f
+DIST dxvk-2.3.1.tar.gz 1005669 BLAKE2B d78448fcde9d600f7206dfa606fca4069e7563bb8b181fbc172691d6c45586904ae529550926a03612ed3cc1f2a2dff00990638125c1d7ce6179d3cd3ba8df04 SHA512 085567ac263872eb93d776ce7cf982690603e240a977dbb51ad69344af387fd745536ca62819afd4a809732a6f2d22b36c3df9538decf37dec527973d41e392f
+DIST dxvk-2.3.tar.gz 996736 BLAKE2B 55944472726e1d946b84cec386267bb65511c83a18647076b5d76c78d552ad2e4710a125c3e1a9f1c0c65b8de43a122c61aec5873ec0d566a20a1f4a9088f461 SHA512 d60421f6b93e09fb18d7f92f636bb228ec5d9ab6a90ca73e1e3c240c50ad35a90ac25fce1ac3f0a940c4da8e92e1c4267a2c602eaa78ff64db12507cc4d08173
+DIST dxvk-libdisplay-info-275e6459c7.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d
+DIST dxvk-libdisplay-info-d39344f466.tar.bz2 81232 BLAKE2B af76ccd3c40bc953008bc30d222c72f90bdc77f47f767b6e7423efaa0ec89d746396a755160b5470e219a15a0aa392be6066aab12921b45a1adb35d88132cd97 SHA512 79b4bf325cefc39bc587233bd82ff64c927ca5f829b8172d213c3d47af725c8dc7fe33576a8e96a869075ee2a8f00d165f3aa9e6c472e862a47e5c800b2b3315
+DIST dxvk-spirv-headers-0bcc624926.tar.gz 437771 BLAKE2B 08815e36ad99b84777e38ad0c5616b6608a552f993e7f67433f2b8e20de81e9bce41420ac5998f5b67bca70a92ce70aed91b238990bd431c7b97070dfb0c5a60 SHA512 5995cf75d5605d41e9643bca81c195ef5aaa17d596e0282807f6fa8f8c494f7b63a41d611c535ae43dc3d609436aabef1e0d89626f37e6f20bad17b5e122e32c
+DIST dxvk-vulkan-headers-85c2334e92.tar.gz 2046570 BLAKE2B 8e7f917d440793d85afae9227514fd97ae6cab6ece53abc54320808c10ddbc84a5421663f6b7549c98fbe8b8144a3c5b8bea73d39e6c99a289c5b0baadf3abd8 SHA512 eb7bcec11fb4e7302411c30501e72d567f481a14098ece9c54c023fe4644298f1c14268ef240cfe73ddb75f9817946513cc2218e34b706ea0be5e94ecbed0f91
+DIST dxvk-vulkan-headers-98f440ce68.tar.gz 1691979 BLAKE2B bf6fd288f16df7adcb5cebeb6e13713db1c26a0b833dead2fb522227861abc60b2d0cda8e3f46f8e89cccb629e01081ba27763989ad6fd336c60a475b198c1c8 SHA512 69238d37d0af0162e0fd68094cd2fa9baa320497d34a9de491dea086c23291d0815b51e89218b1f0ee2b3314cbc8ac1809d6edb15ca51fcb282fe1e2b39a1a77
+DIST libdisplay-info-275e6459c7ab1ddd4b125f28d0440716e4888078.tar.bz2 81172 BLAKE2B 7a1e9e2feeb95e06e9d3f49ad9d14a8a152cca525085e819cda0b69c238fb79dddd6d547cd0f0a4b51dfc1ec74ac4c006345b9fc48563807bc8ab3bab58ea5ff SHA512 794e94e8c16d65901a7b705d1ba3361817b4e9e19e520b1004bcab232d0347f5713594d67f3c2b79d4f86b3012e710c648975547d27a63de043fcbe9e6b7e66d
+DIST setup_dxvk.sh 4631 BLAKE2B 25270e1f6dfd446b1d124eac3bd19da8bc770527d02d987949fc3ae0bead07866dafa25f77a90b9a408413a724354a29a4a156ff5c9dc75e26b66e079824ec86 SHA512 257fd84e29a7037f04a1a2a506502c71d527af58f8c84d8c3dfb64597ebdc41c3dca362eaf20ab4bc1982b76428c1f843815d56a6e1369d072e0009e270cb121
+DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959
+DIST vulkan-headers-46dc0f6e514f5730784bb2cac2a7c731636839e8.tar.gz 2255426 BLAKE2B efaf09df3274586c4df2bdd0b1dd9dd43b3b6125e0033ae87af999aea64709e9758bc7b675398b480ae063e28273732d768062d97f6cd61d63ccc798ca7410a5 SHA512 7ea993f7c8ff72dc6bedbfdaced29782ab372228e9111f747d931955e832a7920114f5d1953ecd34d220634a53449ca2ed4c0ed28d3165e258c4d9fafd0aa4be
diff --git a/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild
new file mode 100644
index 000000000000..701ccb453a83
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-1.10.3-r1.ebuild
@@ -0,0 +1,152 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# note: version <2.0 should be kept for longer given it's the
+# last version to support <wine-7.1 and <nvidia-drivers-510
+
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+else
+ SRC_URI="https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+LICENSE="ZLIB"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 debug +dxgi"
+REQUIRED_USE="
+ || ( d3d9 d3d10 d3d11 dxgi )
+ d3d10? ( d3d11 )
+ dxgi? ( d3d11 )"
+
+BDEPEND="
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-gcc13.patch
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev !debug --strip) # portage won't strip .dll, so allow it here
+ -Denable_tests=false # needs wine/vulkan and is intended for manual use
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+}
diff --git a/app-emulation/dxvk/dxvk-2.2-r1.ebuild b/app-emulation/dxvk/dxvk-2.2-r1.ebuild
new file mode 100644
index 000000000000..1d3d3ded718f
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-2.2-r1.ebuild
@@ -0,0 +1,186 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=0bcc624926a25a2a273d07877fd25a6ff5ba1cfb
+ HASH_VULKAN=98f440ce6868c94f5ec6e198cc1adda4760e8849
+ HASH_DISPLAYINFO=d39344f466caae0495ebac4d49b03a886d83ba3a
+ SRC_URI="
+ https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz
+ https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/${PN}-libdisplay-info-${HASH_DISPLAYINFO::10}.tar.bz2"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+# setup_dxvk.sh is no longer provided, fetch old until a better solution
+SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
+
+LICENSE="ZLIB Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 debug +dxgi"
+REQUIRED_USE="
+ || ( d3d9 d3d10 d3d11 dxgi )
+ d3d10? ( d3d11 )
+ d3d11? ( dxgi )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev !debug --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+
+ if [[ ! ${REPLACING_VERSIONS##* } ]] ||
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.0
+ then
+ elog
+ elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+ fi
+}
diff --git a/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild
new file mode 100644
index 000000000000..71e43a8fd5eb
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-2.3.1-r1.ebuild
@@ -0,0 +1,190 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=8b246ff75c6615ba4532fe4fde20f1be090c3764
+ HASH_VULKAN=46dc0f6e514f5730784bb2cac2a7c731636839e8
+ HASH_DISPLAYINFO=275e6459c7ab1ddd4b125f28d0440716e4888078
+ SRC_URI="
+ https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> spirv-headers-${HASH_SPIRV}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> vulkan-headers-${HASH_VULKAN}.tar.gz
+ https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/libdisplay-info-${HASH_DISPLAYINFO}.tar.bz2
+ "
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+# setup_dxvk.sh is no longer provided, fetch old until a better solution
+SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
+
+LICENSE="ZLIB Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip"
+REQUIRED_USE="
+ || ( d3d9 d3d10 d3d11 dxgi )
+ d3d10? ( d3d11 )
+ d3d11? ( dxgi )
+"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ --force-fallback-for=libdisplay-info # system's is ELF (unusable)
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+
+ if [[ ! ${REPLACING_VERSIONS##* } ]] ||
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.0
+ then
+ elog
+ elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+ fi
+}
diff --git a/app-emulation/dxvk/dxvk-2.3.ebuild b/app-emulation/dxvk/dxvk-2.3.ebuild
new file mode 100644
index 000000000000..2a0cdc34b1a0
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-2.3.ebuild
@@ -0,0 +1,186 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=0bcc624926a25a2a273d07877fd25a6ff5ba1cfb
+ HASH_VULKAN=85c2334e92e215cce34e8e0ed8b2dce4700f4a50
+ HASH_DISPLAYINFO=275e6459c7ab1ddd4b125f28d0440716e4888078
+ SRC_URI="
+ https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz
+ https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/${PN}-libdisplay-info-${HASH_DISPLAYINFO::10}.tar.bz2"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+# setup_dxvk.sh is no longer provided, fetch old until a better solution
+SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
+
+LICENSE="ZLIB Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip"
+REQUIRED_USE="
+ || ( d3d9 d3d10 d3d11 dxgi )
+ d3d10? ( d3d11 )
+ d3d11? ( dxgi )"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+
+ if [[ ! ${REPLACING_VERSIONS##* } ]] ||
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.0
+ then
+ elog
+ elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+ fi
+}
diff --git a/app-emulation/dxvk/dxvk-9999.ebuild b/app-emulation/dxvk/dxvk-9999.ebuild
new file mode 100644
index 000000000000..210cfcc0e294
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-9999.ebuild
@@ -0,0 +1,190 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib python-any-r1
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+ EGIT_SUBMODULES=(
+ # picky about headers and is cross-compiled making -I/usr/include troublesome
+ include/{spirv,vulkan}
+ subprojects/libdisplay-info
+ )
+else
+ HASH_SPIRV=
+ HASH_VULKAN=
+ HASH_DISPLAYINFO=
+ SRC_URI="
+ https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> spirv-headers-${HASH_SPIRV}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> vulkan-headers-${HASH_VULKAN}.tar.gz
+ https://gitlab.freedesktop.org/JoshuaAshton/libdisplay-info/-/archive/${HASH_DISPLAYINFO}/libdisplay-info-${HASH_DISPLAYINFO}.tar.bz2
+ "
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+# setup_dxvk.sh is no longer provided, fetch old until a better solution
+SRC_URI+=" https://raw.githubusercontent.com/doitsujin/dxvk/cd21cd7fa3b0df3e0819e21ca700b7627a838d69/setup_dxvk.sh"
+
+LICENSE="ZLIB Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 +dxgi +strip"
+REQUIRED_USE="
+ || ( d3d9 d3d10 d3d11 dxgi )
+ d3d10? ( d3d11 )
+ d3d11? ( dxgi )
+"
+
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.3-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is set but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir include/{spirv,vulkan} subprojects/libdisplay-info || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} include/spirv || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} include/vulkan || die
+ mv ../libdisplay-info-${HASH_DISPLAYINFO} subprojects/libdisplay-info || die
+ fi
+ cp -- "${DISTDIR}"/setup_dxvk.sh . || die
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+ --force-fallback-for=libdisplay-info # system's is ELF (unusable)
+ $(meson_use {,enable_}d3d9)
+ $(meson_use {,enable_}d3d10)
+ $(meson_use {,enable_}d3d11)
+ $(meson_use {,enable_}dxgi)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_dxvk.sh
+ dodoc README.md dxvk.conf
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+ [[ -e ${EROOT}/usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elog "Note: setup_dxvk.sh is unofficially temporarily provided as it was"
+ elog "removed upstream, handling may change in the future."
+ elif [[ -v DXVK_HAD_OVERLAY ]]; then
+ # temporary warning until this version is more widely used
+ elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+ elog "If you were using symbolic links in wine prefixes it may be necessary to"
+ elog "refresh them by re-running the command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+ elog
+ elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+ elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+ fi
+
+ if [[ ! ${REPLACING_VERSIONS##* } ]] ||
+ ver_test ${REPLACING_VERSIONS##* } -lt 2.0
+ then
+ elog
+ elog ">=${PN}-2.0 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ elog "For details, see: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+ fi
+}
diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch b/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch
new file mode 100644
index 000000000000..580e412fcd6e
--- /dev/null
+++ b/app-emulation/dxvk/files/dxvk-1.10.3-gcc13.patch
@@ -0,0 +1,17 @@
+https://github.com/doitsujin/dxvk/commit/1a5afc77b1859e6c7e31b55e11ece899e3b5295a
+--- a/src/util/config/config.h
++++ b/src/util/config/config.h
+@@ -1,4 +1,5 @@
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <unordered_map>
+--- a/src/util/util_bit.h
++++ b/src/util/util_bit.h
+@@ -17,4 +17,5 @@
+ #include "util_math.h"
+
++#include <cstdint>
+ #include <cstring>
+ #include <iterator>
diff --git a/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch
new file mode 100644
index 000000000000..707eba19b24b
--- /dev/null
+++ b/app-emulation/dxvk/files/dxvk-1.10.3-wow64-setup.patch
@@ -0,0 +1,14 @@
+Dirty workaround to try syswow64 if paths are the same. This can happen
+with USE=wow64 on wine where wine64 is a symlink to wine.
+
+TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged
+separately (shared) as upstream hardly support these (dxvk dropped altogether).
+--- a/setup_dxvk.sh
++++ b/setup_dxvk.sh
+@@ -89,2 +89,6 @@
+ win32_sys_path="${win32_sys_path/$'\r'/}"
++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then
++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null)
++ win32_sys_path="${win32_sys_path/$'\r'/}"
++ fi
+ fi
diff --git a/app-emulation/dxvk/metadata.xml b/app-emulation/dxvk/metadata.xml
new file mode 100644
index 000000000000..84811f271d8e
--- /dev/null
+++ b/app-emulation/dxvk/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ionen@gentoo.org</email>
+ <name>Ionen Wolkens</name>
+ </maintainer>
+ <use>
+ <flag name="crossdev-mingw">
+ Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than
+ <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up)
+ </flag>
+ <flag name="d3d9">Enable support for DirectX 9 (d3d9.dll)</flag>
+ <flag name="d3d10">Enable support for DirectX 10 (d3d10.dll)</flag>
+ <flag name="d3d11">Enable support for DirectX 11 (d3d11.dll)</flag>
+ <flag name="dxgi">Enable support for the DirectX Graphics Infrastructure (dxgi.dll)</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">doitsujin/dxvk</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/dynamips/Manifest b/app-emulation/dynamips/Manifest
index 0a80e67861e2..d3d379eb9542 100644
--- a/app-emulation/dynamips/Manifest
+++ b/app-emulation/dynamips/Manifest
@@ -1,2 +1 @@
-DIST dynamips-0.2.18.tar.gz 833554 BLAKE2B 8152b436e8fc43061c5603a44ceae8feebdd4593649d2fb6a1814ca22cfce2f671f6f98df5f03ee6eeef10cf09fc444d406edd8d3b4a6037a89cf0e8301774ac SHA512 d66e32d72ecc9ebff5232377ac9aa5b966ceb08884cc7f8dc4a8cf3f56305e7cefd677624ba66278f6603a3b275c384bd0ff3905932461b1f8056106cd272a4c
-DIST dynamips-0.2.21.tar.gz 833863 BLAKE2B a3162de26839a4c99fd1f147fe0a12e04f4b225b6539aa1599550c40c6a9e21deed950b47f7afbbc1cfbe2f61a351a4185a18f56c4b63c191eccc7122e2c0115 SHA512 c7251963897b65ed5696f47f03be727cea79fe2245850c86fa6b4d8718afa10002b1e39bccefe1c7f2ba86fe6b8f52fe8663ee34f72ca3d9f846522b9b9b4d29
+DIST dynamips-0.2.23.tar.gz 835736 BLAKE2B 5ea57ffbcd289a3982d873dace5bda8941209d7a0f2e36bc0cc4266c59e266f8277a215580487fb70a505eb133672247aa76d7e41124516eb67e40b999bcd67c SHA512 b68af39cd66f10555d860437f55e63887aefdb5a949bacacf3a308cc0c4eaaab3bb9a496c5ac32fd19d3920bada807bff2af8eb66b01d8d735419fec5d134746
diff --git a/app-emulation/dynamips/dynamips-0.2.18.ebuild b/app-emulation/dynamips/dynamips-0.2.18.ebuild
deleted file mode 100644
index 1b58ec9cfdad..000000000000
--- a/app-emulation/dynamips/dynamips-0.2.18.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit cmake-utils
-
-DESCRIPTION="Cisco 7200/3600 Simulator"
-HOMEPAGE="https://github.com/GNS3/dynamips"
-SRC_URI="https://github.com/GNS3/dynamips/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-IUSE="ipv6"
-
-RDEPEND="dev-libs/elfutils
- net-libs/libpcap"
-DEPEND="${RDEPEND}
- app-arch/unzip"
-
-DOCS=( ChangeLog README.md RELEASE-NOTES )
-
-PATCHES=( "${FILESDIR}/${P}-docs.patch" )
-
-src_prepare() {
- # comment out DYNAMIPS_FLAGS to respect CFLAGS
- sed -e "s:^set ( DYNAMIPS_FLAGS:#&:" -i cmake/dependencies.cmake || die
-
- cmake-utils_src_prepare
-}
-
-src_configure() {
- local mycmakeargs=(
- -DANY_COMPILER=1
- -DENABLE_IPV6="$(usex ipv6)"
- )
- cmake-utils_src_configure
-}
diff --git a/app-emulation/dynamips/dynamips-0.2.21.ebuild b/app-emulation/dynamips/dynamips-0.2.23.ebuild
index 21b04e6456e7..1a0741cc4406 100644
--- a/app-emulation/dynamips/dynamips-0.2.21.ebuild
+++ b/app-emulation/dynamips/dynamips-0.2.23.ebuild
@@ -1,26 +1,24 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit cmake-utils
+inherit cmake
DESCRIPTION="Cisco 7200/3600 Simulator"
HOMEPAGE="https://github.com/GNS3/dynamips"
SRC_URI="https://github.com/GNS3/dynamips/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-LICENSE="GPL-2"
+LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="ipv6"
-
-BDEPEND="app-arch/unzip"
-RDEPEND="dev-libs/elfutils
+RDEPEND="
+ dev-libs/elfutils
net-libs/libpcap"
DEPEND="${RDEPEND}"
-DOCS=( ChangeLog README.md RELEASE-NOTES )
+DOCS=( ChangeLog README.md README.hypervisor RELEASE-NOTES )
PATCHES=( "${FILESDIR}/${PN}-0.2.18-docs.patch" )
@@ -28,13 +26,13 @@ src_prepare() {
# comment out DYNAMIPS_FLAGS to respect CFLAGS
sed -e "s:^set ( DYNAMIPS_FLAGS:#&:" -i cmake/dependencies.cmake || die
- cmake-utils_src_prepare
+ cmake_src_prepare
}
src_configure() {
local mycmakeargs=(
-DANY_COMPILER=1
- -DENABLE_IPV6="$(usex ipv6)"
+ -DENABLE_IPV6=yes
)
- cmake-utils_src_configure
+ cmake_src_configure
}
diff --git a/app-emulation/dynamips/metadata.xml b/app-emulation/dynamips/metadata.xml
index 2f5d95978a96..82c5a4ca25bc 100644
--- a/app-emulation/dynamips/metadata.xml
+++ b/app-emulation/dynamips/metadata.xml
@@ -1,9 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>pinkbyte@gentoo.org</email>
- <name>Sergey Popov</name>
+ <maintainer type="person" proxied="yes">
+ <email>mmk@levelnine.at</email>
+ <name>Michael Mair-Keimberger</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">gns-3</remote-id>
diff --git a/app-emulation/edumips64/Manifest b/app-emulation/edumips64/Manifest
deleted file mode 100644
index 5546cf952199..000000000000
--- a/app-emulation/edumips64/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST edumips64-1.2.tar.bz2 551455 BLAKE2B 614bf851964ea32d6954fb5345f6b07b6292bf90e24dca5d3ea8d86c1b910e1e9ade6ebfece054922ad3506586e9f32c1f6570a7248023e6a867a8b5c09b1203 SHA512 93a5bcae3ab96c35688de7589b9ecb465fe841b007a50e1b04f8194d12a45a4e7134951584f4fbfad5cee51925d1d21b0f425f182999f66fe57a31adbd3f6602
diff --git a/app-emulation/edumips64/edumips64-1.2.ebuild b/app-emulation/edumips64/edumips64-1.2.ebuild
deleted file mode 100644
index 518464fb1ce0..000000000000
--- a/app-emulation/edumips64/edumips64-1.2.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-JAVA_PKG_IUSE="doc test"
-
-inherit eutils java-pkg-2 java-ant-2
-
-DESCRIPTION="A visual and cross-platform MIPS64 CPU Simulator"
-HOMEPAGE="https://www.edumips.org"
-SLOT="0"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
-LICENSE="GPL-2"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND="dev-python/sphinx
- dev-java/javatoolkit
- dev-java/javahelp:0
- >=virtual/jdk-1.6
- doc? ( sys-devel/make )
- test? (
- dev-java/junit:4
- dev-java/ant-junit4
- )"
-RDEPEND=">=virtual/jre-1.6"
-
-EANT_BUILD_TARGET="slim-jar"
-EANT_DOC_TARGET="htmldoc"
-
-src_prepare() {
- epatch "${FILESDIR}/${P}-javadoc-cp.patch"
- java-pkg_jar-from --build-only --into libs javahelp jhall.jar
- use test && java-pkg_jar-from --build-only --into libs junit-4 junit.jar junit-4.10.jar
- java-pkg-2_src_prepare
-}
-
-src_install() {
- java-pkg_newjar ${PN}-${PV}-nodeps.jar ${PN}.jar
- dodoc RELEASE_NOTES authors
- use doc && java-pkg_dojavadoc docs/en/output/html
-}
-
-src_test() {
- ANT_TASKS="ant-junit4" eant test
-}
diff --git a/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch b/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch
deleted file mode 100644
index 14ead77d3335..000000000000
--- a/app-emulation/edumips64/files/edumips64-1.2-javadoc-cp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/build.xml
-+++ b/build.xml
-@@ -27,7 +27,7 @@
-
- <!-- Access the environment -->
- <property environment="env" />
-- <property name="base.classpath" value="libs:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" />
-+ <property name="base.classpath" value="libs:libs/jhall.jar:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" />
-
- <!-- File names -->
- <property name="standalone_jar_filename" value="edumips64-${version}.jar" />
diff --git a/app-emulation/edumips64/files/edumips64-javadoc-cp.patch b/app-emulation/edumips64/files/edumips64-javadoc-cp.patch
deleted file mode 100644
index 80e389049b5c..000000000000
--- a/app-emulation/edumips64/files/edumips64-javadoc-cp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- edumips64-1.1.orig/build.xml
-+++ edumips64-1.1/build.xml
-@@ -24,7 +24,7 @@
-
- <!-- Access the environment -->
- <property environment="env" />
-- <property name="base.classpath" value="libs:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" />
-+ <property name="base.classpath" value="libs:libs/jhall.jar:libs/junit-4.10.jar:libs/hamcrest-core-1.3.jar:${env.CLASSPATH}" />
-
- <!-- File names -->
- <property name="standalone_jar_filename" value="edumips64-${version}.jar" />
diff --git a/app-emulation/edumips64/metadata.xml b/app-emulation/edumips64/metadata.xml
deleted file mode 100644
index dfc7b27fde63..000000000000
--- a/app-emulation/edumips64/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>java@gentoo.org</email>
- <name>Java</name>
- </maintainer>
- <upstream>
- <remote-id type="sourceforge">edumips64</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/faudio/Manifest b/app-emulation/faudio/Manifest
index 1b0ddff6572f..8309fa7609e5 100644
--- a/app-emulation/faudio/Manifest
+++ b/app-emulation/faudio/Manifest
@@ -1,4 +1,3 @@
-DIST FAudio-19.06.tar.gz 899089 BLAKE2B a59ad9613bcfa71e1fc8be1f2d389f56b8f96430c354b7c7148d1e1e084102b6d8559cd258f3ab6969a4ac93e55ea2397b18dc417857e9ee0f022ea0dae65c0e SHA512 ba3ee18b47d8d85dc39e777c420522349f9873cf1528dd6c266f7254fe27cdb5bb6ab5bcbeab870938b509bfd006590d2380908b7d1e3fd679d2a434ce82eca6
-DIST FAudio-19.09.tar.gz 901659 BLAKE2B 8bb99c67b6da2660e71c7a8a70f83130738a07e7f4ddd2001fb857c81a593935506a8c1fe6d24bfd064537ea4a5a603973c32d839228d7b3f45c9c300ba15147 SHA512 127f975c68e2b449fa7cadae0723925f35ca7a2841ea3fd85037febe964331de4b2e3031ab09c292ee5f40d90902dcf78c75cc3fe7fbe4d6f37a822b4d9eb966
-DIST FAudio-20.02.tar.gz 908051 BLAKE2B 7f9323e7528949680b39469b3549adbef9acafe6f293c643676117648fd6871639fa8c7a47fdc0e1232c0533c0af9e89953415a0935fa4ad7b831aa8a8243f30 SHA512 69995fa1fb9ea41182e47f8143252db517adf4e9dc4a0556c9032af5c867259cc7edc81196b10ef043e6118a2e3687b34368f3ac8ffe9294398c5143b9928476
-DIST FAudio-20.09.tar.gz 1133191 BLAKE2B 519467051e8ce82a8e3b7dcea13ad2b076510bdef363e2170373030a1cc8cc600c0a9627dcb38923e33588eb74081ab161d7596bbb7efe02961e9a38a2e36197 SHA512 a4f06cbb07e7baa0dcf59f93412f364a70a6757079cb21b51808dafed256e557e18866974e5145d0a8509b7a4f4a68bc130a49d6704571e0a43913e73abbd984
+DIST faudio-23.02.tar.gz 1111012 BLAKE2B c776a5b882697fbbed894f129165600b1aad8b303254e9ecbf6111fff71581491b484681a71d377854077dfc23b99d1217e5322bdd9923caf4471cc0bc2ca0f2 SHA512 d83adca1f1e42b1c7d63dad30886b58a914ac9a5a254f26d3fdb2386776840e3c40b22a8dd9c7172e6c97b0db989f919fd2ebeac2ec00075a8136ec9120bc390
+DIST faudio-23.10.tar.gz 1120033 BLAKE2B 2f064ba71386db69870b4e523625c421b2062f3584f834b55367dd675a1a61509831b036ed2e459cd2ea247e2b56401142bf73b6e828bd2ff4699623ba0d453f SHA512 cc17c1c3950267a8cc69d0a263deef1d80e8bb9f658f1c2cd1c137bccac1d2be234d17f9b790bbe8bd1ba9da7e13676d3d38e328399d5a706f6ed502365de9ba
+DIST faudio-24.02.tar.gz 1122131 BLAKE2B 5ace47c679e7c35fc13157c1bdf6d8a8080fd9e3516f9007628875a2c67d1d2aab63404261c28aadcb33305c196c6e96ba8045d50e42d7f79d47ee0696bdb068 SHA512 de48196bc9d93784d2f2ce20c7aba83066a8a7653781104eb3b15fa8206e54875d5c555dab4c6fb763cf41fd6ec733e71b6bba53c8cafd98af99ea9eb0a3d666
diff --git a/app-emulation/faudio/faudio-19.06.ebuild b/app-emulation/faudio/faudio-19.06.ebuild
deleted file mode 100644
index 93b1440ba5b1..000000000000
--- a/app-emulation/faudio/faudio-19.06.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake-multilib virtualx
-
-FAUDIO_PN="FAudio"
-FAUDIO_PV="${PV}"
-FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git"
-else
- SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz"
- KEYWORDS="-* ~amd64 ~x86"
- S="${WORKDIR}/${FAUDIO_P}"
-fi
-
-DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms"
-HOMEPAGE="https://fna-xna.github.io/"
-LICENSE="ZLIB"
-SLOT="0"
-
-IUSE="+abi_x86_32 +abi_x86_64 debug ffmpeg xnasong test utils"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
-
-COMMON_DEPEND="
- >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}]
- ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] )
-"
-RDEPEND="${COMMON_DEPEND}
-"
-DEPEND="${COMMON_DEPEND}
-"
-
-multilib_src_configure() {
- local mycmakeargs=(
- "-DCMAKE_INSTALL_BINDIR=bin"
- "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}"
- "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
- "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)"
- "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)"
- "-DBUILD_TESTS=$(usex test ON OFF)"
- "-DBUILD_UTILS=$(usex utils ON OFF)"
- "-DFFMPEG=$(usex ffmpeg ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- if use ffmpeg; then
- mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" )
- fi
- cmake-utils_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_make
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake-utils_src_install
-
- sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \
- "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \
- || die "sed failed"
- insinto "/usr/$(get_libdir)/pkgconfig"
- doins "${T}/faudio.pc"
-
- if use test; then
- mkdir -p "${T}/$(get_libdir)"
- cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed"
- fi
-}
-
-faudio_test() {
- XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests"
-}
-
-pkg_postinst() {
- use test || return
-
- # FIXME: FAudio tests are broken and also don't appear to work
- # in the Portage sandbox.
- multilib_foreach_abi faudio_test
-}
diff --git a/app-emulation/faudio/faudio-19.09.ebuild b/app-emulation/faudio/faudio-19.09.ebuild
deleted file mode 100644
index 93b1440ba5b1..000000000000
--- a/app-emulation/faudio/faudio-19.09.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake-multilib virtualx
-
-FAUDIO_PN="FAudio"
-FAUDIO_PV="${PV}"
-FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git"
-else
- SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz"
- KEYWORDS="-* ~amd64 ~x86"
- S="${WORKDIR}/${FAUDIO_P}"
-fi
-
-DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms"
-HOMEPAGE="https://fna-xna.github.io/"
-LICENSE="ZLIB"
-SLOT="0"
-
-IUSE="+abi_x86_32 +abi_x86_64 debug ffmpeg xnasong test utils"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
-
-COMMON_DEPEND="
- >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}]
- ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] )
-"
-RDEPEND="${COMMON_DEPEND}
-"
-DEPEND="${COMMON_DEPEND}
-"
-
-multilib_src_configure() {
- local mycmakeargs=(
- "-DCMAKE_INSTALL_BINDIR=bin"
- "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}"
- "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
- "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)"
- "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)"
- "-DBUILD_TESTS=$(usex test ON OFF)"
- "-DBUILD_UTILS=$(usex utils ON OFF)"
- "-DFFMPEG=$(usex ffmpeg ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- if use ffmpeg; then
- mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" )
- fi
- cmake-utils_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_make
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake-utils_src_install
-
- sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \
- "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \
- || die "sed failed"
- insinto "/usr/$(get_libdir)/pkgconfig"
- doins "${T}/faudio.pc"
-
- if use test; then
- mkdir -p "${T}/$(get_libdir)"
- cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed"
- fi
-}
-
-faudio_test() {
- XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests"
-}
-
-pkg_postinst() {
- use test || return
-
- # FIXME: FAudio tests are broken and also don't appear to work
- # in the Portage sandbox.
- multilib_foreach_abi faudio_test
-}
diff --git a/app-emulation/faudio/faudio-20.02.ebuild b/app-emulation/faudio/faudio-20.02.ebuild
deleted file mode 100644
index 5afb2e48be25..000000000000
--- a/app-emulation/faudio/faudio-20.02.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake-multilib virtualx
-
-FAUDIO_PN="FAudio"
-FAUDIO_PV="${PV}"
-FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git"
-else
- SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz"
- KEYWORDS="-* amd64 x86"
- S="${WORKDIR}/${FAUDIO_P}"
-fi
-
-DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms"
-HOMEPAGE="https://fna-xna.github.io/"
-LICENSE="ZLIB"
-SLOT="0"
-
-IUSE="+abi_x86_32 +abi_x86_64 debug dumpvoices ffmpeg xnasong test utils"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
-
-COMMON_DEPEND="
- >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}]
- ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] )
-"
-RDEPEND="${COMMON_DEPEND}
-"
-DEPEND="${COMMON_DEPEND}
-"
-
-multilib_src_configure() {
- local mycmakeargs=(
- "-DCMAKE_INSTALL_BINDIR=bin"
- "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}"
- "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
- "-DCMAKE_INSTALL_PREFIX=${EPREFIX}/usr"
- "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)"
- "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)"
- "-DBUILD_TESTS=$(usex test ON OFF)"
- "-DBUILD_UTILS=$(usex utils ON OFF)"
- "-DDUMP_VOICES=$(usex dumpvoices ON OFF)"
- "-DFFMPEG=$(usex ffmpeg ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- if use ffmpeg; then
- mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" )
- fi
- cmake-utils_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_make
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake-utils_src_install
-
- sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \
- "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \
- || die "sed failed"
- insinto "/usr/$(get_libdir)/pkgconfig"
- doins "${T}/faudio.pc"
-
- if use test; then
- mkdir -p "${T}/$(get_libdir)" || die
- cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed"
- fi
-}
-
-faudio_test() {
- XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests"
-}
-
-pkg_postinst() {
- use test || return
-
- # FIXME: FAudio tests are broken and also don't appear to work
- # in the Portage sandbox.
- multilib_foreach_abi faudio_test
-}
diff --git a/app-emulation/faudio/faudio-20.09.ebuild b/app-emulation/faudio/faudio-20.09.ebuild
deleted file mode 100644
index b6fb9ffe869b..000000000000
--- a/app-emulation/faudio/faudio-20.09.ebuild
+++ /dev/null
@@ -1,97 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake-multilib virtualx
-
-FAUDIO_PN="FAudio"
-FAUDIO_PV="${PV}"
-FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git"
-else
- SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz"
- KEYWORDS="-* ~amd64 ~x86"
- S="${WORKDIR}/${FAUDIO_P}"
-fi
-
-DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms"
-HOMEPAGE="https://fna-xna.github.io/"
-LICENSE="ZLIB"
-SLOT="0"
-
-IUSE="+abi_x86_32 +abi_x86_64 debug dumpvoices gstreamer xnasong test utils"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
-
-COMMON_DEPEND="
- >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}]
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
- )
-"
-RDEPEND="${COMMON_DEPEND}
-"
-DEPEND="${COMMON_DEPEND}
-"
-
-multilib_src_configure() {
- local mycmakeargs=(
- "-DCMAKE_INSTALL_BINDIR=bin"
- "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}"
- "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
- "-DCMAKE_INSTALL_PREFIX=${EPREFIX}/usr"
- "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)"
- "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)"
- "-DBUILD_TESTS=$(usex test ON OFF)"
- "-DBUILD_UTILS=$(usex utils ON OFF)"
- "-DDUMP_VOICES=$(usex dumpvoices ON OFF)"
- "-DGSTREAMER=$(usex gstreamer ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- cmake-utils_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_make
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake-utils_src_install
-
- sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \
- "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \
- || die "sed failed"
- insinto "/usr/$(get_libdir)/pkgconfig"
- doins "${T}/faudio.pc"
-
- if use test; then
- mkdir -p "${T}/$(get_libdir)" || die
- cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed"
- fi
-}
-
-faudio_test() {
- XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests"
-}
-
-pkg_postinst() {
- use test || return
-
- # FIXME: FAudio tests are broken and also don't appear to work
- # in the Portage sandbox.
- multilib_foreach_abi faudio_test
-}
diff --git a/app-emulation/faudio/faudio-23.02.ebuild b/app-emulation/faudio/faudio-23.02.ebuild
new file mode 100644
index 000000000000..b009b323807d
--- /dev/null
+++ b/app-emulation/faudio/faudio-23.02.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Accuracy-focused XAudio reimplementation for open platforms"
+HOMEPAGE="https://fna-xna.github.io/"
+SRC_URI="https://github.com/FNA-XNA/FAudio/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/FAudio-${PV}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug dumpvoices test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="media-libs/libsdl2[sound]"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ append-cppflags -D_DEFAULT_SOURCE # usleep() in tests
+ use debug || append-cppflags -DFAUDIO_DISABLE_DEBUGCONFIGURATION
+
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DDUMP_VOICES=$(usex dumpvoices)
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ einfo "Running faudio_tests, this may take some time without output..."
+ SDL_AUDIODRIVER=dummy "${BUILD_DIR}"/faudio_tests || die
+}
diff --git a/app-emulation/faudio/faudio-23.10.ebuild b/app-emulation/faudio/faudio-23.10.ebuild
new file mode 100644
index 000000000000..e372ae484496
--- /dev/null
+++ b/app-emulation/faudio/faudio-23.10.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Accuracy-focused XAudio reimplementation for open platforms"
+HOMEPAGE="https://fna-xna.github.io/"
+SRC_URI="https://github.com/FNA-XNA/FAudio/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/FAudio-${PV}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug dumpvoices test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="media-libs/libsdl2[sound]"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ append-cppflags -D_DEFAULT_SOURCE # usleep() in tests
+ use debug || append-cppflags -DFAUDIO_DISABLE_DEBUGCONFIGURATION
+
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DDUMP_VOICES=$(usex dumpvoices)
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ einfo "Running faudio_tests, this may take some time without output..."
+ SDL_AUDIODRIVER=dummy "${BUILD_DIR}"/faudio_tests || die
+}
diff --git a/app-emulation/faudio/faudio-24.02.ebuild b/app-emulation/faudio/faudio-24.02.ebuild
new file mode 100644
index 000000000000..e372ae484496
--- /dev/null
+++ b/app-emulation/faudio/faudio-24.02.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="Accuracy-focused XAudio reimplementation for open platforms"
+HOMEPAGE="https://fna-xna.github.io/"
+SRC_URI="https://github.com/FNA-XNA/FAudio/archive/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/FAudio-${PV}"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug dumpvoices test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="media-libs/libsdl2[sound]"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ append-cppflags -D_DEFAULT_SOURCE # usleep() in tests
+ use debug || append-cppflags -DFAUDIO_DISABLE_DEBUGCONFIGURATION
+
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DDUMP_VOICES=$(usex dumpvoices)
+ )
+
+ cmake_src_configure
+}
+
+src_test() {
+ einfo "Running faudio_tests, this may take some time without output..."
+ SDL_AUDIODRIVER=dummy "${BUILD_DIR}"/faudio_tests || die
+}
diff --git a/app-emulation/faudio/faudio-9999.ebuild b/app-emulation/faudio/faudio-9999.ebuild
deleted file mode 100644
index 93b1440ba5b1..000000000000
--- a/app-emulation/faudio/faudio-9999.ebuild
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# shellcheck disable=SC2034
-EAPI=7
-
-CMAKE_MAKEFILE_GENERATOR="emake"
-
-inherit cmake-multilib virtualx
-
-FAUDIO_PN="FAudio"
-FAUDIO_PV="${PV}"
-FAUDIO_P="${FAUDIO_PN}-${FAUDIO_PV}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/FNA-XNA/${FAUDIO_PN}.git"
-else
- SRC_URI="https://github.com/FNA-XNA/${FAUDIO_PN}/archive/${FAUDIO_PV}.tar.gz -> ${FAUDIO_P}.tar.gz"
- KEYWORDS="-* ~amd64 ~x86"
- S="${WORKDIR}/${FAUDIO_P}"
-fi
-
-DESCRIPTION="FAudio - Accuracy-focused XAudio reimplementation for open platforms"
-HOMEPAGE="https://fna-xna.github.io/"
-LICENSE="ZLIB"
-SLOT="0"
-
-IUSE="+abi_x86_32 +abi_x86_64 debug ffmpeg xnasong test utils"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
-
-COMMON_DEPEND="
- >=media-libs/libsdl2-2.0.9[sound,${MULTILIB_USEDEP}]
- ffmpeg? ( media-video/ffmpeg:=[${MULTILIB_USEDEP}] )
-"
-RDEPEND="${COMMON_DEPEND}
-"
-DEPEND="${COMMON_DEPEND}
-"
-
-multilib_src_configure() {
- local mycmakeargs=(
- "-DCMAKE_INSTALL_BINDIR=bin"
- "-DCMAKE_INSTALL_INCLUDEDIR=include/${FAUDIO_PN}"
- "-DCMAKE_INSTALL_LIBDIR=$(get_libdir)"
- "-DCMAKE_BUILD_TYPE=$(usex debug Debug Release)"
- "-DFORCE_ENABLE_DEBUGCONFIGURATION=$(usex debug ON OFF)"
- "-DBUILD_TESTS=$(usex test ON OFF)"
- "-DBUILD_UTILS=$(usex utils ON OFF)"
- "-DFFMPEG=$(usex ffmpeg ON OFF)"
- "-DXNASONG=$(usex xnasong ON OFF)"
- )
- if use ffmpeg; then
- mycmakeargs+=( "-DFFmpeg_LIBRARY_DIRS=${EPREFIX}/usr/$(get_libdir)" )
- fi
- cmake-utils_src_configure
-}
-
-src_configure() {
- cmake-multilib_src_configure
-}
-
-multilib_src_compile() {
- cmake-utils_src_make
- emake -C "${BUILD_DIR}" all
-}
-
-multilib_src_install() {
- # FIXME: do we want to install the FAudio tools?
- cmake-utils_src_install
-
- sed -e "s@%LIB%@$(get_libdir)@g" -e "s@%PREFIX%@${EPREFIX}/usr@g" \
- "${FILESDIR}/faudio.pc" > "${T}/faudio.pc" \
- || die "sed failed"
- insinto "/usr/$(get_libdir)/pkgconfig"
- doins "${T}/faudio.pc"
-
- if use test; then
- mkdir -p "${T}/$(get_libdir)"
- cp "${BUILD_DIR}/faudio_tests" "${T}/$(get_libdir)/" || die "cp failed"
- fi
-}
-
-faudio_test() {
- XDG_RUNTIME_DIR="/run/user/0" virtx "${T}/$(get_libdir)/faudio_tests"
-}
-
-pkg_postinst() {
- use test || return
-
- # FIXME: FAudio tests are broken and also don't appear to work
- # in the Portage sandbox.
- multilib_foreach_abi faudio_test
-}
diff --git a/app-emulation/faudio/files/faudio.pc b/app-emulation/faudio/files/faudio.pc
deleted file mode 100644
index cdb3bf49e64a..000000000000
--- a/app-emulation/faudio/files/faudio.pc
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=%PREFIX%
-exec_prefix=${prefix}
-libdir=${prefix}/%LIB%
-includedir=${prefix}/include/FAudio
-
-Name: faudio
-Description: Accuracy-focused XAudio reimplementation for open platforms
-Version:
-
-Libs: -L${libdir} -lFAudio
-Cflags: -I${includedir}
diff --git a/app-emulation/faudio/metadata.xml b/app-emulation/faudio/metadata.xml
index e5eb47a51e63..430772900c80 100644
--- a/app-emulation/faudio/metadata.xml
+++ b/app-emulation/faudio/metadata.xml
@@ -1,28 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>wine@gentoo.org</email>
- <name>Wine</name>
- <description>
- This package must be kept in sync with repo/proj/wine repository.
- Any changes need to be run past the maintainer to ensure the two repositories are kept in sync.
- </description>
- </maintainer>
+ <!-- maintainer-needed -->
<longdescription>
-FAudio, is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries
+FAudio is an XAudio reimplementation that focuses solely on developing fully accurate DirectX Audio runtime libraries
for the FNA project, including XAudio2, X3DAudio, XAPO, and XACT3.
-Project Website: http://fna-xna.github.io/
+Project Website: https://fna-xna.github.io/
</longdescription>
<use>
<flag name="dumpvoices">FAudio dumps buffer data to individual files with RIFF/XWMA headers, usable with players like ffplay/testxwma.</flag>
- <flag name="ffmpeg">FAudio has optional support for decoding xWMA resources using FFmpeg, requiring:
- <pkg>media-video/ffmpeg</pkg></flag>
- <flag name="xnasong">Build support for optional XNG_SONG component (note: this not required by
- <pkg>app-emulation/wine-staging</pkg>, <pkg>app-emulation/wine-vanilla</pkg> for faudio XAudio support).</flag>
- <flag name="test">Build and run faudio testsuite.</flag>
- <flag name="utils">Build all faudio utilities.</flag>
</use>
<upstream>
<remote-id type="github">FNA-XNA/FAudio</remote-id>
diff --git a/app-emulation/firecracker-bin/Manifest b/app-emulation/firecracker-bin/Manifest
index 976223f10a75..f1969674bc5a 100644
--- a/app-emulation/firecracker-bin/Manifest
+++ b/app-emulation/firecracker-bin/Manifest
@@ -1,8 +1,6 @@
-DIST firecracker-v0.22.0-aarch64 1615168 BLAKE2B 56965a1999038e9b59e37230177812b936ad1b3cba91b6f805a1a6ecc81903f093c13b75ff78c8720d67596bdd71378cc757bda0b6061e3fb4d62607e299b065 SHA512 fb42bc5ecd0af487490f2c4bd3804d2430263740bbdec66c063d9b6c865d6b9c42b31cafb78d4a0cc40c11cc5242608b9d30676e55ac2b8dcb05d5f3db535bdf
-DIST firecracker-v0.22.0-x86_64 1657736 BLAKE2B 84dbe8db596017e312fad1cd3c72d1b5d7306ad400a320431c8cae5b901b534f2735ac75cb5b9133c6c6f2603b877e4842d54165972a46df4193fbbc513c3b2d SHA512 ac9544e8b770ff7a0c9234feb3154522bd6163f3903993cd019cc4abaa90ad24447f18e65e1022aafb7274ca97281286f898a50ac9f27c7f661d48df52d7fd08
-DIST firecracker-v0.22.1-aarch64 1624032 BLAKE2B e5705e423e032c480bbdd499bb4e0b5674079b096bd0983f21f3e9c664d442a76f3a195075a641445505b777823a4c1670a1544828b84370e21d5bde4c091ed3 SHA512 4d9222e19d616a017780711c426d0aa5b41571e744648cc3a922601857387ebcb9dc0a238019e7a33e45445221d93d739c0ec8c465ab922583bac2970a1af003
-DIST firecracker-v0.22.1-x86_64 1658032 BLAKE2B 1513ed2b0ad550a0e21fb77bc5fb84091ff73b4e79c716238b14366234d303bb391d3e6a58878529f8131c72bd53d81a18caf06230d290bbefc08f280d856e5c SHA512 5327a22a1c0dc4e9a1ceba8455933131ddb9ef91e0a9b875a7b5c5f45f309fe40b841a26b5d0bdd24e18bb7472c264598d59fb0db20bdf5ec39f47b23ede44fa
-DIST jailer-v0.22.0-aarch64 1322088 BLAKE2B 72db7eba02371af2a53b6ebd8c9fb909bd027cdd2b4207e0b2a02febe587780f9aa3be665b37580907ab8a58d8745cbcda90a85bda56a42b2eb8be9a931af13f SHA512 86ca629b3060cefa9e31292844486c6d9b6fa0538b6d515e4cbb07fa4a675ce93d5f87fcd769f62aea0df029cdbd7a5055a282b8344ed35d895606aca7f22a14
-DIST jailer-v0.22.0-x86_64 1427600 BLAKE2B 7ab09cce8963c89dae7c89c3a2d1dc582fdf8c11c3e051deb08c70fd2995a2154c493432e39851bebc62c1f6a9f98cfc9a9fa4107c5d9cf8ba940d4bb3349d86 SHA512 f2dcaee775cd1cdea4c1c1f6e89b82ba6636ab065291b704faaa836f864f14802a56af76ce397d7f98e9420d55720dc4459ae4443babfc7bb16d64dde11cb854
-DIST jailer-v0.22.1-aarch64 1322088 BLAKE2B 7e5e1d106789af37a9a113b005184c2e65943beaec08e99b149bdcd72237c089d9a8126e2b498b433dd94181ab8042205cad31beba1352707081fdc08e7a4293 SHA512 6e147d581870a46e6cad7efb949265a47d1471ae5744216f8a591ffa00001590e2939b8153107b3188e224069207c82624efc98ae5d5becb6c324860ce509548
-DIST jailer-v0.22.1-x86_64 1427600 BLAKE2B f592c951594a2739cb56accbfc2c971f44aa7d4fde36d8a170b8c72749ba25020caf6505865ca9ab4932386b9a9a4e0b2bf984fc2712b6d4c5bf7c3df23aa085 SHA512 f28b08c5baf003eae93bbb7199136c76b9c104928ccb74ad7ca3af0269c4eebd80528a995caa5aff5bc70997932cd1485e416046a8e4a6c199be430c4a72213a
+DIST firecracker-v1.5.1-aarch64.tgz 9086440 BLAKE2B 30777522bdb23e80bc3a025691d50a14411c0ac72fd87e5b9b460f18d0873d0a6423e19e7810afe0ed1324b2b32fc615b525ad9561c1bfea48fc53bdfbb610a5 SHA512 61f7fcf427817eebcd6cb6f046dad29e3a39d382c087418379f4502ef715605e2bb9e3b647233680f44b7e0047a6ca00135011bb929b44c5340bb8b8649fde1a
+DIST firecracker-v1.5.1-x86_64.tgz 9411106 BLAKE2B 538b531ce5c8319dee042229a7cc7c44cdd2fc07c58c3089b6c2d29d10ad8a5a78f697b7781ac81bcf8b4127e778895ab72eed9e1e6febd410b6c0509c01ae1e SHA512 63a44fb79e9fb29abfbaa6c96550c5f2f361c3be5e188bb4562b089b4d3f1f4ab3ef60ad3ab163e961857e95090401dc4df859d2dd2a5f1a1372ed663188cfa3
+DIST firecracker-v1.6.0-aarch64.tgz 9105124 BLAKE2B bcc77e6701a4b9c7d80d7e60b13d4945d5f76918cc1741035f26df5af05c4c579802444c90c8972a7985d4df8e10f2b9954b5889eca92f5d95b02751481084db SHA512 71608a46bdb5be5240d4a88e812c13e753d81e4f4813a818ebfd782934add2c3769bd71788f5e2bed1a6e1d9bcfc3a914e018f1682cc6806012c3e283e44f401
+DIST firecracker-v1.6.0-x86_64.tgz 9425451 BLAKE2B bae5eb960c6d575724915cfd4cb50cdc85d6be44b47271a5d68662b7ce86a7356aad215097214b7d32dad9051f385188d83592588be1addc15727c633f10e4d1 SHA512 a00b0d1b8da02b167627169d316b6a88bd44b1f42eb2cbebad5c355485f2456288d2062cb63b1ddc4d636ae8f4fad3a15dc9404b5347e746a7b416758d6507d5
+DIST firecracker-v1.7.0-aarch64.tgz 8951358 BLAKE2B 813be9e38e318233b3b574e21e3f07e3eab82eba1a22ca2082a7e2b9312b8022fd288ac4b72dbfa82f8a8ab561e4877553c249913d290b0701773d53a28296a7 SHA512 1b78353e204569acace417a95bfd2075f909205d59c32cbce18438751d5aeaae8ac3e3d3791d153a30337037c01fd6622793aa200a7e21d51f98a886123c545d
+DIST firecracker-v1.7.0-x86_64.tgz 9038632 BLAKE2B 6473113f2cc8225fdf8fc6f8612874c46fda05c13ebda040b7998554fda3e9cc69fbfae9481dc9e5b3100f05b50a82525810deccebaf45665d67aca7ebc0dc23 SHA512 cca5390c81bb9b78865608729840f12a1e9b9ed072859853e1f2853312dc62a78f0206fa007174c5fc18a7bf7d6e4b905e954ecdf6c3b78782d65e9801a45a0b
diff --git a/app-emulation/firecracker-bin/firecracker-bin-0.22.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild
index a54445d88b2c..e280abe72c3d 100644
--- a/app-emulation/firecracker-bin/firecracker-bin-0.22.0.ebuild
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.5.1.ebuild
@@ -1,7 +1,7 @@
-# Copyright 2020 Gentoo Authors
+# Copyright 2021-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit linux-info
@@ -9,25 +9,26 @@ DESCRIPTION="Secure and fast microVMs for serverless computing (static build)"
HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker"
SRC_URI="
amd64? (
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-x86_64
+ https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz
)
arm64? (
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-aarch64
+ https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz
)"
LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0"
SLOT="0"
-KEYWORDS="-* ~amd64"
+KEYWORDS="~amd64 ~arm64"
RESTRICT="test strip"
-RDEPEND="!app-emulation/firecracker
- acct-group/kvm"
+RDEPEND="acct-group/kvm"
-QA_PREBUILT="/usr/bin/firecracker
- /usr/bin/jailer"
+QA_PREBUILT="usr/bin/cpu-template-helper
+ usr/bin/firecracker
+ usr/bin/jailer
+ usr/bin/rebase-snap
+ usr/bin/seccompiler-bin
+ usr/bin/snapshot-editor"
S="${WORKDIR}"
@@ -38,7 +39,7 @@ pkg_pretend() {
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
- CONFIG_CHECK="~KVM ~TUN ~BRIDGE ~VHOST_VSOCK"
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
@@ -49,9 +50,6 @@ pkg_pretend() {
ERROR_TUN+=" virtual network devices."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
- ERROR_VHOST_VSOCK="To use AF_VSOCK sockets for communication"
- ERROR_VHOST_VSOCK+=" between host and guest, you will need to enable"
- ERROR_VHOST_VSOCK+=" the vhost virtio-vsock driver in your kernel."
if use amd64 || use amd64-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
@@ -67,16 +65,23 @@ pkg_pretend() {
fi
}
-src_unpack() { :; }
src_compile() { :; }
src_install() {
+ local my_arch
if use amd64; then
my_arch=x86_64
elif use arm64; then
my_arch=aarch64
fi
- newbin "${DISTDIR}/firecracker-v${PV}-${my_arch}" firecracker
- newbin "${DISTDIR}/jailer-v${PV}-${my_arch}" jailer
+ dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml"
+ dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json"
+
+ newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper
+ newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker
+ newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer
+ newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap
+ newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin
+ newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor
}
diff --git a/app-emulation/firecracker-bin/firecracker-bin-0.22.1.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild
index a54445d88b2c..4e841c1ab26e 100644
--- a/app-emulation/firecracker-bin/firecracker-bin-0.22.1.ebuild
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.6.0.ebuild
@@ -1,7 +1,7 @@
-# Copyright 2020 Gentoo Authors
+# Copyright 2021-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit linux-info
@@ -9,25 +9,26 @@ DESCRIPTION="Secure and fast microVMs for serverless computing (static build)"
HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker"
SRC_URI="
amd64? (
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-x86_64
+ https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz
)
arm64? (
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64
- https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/jailer-v${PV}-aarch64
+ https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz
)"
LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0"
SLOT="0"
-KEYWORDS="-* ~amd64"
+KEYWORDS="~amd64 ~arm64"
RESTRICT="test strip"
-RDEPEND="!app-emulation/firecracker
- acct-group/kvm"
+RDEPEND="acct-group/kvm"
-QA_PREBUILT="/usr/bin/firecracker
- /usr/bin/jailer"
+QA_PREBUILT="usr/bin/cpu-template-helper
+ usr/bin/firecracker
+ usr/bin/jailer
+ usr/bin/rebase-snap
+ usr/bin/seccompiler-bin
+ usr/bin/snapshot-editor"
S="${WORKDIR}"
@@ -38,7 +39,7 @@ pkg_pretend() {
if ! linux_config_exists; then
eerror "Unable to check your kernel for KVM support"
else
- CONFIG_CHECK="~KVM ~TUN ~BRIDGE ~VHOST_VSOCK"
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
ERROR_KVM="You must enable KVM in your kernel to continue"
ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
ERROR_KVM_AMD+=" your kernel configuration."
@@ -49,9 +50,6 @@ pkg_pretend() {
ERROR_TUN+=" virtual network devices."
ERROR_BRIDGE="You will also need support for 802.1d"
ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
- ERROR_VHOST_VSOCK="To use AF_VSOCK sockets for communication"
- ERROR_VHOST_VSOCK+=" between host and guest, you will need to enable"
- ERROR_VHOST_VSOCK+=" the vhost virtio-vsock driver in your kernel."
if use amd64 || use amd64-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
@@ -67,16 +65,23 @@ pkg_pretend() {
fi
}
-src_unpack() { :; }
src_compile() { :; }
src_install() {
+ local my_arch
if use amd64; then
my_arch=x86_64
elif use arm64; then
my_arch=aarch64
fi
- newbin "${DISTDIR}/firecracker-v${PV}-${my_arch}" firecracker
- newbin "${DISTDIR}/jailer-v${PV}-${my_arch}" jailer
+ dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml"
+ dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json"
+
+ newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper
+ newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker
+ newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer
+ newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap
+ newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin
+ newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor
}
diff --git a/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild b/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild
new file mode 100644
index 000000000000..4e841c1ab26e
--- /dev/null
+++ b/app-emulation/firecracker-bin/firecracker-bin-1.7.0.ebuild
@@ -0,0 +1,87 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-info
+
+DESCRIPTION="Secure and fast microVMs for serverless computing (static build)"
+HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker"
+SRC_URI="
+ amd64? (
+ https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-x86_64.tgz
+ )
+ arm64? (
+ https://github.com/firecracker-microvm/firecracker/releases/download/v${PV}/firecracker-v${PV}-aarch64.tgz
+ )"
+
+LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RESTRICT="test strip"
+
+RDEPEND="acct-group/kvm"
+
+QA_PREBUILT="usr/bin/cpu-template-helper
+ usr/bin/firecracker
+ usr/bin/jailer
+ usr/bin/rebase-snap
+ usr/bin/seccompiler-bin
+ usr/bin/snapshot-editor"
+
+S="${WORKDIR}"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 4 14; then
+ eerror "Firecracker requires a host kernel of 4.14 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use"
+ ERROR_TUN+=" virtual network devices."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+
+ if use amd64 || use amd64-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+}
+
+src_compile() { :; }
+
+src_install() {
+ local my_arch
+ if use amd64; then
+ my_arch=x86_64
+ elif use arm64; then
+ my_arch=aarch64
+ fi
+
+ dodoc "release-v${PV}-${my_arch}/firecracker_spec-v${PV}.yaml"
+ dodoc "release-v${PV}-${my_arch}/seccomp-filter-v${PV}-${my_arch}.json"
+
+ newbin "release-v${PV}-${my_arch}/cpu-template-helper-v${PV}-${my_arch}" cpu-template-helper
+ newbin "release-v${PV}-${my_arch}/firecracker-v${PV}-${my_arch}" firecracker
+ newbin "release-v${PV}-${my_arch}/jailer-v${PV}-${my_arch}" jailer
+ newbin "release-v${PV}-${my_arch}/rebase-snap-v${PV}-${my_arch}" rebase-snap
+ newbin "release-v${PV}-${my_arch}/seccompiler-bin-v${PV}-${my_arch}" seccompiler-bin
+ newbin "release-v${PV}-${my_arch}/snapshot-editor-v${PV}-${my_arch}" snapshot-editor
+}
diff --git a/app-emulation/firecracker-bin/metadata.xml b/app-emulation/firecracker-bin/metadata.xml
index 7f6b797d9b1f..60d11bb309b0 100644
--- a/app-emulation/firecracker-bin/metadata.xml
+++ b/app-emulation/firecracker-bin/metadata.xml
@@ -1,12 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>gentoo-bugs@ares-macrotechnology.com</email>
<name>Sebastian Hamann</name>
</maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
+ <upstream>
+ <remote-id type="github">firecracker-microvm/firecracker</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/firecracker/Manifest b/app-emulation/firecracker/Manifest
deleted file mode 100644
index 0a7d8a3a46ec..000000000000
--- a/app-emulation/firecracker/Manifest
+++ /dev/null
@@ -1,35 +0,0 @@
-DIST aho-corasick-0.7.8.crate 110524 BLAKE2B 73ab4ab48f17ffb3f555801f234ee0dce4f5c46c9998c1e14abde4df192122e09f6d87a9c627b43c740d5ad921c7411365093b76e9157cf3dae9c52ff255847b SHA512 fcc7f1230b1fc0e59b032c5aa2e6c334dffab7785ade7776a688821faf7fe10348dbb222affd362d37ad8850b0b17d44ff124eafe7345c6ffbbcb98acfdafed1
-DIST backtrace-0.3.44.crate 68057 BLAKE2B f990523e461a0ae905b41a84d3b767e4cde4c401e12fe9875b22ba3b7ebbe2fb18d65bfe79fafcf008947cb0fd4be9a2ba992ca9427b61157df2b11981a03ad8 SHA512 69bd648061edbae4281e7524ef4fb43aea8dc68fde30e11027824513daf6a48b6d18227533e3a6a44d1b0b30046aa93921af9a560b11b62f1d812802cc6ce6b2
-DIST backtrace-sys-0.1.32.crate 518920 BLAKE2B fbbd3b59533830400a788fd117ced47461d2f2b04d205d03f242d596c284e89ef2dbaead81e6974aa65197a6c69c0293f18dbe89daf3323d0c01dbc92462a075 SHA512 199658b1f95611f7c68a7b4fdd76044fb6784a7ab777a9f5fbe3a4a770bd6c31ac08dfea1297dd85053f0b28b1a686c076a78b120ac46fc3c639c30c937d49c3
-DIST bitflags-1.2.1.crate 16745 BLAKE2B 0fa6d3ce44aad7616d5cd02aad8c1d0b0fed4022650eb43067c4a72e6fc88da05442674fa51826e4858a47c9de233e1ba2229820af094197cd11bb416ceffb2b SHA512 ad89b3798845e23737a620bba581c2ff1ff3e15bac12555c765e201d2c0b90ecea0cdbc5b5b1a3fa9858c385e8e041f8226f5acfae5bbbe9925643fff2bf3f0b
-DIST cc-1.0.50.crate 49792 BLAKE2B 25ec14fd42536c381babcf697cf96fe8be61417a61ba5875a2461bb40bf3ffd9c9d03e1d9df83e2dabfc9472de3db97b08fdffb710e89b868a5e115d0463a9cd SHA512 34a721d9352f8b59cffb8cc0b9c520b972b65d6c23e83d9c6f6e88d6a6845c53ec89350a4aacd0444a5d6b03b867b97aedaf418b483afead209a7ae6d3885f5d
-DIST cfg-if-0.1.10.crate 7933 BLAKE2B 063a96ed176f34f788666b40adc483d147fc011dee941ab60569ddd0e57502b5dd06ed71090f4e14ce005d06e240500a286f74652615e9d068fba649610d8cf8 SHA512 9d22616bfb4a75770a828a0a3cddac6787297a5fdc53eb17e25811cc94de717f2de8bd66d53c5d65ba1c83d8892aefee5ae758cf56a1ef0a0c3120f70b244339
-DIST cpuid-0.1.0.crate 5473 BLAKE2B ff6536dd8fa1aeaf52b3ae28e5d0c3e0033383d7265eb91f376843516492e3f9d2c43bb6667538342158e6abb9c606b4e6129786d6cb48fe86f1c1effe005df2 SHA512 5b24b49acccaa393f351fca2a2cc7c5e5227e7e0f99680c109bff19377fa5822f37ad1561a33be25e34be654dd4f118ded974c7acc79608fe1efd8c19c4f8404
-DIST device_tree-1.1.0.crate 7049 BLAKE2B 11236d709c7d35d6482eed7ccf8ac82dfbb4412bcf2fec98fd2a806bcf8740c1d0b2745c39b5971f5292ad00887f423afc28a4c674cdf37511cd8615ff654cbd SHA512 b671b582d9f5dc19d8ff28d18fd2ed77842191084c6acbb41362491ea3c994699044fe0b0505f927ad9569d933806f8129a4eb49bf25443c0806ddcb6ffefad7
-DIST epoll-4.1.0.crate 8220 BLAKE2B c61173347865d82ab3a975aaa6cce7004a92c08c682ee16f0f94caa01729648630673923f14f1f3f48532efe09464c73c21eb7e4edea6168909af75dbb3a44d1 SHA512 28d67beaf84f056486ed3bfdc0ad5386006322c601e32c6097f8d2466cc840265996011685ebd8d21259fad22410e9f7b0327ada9ce686873cfae660f7d069a0
-DIST firecracker-0.21.1.tar.gz 4118295 BLAKE2B 83b3db38ae0ac0df68dc36cdc56927f34be3a2f3de78364d68d32cbb797ba6dc6bc22e1e5da85192d503011cc061647837c6a6e66a94212cd16779f6e63adeea SHA512 630b44fe4e19927bcad49b7b658d87d01c99609d53f27eb82afeee67eda7805ef14e65413976b3b3e01a6ca3402e4da33ca900b421ac210f5a10f9a552568a2c
-DIST itoa-0.4.5.crate 11194 BLAKE2B d8f0e2aaf62152c187e0987ab4b0cf842ac13255262a9ccbf8484d730ea5397572791c023d2363d0562c18c8efd2418680583e99a1f5d14450b3f0184dce69ca SHA512 79ff8774524130a4729d5e708a4a4a837b3e5052384a12c22db4ae3e208dc4391ee185365f685137a8ba55ea7dc3499f8cddddb2fd98b84177ab292c264034d3
-DIST kernel-0.1.0.crate 153163 BLAKE2B 5c1635a16f69567ceaed92c028ef92bac0a07d7dba9c4a4997710fdfa881e906a4756744b978240b35ed2ddc1ddeb0e4be3b375693c12a49e2f27dd1255afc0d SHA512 75c9dd43b9f00dacbb9a3771be458721498ef77dd74db4f2e5f116c761767a007730f028d0d7a137efb35917b264134bfdedeafb90b96d50461d98b0f11a93c5
-DIST kvm-bindings-0.2.0.crate 131794 BLAKE2B 50bddbf171957094555fab00f7cecb2cd6cbd2582c39d8f06f9b13f5f2b39d69db7fa1febbd2ed6f59f712e86782c38de62b3bc770fb9b7611d923e709860e5f SHA512 770c077e9303d679441e7f9389790f2077ce47ffbb862227fd5801fdfff07a7caff3194e9c85da5c52e9989fbf5faa345eb1be3791d73373b6c0298e8b33d138
-DIST kvm-ioctls-0.5.0.crate 39761 BLAKE2B b3546749452822b18932f49260cffa1fb830c871e5a8f89bb868f56e36f1c3af9c9e51da57d72504558926f19838eb35d9bc1dec5f77cb8973e2cafd63d19f22 SHA512 c97d2b16dfd3cc679728b15efdd1d3fb667dd3a9e92e2974da9d9e36b00434f322eaf3a60c4f387a09c25482bca5f2168e83611bf898829a262d286f7283b895
-DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
-DIST libc-0.2.66.crate 457815 BLAKE2B 5da379ea738b75189e106d4be821c999394043303b8bb6a9caecdb1b53e449f11a58edc4589193611b76e7baf00e155ba1077bcca4d0cfae30826e946a0075f0 SHA512 5bf5645a7cbe626108cd71e1d189286ed161fcd3ea12cd34f4e392be4cf93bf78feb6128b1101bedc41a71091398f26771f3efd3880f779ee0be00f706914975
-DIST log-0.4.8.crate 31297 BLAKE2B 31037fdc2fc94f4ab8a6e89a251b0bc29975027dc7efb7cc86a8e848dfc8e2ae50acdb177b7ba9f7c1f20ec01e50798f89abb772d67a33f1b060ac617cf9a8ab SHA512 0b71f97d5964134b5eea1332347e177806b2f171d0be5c410c0ff1539470b242ba9f0933fafd853e4171a43b5e373a150af18918924be431c7216022553a8a3b
-DIST logger-0.1.0.crate 7908 BLAKE2B ba678076c287e6c45106689220481ca04a620293398cecc2f73217095592dc0d30345b98df45722c91996cd75dfbd4b3bf6a1649cb7d4ae2434bdc78f3d5fdeb SHA512 a907cfc8a17197f7889a0b4b15880acb1eaf12b1fdb60d77bfe258c883c83b0644ab4d45381070921d3a2d5109a88d2ec7c1977f6952896097ea6daf6f638453
-DIST memchr-2.3.2.crate 22528 BLAKE2B 26cbb8836d9a2ff0d00426162e61ba11961d286f53c73726cd483cad0ed034341236f8440752483eda5413012fd99881ea3e884b60360e4eccf411540212d4c4 SHA512 d08326c891b6b818468de092f59a13dd791c0d035c5a39fa1019a1f3077d38c22a2aa855e28e520ca89e3a9bc9433d6b7dcbbf1e8853c3466a0fc6e9f37d4390
-DIST proc-macro2-1.0.8.crate 35657 BLAKE2B 6f53919e85028b6ca2f1d04feb7daf9bf9c2f76273ee8813d9b09807585a1da81687b880b2f23109998332bd7f5d3798d83094042a44de66413a2cebcd60a2c8 SHA512 0214a1268a733872ef1fa59ab80a1cb9ed8f160b9f3751cd70cb26c0919bb3858e63c994163c727f7c7486067ebc681017fb452d51fa314e7da90ca120892254
-DIST quote-1.0.2.crate 23023 BLAKE2B 4091809b4fc9b8d0b56be814b127d6ffd7c1507becba85dc905606cbe85f46233dc4b429c1e865e7c7de336cb936d956169ceb5dd45b489b7722022ccf818a3a SHA512 67778dff9dc5c4edcdd6454b74ad9353bb6c0c4e51c16cb82f2e393a7d7a0cde084d3c93279b718a8398c40af0a9377ebfae5321e69e635efd8390c125b75ce4
-DIST regex-1.3.4.crate 235086 BLAKE2B 3216a16a3f7cebf4dcf9e3bf624c482b2ee60e04b6b1baf265e42b8219338ae8a84ffd40df975963d267cfb8b65b1dc6358b95e4dde0b557a595eace2c03845a SHA512 4e49b30803beb30d35b61e6804f4b634065b4098a1adfb3ba33018e685662f31e9b9f93f21422fee909edf500f8012699013dcb7ebae96f072147da03c1371bc
-DIST regex-syntax-0.6.14.crate 289666 BLAKE2B 2d5c3696b3cb011467395121e753d5f6f506b6dea8fe936613c66267a85ce2e6e06749e6481f54effc34c5a403708fdcda11e385ad64cc1f421eb976ab0fa664 SHA512 440e519c30b2de5df2426336eb26ee56d58671d5d9bc33897ae1b38c022170f080ac8d27d959160a78781948f2ed3679755773e24275dad3ee0bb8cb70a4b174
-DIST rustc-demangle-0.1.16.crate 19137 BLAKE2B 04226ff97786b81c90130b48cf6542ea448661af9ea7afed179e71d04abf52cfd3c53fab26d4d35bdf2c1d5a735882da7703527aa48ba7b77f337599c2324150 SHA512 36a63a28a72c710d08524adbb7d11def37db23fe123fb6ea848623b4207c7f80d8415bbbe951488ceccfb8f4f1cdb66a8edfc4c0eecdaa62c87df9e032f4c063
-DIST ryu-1.0.2.crate 42001 BLAKE2B c25f0454bfac40de3150b8c263c6d2842e64f86f441a69ab5e5722a2383a9a07c7539837f6e50996619eb0c4a5da212556a4dd21a761a250785fe0a9c4e18a3c SHA512 c681e037f1eea488bad7fb5ecc79af52377bd4b9eeed95eb213201219d7f100702000f81947aff8f18641235fb62c138a30eb20c1f93ae518a4d9960a598bb64
-DIST seccomp-0.1.0.crate 2750 BLAKE2B cac2a5b20e640d94474f4c3db5f6102f0c45a8211080e2cc806828d1c20220d847c8bd4cf770543be56a36de4f0486725241c63215e041d2a0c35b6523eead3a SHA512 a13d27ac138e6c9fe83d25f94dcf23ec5a2a326504290bc20efc379b05d24ea5dde06a371af7e52c62fec81b0c8dd26ffb3c0a0baa3b701ccfa4f09019c6e1c8
-DIST serde-1.0.104.crate 73258 BLAKE2B 98d63f91c61ac4693e17e0b137379cffd6608933b84d2211509be6b3b25b181592d5e907549fac6ae2e4a45255b8003e1bfd0db683429ac3e78d8ee097d3d79c SHA512 638a1dacc158d69658a005e599adc19d6bc80d0c663f527b1ff906f729e70e027eacc4ea5b9b2c675ac990d5997f50f9d46d614ba95b0c73bb9606aba46b053a
-DIST serde_derive-1.0.104.crate 49658 BLAKE2B d4a9ecb4a8df87776a83d645778dc050803b16fd5c9889f28e231238223d424dd25b101412e89741fb47be624d1773acf97f6e38809c81110b696701975168df SHA512 303c3d126ca56b0a7126a87e9e1be8bd60bdb212ed21b5e1aee015313fd769f1d260869c41b0335bd467fd4e3fc6bb26f428c7c4b35e9a55c009797cfa745d1e
-DIST serde_json-1.0.48.crate 72113 BLAKE2B bc522d0924044b41548b5c0ca63ed3e1fe70b7632b9e04ca6b01a63245deeae0e7154b0d913b3edfeaecfc816c1edfebfb666734c2a5371b416aaab9c1880f3c SHA512 544dd844330a26fbdaeb5246825f143cf06110065089c8be3dc44f8437f797ac083d7dcc5181656ed3d78428fcddc44e6802544ae304466eebdcd625a5a5fef9
-DIST syn-1.0.14.crate 195286 BLAKE2B 8311cdc0eb8ff69d65c250eb95706cd1e74a6ba899fac02ffc0a288e978c40a03fe5a7c18e3116a767eb6e5e08299d27f5ae04021b224d71d7b492a6b87d67a8 SHA512 7b2b7562ac89d719060b35bf89f21330c02a3c1f34270e864053feba9b0f7a16b5cfd11c57d57eab7c60df8663d8ae76709ca1c48ebab960db168d2836f57340
-DIST thread_local-1.0.1.crate 12609 BLAKE2B 34206b5232262cda9cc0fb970e20f154d43ff1c4477a5ad5ff9200e6d874a6c7b2bcd99a2dae75a984b54574281e049ad35307ace0dd188f44c9a95fa93139cf SHA512 f2bfca4eee32a8fc88a01ff5bf24518c12142228d95916d13aae35ed6addd0b7da2235359f15220049ef197555344ac31a8833775e7a5bd49144db9c54b3165b
-DIST timerfd-1.1.1.crate 6020 BLAKE2B 689dbc603b2d943a1de1b035020a3a641a1be0f19a8092088c54e339778f1368127e2f7b2273d25a3c3e1c1401b2a4f0a0310116dcb87cbb41e3a05ba86de45f SHA512 3bd82e1d7d10a2ee4000cc2316afebb7cac68ee738da312013062df30acba11f6e3007b9ec00116f53d334b85d73575e671f93a632d484154a01b886a94bec1c
-DIST unicode-xid-0.2.0.crate 14994 BLAKE2B e66b4255798f0ef1c81fb852613fee396a042d780d2158a171dbb5e7dedad0b3d2522f5401ae5d215f89ab8be4f5c371b046e4845693a65554c2a6eedc5d1e28 SHA512 590f727d8d8354023062ae5fe7ac5bed1bcf79d86b883effd7f33b3ea3b1c8922998a63d621ca6962a969e890fa6edd009871f21cd57b1969264f41ba3f78359
-DIST vm-memory-0.1.0.crate 50965 BLAKE2B d85879f85c39ac44114945fa42e77c40b0a2e882f82b8ea85cd6a014592dbccd675e3e702a4463a8ff0fef527fbda4a23e82a460f7bdc89159a8825105e27377 SHA512 a0ac7ff915e57557239770ececc663236ab309562a13f6b4757449daf3e4fadb588fd1e90f2188d694f1d59ae73329c22c668720b5b387f07a9215cbec6b5c1f
-DIST vmm-sys-util-0.4.0.crate 54433 BLAKE2B cd5296f8dd291f7f7857e3a5af528913e7a8f045434dcfb4496f2b57a9ff50df32d7f8b4246a0a772435b5f85f4505a1a3c61b7523243f6bcfa229c01f465812 SHA512 ae2bbab2b849e2d2ed5be2eb4406597aada792a8e61b688333f92eba1aa2c3fd2d20fc759b99aa22b0301e72053f13e6b7b26015239ce09bfc96c670c1d91002
diff --git a/app-emulation/firecracker/firecracker-0.21.1-r1.ebuild b/app-emulation/firecracker/firecracker-0.21.1-r1.ebuild
deleted file mode 100644
index da29ed53e5af..000000000000
--- a/app-emulation/firecracker/firecracker-0.21.1-r1.ebuild
+++ /dev/null
@@ -1,89 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CRATES="
-aho-corasick-0.7.8
-backtrace-0.3.44
-backtrace-sys-0.1.32
-bitflags-1.2.1
-cc-1.0.50
-cfg-if-0.1.10
-cpuid-0.1.0
-device_tree-1.1.0
-epoll-4.1.0
-itoa-0.4.5
-kernel-0.1.0
-kvm-bindings-0.2.0
-kvm-ioctls-0.5.0
-lazy_static-1.4.0
-libc-0.2.66
-log-0.4.8
-logger-0.1.0
-memchr-2.3.2
-proc-macro2-1.0.8
-quote-1.0.2
-regex-1.3.4
-regex-syntax-0.6.14
-rustc-demangle-0.1.16
-ryu-1.0.2
-seccomp-0.1.0
-serde-1.0.104
-serde_derive-1.0.104
-serde_json-1.0.48
-syn-1.0.14
-thread_local-1.0.1
-timerfd-1.1.1
-unicode-xid-0.2.0
-vm-memory-0.1.0
-vmm-sys-util-0.4.0
-"
-
-inherit cargo linux-info toolchain-funcs
-
-DESCRIPTION="Secure and fast microVMs for serverless computing"
-HOMEPAGE="https://firecracker-microvm.github.io https://github.com/firecracker-microvm/firecracker"
-SRC_URI="https://github.com/firecracker-microvm/firecracker/archive/v${PV}.tar.gz -> ${P}.tar.gz
- $(cargo_crate_uris ${CRATES})"
-
-LICENSE="|| ( Apache-2.0 MIT Apache-2.0-with-LLVM-exceptions ) MPL-2.0"
-SLOT="0"
-KEYWORDS="-* ~amd64 ~arm64"
-
-RESTRICT="test"
-
-BDEPEND="acct-group/kvm"
-
-QA_FLAGS_IGNORED='.*'
-
-set_target_arch() {
- case "$(tc-arch)" in
- amd64) target_arch=x86_64 ;;
- arm64) target_arch=aarch64 ;;
- esac
-}
-
-pkg_setup() {
-
- if ! linux_config_exists; then
- eerror "Unable to check your kernel for KVM support"
- else
- CONFIG_CHECK+=" ~KVM_AMD" || \
- CONFIG_CHECK+=" ~KVM_INTEL"
- ERROR_KVM="${P} requires KVM in-kernel support."
- fi
-}
-
-src_compile() {
- local target_arch
- set_target_arch
- cargo_src_compile --target ${target_arch}-unknown-linux-gnu
-}
-
-src_install() {
- local target_arch
- set_target_arch
- dobin "${S}"/build/cargo_target/${target_arch}-unknown-linux-gnu/release/${PN}
- dobin "${S}"/build/cargo_target/${target_arch}-unknown-linux-gnu/release/jailer
-}
diff --git a/app-emulation/firecracker/metadata.xml b/app-emulation/firecracker/metadata.xml
deleted file mode 100644
index 6698a4ab7883..000000000000
--- a/app-emulation/firecracker/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zlogene@gentoo.org</email>
- <name>Mikle Kolyada</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/flannel/Manifest b/app-emulation/flannel/Manifest
deleted file mode 100644
index 236b7994970b..000000000000
--- a/app-emulation/flannel/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST flannel-0.11.0.tar.gz 6443391 BLAKE2B 5358e513a73fec6d8fcdb0182ec814fcf204eb12830f7d60acb3d4432f821ccc9e174fcc7adb57584ab1782c3f285e46b51bb0f76635fab9cf851cb2bd40c1b3 SHA512 72d18cd4ec58ede3848da3b94b7f3e33f8dda59d9fceb13864757998a24f0b312bc5b5d7927d3da8a805475efee469095ac09390fa632eb0c6ef9dd0f5d38a3b
diff --git a/app-emulation/flannel/files/flannel-docker.conf b/app-emulation/flannel/files/flannel-docker.conf
deleted file mode 100644
index 8f5517776b89..000000000000
--- a/app-emulation/flannel/files/flannel-docker.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[Service]
-EnvironmentFile=-/run/flannel/docker
diff --git a/app-emulation/flannel/files/flannel.tmpfilesd b/app-emulation/flannel/files/flannel.tmpfilesd
deleted file mode 100644
index 98e5abd9b20f..000000000000
--- a/app-emulation/flannel/files/flannel.tmpfilesd
+++ /dev/null
@@ -1 +0,0 @@
-d /run/flannel 0755 root root
diff --git a/app-emulation/flannel/files/flanneld.confd b/app-emulation/flannel/files/flanneld.confd
deleted file mode 100644
index 18686aa5d223..000000000000
--- a/app-emulation/flannel/files/flanneld.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# arguments for flannel
-command_args=""
diff --git a/app-emulation/flannel/files/flanneld.initd b/app-emulation/flannel/files/flanneld.initd
deleted file mode 100644
index d5d966a40d30..000000000000
--- a/app-emulation/flannel/files/flanneld.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2016-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Flannel Network Fabric for Containers"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-root}
-group=${group:-root}
-
-command="/usr/bin/${RC_SVCNAME}"
-command_args="${command_args}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/flannel/flannel.log \
- --stderr /var/log/flannel/flannel.log"
-
-depend() {
- need net
-}
diff --git a/app-emulation/flannel/files/flanneld.logrotated b/app-emulation/flannel/files/flanneld.logrotated
deleted file mode 100644
index 4108e6305578..000000000000
--- a/app-emulation/flannel/files/flanneld.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/flannel/* {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/app-emulation/flannel/files/flanneld.service b/app-emulation/flannel/files/flanneld.service
deleted file mode 100644
index 86e69a49e73f..000000000000
--- a/app-emulation/flannel/files/flanneld.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Flanneld overlay address etcd agent
-After=network.target
-Before=docker.service
-
-[Service]
-Type=notify
-Environment=FLANNEL_ETCD=http://127.0.0.1:4001,http://127.0.0.1:2379 FLANNEL_ETCD_KEY=/coreos.com/network
-ExecStart=/usr/bin/flanneld -etcd-endpoints=${FLANNEL_ETCD} -etcd-prefix=${FLANNEL_ETCD_KEY} $FLANNEL_OPTIONS
-ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
-
-[Install]
-RequiredBy=docker.service
diff --git a/app-emulation/flannel/flannel-0.11.0.ebuild b/app-emulation/flannel/flannel-0.11.0.ebuild
deleted file mode 100644
index a5f28c4632f6..000000000000
--- a/app-emulation/flannel/flannel-0.11.0.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit golang-vcs-snapshot systemd user
-
-KEYWORDS="~amd64 ~arm64"
-DESCRIPTION="An etcd backed network fabric for containers"
-EGO_PN="github.com/coreos/flannel"
-HOMEPAGE="https://github.com/coreos/flannel"
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-LICENSE="Apache-2.0 BSD ISC LGPL-3 MIT"
-SLOT="0"
-IUSE="hardened"
-RESTRICT="test"
-
-src_prepare() {
- default
- sed -e "s:^var Version =.*:var Version = \"${PV}\":" \
- -i "${S}/src/${EGO_PN}/version/version.go" || die
-}
-
-src_compile() {
- CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')"\
- GOPATH="${WORKDIR}/${P}" \
- go install -v -work -x ${EGO_BUILD_FLAGS} "${EGO_PN}"
- [[ -x bin/${PN} ]] || die
-}
-
-src_test() {
- GOPATH="${WORKDIR}/${P}" \
- go test -v -work -x "${EGO_PN}" || die
-}
-
-src_install() {
- newbin "bin/${PN}" ${PN}d
- cd "src/${EGO_PN}" || die
- exeinto /usr/libexec/flannel
- doexe dist/mk-docker-opts.sh
- insinto /etc/systemd/system/docker.service.d
- newins "${FILESDIR}/flannel-docker.conf" flannel.conf
- newinitd "${FILESDIR}"/flanneld.initd flanneld
- newconfd "${FILESDIR}"/flanneld.confd flanneld
- keepdir /var/log/${PN}
- insinto /etc/logrotate.d
- newins "${FILESDIR}"/flanneld.logrotated flanneld
- systemd_newtmpfilesd "${FILESDIR}/flannel.tmpfilesd" flannel.conf
- systemd_dounit "${FILESDIR}/flanneld.service"
- dodoc README.md
-}
diff --git a/app-emulation/flannel/metadata.xml b/app-emulation/flannel/metadata.xml
deleted file mode 100644
index 26007a60b41b..000000000000
--- a/app-emulation/flannel/metadata.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- </maintainer>
- <upstream>
- <remote-id type="github">coreos/flannel</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/free42/Manifest b/app-emulation/free42/Manifest
index e9cdf10eee65..788f9590d5e3 100644
--- a/app-emulation/free42/Manifest
+++ b/app-emulation/free42/Manifest
@@ -1,3 +1,3 @@
-DIST free42-nologo-2.0.20.tgz 7390214 BLAKE2B 306f3378bcbb44fa7982c5d9c29bfbea62e915ca50ca5e5216f46fbf483f110a1288d4800991a74622a042517496ff8dd94c3fa3249e8bb4181957e6b23d5ea3 SHA512 9b540fbc50df2f94b135b5e778354f330df77a54ef2ad99b257b5b91d1e3e8d1241e8a834522fc46fe33571ea2695ad8889b427dbcf653870672e89cd56d60f5
-DIST free42-nologo-2.5.18.tgz 7413195 BLAKE2B c3d7d92c2f9b527fb6932f46644cb306217ab103bde1ecfd52a2659a1a71eaef199abeda8b24977e338757bfd57c824c31bc3bf9aa396e3372629b04737e6232 SHA512 3543d0a0cc4dff9c96c1121f221dded40f2574fffbd4747ef179b0d5cf75a003f49bc548df554fb46504af787d9d2fdb434c23a420f4b3592c838f4d00ac7140
-DIST free42-nologo-2.5.20.tgz 7414358 BLAKE2B f1e0963e6a808121efc4d9bd82863d8c7898f65504d4c59f6a6beadc0c4e5c1335ce4c65d25550a3f4d5c080e1933ad30f6325661af4a513f69941c48adda1a5 SHA512 04a01f29ed5a3c9374de98ead6c54191dbde6b0e3d9923b5c89f18f868630b50235711820e751e4a1e3efc0600b1a7a105e8800f660d67124458a8f2826c840f
+DIST free42-nologo-2.5.24.tgz 7423183 BLAKE2B e10425af8d5c30be6ab5b728130bbe3068c414e24f033b65623951f915bcfeea0672857ff8def3e9f2766aba79411a1022d4b83592281567de38e82613d8a832 SHA512 a0702c3e4b2f3f38f73c54de4e51da8d1dc90585b253d1ae087d59dfabbe83be9c80086df8540cb6420dae8c6e766cd1ccce875d9bcb94ecbc85791e3fa89b8b
+DIST free42-nologo-3.1.3.tgz 7461009 BLAKE2B 915954de24a31f89f112d0d5e13ed01bd6a1e341549c8a86f463858e4071fc0a4751e94a6a257d561da570fd3705250d740c741925ee2b022a50966b8d5b16f8 SHA512 5ad6e6702a789c81d8942c4030606e44112fc21f1af6e5e23f21825115cabbc03cbcb142351d5d0451f5bf8d603d653b783ebe1293fa7ebfb04c93dfdea3455d
+DIST free42-nologo-3.1.7.tgz 7464073 BLAKE2B 0cff2d3292f45fc7341f8ed084c931da6a635498a62b7a20cc250df64a16d44a1c18a260e701971e2e7d68e11b1b84aa301405cd08c5e11b39e31f59a78647cc SHA512 2464385acf58aa17091d94ae81dde8e6e7f543c728c31cc03f1bc45a9ed5af9b27a3db41624222fd29ea61fe18541af9350e3e4369c54744c7b2a4dc799034fc
diff --git a/app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch b/app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch
deleted file mode 100644
index 543595c6a1a1..000000000000
--- a/app-emulation/free42/files/free42-2.0.10-fix-build-intel-lib.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nuar a/gtk/build-intel-lib.sh b/gtk/build-intel-lib.sh
---- a/gtk/build-intel-lib.sh
-+++ b/gtk/build-intel-lib.sh
-@@ -4,7 +4,7 @@
- cd IntelRDFPMathLib20U1
- patch -p0 <../intel-lib-linux.patch
- cd LIBRARY
--make CC=gcc CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0
-+make A=a CC=gcc CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0
- mv libbid.a ../../gcc111libbid.a
- cd ../..
- ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc
diff --git a/app-emulation/free42/files/free42-2.0.10-fix-makefile.patch b/app-emulation/free42/files/free42-2.0.10-fix-makefile.patch
deleted file mode 100644
index 0fb915df2983..000000000000
--- a/app-emulation/free42/files/free42-2.0.10-fix-makefile.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-diff -Nuar a/gtk/Makefile b/gtk/Makefile
---- a/gtk/Makefile
-+++ b/gtk/Makefile
-@@ -15,11 +15,11 @@
- # along with this program; if not, see http://www.gnu.org/licenses/.
- ###############################################################################
-
--CFLAGS = -MMD \
-+CFLAGS := -MMD \
- -Wall \
- -Wno-parentheses \
- -Wno-write-strings \
-- -g \
-+ -Wno-error=narrowing \
- -I/usr/X11R6/include \
- $(shell pkg-config --cflags gtk+-2.0) \
- -DVERSION="\"$(shell cat ../VERSION)\"" \
-@@ -27,21 +27,25 @@
- -DDECIMAL_GLOBAL_ROUNDING=1 \
- -DDECIMAL_GLOBAL_ROUNDING_ACCESS_FUNCTIONS=1 \
- -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \
-- -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1
-+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1 \
-+ ${CFLAGS}
-
--CXXFLAGS = $(CFLAGS) \
-+CXXFLAGS := $(CFLAGS) \
- -fno-exceptions \
- -fno-rtti \
-- -D_WCHAR_T_DEFINED
-+ -D_WCHAR_T_DEFINED \
-+ ${CXXFLAGS}
-
--LDFLAGS = -L/usr/X11R6/lib
--LIBS = gcc111libbid.a -lXmu $(shell pkg-config --libs gtk+-2.0)
-+MYLDFLAGS = -L/usr/X11R6/lib
-+LIBS = gcc111libbid.a -lX11 -ldl -lXmu $(shell pkg-config --libs gtk+-2.0)
-
- ifeq "$(shell uname -s)" "Linux"
--LDFLAGS += -Wl,--hash-style=both
-+MYLDFLAGS += -Wl,--hash-style=both
- LIBS += -lpthread
- endif
-
-+MYLDFLAGS += ${LDFLAGS}
-+
- SRCS = shell_main.cc shell_skin.cc skins.cc keymap.cc shell_loadimage.cc \
- shell_spool.cc core_main.cc core_commands1.cc core_commands2.cc \
- core_commands3.cc core_commands4.cc core_commands5.cc \
-@@ -83,7 +87,7 @@
- endif
-
- $(EXE): $(OBJS)
-- $(CXX) -o $(EXE) $(LDFLAGS) $(OBJS) $(LIBS)
-+ $(CXX) -o $(EXE) $(MYLDFLAGS) $(OBJS) $(LIBS)
-
- $(SRCS) skin2cc.cc keymap2cc.cc skin2cc.conf: symlinks
-
-@@ -107,7 +111,7 @@
-
- symlinks:
- for fn in `cd ../common; /bin/ls`; do ln -s ../common/$$fn; done
-- sh ./build-intel-lib.sh
-+ +sh ./build-intel-lib.sh
- ln -s IntelRDFPMathLib20U1/TESTS/readtest.c
- touch symlinks
-
diff --git a/app-emulation/free42/files/free42-3.0.14-fix-makefile.patch b/app-emulation/free42/files/free42-3.0.14-fix-makefile.patch
new file mode 100644
index 000000000000..6e46ed540320
--- /dev/null
+++ b/app-emulation/free42/files/free42-3.0.14-fix-makefile.patch
@@ -0,0 +1,26 @@
+diff -Naur free42-nologo-3.0.14.orig/gtk/Makefile free42-nologo-3.0.14/gtk/Makefile
+--- free42-nologo-3.0.14.orig/gtk/Makefile 2022-08-13 23:55:44.000000000 +0200
++++ free42-nologo-3.0.14/gtk/Makefile 2022-09-23 20:46:30.096874563 +0200
+@@ -40,10 +40,11 @@
+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \
+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1
+
+-CXXFLAGS = $(CFLAGS) \
++CXXFLAGS := $(CFLAGS) \
+ -fno-exceptions \
+ -fno-rtti \
+- -D_WCHAR_T_DEFINED
++ -D_WCHAR_T_DEFINED \
++ ${CXXFLAGS}
+
+ LIBS = gcc111libbid.a $(shell $(PKG_CONFIG) --libs gtk+-3.0)
+
+@@ -118,7 +119,7 @@
+ ./keymap2cc
+
+ gcc111libbid.a:
+- sh ./build-intel-lib.sh
++ +sh ./build-intel-lib.sh
+ ln -s IntelRDFPMathLib20U1/TESTS/readtest.c
+
+ symlinks:
diff --git a/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch b/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch
new file mode 100644
index 000000000000..283c6c1435be
--- /dev/null
+++ b/app-emulation/free42/files/free42-3.0.16-fix-build-intel-lib.patch
@@ -0,0 +1,65 @@
+diff -Naur free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh free42-nologo-3.0.16/gtk/build-intel-lib.sh
+--- free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh 2022-10-29 17:03:11.000000000 +0200
++++ free42-nologo-3.0.16/gtk/build-intel-lib.sh 2022-11-06 22:09:42.384802729 +0100
+@@ -10,13 +10,6 @@
+ fi
+ fi
+
+-which gcc >/dev/null
+-if [ $? -eq 0 ]; then
+- CC=gcc
+-else
+- CC=cc
+-fi
+-
+ # Hack to support FreeBSD; not 100% sure what this does, but it produces a
+ # library that passes all tests.
+
+@@ -64,8 +57,11 @@
+ ;;
+ esac
+
++patch -p0 <../intel-lib-custom-cc.patch
++
+ cd LIBRARY
+-$MK $OS_ARG CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
++echo $MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
++$MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
+ mv libbid.a ../../gcc111libbid.a
+ cd ../..
+ ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc
+diff -Naur free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch
+--- free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch 1970-01-01 01:00:00.000000000 +0100
++++ free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch 2022-11-06 22:18:35.428433045 +0100
+@@ -0,0 +1,31 @@
++diff -Naur orig/LIBRARY/makefile.iml_head LIBRARY/makefile.iml_head
++--- orig/LIBRARY/makefile.iml_head 2011-07-12 17:26:21.000000000 +0200
+++++ LIBRARY/makefile.iml_head 2022-11-06 22:18:17.048411637 +0100
++@@ -527,12 +527,8 @@
++ CC_TYPES := gcc cl
++ INTEL_CC_LIST := icc icl
++
++-CC_NAME_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
++-ifeq ($(CC_NAME_INDEX),)
++- $(error "Unknown CC_NAME ($(CC_NAME)). Must be one of $(CC_NAME_LIST))
++-endif
++
++-CC_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
+++CC_INDEX := 3
++ CC_TYPE := $(word $(CC_INDEX),$(CC_TYPE_LIST))
++ CC_TYPE_INDEX := $(call GetIndex,$(CC_TYPE),$(CC_TYPES))
++
++@@ -543,13 +539,6 @@
++ _CPP := $(CC_NAME) $(call CcNameSelect,-EP,-EP,-E -P,-EP)
++ _CC := $(CC_NAME) $(call CcNameSelect,, -nologo,, -nologo)
++
++-ifeq ($(origin CC),default)
++- CC := $(_CC)
++-endif
++-ifeq ($(origin CPP),default)
++- CPP := $(_CPP)
++-endif
++-
++ CselCc = $(call Cset,$1,$(call CcTypeSelect,$2,$3))
++
++ QOPT := $(call CselCc, QOPT, -, /Q )
diff --git a/app-emulation/free42/free42-2.5.20.ebuild b/app-emulation/free42/free42-2.5.24.ebuild
index bd3148a0b387..a8ede08965a1 100644
--- a/app-emulation/free42/free42-2.5.20.ebuild
+++ b/app-emulation/free42/free42-2.5.24.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -13,7 +13,7 @@ SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE="+alsa"
DEPEND="dev-libs/atk
diff --git a/app-emulation/free42/free42-2.5.18.ebuild b/app-emulation/free42/free42-3.1.3.ebuild
index bd3148a0b387..1fd58bbcf2cf 100644
--- a/app-emulation/free42/free42-2.5.18.ebuild
+++ b/app-emulation/free42/free42-3.1.3.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit toolchain-funcs
@@ -16,7 +16,7 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+alsa"
-DEPEND="dev-libs/atk
+DEPEND="app-accessibility/at-spi2-core
x11-libs/cairo
x11-libs/gdk-pixbuf
x11-libs/gtk+:3
@@ -28,14 +28,10 @@ DOCS=( CREDITS HISTORY README )
S="${WORKDIR}/${MY_PV}"
PATCHES=(
- "${FILESDIR}/${PN}-2.5.16-fix-makefile.patch"
- "${FILESDIR}/${PN}-2.5.3-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
)
-src_prepare() {
- default
-}
-
src_compile() {
local myconf
use alsa && myconf="AUDIO_ALSA=yes"
diff --git a/app-emulation/free42/free42-2.0.20.ebuild b/app-emulation/free42/free42-3.1.7.ebuild
index 2bc7d946d94b..063f0e457429 100644
--- a/app-emulation/free42/free42-2.0.20.ebuild
+++ b/app-emulation/free42/free42-3.1.7.ebuild
@@ -1,50 +1,45 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-inherit eutils toolchain-funcs
+inherit toolchain-funcs
MY_PV="${PN}-nologo-${PV}"
DESCRIPTION="An HP-42S Calculator Simulator"
HOMEPAGE="https://thomasokken.com/free42/"
SRC_URI="https://thomasokken.com/free42/upstream/${MY_PV}.tgz"
+S=${WORKDIR}/${MY_PV}
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="alsa"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa"
-DEPEND="dev-libs/atk
+DEPEND="app-accessibility/at-spi2-core
x11-libs/cairo
x11-libs/gdk-pixbuf
- x11-libs/gtk+:2
- x11-libs/pango
+ x11-libs/gtk+:3
alsa? ( media-libs/alsa-lib )"
+RDEPEND="${DEPEND}"
-RDEPEND="${DEPEND}
- x11-libs/libX11
- x11-libs/libXmu"
-
-S="${WORKDIR}/${MY_PV}"
+DOCS=( CREDITS HISTORY README )
PATCHES=(
- "${FILESDIR}/${PN}-2.0.10-fix-makefile.patch"
- "${FILESDIR}/${PN}-2.0.10-fix-build-intel-lib.patch"
+ "${FILESDIR}/${PN}-3.0.14-fix-makefile.patch"
+ "${FILESDIR}/${PN}-3.0.16-fix-build-intel-lib.patch"
)
-src_prepare() {
- default
-}
-
src_compile() {
local myconf
use alsa && myconf="AUDIO_ALSA=yes"
- emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C "${S}/gtk"
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk
+ emake -C gtk clean
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk
}
src_install() {
- dodoc CREDITS HISTORY README
- dobin gtk/free42dec
+ default
+ dobin gtk/free42bin gtk/free42dec
}
diff --git a/app-emulation/free42/metadata.xml b/app-emulation/free42/metadata.xml
index ff7b9a7bc947..ce1f4dd6dc88 100644
--- a/app-emulation/free42/metadata.xml
+++ b/app-emulation/free42/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>voyageur@gentoo.org</email>
diff --git a/app-emulation/fs-uae-launcher/Manifest b/app-emulation/fs-uae-launcher/Manifest
index 1513151a0767..42be2cdab6a4 100644
--- a/app-emulation/fs-uae-launcher/Manifest
+++ b/app-emulation/fs-uae-launcher/Manifest
@@ -1 +1 @@
-DIST fs-uae-launcher-3.0.5.tar.gz 9633819 BLAKE2B 8ce627302244bbd7d174f28c0dad345699942429c1109a7408c88412f6bb0e3e5d765e6c51abf2b95837a83261023b4f9c58d65892e58043889be8dc5e4cb759 SHA512 1a6700c56a14edce86ffbefee7494117af067da8b1dbc22937a36641ccb90927a3bbb011d15a891388bf08378aa623e00a2d45dbc49e822a5a569e110843add5
+DIST fs-uae-launcher-3.1.70.tar.xz 7707368 BLAKE2B fce6e47b1e09fbfae4959cffe55fec5803aa4dca511af76d621fba2156eee5d76164c0ff5dfad75864b3c2fd5c0a8b5968181538d37b9a039ffd8ab037eeafa2 SHA512 6a4eca273ebd21f64ee0a863497fb39c8b17b6dba0b99a0122f33ea688fb2b341998280b3d0ab4cac2d913bc15834dfec3a1662331dea48933135a82e29f5a83
diff --git a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.0.5.ebuild b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild
index 14013d591da6..d76e5f987497 100644
--- a/app-emulation/fs-uae-launcher/fs-uae-launcher-3.0.5.ebuild
+++ b/app-emulation/fs-uae-launcher/fs-uae-launcher-3.1.70.ebuild
@@ -1,29 +1,30 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
-DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_SETUPTOOLS=no
+PYTHON_COMPAT=( python3_{9..12} )
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_SINGLE_IMPL=yes
inherit distutils-r1 xdg
DESCRIPTION="PyQt5-based launcher for FS-UAE"
HOMEPAGE="https://fs-uae.net/"
-SRC_URI="https://fs-uae.net/stable/${PV}/${P}.tar.gz"
+SRC_URI="https://fs-uae.net/files/FS-UAE-Launcher/Stable/${PV}/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~ppc64"
IUSE="lha"
+RESTRICT="test" # The test files are just boilerplate.
RDEPEND="
app-emulation/fs-uae
$(python_gen_cond_dep '
- dev-python/PyQt5[${PYTHON_MULTI_USEDEP},declarative,gui,network,opengl,widgets]
- dev-python/pyopengl[${PYTHON_MULTI_USEDEP}]
- dev-python/requests[${PYTHON_MULTI_USEDEP}]
- lha? ( dev-python/python-lhafile[${PYTHON_MULTI_USEDEP}] )
+ dev-python/PyQt5[${PYTHON_USEDEP},declarative,gui,network,opengl,widgets]
+ dev-python/pyopengl[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ lha? ( dev-python/python-lhafile[${PYTHON_USEDEP}] )
')
"
@@ -35,31 +36,18 @@ PATCHES=(
"${FILESDIR}"/${PN}-3.0.0-ROMs.patch
)
-src_prepare() {
- default
-
- # Unbundle OpenGL library. Keep oyoyo IRC library because upstream
- # is long dead and it's not worth packaging separately.
- rm -r OpenGL/ || die
- sed -i -r "/OpenGL/d" setup.py || die
-}
-
python_compile_all() {
- emake
-}
-
-python_install() {
- local dir=${EPREFIX}/usr/share/${PN}
- distutils-r1_python_install --install-lib="${dir}" --install-scripts="${dir}"
+ emake mo
}
python_install_all() {
- dosym ../share/${PN}/${PN} /usr/bin/${PN}
emake install-data DESTDIR="${D}" prefix="${EPREFIX}"/usr
mv "${ED}"/usr/share/doc/{${PN},${PF}} || die
}
pkg_postinst() {
+ xdg_pkg_postinst
+
elog "Some important information:"
elog
ewarn " - Do not use QtCurve, it will crash PyQt5!"
diff --git a/app-emulation/fs-uae-launcher/metadata.xml b/app-emulation/fs-uae-launcher/metadata.xml
index 84e4eb59046e..9fd2313bafb0 100644
--- a/app-emulation/fs-uae-launcher/metadata.xml
+++ b/app-emulation/fs-uae-launcher/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>chewi@gentoo.org</email>
diff --git a/app-emulation/fs-uae/Manifest b/app-emulation/fs-uae/Manifest
index 4e1ce60994c8..e1401ffee363 100644
--- a/app-emulation/fs-uae/Manifest
+++ b/app-emulation/fs-uae/Manifest
@@ -1 +1 @@
-DIST fs-uae-3.0.5.tar.gz 4819884 BLAKE2B 0a82e0635ed02c1b4f04610555370c80ea12a870a73fd00cc98adefcefada2deed293c437202af34fc98e2f695fe1b08df918eca71b504e5b94e5ab3a099d9ed SHA512 b34ffb818040c7bf67022f26e1dbc9ebf06742a354212f2b0d2aa6b8e04c60807893a16ff965c819395f4c3fb3c43c35b38dce848b86fa046a211e12414385c7
+DIST fs-uae-3.1.66.tar.xz 3627688 BLAKE2B 9c7742b78055b4c2409c4527ab3b5daac829fa8d09363c5640ce433770ec0f7f6417cfa5dc7689bfdf747083bad654a8d433216b2c94e93ef3189f7e6f7213d9 SHA512 3d93c6481d4aebb21607fa6cd0716bb809a902a5e6e20cda97751f7878157a0737b80df1290c2e1cf4e13f1e9a824b750c52479cd05e56bff291be7471d167a1
diff --git a/app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch b/app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch
new file mode 100644
index 000000000000..0a60301772f1
--- /dev/null
+++ b/app-emulation/fs-uae/files/fs-uae-3.1.35-deepbind.patch
@@ -0,0 +1,43 @@
+From c5b02df4598c5fbe7a034b67ee06c506abeb3828 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Mon, 18 Oct 2021 10:22:09 +0100
+Subject: [PATCH] Don't assume RTLD_DEEPBIND is always present on Linux
+
+It's not supported by musl.
+---
+ configure.ac | 5 +++++
+ src/dlopen.cpp | 2 +-
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6e41d68e..2cac2dac 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -655,6 +655,11 @@ AC_CHECK_FUNCS([gettimeofday])
+ AC_CHECK_DECLS([CLOCK_MONOTONIC], [], [], [#include <time.h>])
+
+
++# RTLD_DEEPBIND is not supported by all C libraries.
++
++AC_CHECK_DECLS([RTLD_DEEPBIND], [], [], [#include <dlfcn.h>])
++
++
+ # Check for POSIX support.
+
+ AS_CASE([$host_os],
+diff --git a/src/dlopen.cpp b/src/dlopen.cpp
+index f79c401b..14edbc02 100644
+--- a/src/dlopen.cpp
++++ b/src/dlopen.cpp
+@@ -22,7 +22,7 @@ UAE_DLHANDLE uae_dlopen(const TCHAR *path)
+ }
+ #ifdef _WIN32
+ result = LoadLibrary(path);
+-#elif defined(LINUX)
++#elif HAVE_DECL_RTLD_DEEPBIND == 1
+ result = dlopen(path, RTLD_NOW | RTLD_DEEPBIND);
+ #else
+ result = dlopen(path, RTLD_NOW);
+--
+2.32.0
+
diff --git a/app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch b/app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch
new file mode 100644
index 000000000000..cc78261ebe40
--- /dev/null
+++ b/app-emulation/fs-uae/files/fs-uae-3.1.66-musl.patch
@@ -0,0 +1,35 @@
+From 5d7287d1aa99f100e560b5a2d231e49b64a18da3 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sun, 17 Apr 2022 10:29:22 +0100
+Subject: [PATCH] Don't return NULL in mapped_malloc when a bool is expected
+
+This was apparently breaking the build under musl.
+---
+ src/memory.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/memory.cpp b/src/memory.cpp
+index 3cd7dee6..18d1283a 100644
+--- a/src/memory.cpp
++++ b/src/memory.cpp
+@@ -1872,7 +1872,7 @@ bool mapped_malloc (addrbank *ab)
+ if (id == -1) {
+ nocanbang ();
+ if (recurse)
+- return NULL;
++ return false;
+ recurse++;
+ mapped_malloc (ab);
+ recurse--;
+@@ -1904,7 +1904,7 @@ bool mapped_malloc (addrbank *ab)
+ return ab->baseaddr != NULL;
+ }
+ if (recurse)
+- return NULL;
++ return false;
+ nocanbang ();
+ recurse++;
+ mapped_malloc (ab);
+--
+2.34.1
+
diff --git a/app-emulation/fs-uae/fs-uae-3.0.5.ebuild b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
index 3cf31cf10ce0..a8e64081c609 100644
--- a/app-emulation/fs-uae/fs-uae-3.0.5.ebuild
+++ b/app-emulation/fs-uae/fs-uae-3.1.66.ebuild
@@ -1,23 +1,24 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools xdg
+inherit autotools flag-o-matic xdg
DESCRIPTION="Integrates the most accurate Amiga emulation code available from WinUAE"
HOMEPAGE="https://fs-uae.net/"
-SRC_URI="https://fs-uae.net/stable/${PV}/${P}.tar.gz"
+SRC_URI="https://fs-uae.net/files/FS-UAE/Stable/${PV}/${P}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64"
-IUSE="fmv glew"
+KEYWORDS="~amd64 ~ppc64"
+IUSE="fmv glew +jit"
RDEPEND="
dev-libs/glib:2
media-libs/libpng:0=
media-libs/libsdl2[opengl,X]
media-libs/openal
+ sys-libs/zlib
virtual/opengl
x11-libs/libdrm
x11-libs/libX11
@@ -39,6 +40,8 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-3.0.0-libmpeg2.patch
"${FILESDIR}"/${PN}-3.0.0-Xatom.h.patch
+ "${FILESDIR}"/${PN}-3.1.35-deepbind.patch
+ "${FILESDIR}"/${PN}-3.1.66-musl.patch
)
src_prepare() {
@@ -53,6 +56,12 @@ src_prepare() {
}
src_configure() {
+ # -Werror=odr -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/854519
+ #
+ # Fixed upstream in git master but no releases since 2021 and no activity since 2022.
+ filter-lto
+
# Qt and Udis86 are unused.
econf \
--enable-a2065 \
@@ -68,8 +77,7 @@ src_configure() {
--enable-drivesound \
--enable-fdi2raw \
--enable-gfxboard \
- --enable-jit \
- --enable-jit-fpu \
+ --disable-lua \
--enable-netplay \
--enable-ncr \
--enable-ncr9x \
@@ -90,8 +98,11 @@ src_configure() {
--enable-vpar \
--enable-xml-shader \
--enable-zip \
+ --without-cef \
--with-glad \
--without-qt \
+ $(use_enable jit) \
+ $(use_enable jit jit-fpu) \
$(use_with fmv libmpeg2) \
$(use_with glew)
}
diff --git a/app-emulation/fs-uae/metadata.xml b/app-emulation/fs-uae/metadata.xml
index e92d93d760f7..11cfe797e3b9 100644
--- a/app-emulation/fs-uae/metadata.xml
+++ b/app-emulation/fs-uae/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>chewi@gentoo.org</email>
diff --git a/app-emulation/fuse-utils/fuse-utils-1.4.3.ebuild b/app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild
index 8e44998a4a6a..7da4b0c2865e 100644
--- a/app-emulation/fuse-utils/fuse-utils-1.4.3.ebuild
+++ b/app-emulation/fuse-utils/fuse-utils-1.4.3-r2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
inherit autotools
@@ -11,16 +11,17 @@ SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="~amd64 ~riscv ~x86"
IUSE="audiofile gcrypt jpeg png zlib"
-RDEPEND=">=app-emulation/libspectrum-1.4.4[gcrypt?,zlib?]
+RDEPEND=">=app-emulation/libspectrum-1.4.4[audiofile?,gcrypt?,zlib?]
audiofile? ( >=media-libs/audiofile-0.3.6 )
- jpeg? ( virtual/jpeg:0 )
+ gcrypt? ( dev-libs/libgcrypt )
+ jpeg? ( media-libs/libjpeg-turbo:= )
png? ( media-libs/libpng:0 )
zlib? ( sys-libs/zlib )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
PATCHES=(
"${FILESDIR}"/remove-local-prefix.patch
diff --git a/app-emulation/fuse-utils/metadata.xml b/app-emulation/fuse-utils/metadata.xml
index 31a5bcaf4749..8ba930b34e02 100644
--- a/app-emulation/fuse-utils/metadata.xml
+++ b/app-emulation/fuse-utils/metadata.xml
@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>0xe2.0x9a.0x9b@gmail.com</email>
- <name>Jan Ziak</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Gentoo Proxy Maintainers Project</name>
+
+ <email>marecki@gentoo.org</email>
+ <name>Marek Szuba</name>
</maintainer>
<use>
<flag name="gcrypt">Use <pkg>dev-libs/libgcrypt</pkg> for low-level crypto of some
diff --git a/app-emulation/fuse/Manifest b/app-emulation/fuse/Manifest
index a4edc94f79d0..127daceb5a37 100644
--- a/app-emulation/fuse/Manifest
+++ b/app-emulation/fuse/Manifest
@@ -1 +1 @@
-DIST fuse-1.5.7.tar.gz 1634568 BLAKE2B 9d2f3c310132dc57336995c31adeb37d727506719d1089b2009a2f44cbfa59fc9c4e9252aeff64cdd22b7326328518b5da33af51be687f321b891b9d1dd2b646 SHA512 ac11e03fc203f98433253fb72d7700cf6285ad8662147f318bb4ceda3888bc865b80d85473a3b2bda9e0971989b1579fc928f41ddabbf01d58358362066be13d
+DIST fuse-1.6.0.tar.gz 1686171 BLAKE2B d1e6b166f2f649f408349b16a5eb40dd414750ed7a805eb6505b6c81be6ed7bcaa4e6f0b14057645172add1b1a77881f90b64767390fe1a64a486168f452d29d SHA512 5096b24b5b3d812942a7ad401b886b6a99f5493686912cb4aff18ede65404ae97a9bcafa6337aaed4378382f2a170918797d7d4570bb809476be5aa9fc625b8b
diff --git a/app-emulation/fuse/files/multiple-definition.patch b/app-emulation/fuse/files/multiple-definition.patch
deleted file mode 100644
index 8a8e9d7d1758..000000000000
--- a/app-emulation/fuse/files/multiple-definition.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur fuse-1.5.7/ui/widget/widget.c fuse-1.5.7-patched/ui/widget/widget.c
---- fuse-1.5.7/ui/widget/widget.c 2018-08-06 15:36:04.000000000 +0200
-+++ fuse-1.5.7-patched/ui/widget/widget.c 2020-09-20 15:27:42.045382588 +0200
-@@ -90,9 +90,6 @@
-
- static widget_recurse_t widget_return[10]; /* The stack to recurse on */
-
--/* The settings used whilst playing with an options dialog box */
--settings_info widget_options_settings;
--
- static int widget_read_font( const char *filename )
- {
- utils_file file;
diff --git a/app-emulation/fuse/fuse-1.5.7.ebuild b/app-emulation/fuse/fuse-1.5.7.ebuild
deleted file mode 100644
index 063ecf27471a..000000000000
--- a/app-emulation/fuse/fuse-1.5.7.ebuild
+++ /dev/null
@@ -1,81 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit autotools
-
-DESCRIPTION="Free Unix Spectrum Emulator by Philip Kendall"
-HOMEPAGE="http://fuse-emulator.sourceforge.net"
-SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
-IUSE="alsa ao backend-fbcon backend-sdl backend-svga backend-X gpm joystick memlimit png xml"
-
-# Only one UI back-end can be enabled at a time
-REQUIRED_USE="?? ( backend-fbcon backend-sdl backend-svga backend-X )"
-
-RDEPEND="
- >=app-emulation/libspectrum-1.4.4
- dev-libs/glib:2
- alsa? ( media-libs/alsa-lib )
- ao? ( media-libs/libao )
- backend-sdl? ( media-libs/libsdl )
- backend-svga? ( media-libs/svgalib )
- backend-X? ( x11-libs/libX11 x11-libs/libXext )
- !backend-fbcon? ( !backend-sdl? ( !backend-svga? ( !backend-X? ( x11-libs/gtk+:3 ) ) ) )
- gpm? ( sys-libs/gpm )
- joystick? ( !backend-sdl? ( media-libs/libjsw ) )
- png? ( media-libs/libpng:0= sys-libs/zlib )
- xml? ( dev-libs/libxml2:2 )"
-DEPEND="${RDEPEND}
- backend-fbcon? ( virtual/linux-sources )
- dev-lang/perl
- virtual/pkgconfig"
-
-DOCS=( AUTHORS ChangeLog README THANKS )
-
-PATCHES=(
- "${FILESDIR}"/multiple-definition.patch
- "${FILESDIR}"/remove-local-prefix.patch
-)
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- local myconf=(
- --without-win32
- $(use_with alsa)
- $(use_with ao libao)
- $(use_with gpm)
- $(use_with joystick)
- $(use_enable memlimit smallmem)
- $(use_with png)
- $(use_with xml libxml2)
- )
-
- if use backend-sdl; then
- myconf+=("--with-sdl")
- elif use backend-X; then
- myconf+=("--without-gtk")
- elif use backend-svga; then
- myconf+=("--with-svgalib")
- elif use backend-fbcon; then
- myconf+=("--with-fb")
- else
- myconf+=("--with-gtk")
- fi
-
- use joystick && myconf+=( $(use_enable backend-sdl ui-joystick) )
-
- econf "${myconf[@]}"
-}
-
-src_test() {
- emake test
-}
diff --git a/app-emulation/fuse/fuse-1.6.0-r1.ebuild b/app-emulation/fuse/fuse-1.6.0-r1.ebuild
new file mode 100644
index 000000000000..1d80c3a9662f
--- /dev/null
+++ b/app-emulation/fuse/fuse-1.6.0-r1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic xdg
+
+DESCRIPTION="Free Unix Spectrum Emulator by Philip Kendall"
+HOMEPAGE="http://fuse-emulator.sourceforge.net"
+SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86"
+IUSE="alsa ao backend-X backend-fbcon +backend-gtk3 backend-sdl backend-svga gpm joystick memlimit png pulseaudio +xml +zlib"
+
+# TODO:
+# - allow using sdl audio driver without using for the UI
+# - allow using sdl joystick support with gtk3 or X UI in place of libjsw
+# - when using sdl for one of the above but not the UI, allow using sdl2 instead
+
+# At most one audio driver and at most one UI back-end can be enabled at a time
+REQUIRED_USE="?? ( alsa ao backend-sdl pulseaudio )
+ ?? ( backend-X backend-fbcon backend-gtk3 backend-sdl backend-svga )
+ png? ( zlib )"
+
+RDEPEND="
+ >=app-emulation/libspectrum-1.5.0[zlib?]
+ dev-libs/glib:2
+ alsa? ( media-libs/alsa-lib )
+ ao? ( media-libs/libao )
+ backend-X? ( x11-libs/libX11 x11-libs/libXext )
+ backend-gtk3? ( x11-libs/gtk+:3 )
+ backend-sdl? ( media-libs/libsdl[joystick,sound] )
+ backend-svga? ( media-libs/svgalib )
+ gpm? ( backend-fbcon? ( sys-libs/gpm ) )
+ joystick? ( !backend-sdl? ( media-libs/libjsw ) )
+ png? ( media-libs/libpng:0= )
+ pulseaudio? ( media-libs/libpulse )
+ xml? ( dev-libs/libxml2:2 )
+ zlib? ( sys-libs/zlib )"
+DEPEND="${RDEPEND}
+ backend-fbcon? ( virtual/linux-sources )"
+BDEPEND="dev-lang/perl
+ virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog README THANKS )
+
+PATCHES=(
+ "${FILESDIR}"/remove-local-prefix.patch
+)
+
+_fuse_audio_driver() {
+ if use alsa; then
+ echo "alsa"
+ elif use ao; then
+ echo "libao"
+ elif use backend-sdl; then
+ echo "sdl"
+ elif use pulseaudio; then
+ echo "pulseaudio"
+ else
+ echo "null"
+ fi
+}
+
+src_prepare() {
+ default
+ xdg_environment_reset
+ eautoreconf
+
+ # Bug #854522
+ filter-lto
+}
+
+src_configure() {
+ local myconf=(
+ --enable-desktop-integration
+ --without-win32
+ --with-audio-driver="$(_fuse_audio_driver)"
+ $(use_with gpm)
+ $(use_with joystick)
+ $(use_enable memlimit smallmem)
+ $(use_with png)
+ $(use_with xml libxml2)
+ $(use_with zlib)
+ )
+
+ # The pure-X UI hasn't got its own configure argument, instead it is
+ # what is used under Linux if all other back-ends have been disabled
+ # - and all except the Gtk+ one are off by default.
+ if use backend-X; then
+ myconf+=("--without-gtk")
+ elif use backend-fbcon; then
+ myconf+=("--with-fb")
+ elif use backend-gtk3; then
+ myconf+=("--with-gtk")
+ elif use backend-sdl; then
+ myconf+=("--with-sdl")
+ elif use backend-svga; then
+ myconf+=("--with-svgalib")
+ else
+ myconf+=("--with-null-ui")
+ fi
+
+ if use joystick; then
+ myconf+=( $(use_enable backend-sdl ui-joystick) )
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ emake test
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ if use pulseaudio; then
+ ewarn "The PulseAudio driver in ${PN} is experimental"
+ fi
+}
diff --git a/app-emulation/fuse/metadata.xml b/app-emulation/fuse/metadata.xml
index 38319f64f42e..5b50c50c218a 100644
--- a/app-emulation/fuse/metadata.xml
+++ b/app-emulation/fuse/metadata.xml
@@ -1,19 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>0xe2.0x9a.0x9b@gmail.com</email>
- <name>Jan Ziak</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Gentoo Proxy Maintainers Project</name>
+ <email>marecki@gentoo.org</email>
+ <name>Marek Szuba</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">fuse-emulator</remote-id>
</upstream>
<use>
<flag name="backend-fbcon">Use framebuffer rendering backend</flag>
+ <flag name="backend-gtk3">Use Gtk+ rendering backend</flag>
<flag name="backend-sdl">Use SDL rendering backend</flag>
<flag name="backend-svga">Use svgalib rendering backend</flag>
<flag name="backend-X">Use X11 rendering backend</flag>
diff --git a/app-emulation/gallium-nine-standalone/Manifest b/app-emulation/gallium-nine-standalone/Manifest
index 071df4f33d3f..90d5abcd33ea 100644
--- a/app-emulation/gallium-nine-standalone/Manifest
+++ b/app-emulation/gallium-nine-standalone/Manifest
@@ -1 +1,2 @@
-DIST gallium-nine-standalone-0.7.tar.gz 67699 BLAKE2B 85520de46e0e821f63d89691e322c3001ae853a0058a5077b484da6a1596a7ed03d2e2b7dc2686661fd21d34b33e10f4549437ce5790f18e1e6cc77c894e9d1e SHA512 9007564347bb6677f3d4eff83f744d39487c09b543489f02dcf7606917ecd9b72decf8176d9daecb6039b8998e97f737d9f7a71a5052f4d5c73f2e99e92af43c
+DIST gallium-nine-standalone-0.8.tar.gz 66656 BLAKE2B 5eaebcc514570dbaff44c4c889025d19a26c0b54941d1ab99ec131216a6eb49c2c649f1a4df51534f608653dab8b5e55a35afc57ba04a0ab6f4dea0edabac55c SHA512 3f339f909c6d65a2e5b5c912785aaa6f297e95549c868ab679dfb8e99d67db9906b6e75e3679a4e3e003f512a54ceb9953f941a4129f488973c16e1a3ac7267c
+DIST gallium-nine-standalone-0.9.tar.gz 67687 BLAKE2B 24e4250cacde3306cdfa8d9b24fa2fa0eb7dee4e5722973baa59f25999a75e689acad4c24c8bbfbc34aaddc24bdfe1977ff2f85da08a81b4ce6b222d5d0bfae0 SHA512 1ed384563736ab5db4167ca28163c93e58e9ff7ee62656d4adea8bc937484aebce3ed06f4600a080ad61fcfedd12febb3db9430be6cc8dd97484982694fde3a7
diff --git a/app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch b/app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch
deleted file mode 100644
index fed5c0403688..000000000000
--- a/app-emulation/gallium-nine-standalone/files/0.7-cross-files.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/tools/cross-wine32.in b/tools/cross-wine32.in
-index bfbe410..0064cf8 100644
---- a/tools/cross-wine32.in
-+++ b/tools/cross-wine32.in
-@@ -5,9 +5,10 @@ strip = 'strip'
- pkgconfig = '@PKG_CONFIG@'
-
- [properties]
--c_args = ['-m32']
--c_link_args = ['-m32', '-mwindows']
-+c_args = @CFLAGS@ + ['-m32']
-+c_link_args = @LDFLAGS@ + ['-m32', '-mwindows']
- needs_exe_wrapper = true
-+pkg_config_libdir = '@PKG_CONFIG_LIBDIR@'
-
- [host_machine]
- system = 'linux'
-diff --git a/tools/cross-wine64.in b/tools/cross-wine64.in
-index 5e19023..06b1f2a 100644
---- a/tools/cross-wine64.in
-+++ b/tools/cross-wine64.in
-@@ -5,9 +5,10 @@ strip = 'strip'
- pkgconfig = '@PKG_CONFIG@'
-
- [properties]
--c_args = ['-m64']
--c_link_args = ['-m64', '-mwindows']
-+c_args = @CFLAGS@ + ['-m64']
-+c_link_args = @LDFLAGS@ + ['-m64', '-mwindows']
- needs_exe_wrapper = true
-+pkg_config_libdir = '@PKG_CONFIG_LIBDIR@'
-
- [host_machine]
- system = 'linux'
diff --git a/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch b/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch
new file mode 100644
index 000000000000..7aacc7b8bd9b
--- /dev/null
+++ b/app-emulation/gallium-nine-standalone/files/0.8-cross-files.patch
@@ -0,0 +1,32 @@
+diff --color -Naur a/tools/cross-wine32.in b/tools/cross-wine32.in
+--- a/tools/cross-wine32.in 2021-04-24 11:27:05.044134837 +0100
++++ b/tools/cross-wine32.in 2021-04-24 11:28:55.880227178 +0100
+@@ -5,9 +5,10 @@
+ pkgconfig = '@PKG_CONFIG@'
+
+ [properties]
+-c_args = ['-m32']
+-c_link_args = ['-m32', '-mwindows', '-L@WINE32_LIBDIR@']
++c_args = @CFLAGS@ + ['-m32']
++c_link_args = @LDFLAGS@ + ['-m32', '-mwindows', '-L@WINE32_LIBDIR@']
+ needs_exe_wrapper = true
++pkg_config_libdir = '@PKG_CONFIG_LIBDIR@'
+
+ [host_machine]
+ system = 'linux'
+diff --color -Naur a/tools/cross-wine64.in b/tools/cross-wine64.in
+--- a/tools/cross-wine64.in 2021-04-24 11:27:05.044134837 +0100
++++ b/tools/cross-wine64.in 2021-04-24 11:29:14.999766636 +0100
+@@ -5,9 +5,10 @@
+ pkgconfig = '@PKG_CONFIG@'
+
+ [properties]
+-c_args = ['-m64']
+-c_link_args = ['-m64', '-mwindows', '-L@WINE64_LIBDIR@']
++c_args = @CFLAGS@ + ['-m64']
++c_link_args = @LDFLAGS@ + ['-m64', '-mwindows', '-L@WINE64_LIBDIR@']
+ needs_exe_wrapper = true
++pkg_config_libdir = '@PKG_CONFIG_LIBDIR@'
+
+ [host_machine]
+ system = 'linux'
diff --git a/app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch b/app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch
new file mode 100644
index 000000000000..14c2b30a741f
--- /dev/null
+++ b/app-emulation/gallium-nine-standalone/files/0.9-nine-dll-path.patch
@@ -0,0 +1,12 @@
+diff -Naur a/ninewinecfg/main.c b/ninewinecfg/main.c
+--- a/ninewinecfg/main.c 2023-03-10 08:32:25.000000000 +0000
++++ b/ninewinecfg/main.c 2023-10-29 22:49:15.919529033 +0000
+@@ -28,7 +28,7 @@
+ #include "../common/registry.h"
+ #include "resource.h"
+
+-static const char * const fn_nine_dll = "d3d9-nine.dll";
++static const char * const fn_nine_dll = G9DLL;
+ static const char * const fn_backup_dll = "d3d9-nine.bak";
+ static const char * const fn_d3d9_dll = "d3d9.dll";
+ static const char * const fn_nine_exe = "ninewinecfg.exe";
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
index 3e96326a2fc8..fdf6d7e33058 100644
--- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.7.ebuild
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.8-r1.ebuild
@@ -1,15 +1,15 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit meson multilib-minimal toolchain-funcs
+inherit meson-multilib toolchain-funcs
MY_PN="wine-nine-standalone"
DESCRIPTION="A standalone version of the WINE parts of Gallium Nine"
HOMEPAGE="https://github.com/iXit/wine-nine-standalone"
-if [[ $PV = 9999* ]]; then
+if [[ ${PV} = 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git"
else
@@ -25,7 +25,7 @@ SLOT="0"
# Steam's Proton.
RDEPEND="
- media-libs/mesa[d3d9,dri3,X(+),${MULTILIB_USEDEP}]
+ media-libs/mesa[d3d9,X(+),${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libxcb[${MULTILIB_USEDEP}]
"
@@ -34,11 +34,11 @@ DEPEND="
${RDEPEND}
virtual/pkgconfig
virtual/wine[${MULTILIB_USEDEP}]
- >=dev-util/meson-0.50.1
+ >=dev-build/meson-0.50.1
"
PATCHES=(
- "${FILESDIR}"/0.7-cross-files.patch
+ "${FILESDIR}"/0.8-cross-files.patch
"${FILESDIR}"/0.3-nine-dll-path.patch
)
@@ -85,26 +85,3 @@ multilib_src_configure() {
)
meson_src_configure
}
-
-multilib_src_compile() {
- meson_src_compile
-}
-
-multilib_src_install() {
- meson_src_install
-}
-
-pkg_postinst() {
- local bits=$(bits)
-
- einfo "Don't remove the Z: drive from your WINEPREFIX as this relies on it."
- einfo
- einfo "To set up the ${bits}-bit library, launch your preferred Wine as follows:"
- einfo " wine${bits/32} ${EPREFIX}/usr/$(get_libdir)/ninewinecfg.exe.so"
-
- if use abi_x86_64 && use abi_x86_32; then
- einfo
- einfo "To set up the 32-bit library, launch your preferred Wine as follows:"
- einfo " wine ${EPREFIX}/usr/$(ABI=x86 get_libdir)/ninewinecfg.exe.so"
- fi
-}
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild
new file mode 100644
index 000000000000..c34f0b868b29
--- /dev/null
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-0.9-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson-multilib toolchain-funcs
+
+MY_PN="wine-nine-standalone"
+DESCRIPTION="A standalone version of the WINE parts of Gallium Nine"
+HOMEPAGE="https://github.com/iXit/wine-nine-standalone"
+
+if [[ ${PV} = 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git"
+else
+ SRC_URI="https://github.com/iXit/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${MY_PN}-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+
+# We don't put Wine in RDEPEND because you can also use this with
+# Steam's Proton.
+
+RDEPEND="
+ media-libs/mesa[d3d9,X(+),${MULTILIB_USEDEP}]
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libxcb[${MULTILIB_USEDEP}]
+"
+
+DEPEND="
+ ${RDEPEND}
+ virtual/wine[${MULTILIB_USEDEP}]
+"
+
+BDEPEND="
+ dev-build/meson-format-array
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/0.8-cross-files.patch
+ "${FILESDIR}"/0.9-nine-dll-path.patch
+)
+
+bits() {
+ if [[ ${ABI} = amd64 ]]; then
+ echo 64
+ else
+ echo 32
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Upstream includes a bootstrap.sh script with hardcoded CHOSTs to
+ # create the Meson cross files. We improve on that here but also
+ # inject CFLAGS and LDFLAGS, partly to simply respect these, and
+ # partly to allow d3d9-nine.dll to be loaded from a location outside
+ # WINEPREFIX. This avoids the need for the nine-install.sh script,
+ # which doesn't play well with our multi-Wine environment.
+ bootstrap_nine() {
+ local file=tools/cross-wine$(bits)
+ local g9dll=\"z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\"
+
+ sed \
+ -e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \
+ -e "s!@CFLAGS@!$(meson-format-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \
+ -e "s!@LDFLAGS@!$(meson-format-array "${LDFLAGS}")!" \
+ -e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \
+ ${file}.in > ${file} || die
+ }
+
+ multilib_foreach_abi bootstrap_nine
+}
+
+multilib_src_configure() {
+ # We override bindir because otherwise the 32-bit exe is overwritten
+ # by the 64-bit exe and we need both of them.
+ local emesonargs=(
+ --cross-file "${S}/tools/cross-wine$(bits)"
+ --bindir "$(get_libdir)"
+ -Ddistro-independent=false
+ -Ddri2=false
+ )
+ meson_src_configure
+}
diff --git a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
index 3e96326a2fc8..c34f0b868b29 100644
--- a/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
+++ b/app-emulation/gallium-nine-standalone/gallium-nine-standalone-9999.ebuild
@@ -1,15 +1,15 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit meson multilib-minimal toolchain-funcs
+inherit meson-multilib toolchain-funcs
MY_PN="wine-nine-standalone"
DESCRIPTION="A standalone version of the WINE parts of Gallium Nine"
HOMEPAGE="https://github.com/iXit/wine-nine-standalone"
-if [[ $PV = 9999* ]]; then
+if [[ ${PV} = 9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/iXit/${MY_PN}.git"
else
@@ -25,21 +25,24 @@ SLOT="0"
# Steam's Proton.
RDEPEND="
- media-libs/mesa[d3d9,dri3,X(+),${MULTILIB_USEDEP}]
+ media-libs/mesa[d3d9,X(+),${MULTILIB_USEDEP}]
x11-libs/libX11[${MULTILIB_USEDEP}]
x11-libs/libxcb[${MULTILIB_USEDEP}]
"
DEPEND="
${RDEPEND}
- virtual/pkgconfig
virtual/wine[${MULTILIB_USEDEP}]
- >=dev-util/meson-0.50.1
+"
+
+BDEPEND="
+ dev-build/meson-format-array
+ virtual/pkgconfig
"
PATCHES=(
- "${FILESDIR}"/0.7-cross-files.patch
- "${FILESDIR}"/0.3-nine-dll-path.patch
+ "${FILESDIR}"/0.8-cross-files.patch
+ "${FILESDIR}"/0.9-nine-dll-path.patch
)
bits() {
@@ -61,12 +64,12 @@ src_prepare() {
# which doesn't play well with our multi-Wine environment.
bootstrap_nine() {
local file=tools/cross-wine$(bits)
- local g9dll=\"Z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\"
+ local g9dll=\"z:${EPREFIX}/usr/$(get_libdir)/d3d9-nine.dll.so\"
sed \
-e "s!@PKG_CONFIG@!$(tc-getPKG_CONFIG)!" \
- -e "s!@CFLAGS@!$(_meson_env_array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \
- -e "s!@LDFLAGS@!$(_meson_env_array "${LDFLAGS}")!" \
+ -e "s!@CFLAGS@!$(meson-format-array "${CFLAGS} '-DG9DLL=${g9dll}'")!" \
+ -e "s!@LDFLAGS@!$(meson-format-array "${LDFLAGS}")!" \
-e "s!@PKG_CONFIG_LIBDIR@!${PKG_CONFIG_LIBDIR:-${ESYSROOT}/usr/$(get_libdir)/pkgconfig}!" \
${file}.in > ${file} || die
}
@@ -85,26 +88,3 @@ multilib_src_configure() {
)
meson_src_configure
}
-
-multilib_src_compile() {
- meson_src_compile
-}
-
-multilib_src_install() {
- meson_src_install
-}
-
-pkg_postinst() {
- local bits=$(bits)
-
- einfo "Don't remove the Z: drive from your WINEPREFIX as this relies on it."
- einfo
- einfo "To set up the ${bits}-bit library, launch your preferred Wine as follows:"
- einfo " wine${bits/32} ${EPREFIX}/usr/$(get_libdir)/ninewinecfg.exe.so"
-
- if use abi_x86_64 && use abi_x86_32; then
- einfo
- einfo "To set up the 32-bit library, launch your preferred Wine as follows:"
- einfo " wine ${EPREFIX}/usr/$(ABI=x86 get_libdir)/ninewinecfg.exe.so"
- fi
-}
diff --git a/app-emulation/gallium-nine-standalone/metadata.xml b/app-emulation/gallium-nine-standalone/metadata.xml
index 99949f5b76d0..cad8073ddece 100644
--- a/app-emulation/gallium-nine-standalone/metadata.xml
+++ b/app-emulation/gallium-nine-standalone/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>chewi@gentoo.org</email>
diff --git a/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild b/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild
index 3f7639fbd4e9..a808738db0f4 100644
--- a/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild
+++ b/app-emulation/ganeti-os-noop/ganeti-os-noop-0.2.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=8
DESCRIPTION="Dummy OS provider for Ganeti"
HOMEPAGE="https://github.com/grnet/ganeti-os-noop"
@@ -10,14 +10,10 @@ SRC_URI="https://github.com/grnet/ganeti-os-noop/archive/v${PV}.tar.gz -> ${P}.t
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND=""
src_install() {
dodoc CONTRIBUTORS
- cd ganeti/os/noop
+ cd ganeti/os/noop || die
insinto /usr/share/ganeti/os/noop/
doins ganeti_api_version
exeinto /usr/share/ganeti/os/noop/
diff --git a/app-emulation/ganeti-os-noop/metadata.xml b/app-emulation/ganeti-os-noop/metadata.xml
index 0be915a90eff..f4d155ae55ee 100644
--- a/app-emulation/ganeti-os-noop/metadata.xml
+++ b/app-emulation/ganeti-os-noop/metadata.xml
@@ -1,5 +1,5 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>robbat2@gentoo.org</email>
diff --git a/app-emulation/ganeti-os-simpleimage/Manifest b/app-emulation/ganeti-os-simpleimage/Manifest
new file mode 100644
index 000000000000..01577c3e8385
--- /dev/null
+++ b/app-emulation/ganeti-os-simpleimage/Manifest
@@ -0,0 +1 @@
+DIST ganeti-os-simpleimage-07f67364e66b9f686a5b15d0c516310fcc3c7c9b.tar.gz 10722 BLAKE2B 7b9dfe0ba0f1c53ae61e5304b618e1f31ad08a93352b9781dd502bd27ca4426493eb3b61c4e751fe1787eb19c63ddf377a602a35a815042d5c8437ece991c5ba SHA512 278f9430d28c542b25ce4fd449dc57b97bcd56c0fc8b2c7bfacf08cc090c81d74eca44c0cc57faa28576bdaa3b1a0011d8780e8246acf5993765eb8de741e667
diff --git a/app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild b/app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild
new file mode 100644
index 000000000000..ec9d545922ff
--- /dev/null
+++ b/app-emulation/ganeti-os-simpleimage/ganeti-os-simpleimage-0_p20221113.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+COMMIT=07f67364e66b9f686a5b15d0c516310fcc3c7c9b
+MY_PV=$COMMIT
+
+DESCRIPTION="Ganeti OS provider for simple images"
+HOMEPAGE="https://github.com/ganeti/instance-simpleimage"
+SRC_URI="https://github.com/ganeti/instance-simpleimage/archive/${MY_PV}.tar.gz -> ${PN}-${MY_PV}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+S="${WORKDIR}/instance-simpleimage-${MY_PV}"
+
+src_install() {
+ # Config
+ keepdir /etc/ganeti/instance-simpleimage/default/
+ keepdir /etc/ganeti/instance-simpleimage/default/hooks
+ touch "${D}/etc/ganeti/instance-simpleimage/default/config"
+
+ insinto /usr/share/ganeti/os/simpleimage
+ doins ganeti_api_version parameters.list common.sh
+ exeinto /usr/share/ganeti/os/simpleimage
+ doexe create export import rename verify
+ # This is moved into /etc because sysadmins are expected to modify it, and
+ # add matching dirs for each variant in
+ # /etc/ganeti/instance-simpleimage/$VARIANT/
+ insinto /etc/ganeti/instance-simpleimage/
+ doins variants.list
+ dosym ../../../../../etc/ganeti/instance-simpleimage/variants.list \
+ /usr/share/ganeti/os/simpleimage/variants.list
+
+ # Docs
+ dodoc README.md
+ docinto example-hooks
+ dodoc example-hooks/debian-cloud-image-config
+}
diff --git a/app-emulation/ganeti-os-simpleimage/metadata.xml b/app-emulation/ganeti-os-simpleimage/metadata.xml
new file mode 100644
index 000000000000..10f9cbd5fa6a
--- /dev/null
+++ b/app-emulation/ganeti-os-simpleimage/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ganeti/instance-simpleimage</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/genymotion-bin/Manifest b/app-emulation/genymotion-bin/Manifest
index 27fa5fde26ab..573dc28b4118 100644
--- a/app-emulation/genymotion-bin/Manifest
+++ b/app-emulation/genymotion-bin/Manifest
@@ -1 +1 @@
-DIST genymotion-3.1.1-linux_x64.bin 40506791 BLAKE2B 5318568766826cac587802c3b84fb2d32eaad6f00e0c2642fc1f8a81794f94de85d57d66b816848f3161b9f763ddbd84e9fafe6bc2027fb478b31b7c6f858750 SHA512 8468843131a6f09dfa65da4f638d25f3c8b806b6275a46b5bc379d7b97ebb30518a00a8dd6433ce33b78dfddcb3e1c62ceba67e9b41e39e44a677ea2fbedeade
+DIST genymotion-3.6.0-linux_x64.bin 103911915 BLAKE2B 2c7174404b29a71174fc04de96285475e1800880f79fb70c455539c2a658a305a4cd8a541c545024c3130458081b5a94e493478a47126905fae5e104afbd3efd SHA512 ff05bb91edf05c38d68e3dec16dd21f6fcc50bf31e03411f46b9a3a71ca3f9139705e54b8650c8ab44295a2ebb49aa262e169faecea1f6bb8dd385785440f245
diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.1.1.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.1.1.ebuild
deleted file mode 100644
index f5745370f0d7..000000000000
--- a/app-emulation/genymotion-bin/genymotion-bin-3.1.1.ebuild
+++ /dev/null
@@ -1,126 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit bash-completion-r1 desktop pax-utils
-
-MY_PN="${PN/-bin}"
-MY_P="${MY_PN}-${PV}"
-BIN_ARCHIVE="${MY_P}-linux_x64.bin"
-
-DESCRIPTION="Complete set of tools that provide a virtual environment for Android"
-HOMEPAGE="https://genymotion.com"
-SRC_URI="${BIN_ARCHIVE}"
-
-LICENSE="genymotion"
-SLOT="0"
-KEYWORDS="-* ~amd64"
-
-RDEPEND="|| (
- app-emulation/virtualbox
- app-emulation/virtualbox-bin
- )
- || (
- dev-libs/openssl-compat:1.0.0
- =dev-libs/openssl-1.0*:0
- )
- dev-libs/hiredis:0/0.14
- sys-apps/util-linux
- virtual/opengl
-"
-BDEPEND="dev-util/patchelf"
-
-RESTRICT="bindist fetch"
-S="${WORKDIR}"
-
-QA_PREBUILT="
- opt/${MY_PN}/*.so*
- opt/${MY_PN}/imageformats/*.so
- opt/${MY_PN}/plugins/*.so*
- opt/${MY_PN}/${MY_PN}
- opt/${MY_PN}/genyshell
- opt/${MY_PN}/player
- opt/${MY_PN}/${MY_PN}adbtunneld
- opt/${MY_PN}/gmtool
-"
-
-pkg_nofetch() {
- einfo
- einfo "Please visit"
- einfo
- einfo " https://www.genymotion.com/download/"
- einfo
- einfo "and download "
- einfo
- einfo " ${BIN_ARCHIVE}"
- einfo
- einfo "which must be placed in DISTDIR directory."
- einfo
-}
-
-src_unpack() {
- cp "${DISTDIR}/${BIN_ARCHIVE}" "${WORKDIR}" || die "cp failed"
-}
-
-src_prepare() {
- default
-
- chmod +x ${BIN_ARCHIVE} || die "chmod failed"
- yes | ./${BIN_ARCHIVE} > /dev/null || die "unpack failed"
-
- # removed windows line for bashcompletion
- sed -i "/complete -F _gmtool gmtool.exe/d" "${MY_PN}/completion/bash/gmtool.bash" || die "sed failed"
-
- # patch to support newer hiredis version (0.14)
- for i in genymotion genyshell gmtool player libcom.so.1.0.0 librendering.so.1.0.0 ; do
- patchelf --replace-needed libhiredis.so.0.13 libhiredis.so.0.14 "${MY_PN}/${i}" || die "Unable to patch ${i} for hiredis"
- done
-}
-
-src_install() {
- insinto /opt/"${MY_PN}"
- exeinto /opt/"${MY_PN}"
-
- # Use qt bundled
- doins -r "${MY_PN}"/{geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2}
- doins -r "${MY_PN}"/{icons,imageformats,platforms,plugins,sqldrivers,translations,xcbglintegrations}
- doins "${MY_PN}"/libQt*
- doins "${MY_PN}"/libqgsttools_p.so.1
- doins "${MY_PN}"/qt.conf
- doins "${MY_PN}"/libicu*
-
- doexe "${MY_PN}"/{libcom,librendering,libswscale,libavutil}.so*
- # android library
- doexe "${MY_PN}"/{libEGL_translator,libGLES_CM_translator,libGLES_V2_translator,libOpenglRender,libemugl_logger}.so*
-
- find "${ED}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed"
-
- doexe "${MY_PN}"/{genymotion,genyshell,player,gmtool}
-
- pax-mark -m "${ED}/opt/${MY_PN}/genymotion"
- pax-mark -m "${ED}/opt/${MY_PN}/gmtool"
-
- dosym ../"${MY_PN}"/genyshell /opt/bin/genyshell
- dosym ../"${MY_PN}"/genymotion /opt/bin/genymotion
- dosym ../"${MY_PN}"/gmtool /opt/bin/gmtool
-
- newbashcomp "${MY_PN}/completion/bash/gmtool.bash" gmtool
-
- insinto /usr/share/zsh/site-functions
- doins "${MY_PN}/completion/zsh/_gmtool"
-
- sed -i -e "s:Icon.*:Icon=/opt/${MY_PN}/icons/icon.png:" \
- -e "s:Exec.*:Exec=/opt/${MY_PN}/genymotion:" \
- "${HOME}"/.local/share/applications/genymobile-genymotion.desktop || die "sed failed"
- domenu "${HOME}"/.local/share/applications/genymobile-genymotion.desktop
-}
-
-pkg_postinst() {
- elog "Genymotion needs adb to work correctly: install with android-sdk-update-manager"
- elog "'Android SDK Platform-tools' and 'Android SDK Tools'"
- elog "Your user should also be in the android group to work correctly"
- elog "Then in Genymotion set the android-sdk-update-manager directory: (Settings->ADB)"
- elog
- elog " /opt/android-sdk-update-manager"
-}
diff --git a/app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild b/app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild
new file mode 100644
index 000000000000..6de3fe292cc0
--- /dev/null
+++ b/app-emulation/genymotion-bin/genymotion-bin-3.6.0.ebuild
@@ -0,0 +1,146 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit bash-completion-r1 desktop pax-utils
+
+MY_PN="${PN/-bin}"
+MY_P="${MY_PN}-${PV}"
+BIN_ARCHIVE="${MY_P}-linux_x64.bin"
+
+DESCRIPTION="Complete set of tools that provide a virtual environment for Android"
+HOMEPAGE="https://genymotion.com"
+SRC_URI="https://dl.genymotion.com/releases/${MY_P}/${BIN_ARCHIVE}"
+
+LICENSE="genymotion"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+
+RDEPEND="app-arch/lz4
+ app-crypt/mit-krb5
+ || (
+ app-emulation/qemu[qemu_softmmu_targets_x86_64]
+ app-emulation/virtualbox
+ )
+ || (
+ dev-libs/openssl-compat:1.1.1
+ =dev-libs/openssl-1.1*:0
+ )
+ dev-libs/glib:2
+ =dev-libs/hiredis-1.0*
+ media-libs/alsa-lib
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/libpulse
+ media-libs/gst-plugins-base:1.0
+ media-libs/gstreamer:1.0
+ sys-apps/dbus
+ sys-libs/zlib
+ virtual/opengl
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXext
+ x11-libs/libXi
+ x11-libs/libxkbcommon
+ x11-libs/libXmu
+ x11-libs/xcb-util
+ x11-libs/xcb-util-image
+ x11-libs/xcb-util-keysyms
+ x11-libs/xcb-util-renderutil
+ x11-libs/xcb-util-wm
+"
+BDEPEND="x11-misc/xdg-utils"
+
+RESTRICT="bindist mirror"
+S="${WORKDIR}"
+
+QA_PREBUILT="
+ opt/${MY_PN}/*.so*
+ opt/${MY_PN}/imageformats/*.so
+ opt/${MY_PN}/plugins/*.so*
+ opt/${MY_PN}/${MY_PN}
+ opt/${MY_PN}/genyshell
+ opt/${MY_PN}/player
+ opt/${MY_PN}/${MY_PN}adbtunneld
+ opt/${MY_PN}/gmtool
+ opt/${MY_PN}/tools/*
+"
+
+src_unpack() {
+ cp "${DISTDIR}/${BIN_ARCHIVE}" "${WORKDIR}" || die "cp failed"
+}
+
+src_prepare() {
+ default
+
+ chmod +x ${BIN_ARCHIVE} || die "chmod failed"
+ yes | ./${BIN_ARCHIVE} > /dev/null || die "unpack failed"
+
+ # removed windows line for bashcompletion
+ sed -i "/complete -F _gmtool gmtool.exe/d" "${MY_PN}/completion/bash/gmtool.bash" || die "sed failed"
+
+ # copy .desktop file in S directory
+ sed -i -e "s:Icon.*:Icon=/opt/${MY_PN}/icons/genymotion-logo.png:" \
+ -e "s:Exec.*:Exec=/opt/${MY_PN}/genymotion:" \
+ "${HOME}"/.local/share/applications/genymobile-genymotion.desktop || die "sed failed"
+ cp "${HOME}"/.local/share/applications/genymobile-genymotion.desktop "${S}" || die "copy .desktop file"
+}
+
+src_install() {
+ insinto /opt/"${MY_PN}"
+ exeinto /opt/"${MY_PN}"
+
+ # Use qt bundled
+ doins -r "${MY_PN}"/{audio,geoservices,Qt,QtGraphicalEffects,QtLocation,QtPositioning,QtQuick,QtQuick.2}
+ doins -r "${MY_PN}"/{icons,imageformats,mediaservice,platforms,plugins,sqldrivers,translations,xcbglintegrations}
+ doins "${MY_PN}"/libQt*
+ doins "${MY_PN}"/qt.conf
+ doins "${MY_PN}"/libicu*
+
+ doexe "${MY_PN}"/{libcom,librendering,libshadertranslator,libswscale,libavutil}.so*
+ # android library
+ doexe "${MY_PN}"/{libOpenglRender,libemugl_logger,libemugl_common}.so*
+
+ find "${ED}/opt/${MY_PN}" -name "*.so*" -type f -exec chmod +x {} \; || die "Change .so permission failed"
+
+ doexe "${MY_PN}"/{genymotion,genyshell,player,gmtool}
+
+ # the android-sdk-update-manager have some bugs and lacks maintenance
+ # so installs bundled version
+ exeinto /opt/"${MY_PN}"/tools
+ doexe "${MY_PN}"/tools/{aapt,adb,glewinfo}
+ exeinto /opt/"${MY_PN}"/tools/lib64
+ doexe "${MY_PN}"/tools/lib64/libc++.so
+
+ pax-mark -m "${ED}/opt/${MY_PN}/genymotion"
+ pax-mark -m "${ED}/opt/${MY_PN}/gmtool"
+
+ dosym -r /opt/"${MY_PN}"/genyshell /opt/bin/genyshell
+ dosym -r /opt/"${MY_PN}"/genymotion /opt/bin/genymotion
+ dosym -r /opt/"${MY_PN}"/gmtool /opt/bin/gmtool
+
+ newbashcomp "${MY_PN}/completion/bash/gmtool.bash" gmtool
+
+ insinto /usr/share/zsh/site-functions
+ doins "${MY_PN}/completion/zsh/_gmtool"
+
+ if has_version app-emulation/qemu ; then
+ dodir /opt/"${MY_PN}"/qemu/bin
+ dosym -r /usr/bin/qemu-system-x86_64 /opt/"${MY_PN}"/qemu/bin/qemu-system-x86_64
+ dosym -r /usr/bin/qemu-img /opt/"${MY_PN}"/qemu/bin/qemu-img
+ fi
+
+ domenu genymobile-genymotion.desktop
+}
+
+pkg_postinst() {
+ if has_version app-emulation/qemu && ! has_version app-emulation/virtualbox ; then
+ ewarn "By default Genymotion is configured to work with VirtualBox hypervisor."
+ ewarn "So you should run command:"
+ ewarn ""
+ ewarn " gmtool config --hypervisor qemu"
+ ewarn ""
+ ewarn "to change hypervisor to QEMU."
+ fi
+}
diff --git a/app-emulation/genymotion-bin/metadata.xml b/app-emulation/genymotion-bin/metadata.xml
index 0a47874eaf48..d29f19d016b5 100644
--- a/app-emulation/genymotion-bin/metadata.xml
+++ b/app-emulation/genymotion-bin/metadata.xml
@@ -1,15 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>fedeliallalinea@gmail.com</email>
<name>Marco Genasci</name>
</maintainer>
- <maintainer type="person">
- <email>mudler@gentoo.org</email>
- <name>Ettore Di Giacinto</name>
- </maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
diff --git a/app-emulation/glean/Manifest b/app-emulation/glean/Manifest
index 117fa547e8d8..3a8cffe9e55b 100644
--- a/app-emulation/glean/Manifest
+++ b/app-emulation/glean/Manifest
@@ -1,2 +1 @@
-DIST glean-1.10.3.tar.gz 51898 BLAKE2B 95bcee5caae1bdcdc586c8d8ab8097b1dfaa35c521d7b90d128db14f496d4d31e1d0d4c540c4205861e5c7fa87d0e7038227ae9db0e898e3bf43b8b9b989e766 SHA512 27d4f29bf35585f73813e9efdea0253f0be3a8fa059c6ce524fbdd37b865d9c9e10d29bb8f970317ffe772c110cc76f10ae7debce5f7433461639dc63b9349db
-DIST glean-1.17.0.tar.gz 62791 BLAKE2B 6429bd721655499732f84dc8db4bd31bdb128289956ab65fab78ea5461cf7945ced893fd832ac6a3cdcedb331f3885004eaa530be1ee4fcc4168870b5c345dd3 SHA512 55c8ceae941296c038acff3f40cf4d6b783d7c6530ebd6fbd6d87938de11a1be1403741a559802c9135d3fc4d904b1936319dcf7a0179f95ac3f909667f5622c
+DIST glean-1.23.0.tar.gz 76426 BLAKE2B bca6d2da0393bb28392d3c9ab7708cf4b053e4736203b9c26bc278a52c6a829abead13ecb63ebb60ade9a4127ebba9dd560b75b765c3a168ea389025b07638a0 SHA512 4eca5ccd18bd7864fdecd35b483e5da6a0854c076d0266f802b70b7838de61790c9237f8928807a45d6845fa8ca9a37e2228653326759204483803b28de191ee
diff --git a/app-emulation/glean/glean-1.17.0.ebuild b/app-emulation/glean/glean-1.17.0.ebuild
deleted file mode 100644
index 13ba0b43ea39..000000000000
--- a/app-emulation/glean/glean-1.17.0.ebuild
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_6 python3_7 python3_8 )
-DISTUTILS_USE_SETUPTOOLS=rdepend
-
-inherit distutils-r1
-
-DESCRIPTION="Simple program to write static config from config-drive"
-HOMEPAGE="https://github.com/openstack-infra/glean"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-DEPEND="dev-python/pbr[${PYTHON_USEDEP}]"
-RDEPEND="${DEPEND}"
-
-src_install() {
- distutils-r1_src_install
- newinitd "${FILESDIR}/${PN}.initd" ${PN}
-}
diff --git a/app-emulation/glean/glean-1.10.3.ebuild b/app-emulation/glean/glean-1.23.0-r1.ebuild
index 939e686bb3b4..d5c813a3e0ad 100644
--- a/app-emulation/glean/glean-1.10.3.ebuild
+++ b/app-emulation/glean/glean-1.23.0-r1.ebuild
@@ -1,20 +1,19 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-PYTHON_COMPAT=( python3_6 )
-DISTUTILS_USE_SETUPTOOLS=rdepend
+PYTHON_COMPAT=( python3_{9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="Simple program to write static config from config-drive"
-HOMEPAGE="https://github.com/openstack-infra/glean"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+HOMEPAGE="https://opendev.org/opendev/glean"
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 x86"
IUSE=""
DEPEND="dev-python/pbr[${PYTHON_USEDEP}]"
diff --git a/app-emulation/glean/metadata.xml b/app-emulation/glean/metadata.xml
index 5f29d506900e..db2fd69cd2fa 100644
--- a/app-emulation/glean/metadata.xml
+++ b/app-emulation/glean/metadata.xml
@@ -1,10 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>alexxy@gentoo.org</email>
<name>Alexey Shvetsov</name>
</maintainer>
+ <maintainer type="person">
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
<maintainer type="project">
<email>openstack@gentoo.org</email>
<name>Openstack</name>
@@ -14,6 +18,5 @@
</longdescription>
<upstream>
<remote-id type="pypi">glean</remote-id>
- <remote-id type="github">openstack-dev/glean</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/go-secbench/Manifest b/app-emulation/go-secbench/Manifest
deleted file mode 100644
index 915d02957600..000000000000
--- a/app-emulation/go-secbench/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST go-secbench-0.1.0.tar.gz 1281488 BLAKE2B 83bb27a2113a5e851db8b61402d967d528c9e3b39d249a23b4d28c21e001276eff73f61c6aba610f0020f22de26b04286a91e5a3785b5a9e019d2701d6081f92 SHA512 4712ef56385993ed1e660c1843a1d7e9cd807a3ca8bf935767e8d2965aef25c5b3a7a88d4ed7c072fe124a6b05900bd444cdbc0cee879e80844fb5f695732f2b
diff --git a/app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild b/app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild
deleted file mode 100644
index 9704fffb853f..000000000000
--- a/app-emulation/go-secbench/go-secbench-0.1.0-r1.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/qnib/go-secbench"
-inherit golang-build golang-vcs-snapshot
-
-DESCRIPTION="run and evaluate the docker security benchmark"
-HOMEPAGE="https://github.com/qnib/go-secbench"
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-RESTRICT="test"
-
-DEPEND="dev-lang/go"
-RDEPEND="app-emulation/docker"
-
-src_compile() {
- GOPATH="${S}" go build -o bin/go-secbench src/${EGO_PN}/cmd/main.go || die
-}
-
-src_install() {
- dobin bin/${PN}
-dodoc "src/${EGO_PN}/README.md"
-}
diff --git a/app-emulation/go-secbench/go-secbench-0.1.0.ebuild b/app-emulation/go-secbench/go-secbench-0.1.0.ebuild
deleted file mode 100644
index fdceccf32659..000000000000
--- a/app-emulation/go-secbench/go-secbench-0.1.0.ebuild
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/qnib/go-secbench"
-inherit golang-build golang-vcs-snapshot
-
-DESCRIPTION="run and evaluate the docker security benchmark"
-HOMEPAGE="https://github.com/qnib/go-secbench"
-SRC_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-RESTRICT="test"
-
-DEPEND="dev-lang/go"
-
-src_compile() {
- GOPATH="${S}" go build -o bin/go-secbench src/${EGO_PN}/cmd/main.go || die
-}
-
-src_install() {
- dobin bin/${PN}
-dodoc "src/${EGO_PN}/README.md"
-}
diff --git a/app-emulation/go-secbench/metadata.xml b/app-emulation/go-secbench/metadata.xml
deleted file mode 100644
index c36c37139fad..000000000000
--- a/app-emulation/go-secbench/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild b/app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild
index 9150a04e8c80..2aaa8eb6a896 100644
--- a/app-emulation/grub-xen-host/grub-xen-host-1.0.ebuild
+++ b/app-emulation/grub-xen-host/grub-xen-host-1.0-r1.ebuild
@@ -1,18 +1,19 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
DESCRIPTION="Grub2 built as a PV grub per the Xen PV Boot Protocol"
-HOMEPAGE="https://blog.xenproject.org/2015/01/07/using-grub-2-as-a-bootloader-for-xen-pv-guests/"
+HOMEPAGE="https://wiki.xenproject.org/wiki/PvGrub2"
SRC_URI=""
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64"
-IUSE=""
+IUSE="pvh"
DEPEND="sys-boot/grub:2=[grub_platforms_xen]
+ pvh? ( >=sys-boot/grub-2.04:2=[grub_platforms_xen-pvh] )
app-emulation/xen-tools:="
RDEPEND="${DEPEND}"
@@ -71,9 +72,27 @@ src_compile() {
echo "${args[@]}"
"${args[@]}" || die "failed to grub-mkimage"
+
+ if use pvh; then
+ local args=(
+ "${grub_mkimage}"
+ -O i386-xen_pvh
+ -c grub-bootstrap.cfg
+ -m memdisk.tar
+ -o grub-i386-xen_pvh.bin
+ /usr/lib/grub/i386-xen_pvh/*.mod
+ )
+
+ echo "${args[@]}"
+ "${args[@]}" || die "failed to grub-mkimage"
+ fi
+
}
src_install() {
exeinto /usr/libexec/xen/bin
doexe grub-x86_64-xen.bin
+ if use pvh; then
+ doexe grub-i386-xen_pvh.bin
+ fi
}
diff --git a/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild b/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild
new file mode 100644
index 000000000000..502d03bee2b3
--- /dev/null
+++ b/app-emulation/grub-xen-host/grub-xen-host-1.0-r2.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Grub2 built as a PV grub per the Xen PV Boot Protocol"
+HOMEPAGE="https://wiki.xenproject.org/wiki/PvGrub2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="pvh"
+
+DEPEND="
+ sys-boot/grub:2=[grub_platforms_xen]
+ pvh? ( >=sys-boot/grub-2.04:2=[grub_platforms_xen-pvh] )
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+RESTRICT="binchecks strip test"
+
+src_configure() {
+ :
+}
+
+src_compile() {
+ cat > "${S}/grub-bootstrap.cfg" <<- EOF || die
+ normal (memdisk)/grub.cfg
+ EOF
+
+ cat > "${S}/grub.cfg" <<- EOF || die
+ if search -s -f /boot/xen/pvboot-x86_64.elf ; then
+ echo "Chainloading (${root})/boot/xen/pvboot-x86_64.elf"
+ multiboot "/boot/xen/pvboot-x86_64.elf"
+ boot
+ fi
+
+ if search -s -f /xen/pvboot-x86_64.elf ; then
+ echo "Chainloading (${root})/xen/pvboot-x86_64.elf"
+ multiboot "/xen/pvboot-x86_64.elf"
+ boot
+ fi
+
+ if search -s -f /boot/grub/grub.cfg ; then
+ echo "Reading (${root})/boot/grub/grub.cfg"
+ configfile /boot/grub/grub.cfg
+ fi
+
+ if search -s -f /grub/grub.cfg ; then
+ echo "Reading (${root})/grub/grub.cfg"
+ configfile /grub/grub.cfg
+ fi
+ EOF
+
+ tar cf memdisk.tar grub.cfg || die "failed to tar"
+
+ local grub_mkimage=grub-mkimage
+ if type grub2-mkimage &> /dev/null; then
+ grub_mkimage=grub2-mkimage
+ fi
+
+ local args=(
+ "${grub_mkimage}"
+ -O x86_64-xen
+ -c grub-bootstrap.cfg
+ -m memdisk.tar
+ -p "${EPREFIX}"/usr/lib/grub/x86_64-xen/*.mod
+ -o grub-x86_64-xen.bin
+ )
+
+ echo "${args[@]}"
+ "${args[@]}" || die "failed to grub-mkimage"
+
+ if use pvh; then
+ local args=(
+ "${grub_mkimage}"
+ -O i386-xen_pvh
+ -c grub-bootstrap.cfg
+ -m memdisk.tar
+ -p "${EPREFIX}"/usr/lib/grub/i386-xen_pvh/*.mod
+ -o grub-i386-xen_pvh.bin
+ )
+
+ echo "${args[@]}"
+ "${args[@]}" || die "failed to grub-mkimage"
+ fi
+
+}
+
+src_install() {
+ exeinto /usr/libexec/xen/bin
+ doexe grub-x86_64-xen.bin
+ if use pvh; then
+ doexe grub-i386-xen_pvh.bin
+ fi
+}
diff --git a/app-emulation/grub-xen-host/metadata.xml b/app-emulation/grub-xen-host/metadata.xml
index 84e79366a42d..485b9cd416b6 100644
--- a/app-emulation/grub-xen-host/metadata.xml
+++ b/app-emulation/grub-xen-host/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>xen@gentoo.org</email>
@@ -9,4 +9,7 @@
a guest installed PV grub (grub legacy or grub 2) or handle a guest
supplied grub 2 config file.
</longdescription>
+ <use>
+ <flag name="pvh">Build an additional grub bin for pvh.</flag>
+ </use>
</pkgmetadata>
diff --git a/app-emulation/guestfs-tools/Manifest b/app-emulation/guestfs-tools/Manifest
new file mode 100644
index 000000000000..f8739c8d818b
--- /dev/null
+++ b/app-emulation/guestfs-tools/Manifest
@@ -0,0 +1 @@
+DIST guestfs-tools-1.48.2.tar.gz 12691067 BLAKE2B 305f281c19975f160c435b995d71ef2e18d09fc95f31e92efe8f79d811fc0a7efab27d14f766d5f6ee477fd43977167a3aabe5cc40498f125f925507fd2574d5 SHA512 e11cd5a38a1681e8b2fd56419d38ca0aaab659cb59d409b3572cadcd04fd4da3078fa33e7f21c99d11854ad08797ae24a8d71c041b1b7769fc36c1391b6eb162
diff --git a/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild b/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild
new file mode 100644
index 000000000000..718c2b33d14b
--- /dev/null
+++ b/app-emulation/guestfs-tools/guestfs-tools-1.48.2.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bump with app-emulation/libguestfs and app-emulation/libguestfs-appliance (if any new release there)
+
+inherit flag-o-matic linux-info perl-functions strip-linguas toolchain-funcs
+
+MY_PV_1="$(ver_cut 1-2)"
+MY_PV_2="$(ver_cut 2)"
+[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development"
+
+DESCRIPTION="Tools for accessing, inspecting, and modifying virtual machine (VM) disk images"
+HOMEPAGE="https://libguestfs.org/"
+SRC_URI="https://download.libguestfs.org/${PN}/${MY_PV_1}-${SD}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0/${MY_PV_1}"
+if [[ ${SD} == "stable" ]] ; then
+ KEYWORDS="amd64"
+fi
+IUSE="doc +ocaml +perl test"
+RESTRICT="!test? ( test )"
+
+# Failures - doc
+COMMON_DEPEND="
+ !<app-emulation/libguestfs-1.46.0-r1
+ app-alternatives/cpio
+ app-arch/lzma
+ app-arch/unzip[natspec]
+ app-arch/xz-utils
+ app-crypt/gnupg
+ >=app-emulation/libguestfs-${MY_PV_1}:=[ocaml?,perl?]
+ app-emulation/libvirt:=
+ >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,filecaps]
+ dev-lang/perl:=
+ dev-libs/libpcre2:=
+ dev-libs/libxml2:2
+ dev-libs/jansson:=
+ >=sys-apps/fakechroot-2.8
+ sys-fs/squashfs-tools:*
+ sys-libs/ncurses:=
+ sys-libs/libxcrypt:=
+ virtual/libcrypt:=
+ ocaml? ( >=dev-lang/ocaml-4.03:=[ocamlopt] )
+ perl? (
+ virtual/perl-Data-Dumper
+ virtual/perl-Getopt-Long
+ dev-perl/Module-Build
+ dev-perl/libintl-perl
+ virtual/perl-ExtUtils-MakeMaker
+ >=dev-perl/Sys-Virt-0.2.4
+ dev-perl/String-ShellQuote
+ test? ( virtual/perl-Test-Simple )
+ )
+"
+# Some OCaml is always required
+# bug #729674
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-lang/ocaml-4.03:=[ocamlopt]
+ dev-ml/findlib[ocamlopt]
+ doc? ( app-text/po4a )
+ ocaml? (
+ dev-ml/ounit2[ocamlopt]
+ || (
+ <dev-ml/ocaml-gettext-0.4.2
+ dev-ml/ocaml-gettext-stub[ocamlopt]
+ )
+ )
+"
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ app-emulation/libguestfs-appliance
+"
+
+DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO )
+
+#PATCHES=(
+# "${FILESDIR}"/${MY_PV_1}/
+#)
+
+pkg_setup() {
+ CONFIG_CHECK="~KVM ~VIRTIO"
+ [[ -n "${CONFIG_CHECK}" ]] && check_extra_config
+}
+
+src_configure() {
+ # bug #794877
+ tc-export AR
+
+ # Needs both bison+flex (bug #915339, see configure too)
+ unset YACC LEX
+
+ if use test ; then
+ # Skip Bash test
+ # (See 13-test-suite.log in linked bug)
+ # bug #794874
+ export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=1
+
+ # This test requires libvirt support in libguestfs and it makes
+ # no difference at runtime. Just gracefully skip it to make life
+ # easier for e.g. arch testing.
+ if ! has_version 'app-emulation/libguestfs[libvirt]' ; then
+ export SKIP_TEST_VIRT_ALIGNMENT_SCAN_GUESTS_SH=1
+ fi
+
+ # Needed for the inspector tests. Provided by libguestfs-appliance.
+ #export LIBGUESTFS_PATH="${BROOT}"/usr/share/guestfs/appliance/
+ # But the inspector tests seem fragile anyway...
+ export SKIP_TEST_VIRT_INSPECTOR_LUKS_SH=1
+ export SKIP_TEST_VIRT_INSPECTOR_SH=1
+ fi
+
+ # Disable feature test for kvm for more reason
+ # i.e: not loaded module in __build__ time,
+ # build server not supported kvm, etc. ...
+ #
+ # In fact, this feature is virtio support and requires
+ # configured kernel.
+ export vmchannel_test=no
+
+ # Give a nudge to help find libxcrypt[-system]
+ # We have a := dep on virtual/libcrypt to ensure this
+ # doesn't become stale.
+ # bug #703118, bug #789354
+ if ! has_version 'sys-libs/libxcrypt[system]' ; then
+ append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/xcrypt"
+ append-ldflags "-Wl,-R${ESYSROOT}/usr/$(get_libdir)/xcrypt"
+ fi
+
+ # Test suite at least has a bunch of bashisms
+ SHELL="${BROOT}"/bin/bash CONFIG_SHELL="${BROOT}"/bin/bash econf \
+ $(usex doc '' PO4A=no) \
+ $(use_enable ocaml) \
+ $(use_enable perl)
+}
+
+src_install() {
+ strip-linguas -i po
+
+ emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}"""
+
+ find "${ED}" -name '*.la' -delete || die
+
+ if use perl ; then
+ perl_delete_localpod
+ fi
+}
+
+pkg_postinst() {
+ if ! use ocaml ; then
+ einfo "OCaml based tools and bindings (virt-resize, virt-sparsify, virt-sysprep, ...) NOT installed"
+ fi
+
+ if ! use perl ; then
+ einfo "Perl based tools NOT built"
+ fi
+}
diff --git a/app-emulation/guestfs-tools/metadata.xml b/app-emulation/guestfs-tools/metadata.xml
new file mode 100644
index 000000000000..115e9d64a669
--- /dev/null
+++ b/app-emulation/guestfs-tools/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+</pkgmetadata>
diff --git a/app-emulation/gxemul/Manifest b/app-emulation/gxemul/Manifest
index 0e40fbe91e05..4d1ab5f52d49 100644
--- a/app-emulation/gxemul/Manifest
+++ b/app-emulation/gxemul/Manifest
@@ -1,2 +1 @@
-DIST gxemul-0.6.0.tar.gz 3598795 BLAKE2B 01bab252b8497379cc819899d9030fd267cf7679a90a421f435c6cb9ce84fedbdbd0ff23a11e0c91a17e41e166488562b4e173b3793cdbc2dd53b70701351429 SHA512 38108c7e4f1332bf80046a63e4a7c5e0fbce7f83a62fdeaa4518ef02947d7de83aac20b0307d286b7eb5d9c721b8400d449d4f244b2bc9358a2502fa21f56b73
DIST gxemul-0.6.2.tar.gz 5897883 BLAKE2B 9f5b76d955dc3e1a5b1623aaf491f18376456f33cfaa6a4c1633480980c35bb99172075135cfc1ca942ae3b0f34c4eb11c4aec4bc00272da8bb905176ddcea4a SHA512 4f389c509f9ecf39603ceed50e899e2bee285d3fefac9b3214076115ee71b5a7a68d1d92690b6debc8de5cf5f0303da83b3cc921a5c0b5eb4c7ad89baa730b59
diff --git a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch b/app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch
deleted file mode 100644
index cf8b18379cd4..000000000000
--- a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mkstemp-test.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/configure 2012-11-03 09:08:09.373041529 +0000
-+++ b/configure 2012-11-03 09:08:31.999585979 +0000
-@@ -705,6 +705,7 @@
- # mkstemp missing?
- printf "checking for mkstemp... "
- printf "#include <unistd.h>
-+#include <stdlib.h>
- int main(int argc, char *argv[]) { int x; char *y = \"abc\";
- x = mkstemp(y); return 0;}\n" > _tests.cc
- $CXX $CXXFLAGS _tests.cc -o _tests 2> /dev/null
diff --git a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch b/app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch
deleted file mode 100644
index c9e21bcc4b33..000000000000
--- a/app-emulation/gxemul/files/gxemul-0.6.0-fix-mymkstemp.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/old_main/misc.cc 2012-11-03 08:47:34.309732354 +0000
-+++ b/src/old_main/misc.cc 2012-11-03 08:47:02.096573614 +0000
-@@ -122,7 +122,7 @@
- p++;
- }
-
-- h = open(templ, O_RDWR, 0600);
-+ h = open(templ, O_CREAT | O_RDWR, 0600);
- return h;
- }
-
diff --git a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild b/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild
deleted file mode 100644
index 2dd8d8087fa6..000000000000
--- a/app-emulation/gxemul/gxemul-0.6.0-r1.ebuild
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="A Machine Emulator, Mainly emulates MIPS, but supports other CPU types"
-HOMEPAGE="http://gxemul.sourceforge.net/"
-SRC_URI="mirror://sourceforge/project/gxemul/GXemul/${PV}/${P}.tar.gz"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~mips ~ppc ~sparc ~x86"
-IUSE="debug X"
-
-RDEPEND="X? ( x11-libs/libX11 )"
-DEPEND="${RDEPEND}
- X? ( x11-base/xorg-proto )"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-0.6.0-gcc46.patch
- "${FILESDIR}"/${P}-fix-mymkstemp.patch # Bug 441558
- "${FILESDIR}"/${P}-fix-mkstemp-test.patch # Bug 441558
- "${FILESDIR}"/${PN}-0.6.0-no-doxygen.patch
-)
-
-src_prepare() {
- default
-
- sed -i configure -e 's|-O3||g' || die "sed configure"
- tc-export CC CXX
-}
-
-src_configure() {
- # no autotools
- ./configure \
- --disable-valgrind \
- $(use debug && echo --debug) \
- $(use X || echo --disable-x) \
- || die "configure failed"
-}
-
-src_install() {
- dobin gxemul
- doman man/gxemul.1
- dodoc HISTORY README
- docinto html
- dodoc -r doc/.
-}
diff --git a/app-emulation/gxemul/metadata.xml b/app-emulation/gxemul/metadata.xml
index ce46ccfd0e80..bd88d1ef0ae4 100644
--- a/app-emulation/gxemul/metadata.xml
+++ b/app-emulation/gxemul/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<longdescription>Machine Emulator. Supports emulation across several architectures. Primarily for MIPS support, but other platform support coming soon.</longdescription>
diff --git a/app-emulation/hercules/Manifest b/app-emulation/hercules/Manifest
index a21a461a5411..9d2aef8825b5 100644
--- a/app-emulation/hercules/Manifest
+++ b/app-emulation/hercules/Manifest
@@ -1,3 +1 @@
-DIST hercules-3.10.tar.gz 2608321 BLAKE2B df6dd9c93531ee3d68efbfad5b0152ef984e1804e211861e86ea5f7b271081abbd29664d4e97d0e887af10315549bdd7e890ec741baa7b69336f1f08be63c6cf SHA512 de8b3e2e90fdb745dea9c8ce4dbe506de2aba3bf08b3e937605798e6a8020576a949d6ea3496b7c42bd23d617fc96648d2d8ec05a66e8ed174ce46a3bc31c5d1
-DIST hercules-3.12.tar.gz 2569617 BLAKE2B e6b6dc2406bc198e25ddcbdc5dbf141e52cd15ddd690711fdd4ed69ca5baaddd582c437e28aa7793ac667c03f7617adb3bdf3a00cc7c3a28e3f28984f665eb9a SHA512 81d6e151c1c8534753f2db532a0a7bd36fb3806c1ffbab5d6e4a9af3eecea46b95105c37574910714dcfc0fe9b74a72140d573099c24fd44021159ce697414ef
DIST hercules-3.13.tar.gz 2640742 BLAKE2B 1a84ceab346a591c494fb133d1654ffa73e44f73183564167a74f68eb3e5f3f187cc2f66cef444b951645fa85c111da261b9dd8907594ccb770f5b743f891649 SHA512 76f75ef3f1eb10c0fac0d6fa1ab9809b8d1dfe3deccbcd69366b05ee58f1ecb8ea0f387f7201ab4722b121478676f00e707ad27b6ecf1980fb09e900de63d718
diff --git a/app-emulation/hercules/files/hercules-3.09-aliasing.patch b/app-emulation/hercules/files/hercules-3.09-aliasing.patch
deleted file mode 100644
index 3d03e9b6dc1b..000000000000
--- a/app-emulation/hercules/files/hercules-3.09-aliasing.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 7d3255a18ad845953cc8083371e8623e771ad4f5 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Tue, 27 Aug 2013 12:25:49 -0400
-Subject: [PATCH] sha: fix strict aliasing warnings
-
-sha256.c:492:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
-sha256.c:784:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
-sha256.c:785:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- crypto/sha256.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/crypto/sha256.c b/crypto/sha256.c
-index 1a6a243..b1e90b4 100644
---- a/crypto/sha256.c
-+++ b/crypto/sha256.c
-@@ -489,7 +489,7 @@ SHA256_Final(u_int8_t digest[], SHA256_CTX *context)
- *context->buffer = 0x80;
- }
- /* Set the bit count: */
-- *(u_int64_t *)&context->buffer[SHA256_SHORT_BLOCK_LENGTH] = context->bitcount;
-+ memcpy (&context->buffer[SHA256_SHORT_BLOCK_LENGTH], &context->bitcount, 8);
-
- /* Final transform: */
- SHA256_Transform(context, context->buffer);
-@@ -781,8 +781,8 @@ SHA512_Last(SHA512_CTX *context)
- *context->buffer = 0x80;
- }
- /* Store the length of input data (in bits): */
-- *(u_int64_t *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH] = context->bitcount[1];
-- *(u_int64_t *)&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8] = context->bitcount[0];
-+ memcpy (&context->buffer[SHA512_SHORT_BLOCK_LENGTH], &context->bitcount[1], 8);
-+ memcpy (&context->buffer[SHA512_SHORT_BLOCK_LENGTH+8], &context->bitcount[0], 8);
-
- /* Final transform: */
- SHA512_Transform(context, context->buffer);
---
-1.8.3.2
-
diff --git a/app-emulation/hercules/files/hercules-3.13-posix-test.patch b/app-emulation/hercules/files/hercules-3.13-posix-test.patch
new file mode 100644
index 000000000000..abee4b0cc5ed
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.13-posix-test.patch
@@ -0,0 +1,29 @@
+https://github.com/rbowler/spinhawk/pull/106
+
+From 9a9f7182069b8fe0483383c177882218244bad16 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 18 Nov 2021 02:32:02 -0500
+Subject: [PATCH] avoid bashism in test call
+
+POSIX test only supports =, not ==.
+---
+ autoconf/hercules.m4 | 2 +-
+ configure.ac | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f12d47058562..8dd420af8d13 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -562,7 +562,7 @@ AC_CHECK_DECLS( SIOCADDRT, [hc_cv_have_siocaddrt=yes], [hc_
+ AC_CHECK_DECLS( SIOCDELRT, [hc_cv_have_siocdelrt=yes], [hc_cv_have_siocdelrt=no], [#include <linux/sockios.h>] )
+ AC_CHECK_DECLS( SIOCDIFADDR, [hc_cv_have_siocdifaddr=yes], [hc_cv_have_siocdifaddr=no], [#include <linux/sockios.h>] )
+
+-if test "$hc_cv_have_sys_mtio_h" == "yes"; then
++if test "$hc_cv_have_sys_mtio_h" = "yes"; then
+ AC_CHECK_DECLS( MTEWARN, [hc_cv_have_mtewarn=yes], [hc_cv_have_mtewarn=no], [#include <sys/mtio.h>] )
+ else
+ hc_cv_have_mtewarn=no
+--
+2.33.0
+
diff --git a/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch b/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch
index 7aec7f602de4..c96831d96ad2 100644
--- a/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch
+++ b/app-emulation/hercules/files/hercules-3.13-unbundle-libltdl.patch
@@ -282,7 +282,7 @@
DYNMOD_LD_FLAGS =
DYNMOD_LD_ADD =
LIB_LD_FLAGS = $(XSTATIC) \
-@@ -295,8 +295,7 @@
+@@ -295,12 +295,11 @@
memrchr.c \
parser.c \
pttrace.c \
@@ -292,6 +292,11 @@
libhercu_la_LDFLAGS = $(LIB_LD_FLAGS)
+- libhercu_la_LIBADD = $(LDADD) libhercs.la
++ libhercu_la_LIBADD = $(LDADD) libhercs.la $(LIB_LD_ADD)
+
+ #
+ # Core Hercules (shared) library
@@ -372,8 +371,7 @@
memrchr.c \
$(dynamic_SRC) \
@@ -345,3 +350,30 @@
LIB_LD_FLAGS = $(XSTATIC) \
-no-undefined \
-avoid-version
+--- a/autoconf/hercules.m4
++++ b/autoconf/hercules.m4
+@@ -270,7 +270,7 @@
+
+ else
+
+- if test $(./libtool --features | fgrep "enable shared libraries" | wc -l) -ne 1; then
++ if test "$enable_shared" != "yes"; then
+
+ # Libtool doesn't support shared libraries,
+ # and thus our wrapper kludge is not needed.
+@@ -280,11 +280,11 @@
+ }
+ DUPGETOPT2
+
+- ./libtool --mode=compile ${CC-cc} conftest1.c -c -o conftest1.lo > /dev/null 2>&1
+- ./libtool --mode=compile ${CC-cc} conftest2.c -c -o conftest2.lo > /dev/null 2>&1
++ libtool --mode=compile ${CC-cc} conftest1.c -c -o conftest1.lo > /dev/null 2>&1
++ libtool --mode=compile ${CC-cc} conftest2.c -c -o conftest2.lo > /dev/null 2>&1
+
+- ./libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest1.lo -o libconftest1.la > /dev/null 2>&1
+- ./libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest2.lo libconftest1.la -o libconftest2.la > /dev/null 2>&1
++ libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest1.lo -o libconftest1.la > /dev/null 2>&1
++ libtool --mode=link ${CC-cc} -shared -rpath /lib -no-undefined conftest2.lo libconftest1.la -o libconftest2.la > /dev/null 2>&1
+
+ if test $? = 0; then
+
diff --git a/app-emulation/hercules/files/hercules-3.13-user-install.patch b/app-emulation/hercules/files/hercules-3.13-user-install.patch
new file mode 100644
index 000000000000..bcde1181e873
--- /dev/null
+++ b/app-emulation/hercules/files/hercules-3.13-user-install.patch
@@ -0,0 +1,21 @@
+the ebuild will handle these, so no need to do it directly which will fail when
+building as non-root.
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -730,15 +730,6 @@ endif
+ (cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) cfba2fba$(EXEEXT))
+ rm -f $(DESTDIR)$(bindir)/cckd2ckd$(EXEEXT)
+ (cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) cckd2ckd$(EXEEXT))
+-if SETUID_HERCIFC
+- chown root $(DESTDIR)$(bindir)/hercifc
+-if HERCIFC_GROUPSET
+- chgrp $(HERCIFC_GROUPNAME) $(DESTDIR)$(bindir)/hercifc
+-endif
+- chmod 0750 $(DESTDIR)$(bindir)/hercifc
+- chmod +s $(DESTDIR)$(bindir)/hercifc
+- rm hercifc
+-endif
+
+ uninstall-local:
+
diff --git a/app-emulation/hercules/hercules-3.12.ebuild b/app-emulation/hercules/hercules-3.12.ebuild
deleted file mode 100644
index d121c6a69fa7..000000000000
--- a/app-emulation/hercules/hercules-3.12.ebuild
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit flag-o-matic
-
-DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator"
-HOMEPAGE="http://www.hercules-390.eu/"
-SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz"
-
-LICENSE="QPL-1.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~x64-macos ~x86-macos"
-IUSE="bzip2 custom-cflags +suid"
-
-RDEPEND="bzip2? ( app-arch/bzip2 )
- net-libs/libnsl:0=
- sys-libs/zlib"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.09-aliasing.patch
-)
-
-src_prepare() {
- default
-
- # The local modules need local libs, so when doing a parallel install
- # of the modules and libs breaks during relinking. Force the libs to
- # install first, and then the modules that use those libs. #488126
- echo "install-modexecLTLIBRARIES: install-libLTLIBRARIES" >> Makefile.in || die
-}
-
-src_configure() {
- use custom-cflags || strip-flags
- ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2) \
- econf \
- $(use_enable bzip2 cckd-bzip2) \
- $(use_enable bzip2 het-bzip2) \
- $(use_enable suid setuid-hercifc) \
- --enable-custom="Gentoo ${PF}.ebuild" \
- --disable-optimization
-}
-
-src_install() {
- default
- insinto /usr/share/hercules
- doins hercules.cnf
- dodoc README.* RELEASE.NOTES
- docinto html
- dodoc -r html
-}
diff --git a/app-emulation/hercules/hercules-3.10.ebuild b/app-emulation/hercules/hercules-3.13-r1.ebuild
index d165c020c390..608739f4b314 100644
--- a/app-emulation/hercules/hercules-3.10.ebuild
+++ b/app-emulation/hercules/hercules-3.13-r1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI="7"
-inherit flag-o-matic
+inherit autotools flag-o-matic
DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator"
HOMEPAGE="http://www.hercules-390.eu/"
@@ -11,21 +11,30 @@ SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz"
LICENSE="QPL-1.0"
SLOT="0"
-KEYWORDS="~alpha amd64 ppc sparc x86 ~x64-macos ~x86-macos"
+KEYWORDS="~alpha amd64 ppc sparc x86 ~x64-macos"
IUSE="bzip2 custom-cflags +suid"
-RDEPEND="bzip2? ( app-arch/bzip2 )
+RDEPEND="
+ dev-libs/libltdl:=
net-libs/libnsl:0=
- sys-libs/zlib"
+ sys-libs/zlib:=
+ bzip2? ( app-arch/bzip2:= )"
DEPEND="${RDEPEND}"
PATCHES=(
- "${FILESDIR}"/${PN}-3.09-aliasing.patch
+ "${FILESDIR}"/${PN}-3.13-htmldir.patch
+ "${FILESDIR}"/${PN}-3.13-posix-test.patch
+ "${FILESDIR}"/${PN}-3.13-unbundle-libltdl.patch
+ "${FILESDIR}"/${PN}-3.13-user-install.patch
)
src_prepare() {
default
+ # delete bundled libltdl, #252716
+ rm ltdl.{c,h} || die
+ eautoreconf
+
# The local modules need local libs, so when doing a parallel install
# of the modules and libs breaks during relinking. Force the libs to
# install first, and then the modules that use those libs. #488126
@@ -34,7 +43,7 @@ src_prepare() {
src_configure() {
use custom-cflags || strip-flags
- ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2) \
+ local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2)
econf \
$(use_enable bzip2 cckd-bzip2) \
$(use_enable bzip2 het-bzip2) \
@@ -45,9 +54,13 @@ src_configure() {
src_install() {
default
+ dodoc RELEASE.NOTES
+
+ use suid && fperms 4711 /usr/bin/hercifc
+
insinto /usr/share/hercules
doins hercules.cnf
- dodoc README.* RELEASE.NOTES
- docinto html
- dodoc -r html
+
+ # No static archives. Have to leave .la files for modules. #720342
+ rm "${ED}/usr/$(get_libdir)/"*.la || die
}
diff --git a/app-emulation/hercules/hercules-3.13.ebuild b/app-emulation/hercules/hercules-3.13.ebuild
deleted file mode 100644
index 90fb943156a9..000000000000
--- a/app-emulation/hercules/hercules-3.13.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools flag-o-matic
-
-DESCRIPTION="Hercules System/370, ESA/390 and zArchitecture Mainframe Emulator"
-HOMEPAGE="http://www.hercules-390.eu/"
-SRC_URI="http://downloads.hercules-390.eu/${P}.tar.gz"
-
-LICENSE="QPL-1.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86 ~x64-macos ~x86-macos"
-IUSE="bzip2 custom-cflags +suid"
-
-RDEPEND="
- dev-libs/libltdl
- net-libs/libnsl:0=
- sys-libs/zlib
- bzip2? ( app-arch/bzip2 )"
-DEPEND="${RDEPEND}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.13-htmldir.patch
- "${FILESDIR}"/${PN}-3.13-unbundle-libltdl.patch
-)
-
-src_prepare() {
- default
-
- # delete bundled libltdl, #252716
- rm ltdl.{c,h} || die
- eautoreconf
-}
-
-src_configure() {
- use custom-cflags || strip-flags
- local -x ac_cv_lib_bz2_BZ2_bzBuffToBuffDecompress=$(usex bzip2)
- econf \
- $(use_enable bzip2 cckd-bzip2) \
- $(use_enable bzip2 het-bzip2) \
- $(use_enable suid setuid-hercifc) \
- --enable-custom="Gentoo ${PF}.ebuild" \
- --disable-optimization
-}
-
-src_install() {
- default
- dodoc RELEASE.NOTES
-
- insinto /usr/share/hercules
- doins hercules.cnf
-
- # no static archives
- find "${D}" -name '*.la' -delete || die
-}
diff --git a/app-emulation/hercules/metadata.xml b/app-emulation/hercules/metadata.xml
index cb2f36c44dd8..d03df75ce618 100644
--- a/app-emulation/hercules/metadata.xml
+++ b/app-emulation/hercules/metadata.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>s390@gentoo.org</email>
- <name>Gentoo Linux s390 Development</name>
+ <name>s390 architecture team</name>
</maintainer>
<longdescription>
Hercules is an emulator for the IBM System/360, System/370, ESA/390, and
diff --git a/app-emulation/hyperd/metadata.xml b/app-emulation/hyperd/metadata.xml
index 2babf919ffdd..8367f3593c1c 100644
--- a/app-emulation/hyperd/metadata.xml
+++ b/app-emulation/hyperd/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
diff --git a/app-emulation/img/Manifest b/app-emulation/img/Manifest
deleted file mode 100644
index 4f0b1fbab893..000000000000
--- a/app-emulation/img/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST img-0.5.7.tar.gz 3875988 BLAKE2B dd8f13f6861eadc3a4c3d2d07ac826e53a8f3b83d66974717e9312c579967e0c9b57657c8fe6e86f03bb91fd7a82bc6d8d7d87a70be4dd85da10800d8909a51d SHA512 a42247c2ceac0ccfcc2cfd6a561a058855869f0219994cd8fa2bdd5092be17803057e4cb48a2d5277fdfded74dd06eb7c3c3db590fbde91502aebcaf593ddef7
diff --git a/app-emulation/img/img-0.5.7-r1.ebuild b/app-emulation/img/img-0.5.7-r1.ebuild
deleted file mode 100644
index 4b2367c13e4e..000000000000
--- a/app-emulation/img/img-0.5.7-r1.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_PN="github.com/genuinetools/img"
-
-inherit golang-vcs-snapshot
-
-DESCRIPTION="Standalone daemon-less unprivileged Dockerfile and OCI container image builder"
-HOMEPAGE="https://github.com/genuinetools/img"
-SRC_URI="https://github.com/genuinetools/img/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-KEYWORDS="~amd64"
-LICENSE="MIT"
-SLOT="0"
-IUSE="seccomp"
-
-DEPEND="seccomp? ( sys-libs/libseccomp )"
-RDEPEND="${DEPEND}
- app-emulation/runc"
-
-src_compile() {
- GOPATH="${S}:$(get_golibdir_gopath)" \
- GOCACHE="${T}/go-cache" \
- IMG_DISABLE_EMBEDDED_RUNC=1 \
- go build -v -work -x -tags "noembed $(usev seccomp)" \
- -ldflags="-s -w -X ${EGO_PN}/version.VERSION=${PV}" "${EGO_PN}" || die
-}
-
-src_install() {
- dobin img
- dodoc "src/${EGO_PN}"/{README.md,AUTHORS}
-}
diff --git a/app-emulation/img/metadata.xml b/app-emulation/img/metadata.xml
deleted file mode 100644
index 236a80be46df..000000000000
--- a/app-emulation/img/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>email@linxon.ru</email>
- <name>Yury Martynov</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
- <upstream>
- <remote-id type="github">genuinetools/img</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/kompose/Manifest b/app-emulation/kompose/Manifest
deleted file mode 100644
index 4975b9db5488..000000000000
--- a/app-emulation/kompose/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST kompose-1.16.0.tar.gz 5241785 BLAKE2B 9958b200827b70c94a499981880cc7a5d8137354205d96657d854aefebbd877e332ac3047f59e13b62dd6b9a9235d1ed83bb8b8de973d59f81906b3f376176a0 SHA512 267601ba51f5cfcbb95b9fbf52bbb99f9c810de8edb301b635a50936d7a714dc8410352ff3a4aa8819de1659a45cbb42caf5e552023cfa594a0eb8e99db57522
-DIST kompose-1.19.0.tar.gz 5314491 BLAKE2B c03f7ece6dc91979a147bb1689525318b7c31b22242e6fbf5387469d3196dfc569178235b5a52ccdd9647ceb626be313017484451f149e375edf3b48da063328 SHA512 571c5f23a19ba1f7a403e2369d74a5f6ba051c5e9c27b79bf5ab05f8dfc9abd523862dad7da3cd0d503e4de2e76666cd1eea8d8921b0bbe79db81f11a23fbe64
diff --git a/app-emulation/kompose/kompose-1.16.0.ebuild b/app-emulation/kompose/kompose-1.16.0.ebuild
deleted file mode 100644
index 8804d097f4eb..000000000000
--- a/app-emulation/kompose/kompose-1.16.0.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot
-
-EGO_PN="github.com/kubernetes/kompose"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT="0c01309fe899c587e8cb02e9c31196ee66ab5093"
-ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Tool to move from docker-compose to Kubernetes"
-HOMEPAGE="https://github.com/kubernetes/kompose https://kompose.io"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="hardened"
-
-RESTRICT="test"
-
-src_compile() {
- export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')"
- GOPATH="${S}" go build -v -ldflags="-X github.com/kubernetes/kompose/cmd.GITCOMMIT=${GIT_COMMIT}" -o bin/kompose src/${EGO_PN}/main.go || die
-}
-
-src_install() {
- dobin bin/*
- dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,ROADMAP,CHANGELOG,CONTRIBUTING}.md}
-}
diff --git a/app-emulation/kompose/kompose-1.19.0.ebuild b/app-emulation/kompose/kompose-1.19.0.ebuild
deleted file mode 100644
index d6b2bc22f6a7..000000000000
--- a/app-emulation/kompose/kompose-1.19.0.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit golang-build golang-vcs-snapshot
-
-EGO_PN="github.com/kubernetes/kompose"
-EGIT_COMMIT="v${PV}"
-GIT_COMMIT="f63a961ca7972cb243507755c69cd066aa792289"
-ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Tool to move from docker-compose to Kubernetes"
-HOMEPAGE="https://github.com/kubernetes/kompose https://kompose.io"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="Apache-2.0"
-SLOT="0"
-IUSE="hardened"
-
-RESTRICT="test"
-
-src_compile() {
- export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')"
- GOPATH="${S}" go build -v -ldflags="-X github.com/kubernetes/kompose/cmd.GITCOMMIT=${GIT_COMMIT}" -o bin/kompose src/${EGO_PN}/main.go || die
-}
-
-src_install() {
- dobin bin/*
- dodoc -r src/${EGO_PN}/{docs,{README,RELEASE,CHANGELOG,CONTRIBUTING}.md}
-}
diff --git a/app-emulation/kompose/metadata.xml b/app-emulation/kompose/metadata.xml
deleted file mode 100644
index 35b5754e5e51..000000000000
--- a/app-emulation/kompose/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <upstream>
- <remote-id type="github">kubernetes/kompose</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/libcacard/Manifest b/app-emulation/libcacard/Manifest
index 14387566c0ec..58cdf557c643 100644
--- a/app-emulation/libcacard/Manifest
+++ b/app-emulation/libcacard/Manifest
@@ -1 +1 @@
-DIST libcacard-2.6.0.tar.xz 364828 BLAKE2B 3a07243abb91dab05d89bf073fabb4a0ef7e820765066a8d87e72086b88cc726de77d1fdc5118e05ed47077d76ae0a57ff591a2e4e8623c3484c6cbf00cd025e SHA512 d6dfe6fe6cd2711bf8f71edc134a7caf459fc2a9c4f664ab2f1c28cc9ee8efe7a2d5a15c4dc735956638176e07e22416cad5e8e926aa7cab3fa95ded853f5982
+DIST libcacard-2.8.1.tar.xz 396472 BLAKE2B 49b1c0c9184f0a926df85de6146dd31a7127ee5e40a172e3d9e47f33ef4cdef57ee85f34c9c53719b4a8c5a1de695b8936cfcfce141cd558e6d53d215421621b SHA512 6deddd3319dbd74165eeaa2e8ab10de4a6eb111e980edd608801f7fe3c4fa896c9fb239110d17763864887f5eb0b77c03c680d83fd58a3913b48deb5a225ec74
diff --git a/app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch b/app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch
deleted file mode 100644
index 40e2a9d21e26..000000000000
--- a/app-emulation/libcacard/files/libcacard-2.6.0-simpletlv-test-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/tests/simpletlv.c b/tests/simpletlv.c
-index cd0cd69c4dfb504a52e3f7314e4a01657377eb68..9ddc5b999f73d56f35f85810479760b301330282 100644
---- a/tests/simpletlv.c
-+++ b/tests/simpletlv.c
-@@ -48,7 +48,7 @@ static void test_length_simple(void)
-
- static void test_length_nested(void)
- {
-- size_t length = 0;
-+ int length = 0;
- unsigned char simple_value[] = "\x12\x14";
- static struct simpletlv_member simple[1] = {
- {0x25, 2, {/*.value = simple_value*/}, SIMPLETLV_TYPE_LEAF}
-@@ -102,7 +102,7 @@ static void test_length_skipped(void)
- static void test_encode_simple(void)
- {
- unsigned char *result = NULL;
-- size_t result_len = 0;
-+ int result_len = 0;
- unsigned char simple_value[] = "\x10\x11";
- unsigned char simple_encoded[] = "\x25\x02\x10\x11";
- unsigned char long_value[256] = "Long data value";
-@@ -168,7 +168,7 @@ static void test_encode_simple(void)
- static void test_encode_nested(void)
- {
- unsigned char *result = NULL;
-- size_t result_len = 0;
-+ int result_len = 0;
- unsigned char simple_value[] = "\x12\x14";
- unsigned char encoded[] = "\x72\x04\x25\x02\x12\x14";
- static struct simpletlv_member simple[1] = {
diff --git a/app-emulation/libcacard/libcacard-2.6.0.ebuild b/app-emulation/libcacard/libcacard-2.6.0.ebuild
deleted file mode 100644
index c196a512a7ca..000000000000
--- a/app-emulation/libcacard/libcacard-2.6.0.ebuild
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-
-DESCRIPTION="virtual Common Access Card (CAC) library emulator"
-HOMEPAGE="https://www.spice-space.org/"
-SRC_URI="https://www.spice-space.org/download/libcacard/${P}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ppc ppc64 sparc x86"
-IUSE="+passthrough static-libs"
-
-RDEPEND=">=dev-libs/nss-3.13
- >=dev-libs/glib-2.22
- passthrough? ( >=sys-apps/pcsc-lite-1.8 )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-PATCHES=(
- "${FILESDIR}/${P}-simpletlv-test-fix.patch"
- )
-
-src_prepare() {
- default
-
- # remove test requiring SoftHSMv2 which is not in the tree atm
- sed -i \
- -e 's|tests/hwtests$(EXEEXT) \($(am__EXEEXT_1)\)|\1|' \
- Makefile.in || die
-}
-
-src_configure() {
- econf \
- $(use_enable passthrough pcsc) \
- $(use_enable static-libs static)
-}
-
-src_install() {
- default
- dodoc docs/*.txt
- use static-libs || find "${ED}"/usr/ -name 'lib*.la' -delete
-}
diff --git a/app-emulation/libcacard/libcacard-2.8.1.ebuild b/app-emulation/libcacard/libcacard-2.8.1.ebuild
new file mode 100644
index 000000000000..11c365e0c4e9
--- /dev/null
+++ b/app-emulation/libcacard/libcacard-2.8.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Virtual Common Access Card (CAC) library emulator"
+HOMEPAGE="https://gitlab.freedesktop.org/spice/libcacard https://www.spice-space.org/"
+SRC_URI="https://www.spice-space.org/download/libcacard/${P}.tar.xz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~ia64 ~loong ppc ppc64 ~riscv sparc x86"
+IUSE="+passthrough static-libs test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/nss-3.12.8
+ >=dev-libs/glib-2.32
+ passthrough? ( >=sys-apps/pcsc-lite-1.8 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_configure() {
+ local emesonargs=(
+ -Ddefault_library=$(usex static-libs both shared)
+ $(meson_feature passthrough pcsc)
+ $(meson_use !test disable_tests)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ dodoc docs/*.txt
+}
diff --git a/app-emulation/libcacard/metadata.xml b/app-emulation/libcacard/metadata.xml
index 0fa99318f0a7..1a71034e745b 100644
--- a/app-emulation/libcacard/metadata.xml
+++ b/app-emulation/libcacard/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
@@ -8,4 +8,7 @@
<use>
<flag name="passthrough">Enable smartcard passthrough support via <pkg>sys-apps/pcsc-lite</pkg></flag>
</use>
+ <upstream>
+ <remote-id type="freedesktop-gitlab">spice/libcacard</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/libdsk/Manifest b/app-emulation/libdsk/Manifest
index 948efc2aaff9..085523245587 100644
--- a/app-emulation/libdsk/Manifest
+++ b/app-emulation/libdsk/Manifest
@@ -1 +1 @@
-DIST libdsk-1.5.8.tar.gz 1212684 BLAKE2B 52a2687d8ade0378096215d362df21b6eb477b3304910bb98c56264fb05bec6ad2d2b7254dd132fe50e60d5179b4875a1a91088f8ed93f68886054bf1df060f4 SHA512 6bb332dcd58b88272130a950ed686852f66a1e97030aaa280db3bc65a7f82513d57055c2cc3e653e1e06843c453e46a52ce280b45b42c0bb671d1e0f6d7c9520
+DIST libdsk-1.5.18.tar.gz 1295474 BLAKE2B 36dd2a0c5a53899b721dc46848c79a36b80ebb30d8210eacf7462d5785c607f00b69ca26ea4ec35bd3e03f5203043e6aa0687b2212672b274305e9f5aad8ce6e SHA512 5d845084f6c7791813be7c2afcd34a52cebb217ddcdafe1953fcbd55ce5b7df944e2b3abd253d2a7cd376e6e111f9d6f2e0b6474ceb84a5b5f4dcb5609922d4e
diff --git a/app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch b/app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch
deleted file mode 100644
index e52b92bf2e33..000000000000
--- a/app-emulation/libdsk/files/libdsk-1.5.8-include-sysmacros.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -Nuar a/lib/compress.c b/lib/compress.c
---- a/lib/compress.c 2017-02-13 20:34:21.000000000 +0100
-+++ b/lib/compress.c 2018-01-28 15:22:15.571892254 +0100
-@@ -23,6 +23,7 @@
- #include "drvi.h" /* For LINUXFLOPPY and WIN32FLOPPY */
- #include "compi.h"
- #include "comp.h"
-+#include <sys/sysmacros.h>
- /* LibDsk generalised compression support */
- #ifdef HAVE_SYS_STAT_H
- #include <sys/stat.h>
-diff -Nuar a/lib/drvlinux.c b/lib/drvlinux.c
---- a/lib/drvlinux.c 2017-02-26 01:43:39.000000000 +0100
-+++ b/lib/drvlinux.c 2018-01-28 15:22:08.661892284 +0100
-@@ -26,6 +26,7 @@
-
- #include "drvi.h"
- #include "drvlinux.h"
-+#include <sys/sysmacros.h>
-
- #ifdef LINUXFLOPPY
-
diff --git a/app-emulation/libdsk/libdsk-1.5.18.ebuild b/app-emulation/libdsk/libdsk-1.5.18.ebuild
new file mode 100644
index 000000000000..6e18e9b1aed0
--- /dev/null
+++ b/app-emulation/libdsk/libdsk-1.5.18.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="LIBDSK is a library for accessing discs and disc image files"
+HOMEPAGE="https://www.seasip.info/Unix/LibDsk/"
+SRC_URI="https://www.seasip.info/Unix/LibDsk/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc"
+
+DOCS=( doc/${PN}.{txt,pdf} )
+
+src_install() {
+ default
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/app-emulation/libdsk/libdsk-1.5.8.ebuild b/app-emulation/libdsk/libdsk-1.5.8.ebuild
deleted file mode 100644
index e09295e8440b..000000000000
--- a/app-emulation/libdsk/libdsk-1.5.8.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="LIBDSK is a library for accessing discs and disc image files"
-HOMEPAGE="http://www.seasip.info/Unix/LibDsk/"
-SRC_URI="http://www.seasip.info/Unix/LibDsk/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="doc"
-
-src_prepare() {
- eapply "${FILESDIR}"/${P}-include-sysmacros.patch
- eapply_user
-}
-
-src_install() {
- emake DESTDIR="${D}" install
- DOCS="doc/${PN}.txt doc/${PN}.pdf" einstalldocs
-}
diff --git a/app-emulation/libdsk/metadata.xml b/app-emulation/libdsk/metadata.xml
index 7a38bb900964..115e9d64a669 100644
--- a/app-emulation/libdsk/metadata.xml
+++ b/app-emulation/libdsk/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/app-emulation/libguestfs-appliance/Manifest b/app-emulation/libguestfs-appliance/Manifest
index 2a14246054e3..6f9b2b913935 100644
--- a/app-emulation/libguestfs-appliance/Manifest
+++ b/app-emulation/libguestfs-appliance/Manifest
@@ -1 +1 @@
-DIST appliance-1.38.0.tar.xz 96537604 BLAKE2B 8b425b624dec274f2913ab9ff89cc02fea6c9244d6e3ee64f054d2a91f7959d9dbc03d55e9f5b4f5df835007581a18914b5c790f55b01c3398412ce5a7e9309d SHA512 a423fd54627ffb9c2ae05b26ad60b9089f8119a99d30612a33921a2662ba42332ad0a7a7ad6c33b7042fc02a5c4dc9b563158650c6cb4a3eaaae6b764f7d7082
+DIST appliance-1.46.0.tar.xz 145436856 BLAKE2B d9ed31f533a2772b0f506176b39bfdfdec1421fe4ff7934ccdb1db0cb2644d477211ec1a2d372d7e5dd0a8f278f47a39bff813b7bc4c9a038258a5f6358b4e91 SHA512 842119bdf95dbbd61328891e9bd0b557bed90ba79c6419ee18d1a79cd4a301ea6922339b9e80ac314ff3e16498e9d3c594861aebe8e0fc2db41d285eb8e5d578
diff --git a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
index 31e8b16bfd51..b688b1daac9c 100644
--- a/app-emulation/libguestfs-appliance/libguestfs-appliance-1.38.0.ebuild
+++ b/app-emulation/libguestfs-appliance/libguestfs-appliance-1.46.0.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=8
+
+# Bump with app-emulation/libguestfs and app-emulation/guestfs-tools (if any new release there)
CHECKREQS_DISK_USR=500M
CHECKREQS_DISK_BUILD=500M
@@ -9,20 +11,18 @@ CHECKREQS_DISK_BUILD=500M
inherit check-reqs
DESCRIPTION="VM appliance disk image used in libguestfs package"
-HOMEPAGE="http://libguestfs.org/"
-SRC_URI="http://libguestfs.org/download/binaries/appliance/appliance-${PV}.tar.xz"
+HOMEPAGE="https://libguestfs.org/"
+SRC_URI="https://download.libguestfs.org/binaries/appliance/appliance-${PV}.tar.xz"
+S="${WORKDIR}"
LICENSE="GPL-2 LGPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
+KEYWORDS="amd64 ~ppc64 ~x86"
-DEPEND="app-arch/xz-utils"
-# Mixing libguestfs versions causes weird problems. #501588
+BDEPEND="app-arch/xz-utils"
+# Mixing libguestfs versions causes weird problems, bug #501588
RDEPEND="!<app-emulation/libguestfs-${PV}"
-S="${WORKDIR}"
-
src_unpack() {
# We'll unpack the tarball directly into ${D} to speed up install.
# Otherwise we need to duplicate hundreds of data.
@@ -31,8 +31,9 @@ src_unpack() {
src_install() {
dodir /usr/share/guestfs
- cd "${ED}"/usr/share/guestfs
+ cd "${ED}"/usr/share/guestfs || die
unpack ${A}
+
cd appliance || die
dodoc README*
# Don't rm README.* here, at least README.fixed is needed for libguestfs, see
@@ -40,5 +41,10 @@ src_install() {
chmod 755 . || die
chmod 644 * || die
- newenvd "${FILESDIR}"/env.file 99"${PN}"
+ newenvd "${FILESDIR}"/env.file 99${PN}
+}
+
+pkg_postinst() {
+ # bug #776790
+ elog "Please run . ${EROOT}/etc/profile before attempting to use this package!"
}
diff --git a/app-emulation/libguestfs-appliance/metadata.xml b/app-emulation/libguestfs-appliance/metadata.xml
index d6547078667a..1e35cd5e94fd 100644
--- a/app-emulation/libguestfs-appliance/metadata.xml
+++ b/app-emulation/libguestfs-appliance/metadata.xml
@@ -1,13 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>maksbotan@gentoo.org</email>
- <name>Maxim Koltsov</name>
-</maintainer>
-<maintainer type="person">
- <email>rich@annexia.org</email>
- <name>Richard Jones</name>
- <description>Upstream - please CC on bugs that concerns upstream</description>
-</maintainer>
+ <!-- maintainer-needed -->
+ <upstream>
+ <maintainer>
+ <email>rjones@redhat.com</email>
+ <name>Richard Jones</name>
+ </maintainer>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/libguestfs/Manifest b/app-emulation/libguestfs/Manifest
index b72e0e457692..5e4dfc6354e9 100644
--- a/app-emulation/libguestfs/Manifest
+++ b/app-emulation/libguestfs/Manifest
@@ -1,3 +1 @@
-DIST libguestfs-1.36.13.tar.gz 22886310 BLAKE2B b0961cc6b941f1b68bba23af72e8b5478ed33da6f343e453f90decd7454cfc6a94cf67a81ad59c443df744727afa9bd4e98c77411efc4134e3422eaae59ffff5 SHA512 7c9799d5d563ffd8296f70a8402582aba85f3bf3c0dcaa18c44ecff5b7f771a3bc3f297aa85a4056351758298c79752d456a4b46e41924ff9acf196c992d51fb
-DIST libguestfs-1.36.15.tar.gz 22256729 BLAKE2B 7ed9c0010ffe6b904b055068e86544f12a884ff52f1f3322a3014574310de9a69077d1865e641ad8304149d1a2eb0d0fbc5e107c93a9790135dc543592da68a6 SHA512 a918bc886b60340d748093bdcca3a048ed26b31508ba256cd7903b76798816e54f836446d9286f7c452fa0d4fa82c0c1216606d01fce2ada9d7386fa463857c7
-DIST libguestfs-1.38.6.tar.gz 23284845 BLAKE2B 005aaef731e1711dc5f4552dbecff80f2c7a79fd8a13f6b79675b0a381dcd7b9ad16867ed0dda73a9f20ab0a7e03892b5ebffa5436b870613233fbd2024ca846 SHA512 20a254f1d6a4628a11f42c08947d1165430a020030da7e6ee7b22859b552245e8f3822a2d86c60055878ca00d8f17d346a0ad8274e8f0bb03ef4a9410b9630f1
+DIST libguestfs-1.48.6.tar.gz 19179600 BLAKE2B 22359ed4b55e29f985dbbbc4f0337eaec32f21a1413bd778656c3f0270891bec520a0b9590e104836eaf9367aeb9ac681b0bf85852fb7a2059da3f7062bc5111 SHA512 7d929db183fbb1d4d1c9159f28871ab4f1bd0be5b3d9fbc5137271666f50c067fd0906674cb1a52c1e070c11a18da4d2aa11bc64ddabda5cac54e72252c6abf2
diff --git a/app-emulation/libguestfs/files/1.28/0000_bug_499150.patch b/app-emulation/libguestfs/files/1.28/0000_bug_499150.patch
deleted file mode 100644
index 1e0f1a32185e..000000000000
--- a/app-emulation/libguestfs/files/1.28/0000_bug_499150.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/configure.ac 2014-01-24 19:04:05.633056872 +0100
-+++ b/configure.ac 2014-01-24 19:04:34.685691757 +0100
-@@ -24,6 +24,7 @@
-
- AC_INIT([libguestfs],libguestfs_major.libguestfs_minor.libguestfs_release)
- AC_CONFIG_AUX_DIR([build-aux])
-+AM_GNU_GETTEXT_VERSION(0.18.3)
-
- dnl Initialize automake. automake < 1.12 didn't have serial-tests and
- dnl gives an error if it sees this, but for automake >= 1.13
diff --git a/app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch b/app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch
deleted file mode 100644
index 9d209ff53584..000000000000
--- a/app-emulation/libguestfs/files/1.28/0001_add_gentoo_names_to_configure.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/configure.ac b/configure.ac
---- a/configure.ac
-+++ b/configure.ac
-@@ -482,6 +482,11 @@
- DISTRO=UBUNTU
- fi
- fi
-+
-+if test -f /etc/gentoo-release; then
-+ DISTRO=GENTOO
-+fi
-+
- if test -f /etc/arch-release; then
- DISTRO=ARCHLINUX
- fi
diff --git a/app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch b/app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch
deleted file mode 100644
index 38a591b811ed..000000000000
--- a/app-emulation/libguestfs/files/1.28/0002_add_gentooway_to_remove_la_files.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/configure.ac b/configure.ac
---- a/configure.ac
-+++ b/configure.ac
-@@ -1487,8 +1487,10 @@
-
- dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files
- dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html
--LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
--AC_SUBST([LIBTOOL])
-+dnl LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
-+dnl AC_SUBST([LIBTOOL])
-+LT_INIT
-+
-
- dnl Produce output files.
- AC_CONFIG_HEADERS([config.h])
diff --git a/app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch b/app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch
deleted file mode 100644
index 69b3ae6d0d2d..000000000000
--- a/app-emulation/libguestfs/files/1.28/0005_enable_gtk_docs_in_broken_autotools-utils-eclass.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/configure.ac b/configure.ac
---- a/configure.ac
-+++ b/configure.ac
-@@ -1491,11 +1491,12 @@
- ])
-
- # check for gtk-doc
--m4_ifdef([GTK_DOC_CHECK], [
-- GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
--],[
-- AM_CONDITIONAL([ENABLE_GTK_DOC], false)
--])
-+#m4_ifdef([GTK_DOC_CHECK], [
-+# GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
-+#],[
-+# AM_CONDITIONAL([ENABLE_GTK_DOC], false)
-+#])
-+GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
-
- dnl Library versioning.
- MAX_PROC_NR=`cat $srcdir/src/MAX_PROC_NR`
diff --git a/app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch b/app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch
deleted file mode 100644
index 34ab42d27903..000000000000
--- a/app-emulation/libguestfs/files/1.28/0103_disable_php_bindings_makefile.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -88,9 +88,6 @@
- if HAVE_HASKELL
- SUBDIRS += haskell
- endif
--if HAVE_PHP
--SUBDIRS += php
--endif
- if HAVE_ERLANG
- SUBDIRS += erlang erlang/examples
- endif
diff --git a/app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch b/app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch
deleted file mode 100644
index 24da76fbab5e..000000000000
--- a/app-emulation/libguestfs/files/1.36/0001-Update-libtool-initialization.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a5fd133e001bb62d13c47ebc392fbb696a513640 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr>
-Date: Wed, 30 Aug 2017 11:30:56 +0200
-Subject: [PATCH 1/3] Update libtool initialization
-
-Use the recommanded macro post libtool-2 release.
----
- m4/guestfs_misc.m4 | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/m4/guestfs_misc.m4 b/m4/guestfs_misc.m4
-index 5dce207d7..a2bb39c0d 100644
---- a/m4/guestfs_misc.m4
-+++ b/m4/guestfs_misc.m4
-@@ -17,10 +17,7 @@
-
- dnl Miscellaneous configuration that doesn't fit anywhere else.
-
--dnl Replace libtool with a wrapper that clobbers dependency_libs in *.la files
--dnl http://lists.fedoraproject.org/pipermail/devel/2010-November/146343.html
--LIBTOOL='bash $(top_srcdir)/libtool-kill-dependency_libs.sh $(top_builddir)/libtool'
--AC_SUBST([LIBTOOL])
-+LT_INIT
-
- dnl Only build boot-analysis program on x86-64 and aarch64. It
- dnl requires custom work to port to each architecture.
---
-2.14.1
-
diff --git a/app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch b/app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch
deleted file mode 100644
index bf265f718c73..000000000000
--- a/app-emulation/libguestfs/files/1.36/0002-Add-support-for-Gentoo-in-distribution-detection.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 9c423cd2d24b6de924afc6e0d715594bb056288d Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr>
-Date: Wed, 30 Aug 2017 11:27:50 +0200
-Subject: [PATCH 2/3] Add support for Gentoo in distribution detection
-
----
- m4/guestfs_appliance.m4 | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/m4/guestfs_appliance.m4 b/m4/guestfs_appliance.m4
-index 890b1999c..9b79e1a41 100644
---- a/m4/guestfs_appliance.m4
-+++ b/m4/guestfs_appliance.m4
-@@ -114,6 +114,8 @@ elif test -f /etc/frugalware-release; then
- DISTRO=FRUGALWARE
- elif test -f /etc/mageia-release; then
- DISTRO=MAGEIA
-+elif test -f /etc/gentoo-release; then
-+ DISTRO=GENTOO
- else
- dnl fallback option
- DISTRO=REDHAT
---
-2.14.1
-
diff --git a/app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch b/app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch
deleted file mode 100644
index 093a53f11632..000000000000
--- a/app-emulation/libguestfs/files/1.36/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From dc35ce2ba774a9284360bfd6532acb527a2f73d7 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Fri, 7 Dec 2018 11:21:25 +0100
-Subject: [PATCH 3/4] Fix install failure when not built with OCaml support
-
-Makefile rules in po/ require builder/index-parse.c to be generated to
-allow translation utilities to work on it, however builder/ is
-completely masked behind OCaml conditional build even if some tools do
-not require it and proper guards are in place already.
-
-Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1614502
----
- Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 7eefacbeb..c0a68151f 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -155,7 +155,6 @@ if HAVE_OCAML
- SUBDIRS += \
- mllib \
- customize \
-- builder builder/templates \
- get-kernel \
- resize \
- sparsify \
-@@ -169,6 +168,9 @@ SUBDIRS += dib
- endif
- endif
-
-+# Tools mixed with more OCAML based tools
-+SUBDIRS += builder builder/templates
-+
- # Perl tools.
- if HAVE_TOOLS
- SUBDIRS += tools
---
-2.19.2
-
diff --git a/app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch b/app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch
deleted file mode 100644
index 087708db396a..000000000000
--- a/app-emulation/libguestfs/files/1.36/0003-Workaround-autotools-utils-detection-of-gtk-doc.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 9bfa78095f6090c377fb40970653d1105a343cb7 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <g.dartiguelongue@lexfo.fr>
-Date: Wed, 30 Aug 2017 11:33:58 +0200
-Subject: [PATCH 3/3] Workaround autotools-utils detection of gtk-doc
-
----
- configure.ac | 3 +++
- m4/guestfs_gobject.m4 | 7 -------
- 2 files changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 268e6a182..65f4231bc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -121,6 +121,9 @@ m4_include([m4/guestfs_lua.m4])
- m4_include([m4/guestfs_golang.m4])
- m4_include([m4/guestfs_gobject.m4])
-
-+dnl check for gtk-doc
-+GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
-+
- dnl Bash completion.
- m4_include([m4/guestfs_bash_completion.m4])
-
-diff --git a/m4/guestfs_gobject.m4 b/m4/guestfs_gobject.m4
-index 4b4eab80d..4304f7b00 100644
---- a/m4/guestfs_gobject.m4
-+++ b/m4/guestfs_gobject.m4
-@@ -59,10 +59,3 @@ m4_ifdef([GOBJECT_INTROSPECTION_CHECK], [
- ],[
- AM_CONDITIONAL([HAVE_INTROSPECTION], [false])
- ])
--
--# check for gtk-doc
--m4_ifdef([GTK_DOC_CHECK], [
-- GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
--],[
-- AM_CONDITIONAL([ENABLE_GTK_DOC], false)
--])
---
-2.14.1
-
diff --git a/app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch b/app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch
deleted file mode 100644
index 9bce9b05b051..000000000000
--- a/app-emulation/libguestfs/files/1.36/0004-Loosen-build-time-requirement-on-bash-completion.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1f51b8ef921ad804022fc39b7465f9f731cbb6be Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Fri, 7 Dec 2018 12:14:15 +0100
-Subject: [PATCH 4/5] Loosen build time requirement on bash-completion
-
-Distributions might avoid pulling bash-completion during build as it is
-an optional feature and would only make sense at runtime anyway. Since
-this setting is well-known across a given distribution, allow them to
-provide the value and avoid the dependency.
----
- m4/guestfs_bash_completion.m4 | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/m4/guestfs_bash_completion.m4 b/m4/guestfs_bash_completion.m4
-index 1f171b79d..9e877f6ab 100644
---- a/m4/guestfs_bash_completion.m4
-+++ b/m4/guestfs_bash_completion.m4
-@@ -16,14 +16,13 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- dnl Bash completion.
--PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [
-- bash_completion=yes
-- AC_MSG_CHECKING([for bash-completions directory])
-- BASH_COMPLETIONS_DIR="`pkg-config --variable=completionsdir bash-completion`"
-- AC_MSG_RESULT([$BASH_COMPLETIONS_DIR])
-- AC_SUBST([BASH_COMPLETIONS_DIR])
--],[
-- bash_completion=no
-- AC_MSG_WARN([bash-completion not installed])
--])
--AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"])
-+AC_ARG_WITH([bashcompletiondir],
-+ AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
-+ [],
-+ [AS_IF([$($PKG_CONFIG --exists bash-completion)], [
-+ with_bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)
-+ ] , [
-+ with_bashcompletiondir=${datadir}/bash-completion/completions
-+ ])])
-+AC_SUBST([BASH_COMPLETIONS_DIR], [$with_bashcompletiondir])
-+AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test -n "$with_bashcompletiondir"])
---
-2.19.2
-
diff --git a/app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch b/app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch
deleted file mode 100644
index cb608beca08f..000000000000
--- a/app-emulation/libguestfs/files/1.38/0001-Fix-install-failure-when-not-built-with-OCaml-suppor.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 3b06e1cbb25615495ef108d6ee194bb718e46408 Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Fri, 7 Dec 2018 11:21:25 +0100
-Subject: [PATCH 1/2] Fix install failure when not built with OCaml support
-
-Makefile rules in po/ require builder/index-parse.c to be generated to
-allow translation utilities to work on it, however builder/ is
-completely masked behind OCaml conditional build even if some tools do
-not require it and proper guards are in place already.
-
-Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1614502
----
- Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index cc363341f..5d96093a1 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -164,7 +164,6 @@ SUBDIRS += common/mlvisit
- SUBDIRS += common/mlxml
- SUBDIRS += common/mltools
- SUBDIRS += customize
--SUBDIRS += builder builder/templates
- SUBDIRS += get-kernel
- SUBDIRS += resize
- SUBDIRS += sparsify
-@@ -178,6 +177,9 @@ SUBDIRS += dib
- endif
- endif
-
-+# Tools mixed with more OCAML based tools
-+SUBDIRS += builder builder/templates
-+
- # Perl tools.
- if HAVE_TOOLS
- SUBDIRS += tools
---
-2.19.2
-
diff --git a/app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch b/app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch
deleted file mode 100644
index e68a4b0bded4..000000000000
--- a/app-emulation/libguestfs/files/1.38/0002-Loosen-build-time-requirement-on-bash-completion.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From b8a31fcfe81a680ffed1fa0879ac20a3e0e8753a Mon Sep 17 00:00:00 2001
-From: Gilles Dartiguelongue <eva@gentoo.org>
-Date: Fri, 7 Dec 2018 12:14:15 +0100
-Subject: [PATCH 2/2] Loosen build time requirement on bash-completion
-
-Distributions might avoid pulling bash-completion during build as it is
-an optional feature and would only make sense at runtime anyway. Since
-this setting is well-known across a given distribution, allow them to
-provide the value and avoid the dependency.
----
- m4/guestfs-bash-completion.m4 | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/m4/guestfs-bash-completion.m4 b/m4/guestfs-bash-completion.m4
-index 1975b8c03..9a38ab2d6 100644
---- a/m4/guestfs-bash-completion.m4
-+++ b/m4/guestfs-bash-completion.m4
-@@ -16,14 +16,13 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- dnl Bash completion.
--PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [
-- bash_completion=yes
-- AC_MSG_CHECKING([for bash-completions directory])
-- BASH_COMPLETIONS_DIR="`pkg-config --variable=completionsdir bash-completion`"
-- AC_MSG_RESULT([$BASH_COMPLETIONS_DIR])
-- AC_SUBST([BASH_COMPLETIONS_DIR])
--],[
-- bash_completion=no
-- AC_MSG_WARN([bash-completion not installed])
--])
--AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test "x$bash_completion" = "xyes"])
-+AC_ARG_WITH([bashcompletiondir],
-+ AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
-+ [],
-+ [AS_IF([$($PKG_CONFIG --exists bash-completion)], [
-+ with_bashcompletiondir=$($PKG_CONFIG --variable=completionsdir bash-completion)
-+ ] , [
-+ with_bashcompletiondir=${datadir}/bash-completion/completions
-+ ])])
-+AC_SUBST([BASH_COMPLETIONS_DIR], [$with_bashcompletiondir])
-+AM_CONDITIONAL([HAVE_BASH_COMPLETION],[test -n "$with_bashcompletiondir"])
---
-2.19.2
-
diff --git a/app-emulation/libguestfs/libguestfs-1.36.13.ebuild b/app-emulation/libguestfs/libguestfs-1.36.13.ebuild
deleted file mode 100644
index 21857f1bb62d..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.36.13.ebuild
+++ /dev/null
@@ -1,174 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_6 )
-
-inherit eutils autotools linux-info perl-functions python-single-r1 versionator
-
-MY_PV_1="$(get_version_component_range 1-2)"
-MY_PV_2="$(get_version_component_range 2)"
-[[ $(( $(get_version_component_range 2) % 2 )) -eq 0 ]] && SD="stable" || SD="development"
-
-DESCRIPTION="Tools for accessing, inspect and modifying virtual machine (VM) disk images"
-HOMEPAGE="http://libguestfs.org/"
-SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0/"${MY_PV_1}""
-
-KEYWORDS="~amd64"
-IUSE="bash-completion debug doc erlang +fuse gtk inspect-icons introspection lua ocaml +perl python ruby selinux static-libs systemtap test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-# Failures - doc
-# Failures - bash-completion, see GBZ #486306
-
-# FIXME: selinux support is automagic
-COMMON_DEPEND="
- sys-libs/ncurses:0=
- sys-devel/gettext
- >=app-misc/hivex-1.3.1
- dev-libs/libpcre:3
- app-arch/cpio
- dev-lang/perl:=
- virtual/cdrtools
- >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps]
- sys-apps/fakeroot
- sys-apps/file
- app-emulation/libvirt
- dev-libs/libxml2:2
- >=sys-apps/fakechroot-2.8
- >=app-admin/augeas-1.0.0
- sys-fs/squashfs-tools:*
- dev-libs/libconfig
- sys-libs/readline:0=
- >=sys-libs/db-4.6:*
- app-arch/xz-utils
- app-arch/lzma
- app-crypt/gnupg
- app-arch/unzip[natspec]
- perl? (
- virtual/perl-ExtUtils-MakeMaker
- >=dev-perl/Sys-Virt-0.2.4
- virtual/perl-Getopt-Long
- virtual/perl-Data-Dumper
- dev-perl/libintl-perl
- >=app-misc/hivex-1.3.1[perl?]
- dev-perl/String-ShellQuote
- )
- python? ( ${PYTHON_DEPS} )
- fuse? ( sys-fs/fuse:= )
- introspection? (
- >=dev-libs/glib-2.26:2
- >=dev-libs/gobject-introspection-1.30.0:=
- dev-libs/gjs
- )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsemanage
- )
- systemtap? ( dev-util/systemtap )
- ocaml? (
- >=dev-lang/ocaml-4.02[ocamlopt]
- dev-ml/findlib[ocamlopt]
- dev-ml/ocaml-gettext
- >=dev-ml/ounit-2
- )
- erlang? ( dev-lang/erlang )
- inspect-icons? (
- media-libs/netpbm
- media-gfx/icoutils
- )
- virtual/acl
- sys-libs/libcap
- lua? ( dev-lang/lua:* )
- >=app-shells/bash-completion-2.0
- >=dev-libs/yajl-2.0.4
- gtk? (
- sys-apps/dbus
- x11-libs/gtk+:3
- )
- net-libs/libtirpc
- sys-libs/libxcrypt
- "
-DEPEND="${COMMON_DEPEND}
- dev-util/gperf
- doc? ( app-text/po4a )
- ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake )
- "
-RDEPEND="${COMMON_DEPEND}
- app-emulation/libguestfs-appliance
- "
-
-DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO )
-
-pkg_setup() {
- CONFIG_CHECK="~KVM ~VIRTIO"
- [ -n "${CONFIG_CHECK}" ] && check_extra_config;
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- eapply "${FILESDIR}"/${MY_PV_1}/0001-Update-libtool-initialization.patch
- eapply "${FILESDIR}"/${MY_PV_1}/0002-Add-support-for-Gentoo-in-distribution-detection.patch
- eapply_user
- eautoreconf
-}
-
-src_configure() {
- # Disable feature test for kvm for more reason
- # i.e: not loaded module in __build__ time,
- # build server not supported kvm, etc. ...
- #
- # In fact, this feature is virtio support and requires
- # configured kernel.
- export vmchannel_test=no
-
- econf \
- --with-libvirt \
- --with-default-backend=libvirt \
- --disable-appliance \
- --disable-daemon \
- --with-extra="-gentoo" \
- --with-readline \
- --disable-php \
- $(use_enable python) \
- --without-java \
- $(use_enable perl) \
- $(use_enable fuse) \
- $(use_enable ocaml) \
- $(use_enable ruby) \
- --disable-haskell \
- --disable-golang \
- $(use_enable introspection gobject) \
- $(use_enable introspection) \
- $(use_enable erlang) \
- $(use_enable systemtap probes) \
- $(use_enable lua) \
- --with-gtk=$(usex gtk 3 no) \
- $(usex doc '' PO4A=no)
-}
-
-src_install() {
- strip-linguas -i po
- emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}"""
-
- use perl && perl_delete_localpod
-}
-
-pkg_postinst() {
- if ! use gtk ; then
- einfo "virt-p2v NOT installed"
- fi
- if ! use ocaml ; then
- einfo "Ocaml based tools ( sysprep , ... ) NOT installed"
- fi
- if ! use perl ; then
- einfo "Perl based tools NOT build"
- fi
-}
diff --git a/app-emulation/libguestfs/libguestfs-1.36.15.ebuild b/app-emulation/libguestfs/libguestfs-1.36.15.ebuild
deleted file mode 100644
index e2ae26f43a8f..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.36.15.ebuild
+++ /dev/null
@@ -1,179 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_6 )
-
-inherit autotools bash-completion-r1 eapi7-ver eutils linux-info perl-functions python-single-r1 xdg-utils
-
-MY_PV_1="$(ver_cut 1-2)"
-MY_PV_2="$(ver_cut 2)"
-[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development"
-
-DESCRIPTION="Tools for accessing, inspect and modifying virtual machine (VM) disk images"
-HOMEPAGE="http://libguestfs.org/"
-SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0/"${MY_PV_1}""
-
-KEYWORDS="~amd64"
-IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua ocaml +perl python ruby selinux static-libs systemtap test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-# Failures - doc
-
-# FIXME: selinux support is automagic
-COMMON_DEPEND="
- sys-libs/ncurses:0=
- sys-devel/gettext
- >=app-misc/hivex-1.3.1
- dev-libs/libpcre:3
- app-arch/cpio
- dev-lang/perl:=
- virtual/cdrtools
- >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps]
- sys-apps/fakeroot
- sys-apps/file
- libvirt? ( app-emulation/libvirt )
- dev-libs/libxml2:2
- >=sys-apps/fakechroot-2.8
- >=app-admin/augeas-1.0.0
- sys-fs/squashfs-tools:*
- dev-libs/libconfig
- sys-libs/readline:0=
- >=sys-libs/db-4.6:*
- app-arch/xz-utils
- app-arch/lzma
- app-crypt/gnupg
- app-arch/unzip[natspec]
- perl? (
- virtual/perl-ExtUtils-MakeMaker
- >=dev-perl/Sys-Virt-0.2.4
- virtual/perl-Getopt-Long
- virtual/perl-Data-Dumper
- dev-perl/libintl-perl
- >=app-misc/hivex-1.3.1[perl?]
- dev-perl/String-ShellQuote
- )
- python? ( ${PYTHON_DEPS} )
- fuse? ( sys-fs/fuse:= )
- introspection? (
- >=dev-libs/glib-2.26:2
- >=dev-libs/gobject-introspection-1.30.0:=
- )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsemanage
- )
- systemtap? ( dev-util/systemtap )
- ocaml? (
- >=dev-lang/ocaml-4.02[ocamlopt]
- dev-ml/findlib[ocamlopt]
- dev-ml/ocaml-gettext
- >=dev-ml/ounit-2
- )
- erlang? ( dev-lang/erlang )
- inspect-icons? (
- media-libs/netpbm
- media-gfx/icoutils
- )
- virtual/acl
- sys-libs/libcap
- lua? ( dev-lang/lua:* )
- >=dev-libs/yajl-2.0.4
- gtk? (
- sys-apps/dbus
- x11-libs/gtk+:3
- )
- net-libs/libtirpc
- sys-libs/libxcrypt
- "
-DEPEND="${COMMON_DEPEND}
- dev-util/gperf
- doc? ( app-text/po4a )
- ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake )
- test? ( introspection? ( dev-libs/gjs ) )
- "
-RDEPEND="${COMMON_DEPEND}
- app-emulation/libguestfs-appliance
- "
-
-DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO )
-
-PATCHES=(
- "${FILESDIR}"/${MY_PV_1}/0001-Update-libtool-initialization.patch
- "${FILESDIR}"/${MY_PV_1}/0002-Add-support-for-Gentoo-in-distribution-detection.patch
- "${FILESDIR}"/${MY_PV_1}/0003-Fix-install-failure-when-not-built-with-OCaml-suppor.patch
- "${FILESDIR}"/${MY_PV_1}/0004-Loosen-build-time-requirement-on-bash-completion.patch
-)
-
-pkg_setup() {
- CONFIG_CHECK="~KVM ~VIRTIO"
- [ -n "${CONFIG_CHECK}" ] && check_extra_config;
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
- xdg_environment_reset
- eautoreconf
-}
-
-src_configure() {
- # Disable feature test for kvm for more reason
- # i.e: not loaded module in __build__ time,
- # build server not supported kvm, etc. ...
- #
- # In fact, this feature is virtio support and requires
- # configured kernel.
- export vmchannel_test=no
-
- econf \
- --with-bashcompletiondir="$(get_bashcompdir)" \
- $(use_with libvirt) \
- --disable-appliance \
- --disable-daemon \
- --with-extra="-gentoo" \
- --with-readline \
- --disable-php \
- $(use_enable python) \
- --without-java \
- $(use_enable perl) \
- $(use_enable fuse) \
- $(use_enable ocaml) \
- $(use_enable ruby) \
- --disable-haskell \
- --disable-golang \
- $(use_enable introspection gobject) \
- $(use_enable introspection) \
- $(use_enable erlang) \
- $(use_enable static-libs static) \
- $(use_enable systemtap probes) \
- $(use_enable lua) \
- --with-gtk=$(usex gtk 3 no) \
- $(usex doc '' PO4A=no)
-}
-
-src_install() {
- strip-linguas -i po
- emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}"""
- find "${ED}" -name '*.la' -delete || die
- use perl && perl_delete_localpod
-}
-
-pkg_postinst() {
- if ! use gtk ; then
- einfo "virt-p2v NOT installed"
- fi
- if ! use ocaml ; then
- einfo "Ocaml based tools ( sysprep , ... ) NOT installed"
- fi
- if ! use perl ; then
- einfo "Perl based tools NOT build"
- fi
-}
diff --git a/app-emulation/libguestfs/libguestfs-1.38.6.ebuild b/app-emulation/libguestfs/libguestfs-1.38.6.ebuild
deleted file mode 100644
index 13777175b45e..000000000000
--- a/app-emulation/libguestfs/libguestfs-1.38.6.ebuild
+++ /dev/null
@@ -1,175 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_6 )
-
-inherit autotools bash-completion-r1 eapi7-ver eutils linux-info perl-functions python-single-r1 xdg-utils
-
-MY_PV_1="$(ver_cut 1-2)"
-MY_PV_2="$(ver_cut 2)"
-[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development"
-
-DESCRIPTION="Tools for accessing, inspect and modifying virtual machine (VM) disk images"
-HOMEPAGE="http://libguestfs.org/"
-SRC_URI="http://libguestfs.org/download/${MY_PV_1}-${SD}/${P}.tar.gz"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0/"${MY_PV_1}""
-
-KEYWORDS="~amd64"
-IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua ocaml +perl python ruby selinux static-libs systemtap test"
-RESTRICT="!test? ( test )"
-
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-
-# Failures - doc
-
-# FIXME: selinux support is automagic
-COMMON_DEPEND="
- sys-libs/ncurses:0=
- sys-devel/gettext
- >=app-misc/hivex-1.3.1
- dev-libs/libpcre:3
- app-arch/cpio
- dev-lang/perl:=
- virtual/cdrtools
- >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps]
- sys-apps/fakeroot
- sys-apps/file
- libvirt? ( app-emulation/libvirt )
- dev-libs/libxml2:2
- >=sys-apps/fakechroot-2.8
- >=app-admin/augeas-1.8.0
- sys-fs/squashfs-tools:*
- dev-libs/libconfig
- sys-libs/readline:0=
- >=sys-libs/db-4.6:*
- app-arch/xz-utils
- app-arch/lzma
- app-crypt/gnupg
- app-arch/unzip[natspec]
- perl? (
- virtual/perl-ExtUtils-MakeMaker
- >=dev-perl/Sys-Virt-0.2.4
- virtual/perl-Getopt-Long
- virtual/perl-Data-Dumper
- dev-perl/libintl-perl
- >=app-misc/hivex-1.3.1[perl?]
- dev-perl/String-ShellQuote
- )
- python? ( ${PYTHON_DEPS} )
- fuse? ( sys-fs/fuse:= )
- introspection? (
- >=dev-libs/glib-2.26:2
- >=dev-libs/gobject-introspection-1.30.0:=
- )
- selinux? (
- sys-libs/libselinux
- sys-libs/libsemanage
- )
- systemtap? ( dev-util/systemtap )
- ocaml? ( >=dev-lang/ocaml-4.03[ocamlopt] )
- erlang? ( dev-lang/erlang )
- inspect-icons? (
- media-libs/netpbm
- media-gfx/icoutils
- )
- virtual/acl
- sys-libs/libcap
- lua? ( dev-lang/lua:* )
- >=dev-libs/yajl-2.0.4
- gtk? (
- sys-apps/dbus
- x11-libs/gtk+:3
- )
- net-libs/libtirpc
- sys-libs/libxcrypt
- "
-DEPEND="${COMMON_DEPEND}
- dev-util/gperf
- >=dev-lang/ocaml-4.03[ocamlopt]
- dev-ml/findlib[ocamlopt]
- dev-ml/ocaml-gettext
- >=dev-ml/ounit-2
- doc? ( app-text/po4a )
- ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake )
- test? ( introspection? ( dev-libs/gjs ) )
- "
-RDEPEND="${COMMON_DEPEND}
- app-emulation/libguestfs-appliance
- "
-
-DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO )
-
-PATCHES=(
- "${FILESDIR}"/${MY_PV_1}/
-)
-
-pkg_setup() {
- CONFIG_CHECK="~KVM ~VIRTIO"
- [ -n "${CONFIG_CHECK}" ] && check_extra_config;
-
- use python && python-single-r1_pkg_setup
-}
-
-src_prepare() {
- default
- xdg_environment_reset
- eautoreconf
-}
-
-src_configure() {
- # Disable feature test for kvm for more reason
- # i.e: not loaded module in __build__ time,
- # build server not supported kvm, etc. ...
- #
- # In fact, this feature is virtio support and requires
- # configured kernel.
- export vmchannel_test=no
-
- econf \
- --with-bashcompletiondir="$(get_bashcompdir)" \
- $(use_with libvirt) \
- --disable-appliance \
- --disable-daemon \
- --with-extra="-gentoo" \
- --with-readline \
- --disable-php \
- $(use_enable python) \
- --without-java \
- $(use_enable perl) \
- $(use_enable fuse) \
- $(use_enable ocaml) \
- $(use_enable ruby) \
- --disable-haskell \
- --disable-golang \
- $(use_enable introspection gobject) \
- $(use_enable introspection) \
- $(use_enable erlang) \
- $(use_enable static-libs static) \
- $(use_enable systemtap probes) \
- $(use_enable lua) \
- --with-gtk=$(usex gtk 3 no) \
- $(usex doc '' PO4A=no)
-}
-
-src_install() {
- strip-linguas -i po
- emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}"""
- find "${ED}" -name '*.la' -delete || die
- use perl && perl_delete_localpod
-}
-
-pkg_postinst() {
- if ! use gtk ; then
- einfo "virt-p2v NOT installed"
- fi
- if ! use ocaml ; then
- einfo "Ocaml based tools and bindings (sysprep, ...) NOT installed"
- fi
- if ! use perl ; then
- einfo "Perl based tools NOT build"
- fi
-}
diff --git a/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild
new file mode 100644
index 000000000000..5ebf7d85f162
--- /dev/null
+++ b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild
@@ -0,0 +1,255 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Bump with app-emulation/guestfs-tools and app-emulation/libguestfs-appliance (if any new release there)
+
+LUA_COMPAT=( lua5-1 )
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit autotools flag-o-matic linux-info lua-single perl-functions python-single-r1 strip-linguas toolchain-funcs
+
+MY_PV_1="$(ver_cut 1-2)"
+MY_PV_2="$(ver_cut 2)"
+[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development"
+
+DESCRIPTION="Tools for accessing, inspecting, and modifying virtual machine (VM) disk images"
+HOMEPAGE="https://libguestfs.org/"
+SRC_URI="https://download.libguestfs.org/${MY_PV_1}-${SD}/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0/${MY_PV_1}"
+if [[ ${SD} == "stable" ]] ; then
+ KEYWORDS="amd64 ~ppc64 ~x86"
+fi
+IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua +ocaml +perl python ruby selinux static-libs systemtap test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+ python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+# Failures - doc
+COMMON_DEPEND="
+ >=app-admin/augeas-1.8.0
+ app-alternatives/cpio
+ app-arch/lzma
+ app-arch/rpm
+ app-arch/unzip[natspec]
+ app-arch/xz-utils
+ app-forensics/yara
+ app-cdr/cdrtools
+ app-crypt/gnupg
+ >=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps]
+ >=app-misc/hivex-1.3.1
+ dev-lang/perl:=
+ dev-libs/libconfig:=
+ dev-libs/libpcre2
+ dev-libs/libxml2:2=
+ dev-libs/jansson:=
+ >=dev-libs/yajl-2.0.4
+ net-libs/libtirpc:=
+ sys-libs/ncurses:0=
+ >=sys-apps/fakechroot-2.8
+ sys-apps/fakeroot
+ sys-apps/file
+ sys-devel/gettext
+ sys-fs/squashfs-tools:*
+ sys-libs/libcap
+ sys-libs/readline:=
+ virtual/acl
+ virtual/libcrypt:=
+ erlang? ( dev-lang/erlang )
+ perl? (
+ virtual/perl-ExtUtils-MakeMaker
+ >=dev-perl/Sys-Virt-0.2.4
+ virtual/perl-Getopt-Long
+ virtual/perl-Data-Dumper
+ dev-perl/libintl-perl
+ >=app-misc/hivex-1.3.1[perl?]
+ dev-perl/String-ShellQuote
+ )
+ python? ( ${PYTHON_DEPS} )
+ fuse? ( sys-fs/fuse:0 )
+ gtk? (
+ sys-apps/dbus
+ x11-libs/gtk+:3
+ )
+ introspection? (
+ >=dev-libs/glib-2.26:2
+ >=dev-libs/gobject-introspection-1.30.0:=
+ )
+ inspect-icons? (
+ media-libs/netpbm
+ media-gfx/icoutils
+ )
+ libvirt? ( app-emulation/libvirt )
+ lua? ( ${LUA_DEPS} )
+ ocaml? ( >=dev-lang/ocaml-4.03:=[ocamlopt] )
+ selinux? (
+ sys-libs/libselinux:=
+ sys-libs/libsemanage
+ )
+ systemtap? ( dev-debug/systemtap )
+"
+# Some OCaml is always required
+# bug #729674
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-lang/ocaml-4.03:=[ocamlopt]
+ dev-util/gperf
+ dev-ml/findlib[ocamlopt]
+ doc? ( app-text/po4a )
+ ocaml? (
+ dev-ml/ounit2[ocamlopt]
+ || (
+ <dev-ml/ocaml-gettext-0.4.2
+ dev-ml/ocaml-gettext-stub[ocamlopt]
+ )
+ )
+ ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake )
+ test? ( introspection? ( dev-libs/gjs ) )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ app-emulation/libguestfs-appliance
+ acct-group/kvm
+"
+# Upstream build scripts compile and install Lua bindings for the ABI version
+# obtained by running 'lua' on the build host
+BDEPEND="
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ lua? ( ${LUA_DEPS} )
+"
+
+DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO )
+
+PATCHES=(
+ #"${FILESDIR}"/${MY_PV_1}/
+ #"${FILESDIR}"/1.44/
+)
+
+pkg_setup() {
+ CONFIG_CHECK="~KVM ~VIRTIO"
+ [[ -n "${CONFIG_CHECK}" ]] && check_extra_config
+
+ use lua && lua-single_pkg_setup
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ # bug #794877
+ tc-export AR
+
+ # Needs both bison+flex (bug #915339, see configure too)
+ unset LEX YACC
+
+ # Skip Bash test
+ # (See 13-test-suite.log in linked bug)
+ # bug #794874
+ export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=1
+
+ # Need to investigate (fails w/ 1.48.4)
+ export SKIP_TEST_QEMU_DRIVE_SH=1
+ export SKIP_TEST_BIG_HEAP=1
+ export SKIP_TEST_NOEXEC_STACK_PL=1
+
+ # Need to be in KVM group
+ export SKIP_TEST_MOUNTABLE_INSPECT_SH=1
+
+ # Missing test data (Fedora image)
+ export SKIP_TEST_JOURNAL_PL=1
+
+ # Disable feature test for kvm for more reason
+ # i.e: not loaded module in __build__ time,
+ # build server not supported kvm, etc. ...
+ #
+ # In fact, this feature is virtio support and requires
+ # configured kernel.
+ export vmchannel_test=no
+
+ # Give a nudge to help find libxcrypt[-system]
+ # We have a := dep on virtual/libcrypt to ensure this doesn't become stale.
+ # bug #703118, bug #789354
+ if ! has_version 'sys-libs/libxcrypt[system]' ; then
+ append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/xcrypt"
+ append-ldflags "-Wl,-R${ESYSROOT}/usr/$(get_libdir)/xcrypt"
+ fi
+
+ # Avoid automagic SELinux dependency
+ export ac_cv_header_selinux_selinux_h=$(usex selinux)
+
+ # Test suite at least has a bunch of bashisms
+ SHELL="${BROOT}"/bin/bash CONFIG_SHELL="${BROOT}"/bin/bash econf \
+ --disable-appliance \
+ --disable-daemon \
+ --disable-haskell \
+ --disable-golang \
+ --disable-rust \
+ --disable-php \
+ --without-java \
+ --with-extra="-gentoo" \
+ --with-readline \
+ $(usex doc '' PO4A=no) \
+ $(use_enable ocaml) \
+ $(use_enable erlang) \
+ $(use_enable fuse) \
+ $(use_enable introspection gobject) \
+ $(use_enable introspection) \
+ $(use_with libvirt) \
+ $(use_enable lua) \
+ $(use_enable python) \
+ $(use_enable perl) \
+ $(use_enable ruby) \
+ $(use_enable static-libs static) \
+ $(use_enable systemtap probes)
+}
+
+src_test() {
+ local -x LIBGUESTFS_DEBUG=1
+ local -x LIBGUESTFS_TRACE=1
+ local -x LIBVIRT_DEBUG=1
+
+ # Try this?
+ #emake quickcheck
+
+ default
+}
+
+src_install() {
+ strip-linguas -i po
+
+ emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}"""
+
+ find "${ED}" -name '*.la' -delete || die
+
+ if use perl ; then
+ perl_delete_localpod
+
+ # Workaround Build.PL for now
+ doman "${ED}"/usr/man/man3/Sys::Guestfs.3pm
+ rm -rf "${ED}"/usr/man || die
+ fi
+
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ einfo "Please ensure you are in the 'kvm' group for decent performance!"
+
+ if ! use gtk ; then
+ einfo "virt-p2v NOT installed"
+ fi
+
+ einfo "Note that common tools like virt-resize are now part of app-emulation/guestfs-tools"
+}
diff --git a/app-emulation/libguestfs/metadata.xml b/app-emulation/libguestfs/metadata.xml
index 5a7068237965..67f481aca2fb 100644
--- a/app-emulation/libguestfs/metadata.xml
+++ b/app-emulation/libguestfs/metadata.xml
@@ -1,20 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>maksbotan@gentoo.org</email>
- <name>Maxim Koltsov</name>
-</maintainer>
-<maintainer type="person">
- <email>rich@annexia.org</email>
- <name>Richard Jones</name>
- <description>Upstream - please CC on bugs that concerns upstream</description>
-</maintainer>
-<use>
- <flag name="erlang">Build Erlang bindings</flag>
- <flag name="fuse">Enable image mount support via fuse</flag>
- <flag name="inspect-icons">Use <pkg>media-gfx/icoutils</pkg> for acces icon file in image and inspect it</flag>
- <flag name="libvirt">Use <pkg>app-emulation/libvirt</pkg> to manipulate VMs</flag>
- <flag name="systemtap">Use <pkg>dev-util/systemtap</pkg> to inspect VM via "probes" way</flag>
-</use>
+ <!-- maintainer-needed -->
+ <use>
+ <flag name="erlang">Build Erlang bindings</flag>
+ <flag name="fuse">Enable image mount support via <pkg>sys-fs/fuse</pkg></flag>
+ <flag name="inspect-icons">Use <pkg>media-gfx/icoutils</pkg> for accessing/inspecting icon file within images</flag>
+ <flag name="libvirt">Use <pkg>app-emulation/libvirt</pkg> to manipulate VMs</flag>
+ <flag name="systemtap">Use <pkg>dev-debug/systemtap</pkg> to inspect VM via "probes"</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">libguestfs/libguestfs</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/libpod/Manifest b/app-emulation/libpod/Manifest
deleted file mode 100644
index 6afb95c4974d..000000000000
--- a/app-emulation/libpod/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST podman-2.1.0.tar.gz 9444707 BLAKE2B 62dacd316a8d6ae8aab0523338d818c69cf1228120e828a89301c9fdbb98082b85328c03c61f9f2a36c7a50105ce5fd025ad2b0e9ba2705c86b0d7e263fc92a6 SHA512 eb9b0cb184138af022e6d8e145fc6c4188c75c0695e0c6e62d54112a6b143424dd0caf9686f83637d08ff1fdbc24afca564c89f8cb4ab68b8f8d07345856398e
diff --git a/app-emulation/libpod/files/podman.initd b/app-emulation/libpod/files/podman.initd
deleted file mode 100644
index b590be16a1ba..000000000000
--- a/app-emulation/libpod/files/podman.initd
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2015-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-description="Podman Remote API Service"
-LOG_PATH="/var/log/${RC_SVCNAME}"
-RUN_PATH="/run/${RC_SVCNAME}"
-pidfile="${RUN_PATH}/${RC_SVCNAME}.pid"
-command="/usr/bin/podman"
-command_args="--log-level debug varlink -t 0 unix:/run/podman/io.podman"
-command_background="true"
-start_stop_daemon_args="--stdout ${LOG_PATH}/${RC_SVCNAME}.log --stderr ${LOG_PATH}/${RC_SVCNAME}.log"
-
-start() {
- checkpath -d "${RUN_PATH}" "${LOG_PATH}"
- default_start
-}
diff --git a/app-emulation/libpod/files/podman.logrotated b/app-emulation/libpod/files/podman.logrotated
deleted file mode 100644
index b9d723451b0a..000000000000
--- a/app-emulation/libpod/files/podman.logrotated
+++ /dev/null
@@ -1,7 +0,0 @@
-/var/log/podman/podman.log {
- missingok
- size 5M
- rotate 3
- compress
- copytruncate
-}
diff --git a/app-emulation/libpod/libpod-2.1.0.ebuild b/app-emulation/libpod/libpod-2.1.0.ebuild
deleted file mode 100644
index 8335388f9f6f..000000000000
--- a/app-emulation/libpod/libpod-2.1.0.ebuild
+++ /dev/null
@@ -1,154 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGIT_COMMIT="d8868746fd3f45b9bfd79e37bf2aa0c7103245fd"
-
-inherit bash-completion-r1 flag-o-matic go-module
-
-DESCRIPTION="Library and podman tool for running OCI-based containers in Pods"
-HOMEPAGE="https://github.com/containers/podman/"
-MY_PN=podman
-MY_P=${MY_PN}-${PV}
-SRC_URI="https://github.com/containers/podman/archive/v${PV}.tar.gz -> ${MY_P}.tar.gz"
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT MPL-2.0"
-SLOT="0"
-
-KEYWORDS="~amd64 ~arm64"
-IUSE="apparmor btrfs +fuse +rootless selinux"
-RESTRICT="test"
-
-COMMON_DEPEND="
- app-crypt/gpgme:=
- >=app-emulation/conmon-2.0.0
- || ( >=app-emulation/runc-1.0.0_rc6 app-emulation/crun )
- dev-libs/libassuan:=
- dev-libs/libgpg-error:=
- >=net-misc/cni-plugins-0.8.6
- sys-fs/lvm2
- sys-libs/libseccomp:=
-
- apparmor? ( sys-libs/libapparmor )
- btrfs? ( sys-fs/btrfs-progs )
- rootless? ( app-emulation/slirp4netns )
- selinux? ( sys-libs/libselinux:= )
-"
-DEPEND="
- ${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}
- fuse? ( sys-fs/fuse-overlayfs )"
-
-S=${WORKDIR}/${MY_P}
-
-src_prepare() {
- default
-
- # Disable installation of python modules here, since those are
- # installed by separate ebuilds.
- local makefile_sed_args=(
- -e '/^GIT_.*/d'
- -e 's/$(GO) build/$(GO) build -v -work -x/'
- -e 's/^\(install:.*\) install\.python$/\1/'
- -e 's|^pkg/varlink/iopodman.go: .gopathok pkg/varlink/io.podman.varlink$|pkg/varlink/iopodman.go: pkg/varlink/io.podman.varlink|'
- )
-
- has_version -b '>=dev-lang/go-1.13.9' || makefile_sed_args+=(-e 's:GO111MODULE=off:GO111MODULE=on:')
-
- sed "${makefile_sed_args[@]}" -i Makefile || die
-
- sed -e 's|OUTPUT="${CIRRUS_TAG:.*|OUTPUT='v${PV}'|' \
- -i hack/get_release_info.sh || die
-}
-
-src_compile() {
- # Filter unsupported linker flags
- filter-flags '-Wl,*'
-
- [[ -f hack/apparmor_tag.sh ]] || die
- if use apparmor; then
- echo -e "#!/bin/sh\necho apparmor" > hack/apparmor_tag.sh || die
- else
- echo -e "#!/bin/sh\ntrue" > hack/apparmor_tag.sh || die
- fi
-
- [[ -f hack/btrfs_installed_tag.sh ]] || die
- if use btrfs; then
- echo -e "#!/bin/sh\ntrue" > hack/btrfs_installed_tag.sh || die
- else
- echo -e "#!/bin/sh\necho exclude_graphdriver_btrfs" > \
- hack/btrfs_installed_tag.sh || die
- fi
-
- [[ -f hack/selinux_tag.sh ]] || die
- if use selinux; then
- echo -e "#!/bin/sh\necho selinux" > hack/selinux_tag.sh || die
- else
- echo -e "#!/bin/sh\ntrue" > hack/selinux_tag.sh || die
- fi
-
- # Avoid this error when generating pkg/varlink/iopodman.go:
- # cannot find package "github.com/varlink/go/varlink/idl"
- mkdir -p _output || die
- ln -snf ../vendor _output/src || die
- GO111MODULE=off GOPATH=${PWD}/_output go generate ./pkg/varlink/... || die
- rm _output/src || die
-
- export -n GOCACHE GOPATH XDG_CACHE_HOME
- GOBIN="${S}/bin" \
- emake all \
- GIT_BRANCH=master \
- GIT_BRANCH_CLEAN=master \
- COMMIT_NO="${EGIT_COMMIT}" \
- GIT_COMMIT="${EGIT_COMMIT}"
-}
-
-src_install() {
- emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" install
-
- insinto /etc/containers
- newins test/registries.conf registries.conf.example
- newins test/policy.json policy.json.example
-
- insinto /usr/share/containers
- doins vendor/github.com/containers/common/pkg/seccomp/seccomp.json
-
- newinitd "${FILESDIR}"/podman.initd podman
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/podman.logrotated" podman
-
- dobashcomp completions/bash/*
-
- keepdir /var/lib/containers
-}
-
-pkg_preinst() {
- LIBPOD_ROOTLESS_UPGRADE=false
- if use rootless; then
- has_version 'app-emulation/libpod[rootless]' || LIBPOD_ROOTLESS_UPGRADE=true
- fi
-}
-
-pkg_postinst() {
- local want_newline=false
- if [[ ! ( -e ${EROOT%/*}/etc/containers/policy.json && -e ${EROOT%/*}/etc/containers/registries.conf ) ]]; then
- elog "You need to create the following config files:"
- elog "/etc/containers/registries.conf"
- elog "/etc/containers/policy.json"
- elog "To copy over default examples, use:"
- elog "cp /etc/containers/registries.conf{.example,}"
- elog "cp /etc/containers/policy.json{.example,}"
- want_newline=true
- fi
- if [[ ${LIBPOD_ROOTLESS_UPGRADE} == true ]] ; then
- ${want_newline} && elog ""
- elog "For rootless operation, you need to configure subuid/subgid"
- elog "for user running podman. In case subuid/subgid has only been"
- elog "configured for root, run:"
- elog "usermod --add-subuids 1065536-1131071 <user>"
- elog "usermod --add-subgids 1065536-1131071 <user>"
- want_newline=true
- fi
-}
diff --git a/app-emulation/libpod/metadata.xml b/app-emulation/libpod/metadata.xml
deleted file mode 100644
index 8b673ef7a51a..000000000000
--- a/app-emulation/libpod/metadata.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <longdescription lang="en">
- libpod provides a library for applications looking to use the
- Container Pod concept popularized by Kubernetes. libpod also
- contains a tool called podman for managing Pods, Containers,
- and Container Images.
- </longdescription>
- <use>
- <flag name="apparmor">
- Enable AppArmor support.
- </flag>
- <flag name="btrfs">
- Enables dependencies for the "btrfs" graph driver, including
- necessary kernel flags.
- </flag>
- <flag name="fuse">
- Enables fuse dependencies (fuse-overlayfs is especially useful
- for rootless mode).
- </flag>
- <flag name="rootless">
- Enables dependencies for running in rootless mode.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">containers/libpod</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/libspectrum/Manifest b/app-emulation/libspectrum/Manifest
index 975b3240ae85..9ac9f648158c 100644
--- a/app-emulation/libspectrum/Manifest
+++ b/app-emulation/libspectrum/Manifest
@@ -1 +1 @@
-DIST libspectrum-1.4.4.tar.gz 568684 BLAKE2B b6ab4fc4173e7de9a7c3b14fda03420a56f02c5c590770158443bc37bee99a55dd3bdf6864f8ca33adb5ed59f4abd5c5b97736456ba2e6e6aaa2b49e07097cc4 SHA512 83bb9242010d49898531bb62e0d4d55439b0b6a548b57a7932f074429aca70cf252dfb195e9751384510b08c98bd6bc8eefd8cb3f82b0c8d07fa245ba66e9fe2
+DIST libspectrum-1.5.0.tar.gz 602354 BLAKE2B fc62437ececfe2c86b475efa512bf7aa7c5af182e16a00f75f77f78656fca01d46a71ac90b38008ff46e5fd0710b1c671b283d65544b5556d98e8c5b66525c35 SHA512 55f4cf623bc6c469a0fd80751ada694259d834c19d98400ba244aabf2ac21fed7cdd6de069d9ed7326e099bd3bd62c42cfb8a669b64ae002f90a52563fa2dcd1
diff --git a/app-emulation/libspectrum/libspectrum-1.4.4.ebuild b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
index f830494fd23b..02418ce56fb4 100644
--- a/app-emulation/libspectrum/libspectrum-1.4.4.ebuild
+++ b/app-emulation/libspectrum/libspectrum-1.5.0.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
inherit autotools
@@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/fuse-emulator/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86"
IUSE="audiofile bzip2 gcrypt zlib"
RDEPEND="dev-libs/glib:2
@@ -19,8 +19,8 @@ RDEPEND="dev-libs/glib:2
bzip2? ( >=app-arch/bzip2-1.0 )
gcrypt? ( dev-libs/libgcrypt:0 )
zlib? ( sys-libs/zlib )"
-DEPEND="${RDEPEND}
- dev-lang/perl
+DEPEND="${RDEPEND}"
+BDEPEND="dev-lang/perl
virtual/pkgconfig"
PATCHES=(
@@ -34,7 +34,6 @@ src_prepare() {
src_configure() {
local myconf=(
- --disable-static
$(use_with audiofile libaudiofile)
$(use_with bzip2)
$(use_with gcrypt libgcrypt)
@@ -52,4 +51,5 @@ src_test() {
src_install() {
default
dodoc doc/*.txt *.txt
+ find "${ED}" -type f -name "*.la" -delete || die
}
diff --git a/app-emulation/libspectrum/metadata.xml b/app-emulation/libspectrum/metadata.xml
index 68b09e35fe36..b5a8a89f49af 100644
--- a/app-emulation/libspectrum/metadata.xml
+++ b/app-emulation/libspectrum/metadata.xml
@@ -1,13 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>0xe2.0x9a.0x9b@gmail.com</email>
- <name>Jan Ziak</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Gentoo Proxy Maintainers Project</name>
+
+ <email>marecki@gentoo.org</email>
+ <name>Marek Szuba</name>
</maintainer>
<longdescription>
libspectrum is a library designed to make the input and output of some ZX
diff --git a/app-emulation/libvirt-glib/Manifest b/app-emulation/libvirt-glib/Manifest
index 7978802829e3..7d53986ff7c6 100644
--- a/app-emulation/libvirt-glib/Manifest
+++ b/app-emulation/libvirt-glib/Manifest
@@ -1,3 +1,2 @@
-DIST libvirt-glib-1.0.0.tar.gz 860450 BLAKE2B 417a3bd0df41787fbec456f301af744a04649db02192ef9c80bf42214a112a050a9f054c81549a114e7a1236c86e0066e8002f0c7f09317abb672fe5f6a76789 SHA512 72f53a90d3e40aa93d4afe5b29f631afe859532fbdb4e27086da3bd4cdaf0fb25fc808a82a1994b7c2648a1e864876ce95de28acb3b4876dac47b0f4d1c97ba5
-DIST libvirt-glib-2.0.0.tar.gz 868946 BLAKE2B 1ff4695b25766d6caa603826dcc63e64aa3ce022e6623eb31017fb67a490baeb546a9bc67e16fc16c7b86040db971748b1ef4303a21b5dec098cf732f77c92ec SHA512 6ead4c37c314eb5670c5aa282ce039a0182a71a20b349a5d9c78367381eb674fad0f2ca0f2e20e1e89ff7df2ac9f1640f20fdfa63d599d8a2538fb4c0fba4c3f
-DIST libvirt-glib-3.0.0.tar.gz 899180 BLAKE2B ef10b3d9bad48e49dd1898733aacb2f51f1826330eda9c63a7f8df5f11c96812f8cc7fe6a867961efa85a433f45c934d75cf605eb523ec723459da4646335b1a SHA512 b9e7d782c25b5c3a9b2829f1be8162352438ab3505510a1ca7dd64d741eaab158dc9206fdd4b0e3e27b0c049e4bcfc47db0c9a7fa1a84888864e23d3c35c079e
+DIST libvirt-glib-4.0.0.tar.xz 161836 BLAKE2B e196d1f02f6f202b1883500241bbfda963b34ee12bd945b3fa897f84f55a049f98e0429132ccfad7168e5ba2b41245e9e7e3817a7f057e0dc40b674ca6c9b661 SHA512 e1b99e80aa671fa5a4d7f7f7a4ea70ce7c5fdaf97574407f79aa11a75dd177e1e3f92027728a83ded62e305852bbda76eb90326aaa1f5f19b77272b008351810
+DIST libvirt-glib-5.0.0.tar.xz 169416 BLAKE2B e80ac0cd8d39432d554e566f4e1e045ada14e66917735c1c8a6306a65272216d095f21170e1b5294e09f41aaf2a3259ad395b134087a1bc13b176afd675dcc26 SHA512 bb09474c0d6d4bc00844e7a1ede882f0834d0810804b70b8f8607f2e764f72cc9da14883794e58dd53640433ffaecc13dd3c1c147b82e86fa2fdca6e5903933c
diff --git a/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch
new file mode 100644
index 000000000000..654436a65d99
--- /dev/null
+++ b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-Make-xmlError-structs-constant.patch
@@ -0,0 +1,64 @@
+From 56acbe8a0765a02418f80fb3599b3cf7160ef446 Mon Sep 17 00:00:00 2001
+Message-ID: <56acbe8a0765a02418f80fb3599b3cf7160ef446.1701156704.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sat, 25 Nov 2023 07:13:33 +0100
+Subject: [glib PATCH 1/2] Make xmlError structs constant
+
+In libxml2 commits v2.12.0~14 and v2.12.0~77 the API changed so
+that:
+
+1) xmlGetLastError() returns pointer to a constant xmlError
+ struct, and
+
+2) xmlSetStructuredErrorFunc() changed the signature of callback
+ (gvir_xml_structured_error_nop()), it too is passed pointer to
+ a constant xmlError struct.
+
+But of course, older libxml2 expects different callback
+signature. Therefore, we need to typecast it anyway.
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ libvirt-gconfig/libvirt-gconfig-helpers.c | 2 +-
+ libvirt-gconfig/libvirt-gconfig-object.c | 5 +++--
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/libvirt-gconfig/libvirt-gconfig-helpers.c b/libvirt-gconfig/libvirt-gconfig-helpers.c
+index e8f9664..37075e3 100644
+--- a/libvirt-gconfig/libvirt-gconfig-helpers.c
++++ b/libvirt-gconfig/libvirt-gconfig-helpers.c
+@@ -41,7 +41,7 @@ static GError *gvir_config_error_new_literal(GQuark domain,
+ gint code,
+ const gchar *message)
+ {
+- xmlErrorPtr xerr = xmlGetLastError();
++ const xmlError *xerr = xmlGetLastError();
+
+ if (!xerr)
+ return NULL;
+diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
+index eb8763e..1fcc667 100644
+--- a/libvirt-gconfig/libvirt-gconfig-object.c
++++ b/libvirt-gconfig/libvirt-gconfig-object.c
+@@ -59,7 +59,7 @@ static void gvir_xml_generic_error_nop(void *userData G_GNUC_UNUSED,
+ }
+
+ static void gvir_xml_structured_error_nop(void *userData G_GNUC_UNUSED,
+- xmlErrorPtr error G_GNUC_UNUSED)
++ const xmlError *error G_GNUC_UNUSED)
+ {
+ }
+
+@@ -197,7 +197,8 @@ void gvir_config_object_validate(GVirConfigObject *config,
+ priv = config->priv;
+
+ xmlSetGenericErrorFunc(NULL, gvir_xml_generic_error_nop);
+- xmlSetStructuredErrorFunc(NULL, gvir_xml_structured_error_nop);
++ /* Drop this typecast when >=libxml2-2.12.0 is required */
++ xmlSetStructuredErrorFunc(NULL, (xmlStructuredErrorFunc) gvir_xml_structured_error_nop);
+
+ if (!priv->node) {
+ gvir_config_set_error_literal(err,
+--
+2.41.0
+
diff --git a/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch
new file mode 100644
index 000000000000..7a13eb211e20
--- /dev/null
+++ b/app-emulation/libvirt-glib/files/libvirt-glib-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch
@@ -0,0 +1,50 @@
+From bcc82de1d74057f6d124c2eaff0ac97cbbf52657 Mon Sep 17 00:00:00 2001
+Message-ID: <bcc82de1d74057f6d124c2eaff0ac97cbbf52657.1701156704.git.mprivozn@redhat.com>
+In-Reply-To: <56acbe8a0765a02418f80fb3599b3cf7160ef446.1701156704.git.mprivozn@redhat.com>
+References: <56acbe8a0765a02418f80fb3599b3cf7160ef446.1701156704.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Sat, 25 Nov 2023 07:15:46 +0100
+Subject: [glib PATCH 2/2] libvirt-gconfig: Add more libxml/ includes
+
+In its 2.12.0 release, libxml reworked their header files (some
+might even call it cleaning up, I call it API incompatible
+change) and now we don't get all declarations we need by just
+including one file. Add missing includes.
+
+Resolves: https://gitlab.com/libvirt/libvirt-glib/-/issues/6
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ libvirt-gconfig/libvirt-gconfig-helpers.c | 1 +
+ libvirt-gconfig/libvirt-gconfig-object.c | 3 +++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/libvirt-gconfig/libvirt-gconfig-helpers.c b/libvirt-gconfig/libvirt-gconfig-helpers.c
+index 37075e3..4dbb177 100644
+--- a/libvirt-gconfig/libvirt-gconfig-helpers.c
++++ b/libvirt-gconfig/libvirt-gconfig-helpers.c
+@@ -25,6 +25,7 @@
+
+ #include <string.h>
+
++#include <libxml/parser.h>
+ #include <libxml/xmlerror.h>
+ #include <glib/gi18n-lib.h>
+
+diff --git a/libvirt-gconfig/libvirt-gconfig-object.c b/libvirt-gconfig/libvirt-gconfig-object.c
+index 1fcc667..4dd189d 100644
+--- a/libvirt-gconfig/libvirt-gconfig-object.c
++++ b/libvirt-gconfig/libvirt-gconfig-object.c
+@@ -25,7 +25,10 @@
+
+ #include <string.h>
+
++#include <libxml/tree.h>
++#include <libxml/entities.h>
+ #include <libxml/relaxng.h>
++
+ #include <glib/gi18n-lib.h>
+
+ #include "libvirt-gconfig/libvirt-gconfig.h"
+--
+2.41.0
+
diff --git a/app-emulation/libvirt-glib/libvirt-glib-1.0.0-r1.ebuild b/app-emulation/libvirt-glib/libvirt-glib-1.0.0-r1.ebuild
deleted file mode 100644
index c18bd71005a4..000000000000
--- a/app-emulation/libvirt-glib/libvirt-glib-1.0.0-r1.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_LA_PUNT="yes"
-
-inherit gnome2 vala
-
-DESCRIPTION="GLib and GObject mappings for libvirt"
-HOMEPAGE="http://libvirt.org/git/?p=libvirt-glib.git"
-SRC_URI="ftp://libvirt.org/libvirt/glib/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="+introspection nls +vala"
-REQUIRED_USE="vala? ( introspection )"
-
-# https://bugzilla.redhat.com/show_bug.cgi?id=1093633
-RESTRICT="test"
-
-RDEPEND="
- dev-libs/libxml2:2
- >=app-emulation/libvirt-1.2.6:=
- >=dev-libs/glib-2.38.0:2
- introspection? ( >=dev-libs/gobject-introspection-0.10.8:= )"
-DEPEND="${RDEPEND}
- dev-util/glib-utils
- dev-util/gtk-doc-am
- >=dev-util/intltool-0.35.0
- virtual/pkgconfig
- vala? ( $(vala_depend) )"
-
-src_prepare() {
- gnome2_src_prepare
- use vala && vala_src_prepare
-}
-
-src_configure() {
- gnome2_src_configure \
- --disable-test-coverage \
- --disable-static \
- $(use_enable introspection) \
- $(use_enable nls) \
- $(use_enable vala)
-}
diff --git a/app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild
deleted file mode 100644
index 219f71992ece..000000000000
--- a/app-emulation/libvirt-glib/libvirt-glib-2.0.0.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_LA_PUNT="yes"
-
-inherit gnome2 vala
-
-DESCRIPTION="GLib and GObject mappings for libvirt"
-HOMEPAGE="http://libvirt.org/git/?p=libvirt-glib.git"
-SRC_URI="ftp://libvirt.org/libvirt/glib/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 ~ppc64 x86"
-IUSE="+introspection nls +vala"
-REQUIRED_USE="vala? ( introspection )"
-
-# https://bugzilla.redhat.com/show_bug.cgi?id=1093633
-RESTRICT="test"
-
-RDEPEND="
- dev-libs/libxml2:2
- >=app-emulation/libvirt-1.2.6:=
- >=dev-libs/glib-2.38.0:2
- introspection? ( >=dev-libs/gobject-introspection-0.10.8:= )"
-DEPEND="${RDEPEND}
- dev-util/glib-utils
- dev-util/gtk-doc-am
- >=dev-util/intltool-0.35.0
- virtual/pkgconfig
- vala? ( $(vala_depend) )"
-
-src_prepare() {
- gnome2_src_prepare
- use vala && vala_src_prepare
-}
-
-src_configure() {
- gnome2_src_configure \
- --disable-test-coverage \
- --disable-static \
- $(use_enable introspection) \
- $(use_enable nls) \
- $(use_enable vala)
-}
diff --git a/app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild
deleted file mode 100644
index 4ac16f7d9556..000000000000
--- a/app-emulation/libvirt-glib/libvirt-glib-3.0.0.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-GNOME2_LA_PUNT="yes"
-
-inherit gnome2 vala
-
-DESCRIPTION="GLib and GObject mappings for libvirt"
-HOMEPAGE="http://libvirt.org/git/?p=libvirt-glib.git"
-SRC_URI="ftp://libvirt.org/libvirt/glib/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-IUSE="+introspection nls +vala"
-REQUIRED_USE="vala? ( introspection )"
-
-RDEPEND="
- dev-libs/libxml2:2
- >=app-emulation/libvirt-1.2.6:=
- >=dev-libs/glib-2.38.0:2
- introspection? ( >=dev-libs/gobject-introspection-1.36.0:= )"
-DEPEND="${RDEPEND}
- dev-util/glib-utils
- dev-util/gtk-doc-am
- >=dev-util/intltool-0.35.0
- virtual/pkgconfig
- vala? ( $(vala_depend) )"
-
-src_prepare() {
- gnome2_src_prepare
- use vala && vala_src_prepare
-}
-
-src_configure() {
- gnome2_src_configure \
- --disable-test-coverage \
- --disable-static \
- $(use_enable introspection) \
- $(use_enable nls) \
- $(use_enable vala)
-}
diff --git a/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild
new file mode 100644
index 000000000000..c1c823159096
--- /dev/null
+++ b/app-emulation/libvirt-glib/libvirt-glib-4.0.0.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson vala
+
+DESCRIPTION="GLib and GObject mappings for libvirt"
+HOMEPAGE="https://libvirt.org/ https://gitlab.com/libvirt/libvirt-glib/"
+SRC_URI="https://libvirt.org/sources/glib/${P}.tar.xz"
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="amd64 arm64 ppc64 x86"
+IUSE="gtk-doc +introspection test +vala"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="vala? ( introspection )"
+
+RDEPEND="
+ >=dev-libs/libxml2-2.9.1
+ >=app-emulation/libvirt-1.2.8:=
+ >=dev-libs/glib-2.48.0:2
+ introspection? ( >=dev-libs/gobject-introspection-1.48.0:= )
+"
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ dev-util/glib-utils
+ virtual/pkgconfig
+ gtk-doc? ( dev-util/gtk-doc
+ app-text/docbook-xml-dtd:4.3 )
+ vala? ( $(vala_depend) )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.0.0-Make-xmlError-structs-constant.patch
+ "${FILESDIR}"/${PN}-4.0.0-libvirt-gconfig-Add-more-libxml-includes.patch
+)
+
+src_prepare() {
+ default
+ use vala && vala_src_prepare
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature gtk-doc docs)
+ $(meson_feature introspection)
+ $(meson_feature test tests)
+ $(meson_feature vala vapi)
+ )
+
+ meson_src_configure
+}
diff --git a/app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild b/app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild
new file mode 100644
index 000000000000..8b22083a5ab3
--- /dev/null
+++ b/app-emulation/libvirt-glib/libvirt-glib-5.0.0.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson vala
+
+DESCRIPTION="GLib and GObject mappings for libvirt"
+HOMEPAGE="https://libvirt.org/ https://gitlab.com/libvirt/libvirt-glib/"
+SRC_URI="https://libvirt.org/sources/glib/${P}.tar.xz"
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="gtk-doc +introspection test +vala"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="vala? ( introspection )"
+
+RDEPEND="
+ >=dev-libs/libxml2-2.9.1
+ >=app-emulation/libvirt-2.3.0:=
+ >=dev-libs/glib-2.48.0:2
+ introspection? ( >=dev-libs/gobject-introspection-1.48.0:= )
+"
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ dev-util/glib-utils
+ virtual/pkgconfig
+ gtk-doc? ( dev-util/gtk-doc
+ app-text/docbook-xml-dtd:4.3 )
+ vala? ( $(vala_depend) )
+"
+
+src_prepare() {
+ default
+ use vala && vala_src_prepare
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature gtk-doc docs)
+ $(meson_feature introspection)
+ $(meson_feature test tests)
+ $(meson_feature vala vapi)
+ )
+
+ meson_src_configure
+}
diff --git a/app-emulation/libvirt-glib/metadata.xml b/app-emulation/libvirt-glib/metadata.xml
index 8f96b900ccf3..08a5f06bdf97 100644
--- a/app-emulation/libvirt-glib/metadata.xml
+++ b/app-emulation/libvirt-glib/metadata.xml
@@ -1,12 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>gnome@gentoo.org</email>
- <name>Gentoo GNOME Desktop</name>
-</maintainer>
-<maintainer type="person">
- <email>tamiko@gentoo.org</email>
- <name>Matthias Maier</name>
-</maintainer>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="gitlab">libvirt/libvirt-glib</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/libvirt-snmp/Manifest b/app-emulation/libvirt-snmp/Manifest
deleted file mode 100644
index 29aa01ee3da6..000000000000
--- a/app-emulation/libvirt-snmp/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST libvirt-snmp-0.0.4.tar.gz 157859 BLAKE2B e2c8fcdd97ba9b55bd4d318c63f7738024c1360ee10aa4e685c2ea6ca02478206febff30f3e1a82eb1a2dadaa52a377cfbce538e12e33f4ea2fe10b1a089945d SHA512 dbf47e7983f9bd6fcff205fffd1f6006268cca774cf427d39dec84dc7de37b545c0dfcbb2c6f171f55d73487cdec13341097137e24de2dea58ce90494d281162
diff --git a/app-emulation/libvirt-snmp/files/libvirt-snmp.confd b/app-emulation/libvirt-snmp/files/libvirt-snmp.confd
deleted file mode 100644
index f1685bb5e9d9..000000000000
--- a/app-emulation/libvirt-snmp/files/libvirt-snmp.confd
+++ /dev/null
@@ -1,6 +0,0 @@
-
-# Specify the URI where your libvirt instance is listening
-LIBVIRT_DEFAULT_URI="qemu:///system"
-
-# additional options
-LIBVIRT_SNMP_OPTIONS=""
diff --git a/app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r1 b/app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r1
deleted file mode 100644
index 27b877991ae2..000000000000
--- a/app-emulation/libvirt-snmp/files/libvirt-snmp.initd-r1
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-depend() {
- need snmpd
- use snmptrapd
- use libvirtd
-}
-
-start() {
- ebegin "Starting libvirt subagent"
- start-stop-daemon --start \
- --env LIBVIRT_DEFAULT_URI="${LIBVIRT_DEFAULT_URI}" \
- --exec /usr/bin/libvirtMib_subagent \
- -- ${LIBVIRT_SNMP_OPTIONS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping libvirt subagent"
- # "--exec /usr/bin/libvirtMib_subagent" does not work and the name gets truncated
- start-stop-daemon --stop \
- --name libvirtMib_suba
- eend $?
-}
diff --git a/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild b/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild
deleted file mode 100644
index 8539f42de690..000000000000
--- a/app-emulation/libvirt-snmp/libvirt-snmp-0.0.4.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit eutils
-
-DESCRIPTION="Provides SNMP functionality for libvirt"
-HOMEPAGE="http://libvirt.org"
-SRC_URI="http://www.libvirt.org/sources/snmp/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}
- app-emulation/libvirt
- net-analyzer/net-snmp"
-BDEPEND="
- virtual/pkgconfig"
-
-src_install() {
- default
- newinitd "${FILESDIR}/libvirt-snmp.initd-r1" "${PN}"
- newconfd "${FILESDIR}/libvirt-snmp.confd" "${PN}"
-}
-
-pkg_postinst() {
- elog "This daemon runs as an AgentX sub-daemon for snmpd. You should therefore"
- elog "enable the AgentX functionality in snmpd by specifying the following"
- elog "in /etc/snmp/snmpd.conf:"
- elog " master agentx"
- elog "It is further recommended to send traps to the localhost as well using"
- elog "this option:"
- elog " trap2sink localhost"
- elog "More information is available here:"
- elog " http://wiki.libvirt.org/page/Libvirt-snmp"
-}
diff --git a/app-emulation/libvirt-snmp/metadata.xml b/app-emulation/libvirt-snmp/metadata.xml
deleted file mode 100644
index 1b2becffa26c..000000000000
--- a/app-emulation/libvirt-snmp/metadata.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <!-- maintainer-needed -->
-</pkgmetadata>
diff --git a/app-emulation/libvirt/Manifest b/app-emulation/libvirt/Manifest
index d865d5950769..bc9979d66286 100644
--- a/app-emulation/libvirt/Manifest
+++ b/app-emulation/libvirt/Manifest
@@ -1,2 +1,10 @@
-DIST libvirt-6.7.0.tar.xz 8362140 BLAKE2B d0afe33fcdaab3cc0f2ea8c552e7550bcece018b049a3b58e5c05ee85b39e2b3ebf42fa1b70ddb1d2a541d1114b6b49734f23a889b3589397a30a672f27a3a56 SHA512 cabfb6aa65a3a1412b0111654ad3a7d0a6dfc63399a892c540ca39ab4e56f87626a067037e4480bb55418a371d2b5e9ac74862c92a3cdea69822ec3d158d769f
-DIST libvirt-6.8.0.tar.xz 8412092 BLAKE2B c118ca6b263054bb6941c62f3d1415f7ed1a3f29a35294272d04bc726643247ee5691e0310a1bf013faeba856d7aadd00a90fe8dbdca6ff4c7eb480e94d92fa2 SHA512 9b69f3dcceb5e40470a78908654faf51b643f6793e556f3115daa4bfe08743af290882dd51f15eb27c38d589eb210d495de7c44a40b363420ab4f4d3a6393cc9
+DIST libvirt-10.0.0.tar.xz 9395076 BLAKE2B bfbea7805a949999481293a31e52a5511bcf86db2c96486cbc3b9cb776719ec973b1208cfcb4a8ae2c9220d1d68053980eaf68893f7919c3ef354efbd1abf642 SHA512 4ab28539ff0e9a78ac231b11b4ec88b91d76ff2607cabd0226f04aaece73b05cab4aa9cfcf05073cd257ea270a377cd5d2cb915971583dbec04dadf2cf7ad252
+DIST libvirt-10.0.0.tar.xz.asc 833 BLAKE2B e6377fe80a96025fe643d9bb14b3d64da3cf7f53000d8ee55606b4bc635d735943c4a7baa3796cbb7ce5812f03e2efd700aeef72e5bfcce68938b873aeca3f1f SHA512 08681d45c39695b07c88b27fddc471284ed66caa091a73ea3957e42ec92776d435ecb4dc71b6bb18a825322468fccb09263f612aa1bde53deea3d6c5305313d8
+DIST libvirt-10.1.0.tar.xz 9444244 BLAKE2B bfdce9d067e3a319b81d867d27f1a6b4e724ab6aaa25d19d7383c9be26ad7dc92b3c0aaa92894b772f09e20c3c2eb0ea0a8707feee4c63be58578fa22854305f SHA512 08e73ae15de5681430b62db85ec9901242dca5e9a4ca9685614f4a67092c6e28f27f9187144b3ceb18ad6b40e6eb1a90b1a4b056b0888724d04a62002ee2bc48
+DIST libvirt-10.1.0.tar.xz.asc 833 BLAKE2B 1046403fb6ee084eb68e081a0fa4a1cfbf30378faf2f54591917ab6a4648a4c2a23da055cfe2577ec7ec80922c29ca7a918386259f747f052abfdfc420ff7749 SHA512 40ec184b4c33f21bf99d38fec0722e165854f723017f3cddaef63120cdf8dcf6df0c03b7e4aea5c3706f65d46f5335db667321b1ece1c123d9517fcd303b2bd8
+DIST libvirt-10.2.0.tar.xz 9466588 BLAKE2B 7ee6f4bdbb6a22f1b3c5c0326d41e269e8a5a07e41bc4f9a17fd023f3e33e46735066656dffa3004e1f36d46324270351593c89f60106933042e8a19a2aa64e6 SHA512 65faf2346e66bdba606ba99b9e4da2be8bd94ef42ac49c2801f9e9253ceea10f5fe772d5c7ada59f48aa34ff528726719b690c3acfd3e63a5c3580db17b023ae
+DIST libvirt-10.2.0.tar.xz.asc 833 BLAKE2B 34031ed3c1896d3bb86d05b3efc158a48a70084bd6ea0308df779c351142e0f04395f62d62b4bb225c731a6f259f7ccb950428292691a656799eed06ecb2c3b2 SHA512 d366b0b64642f3358bdaee0ed5e06c4c3eba8b5ce2d1791f3d83d74c139a00282e45d7382af26706657c18e32ab956761d26f5b8595e32ad545c2f27f214fb76
+DIST libvirt-9.8.0.tar.xz 9307064 BLAKE2B aae47e8d4eeaf97532a0356de23ed5a9eea71b369d025eda95b5fd74576779eb4b843d05df6c87b79a14f218c341953749e319ee7244846a2db410a74a746880 SHA512 0118725073de33eec3fa3e4616d3154707f9828fdb9ec973f503fe68f18eab72b9704da660f281152630ddc95e605c786673af9d23dc9bdfc0108422e0efbd41
+DIST libvirt-9.8.0.tar.xz.asc 833 BLAKE2B 3ecd0a925992eeadd50675f7ad8e815bde532c0f66e331ea766fff8e613b6a60b002bedee82fd03684e703057bc13d4e92191268dcd5efe2611ce9bd3cf6b505 SHA512 e041db13281eae9323c22189b7a258caf8d0e2a350cbd31b6cbed7054ccaf09d05c155c3c09daea07940affdf15e8d42bb2339945480cd141a6e8cb417a78536
+DIST libvirt-9.9.0.tar.xz 9321556 BLAKE2B 21eae5a95feaf7f5c6ba8dd48732c08212904882a11c48eccfa827d85ddc3df7e064503f21710dbe1b678670e02f003674de915a43a7403fbf85685c4832e21d SHA512 77cea28acf4f3e8c92fbd5bd72ad084be183c07f14e3a9ce35d6d9d62d36ee97a30cef55fb204b3e43f282890ecd7d5827a784a517e7f4ed8b22ee502c3f09d7
+DIST libvirt-9.9.0.tar.xz.asc 833 BLAKE2B 3de3674d33c595692e71eeb9c312de76e865d3859d2482ec5b4d29d3cd7644cde080cba0001668efe7876b462f78c0233ab76076ef32943e118b34cca8c1ab4d SHA512 357fc2d1bdbbc26c6e0119a1b5c42e86a116f94bb714da855ab27ca83da0e50c7239d1b8abde3cee8a460ac537f63d518f43470d8329b727b39491771ad191e5
diff --git a/app-emulation/libvirt/files/README.gentoo-r3 b/app-emulation/libvirt/files/README.gentoo-r3
index 1fec12f0c025..0eab21d3a006 100644
--- a/app-emulation/libvirt/files/README.gentoo-r3
+++ b/app-emulation/libvirt/files/README.gentoo-r3
@@ -5,7 +5,7 @@ host. In order to reenable client handling, edit /etc/conf.d/libvirt-guests
and enable the service and start it:
$ rc-update add libvirt-guests
- $ service libvirt-guests start
+ $ rc-service libvirt-guests start
For the basic networking support (bridged and routed networks) you don't
diff --git a/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch b/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
new file mode 100644
index 000000000000..7ef0652faa38
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
@@ -0,0 +1,42 @@
+From 2127032ed8cd49001465dc0dce9f842e13467bc2 Mon Sep 17 00:00:00 2001
+Message-ID: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com>
+From: Martin Kletzander <mkletzan@redhat.com>
+Date: Tue, 27 Feb 2024 16:20:12 +0100
+Subject: [PATCH 1/2] Fix off-by-one error in udevListInterfacesByStatus
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ever since this function was introduced in 2012 it could've tried
+filling in an extra interface name. That was made worse in 2019 when
+the caller functions started accepting NULL arrays of size 0.
+
+This is assigned CVE-2024-1441.
+
+Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
+Reported-by: Alexander Kuznetsov <kuznetsovam@altlinux.org>
+Fixes: 5a33366f5c0b18c93d161bd144f9f079de4ac8ca
+Fixes: d6064e2759a24e0802f363e3a810dc5a7d7ebb15
+Reviewed-by: Ján Tomko <jtomko@redhat.com>
+(cherry picked from commit c664015fe3a7bf59db26686e9ed69af011c6ebb8)
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/interface/interface_backend_udev.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
+index fb6799ed94..4091483060 100644
+--- a/src/interface/interface_backend_udev.c
++++ b/src/interface/interface_backend_udev.c
+@@ -222,7 +222,7 @@ udevListInterfacesByStatus(virConnectPtr conn,
+ g_autoptr(virInterfaceDef) def = NULL;
+
+ /* Ensure we won't exceed the size of our array */
+- if (count > names_len)
++ if (count >= names_len)
+ break;
+
+ path = udev_list_entry_get_name(dev_entry);
+--
+2.43.2
+
diff --git a/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch b/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
new file mode 100644
index 000000000000..3e0426634f42
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
@@ -0,0 +1,222 @@
+From 10fa5f6ba64b354b99b0f7b372e66e45bb4d9379 Mon Sep 17 00:00:00 2001
+Message-ID: <10fa5f6ba64b354b99b0f7b372e66e45bb4d9379.1713033988.git.mprivozn@redhat.com>
+In-Reply-To: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com>
+References: <2127032ed8cd49001465dc0dce9f842e13467bc2.1713033988.git.mprivozn@redhat.com>
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Fri, 15 Mar 2024 10:47:50 +0000
+Subject: [PATCH 2/2] remote: check for negative array lengths before
+ allocation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While the C API entry points will validate non-negative lengths
+for various parameters, the RPC server de-serialization code
+will need to allocate memory for arrays before entering the C
+API. These allocations will thus happen before the non-negative
+length check is performed.
+
+Passing a negative length to the g_new0 function will usually
+result in a crash due to the negative length being treated as
+a huge positive number.
+
+This was found and diagnosed by ALT Linux Team with AFLplusplus.
+
+CVE-2024-2494
+Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
+Found-by: Alexandr Shashkin <dutyrok@altlinux.org>
+Co-developed-by: Alexander Kuznetsov <kuznetsovam@altlinux.org>
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+(cherry picked from commit 8a3f8d957507c1f8223fdcf25a3ff885b15557f2)
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/remote/remote_daemon_dispatch.c | 65 +++++++++++++++++++++++++++++
+ src/rpc/gendispatch.pl | 5 +++
+ 2 files changed, 70 insertions(+)
+
+diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon_dispatch.c
+index 7daf503b51..7542caa952 100644
+--- a/src/remote/remote_daemon_dispatch.c
++++ b/src/remote/remote_daemon_dispatch.c
+@@ -2291,6 +2291,10 @@ remoteDispatchDomainGetSchedulerParameters(virNetServer *server G_GNUC_UNUSED,
+ if (!conn)
+ goto cleanup;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -2339,6 +2343,10 @@ remoteDispatchDomainGetSchedulerParametersFlags(virNetServer *server G_GNUC_UNUS
+ if (!conn)
+ goto cleanup;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_SCHEDULER_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -2497,6 +2505,10 @@ remoteDispatchDomainBlockStatsFlags(virNetServer *server G_GNUC_UNUSED,
+ goto cleanup;
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_BLOCK_STATS_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -2717,6 +2729,14 @@ remoteDispatchDomainGetVcpuPinInfo(virNetServer *server G_GNUC_UNUSED,
+ if (!(dom = get_nonnull_domain(conn, args->dom)))
+ goto cleanup;
+
++ if (args->ncpumaps < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("ncpumaps must be non-negative"));
++ goto cleanup;
++ }
++ if (args->maplen < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maplen must be non-negative"));
++ goto cleanup;
++ }
+ if (args->ncpumaps > REMOTE_VCPUINFO_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("ncpumaps > REMOTE_VCPUINFO_MAX"));
+ goto cleanup;
+@@ -2811,6 +2831,11 @@ remoteDispatchDomainGetEmulatorPinInfo(virNetServer *server G_GNUC_UNUSED,
+ if (!(dom = get_nonnull_domain(conn, args->dom)))
+ goto cleanup;
+
++ if (args->maplen < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maplen must be non-negative"));
++ goto cleanup;
++ }
++
+ /* Allocate buffers to take the results */
+ if (args->maplen > 0)
+ cpumaps = g_new0(unsigned char, args->maplen);
+@@ -2858,6 +2883,14 @@ remoteDispatchDomainGetVcpus(virNetServer *server G_GNUC_UNUSED,
+ if (!(dom = get_nonnull_domain(conn, args->dom)))
+ goto cleanup;
+
++ if (args->maxinfo < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo must be non-negative"));
++ goto cleanup;
++ }
++ if (args->maplen < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo must be non-negative"));
++ goto cleanup;
++ }
+ if (args->maxinfo > REMOTE_VCPUINFO_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo > REMOTE_VCPUINFO_MAX"));
+ goto cleanup;
+@@ -3096,6 +3129,10 @@ remoteDispatchDomainGetMemoryParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_MEMORY_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3156,6 +3193,10 @@ remoteDispatchDomainGetNumaParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_NUMA_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3216,6 +3257,10 @@ remoteDispatchDomainGetBlkioParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_BLKIO_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3277,6 +3322,10 @@ remoteDispatchNodeGetCPUStats(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_NODE_CPU_STATS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3339,6 +3388,10 @@ remoteDispatchNodeGetMemoryStats(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_NODE_MEMORY_STATS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -3514,6 +3567,10 @@ remoteDispatchDomainGetBlockIoTune(virNetServer *server G_GNUC_UNUSED,
+ if (!conn)
+ goto cleanup;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_BLOCK_IO_TUNE_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -5079,6 +5136,10 @@ remoteDispatchDomainGetInterfaceParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_DOMAIN_INTERFACE_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+@@ -5299,6 +5360,10 @@ remoteDispatchNodeGetMemoryParameters(virNetServer *server G_GNUC_UNUSED,
+
+ flags = args->flags;
+
++ if (args->nparams < 0) {
++ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams must be non-negative"));
++ goto cleanup;
++ }
+ if (args->nparams > REMOTE_NODE_MEMORY_PARAMETERS_MAX) {
+ virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("nparams too large"));
+ goto cleanup;
+diff --git a/src/rpc/gendispatch.pl b/src/rpc/gendispatch.pl
+index fa45d15a92..294e21f8a1 100755
+--- a/src/rpc/gendispatch.pl
++++ b/src/rpc/gendispatch.pl
+@@ -1070,6 +1070,11 @@ elsif ($mode eq "server") {
+ print "\n";
+
+ if ($single_ret_as_list) {
++ print " if (args->$single_ret_list_max_var < 0) {\n";
++ print " virReportError(VIR_ERR_RPC,\n";
++ print " \"%s\", _(\"max$single_ret_list_name must be non-negative\"));\n";
++ print " goto cleanup;\n";
++ print " }\n";
+ print " if (args->$single_ret_list_max_var > $single_ret_list_max_define) {\n";
+ print " virReportError(VIR_ERR_RPC,\n";
+ print " \"%s\", _(\"max$single_ret_list_name > $single_ret_list_max_define\"));\n";
+--
+2.43.2
+
diff --git a/app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch
deleted file mode 100644
index f3d2e3c39162..000000000000
--- a/app-emulation/libvirt/files/libvirt-6.7.0-do-not-use-sysconfig.patch
+++ /dev/null
@@ -1,169 +0,0 @@
---- a/src/interface/virtinterfaced.service.in
-+++ b/src/interface/virtinterfaced.service.in
-@@ -13,7 +13,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtinterfaced
- ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/libxl/virtxend.service.in
-+++ b/src/libxl/virtxend.service.in
-@@ -17,7 +17,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtxend
- ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/locking/virtlockd.service.in
-+++ b/src/locking/virtlockd.service.in
-@@ -7,8 +7,7 @@
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlockd
--ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS
-+ExecStart=@sbindir@/virtlockd
- ExecReload=/bin/kill -USR1 $MAINPID
- # Loosing the locks is a really bad thing that will
- # cause the machine to be fenced (rebooted), so make
---- a/src/logging/virtlogd.service.in
-+++ b/src/logging/virtlogd.service.in
-@@ -7,8 +7,7 @@
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlogd
--ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS
-+ExecStart=@sbindir@/virtlogd
- ExecReload=/bin/kill -USR1 $MAINPID
- # Loosing the logs is a really bad thing that will
- # cause the machine to be fenced (rebooted), so make
---- a/src/lxc/virtlxcd.service.in
-+++ b/src/lxc/virtlxcd.service.in
-@@ -18,7 +18,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtlxcd
- ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
---- a/src/network/virtnetworkd.service.in
-+++ b/src/network/virtnetworkd.service.in
-@@ -16,7 +16,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtnetworkd
- ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/node_device/virtnodedevd.service.in
-+++ b/src/node_device/virtnodedevd.service.in
-@@ -13,7 +13,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtnodedevd
- ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/nwfilter/virtnwfilterd.service.in
-+++ b/src/nwfilter/virtnwfilterd.service.in
-@@ -13,7 +13,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtnwfilterd
- ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/qemu/virtqemud.service.in
-+++ b/src/qemu/virtqemud.service.in
-@@ -18,7 +18,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtqemud
- ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
---- a/src/remote/libvirtd.service.in
-+++ b/src/remote/libvirtd.service.in
-@@ -28,8 +28,7 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/libvirtd
--ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
-+ExecStart=@sbindir@/libvirtd
- ExecReload=/bin/kill -HUP $MAINPID
- KillMode=process
- Restart=on-failure
---- a/src/remote/virtproxyd.service.in
-+++ b/src/remote/virtproxyd.service.in
-@@ -13,7 +13,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtproxyd
- ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/secret/virtsecretd.service.in
-+++ b/src/secret/virtsecretd.service.in
-@@ -13,7 +13,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtsecretd
- ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/storage/virtstoraged.service.in
-+++ b/src/storage/virtstoraged.service.in
-@@ -15,7 +15,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtstoraged
- ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/src/vbox/virtvboxd.service.in
-+++ b/src/vbox/virtvboxd.service.in
-@@ -14,7 +14,6 @@
-
- [Service]
- Type=notify
--EnvironmentFile=-@sysconfdir@/sysconfig/virtvboxd
- ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS
- ExecReload=/bin/kill -HUP $MAINPID
- Restart=on-failure
---- a/tools/libvirt-guests.service.in
-+++ b/tools/libvirt-guests.service.in
-@@ -10,7 +10,7 @@
- Documentation=https://libvirt.org
-
- [Service]
--EnvironmentFile=-@sysconfdir@/sysconfig/libvirt-guests
-+EnvironmentFile=-/etc/libvirt/libvirt-guests.conf
- # Hack just call traditional service until we factor
- # out the code
- ExecStart=@libexecdir@/libvirt-guests.sh start
---- a/tools/libvirt-guests.sysconf
-+++ b/tools/libvirt-guests.sysconf
-@@ -1,3 +1,9 @@
-+#
-+# Warning: This configuration file is only sourced by the systemd
-+# libvirt-guests.service unit. The coresponding openrc facility is in
-+# /etc/init.d/libvirtd and /etc/conf.d/libvirtd
-+#
-+
- # Customizations for the libvirt-guests.service systemd unit
-
- # URIs to check for running guests
diff --git a/app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch b/app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch
deleted file mode 100644
index 65eb35f3e346..000000000000
--- a/app-emulation/libvirt/files/libvirt-6.7.0-doc-path.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/meson.build 2020-09-26 21:25:08.557345415 +0000
-+++ b/meson.build 2020-09-26 21:25:59.507348156 +0000
-@@ -84,7 +84,7 @@ sbindir = prefix / get_option('sbindir')
- sharedstatedir = prefix / get_option('sharedstatedir')
-
- confdir = sysconfdir / meson.project_name()
--docdir = datadir / 'doc' / meson.project_name()
-+docdir = datadir / 'doc' / '@0@-@1@'.format(meson.project_name(), meson.project_version())
- pkgdatadir = datadir / meson.project_name()
diff --git a/app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch b/app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch
deleted file mode 100644
index 18e7ef2daa0b..000000000000
--- a/app-emulation/libvirt/files/libvirt-6.7.0-fix-paths-for-apparmor.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/src/security/apparmor/libvirt-qemu b/src/security/apparmor/libvirt-qemu
-index 80986ae..d550d8c 100644
---- a/src/security/apparmor/libvirt-qemu
-+++ b/src/security/apparmor/libvirt-qemu
-@@ -88,6 +88,7 @@
- /usr/share/sgabios/** r,
- /usr/share/slof/** r,
- /usr/share/vgabios/** r,
-+ /usr/share/seavgabios/** r,
-
- # pki for libvirt-vnc and libvirt-spice (LP: #901272, #1690140)
- /etc/pki/CA/ r,
-
---- a/src/security/apparmor/meson.build 2020-10-06 17:45:18.590000000 +0100
-+++ b/src/security/apparmor/meson.build 2020-10-06 17:45:07.044000000 +0100
-@@ -1,5 +1,5 @@
- apparmor_gen_profiles = [
-- 'usr.lib.libvirt.virt-aa-helper',
-+ 'usr.libexec.libvirt.virt-aa-helper',
- 'usr.sbin.libvirtd',
- ]
-
-@@ -32,7 +32,7 @@ install_data(
- )
-
- install_data(
-- 'usr.lib.libvirt.virt-aa-helper.local',
-+ 'usr.libexec.libvirt.virt-aa-helper.local',
- install_dir: apparmor_dir / 'local',
-- rename: 'usr.lib.libvirt.virt-aa-helper',
-+ rename: 'usr.libexec.libvirt.virt-aa-helper',
- )
-
-diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
-similarity index 97%
-rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
-rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
-index dd18c8a..d06f9cb 100644
---- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
-+++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
-@@ -69,5 +69,5 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper {
- /**.[iI][sS][oO] r,
- /**/disk{,.*} r,
-
-- #include <local/usr.lib.libvirt.virt-aa-helper>
-+ #include <local/usr.libexec.libvirt.virt-aa-helper>
- }
-diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local
-similarity index 100%
-rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local
-rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local
diff --git a/app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch b/app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch
new file mode 100644
index 000000000000..b24236be8751
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch
@@ -0,0 +1,36 @@
+From 7a5f232be2269e74943a029c0e8b1b0124674a6c Mon Sep 17 00:00:00 2001
+Message-ID: <7a5f232be2269e74943a029c0e8b1b0124674a6c.1700576185.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Mon, 20 Nov 2023 03:18:12 +0100
+Subject: [PATCH] virxml: include <libxml/xmlsave.h> for xmlIndentTreeOutput
+ declaration
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+After libxml2's commit of v2.12.0~101 we no longer get
+xmlIndentTreeOutput declaration by us including just
+libxml/xpathInternals.h and libxml2's header files leakage.
+
+Resolves: https://bugs.gentoo.org/917516
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+Reviewed-by: Ján Tomko <jtomko@redhat.com>
+---
+ src/util/virxml.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/util/virxml.c b/src/util/virxml.c
+index 0c1eae8c3c..4f215a0e59 100644
+--- a/src/util/virxml.c
++++ b/src/util/virxml.c
+@@ -24,6 +24,7 @@
+ #include <math.h> /* for isnan() */
+ #include <sys/stat.h>
+
++#include <libxml/xmlsave.h>
+ #include <libxml/xpathInternals.h>
+
+ #include "virerror.h"
+--
+2.41.0
+
diff --git a/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch
new file mode 100644
index 000000000000..cfd12efb3de7
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-9.4.0-do-not-use-sysconfig.patch
@@ -0,0 +1,209 @@
+From 09e34bcb43b3c0fb3bf139f218ebc75e9e9f9a39 Mon Sep 17 00:00:00 2001
+Message-Id: <09e34bcb43b3c0fb3bf139f218ebc75e9e9f9a39.1683631803.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Wed, 2 Mar 2022 10:01:04 +0100
+Subject: [PATCH] libvirt-8.2.0-do-not-use-sysconfig.patch
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/interface/virtinterfaced.service.in | 1 -
+ src/libxl/virtxend.service.in | 1 -
+ src/locking/virtlockd.service.in | 1 -
+ src/logging/virtlogd.service.in | 1 -
+ src/lxc/virtlxcd.service.in | 1 -
+ src/network/virtnetworkd.service.in | 1 -
+ src/node_device/virtnodedevd.service.in | 1 -
+ src/nwfilter/virtnwfilterd.service.in | 1 -
+ src/qemu/virtqemud.service.in | 1 -
+ src/remote/libvirtd.service.in | 1 -
+ src/remote/virtproxyd.service.in | 1 -
+ src/secret/virtsecretd.service.in | 1 -
+ src/storage/virtstoraged.service.in | 1 -
+ src/vbox/virtvboxd.service.in | 1 -
+ tools/libvirt-guests.service.in | 2 +-
+ 15 files changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/src/interface/virtinterfaced.service.in b/src/interface/virtinterfaced.service.in
+index 1be3ab32dc..090b198ac7 100644
+--- a/src/interface/virtinterfaced.service.in
++++ b/src/interface/virtinterfaced.service.in
+@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTINTERFACED_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtinterfaced
+ ExecStart=@sbindir@/virtinterfaced $VIRTINTERFACED_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/libxl/virtxend.service.in b/src/libxl/virtxend.service.in
+index abb1972777..dbbc2ab5b7 100644
+--- a/src/libxl/virtxend.service.in
++++ b/src/libxl/virtxend.service.in
+@@ -19,7 +19,6 @@ ConditionPathExists=/proc/xen/capabilities
+ [Service]
+ Type=notify
+ Environment=VIRTXEND_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtxend
+ ExecStart=@sbindir@/virtxend $VIRTXEND_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
+index 23054369d5..87193952cb 100644
+--- a/src/locking/virtlockd.service.in
++++ b/src/locking/virtlockd.service.in
+@@ -8,7 +8,6 @@ Documentation=https://libvirt.org
+
+ [Service]
+ Environment=VIRTLOCKD_ARGS=
+-EnvironmentFile=-@initconfdir@/virtlockd
+ ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS
+ ExecReload=/bin/kill -USR1 $MAINPID
+ # Losing the locks is a really bad thing that will
+diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
+index e4aecd46a7..d97a98e856 100644
+--- a/src/logging/virtlogd.service.in
++++ b/src/logging/virtlogd.service.in
+@@ -8,7 +8,6 @@ Documentation=https://libvirt.org
+
+ [Service]
+ Environment=VIRTLOGD_ARGS=
+-EnvironmentFile=-@initconfdir@/virtlogd
+ ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS
+ ExecReload=/bin/kill -USR1 $MAINPID
+ # Losing the logs is a really bad thing that will
+diff --git a/src/lxc/virtlxcd.service.in b/src/lxc/virtlxcd.service.in
+index 2623f7375a..b48ce6958a 100644
+--- a/src/lxc/virtlxcd.service.in
++++ b/src/lxc/virtlxcd.service.in
+@@ -18,7 +18,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTLXCD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtlxcd
+ ExecStart=@sbindir@/virtlxcd $VIRTLXCD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ KillMode=process
+diff --git a/src/network/virtnetworkd.service.in b/src/network/virtnetworkd.service.in
+index 48423e777d..ee4cd9bca1 100644
+--- a/src/network/virtnetworkd.service.in
++++ b/src/network/virtnetworkd.service.in
+@@ -17,7 +17,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTNETWORKD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtnetworkd
+ ExecStart=@sbindir@/virtnetworkd $VIRTNETWORKD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/node_device/virtnodedevd.service.in b/src/node_device/virtnodedevd.service.in
+index 3ceed30f29..7693aa52c4 100644
+--- a/src/node_device/virtnodedevd.service.in
++++ b/src/node_device/virtnodedevd.service.in
+@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTNODEDEVD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtnodedevd
+ ExecStart=@sbindir@/virtnodedevd $VIRTNODEDEVD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/nwfilter/virtnwfilterd.service.in b/src/nwfilter/virtnwfilterd.service.in
+index 37fa54d684..16d8b377b0 100644
+--- a/src/nwfilter/virtnwfilterd.service.in
++++ b/src/nwfilter/virtnwfilterd.service.in
+@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTNWFILTERD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtnwfilterd
+ ExecStart=@sbindir@/virtnwfilterd $VIRTNWFILTERD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/qemu/virtqemud.service.in b/src/qemu/virtqemud.service.in
+index 032cbcbbf0..85a1049567 100644
+--- a/src/qemu/virtqemud.service.in
++++ b/src/qemu/virtqemud.service.in
+@@ -20,7 +20,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTQEMUD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtqemud
+ ExecStart=@sbindir@/virtqemud $VIRTQEMUD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ KillMode=process
+diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
+index 11507207a1..9cda330e0b 100644
+--- a/src/remote/libvirtd.service.in
++++ b/src/remote/libvirtd.service.in
+@@ -28,7 +28,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=LIBVIRTD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/libvirtd
+ ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ KillMode=process
+diff --git a/src/remote/virtproxyd.service.in b/src/remote/virtproxyd.service.in
+index dd3bdf3429..0eddf5ee93 100644
+--- a/src/remote/virtproxyd.service.in
++++ b/src/remote/virtproxyd.service.in
+@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTPROXYD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtproxyd
+ ExecStart=@sbindir@/virtproxyd $VIRTPROXYD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/secret/virtsecretd.service.in b/src/secret/virtsecretd.service.in
+index 774cfc3ecd..92e54f175f 100644
+--- a/src/secret/virtsecretd.service.in
++++ b/src/secret/virtsecretd.service.in
+@@ -14,7 +14,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTSECRETD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtsecretd
+ ExecStart=@sbindir@/virtsecretd $VIRTSECRETD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/storage/virtstoraged.service.in b/src/storage/virtstoraged.service.in
+index e1a1ea6820..abe91e3d80 100644
+--- a/src/storage/virtstoraged.service.in
++++ b/src/storage/virtstoraged.service.in
+@@ -16,7 +16,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTSTORAGED_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtstoraged
+ ExecStart=@sbindir@/virtstoraged $VIRTSTORAGED_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/src/vbox/virtvboxd.service.in b/src/vbox/virtvboxd.service.in
+index e73206591a..54fbd0be4a 100644
+--- a/src/vbox/virtvboxd.service.in
++++ b/src/vbox/virtvboxd.service.in
+@@ -15,7 +15,6 @@ Documentation=https://libvirt.org
+ [Service]
+ Type=notify
+ Environment=VIRTVBOXD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/virtvboxd
+ ExecStart=@sbindir@/virtvboxd $VIRTVBOXD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
+index c547218f2a..f5a1a60abe 100644
+--- a/tools/libvirt-guests.service.in
++++ b/tools/libvirt-guests.service.in
+@@ -14,7 +14,7 @@ Documentation=man:libvirt-guests(8)
+ Documentation=https://libvirt.org
+
+ [Service]
+-EnvironmentFile=-@initconfdir@/libvirt-guests
++EnvironmentFile=-/etc/libvirt/libvirt-guests.conf
+ # Hack just call traditional service until we factor
+ # out the code
+ ExecStart=@libexecdir@/libvirt-guests.sh start
+--
+2.39.3
+
diff --git a/app-emulation/libvirt/files/libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch b/app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch
index bf7a328f7759..d40d2f1b63ec 100644
--- a/app-emulation/libvirt/files/libvirt-6.0.0-fix_paths_in_libvirt-guests_sh.patch
+++ b/app-emulation/libvirt/files/libvirt-9.4.0-fix_paths_in_libvirt-guests_sh.patch
@@ -1,10 +1,7 @@
-From e97700d867ffa949c97f8a635a76b9ce510e806f Mon Sep 17 00:00:00 2001
-Message-Id: <e97700d867ffa949c97f8a635a76b9ce510e806f.1580460243.git.mprivozn@redhat.com>
-In-Reply-To: <5965f20fe0275b324c9b84ab7f48dd7db0494495.1580460243.git.mprivozn@redhat.com>
-References: <5965f20fe0275b324c9b84ab7f48dd7db0494495.1580460243.git.mprivozn@redhat.com>
+From 7f22569453720994ba49ca1d3c64c010ed7cc5d0 Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Fri, 31 Jan 2020 09:42:14 +0100
-Subject: [PATCH 2/3] Fix paths in libvirt-guests.sh.in
+Subject: [PATCH] Fix paths in libvirt-guests.sh.in
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
@@ -12,15 +9,15 @@ Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tools/libvirt-guests.sh.in b/tools/libvirt-guests.sh.in
-index a881f6266e..79d38b3e9a 100644
+index 016014215f..24dd706d6f 100644
--- a/tools/libvirt-guests.sh.in
+++ b/tools/libvirt-guests.sh.in
-@@ -39,11 +39,11 @@ START_DELAY=0
+@@ -40,11 +40,11 @@ START_DELAY=0
BYPASS_CACHE=0
SYNC_TIME=0
--test -f "$sysconfdir"/sysconfig/libvirt-guests &&
-- . "$sysconfdir"/sysconfig/libvirt-guests
+-test -f "$initconfdir"/libvirt-guests &&
+- . "$initconfdir"/libvirt-guests
+test -f "$sysconfdir"/libvirt/libvirt-guests.conf &&
+ . "$sysconfdir"/libvirt/libvirt-guests.conf
@@ -31,5 +28,5 @@ index a881f6266e..79d38b3e9a 100644
RETVAL=0
--
-2.24.1
+2.39.3
diff --git a/app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch b/app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch
new file mode 100644
index 000000000000..2ffe279e74b0
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-9.6.0-fix-paths-for-apparmor.patch
@@ -0,0 +1,97 @@
+From 4927c28a30fe469b512b49346f321661ca865769 Mon Sep 17 00:00:00 2001
+Message-ID: <4927c28a30fe469b512b49346f321661ca865769.1689058931.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Tue, 15 Mar 2022 05:23:29 +0100
+Subject: [PATCH] libvirt-9.5.0-fix-paths-for-apparmor.patch
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/security/apparmor/libvirt-qemu.in | 1 +
+ src/security/apparmor/meson.build | 6 +++---
+ src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local | 1 -
+ ...t-aa-helper.in => usr.libexec.libvirt.virt-aa-helper.in} | 6 +++---
+ .../apparmor/usr.libexec.libvirt.virt-aa-helper.local | 1 +
+ 5 files changed, 8 insertions(+), 7 deletions(-)
+ delete mode 100644 src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local
+ rename src/security/apparmor/{usr.lib.libvirt.virt-aa-helper.in => usr.libexec.libvirt.virt-aa-helper.in} (92%)
+ create mode 100644 src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local
+
+diff --git a/src/security/apparmor/libvirt-qemu.in b/src/security/apparmor/libvirt-qemu.in
+index 53f45c3a28..7882e811fc 100644
+--- a/src/security/apparmor/libvirt-qemu.in
++++ b/src/security/apparmor/libvirt-qemu.in
+@@ -96,6 +96,7 @@
+ /usr/share/sgabios/** r,
+ /usr/share/slof/** r,
+ /usr/share/vgabios/** r,
++ /usr/share/seavgabios/** r,
+
+ # pki for libvirt-vnc and libvirt-spice (LP: #901272, #1690140)
+ /etc/pki/CA/ r,
+diff --git a/src/security/apparmor/meson.build b/src/security/apparmor/meson.build
+index b9257c816d..c1b79fef27 100644
+--- a/src/security/apparmor/meson.build
++++ b/src/security/apparmor/meson.build
+@@ -1,5 +1,5 @@
+ apparmor_gen_profiles = [
+- 'usr.lib.libvirt.virt-aa-helper',
++ 'usr.libexec.libvirt.virt-aa-helper',
+ 'usr.sbin.libvirtd',
+ 'usr.sbin.virtqemud',
+ 'usr.sbin.virtxend',
+@@ -82,8 +82,8 @@ if not conf.has('WITH_APPARMOR_3')
+ # AppArmor 3.x, upstream's preference is to avoid creating these
+ # files in order to limit the amount of filesystem clutter.
+ install_data(
+- 'usr.lib.libvirt.virt-aa-helper.local',
++ 'usr.libexec.libvirt.virt-aa-helper.local',
+ install_dir: apparmor_dir / 'local',
+- rename: 'usr.lib.libvirt.virt-aa-helper',
++ rename: 'usr.libexec.libvirt.virt-aa-helper',
+ )
+ endif
+diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local
+deleted file mode 100644
+index c0990e51d0..0000000000
+--- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.local
++++ /dev/null
+@@ -1 +0,0 @@
+-# Site-specific additions and overrides for 'usr.lib.libvirt.virt-aa-helper'
+diff --git a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
+similarity index 92%
+rename from src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
+rename to src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
+index 26ee20a17d..38fd3bfb88 100644
+--- a/src/security/apparmor/usr.lib.libvirt.virt-aa-helper.in
++++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.in
+@@ -41,7 +41,7 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper {
+ deny /dev/mapper/* r,
+
+ @libexecdir@/virt-aa-helper mr,
+- /{usr/,}sbin/apparmor_parser Ux,
++ /{usr/,}{s,}bin/apparmor_parser Ux,
+
+ @sysconfdir@/apparmor.d/libvirt/* r,
+ @sysconfdir@/apparmor.d/libvirt/libvirt-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]*-[0-9a-f]* rw,
+@@ -72,9 +72,9 @@ profile virt-aa-helper @libexecdir@/virt-aa-helper {
+ /**/disk{,.*} r,
+
+ @BEGIN_APPARMOR_3@
+- include if exists <local/usr.lib.libvirt.virt-aa-helper>
++ include if exists <local/usr.libexec.libvirt.virt-aa-helper>
+ @END_APPARMOR_3@
+ @BEGIN_APPARMOR_2@
+- #include <local/usr.lib.libvirt.virt-aa-helper>
++ #include <local/usr.libexec.libvirt.virt-aa-helper>
+ @END_APPARMOR_2@
+ }
+diff --git a/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local
+new file mode 100644
+index 0000000000..974653d797
+--- /dev/null
++++ b/src/security/apparmor/usr.libexec.libvirt.virt-aa-helper.local
+@@ -0,0 +1 @@
++# Site-specific additions and overrides for 'usr.libexec.libvirt.virt-aa-helper'
+--
+2.41.0
+
diff --git a/app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch b/app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch
new file mode 100644
index 000000000000..debca8c80146
--- /dev/null
+++ b/app-emulation/libvirt/files/libvirt-9.9.0-do-not-use-sysconfig.patch
@@ -0,0 +1,79 @@
+From bdc0f6b9c91615c601ea3a625220097f5cb0eeb0 Mon Sep 17 00:00:00 2001
+Message-ID: <bdc0f6b9c91615c601ea3a625220097f5cb0eeb0.1696413637.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Wed, 2 Mar 2022 10:01:04 +0100
+Subject: [PATCH] libvirt-9.9.0-do-not-use-sysconfig.patch
+
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ src/locking/virtlockd.service.in | 1 -
+ src/logging/virtlogd.service.in | 1 -
+ src/remote/libvirtd.service.in | 1 -
+ src/virtd.service.in | 1 -
+ tools/libvirt-guests.service.in | 2 +-
+ 5 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/src/locking/virtlockd.service.in b/src/locking/virtlockd.service.in
+index ce00b6def9..9dee9189db 100644
+--- a/src/locking/virtlockd.service.in
++++ b/src/locking/virtlockd.service.in
+@@ -10,7 +10,6 @@ After=virtlockd-admin.socket
+ [Service]
+ Type=notify
+ Environment=VIRTLOCKD_ARGS=
+-EnvironmentFile=-@initconfdir@/virtlockd
+ ExecStart=@sbindir@/virtlockd $VIRTLOCKD_ARGS
+ ExecReload=/bin/kill -USR1 $MAINPID
+ # Losing the locks is a really bad thing that will
+diff --git a/src/logging/virtlogd.service.in b/src/logging/virtlogd.service.in
+index 52c9e5bb9e..90c63f0483 100644
+--- a/src/logging/virtlogd.service.in
++++ b/src/logging/virtlogd.service.in
+@@ -10,7 +10,6 @@ After=virtlogd-admin.socket
+ [Service]
+ Type=notify
+ Environment=VIRTLOGD_ARGS=
+-EnvironmentFile=-@initconfdir@/virtlogd
+ ExecStart=@sbindir@/virtlogd $VIRTLOGD_ARGS
+ ExecReload=/bin/kill -USR1 $MAINPID
+ # Losing the logs is a really bad thing that will
+diff --git a/src/remote/libvirtd.service.in b/src/remote/libvirtd.service.in
+index 24a6712b75..e4b4a189e1 100644
+--- a/src/remote/libvirtd.service.in
++++ b/src/remote/libvirtd.service.in
+@@ -28,7 +28,6 @@ Conflicts=xendomains.service
+ [Service]
+ Type=notify
+ Environment=LIBVIRTD_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/libvirtd
+ ExecStart=@sbindir@/libvirtd $LIBVIRTD_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ KillMode=process
+diff --git a/src/virtd.service.in b/src/virtd.service.in
+index 651a8d82d7..b87c7e0553 100644
+--- a/src/virtd.service.in
++++ b/src/virtd.service.in
+@@ -17,7 +17,6 @@ After=apparmor.service
+ [Service]
+ Type=notify
+ Environment=@SERVICE@_ARGS="--timeout 120"
+-EnvironmentFile=-@initconfdir@/@service@
+ ExecStart=@sbindir@/@service@ $@SERVICE@_ARGS
+ ExecReload=/bin/kill -HUP $MAINPID
+ Restart=on-failure
+diff --git a/tools/libvirt-guests.service.in b/tools/libvirt-guests.service.in
+index c547218f2a..f5a1a60abe 100644
+--- a/tools/libvirt-guests.service.in
++++ b/tools/libvirt-guests.service.in
+@@ -14,7 +14,7 @@ Documentation=man:libvirt-guests(8)
+ Documentation=https://libvirt.org
+
+ [Service]
+-EnvironmentFile=-@initconfdir@/libvirt-guests
++EnvironmentFile=-/etc/libvirt/libvirt-guests.conf
+ # Hack just call traditional service until we factor
+ # out the code
+ ExecStart=@libexecdir@/libvirt-guests.sh start
+--
+2.41.0
+
diff --git a/app-emulation/libvirt/files/libvirtd.init-r19 b/app-emulation/libvirt/files/libvirtd.init-r19
index 60dad6a791dc..12bd1d34fa2b 100644
--- a/app-emulation/libvirt/files/libvirtd.init-r19
+++ b/app-emulation/libvirt/files/libvirtd.init-r19
@@ -16,7 +16,7 @@ retry="${LIBVIRTD_TERMTIMEOUT}"
depend() {
need virtlogd
use ceph dbus iscsid virtlockd
- after cgconfig corosync ebtables iptables ip6tables nfs nfsmount ntp-client ntpdportmap rpc.statd sanlock xenconsoled
+ after cgconfig corosync ebtables iptables ip6tables shorewall nfs ntp-client ntpdportmap rpc.statd sanlock xenconsoled
USE_FLAG_FIREWALLD
}
diff --git a/app-emulation/libvirt/files/virtlockd.init-r2 b/app-emulation/libvirt/files/virtlockd.init-r2
index 385dc1e62319..0445b9d02261 100644
--- a/app-emulation/libvirt/files/virtlockd.init-r2
+++ b/app-emulation/libvirt/files/virtlockd.init-r2
@@ -12,7 +12,7 @@ description_reload="re-exec the daemon, while maintaining locks and clients"
depend() {
- after ntp-client ntpd nfs nfsmount corosync
+ after ntp-client ntpd nfs corosync
}
reload() {
diff --git a/app-emulation/libvirt/files/virtlogd.init-r2 b/app-emulation/libvirt/files/virtlogd.init-r2
index 442dcb8de48c..abc293e13ae5 100644
--- a/app-emulation/libvirt/files/virtlogd.init-r2
+++ b/app-emulation/libvirt/files/virtlogd.init-r2
@@ -12,7 +12,7 @@ description_reload="re-exec the daemon, while maintaining open connections"
depend() {
- after ntp-client ntpd nfs nfsmount corosync
+ after ntp-client ntpd nfs corosync
}
reload() {
diff --git a/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild b/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild
new file mode 100644
index 000000000000..baf260598704
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-10.0.0-r2.ebuild
@@ -0,0 +1,367 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{9..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
+ "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
+)
+
+pkg_setup() {
+ # Check kernel configuration:
+ CONFIG_CHECK=""
+ use fuse && CONFIG_CHECK+="
+ ~FUSE_FS"
+
+ use lvm && CONFIG_CHECK+="
+ ~BLK_DEV_DM
+ ~DM_MULTIPATH
+ ~DM_SNAPSHOT"
+
+ use lxc && CONFIG_CHECK+="
+ ~BLK_CGROUP
+ ~CGROUP_CPUACCT
+ ~CGROUP_DEVICE
+ ~CGROUP_FREEZER
+ ~CGROUP_NET_PRIO
+ ~CGROUP_PERF
+ ~CGROUPS
+ ~CGROUP_SCHED
+ ~CPUSETS
+ ~IPC_NS
+ ~MACVLAN
+ ~NAMESPACES
+ ~NET_CLS_CGROUP
+ ~NET_NS
+ ~PID_NS
+ ~POSIX_MQUEUE
+ ~SECURITYFS
+ ~USER_NS
+ ~UTS_NS
+ ~VETH
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS"
+
+ kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES"
+
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_MARK_T
+ ~BRIDGE_NF_EBTABLES
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MARK
+ ~NETFILTER_XT_TARGET_CHECKSUM
+ ~IP_NF_FILTER
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP6_NF_FILTER
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
+ # Bandwidth Limiting Support
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_T_NAT
+ ~IP_NF_TARGET_REJECT
+ ~NET_ACT_POLICE
+ ~NET_CLS_FW
+ ~NET_CLS_U32
+ ~NET_SCH_HTB
+ ~NET_SCH_INGRESS
+ ~NET_SCH_SFQ"
+
+ ERROR_USER_NS="Optional depending on LXC configuration."
+
+ if [[ -n ${CONFIG_CHECK} ]]; then
+ linux-info_pkg_setup
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ touch "${S}/.mailmap" || die
+
+ default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
+ # Tweak the init script:
+ cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
+ sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
+ -i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature apparmor)
+ $(meson_feature apparmor apparmor_profiles)
+ $(meson_feature audit)
+ $(meson_feature caps capng)
+ $(meson_feature dtrace)
+ $(meson_feature firewalld)
+ $(meson_feature fuse)
+ $(meson_feature glusterfs)
+ $(meson_feature glusterfs storage_gluster)
+ $(meson_feature iscsi storage_iscsi)
+ $(meson_feature iscsi-direct storage_iscsi_direct)
+ $(meson_feature libvirtd driver_libvirtd)
+ $(meson_feature libssh)
+ $(meson_feature libssh2)
+ $(meson_feature lvm storage_lvm)
+ $(meson_feature lvm storage_mpath)
+ $(meson_feature lxc driver_lxc)
+ $(meson_feature nbd nbdkit)
+ $(meson_feature nls)
+ $(meson_feature numa numactl)
+ $(meson_feature numa numad)
+ $(meson_feature openvz driver_openvz)
+ $(meson_feature parted storage_disk)
+ $(meson_feature pcap libpcap)
+ $(meson_feature policykit polkit)
+ $(meson_feature qemu driver_qemu)
+ $(meson_feature qemu yajl)
+ $(meson_feature rbd storage_rbd)
+ $(meson_feature sasl)
+ $(meson_feature selinux)
+ $(meson_feature test tests)
+ $(meson_feature udev)
+ $(meson_feature virt-network driver_network)
+ $(meson_feature virtualbox driver_vbox)
+ $(meson_feature wireshark-plugins wireshark_dissector)
+ $(meson_feature xen driver_libxl)
+ $(meson_feature zfs storage_zfs)
+
+ -Dnetcf=disabled
+ -Dsanlock=disabled
+ -Dopenwsman=disabled
+
+ -Ddriver_esx=enabled
+ -Dinit_script=systemd
+ -Dqemu_user=$(usex caps qemu root)
+ -Dqemu_group=$(usex caps qemu root)
+ -Ddriver_remote=enabled
+ -Dstorage_fs=enabled
+ -Ddriver_vmware=enabled
+
+ --localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
+ -Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ export VIR_TEST_DEBUG=1
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
+}
+
+src_install() {
+ meson_src_install
+
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+ newinitd "${S}/libvirtd.init" libvirtd
+ newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+ newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+ newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+ touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+ fi
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+ tmpfiles_process libvirtd.conf
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/libvirt/libvirt-6.7.0.ebuild b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild
index 0133c49ee602..128f76475972 100644
--- a/app-emulation/libvirt/libvirt-6.7.0.ebuild
+++ b/app-emulation/libvirt/libvirt-10.1.0-r1.ebuild
@@ -1,88 +1,96 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9} )
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
-inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
if [[ ${PV} = *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
- SRC_URI=""
- SLOT="0"
+ EGIT_BRANCH="master"
else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="amd64 ~arm64 ~ppc64 x86"
- SLOT="0/${PV}"
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="https://www.libvirt.org/"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
IUSE="
- apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
- iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
- parted pcap policykit +qemu rbd sasl selinux +udev +vepa
- virtualbox virt-network wireshark-plugins xen zfs
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
"
+RESTRICT="!test? ( test )"
REQUIRED_USE="
firewalld? ( virt-network )
libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
lxc? ( caps libvirtd )
openvz? ( libvirtd )
- policykit? ( dbus )
qemu? ( libvirtd )
- vepa? ( macvtap )
virt-network? ( libvirtd )
virtualbox? ( libvirtd )
xen? ( libvirtd )"
BDEPEND="
- acct-user/qemu
- policykit? ( acct-group/libvirt )
app-text/xhtml1
dev-lang/perl
dev-libs/libxslt
dev-perl/XML-XPath
dev-python/docutils
- virtual/pkgconfig"
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
# gettext.sh command is used by the libvirt command wrappers, and it's
# non-optional, so put it into RDEPEND.
# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
# package will use 3 by default. Since we don't have slot pinning in an API,
-# we must go with the most recent
+# we must go with the most recent.
RDEPEND="
+ acct-user/qemu
app-misc/scrub
- >=dev-libs/glib-2.48.0
- dev-libs/libgcrypt:0
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
+ >=dev-libs/libxml2-2.9.1
>=net-analyzer/openbsd-netcat-1.105-r1
- >=net-libs/gnutls-1.0.25:0=
- net-libs/libssh2
- net-libs/libtirpc
- net-libs/rpcsvc-proto
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
>=net-misc/curl-7.18.0
+ sys-apps/dbus
sys-apps/dmidecode
sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
+ >=sys-libs/readline-7.0:=
+ virtual/acl
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- dtrace? ( dev-util/systemtap )
+ dtrace? ( dev-debug/systemtap )
firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( sys-fs/fuse:0= )
+ fuse? ( sys-fs/fuse:= )
glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
nfs? ( net-fs/nfs-utils )
numa? (
>sys-process/numactl-2.0.2
@@ -90,44 +98,56 @@ RDEPEND="
)
parted? (
>=sys-block/parted-1.8[device-mapper]
- sys-fs/lvm2[-device-mapper-only(-)]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
)
- pcap? ( >=net-libs/libpcap-1.0.0 )
- policykit? ( >=sys-auth/polkit-0.9 )
qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
selinux? ( >=sys-libs/libselinux-2.0.85 )
virt-network? (
- net-dns/dnsmasq[script]
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
net-misc/radvd
sys-apps/iproute2[-minimal]
)
- wireshark-plugins? ( net-analyzer/wireshark:= )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
xen? (
- >=app-emulation/xen-4.6.0
+ >=app-emulation/xen-4.9.0
app-emulation/xen-tools:=
)
udev? (
- virtual/libudev
+ virtual/libudev:=
>=x11-libs/libpciaccess-0.10.9
)
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${BDEPEND}
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
${RDEPEND}
- ${PYTHON_DEPS}"
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch
- "${FILESDIR}"/${PN}-6.7.0-doc-path.patch
- "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
)
pkg_setup() {
@@ -171,9 +191,6 @@ pkg_setup() {
kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
~DEVPTS_MULTIPLE_INSTANCES"
- use macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_MARK_T
~BRIDGE_NF_EBTABLES
@@ -184,10 +201,21 @@ pkg_setup() {
~IP_NF_FILTER
~IP_NF_MANGLE
~IP_NF_NAT
- ~IP_NF_TARGET_MASQUERADE
~IP6_NF_FILTER
~IP6_NF_MANGLE
~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
# Bandwidth Limiting Support
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_T_NAT
@@ -199,24 +227,25 @@ pkg_setup() {
~NET_SCH_INGRESS
~NET_SCH_SFQ"
- # Handle specific kernel versions for different features
- kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR"
- if kernel_is ge 3 6; then
- CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP "
- kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM "
- fi
-
ERROR_USER_NS="Optional depending on LXC configuration."
if [[ -n ${CONFIG_CHECK} ]]; then
linux-info_pkg_setup
fi
+
+ python-any-r1_pkg_setup
}
src_prepare() {
touch "${S}/.mailmap" || die
default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
# Tweak the init script:
cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
@@ -227,10 +256,9 @@ src_prepare() {
src_configure() {
local emesonargs=(
$(meson_feature apparmor)
- $(meson_use apparmor apparmor_profiles)
+ $(meson_feature apparmor apparmor_profiles)
$(meson_feature audit)
$(meson_feature caps capng)
- $(meson_feature dbus)
$(meson_feature dtrace)
$(meson_feature firewalld)
$(meson_feature fuse)
@@ -240,10 +268,11 @@ src_configure() {
$(meson_feature iscsi-direct storage_iscsi_direct)
$(meson_feature libvirtd driver_libvirtd)
$(meson_feature libssh)
+ $(meson_feature libssh2)
$(meson_feature lvm storage_lvm)
$(meson_feature lvm storage_mpath)
$(meson_feature lxc driver_lxc)
- $(meson_feature macvtap)
+ $(meson_feature nbd nbdkit)
$(meson_feature nls)
$(meson_feature numa numactl)
$(meson_feature numa numad)
@@ -256,17 +285,17 @@ src_configure() {
$(meson_feature rbd storage_rbd)
$(meson_feature sasl)
$(meson_feature selinux)
+ $(meson_feature test tests)
$(meson_feature udev)
- $(meson_feature vepa virtualport)
$(meson_feature virt-network driver_network)
$(meson_feature virtualbox driver_vbox)
$(meson_feature wireshark-plugins wireshark_dissector)
$(meson_feature xen driver_libxl)
$(meson_feature zfs storage_zfs)
- -Dhal=disabled
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -277,40 +306,40 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
meson_src_configure
}
src_test() {
- # remove problematic tests, bug #591416, bug #591418
- sed -i -e 's#commandtest$(EXEEXT) # #' \
- -e 's#virfirewalltest$(EXEEXT) # #' \
- -e 's#nwfilterebiptablestest$(EXEEXT) # #' \
- -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \
- tests/Makefile
-
export VIR_TEST_DEBUG=1
- meson_src_test
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
}
src_install() {
meson_src_install
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- rm -rf "${D}"/etc/sysconfig || die
- rm -rf "${D}"/var || die
- rm -rf "${D}"/run || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
use libvirtd || return 0
# From here, only libvirtd-related instructions, be warned!
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
newinitd "${S}/libvirtd.init" libvirtd
newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
@@ -325,13 +354,6 @@ src_install() {
readme.gentoo_create_doc
}
-pkg_preinst() {
- # we only ever want to generate this once
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml || die
- fi
-}
-
pkg_postinst() {
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
@@ -339,6 +361,6 @@ pkg_postinst() {
use libvirtd || return 0
# From here, only libvirtd-related instructions, be warned!
-
+ tmpfiles_process libvirtd.conf
readme.gentoo_print_elog
}
diff --git a/app-emulation/libvirt/libvirt-6.8.0.ebuild b/app-emulation/libvirt/libvirt-10.2.0.ebuild
index 0ac6ec64febf..f1c08714d713 100644
--- a/app-emulation/libvirt/libvirt-6.8.0.ebuild
+++ b/app-emulation/libvirt/libvirt-10.2.0.ebuild
@@ -1,88 +1,96 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9} )
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
-inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
if [[ ${PV} = *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
- SRC_URI=""
- SLOT="0"
+ EGIT_BRANCH="master"
else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
- SLOT="0/${PV}"
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="https://www.libvirt.org/"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
IUSE="
- apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
- iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
- parted pcap policykit +qemu rbd sasl selinux +udev +vepa
- virtualbox virt-network wireshark-plugins xen zfs
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
"
+RESTRICT="!test? ( test )"
REQUIRED_USE="
firewalld? ( virt-network )
libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
lxc? ( caps libvirtd )
openvz? ( libvirtd )
- policykit? ( dbus )
qemu? ( libvirtd )
- vepa? ( macvtap )
virt-network? ( libvirtd )
virtualbox? ( libvirtd )
xen? ( libvirtd )"
BDEPEND="
- acct-user/qemu
- policykit? ( acct-group/libvirt )
app-text/xhtml1
dev-lang/perl
dev-libs/libxslt
dev-perl/XML-XPath
dev-python/docutils
- virtual/pkgconfig"
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
# gettext.sh command is used by the libvirt command wrappers, and it's
# non-optional, so put it into RDEPEND.
# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
# package will use 3 by default. Since we don't have slot pinning in an API,
-# we must go with the most recent
+# we must go with the most recent.
RDEPEND="
+ acct-user/qemu
app-misc/scrub
- >=dev-libs/glib-2.48.0
- dev-libs/libgcrypt:0
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
+ >=dev-libs/libxml2-2.9.1
>=net-analyzer/openbsd-netcat-1.105-r1
- >=net-libs/gnutls-1.0.25:0=
- net-libs/libssh2
- net-libs/libtirpc
- net-libs/rpcsvc-proto
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
>=net-misc/curl-7.18.0
+ sys-apps/dbus
sys-apps/dmidecode
sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
+ >=sys-libs/readline-7.0:=
+ virtual/acl
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- dtrace? ( dev-util/systemtap )
+ dtrace? ( dev-debug/systemtap )
firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( sys-fs/fuse:0= )
+ fuse? ( sys-fs/fuse:= )
glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
nfs? ( net-fs/nfs-utils )
numa? (
>sys-process/numactl-2.0.2
@@ -90,44 +98,55 @@ RDEPEND="
)
parted? (
>=sys-block/parted-1.8[device-mapper]
- sys-fs/lvm2[-device-mapper-only(-)]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
)
- pcap? ( >=net-libs/libpcap-1.0.0 )
- policykit? ( >=sys-auth/polkit-0.9 )
qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
selinux? ( >=sys-libs/libselinux-2.0.85 )
virt-network? (
- net-dns/dnsmasq[script]
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
net-misc/radvd
sys-apps/iproute2[-minimal]
)
- wireshark-plugins? ( net-analyzer/wireshark:= )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
xen? (
- >=app-emulation/xen-4.6.0
+ >=app-emulation/xen-4.9.0
app-emulation/xen-tools:=
)
udev? (
- virtual/libudev
+ virtual/libudev:=
>=x11-libs/libpciaccess-0.10.9
)
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${BDEPEND}
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
${RDEPEND}
- ${PYTHON_DEPS}"
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch
- "${FILESDIR}"/${PN}-6.7.0-do-not-use-sysconfig.patch
- "${FILESDIR}"/${PN}-6.7.0-doc-path.patch
- "${FILESDIR}"/${PN}-6.7.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
)
pkg_setup() {
@@ -171,9 +190,6 @@ pkg_setup() {
kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
~DEVPTS_MULTIPLE_INSTANCES"
- use macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_MARK_T
~BRIDGE_NF_EBTABLES
@@ -184,10 +200,21 @@ pkg_setup() {
~IP_NF_FILTER
~IP_NF_MANGLE
~IP_NF_NAT
- ~IP_NF_TARGET_MASQUERADE
~IP6_NF_FILTER
~IP6_NF_MANGLE
~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
# Bandwidth Limiting Support
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_T_NAT
@@ -199,24 +226,25 @@ pkg_setup() {
~NET_SCH_INGRESS
~NET_SCH_SFQ"
- # Handle specific kernel versions for different features
- kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR"
- if kernel_is ge 3 6; then
- CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP "
- kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM "
- fi
-
ERROR_USER_NS="Optional depending on LXC configuration."
if [[ -n ${CONFIG_CHECK} ]]; then
linux-info_pkg_setup
fi
+
+ python-any-r1_pkg_setup
}
src_prepare() {
touch "${S}/.mailmap" || die
default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
# Tweak the init script:
cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
@@ -227,10 +255,9 @@ src_prepare() {
src_configure() {
local emesonargs=(
$(meson_feature apparmor)
- $(meson_use apparmor apparmor_profiles)
+ $(meson_feature apparmor apparmor_profiles)
$(meson_feature audit)
$(meson_feature caps capng)
- $(meson_feature dbus)
$(meson_feature dtrace)
$(meson_feature firewalld)
$(meson_feature fuse)
@@ -240,10 +267,11 @@ src_configure() {
$(meson_feature iscsi-direct storage_iscsi_direct)
$(meson_feature libvirtd driver_libvirtd)
$(meson_feature libssh)
+ $(meson_feature libssh2)
$(meson_feature lvm storage_lvm)
$(meson_feature lvm storage_mpath)
$(meson_feature lxc driver_lxc)
- $(meson_feature macvtap)
+ $(meson_feature nbd nbdkit)
$(meson_feature nls)
$(meson_feature numa numactl)
$(meson_feature numa numad)
@@ -256,17 +284,17 @@ src_configure() {
$(meson_feature rbd storage_rbd)
$(meson_feature sasl)
$(meson_feature selinux)
+ $(meson_feature test tests)
$(meson_feature udev)
- $(meson_feature vepa virtualport)
$(meson_feature virt-network driver_network)
$(meson_feature virtualbox driver_vbox)
$(meson_feature wireshark-plugins wireshark_dissector)
$(meson_feature xen driver_libxl)
$(meson_feature zfs storage_zfs)
- -Dhal=disabled
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -277,40 +305,40 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
meson_src_configure
}
src_test() {
- # remove problematic tests, bug #591416, bug #591418
- sed -i -e 's#commandtest$(EXEEXT) # #' \
- -e 's#virfirewalltest$(EXEEXT) # #' \
- -e 's#nwfilterebiptablestest$(EXEEXT) # #' \
- -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \
- tests/Makefile
-
export VIR_TEST_DEBUG=1
- meson_src_test
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
}
src_install() {
meson_src_install
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- rm -rf "${D}"/etc/sysconfig || die
- rm -rf "${D}"/var || die
- rm -rf "${D}"/run || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
use libvirtd || return 0
# From here, only libvirtd-related instructions, be warned!
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
newinitd "${S}/libvirtd.init" libvirtd
newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
@@ -325,13 +353,6 @@ src_install() {
readme.gentoo_create_doc
}
-pkg_preinst() {
- # we only ever want to generate this once
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml || die
- fi
-}
-
pkg_postinst() {
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
@@ -339,6 +360,6 @@ pkg_postinst() {
use libvirtd || return 0
# From here, only libvirtd-related instructions, be warned!
-
+ tmpfiles_process libvirtd.conf
readme.gentoo_print_elog
}
diff --git a/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild b/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild
new file mode 100644
index 000000000000..500ab7f572ad
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-9.8.0-r2.ebuild
@@ -0,0 +1,366 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="amd64 ~arm arm64 ppc64 x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nfs nls numa openvz
+ parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ net-libs/rpcsvc-proto
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.4.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch
+ "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
+ "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
+)
+
+pkg_setup() {
+ # Check kernel configuration:
+ CONFIG_CHECK=""
+ use fuse && CONFIG_CHECK+="
+ ~FUSE_FS"
+
+ use lvm && CONFIG_CHECK+="
+ ~BLK_DEV_DM
+ ~DM_MULTIPATH
+ ~DM_SNAPSHOT"
+
+ use lxc && CONFIG_CHECK+="
+ ~BLK_CGROUP
+ ~CGROUP_CPUACCT
+ ~CGROUP_DEVICE
+ ~CGROUP_FREEZER
+ ~CGROUP_NET_PRIO
+ ~CGROUP_PERF
+ ~CGROUPS
+ ~CGROUP_SCHED
+ ~CPUSETS
+ ~IPC_NS
+ ~MACVLAN
+ ~NAMESPACES
+ ~NET_CLS_CGROUP
+ ~NET_NS
+ ~PID_NS
+ ~POSIX_MQUEUE
+ ~SECURITYFS
+ ~USER_NS
+ ~UTS_NS
+ ~VETH
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS"
+
+ kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES"
+
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_MARK_T
+ ~BRIDGE_NF_EBTABLES
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MARK
+ ~NETFILTER_XT_TARGET_CHECKSUM
+ ~IP_NF_FILTER
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP6_NF_FILTER
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
+ # Bandwidth Limiting Support
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_T_NAT
+ ~IP_NF_TARGET_REJECT
+ ~NET_ACT_POLICE
+ ~NET_CLS_FW
+ ~NET_CLS_U32
+ ~NET_SCH_HTB
+ ~NET_SCH_INGRESS
+ ~NET_SCH_SFQ"
+
+ ERROR_USER_NS="Optional depending on LXC configuration."
+
+ if [[ -n ${CONFIG_CHECK} ]]; then
+ linux-info_pkg_setup
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ touch "${S}/.mailmap" || die
+
+ default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
+ # Tweak the init script:
+ cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
+ sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
+ -i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature apparmor)
+ $(meson_feature apparmor apparmor_profiles)
+ $(meson_feature audit)
+ $(meson_feature caps capng)
+ $(meson_feature dtrace)
+ $(meson_feature firewalld)
+ $(meson_feature fuse)
+ $(meson_feature glusterfs)
+ $(meson_feature glusterfs storage_gluster)
+ $(meson_feature iscsi storage_iscsi)
+ $(meson_feature iscsi-direct storage_iscsi_direct)
+ $(meson_feature libvirtd driver_libvirtd)
+ $(meson_feature libssh)
+ $(meson_feature libssh2)
+ $(meson_feature lvm storage_lvm)
+ $(meson_feature lvm storage_mpath)
+ $(meson_feature lxc driver_lxc)
+ $(meson_feature nls)
+ $(meson_feature numa numactl)
+ $(meson_feature numa numad)
+ $(meson_feature openvz driver_openvz)
+ $(meson_feature parted storage_disk)
+ $(meson_feature pcap libpcap)
+ $(meson_feature policykit polkit)
+ $(meson_feature qemu driver_qemu)
+ $(meson_feature qemu yajl)
+ $(meson_feature rbd storage_rbd)
+ $(meson_feature sasl)
+ $(meson_feature selinux)
+ $(meson_feature test tests)
+ $(meson_feature udev)
+ $(meson_feature virt-network driver_network)
+ $(meson_feature virtualbox driver_vbox)
+ $(meson_feature wireshark-plugins wireshark_dissector)
+ $(meson_feature xen driver_libxl)
+ $(meson_feature zfs storage_zfs)
+
+ -Dnetcf=disabled
+ -Dsanlock=disabled
+ -Dopenwsman=disabled
+
+ -Ddriver_esx=enabled
+ -Dinit_script=systemd
+ -Dqemu_user=$(usex caps qemu root)
+ -Dqemu_group=$(usex caps qemu root)
+ -Ddriver_remote=enabled
+ -Dstorage_fs=enabled
+ -Ddriver_vmware=enabled
+
+ --localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
+ -Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ export VIR_TEST_DEBUG=1
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
+}
+
+src_install() {
+ meson_src_install
+
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+ newinitd "${S}/libvirtd.init" libvirtd
+ newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+ newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+ newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+ touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+ fi
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+ tmpfiles_process libvirtd.conf
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/libvirt/libvirt-9.9.0-r2.ebuild b/app-emulation/libvirt/libvirt-9.9.0-r2.ebuild
new file mode 100644
index 000000000000..684c0dc7afe2
--- /dev/null
+++ b/app-emulation/libvirt/libvirt-9.9.0-r2.ebuild
@@ -0,0 +1,367 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
+
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
+ EGIT_BRANCH="master"
+else
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+fi
+
+DESCRIPTION="C toolkit to manipulate virtual machines"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
+LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
+IUSE="
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nfs nls numa openvz
+ parted pcap policykit +qemu rbd sasl selinux test +udev virtiofsd
+ virtualbox +virt-network wireshark-plugins xen zfs
+"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ firewalld? ( virt-network )
+ libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
+ lxc? ( caps libvirtd )
+ openvz? ( libvirtd )
+ qemu? ( libvirtd )
+ virt-network? ( libvirtd )
+ virtualbox? ( libvirtd )
+ xen? ( libvirtd )"
+
+BDEPEND="
+ app-text/xhtml1
+ dev-lang/perl
+ dev-libs/libxslt
+ dev-perl/XML-XPath
+ dev-python/docutils
+ virtual/pkgconfig
+ net-libs/rpcsvc-proto
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
+
+# gettext.sh command is used by the libvirt command wrappers, and it's
+# non-optional, so put it into RDEPEND.
+# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
+# package will use 3 by default. Since we don't have slot pinning in an API,
+# we must go with the most recent.
+RDEPEND="
+ acct-user/qemu
+ app-misc/scrub
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
+ dev-libs/libnl:3
+ >=dev-libs/libxml2-2.9.1
+ >=net-analyzer/openbsd-netcat-1.105-r1
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
+ >=net-misc/curl-7.18.0
+ sys-apps/dbus
+ sys-apps/dmidecode
+ sys-devel/gettext
+ >=sys-libs/readline-7.0:=
+ virtual/acl
+ apparmor? ( sys-libs/libapparmor )
+ audit? ( sys-process/audit )
+ caps? ( sys-libs/libcap-ng )
+ dtrace? ( dev-debug/systemtap )
+ firewalld? ( >=net-firewall/firewalld-0.6.3 )
+ fuse? ( sys-fs/fuse:= )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
+ iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nfs? ( net-fs/nfs-utils )
+ numa? (
+ >sys-process/numactl-2.0.2
+ sys-process/numad
+ )
+ parted? (
+ >=sys-block/parted-1.8[device-mapper]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
+ )
+ qemu? (
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
+ )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
+ selinux? ( >=sys-libs/libselinux-2.0.85 )
+ virt-network? (
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
+ net-firewall/ebtables
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
+ net-misc/radvd
+ sys-apps/iproute2[-minimal]
+ )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
+ xen? (
+ >=app-emulation/xen-4.9.0
+ app-emulation/xen-tools:=
+ )
+ udev? (
+ virtual/libudev:=
+ >=x11-libs/libpciaccess-0.10.9
+ )
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
+ ${RDEPEND}
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
+ "${FILESDIR}"/${PN}-9.10.0-virxml-include-libxml-xmlsave.h-for-xmlIndentTreeOut.patch
+ "${FILESDIR}"/${PN}-10.1.0-Fix-off-by-one-error-in-udevListInterfacesByStatus.patch
+ "${FILESDIR}"/${PN}-10.2.0-remote-check-for-negative-array-lengths-before-alloc.patch
+)
+
+pkg_setup() {
+ # Check kernel configuration:
+ CONFIG_CHECK=""
+ use fuse && CONFIG_CHECK+="
+ ~FUSE_FS"
+
+ use lvm && CONFIG_CHECK+="
+ ~BLK_DEV_DM
+ ~DM_MULTIPATH
+ ~DM_SNAPSHOT"
+
+ use lxc && CONFIG_CHECK+="
+ ~BLK_CGROUP
+ ~CGROUP_CPUACCT
+ ~CGROUP_DEVICE
+ ~CGROUP_FREEZER
+ ~CGROUP_NET_PRIO
+ ~CGROUP_PERF
+ ~CGROUPS
+ ~CGROUP_SCHED
+ ~CPUSETS
+ ~IPC_NS
+ ~MACVLAN
+ ~NAMESPACES
+ ~NET_CLS_CGROUP
+ ~NET_NS
+ ~PID_NS
+ ~POSIX_MQUEUE
+ ~SECURITYFS
+ ~USER_NS
+ ~UTS_NS
+ ~VETH
+ ~!GRKERNSEC_CHROOT_MOUNT
+ ~!GRKERNSEC_CHROOT_DOUBLE
+ ~!GRKERNSEC_CHROOT_PIVOT
+ ~!GRKERNSEC_CHROOT_CHMOD
+ ~!GRKERNSEC_CHROOT_CAPS"
+
+ kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
+ ~DEVPTS_MULTIPLE_INSTANCES"
+
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_MARK_T
+ ~BRIDGE_NF_EBTABLES
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MARK
+ ~NETFILTER_XT_TARGET_CHECKSUM
+ ~IP_NF_FILTER
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP6_NF_FILTER
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
+ # Bandwidth Limiting Support
+ use virt-network && CONFIG_CHECK+="
+ ~BRIDGE_EBT_T_NAT
+ ~IP_NF_TARGET_REJECT
+ ~NET_ACT_POLICE
+ ~NET_CLS_FW
+ ~NET_CLS_U32
+ ~NET_SCH_HTB
+ ~NET_SCH_INGRESS
+ ~NET_SCH_SFQ"
+
+ ERROR_USER_NS="Optional depending on LXC configuration."
+
+ if [[ -n ${CONFIG_CHECK} ]]; then
+ linux-info_pkg_setup
+ fi
+
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ touch "${S}/.mailmap" || die
+
+ default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
+
+ # Tweak the init script:
+ cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
+ sed -e "s/USE_FLAG_FIREWALLD/$(usex firewalld 'need firewalld' '')/" \
+ -i "${S}/libvirtd.init" || die "sed failed"
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature apparmor)
+ $(meson_feature apparmor apparmor_profiles)
+ $(meson_feature audit)
+ $(meson_feature caps capng)
+ $(meson_feature dtrace)
+ $(meson_feature firewalld)
+ $(meson_feature fuse)
+ $(meson_feature glusterfs)
+ $(meson_feature glusterfs storage_gluster)
+ $(meson_feature iscsi storage_iscsi)
+ $(meson_feature iscsi-direct storage_iscsi_direct)
+ $(meson_feature libvirtd driver_libvirtd)
+ $(meson_feature libssh)
+ $(meson_feature libssh2)
+ $(meson_feature lvm storage_lvm)
+ $(meson_feature lvm storage_mpath)
+ $(meson_feature lxc driver_lxc)
+ $(meson_feature nls)
+ $(meson_feature numa numactl)
+ $(meson_feature numa numad)
+ $(meson_feature openvz driver_openvz)
+ $(meson_feature parted storage_disk)
+ $(meson_feature pcap libpcap)
+ $(meson_feature policykit polkit)
+ $(meson_feature qemu driver_qemu)
+ $(meson_feature qemu yajl)
+ $(meson_feature rbd storage_rbd)
+ $(meson_feature sasl)
+ $(meson_feature selinux)
+ $(meson_feature test tests)
+ $(meson_feature udev)
+ $(meson_feature virt-network driver_network)
+ $(meson_feature virtualbox driver_vbox)
+ $(meson_feature wireshark-plugins wireshark_dissector)
+ $(meson_feature xen driver_libxl)
+ $(meson_feature zfs storage_zfs)
+
+ -Dnetcf=disabled
+ -Dsanlock=disabled
+ -Dopenwsman=disabled
+
+ -Ddriver_esx=enabled
+ -Dinit_script=systemd
+ -Dqemu_user=$(usex caps qemu root)
+ -Dqemu_group=$(usex caps qemu root)
+ -Ddriver_remote=enabled
+ -Dstorage_fs=enabled
+ -Ddriver_vmware=enabled
+
+ --localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
+ -Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+
+ meson_src_configure
+}
+
+src_test() {
+ export VIR_TEST_DEBUG=1
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
+}
+
+src_install() {
+ meson_src_install
+
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+
+ newinitd "${S}/libvirtd.init" libvirtd
+ newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
+ newinitd "${FILESDIR}/virtlockd.init-r2" virtlockd
+ newinitd "${FILESDIR}/virtlogd.init-r2" virtlogd
+
+ newconfd "${FILESDIR}/libvirtd.confd-r5" libvirtd
+ newconfd "${FILESDIR}/libvirt-guests.confd" libvirt-guests
+
+ DOC_CONTENTS=$(<"${FILESDIR}/README.gentoo-r3")
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
+ touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
+ fi
+
+ use libvirtd || return 0
+ # From here, only libvirtd-related instructions, be warned!
+ tmpfiles_process libvirtd.conf
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/libvirt/libvirt-9999.ebuild b/app-emulation/libvirt/libvirt-9999.ebuild
index de48572e6c52..f1c08714d713 100644
--- a/app-emulation/libvirt/libvirt-9999.ebuild
+++ b/app-emulation/libvirt/libvirt-9999.ebuild
@@ -1,88 +1,96 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9} )
+# Packages which get releases together:
+# app-emacs/nxml-libvirt-schemas
+# dev-python/libvirt-python
+# dev-perl/Sys-Virt
+# app-emulation/libvirt
+# Please bump them together!
-inherit meson bash-completion-r1 eutils linux-info python-any-r1 readme.gentoo-r1 systemd
+PYTHON_COMPAT=( python3_{10..12} )
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/libvirt.org.asc
+inherit meson linux-info python-any-r1 readme.gentoo-r1 tmpfiles verify-sig
if [[ ${PV} = *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.com/libvirt/libvirt.git"
- SRC_URI=""
- SLOT="0"
+ EGIT_BRANCH="master"
else
- SRC_URI="https://libvirt.org/sources/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
- SLOT="0/${PV}"
+ SRC_URI="https://libvirt.org/sources/${P}.tar.xz
+ verify-sig? ( https://libvirt.org/sources/${P}.tar.xz.asc )"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
fi
DESCRIPTION="C toolkit to manipulate virtual machines"
-HOMEPAGE="https://www.libvirt.org/"
+HOMEPAGE="https://www.libvirt.org/ https://gitlab.com/libvirt/libvirt/"
LICENSE="LGPL-2.1"
+SLOT="0/${PV}"
IUSE="
- apparmor audit +caps +dbus dtrace firewalld fuse glusterfs iscsi
- iscsi-direct +libvirtd lvm libssh lxc +macvtap nfs nls numa openvz
- parted pcap policykit +qemu rbd sasl selinux +udev +vepa
- virtualbox virt-network wireshark-plugins xen zfs
+ apparmor audit bash-completion +caps dtrace firewalld fuse glusterfs
+ iscsi iscsi-direct +libvirtd lvm libssh libssh2 lxc nbd nfs nls numa
+ openvz parted pcap policykit +qemu rbd sasl selinux test +udev
+ virtiofsd virtualbox +virt-network wireshark-plugins xen zfs
"
+RESTRICT="!test? ( test )"
REQUIRED_USE="
firewalld? ( virt-network )
libvirtd? ( || ( lxc openvz qemu virtualbox xen ) )
lxc? ( caps libvirtd )
openvz? ( libvirtd )
- policykit? ( dbus )
qemu? ( libvirtd )
- vepa? ( macvtap )
virt-network? ( libvirtd )
virtualbox? ( libvirtd )
xen? ( libvirtd )"
BDEPEND="
- acct-user/qemu
- policykit? ( acct-group/libvirt )
app-text/xhtml1
dev-lang/perl
dev-libs/libxslt
dev-perl/XML-XPath
dev-python/docutils
- virtual/pkgconfig"
+ virtual/pkgconfig
+ bash-completion? ( >=app-shells/bash-completion-2.0 )
+ verify-sig? ( sec-keys/openpgp-keys-libvirt )"
# gettext.sh command is used by the libvirt command wrappers, and it's
# non-optional, so put it into RDEPEND.
# We can use both libnl:1.1 and libnl:3, but if you have both installed, the
# package will use 3 by default. Since we don't have slot pinning in an API,
-# we must go with the most recent
+# we must go with the most recent.
RDEPEND="
+ acct-user/qemu
app-misc/scrub
- >=dev-libs/glib-2.48.0
- dev-libs/libgcrypt:0
+ >=dev-libs/glib-2.56.0
+ dev-libs/libgcrypt
dev-libs/libnl:3
- >=dev-libs/libxml2-2.7.6
+ >=dev-libs/libxml2-2.9.1
>=net-analyzer/openbsd-netcat-1.105-r1
- >=net-libs/gnutls-1.0.25:0=
- net-libs/libssh2
- net-libs/libtirpc
- net-libs/rpcsvc-proto
+ >=net-libs/gnutls-3.2.0:=
+ net-libs/libtirpc:=
>=net-misc/curl-7.18.0
+ sys-apps/dbus
sys-apps/dmidecode
sys-devel/gettext
- sys-libs/ncurses:0=
- sys-libs/readline:=
+ >=sys-libs/readline-7.0:=
+ virtual/acl
apparmor? ( sys-libs/libapparmor )
audit? ( sys-process/audit )
caps? ( sys-libs/libcap-ng )
- dbus? ( sys-apps/dbus )
- dtrace? ( dev-util/systemtap )
+ dtrace? ( dev-debug/systemtap )
firewalld? ( >=net-firewall/firewalld-0.6.3 )
- fuse? ( sys-fs/fuse:0= )
+ fuse? ( sys-fs/fuse:= )
glusterfs? ( >=sys-cluster/glusterfs-3.4.1 )
- iscsi? ( sys-block/open-iscsi )
+ iscsi? ( >=sys-block/open-iscsi-1.18.0 )
iscsi-direct? ( >=net-libs/libiscsi-1.18.0 )
- libssh? ( net-libs/libssh )
- lvm? ( >=sys-fs/lvm2-2.02.48-r2[-device-mapper-only(-)] )
+ libssh? ( >=net-libs/libssh-0.8.1:= )
+ libssh2? ( >=net-libs/libssh2-1.3 )
+ lvm? ( >=sys-fs/lvm2-2.02.48-r2[lvm] )
+ lxc? ( !sys-apps/systemd[cgroup-hybrid(-)] )
+ nbd? ( sys-block/nbdkit )
nfs? ( net-fs/nfs-utils )
numa? (
>sys-process/numactl-2.0.2
@@ -90,41 +98,55 @@ RDEPEND="
)
parted? (
>=sys-block/parted-1.8[device-mapper]
- sys-fs/lvm2[-device-mapper-only(-)]
+ sys-fs/lvm2[lvm]
+ )
+ pcap? ( >=net-libs/libpcap-1.8.0 )
+ policykit? (
+ acct-group/libvirt
+ >=sys-auth/polkit-0.9
)
- pcap? ( >=net-libs/libpcap-1.0.0 )
- policykit? ( >=sys-auth/polkit-0.9 )
qemu? (
- >=app-emulation/qemu-1.5.0
- dev-libs/yajl
+ >=app-emulation/qemu-4.2
+ app-crypt/swtpm
+ >=dev-libs/yajl-2.0.3:=
)
rbd? ( sys-cluster/ceph )
- sasl? ( dev-libs/cyrus-sasl )
+ sasl? ( >=dev-libs/cyrus-sasl-2.1.26 )
selinux? ( >=sys-libs/libselinux-2.0.85 )
virt-network? (
- net-dns/dnsmasq[script]
+ net-dns/dnsmasq[dhcp,ipv6(+),script]
net-firewall/ebtables
- >=net-firewall/iptables-1.4.10[ipv6]
+ >=net-firewall/iptables-1.4.10[ipv6(+)]
net-misc/radvd
sys-apps/iproute2[-minimal]
)
- wireshark-plugins? ( net-analyzer/wireshark:= )
+ virtiofsd? ( app-emulation/virtiofsd )
+ wireshark-plugins? ( >=net-analyzer/wireshark-2.6.0:= )
xen? (
- >=app-emulation/xen-4.6.0
+ >=app-emulation/xen-4.9.0
app-emulation/xen-tools:=
)
udev? (
- virtual/libudev
+ virtual/libudev:=
>=x11-libs/libpciaccess-0.10.9
)
- zfs? ( sys-fs/zfs )"
-
-DEPEND="${BDEPEND}
+ zfs? ( sys-fs/zfs )
+ kernel_linux? ( sys-apps/util-linux )"
+DEPEND="
+ ${BDEPEND}
${RDEPEND}
- ${PYTHON_DEPS}"
+ ${PYTHON_DEPS}
+"
+# The 'circular' dependency on dev-python/libvirt-python is because of
+# virt-qemu-qmp-proxy.
+PDEPEND="
+ qemu? ( dev-python/libvirt-python )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-6.0.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.4.0-fix_paths_in_libvirt-guests_sh.patch
+ "${FILESDIR}"/${PN}-9.9.0-do-not-use-sysconfig.patch
+ "${FILESDIR}"/${PN}-9.6.0-fix-paths-for-apparmor.patch
)
pkg_setup() {
@@ -168,9 +190,6 @@ pkg_setup() {
kernel_is lt 4 7 && use lxc && CONFIG_CHECK+="
~DEVPTS_MULTIPLE_INSTANCES"
- use macvtap && CONFIG_CHECK+="
- ~MACVTAP"
-
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_MARK_T
~BRIDGE_NF_EBTABLES
@@ -181,10 +200,21 @@ pkg_setup() {
~IP_NF_FILTER
~IP_NF_MANGLE
~IP_NF_NAT
- ~IP_NF_TARGET_MASQUERADE
~IP6_NF_FILTER
~IP6_NF_MANGLE
~IP6_NF_NAT"
+
+ # This was renamed in kernel commit v5.2-rc1~133^2~174^2~6
+ if use virt-network ; then
+ if kernel_is -lt 5 2 ; then
+ CONFIG_CHECK+="
+ ~IP_NF_TARGET_MASQUERADE"
+ else
+ CONFIG_CHECK+="
+ ~NETFILTER_XT_TARGET_MASQUERADE"
+ fi
+ fi
+
# Bandwidth Limiting Support
use virt-network && CONFIG_CHECK+="
~BRIDGE_EBT_T_NAT
@@ -196,24 +226,25 @@ pkg_setup() {
~NET_SCH_INGRESS
~NET_SCH_SFQ"
- # Handle specific kernel versions for different features
- kernel_is lt 3 6 && CONFIG_CHECK+=" ~CGROUP_MEM_RES_CTLR"
- if kernel_is ge 3 6; then
- CONFIG_CHECK+=" ~MEMCG ~MEMCG_SWAP "
- kernel_is lt 4 5 && CONFIG_CHECK+=" ~MEMCG_KMEM "
- fi
-
ERROR_USER_NS="Optional depending on LXC configuration."
if [[ -n ${CONFIG_CHECK} ]]; then
linux-info_pkg_setup
fi
+
+ python-any-r1_pkg_setup
}
src_prepare() {
touch "${S}/.mailmap" || die
default
+ python_fix_shebang .
+
+ # Skip fragile tests which relies on pristine environment
+ # (Breaks because of sandbox environment variables)
+ # bug #802876
+ sed -i -e "/commandtest/d" tests/meson.build || die
# Tweak the init script:
cp "${FILESDIR}/libvirtd.init-r19" "${S}/libvirtd.init" || die
@@ -224,10 +255,9 @@ src_prepare() {
src_configure() {
local emesonargs=(
$(meson_feature apparmor)
- $(meson_use apparmor apparmor_profiles)
+ $(meson_feature apparmor apparmor_profiles)
$(meson_feature audit)
$(meson_feature caps capng)
- $(meson_feature dbus)
$(meson_feature dtrace)
$(meson_feature firewalld)
$(meson_feature fuse)
@@ -237,10 +267,11 @@ src_configure() {
$(meson_feature iscsi-direct storage_iscsi_direct)
$(meson_feature libvirtd driver_libvirtd)
$(meson_feature libssh)
+ $(meson_feature libssh2)
$(meson_feature lvm storage_lvm)
$(meson_feature lvm storage_mpath)
$(meson_feature lxc driver_lxc)
- $(meson_feature macvtap)
+ $(meson_feature nbd nbdkit)
$(meson_feature nls)
$(meson_feature numa numactl)
$(meson_feature numa numad)
@@ -253,17 +284,17 @@ src_configure() {
$(meson_feature rbd storage_rbd)
$(meson_feature sasl)
$(meson_feature selinux)
+ $(meson_feature test tests)
$(meson_feature udev)
- $(meson_feature vepa virtualport)
$(meson_feature virt-network driver_network)
$(meson_feature virtualbox driver_vbox)
$(meson_feature wireshark-plugins wireshark_dissector)
$(meson_feature xen driver_libxl)
$(meson_feature zfs storage_zfs)
- -Dhal=disabled
-Dnetcf=disabled
-Dsanlock=disabled
+ -Dopenwsman=disabled
-Ddriver_esx=enabled
-Dinit_script=systemd
@@ -274,40 +305,40 @@ src_configure() {
-Ddriver_vmware=enabled
--localstatedir="${EPREFIX}/var"
+ -Dinitconfdir="${EPREFIX}/etc/systemd"
-Drunstatedir="${EPREFIX}/run"
+ -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
)
meson_src_configure
}
src_test() {
- # remove problematic tests, bug #591416, bug #591418
- sed -i -e 's#commandtest$(EXEEXT) # #' \
- -e 's#virfirewalltest$(EXEEXT) # #' \
- -e 's#nwfilterebiptablestest$(EXEEXT) # #' \
- -e 's#nwfilterxml2firewalltest$(EXEEXT)$##' \
- tests/Makefile
-
export VIR_TEST_DEBUG=1
- meson_src_test
+ # Don't run the syntax check tests, they're fragile and not relevant
+ # to us downstream anyway.
+ # We also crank up the timeout (as Fedora does) just to preempt failures
+ # on slower arches.
+ meson_src_test --no-suite syntax-check --timeout-multiplier 10
}
src_install() {
meson_src_install
- # Remove bogus, empty directories. They are either not used, or
- # libvirtd is able to create them on demand
- rm -rf "${D}"/etc/sysconfig || die
- rm -rf "${D}"/var || die
- rm -rf "${D}"/run || die
-
- newbashcomp "${S}/tools/bash-completion/vsh" virsh
- bashcomp_alias virsh virt-admin
+ # Depending on configuration option, libvirt will create some bogus
+ # directoreis. They are either not used, or libvirtd is able to create
+ # them on demand, so let's remove them.
+ #
+ # Note, we are using -f here so that rm does not fail or warn if the
+ # directory is nonexistent.
+ rm -rf "${D}"/etc/sysconfig
+ rm -rf "${D}"/var
+ rm -rf "${D}"/run
use libvirtd || return 0
# From here, only libvirtd-related instructions, be warned!
- systemd_newtmpfilesd "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
+ newtmpfiles "${FILESDIR}"/libvirtd.tmpfiles.conf libvirtd.conf
newinitd "${S}/libvirtd.init" libvirtd
newinitd "${FILESDIR}/libvirt-guests.init-r4" libvirt-guests
@@ -322,13 +353,6 @@ src_install() {
readme.gentoo_create_doc
}
-pkg_preinst() {
- # we only ever want to generate this once
- if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
- rm -rf "${D}"/etc/libvirt/qemu/networks/default.xml || die
- fi
-}
-
pkg_postinst() {
if [[ -e "${ROOT}"/etc/libvirt/qemu/networks/default.xml ]]; then
touch "${ROOT}"/etc/libvirt/qemu/networks/default.xml || die
@@ -336,6 +360,6 @@ pkg_postinst() {
use libvirtd || return 0
# From here, only libvirtd-related instructions, be warned!
-
+ tmpfiles_process libvirtd.conf
readme.gentoo_print_elog
}
diff --git a/app-emulation/libvirt/metadata.xml b/app-emulation/libvirt/metadata.xml
index 5151b9df4986..16610185fea3 100644
--- a/app-emulation/libvirt/metadata.xml
+++ b/app-emulation/libvirt/metadata.xml
@@ -1,97 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
- <email>tamiko@gentoo.org</email>
- <name>Matthias Maier</name>
-</maintainer>
-<maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
-</maintainer>
-<use>
- <!-- Pool backend flags -->
- <flag name="iscsi-direct">
- Allow using libiscsi for iSCSI storage pool backend
- </flag>
- <flag name="iscsi">
- Allow using an iSCSI remote storage server as pool for disk image storage
- </flag>
- <flag name="lvm">
- Allow using the Logical Volume Manager (<pkg>sys-fs/lvm2</pkg>) as pool for disk image
- storage
- </flag>
- <flag name="nfs">
- Allow using Network File System mounts as pool for disk image storage
- </flag>
- <flag name="parted">
- Allow using real disk partitions as pool for disk image storage, using
- <pkg>sys-block/parted</pkg> to create, resize and delete them.
- </flag>
- <flag name="rbd">
- Enable rados block device support via <pkg>sys-cluster/ceph</pkg>
- </flag>
- <!-- Virtualisation backends -->
- <flag name="lxc">
- Support management of Linux Containers virtualisation (<pkg>app-emulation/lxc</pkg>)
- </flag>
- <flag name="openvz">
- Support management of OpenVZ virtualisation (openvz-sources)
- </flag>
- <flag name="qemu">
- Support management of QEMU virtualisation (<pkg>app-emulation/qemu</pkg>)
- </flag>
- <flag name="xen">
- Support management of Xen virtualisation (<pkg>app-emulation/xen</pkg>)
- </flag>
- <flag name="virtualbox">
- Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>)
- </flag>
- <!-- Miscellaneous flags -->
- <flag name="apparmor">Enable AppArmor support</flag>
- <flag name="dtrace">Enable dtrace support via <pkg>dev-util/systemtap</pkg></flag>
- <flag name="fuse">Allow LXC to use <pkg>sys-fs/fuse</pkg> for mount
- points</flag>
- <flag name="numa">
- Use NUMA for memory segmenting via <pkg>sys-process/numactl</pkg> and
- <pkg>sys-process/numad</pkg>
- </flag>
- <flag name="libvirtd">
- Builds the libvirtd daemon as well as the client utilities instead of just the client
- utilities
- </flag>
- <flag name="libssh">
- Use <pkg>net-libs/libssh</pkg> to communicate with remote libvirtd hosts,
- for example: qemu+libssh://server/system
- </flag>
- <flag name="pcap">
- Support auto learning IP addreses for routing
- </flag>
- <flag name="macvtap">
- Support for MAC-based TAP (macvlan/macvtap). For networking instead
- of the normal TUN/TAP.
- </flag>
- <flag name="vepa">Virtual Ethernet Port Aggregator (VEPA) / 802.1Qbg
- support. Relies on macvtap support.</flag>
- <flag name="virt-network">
- Enable virtual networking (NAT) support for guests. Includes all
- the dependencies for NATed network mode. Effectively any network
- setup that relies on libvirt to setup and configure network
- interfaces on your host. This can include bridged and routed
- networks ONLY if you are allowing libvirt to create and manage
- the underlying devices for you. In some cases this requires
- enabling the 'netcf' USE flag (currently unavailable).
- </flag>
- <flag name="firewalld">DBus interface to iptables/ebtables allowing
- for better runtime management of your firewall.</flag>
- <flag name="wireshark-plugins">
- Build the <pkg>net-analyzer/wireshark</pkg> plugin for the Libvirt RPC protocol
- </flag>
- <flag name="glusterfs">
- Enable GlusterFS support via <pkg>sys-cluster/glusterfs</pkg>
- </flag>
- <flag name="zfs">
- Enable ZFS backend storage <pkg>sys-fs/zfs</pkg>
- </flag>
-</use>
+ <maintainer type="person">
+ <email>tamiko@gentoo.org</email>
+ <name>Matthias Maier</name>
+ </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>michal.privoznik@gmail.com</email>
+ <name>Michal Prívozník</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>virtualization@gentoo.org</email>
+ <name>Gentoo Virtualization Project</name>
+ </maintainer>
+ <use>
+ <!-- Pool backend flags -->
+ <flag name="iscsi-direct">
+ Allow using libiscsi for iSCSI storage pool backend
+ </flag>
+ <flag name="iscsi">
+ Allow using an iSCSI remote storage server as pool for disk image storage
+ </flag>
+ <flag name="lvm">
+ Allow using the Logical Volume Manager (<pkg>sys-fs/lvm2</pkg>) as pool for disk image
+ storage
+ </flag>
+ <flag name="nbd">
+ Allow using <pkg>sys-block/nbdkit</pkg> to access network disks
+ </flag>
+ <flag name="nfs">
+ Allow using Network File System mounts as pool for disk image storage
+ </flag>
+ <flag name="parted">
+ Allow using real disk partitions as pool for disk image storage, using
+ <pkg>sys-block/parted</pkg> to create, resize and delete them.
+ </flag>
+ <flag name="rbd">
+ Enable rados block device support via <pkg>sys-cluster/ceph</pkg>
+ </flag>
+ <!-- Virtualisation backends -->
+ <flag name="lxc">
+ Support management of Linux Containers virtualisation (<pkg>app-containers/lxc</pkg>)
+ </flag>
+ <flag name="openvz">
+ Support management of OpenVZ virtualisation (openvz-sources)
+ </flag>
+ <flag name="qemu">
+ Support management of QEMU virtualisation (<pkg>app-emulation/qemu</pkg>)
+ </flag>
+ <flag name="xen">
+ Support management of Xen virtualisation (<pkg>app-emulation/xen</pkg>)
+ </flag>
+ <flag name="virtualbox">
+ Support management of VirtualBox virtualisation (<pkg>app-emulation/virtualbox</pkg>)
+ </flag>
+ <!-- Miscellaneous flags -->
+ <flag name="dtrace">Enable dtrace support via <pkg>dev-debug/systemtap</pkg></flag>
+ <flag name="fuse">Allow LXC to use <pkg>sys-fs/fuse</pkg> for mountpoints</flag>
+ <flag name="numa">
+ Use NUMA for memory segmenting via <pkg>sys-process/numactl</pkg> and
+ <pkg>sys-process/numad</pkg>
+ </flag>
+ <flag name="libvirtd">
+ Builds the libvirtd daemon as well as the client utilities instead of just the client
+ utilities
+ </flag>
+ <flag name="libssh">
+ Use <pkg>net-libs/libssh</pkg> to communicate with remote libvirtd hosts,
+ for example: qemu+libssh://server/system
+ </flag>
+ <flag name="libssh2">
+ Use <pkg>net-libs/libssh2</pkg> to communicate with remote libvirtd hosts,
+ for example: qemu+libssh2://server/system
+ </flag>
+ <flag name="pcap">
+ Support auto learning IP addreses for routing
+ </flag>
+ <flag name="virt-network">
+ Enable virtual networking (NAT) support for guests. Includes all
+ the dependencies for NATed network mode. Effectively any network
+ setup that relies on libvirt to setup and configure network
+ interfaces on your host. This can include bridged and routed
+ networks ONLY if you are allowing libvirt to create and manage
+ the underlying devices for you. In some cases this requires
+ enabling the 'netcf' USE flag (currently unavailable).
+ </flag>
+ <flag name="firewalld">DBus interface to iptables/ebtables allowing
+ for better runtime management of your firewall.</flag>
+ <flag name="wireshark-plugins">
+ Build the <pkg>net-analyzer/wireshark</pkg> plugin for the Libvirt RPC protocol
+ </flag>
+ <flag name="glusterfs">
+ Enable GlusterFS support via <pkg>sys-cluster/glusterfs</pkg>
+ </flag>
+ <flag name="zfs">
+ Enable ZFS backend storage <pkg>sys-fs/zfs</pkg>
+ </flag>
+ <flag name="virtiofsd">
+ Drag in virtiofsd dependency <pkg>app-emulation/virtiofsd</pkg>
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="gitlab">libvirt/libvirt</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/lxc-templates/Manifest b/app-emulation/lxc-templates/Manifest
deleted file mode 100644
index 292a5eb8bce9..000000000000
--- a/app-emulation/lxc-templates/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST lxc-templates-3.0.4.tar.gz 257015 BLAKE2B 599c0cb083cf358c8252467b3870450e754b2aa30daf8d72e07e746ce37e2fb26fecc0adf416325c9e02b1f98f5745af5985360e9494e5ed54a242a3e17330d4 SHA512 e5b628b40e7108fca858dbd9ae92495016069ff3cba7feb34e9559c7f61dfc36944a9ef441369952a988e821f8b5d883ae97b81f6eef0683a22f1f702b5b913e
-DIST lxc-templates-3.0.4.tar.gz.asc 833 BLAKE2B a125e46200cbc1bce6a721ba338b6c896098711a7454ee18a153b9e7a3d25e08ea29cf13accf25e8af085865237fe4b20d633c92d71103213a49ba7d80de0154 SHA512 1195a3d835935606af405af77d5ee629dc7b7c0f05a17c05df191f6275c8e7ebec9eb05201bbfb46060af5a36aba4f17b53122904fd10f2d8b28524f4e5b5e71
diff --git a/app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch b/app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch
deleted file mode 100644
index d7e50fd3712b..000000000000
--- a/app-emulation/lxc-templates/files/lxc-templates-3.0.1-no-cache-dir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -10,9 +10,5 @@ EXTRA_DIST = \
- CONTRIBUTING \
- MAINTAINERS
-
--install-data-local:
-- $(MKDIR_P) $(DESTDIR)$(LXCPATH)
-- $(MKDIR_P) $(DESTDIR)$(localstatedir)/cache/lxc
--
- ChangeLog::
- @touch ChangeLog
diff --git a/app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild b/app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild
deleted file mode 100644
index 744cb45be222..000000000000
--- a/app-emulation/lxc-templates/lxc-templates-3.0.4.ebuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools verify-sig
-
-DESCRIPTION="Old style template scripts for LXC"
-HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc-templates"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz
- verify-sig? ( https://linuxcontainers.org/downloads/lxc/${P}.tar.gz.asc )"
-
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-
-RDEPEND=">=app-emulation/lxc-3.0"
-DEPEND="${RDEPEND}"
-BDEPEND="verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
-
-PATCHES=( "${FILESDIR}/${PN}-3.0.1-no-cache-dir.patch" )
-DOCS=()
-
-VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
-
-src_prepare() {
- default
- eautoreconf
-}
diff --git a/app-emulation/lxc-templates/metadata.xml b/app-emulation/lxc-templates/metadata.xml
deleted file mode 100644
index 8c511deb056f..000000000000
--- a/app-emulation/lxc-templates/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>juippis@gentoo.org</email>
- <name>Joonas Niilola</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <upstream>
- <remote-id type="github">lxc/lxc-templates</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/lxc/Manifest b/app-emulation/lxc/Manifest
deleted file mode 100644
index b220bf8a4686..000000000000
--- a/app-emulation/lxc/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST lxc-4.0.4.tar.gz 844684 BLAKE2B 438f9c79787cfab493a159a03dad214519b979c192264cb4acff21174f5642e2c10a899504ed2ac697906ca1ea9ad5cd92e01dbb8c6420651e7130b56022032a SHA512 5c5bb3c474b37284e862cbaf35daab01be7606992eb101cbea7097951ccee81dad8ab8d2624ba5f62279ece17889b1245fd6b2b63e8b17ed728560c5d40309b2
-DIST lxc-4.0.5.tar.gz 1368909 BLAKE2B 9fdef5600fe5fd427703312f07ed6499285a59d74c7c0572f036a108454192347166fe08df4551fa8df4e414167b7b081b8a1902036c7c8a012f27b99cc83335 SHA512 d536e767f4b7c1ea974469a19f89ddbcebbc3f8c7922b174b966fb2e80ae33199a8a915a962da9cbc7e075442555bc355525f2d4f8e76498b8a7e49f46dc006f
-DIST lxc-4.0.5.tar.gz.asc 833 BLAKE2B 8cc3f00e3a3359b525f7ead48f4cce7b386a75c04b43eefe0ec939786e368712c2674a17fe9e9ef58649147c7f2d5682f5a0c280ddc8ca8c34664069d5efd4b5 SHA512 9e67932fa424224d39ec6c5c32a6e6c3cdf305d3e4d7c8ddbb8ab86a38392c30b56a20b11e4f85e3645a97c106a13ef868a5d3c78ac57bc8cb44cee20e83a700
diff --git a/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch b/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch
deleted file mode 100644
index 3ec81356499e..000000000000
--- a/app-emulation/lxc/files/lxc-2.0.5-omit-sysconfig.patch
+++ /dev/null
@@ -1,5 +0,0 @@
---- /config/Makefile.am.orig 2016-05-19 02:56:11.891113982 +0000
-+++ /config/Makefile.am 2016-05-19 02:56:32.596115476 +0000
-@@ -1 +1 @@
--SUBDIRS = apparmor bash etc init selinux templates yum sysconfig
-+SUBDIRS = apparmor bash etc init selinux templates yum
diff --git a/app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch b/app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch
deleted file mode 100644
index 2a08eedb1c2d..000000000000
--- a/app-emulation/lxc/files/lxc-3.0.0-bash-completion.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-diff --git a/config/bash/lxc.in b/config/bash/lxc.in
-index 43056882..0a22d4ad 100644
---- a/config/bash/lxc.in
-+++ b/config/bash/lxc.in
-@@ -1,4 +1,3 @@
--_have lxc-start && {
- _lxc_names() {
- COMPREPLY=( $( compgen -W "$( lxc-ls )" "$cur" ) )
- }
-@@ -108,4 +107,3 @@ _have lxc-start && {
- complete -o default -F _lxc_generic_t lxc-create
-
- complete -o default -F _lxc_generic_o lxc-copy
--}
-diff --git a/configure.ac b/configure.ac
-index 50c99836..0569caec 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -395,7 +395,7 @@ AM_CONDITIONAL([ENABLE_BASH], [test "x$enable_bash" = "xyes"])
- AM_COND_IF([ENABLE_BASH],
- [AC_MSG_CHECKING([bash completion directory])
- PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], ,
-- bashcompdir="${sysconfdir}/bash_completion.d")
-+ bashcompdir="$datadir/bash-completion/completions")
- AC_MSG_RESULT([$bashcompdir])
- AC_SUBST(bashcompdir)
- ])
diff --git a/app-emulation/lxc/files/lxc.initd.8 b/app-emulation/lxc/files/lxc.initd.8
deleted file mode 100644
index 727f6d504fb3..000000000000
--- a/app-emulation/lxc/files/lxc.initd.8
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-CONTAINER=${SVCNAME#*.}
-
-LXC_PATH=`lxc-config lxc.lxcpath`
-
-lxc_get_configfile() {
- if [ -f "${LXC_PATH}/${CONTAINER}.conf" ]; then
- echo "${LXC_PATH}/${CONTAINER}.conf"
- elif [ -f "${LXC_PATH}/${CONTAINER}/config" ]; then
- echo "${LXC_PATH}/${CONTAINER}/config"
- else
- eerror "Unable to find a suitable configuration file."
- eerror "If you set up the container in a non-standard"
- eerror "location, please set the CONFIGFILE variable."
- return 1
- fi
-}
-
-[ $CONTAINER != $SVCNAME ] && CONFIGFILE=${CONFIGFILE:-$(lxc_get_configfile)}
-
-lxc_get_var() {
- awk 'BEGIN { FS="[ \t]*=[ \t]*" } $1 == "'$1'" { print $2; exit }' ${CONFIGFILE}
-}
-
-lxc_get_net_link_type() {
- awk 'BEGIN { FS="[ \t]*=[ \t]*"; _link=""; _type="" }
- $1 == "lxc.network.type" {_type=$2;}
- $1 == "lxc.network.link" {_link=$2;}
- match($1, /lxc\.net\.[[:digit:]]+\.type/) {_type=$2;}
- match($1, /lxc\.net\.[[:digit:]]+\.link/) {_link=$2;}
- {if(_link != "" && _type != ""){
- printf("%s:%s\n", _link, _type );
- _link=""; _type="";
- }; }' <${CONFIGFILE}
-}
-
-checkconfig() {
- if [ ${CONTAINER} = ${SVCNAME} ]; then
- eerror "You have to create an init script for each container:"
- eerror " ln -s lxc /etc/init.d/lxc.container"
- return 1
- fi
-
- # no need to output anything, the function takes care of that.
- [ -z "${CONFIGFILE}" ] && return 1
-
- utsname=$(lxc_get_var lxc.uts.name)
- if [ -z "$utsname" ] ; then
- utsname=$(lxc_get_var lxc.utsname)
- fi
-
- if [ "${CONTAINER}" != "${utsname}" ]; then
- eerror "You should use the same name for the service and the"
- eerror "container. Right now the container is called ${utsname}"
- return 1
- fi
-}
-
-depend() {
- # be quiet, since we have to run depend() also for the
- # non-muxed init script, unfortunately.
- checkconfig 2>/dev/null || return 0
-
- config ${CONFIGFILE}
- need localmount
- use lxcfs
-
- local _x _if
- for _x in $(lxc_get_net_link_type); do
- _if=${_x%:*}
- case "${_x##*:}" in
- # when the network type is set to phys, we can make use of a
- # network service (for instance to set it up before we disable
- # the net_admin capability), but we might also not set it up
- # at all on the host and leave the net_admin capable service
- # to take care of it.
- phys) use net.${_if} ;;
- *) need net.${_if} ;;
- esac
- done
-}
-
-start() {
- checkconfig || return 1
- rm -f /var/log/lxc/${CONTAINER}.log
-
- rootpath=$(lxc_get_var lxc.rootfs)
-
- # Check the format of our init and the chroot's init, to see
- # if we have to use linux32 or linux64; always use setarch
- # when required, as that makes it easier to deal with
- # x32-based containers.
- case $(scanelf -BF '%a#f' ${rootpath}/sbin/init) in
- EM_X86_64) setarch=linux64;;
- EM_386) setarch=linux32;;
- esac
-
- ebegin "Starting LXC container ${CONTAINER}"
- env -i ${setarch} $(which lxc-start) -n ${CONTAINER} -f ${CONFIGFILE} -d -o /var/log/lxc/${CONTAINER}.log
- sleep 1
-
- # lxc-start -d will _always_ report a correct startup, even if it
- # failed, so rather than trust that, check that the cgroup exists.
- # fix for LXC 3.1
-
- STATE="$(lxc-info -s -H ${CONTAINER})"
- [ "$STATE" = "RUNNING" ]
-
- eend $?
-}
-
-stop() {
- checkconfig || return 1
-
- STATE="$(lxc-info -s -H ${CONTAINER})"
-
- if ! [ "$STATE" = "RUNNING" ]; then
- ewarn "${CONTAINER} doesn't seem to be started."
- return 0
- fi
-
- # 30s should be enough to shut everything down
- # lxc-stop will return back anyway as soon as successful shutdown
- # after 30s, lxc-stop sends SIGKILL (dirty shotdown)
- ebegin "Stopping LXC container ${CONTAINER}"
- lxc-stop -t 30 -n ${CONTAINER}
- eend $?
-}
diff --git a/app-emulation/lxc/files/lxc_at.service.4.0.0 b/app-emulation/lxc/files/lxc_at.service.4.0.0
deleted file mode 100644
index b354bc53e080..000000000000
--- a/app-emulation/lxc/files/lxc_at.service.4.0.0
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Linux Container %i
-After=network.target
-Wants=lxcfs.service
-
-[Service]
-Type=forking
-ExecStart=/usr/bin/lxc-start -d -n %i -p /run/lxc-%i.pid
-PIDFile=/run/lxc-%i.pid
-ExecStop=/usr/bin/lxc-stop -n %i
-Delegate=true
-TasksMax=32768
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-emulation/lxc/lxc-4.0.4.ebuild b/app-emulation/lxc/lxc-4.0.4.ebuild
deleted file mode 100644
index fe6b7eea0236..000000000000
--- a/app-emulation/lxc/lxc-4.0.4.ebuild
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools bash-completion-r1 linux-info flag-o-matic pam readme.gentoo-r1 systemd
-
-DESCRIPTION="LinuX Containers userspace utilities"
-HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz
- https://github.com/lxc/lxc/archive/${P}.tar.gz"
-
-KEYWORDS="amd64 ~arm ~arm64 ~ppc64 x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-IUSE="apparmor +caps doc examples libressl pam seccomp selinux +ssl +templates +tools"
-
-RDEPEND="app-misc/pax-utils
- sys-apps/util-linux
- sys-libs/libcap
- virtual/awk
- caps? ( sys-libs/libcap )
- pam? ( sys-libs/pam )
- seccomp? ( sys-libs/libseccomp )
- selinux? ( sys-libs/libselinux )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- >=app-text/docbook-sgml-utils-0.6.14-r2
- >=sys-kernel/linux-headers-3.2
- apparmor? ( sys-apps/apparmor )"
-BDEPEND="doc? ( app-doc/doxygen )"
-PDEPEND="templates? ( app-emulation/lxc-templates )"
-
-CONFIG_CHECK="~!NETPRIO_CGROUP
- ~CGROUPS
- ~CGROUP_CPUACCT
- ~CGROUP_DEVICE
-
- ~CGROUP_FREEZER
- ~CGROUP_SCHED
- ~CPUSETS
- ~IPC_NS
-
- ~MACVLAN
- ~MEMCG
- ~NAMESPACES
- ~NET_NS
-
- ~PID_NS
- ~POSIX_MQUEUE
- ~USER_NS
- ~UTS_NS
-
- ~VETH"
-
-ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
-ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
-ERROR_MEMCG="CONFIG_MEMCG: needed for memory resource control in containers"
-ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
-ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
-ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
-ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
-
-DOCS=( AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt )
-
-pkg_setup() {
- linux-info_pkg_setup
-}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.0.0-bash-completion.patch
- "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch # bug 558854
-)
-
-S="${WORKDIR}/lxc-${P}"
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
-
- # --enable-doc is for manpages which is why we don't link it to a "doc"
- # USE flag. We always want man pages.
- local myeconfargs=(
- --bindir=/usr/bin
- --localstatedir=/var
- --sbindir=/usr/bin
-
- --with-config-path=/var/lib/lxc
- --with-distro=gentoo
- --with-init-script=systemd
- --with-rootfs-path=/var/lib/lxc/rootfs
- --with-runtime-path=/run
- --with-systemdsystemunitdir=$(systemd_get_systemunitdir)
-
- --disable-asan
- --disable-coverity-build
- --disable-dlog
- --disable-mutex-debugging
- --disable-rpath
- --disable-tests
- --disable-ubsan
- --disable-werror
-
- --enable-bash
- --enable-commands
- --enable-doc
- --enable-memfd-rexec
- --enable-thread-safety
-
- $(use_enable apparmor)
- $(use_enable caps capabilities)
- $(use_enable doc api-docs)
- $(use_enable examples)
- $(use_enable pam)
- $(use_enable seccomp)
- $(use_enable selinux)
- $(use_enable ssl openssl)
- $(use_enable tools)
-
- $(use_with pam pamdir $(getpam_mod_dir))
- )
-
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
-
- mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
- bashcomp_alias ${PN}-start \
- ${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,stop,unfreeze,wait}
-
- keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
- rmdir "${D}"/var/cache/lxc "${D}"/var/cache || die "rmdir failed"
-
- find "${D}" -name '*.la' -delete -o -name '*.a' -delete || die
-
- # Gentoo-specific additions!
- newinitd "${FILESDIR}/${PN}.initd.8" ${PN}
-
- # Remember to compare our systemd unit file with the upstream one
- # config/init/systemd/lxc.service.in
- systemd_newunit "${FILESDIR}"/${PN}_at.service.4.0.0 "lxc@.service"
-
- DOC_CONTENTS="
- For openrc, there is an init script provided with the package.
- You _should_ only need to symlink /etc/init.d/lxc to
- /etc/init.d/lxc.configname to start the container defined in
- /etc/lxc/configname.conf.
-
- Correspondingly, for systemd a service file lxc@.service is installed.
- Enable and start lxc@configname in order to start the container defined
- in /etc/lxc/configname.conf.
-
- If you want checkpoint/restore functionality, please install criu
- (sys-process/criu)."
- DISABLE_AUTOFORMATTING=true
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-}
diff --git a/app-emulation/lxc/lxc-4.0.5.ebuild b/app-emulation/lxc/lxc-4.0.5.ebuild
deleted file mode 100644
index 5b2fa2cc8dfa..000000000000
--- a/app-emulation/lxc/lxc-4.0.5.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools bash-completion-r1 linux-info flag-o-matic optfeature pam readme.gentoo-r1 systemd verify-sig
-
-DESCRIPTION="LinuX Containers userspace utilities"
-HOMEPAGE="https://linuxcontainers.org/ https://github.com/lxc/lxc"
-SRC_URI="https://linuxcontainers.org/downloads/lxc/${P}.tar.gz
- verify-sig? ( https://linuxcontainers.org/downloads/lxc/${P}.tar.gz.asc )"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
-
-LICENSE="LGPL-3"
-SLOT="0"
-IUSE="apparmor +caps doc examples libressl man pam seccomp selinux +ssl +tools verify-sig"
-
-RDEPEND="app-misc/pax-utils
- sys-apps/util-linux
- sys-libs/libcap
- virtual/awk
- caps? ( sys-libs/libcap )
- pam? ( sys-libs/pam )
- seccomp? ( sys-libs/libseccomp )
- selinux? ( sys-libs/libselinux )
- ssl? (
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- )"
-DEPEND="${RDEPEND}
- >=sys-kernel/linux-headers-4
- apparmor? ( sys-apps/apparmor )"
-BDEPEND="doc? ( app-doc/doxygen )
- man? ( app-text/docbook-sgml-utils )
- verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
-
-CONFIG_CHECK="~!NETPRIO_CGROUP
- ~CGROUPS
- ~CGROUP_CPUACCT
- ~CGROUP_DEVICE
- ~CGROUP_FREEZER
-
- ~CGROUP_SCHED
- ~CPUSETS
- ~IPC_NS
- ~MACVLAN
-
- ~MEMCG
- ~NAMESPACES
- ~NET_NS
- ~PID_NS
-
- ~POSIX_MQUEUE
- ~USER_NS
- ~UTS_NS
- ~VETH"
-
-ERROR_CGROUP_FREEZER="CONFIG_CGROUP_FREEZER: needed to freeze containers"
-ERROR_MACVLAN="CONFIG_MACVLAN: needed for internal (inter-container) networking"
-ERROR_MEMCG="CONFIG_MEMCG: needed for memory resource control in containers"
-ERROR_NET_NS="CONFIG_NET_NS: needed for unshared network"
-ERROR_POSIX_MQUEUE="CONFIG_POSIX_MQUEUE: needed for lxc-execute command"
-ERROR_UTS_NS="CONFIG_UTS_NS: needed to unshare hostnames and uname info"
-ERROR_VETH="CONFIG_VETH: needed for internal (host-to-container) networking"
-
-DOCS=( AUTHORS CONTRIBUTING MAINTAINERS NEWS README doc/FAQ.txt )
-
-pkg_setup() {
- linux-info_pkg_setup
-}
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.0.0-bash-completion.patch
- "${FILESDIR}"/${PN}-2.0.5-omit-sysconfig.patch # bug 558854
-)
-
-VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
-
-src_prepare() {
- default
- eautoreconf
-}
-
-src_configure() {
- append-flags -fno-strict-aliasing
-
- local myeconfargs=(
- --bindir=/usr/bin
- --localstatedir=/var
- --sbindir=/usr/bin
-
- --with-config-path=/var/lib/lxc
- --with-distro=gentoo
- --with-init-script=systemd
- --with-rootfs-path=/var/lib/lxc/rootfs
- --with-runtime-path=/run
- --with-systemdsystemunitdir=$(systemd_get_systemunitdir)
-
- --disable-asan
- --disable-coverity-build
- --disable-dlog
- --disable-mutex-debugging
- --disable-rpath
- --disable-tests
- --disable-ubsan
- --disable-werror
-
- --enable-bash
- --enable-commands
- --enable-memfd-rexec
- --enable-thread-safety
-
- $(use_enable apparmor)
- $(use_enable caps capabilities)
- $(use_enable doc api-docs)
- $(use_enable examples)
- $(use_enable man doc)
- $(use_enable pam)
- $(use_enable seccomp)
- $(use_enable selinux)
- $(use_enable ssl openssl)
- $(use_enable tools)
-
- $(use_with pam pamdir $(getpam_mod_dir))
- )
-
- econf "${myeconfargs[@]}"
-}
-
-src_install() {
- default
-
- mv "${ED}"/usr/share/bash-completion/completions/${PN} "${ED}"/$(get_bashcompdir)/${PN}-start || die
- bashcomp_alias ${PN}-start \
- ${PN}-{attach,cgroup,copy,console,create,destroy,device,execute,freeze,info,monitor,snapshot,stop,unfreeze,wait}
-
- keepdir /etc/lxc /var/lib/lxc/rootfs /var/log/lxc
- rmdir "${D}"/var/cache/lxc "${D}"/var/cache || die "rmdir failed"
-
- find "${D}" -name '*.la' -delete -o -name '*.a' -delete || die
-
- # Gentoo-specific additions!
- newinitd "${FILESDIR}/${PN}.initd.8" ${PN}
-
- # Remember to compare our systemd unit file with the upstream one
- # config/init/systemd/lxc.service.in
- systemd_newunit "${FILESDIR}"/${PN}_at.service.4.0.0 "lxc@.service"
-
- DOC_CONTENTS="
- For openrc, there is an init script provided with the package.
- You should only need to symlink /etc/init.d/lxc to
- /etc/init.d/lxc.configname to start the container defined in
- /etc/lxc/configname.conf.
-
- Correspondingly, for systemd a service file lxc@.service is installed.
- Enable and start lxc@configname in order to start the container defined
- in /etc/lxc/configname.conf."
- DISABLE_AUTOFORMATTING=true
- readme.gentoo_create_doc
-}
-
-pkg_postinst() {
- readme.gentoo_print_elog
-
- elog "Please run 'lxc-checkconfig' to see optional kernel features."
- elog
- elog "Optional uninstalled dependencies:"
- optfeature "automatic template scripts" app-emulation/lxc-templates
- optfeature "Debian-based distribution container image support" dev-util/debootstrap
- optfeature "snapshot & restore functionality" sys-process/criu
-}
diff --git a/app-emulation/lxc/metadata.xml b/app-emulation/lxc/metadata.xml
deleted file mode 100644
index 3cd200c1cd21..000000000000
--- a/app-emulation/lxc/metadata.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>juippis@gentoo.org</email>
- <name>Joonas Niilola</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <use>
- <flag name="apparmor">Enable AppArmor support</flag>
- <flag name="man">Build manpages</flag>
- <flag name="templates">Install old style templates through <pkg>app-emulation/lxc-templates</pkg></flag>
- <flag name="tools">Build and install additional command line tools</flag>
- </use>
- <upstream>
- <remote-id type="github">lxc/lxc</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/lxd/Manifest b/app-emulation/lxd/Manifest
deleted file mode 100644
index b7b2ca464c08..000000000000
--- a/app-emulation/lxd/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST lxd-4.0.3.tar.gz 25468067 BLAKE2B 5c3d8a2841d3222d070be39fb6cb63c99450a7edea86915a808230012f1a3b7a66c2c4a3c56be378f586c8ca033c4f547ed6eeb14bb09a091b3ae28c62fda7ae SHA512 aaf7fe7473e04765263ff99f02041748f0e57abdd0311d734fbf1cbc461516bf6adad1bc42c9cfa58b4e87c28efb5186d9436fb0a1d309b23eb37fe95299ad6f
-DIST lxd-4.0.3.tar.gz.asc 833 BLAKE2B b889b7c3a85f325a4c47319b45c4828c4fc0cac2bae77341734827e737243802852c20a766ab72ce1a12e643502d108fec41b715d8eb820ec273c651b7745fb2 SHA512 993ad833832a551e0804f9e565542b5779352cad2bb32989a440a0be11b1ae6539e46fa3332d35e8be365026dacc21d847db544b62b3e11493100d3c9cb313e1
-DIST lxd-4.0.4.tar.gz 14166577 BLAKE2B 5a04efa1bf70d416b328f5f85379a7c697667978a2b7571c05f8d834ccea51c65ce3df447787ccad5c0a9cc524bc396eb5c90b26b92d6252fc07a5be0157e0ea SHA512 800768b923de920e04d676d9c87beedd2ddd164661799c429616f6fa00b36f23ae1d9cff56f2ed16172585b9b3c058ee955eb3e5f8d98c84109c4405c5aae23f
-DIST lxd-4.0.4.tar.gz.asc 833 BLAKE2B bac0b63fc7fe61290bd399ef09eaf0bae12ac962b1188c49fa94c9132b002c278dcdb271d35a1784848591a315a8e88eab823c1c653ef814d454a0af607e461b SHA512 7fc9b9b27305d7637efeaf4024a8a26e2f891599fe50fa22e2f9defa6d451a015d74d068f63a9547fce312ed5fb5da82b99be9dc13601f807695cf1b675baf15
diff --git a/app-emulation/lxd/files/lxd-4.0.0.confd b/app-emulation/lxd/files/lxd-4.0.0.confd
deleted file mode 100644
index 68cf344995be..000000000000
--- a/app-emulation/lxd/files/lxd-4.0.0.confd
+++ /dev/null
@@ -1,23 +0,0 @@
-# Group which owns the shared socket
-LXD_OPTIONS+=" --group lxd"
-
-# Enable cpu profiling into the specified file
-#LXD_OPTIONS+=" --cpuprofile /tmp/lxc_cpu_profile"
-
-# Enable memory profiling into the specified file
-#LXD_OPTIONS+=" --memprofile /tmp/lxc_mem_profile"
-
-# Enable debug mode
-#LXD_OPTIONS+=" --debug"
-
-# For debugging, print a complete stack trace every n seconds
-#LXD_OPTIONS+=" --print-goroutines-every 5"
-
-# Enable verbose mode
-#LXD_OPTIONS+=" -v"
-
-# Logfile to log to
-#LXD_OPTIONS+=" --logfile /var/log/lxd/lxd.log"
-
-# Enable syslog logging
-#LXD_OPTIONS+=" --syslog"
diff --git a/app-emulation/lxd/files/lxd-4.0.0.initd b/app-emulation/lxd/files/lxd-4.0.0.initd
deleted file mode 100644
index 03ec12e44f56..000000000000
--- a/app-emulation/lxd/files/lxd-4.0.0.initd
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-DAEMON=/usr/sbin/lxd
-PIDFILE=/run/lxd.pid
-TIMEOUT=10
-
-extra_commands="stopall"
-
-depend() {
- need net
- need lxcfs
-}
-
-start() {
- ebegin "Starting lxd service"
-
- modprobe -f loop > /dev/null 2>&1
-
- # fix permissions on /var/lib/lxd and make sure it exists
- install -d /var/lib/lxd --group lxd --owner root --mode 0775
- start-stop-daemon --start \
- --pidfile ${PIDFILE} \
- --exec ${DAEMON} \
- --background \
- --make-pidfile \
- -- \
- ${LXD_OPTIONS}
- eend ${?}
-}
-
-stop() {
- if [[ ${RC_GOINGDOWN} = YES ]] || [[ ${RC_REBOOT} = YES ]]; then
- stopall
- else
- ebegin "Stopping lxd service (but not containers)."
- start-stop-daemon --stop --quiet -R TERM/45 -p ${PIDFILE}
- eend ${?}
- fi
-}
-
-stopall() {
- ebegin "Stopping lxd service and containers."
- lxc stop --all --timeout $TIMEOUT >/dev/null 2>&1
- if [[ ${?} -ne 0 ]]; then
- lxc stop --all --force || eerror "Could not stop all containers."
- fi
- if "${DAEMON}" shutdown; then
- rm -f ${PIDFILE}
- eend 0
- fi
- eend ${?}
-}
diff --git a/app-emulation/lxd/files/lxd-4.0.0.service b/app-emulation/lxd/files/lxd-4.0.0.service
deleted file mode 100644
index c2e9db8aa8ae..000000000000
--- a/app-emulation/lxd/files/lxd-4.0.0.service
+++ /dev/null
@@ -1,20 +0,0 @@
-[Unit]
-Description=LXD - main daemon
-After=network-online.target lxcfs.service lxd.socket
-Requires=network-online.target lxcfs.service lxd.socket
-Documentation=man:lxd(1)
-
-[Service]
-EnvironmentFile=-/etc/environment
-ExecStart=/usr/sbin/lxd --group lxd --logfile=/var/log/lxd/lxd.log
-ExecStartPost=/usr/sbin/lxd waitready --timeout=600
-KillMode=process
-TimeoutStartSec=600s
-TimeoutStopSec=30s
-Restart=on-failure
-LimitNOFILE=1048576
-LimitNPROC=infinity
-TasksMax=infinity
-
-[Install]
-Also=lxd-containers.service lxd.socket
diff --git a/app-emulation/lxd/files/lxd-4.0.0.socket b/app-emulation/lxd/files/lxd-4.0.0.socket
deleted file mode 100644
index 3207c9453d11..000000000000
--- a/app-emulation/lxd/files/lxd-4.0.0.socket
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=LXD - unix socket
-Documentation=man:lxd(1)
-
-[Socket]
-ListenStream=/var/lib/lxd/unix.socket
-SocketGroup=lxd
-SocketMode=0660
-Service=lxd.service
-
-[Install]
-WantedBy=sockets.target
diff --git a/app-emulation/lxd/files/lxd-4.0.0_apparmor.service b/app-emulation/lxd/files/lxd-4.0.0_apparmor.service
deleted file mode 100644
index 5e688d9c098c..000000000000
--- a/app-emulation/lxd/files/lxd-4.0.0_apparmor.service
+++ /dev/null
@@ -1,21 +0,0 @@
-[Unit]
-Description=LXD - main daemon
-After=network-online.target lxcfs.service lxd.socket
-Requires=network-online.target lxcfs.service lxd.socket
-Documentation=man:lxd(1)
-
-[Service]
-EnvironmentFile=-/etc/environment
-ExecStartPre=/usr/libexec/lxc/lxc-apparmor-load
-ExecStart=/usr/sbin/lxd --group lxd --logfile=/var/log/lxd/lxd.log
-ExecStartPost=/usr/sbin/lxd waitready --timeout=600
-KillMode=process
-TimeoutStartSec=600s
-TimeoutStopSec=30s
-Restart=on-failure
-LimitNOFILE=1048576
-LimitNPROC=infinity
-TasksMax=infinity
-
-[Install]
-Also=lxd-containers.service lxd.socket
diff --git a/app-emulation/lxd/files/lxd-containers-4.0.0.service b/app-emulation/lxd/files/lxd-containers-4.0.0.service
deleted file mode 100644
index 894760c3506b..000000000000
--- a/app-emulation/lxd/files/lxd-containers-4.0.0.service
+++ /dev/null
@@ -1,16 +0,0 @@
-[Unit]
-Description=LXD - container startup/shutdown
-Documentation=man:lxd(1)
-After=lxd.socket lxd.service
-Requires=lxd.socket
-
-[Service]
-Type=oneshot
-ExecStart=/usr/sbin/lxd activateifneeded
-ExecStop=/usr/sbin/lxd shutdown
-TimeoutStartSec=600s
-TimeoutStopSec=600s
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-emulation/lxd/lxd-4.0.3-r2.ebuild b/app-emulation/lxd/lxd-4.0.3-r2.ebuild
deleted file mode 100644
index fa42646855b0..000000000000
--- a/app-emulation/lxd/lxd-4.0.3-r2.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools bash-completion-r1 linux-info optfeature systemd verify-sig
-
-DESCRIPTION="Fast, dense and secure container management"
-HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd"
-SRC_URI="https://linuxcontainers.org/downloads/lxd/${P}.tar.gz
- verify-sig? ( https://linuxcontainers.org/downloads/lxd/${P}.tar.gz.asc )"
-
-# Needs to include licenses for all bundled programs and libraries.
-LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="amd64"
-IUSE="apparmor +ipv6 nls verify-sig"
-
-DEPEND="app-arch/xz-utils
- >=app-emulation/lxc-3.0.0[apparmor?,seccomp]
- dev-lang/tcl
- dev-libs/libuv
- dev-libs/lzo
- net-dns/dnsmasq[dhcp,ipv6?]"
-RDEPEND="${DEPEND}
- acct-group/lxd
- net-firewall/ebtables
- net-firewall/iptables[ipv6?]
- sys-apps/iproute2[ipv6?]
- sys-fs/fuse:0=
- sys-fs/lxcfs
- sys-fs/squashfs-tools
- virtual/acl"
-BDEPEND=">=dev-lang/go-1.13
- nls? ( sys-devel/gettext )
- verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
-
-CONFIG_CHECK="
- ~BRIDGE
- ~DUMMY
- ~IP6_NF_NAT
- ~IP6_NF_TARGET_MASQUERADE
- ~IPV6
- ~IP_NF_NAT
- ~IP_NF_TARGET_MASQUERADE
- ~MACVLAN
- ~NETFILTER_XT_MATCH_COMMENT
- ~NET_IPGRE
- ~NET_IPGRE_DEMUX
- ~NET_IPIP
- ~NF_NAT_MASQUERADE
- ~VSOCKETS
- ~VXLAN
-"
-
-# 4.0.3: Network fetching fixed, but tests don't work when ran inside container.
-RESTRICT="test"
-
-# Go magic.
-QA_PREBUILT="/usr/lib/lxd/libdqlite.so.0.0.1
- /usr/bin/fuidshift
- /usr/bin/lxc
- /usr/bin/lxc-to-lxd
- /usr/bin/lxd-agent
- /usr/bin/lxd-benchmark
- /usr/bin/lxd-p2c
- /usr/sbin/lxd"
-
-EGO_PN="github.com/lxc/lxd"
-GOPATH="${S}/_dist" # this seems to reset every now and then, though
-
-VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
-
-common_op() {
- local i
- for i in dqlite raft; do
- cd "${GOPATH}"/deps/${i} || die "failed to switch dir to ${i}"
- "${@}"
- cd "${S}" || die "failed to switch dir back from ${i} to ${S}"
- done
-}
-
-src_prepare() {
- default
-
- export GOPATH="${S}/_dist"
-
- sed -i \
- -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \
- -e "s:make:make ${MAKEOPTS}:g" \
- Makefile || die
-
- sed -i 's#lib$#lib/lxd#' "${GOPATH}"/deps/libco/Makefile || die
- sed -i 's#zfs version 2>/dev/null | cut -f 2 -d - | head -1#< /sys/module/zfs/version cut -f 1#' "${GOPATH}"/deps/raft/configure.ac || die
-
- common_op eautoreconf
-}
-
-src_configure() {
- export GOPATH="${S}/_dist"
-
- export CO_CFLAGS="-I${GOPATH}/deps/libco/"
- export CO_LIBS="${GOPATH}/deps/libco/"
-
- export RAFT_CFLAGS="-I${GOPATH}/deps/raft/include/"
- export RAFT_LIBS="${GOPATH}/deps/raft/.libs"
-
- export SQLITE_CFLAGS="-I${GOPATH}/deps/sqlite"
- export SQLITE_LIBS="${GOPATH}/deps/sqlite/.libs"
-
- export PKG_CONFIG_PATH="${GOPATH}/sqlite/:${GOPATH}/libco/:${GOPATH}/raft/"
-
- cd "${GOPATH}/deps/sqlite" || die
- econf --enable-replication --disable-amalgamation --disable-tcl --libdir="${EPREFIX}/usr/lib/lxd"
-
- common_op econf --libdir="${EPREFIX}"/usr/lib/lxd
-}
-
-src_compile() {
- export GOPATH="${S}/_dist"
-
- export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/"
- export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd"
- export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}"
-
- local j
- for j in sqlite raft libco; do
- cd "${GOPATH}"/deps/${j} || die
- emake
- done
-
- ln -s libco.so.0.1.0 libco.so || die
- ln -s libco.so.0.1.0 libco.so.0 || die
-
- cd "${GOPATH}/deps/dqlite" || die
- emake CFLAGS="-I${GOPATH}/deps/sqlite -I${GOPATH}/deps/raft/include" LDFLAGS="-L${GOPATH}/deps/sqlite -L${GOPATH}/deps/raft"
-
- cd "${S}" || die
-
- for k in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do
- go install -v -x ${EGO_PN}/${k} || die "failed compiling ${k}"
- done
-
- go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon"
-
- use nls && emake build-mo
-}
-
-src_test() {
- export GOPATH="${S}/_dist"
-
- export CGO_CFLAGS="${CGO_CFLAGS} -I${GOPATH}/deps/sqlite/ -I${GOPATH}/deps/dqlite/include/ -I${GOPATH}/deps/raft/include/ -I${GOPATH}/deps/libco/"
- export CGO_LDFLAGS="${CGO_LDFLAGS} -L${GOPATH}/deps/sqlite/.libs/ -L${GOPATH}/deps/dqlite/.libs/ -L${GOPATH}/deps/raft/.libs -L${GOPATH}/deps/libco/ -Wl,-rpath,${EPREFIX}/usr/lib/lxd"
- export LD_LIBRARY_PATH="${GOPATH}/deps/sqlite/.libs/:${GOPATH}/deps/dqlite/.libs/:${GOPATH}/deps/raft/.libs:${GOPATH}/deps/libco/:${LD_LIBRARY_PATH}"
-
- go test -v ${EGO_PN}/lxd || die
-}
-
-src_install() {
- local bindir="_dist/bin"
- export GOPATH="${S}/_dist"
-
- dosbin ${bindir}/lxd
-
- for l in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do
- dobin ${bindir}/${l}
- done
-
- for m in dqlite libco raft sqlite; do
- cd "${GOPATH}"/deps/${m} || die "failed switching into ${GOPATH}/${m}"
- emake DESTDIR="${D}" install
- done
-
- cd "${S}" || die
-
- # We only need bundled libs during src_compile, and we don't want anything
- # to link against these.
- rm "${ED}"/usr/bin/sqlite3 || die
- rm -r "${ED}"/usr/include || die
- rm -r "${ED}"/usr/lib/lxd/*.a || die
- rm -r "${ED}"/usr/lib/lxd/pkgconfig || die
-
- newbashcomp scripts/bash/lxd-client lxc
-
- newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd
- newinitd "${FILESDIR}"/lxd-4.0.0.initd lxd
-
- if use apparmor; then
- systemd_newunit "${FILESDIR}"/lxd-4.0.0_apparmor.service lxd.service
- else
- systemd_newunit "${FILESDIR}"/lxd-4.0.0.service lxd.service
- fi
-
- systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service
- systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket
-
- dodoc AUTHORS doc/*
- use nls && domo po/*.mo
-}
-
-pkg_postinst() {
- elog
- elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
- elog "including a Quick Start."
- elog
- elog "Optional features:"
- optfeature "btrfs storage backend" sys-fs/btrfs-progs
- optfeature "lvm2 storage backend" sys-fs/lvm2
- optfeature "zfs storage backend" sys-fs/zfs
- elog
- elog "Be sure to add your local user to the lxd group."
-}
diff --git a/app-emulation/lxd/lxd-4.0.4-r1.ebuild b/app-emulation/lxd/lxd-4.0.4-r1.ebuild
deleted file mode 100644
index e287cc4458a8..000000000000
--- a/app-emulation/lxd/lxd-4.0.4-r1.ebuild
+++ /dev/null
@@ -1,144 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools bash-completion-r1 linux-info optfeature systemd verify-sig
-
-DESCRIPTION="Fast, dense and secure container management"
-HOMEPAGE="https://linuxcontainers.org/lxd/introduction/ https://github.com/lxc/lxd"
-SRC_URI="https://linuxcontainers.org/downloads/lxd/${P}.tar.gz
- verify-sig? ( https://linuxcontainers.org/downloads/lxd/${P}.tar.gz.asc )"
-
-# Needs to include licenses for all bundled programs and libraries.
-LICENSE="Apache-2.0 BSD BSD-2 LGPL-3 MIT MPL-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="apparmor ipv6 nls verify-sig"
-
-DEPEND="app-arch/xz-utils
- >=app-emulation/lxc-3.0.0[apparmor?,seccomp]
- dev-libs/dqlite
- dev-libs/lzo
- dev-libs/raft
- net-dns/dnsmasq[dhcp,ipv6?]"
-RDEPEND="${DEPEND}
- acct-group/lxd
- net-firewall/ebtables
- net-firewall/iptables[ipv6?]
- sys-apps/iproute2[ipv6?]
- sys-fs/fuse:0=
- sys-fs/lxcfs
- sys-fs/squashfs-tools
- virtual/acl"
-BDEPEND="dev-lang/go
- nls? ( sys-devel/gettext )
- verify-sig? ( app-crypt/openpgp-keys-linuxcontainers )"
-
-CONFIG_CHECK="
- ~CGROUPS
- ~IPC_NS
- ~NET_NS
- ~PID_NS
-
- ~SECCOMP
- ~USER_NS
- ~UTS_NS
-"
-
-ERROR_IPC_NS="CONFIG_IPC_NS is required."
-ERROR_NET_NS="CONFIG_NET_NS is required."
-ERROR_PID_NS="CONFIG_PID_NS is required."
-ERROR_SECCOMP="CONFIG_SECCOMP is required."
-ERROR_UTS_NS="CONFIG_UTS_NS is required."
-
-# Go magic.
-QA_PREBUILT="/usr/bin/fuidshift
- /usr/bin/lxc
- /usr/bin/lxc-to-lxd
- /usr/bin/lxd-agent
- /usr/bin/lxd-benchmark
- /usr/bin/lxd-p2c
- /usr/sbin/lxd"
-
-EGO_PN="github.com/lxc/lxd"
-GOPATH="${S}/_dist" # this seems to reset every now and then, though
-
-VERIFY_SIG_OPENPGP_KEY_PATH=${BROOT}/usr/share/openpgp-keys/linuxcontainers.asc
-
-src_prepare() {
- default
-
- export GOPATH="${S}/_dist"
-
- sed -i \
- -e "s:\./configure:./configure --prefix=/usr --libdir=${EPREFIX}/usr/lib/lxd:g" \
- -e "s:make:make ${MAKEOPTS}:g" \
- Makefile || die
-}
-
-src_configure() { :; }
-
-src_compile() {
- export GOPATH="${S}/_dist"
-
- cd "${S}" || die
-
- for k in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do
- go install -v -x ${EGO_PN}/${k} || die "failed compiling ${k}"
- done
-
- go install -v -x -tags libsqlite3 ${EGO_PN}/lxd || die "Failed to build the daemon"
-
- use nls && emake build-mo
-}
-
-src_test() {
- export GOPATH="${S}/_dist"
- go test -v ${EGO_PN}/lxd || die
-}
-
-src_install() {
- local bindir="_dist/bin"
- export GOPATH="${S}/_dist"
-
- dosbin ${bindir}/lxd
-
- for l in fuidshift lxd-agent lxd-benchmark lxd-p2c lxc lxc-to-lxd; do
- dobin ${bindir}/${l}
- done
-
- cd "${S}" || die
-
- newbashcomp scripts/bash/lxd-client lxc
-
- newconfd "${FILESDIR}"/lxd-4.0.0.confd lxd
- newinitd "${FILESDIR}"/lxd-4.0.0.initd lxd
-
- if use apparmor; then
- systemd_newunit "${FILESDIR}"/lxd-4.0.0_apparmor.service lxd.service
- else
- systemd_newunit "${FILESDIR}"/lxd-4.0.0.service lxd.service
- fi
-
- systemd_newunit "${FILESDIR}"/lxd-containers-4.0.0.service lxd-containers.service
- systemd_newunit "${FILESDIR}"/lxd-4.0.0.socket lxd.socket
-
- dodoc AUTHORS doc/*
- use nls && domo po/*.mo
-}
-
-pkg_postinst() {
- elog
- elog "Consult https://wiki.gentoo.org/wiki/LXD for more information,"
- elog "including a Quick Start."
- elog
- elog "Please run 'lxc-checkconfig' to see all optional kernel features."
- elog
- elog "Optional features:"
- optfeature "btrfs storage backend" sys-fs/btrfs-progs
- optfeature "lvm2 storage backend" sys-fs/lvm2
- optfeature "zfs storage backend" sys-fs/zfs
- elog
- elog "Be sure to add your local user to the lxd group."
-}
diff --git a/app-emulation/lxd/metadata.xml b/app-emulation/lxd/metadata.xml
deleted file mode 100644
index db7a11f18d78..000000000000
--- a/app-emulation/lxd/metadata.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>juippis@gentoo.org</email>
- <name>Joonas Niilola</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <use>
- <flag name="apparmor">Enable AppArmor support</flag>
- </use>
- <longdescription>
- By combining the speed and density of containers with
- the security of traditional virtual machines, LXD is
- the next-generation of container hypervisor for Linux
- from Canonical.
- </longdescription>
- <upstream>
- <remote-id type="github">lxc/lxd</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/metadata.xml b/app-emulation/metadata.xml
index 4b1893efa085..bab7a830325e 100644
--- a/app-emulation/metadata.xml
+++ b/app-emulation/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE catmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE catmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<catmetadata>
<longdescription lang="en">
The app-emulation category contains emulation software.
@@ -29,4 +29,3 @@
Kategoria app-emulation zawiera programy służące do emulacji.
</longdescription>
</catmetadata>
-
diff --git a/app-emulation/nemu/Manifest b/app-emulation/nemu/Manifest
index e9544c5670d0..4f629d031470 100644
--- a/app-emulation/nemu/Manifest
+++ b/app-emulation/nemu/Manifest
@@ -1 +1,3 @@
-DIST nemu-2.2.1.tar.gz 94600 BLAKE2B 16060ee1ed00f97a442d9f6b9a3f940d9777d24dea70336e382071ce7e9f7e077d58827110f4b0d64091c5777d516e95968ed0e1d4886b9fe2a3709fb466229d SHA512 e6f244c01582351f9e0f61a0a6848937a68b8d077500d0f8095784b871e9c9809bf5830c27918e84a77a64fcee3d6f81d8a06a031160f0beddc48614eb86624a
+DIST nemu-3.0.0.tar.gz 151223 BLAKE2B a71875eb727eed13bc252cee072e1c5b25bf7ea106f51ddddfb8e8bfacf21e030b1c4045de2353d40121b78756b131de1a376891197f6d553430b4b30f53bf3e SHA512 59dae5364659dda5d7c05ba6378b6e20c5d2c5b619cb919c49036918a887574b75f5d568cbfa8f21ecf790778c9de55266f5c5e3e90cc991f613a6408b10a1df
+DIST nemu-3.1.0.tar.gz 164222 BLAKE2B 32600bcdcf2a4f963612a13d89375df2cb4a49a376aec694ada01a86f6c27d6c4198250834cc924bb20e7b60b11ff8643e3bbd30aa883b437cf7828ab00509f2 SHA512 b764e94133e4ab4f052fca77d3dbc64dbbd6a52349828e8ccfe9892f1a9bb290b6578cd8afec7bac84ac339daf9ae11520fce28e842bfa649178fe471014fad1
+DIST nemu-3.3.0.tar.gz 174431 BLAKE2B 62f69bb4789d8b1ce369bca5f82f11e4fc41813ae2732d61f6ae1819bc8e3e052420e6f1a2582c5460dfccd9dd3b98c350968c5a732aad654493f7b03bcacec2 SHA512 3b497d3edccb41ca9b34d6c51079caadc893effd2c026d9b199538574fad173d1c3fe5e5db36b60f07debc774473082b338553e269d1d462203470dee292e107
diff --git a/app-emulation/nemu/metadata.xml b/app-emulation/nemu/metadata.xml
index b2ce9edb9146..29430bd2b950 100644
--- a/app-emulation/nemu/metadata.xml
+++ b/app-emulation/nemu/metadata.xml
@@ -1,15 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>monsieurp@gentoo.org</email>
- <name>Patrice Clement</name>
+ <maintainer type="person" proxied="yes">
+ <email>mail@void.so</email>
+ <name>Pavel Balaev</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
</maintainer>
<use>
- <flag name="vnc-client">Adds support for external VNC client</flag>
- <flag name="savevm">Adds support for QEMU savevm snapshots (experimental, QEMU must be patched)</flag>
- <flag name="spice">Adds Spice protocol support</flag>
<flag name="ovf">Adds support for OVA/OVF import</flag>
<flag name="network-map">Adds possibility of exporting network map to SVG</flag>
+ <flag name="remote-api">Adds API for remote control</flag>
+ <flag name="spice">Adds Spice protocol support</flag>
+ <flag name="vnc-client">Adds support for external VNC client</flag>
</use>
</pkgmetadata>
diff --git a/app-emulation/nemu/nemu-2.2.1.ebuild b/app-emulation/nemu/nemu-3.0.0.ebuild
index 7b191e31dc57..54d5c3502eb7 100644
--- a/app-emulation/nemu/nemu-2.2.1.ebuild
+++ b/app-emulation/nemu/nemu-3.0.0.ebuild
@@ -1,36 +1,41 @@
-# Copyright 2019-2020 Gentoo Authors
+# Copyright 2019-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit cmake-utils linux-info
+inherit cmake linux-info
+
+MY_PV="${PV/_rc/-RC}"
DESCRIPTION="ncurses interface for QEMU"
-HOMEPAGE="https://lib.void.so/nemu/ https://bitbucket.org/PascalRD/nemu/"
-SRC_URI="https://lib.void.so/src/${P}.tar.gz"
+HOMEPAGE="https://github.com/nemuTUI/nemu"
+SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
LICENSE="BSD-2"
SLOT="0"
KEYWORDS="amd64 x86"
-IUSE="debug network-map +ovf savevm spice +vnc-client"
+IUSE="dbus network-map +ovf spice +vnc-client remote-api"
-RDEPEND="app-emulation/qemu[vnc,virtfs,spice?]
+RDEPEND="
+ >=app-emulation/qemu-6.0.0-r3[vnc,virtfs,spice?]
dev-db/sqlite:3=
- sys-libs/ncurses:0=[unicode]
+ dev-libs/json-c
+ sys-libs/ncurses:=[unicode(+)]
virtual/libusb:1
virtual/libudev:=
- network-map? ( media-gfx/graphviz )
+ dbus? ( sys-apps/dbus )
+ network-map? ( media-gfx/graphviz[svg] )
ovf? (
-
- dev-libs/libxml2:2
- app-arch/libarchive
-
+ dev-libs/libxml2:2
+ app-arch/libarchive:=
)
- vnc-client? ( net-misc/tigervnc )"
-
+ remote-api? ( dev-libs/openssl )
+ spice? ( app-emulation/virt-viewer )
+ vnc-client? ( net-misc/tigervnc )
+"
DEPEND="${RDEPEND}"
-
BDEPEND="sys-devel/gettext"
+S="${WORKDIR}/${PN}-${MY_PV}/"
pkg_pretend() {
if use kernel_linux; then
@@ -42,32 +47,35 @@ pkg_pretend() {
ERROR_VETH+=" into your kernel or loaded as a module to use the"
ERROR_VETH+=" local network settings feature."
ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver."
-
check_extra_config
fi
fi
}
src_configure() {
+ # -DNM_WITH_QEMU: Do not embbed qemu.
local mycmakeargs=(
- -DNM_DEBUG=$(usex debug)
+ -DNM_WITH_DBUS=$(usex dbus)
-DNM_WITH_NETWORK_MAP=$(usex network-map)
+ -DNM_WITH_REMOTE=$(usex remote-api)
-DNM_WITH_OVF_SUPPORT=$(usex ovf)
- -DNM_SAVEVM_SNAPSHOTS=$(usex savevm)
+ -DNM_WITH_QEMU=off
-DNM_WITH_SPICE=$(usex spice)
-DNM_WITH_VNC_CLIENT=$(usex vnc-client)
)
- cmake-utils_src_configure
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ docompress -x /usr/share/man/man1/nemu.1.gz
}
pkg_postinst() {
elog "For non-root usage execute script:"
elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>"
elog "and add udev rule:"
- elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /lib/udev/rules.d"
- if use savevm; then
- elog ""
- elog "QEMU must be patched with qemu-qmp-savevm-VERSION.patch"
- elog "Get this patch from nEMU repository"
- fi
+ elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /etc/udev/rules.d"
+ elog "Afterwards reboot or reload udev with"
+ elog "udevadm control --reload-rules && udevadm trigger"
}
diff --git a/app-emulation/nemu/nemu-3.1.0.ebuild b/app-emulation/nemu/nemu-3.1.0.ebuild
new file mode 100644
index 000000000000..9bd6d23031a3
--- /dev/null
+++ b/app-emulation/nemu/nemu-3.1.0.ebuild
@@ -0,0 +1,77 @@
+# Copyright 2019-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake linux-info
+
+MY_PV="${PV/_rc/-RC}"
+
+DESCRIPTION="ncurses interface for QEMU"
+HOMEPAGE="https://github.com/nemuTUI/nemu"
+SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="dbus network-map +ovf remote-api"
+
+RDEPEND="
+ >=app-emulation/qemu-6.0.0-r3[vnc,virtfs,spice]
+ dev-db/sqlite:3=
+ dev-libs/json-c
+ sys-libs/ncurses:=[unicode(+)]
+ virtual/libusb:1
+ virtual/libudev:=
+ dbus? ( sys-apps/dbus )
+ network-map? ( media-gfx/graphviz[svg] )
+ ovf? (
+ dev-libs/libxml2:2
+ app-arch/libarchive:=
+ )
+ remote-api? ( dev-libs/openssl )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="sys-devel/gettext"
+S="${WORKDIR}/${PN}-${MY_PV}/"
+
+pkg_pretend() {
+ if use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel"
+ else
+ CONFIG_CHECK="~VETH ~MACVTAP"
+ ERROR_VETH="You will need the Virtual ethernet pair device driver compiled"
+ ERROR_VETH+=" into your kernel or loaded as a module to use the"
+ ERROR_VETH+=" local network settings feature."
+ ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver."
+ check_extra_config
+ fi
+ fi
+}
+
+src_configure() {
+ # -DNM_WITH_QEMU: Do not embbed qemu.
+ local mycmakeargs=(
+ -DNM_WITH_DBUS=$(usex dbus)
+ -DNM_WITH_NETWORK_MAP=$(usex network-map)
+ -DNM_WITH_REMOTE=$(usex remote-api)
+ -DNM_WITH_OVF_SUPPORT=$(usex ovf)
+ -DNM_WITH_QEMU=off
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ docompress -x /usr/share/man/man1/nemu.1.gz
+}
+
+pkg_postinst() {
+ elog "For non-root usage execute script:"
+ elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>"
+ elog "and add udev rule:"
+ elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /etc/udev/rules.d"
+ elog "Afterwards reboot or reload udev with"
+ elog "udevadm control --reload-rules && udevadm trigger"
+}
diff --git a/app-emulation/nemu/nemu-3.3.0.ebuild b/app-emulation/nemu/nemu-3.3.0.ebuild
new file mode 100644
index 000000000000..e42882861528
--- /dev/null
+++ b/app-emulation/nemu/nemu-3.3.0.ebuild
@@ -0,0 +1,80 @@
+# Copyright 2019-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake linux-info
+
+MY_PV="${PV/_rc/-RC}"
+
+DESCRIPTION="Ncurses interface for QEMU"
+HOMEPAGE="https://github.com/nemuTUI/nemu"
+SRC_URI="https://github.com/nemuTUI/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${MY_PV}/"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="dbus network-map +ovf remote-api +usb"
+
+RDEPEND="
+ >=app-emulation/qemu-6.0.0-r3[vnc,virtfs,spice]
+ dev-db/sqlite:3=
+ dev-libs/json-c
+ sys-libs/ncurses:=[unicode(+)]
+ usb? (
+ virtual/libusb:1
+ virtual/libudev:=
+ )
+ dbus? ( sys-apps/dbus )
+ network-map? ( media-gfx/graphviz[svg] )
+ ovf? (
+ dev-libs/libxml2:2
+ app-arch/libarchive:=
+ )
+ remote-api? ( dev-libs/openssl )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="sys-devel/gettext"
+
+pkg_pretend() {
+ if use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel"
+ else
+ CONFIG_CHECK="~VETH ~MACVTAP"
+ ERROR_VETH="You will need the Virtual ethernet pair device driver compiled"
+ ERROR_VETH+=" into your kernel or loaded as a module to use the"
+ ERROR_VETH+=" local network settings feature."
+ ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver."
+ check_extra_config
+ fi
+ fi
+}
+
+src_configure() {
+ # -DNM_WITH_QEMU: Do not embbed qemu.
+ local mycmakeargs=(
+ -DNM_WITH_DBUS=$(usex dbus)
+ -DNM_WITH_NETWORK_MAP=$(usex network-map)
+ -DNM_WITH_REMOTE=$(usex remote-api)
+ -DNM_WITH_OVF_SUPPORT=$(usex ovf)
+ -DNM_WITH_QEMU=off
+ -DNM_WITH_USB=$(usex usb)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ docompress -x /usr/share/man/man1/nemu.1.gz
+}
+
+pkg_postinst() {
+ elog "For non-root usage execute script:"
+ elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>"
+ elog "and add udev rule:"
+ elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /etc/udev/rules.d"
+ elog "Afterwards reboot or reload udev with"
+ elog "udevadm control --reload-rules && udevadm trigger"
+}
diff --git a/app-emulation/nemu/nemu-9999.ebuild b/app-emulation/nemu/nemu-9999.ebuild
deleted file mode 100644
index b171fc8f123e..000000000000
--- a/app-emulation/nemu/nemu-9999.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit cmake-utils linux-info git-r3
-
-DESCRIPTION="ncurses interface for QEMU"
-HOMEPAGE="https://github.com/nemuTUI/nemu"
-EGIT_REPO_URI="https://github.com/nemuTUI/nemu"
-SRC_URI=""
-
-LICENSE="BSD-2"
-SLOT="0"
-IUSE="+vnc-client +ovf +spice savevm svg debug"
-
-RDEPEND="
- sys-libs/ncurses:0=[unicode]
- dev-db/sqlite:3=
- virtual/libusb:1
- || ( sys-fs/eudev sys-fs/udev sys-apps/systemd )
- >=app-emulation/qemu-2.12.0[vnc,virtfs,spice?]
- ovf? (
- dev-libs/libxml2
- app-arch/libarchive
- )
- svg? ( media-gfx/graphviz[svg] )"
-
-DEPEND="
- ${RDEPEND}
- sys-devel/gettext"
-
-src_configure() {
- local mycmakeargs=(
- -DNM_WITH_VNC_CLIENT=$(usex vnc-client)
- -DNM_DEBUG=$(usex debug)
- -DNM_SAVEVM_SNAPSHOTS=$(usex savevm)
- -DNM_WITH_OVF_SUPPORT=$(usex ovf)
- -DNM_WITH_NETWORK_MAP=$(usex svg)
- -DNM_WITH_SPICE=$(usex spice)
- )
- cmake-utils_src_configure
-}
-
-pkg_pretend() {
- if use kernel_linux; then
- if ! linux_config_exists; then
- eerror "Unable to check your kernel"
- else
- CONFIG_CHECK="~VETH ~MACVTAP"
- ERROR_VETH="You will need the Virtual ethernet pair device driver compiled"
- ERROR_VETH+=" into your kernel or loaded as a module to use the"
- ERROR_VETH+=" local network settings feature."
- ERROR_MACVTAP="You will also need support for MAC-VLAN based tap driver."
-
- check_extra_config
- fi
- fi
-}
-
-pkg_postinst() {
- elog "For non-root usage execute script:"
- elog "/usr/share/nemu/scripts/setup_nemu_nonroot.sh linux <username>"
- elog "and add udev rule:"
- elog "cp /usr/share/nemu/scripts/42-net-macvtap-perm.rules /lib/udev/rules.d"
- if use savevm; then
- elog ""
- elog "QEMU must be patched with qemu-qmp-savevm-VERSION.patch"
- elog "Get this patch from nEMU repository"
- fi
-}
diff --git a/app-emulation/open-vm-tools/Manifest b/app-emulation/open-vm-tools/Manifest
index 3860659e62e1..bdbc4e5c9a51 100644
--- a/app-emulation/open-vm-tools/Manifest
+++ b/app-emulation/open-vm-tools/Manifest
@@ -1,2 +1,2 @@
-DIST open-vm-tools-11.0.1-14773994.tar.gz 3972888 BLAKE2B 8ead9b37e9fa861386087d50af4e20274a9ee9fafd929da3ca0652ea2c4eecff4c203cadf02d38401bfd7ff0129ebcc7895d2819785cf2d818aac91a46f8d163 SHA512 3f500b3f0daaed01f787cf271d094b693baa18304491c3b58c79b64ab7db41b1b4a4747440e0039b2d9f9cc7e1474ee15f0ee7413544a34c2c9402443c145276
-DIST open-vm-tools-11.1.0-16036546.tar.gz 3986835 BLAKE2B f02e9426fb324ec0f4f78f43554a55ce0b615f609f888c008e8ecaf59332b9e25b0c865730cd263be1936d223c9cd5e078d304d1ddd8903cec88512cd63c258b SHA512 cd1f8399b9660ecac8222cfdc0d6331dce67db2f3a1788f21b18b201066dbcd059f429130f1fb5b416bb9a06b4882ec462a134aa8ca595f17dc48af0b7f59e8e
+DIST open-vm-tools-12.2.0-21223074.tar.gz 4365836 BLAKE2B ecac1ada523b9ba6e6f9e880f700a9c35200e9093c81f3367ce3b196365166f682f7d8ba290f624417b83c3573894020fe6b4cbd82a117412ebe80df283f32db SHA512 d663d8ea455264cad7d3eaac16c5d08672e8e10f7a9171be40fff69e208ae697bc0e8af498c978d8de470ed273351b42c54994b2c552fdc05b828c80f4826b84
+DIST open-vm-tools-12.2.5-21855600.tar.gz 4365531 BLAKE2B 1df621aea3d349af45c41268f3ab9ef6dc012bc7b74b8ff399a3819f75c92b408f272c03e31ff74d7f1aceda8a88e5755064236b87403d8ef2717567de174434 SHA512 72db3b88f61624d26e8ff7e37e4fc52ecd0bec0b6f076d935870c03312321c5e0b406d05eae7012872734a50626ed760dff2cf872e26ec18ebf200aff5ed12ef
diff --git a/app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch b/app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch
deleted file mode 100644
index bff97811771b..000000000000
--- a/app-emulation/open-vm-tools/files/10.1.0-mount.vmhgfs.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 1805ab024b10e8185175de7ce9c9b9db87fd0897 Mon Sep 17 00:00:00 2001
-From: Bernd Zeimetz <bernd@bzed.de>
-Date: Sun, 10 Jan 2016 22:18:04 +0100
-Subject: [PATCH] Fix mount.vmhgfs symlinks if DESTDIR is used
-
-Without this change symlinks in the form of
-sbin/mount.vmhgfs -> /build/open-vm-tools-10.0.5-3227872/debian/open-vm-tools/usr/sbin/mount.vmhgfs
-are being produced, if DESTDIR was uset while running make install.
----
- open-vm-tools/hgfsmounter/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/open-vm-tools/hgfsmounter/Makefile.am b/open-vm-tools/hgfsmounter/Makefile.am
-index e48417e..fe70892 100644
---- a/open-vm-tools/hgfsmounter/Makefile.am
-+++ b/open-vm-tools/hgfsmounter/Makefile.am
-@@ -33,14 +33,14 @@ install-exec-hook:
- mv $(DESTDIR)$(sbindir)/mount.vmhgfs \
- $(DESTDIR)$(sbindir)/mount_vmhgfs
- -$(MKDIR_P) $(DESTDIR)/sbin
-- -$(LN_S) $(DESTDIR)$(sbindir)/mount_vmhgfs \
-+ -$(LN_S) $(sbindir)/mount_vmhgfs \
- $(DESTDIR)/sbin/mount_vmhgfs &> /dev/null
- uninstall-hook:
- rm -f $(DESTDIR)$(sbindir)/mount_vmhgfs
- else
- install-exec-hook:
- -$(MKDIR_P) $(DESTDIR)/sbin
-- -$(LN_S) $(DESTDIR)$(sbindir)/mount.vmhgfs \
-+ -$(LN_S) $(sbindir)/mount.vmhgfs \
- $(DESTDIR)/sbin/mount.vmhgfs &> /dev/null
- uninstall-hook:
- rm -f $(DESTDIR)/sbin/mount.vmhgfs
diff --git a/app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch b/app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch
deleted file mode 100644
index b34e06d1a227..000000000000
--- a/app-emulation/open-vm-tools/files/11.0.1-udev-complaints.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From f1dab8ded45aaaa4b6993a4d96d0aefc700f1796 Mon Sep 17 00:00:00 2001
-From: Oliver Kurth <okurth@vmware.com>
-Date: Mon, 28 Oct 2019 16:12:42 -0700
-Subject: [PATCH] stop systemd-243 udev complaints #371
-
-Address issues from pull request #371 on github:
-- fix substiution variables for systemd-243
-- fix permissions of rules file
-See https://github.com/vmware/open-vm-tools/pull/371
----
- open-vm-tools/AUTHORS | 4 ++++
- open-vm-tools/udev/99-vmware-scsi-udev.rules | 6 +++---
- open-vm-tools/udev/Makefile.am | 4 ++--
- 3 files changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/open-vm-tools/AUTHORS b/open-vm-tools/AUTHORS
-index 08cc28ef2..026de07e6 100644
---- a/open-vm-tools/AUTHORS
-+++ b/open-vm-tools/AUTHORS
-@@ -49,3 +49,7 @@ Josh Paetzel Additional changes to vmmemctl.ko for FreeBSD 12.0 API changes.
-
- Haruki Tsurumoto Fix Asianux identification
- - https://github.com/vmware/open-vm-tools/pull/325
-+
-+MilhouseVH stop systemd-243 udev complaints
-+ - https://github.com/vmware/open-vm-tools/pull/371
-+
-diff --git a/open-vm-tools/udev/99-vmware-scsi-udev.rules b/open-vm-tools/udev/99-vmware-scsi-udev.rules
-index 053b59706..fb4ed6844 100644
---- a/open-vm-tools/udev/99-vmware-scsi-udev.rules
-+++ b/open-vm-tools/udev/99-vmware-scsi-udev.rules
-@@ -1,7 +1,7 @@
--# Copyright (C) 2016 VMware, Inc. All rights reserved.
-+# Copyright (C) 2016,2019 VMware, Inc. All rights reserved.
- #
- # This file is part of open-vm-tools
-
--ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="Virtual disk*", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'"
--ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="VMware Virtual S", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$DEVPATH/device/timeout'"
-+ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="Virtual disk*", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$env{DEVPATH}/device/timeout'"
-+ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="VMware*", ATTRS{model}=="VMware Virtual S", ENV{DEVTYPE}=="disk", RUN+="/bin/sh -c 'echo 180 >/sys$env{DEVPATH}/device/timeout'"
-
-diff --git a/open-vm-tools/udev/Makefile.am b/open-vm-tools/udev/Makefile.am
-index 68fbc3e27..c3baadf16 100644
---- a/open-vm-tools/udev/Makefile.am
-+++ b/open-vm-tools/udev/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2016,2019 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -17,5 +17,5 @@
-
- install-data-local:
- $(INSTALL) -d $(DESTDIR)$(UDEVRULESDIR)
-- $(INSTALL) $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR)
-+ $(INSTALL) -m 644 $(srcdir)/99-vmware-scsi-udev.rules $(DESTDIR)$(UDEVRULESDIR)
-
diff --git a/app-emulation/open-vm-tools/files/11.3.5-icu.patch b/app-emulation/open-vm-tools/files/11.3.5-icu.patch
new file mode 100644
index 000000000000..d51c0cc60a37
--- /dev/null
+++ b/app-emulation/open-vm-tools/files/11.3.5-icu.patch
@@ -0,0 +1,26 @@
+From 08caf83eaa0e66cee8f3e49479cd201a10bb3919 Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym@gentoo.org>
+Date: Sat, 25 Sep 2021 21:14:25 -0400
+Subject: [PATCH] lib/unicode: add ICU_LIBS to LDADD
+
+---
+ open-vm-tools/lib/unicode/Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/open-vm-tools/lib/unicode/Makefile.am b/open-vm-tools/lib/unicode/Makefile.am
+index 4284c51c..40261fba 100644
+--- a/open-vm-tools/lib/unicode/Makefile.am
++++ b/open-vm-tools/lib/unicode/Makefile.am
+@@ -25,7 +25,9 @@ libUnicode_la_SOURCES += unicodeSimpleTypes.c
+ libUnicode_la_SOURCES += unicodeSimpleOperations.c
+ libUnicode_la_SOURCES += unicodeSimpleTransforms.c
+ libUnicode_la_SOURCES += unicodeStatic.c
++libUnicode_la_LIBADD =
+
+ if HAVE_ICU
+ libUnicode_la_SOURCES += unicodeICU.c
++libUnicode_la_LIBADD += @ICU_LIBS@
+ endif
+--
+2.33.0
+
diff --git a/app-emulation/open-vm-tools/metadata.xml b/app-emulation/open-vm-tools/metadata.xml
index b3da7a11a515..f53e431f81a1 100644
--- a/app-emulation/open-vm-tools/metadata.xml
+++ b/app-emulation/open-vm-tools/metadata.xml
@@ -1,10 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>floppym@gentoo.org</email>
- <name>Mike Gilbert</name>
- </maintainer>
+ <!-- maintainer-needed -->
<longdescription>
The Open Virtual Machine Tools (open-vm-tools) are the open source
implementation of VMware Tools. They are a set of guest operating system
@@ -23,5 +20,6 @@
</use>
<upstream>
<remote-id type="github">vmware/open-vm-tools</remote-id>
+ <remote-id type="cpe">cpe:/a:vmware:tools</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/open-vm-tools/open-vm-tools-11.1.0.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild
index b9f5c70c0417..3b96f8c85ee9 100644
--- a/app-emulation/open-vm-tools/open-vm-tools-11.1.0.ebuild
+++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.0.ebuild
@@ -1,19 +1,19 @@
-# Copyright 2007-2020 Gentoo Authors
+# Copyright 2007-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools linux-info pam systemd toolchain-funcs
+inherit autotools linux-info pam systemd udev
-DESCRIPTION="Opensourced tools for VMware guests"
+DESCRIPTION="Tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
-MY_P="${P}-16036546"
+MY_P="${P}-21223074"
SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV}/${MY_P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl static-libs +vgauth"
+KEYWORDS="amd64 x86"
+IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth"
REQUIRED_USE="
multimon? ( X )
vgauth? ( ssl )
@@ -25,10 +25,11 @@ RDEPEND="
deploypkg? ( dev-libs/libmspack )
fuse? ( sys-fs/fuse:0 )
pam? ( sys-libs/pam )
- ssl? ( dev-libs/openssl:0 )
+ !pam? ( virtual/libcrypt:= )
+ ssl? ( dev-libs/openssl:0= )
vgauth? (
dev-libs/libxml2
- dev-libs/xmlsec
+ dev-libs/xmlsec:=
)
X? (
x11-libs/libXext
@@ -39,7 +40,7 @@ RDEPEND="
x11-libs/libXtst
x11-libs/libSM
x11-libs/libXcomposite
- x11-libs/gdk-pixbuf:2
+ x11-libs/gdk-pixbuf-xlib
x11-libs/gtk+:3
gtkmm? (
dev-cpp/gtkmm:3.0
@@ -61,14 +62,14 @@ DEPEND="${RDEPEND}
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
- doc? ( app-doc/doxygen )
+ doc? ( app-text/doxygen )
"
S="${WORKDIR}/${MY_P}"
PATCHES=(
- "${FILESDIR}/10.1.0-mount.vmhgfs.patch"
"${FILESDIR}/10.1.0-Werror.patch"
+ "${FILESDIR}/11.3.5-icu.patch"
)
pkg_setup() {
@@ -88,6 +89,7 @@ src_prepare() {
src_configure() {
local myeconfargs=(
+ --disable-glibc-check
--without-root-privileges
$(use_enable multimon)
$(use_with X x)
@@ -96,12 +98,13 @@ src_configure() {
$(use_enable doc docs)
--disable-tests
$(use_enable resolutionkms)
- $(use_enable static-libs static)
+ --disable-static
$(use_enable deploypkg)
$(use_with pam)
$(use_enable vgauth)
$(use_with dnet)
$(use_with icu)
+ --with-udev-rules-dir="$(get_udevdir)/rules.d"
)
# Avoid a bug in configure.ac
use ssl || myeconfargs+=( --without-ssl )
@@ -128,10 +131,6 @@ src_install() {
systemd_dounit "${FILESDIR}"/vmtoolsd.service
fi
- # Replace mount.vmhgfs with a wrapper
- mv "${ED}"/usr/sbin/{mount.vmhgfs,hgfsmounter} || die
- dosbin "${FILESDIR}/mount.vmhgfs"
-
# Make fstype = vmhgfs-fuse work in fstab
dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse
@@ -140,3 +139,11 @@ src_install() {
dobin scripts/common/vmware-xdg-detect-de
fi
}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/open-vm-tools/open-vm-tools-11.0.1-r1.ebuild b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild
index 3fb3beb6d1d3..3808185eb0fb 100644
--- a/app-emulation/open-vm-tools/open-vm-tools-11.0.1-r1.ebuild
+++ b/app-emulation/open-vm-tools/open-vm-tools-12.2.5.ebuild
@@ -1,19 +1,19 @@
-# Copyright 2007-2019 Gentoo Authors
+# Copyright 2007-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools linux-info pam systemd toolchain-funcs
+inherit autotools linux-info pam systemd udev
-DESCRIPTION="Opensourced tools for VMware guests"
+DESCRIPTION="Tools for VMware guests"
HOMEPAGE="https://github.com/vmware/open-vm-tools"
-MY_P="${P}-14773994"
+MY_P="${P}-21855600"
SRC_URI="https://github.com/vmware/open-vm-tools/releases/download/stable-${PV}/${MY_P}.tar.gz"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl static-libs +vgauth"
+KEYWORDS="amd64 x86"
+IUSE="X +deploypkg +dnet doc +fuse gtkmm +icu multimon pam +resolutionkms +ssl +vgauth"
REQUIRED_USE="
multimon? ( X )
vgauth? ( ssl )
@@ -25,10 +25,11 @@ RDEPEND="
deploypkg? ( dev-libs/libmspack )
fuse? ( sys-fs/fuse:0 )
pam? ( sys-libs/pam )
- ssl? ( dev-libs/openssl:0 )
+ !pam? ( virtual/libcrypt:= )
+ ssl? ( dev-libs/openssl:0= )
vgauth? (
dev-libs/libxml2
- dev-libs/xmlsec
+ dev-libs/xmlsec:=
)
X? (
x11-libs/libXext
@@ -39,7 +40,7 @@ RDEPEND="
x11-libs/libXtst
x11-libs/libSM
x11-libs/libXcomposite
- x11-libs/gdk-pixbuf:2
+ x11-libs/gdk-pixbuf-xlib
x11-libs/gtk+:3
gtkmm? (
dev-cpp/gtkmm:3.0
@@ -61,15 +62,14 @@ DEPEND="${RDEPEND}
BDEPEND="
dev-util/glib-utils
virtual/pkgconfig
- doc? ( app-doc/doxygen )
+ doc? ( app-text/doxygen )
"
S="${WORKDIR}/${MY_P}"
PATCHES=(
- "${FILESDIR}/10.1.0-mount.vmhgfs.patch"
"${FILESDIR}/10.1.0-Werror.patch"
- "${FILESDIR}/11.0.1-udev-complaints.patch"
+ "${FILESDIR}/11.3.5-icu.patch"
)
pkg_setup() {
@@ -77,6 +77,7 @@ pkg_setup() {
use X && CONFIG_CHECK+=" ~DRM_VMWGFX"
kernel_is -lt 3 9 || CONFIG_CHECK+=" ~VMWARE_VMCI ~VMWARE_VMCI_VSOCKETS"
kernel_is -lt 3 || CONFIG_CHECK+=" ~FUSE_FS"
+ kernel_is -lt 5 5 || CONFIG_CHECK+=" ~X86_IOPL_IOPERM"
linux-info_pkg_setup
}
@@ -88,6 +89,7 @@ src_prepare() {
src_configure() {
local myeconfargs=(
+ --disable-glibc-check
--without-root-privileges
$(use_enable multimon)
$(use_with X x)
@@ -96,12 +98,13 @@ src_configure() {
$(use_enable doc docs)
--disable-tests
$(use_enable resolutionkms)
- $(use_enable static-libs static)
+ --disable-static
$(use_enable deploypkg)
$(use_with pam)
$(use_enable vgauth)
$(use_with dnet)
$(use_with icu)
+ --with-udev-rules-dir="$(get_udevdir)/rules.d"
)
# Avoid a bug in configure.ac
use ssl || myeconfargs+=( --without-ssl )
@@ -128,10 +131,6 @@ src_install() {
systemd_dounit "${FILESDIR}"/vmtoolsd.service
fi
- # Replace mount.vmhgfs with a wrapper
- mv "${ED}"/usr/sbin/{mount.vmhgfs,hgfsmounter} || die
- dosbin "${FILESDIR}/mount.vmhgfs"
-
# Make fstype = vmhgfs-fuse work in fstab
dosym vmhgfs-fuse /usr/bin/mount.vmhgfs-fuse
@@ -140,3 +139,11 @@ src_install() {
dobin scripts/common/vmware-xdg-detect-de
fi
}
+
+pkg_postinst() {
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/pcem/Manifest b/app-emulation/pcem/Manifest
index 3129bda1758a..a350cb7eb993 100644
--- a/app-emulation/pcem/Manifest
+++ b/app-emulation/pcem/Manifest
@@ -1 +1 @@
-DIST PCemV16Linux.tar.gz 1859892 BLAKE2B e388031e661b9320cc783e6400bdb7c191a2f946d9c207d9a58daa9270115b32ed55ac6a0b87227b51d10168e7d161bb03811eb83f5405ed1a71f7bfc6fd8aa5 SHA512 97d33ae1c4b59f281abe553ed4297c0d6c3956cf32b44474bfd5773700dd5c4ea6c209c679b9add5d4a7cba61748ee9794afa3c59af3230fa2a15812e13fd1c5
+DIST PCemV17Linux.tar.gz 1880868 BLAKE2B 64068f0f98e8fe3e9bfe42a04f462375a7ee0cb8259b103237f3b0542f54ad13ed625a55c8379e2c54a87348ed504496a6b163419855ceeda8e4f18e1ea5dcd9 SHA512 6d84c8cbe9b6116f6439f542ac08139cfc5652a34b615a1ed841a6f8c227e77f1d26573ec35d57511b9a69e7472fbe51f2abb9307f8f8c1207c74fbe8107cadd
diff --git a/app-emulation/pcem/files/pcem-15-respect-cflags.patch b/app-emulation/pcem/files/pcem-15-respect-cflags.patch
deleted file mode 100644
index 734812a69daa..000000000000
--- a/app-emulation/pcem/files/pcem-15-respect-cflags.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/configure.ac 2019-05-19 18:40:05.000000000 +0200
-+++ b/configure.ac 2019-09-21 17:34:53.499993726 +0200
-@@ -31,8 +31,8 @@
- CXXFLAGS="-Wall -O0 -g -D_DEBUG"
- AC_MSG_RESULT([yes])
- else
-- CFLAGS="-O3"
-- CXXFLAGS="-O3"
-+ CFLAGS?="-O3"
-+ CXXFLAGS?="-O3"
- AC_MSG_RESULT([no])
- fi
-
diff --git a/app-emulation/pcem/files/pcem-17-respect-cflags.patch b/app-emulation/pcem/files/pcem-17-respect-cflags.patch
new file mode 100644
index 000000000000..0e9d28885595
--- /dev/null
+++ b/app-emulation/pcem/files/pcem-17-respect-cflags.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,8 +31,6 @@
+ CXXFLAGS="-Wall -O0 -g -D_DEBUG -fcommon"
+ AC_MSG_RESULT([yes])
+ else
+- CFLAGS="-O3 -fcommon"
+- CXXFLAGS="-O3 -fcommon"
+ AC_MSG_RESULT([no])
+ fi
+
diff --git a/app-emulation/pcem/metadata.xml b/app-emulation/pcem/metadata.xml
index b25ac367e489..2e2c78f17257 100644
--- a/app-emulation/pcem/metadata.xml
+++ b/app-emulation/pcem/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>conikost@gentoo.org</email>
diff --git a/app-emulation/pcem/pcem-16-r1.ebuild b/app-emulation/pcem/pcem-17-r2.ebuild
index 42c969775c84..47e17b588639 100644
--- a/app-emulation/pcem/pcem-16-r1.ebuild
+++ b/app-emulation/pcem/pcem-17-r2.ebuild
@@ -1,11 +1,10 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools desktop wxwidgets
-
-WX_GTK_VER="3.0-gtk3"
+WX_GTK_VER="3.2-gtk3"
+inherit autotools desktop flag-o-matic wxwidgets
DESCRIPTION="A PC emulator that specializes in running old operating systems and software"
HOMEPAGE="
@@ -13,26 +12,25 @@ HOMEPAGE="
https://github.com/sarah-walker-pcem/pcem/
"
SRC_URI="https://pcem-emulator.co.uk/files/PCemV${PV}Linux.tar.gz"
+S="${WORKDIR}"
LICENSE="GPL-2+"
SLOT="0"
KEYWORDS="amd64"
IUSE="alsa networking"
-S="${WORKDIR}"
-
RDEPEND="
alsa? ( media-libs/alsa-lib )
media-libs/libsdl2
media-libs/openal
x11-libs/wxGTK:${WX_GTK_VER}[tiff,X]
"
-
-DEPEND="${DEPEND}"
-
+DEPEND="${RDEPEND}"
BDEPEND="virtual/pkgconfig"
-PATCHES=( "${FILESDIR}/${PN}-15-respect-cflags.patch" )
+DOCS=( "README.md" "TESTED.md" )
+
+PATCHES=( "${FILESDIR}/${PN}-17-respect-cflags.patch" )
src_prepare() {
default
@@ -41,14 +39,22 @@ src_prepare() {
}
src_configure() {
+ setup-wxwidgets
+
# Does not compile with -fno-common.
# See https://pcem-emulator.co.uk/phpBB3/viewtopic.php?f=3&t=3443
append-cflags -fcommon
+ # LTO needs to be filtered
+ # See https://bugs.gentoo.org/854528
+ filter-lto
+ append-flags -fno-strict-aliasing
+
local myeconfargs=(
--enable-release-build
$(use_enable alsa)
$(use_enable networking)
+ --with-wx-config="${WX_CONFIG}"
)
econf "${myeconfargs[@]}"
@@ -63,7 +69,7 @@ src_install() {
newicon src/icons/32x32/motherboard.png pcem.png
make_desktop_entry "pcem" "PCem" pcem "Development;Utility"
- dodoc readme.txt
+ einstalldocs
}
pkg_postinst() {
diff --git a/app-emulation/phpvirtualbox/metadata.xml b/app-emulation/phpvirtualbox/metadata.xml
index 2ee0da8b117c..ead318766d1d 100644
--- a/app-emulation/phpvirtualbox/metadata.xml
+++ b/app-emulation/phpvirtualbox/metadata.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<upstream>
- <remote-id type="google-code">phpvirtualbox</remote-id>
+ <remote-id type="github">phpvirtualbox/phpvirtualbox</remote-id>
<remote-id type="sourceforge">phpvirtualbox</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/plus42/Manifest b/app-emulation/plus42/Manifest
new file mode 100644
index 000000000000..a39ba8b0a7ae
--- /dev/null
+++ b/app-emulation/plus42/Manifest
@@ -0,0 +1,2 @@
+DIST plus42-upstream-1.1.3.tgz 7610112 BLAKE2B 6c55a8c2acebbc0e442308e0f078d2ac86f9866d9dbe808a17007a3c3729114f24379401267787107d11e4f3559e14c86f39051da3a956928a7c4c97c1867c31 SHA512 05fd0fb3f330ad0842d28df46ec89d3347cbfca776c6e73092261a96f860677d8f9a6de96ee98adfed4abe5d950a45cec6e6056bb97dd471204d644cbdb82d10
+DIST plus42-upstream-1.1.9.tgz 7612675 BLAKE2B d6b05221b11705c553be2cabe8adc81b892861b86aeb3b234e7fef44bb79551b74f94caaa563f3fa55bc62f988545493d118bab488818cc835ccbfd309c95874 SHA512 bbfd519006c3f24de469a0c928271edb9a2ee92c32bf1eccb313fffb4e13e461875f608561149b8d8de57565cb835c407c7ee2bcf959b198a728669160ff85f6
diff --git a/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch
new file mode 100644
index 000000000000..283c6c1435be
--- /dev/null
+++ b/app-emulation/plus42/files/plus42-1.0.12-fix-build-intel-lib.patch
@@ -0,0 +1,65 @@
+diff -Naur free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh free42-nologo-3.0.16/gtk/build-intel-lib.sh
+--- free42-nologo-3.0.16.orig/gtk/build-intel-lib.sh 2022-10-29 17:03:11.000000000 +0200
++++ free42-nologo-3.0.16/gtk/build-intel-lib.sh 2022-11-06 22:09:42.384802729 +0100
+@@ -10,13 +10,6 @@
+ fi
+ fi
+
+-which gcc >/dev/null
+-if [ $? -eq 0 ]; then
+- CC=gcc
+-else
+- CC=cc
+-fi
+-
+ # Hack to support FreeBSD; not 100% sure what this does, but it produces a
+ # library that passes all tests.
+
+@@ -64,8 +57,11 @@
+ ;;
+ esac
+
++patch -p0 <../intel-lib-custom-cc.patch
++
+ cd LIBRARY
+-$MK $OS_ARG CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
++echo $MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
++$MK $OS_ARG A=a CC=$CC CALL_BY_REF=1 GLOBAL_RND=1 GLOBAL_FLAGS=1 UNCHANGED_BINARY_FLAGS=0 $ENDIAN_ARG
+ mv libbid.a ../../gcc111libbid.a
+ cd ../..
+ ( echo '#ifdef FREE42_FPTEST'; echo 'const char *readtest_lines[] = {'; tr -d '\r' < IntelRDFPMathLib20U1/TESTS/readtest.in | sed 's/^\(.*\)$/"\1",/'; echo '0 };'; echo '#endif' ) > readtest_lines.cc
+diff -Naur free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch
+--- free42-nologo-3.0.16.orig/gtk/intel-lib-custom-cc.patch 1970-01-01 01:00:00.000000000 +0100
++++ free42-nologo-3.0.16/gtk/intel-lib-custom-cc.patch 2022-11-06 22:18:35.428433045 +0100
+@@ -0,0 +1,31 @@
++diff -Naur orig/LIBRARY/makefile.iml_head LIBRARY/makefile.iml_head
++--- orig/LIBRARY/makefile.iml_head 2011-07-12 17:26:21.000000000 +0200
+++++ LIBRARY/makefile.iml_head 2022-11-06 22:18:17.048411637 +0100
++@@ -527,12 +527,8 @@
++ CC_TYPES := gcc cl
++ INTEL_CC_LIST := icc icl
++
++-CC_NAME_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
++-ifeq ($(CC_NAME_INDEX),)
++- $(error "Unknown CC_NAME ($(CC_NAME)). Must be one of $(CC_NAME_LIST))
++-endif
++
++-CC_INDEX := $(call GetIndex,$(CC_NAME),$(CC_NAME_LIST))
+++CC_INDEX := 3
++ CC_TYPE := $(word $(CC_INDEX),$(CC_TYPE_LIST))
++ CC_TYPE_INDEX := $(call GetIndex,$(CC_TYPE),$(CC_TYPES))
++
++@@ -543,13 +539,6 @@
++ _CPP := $(CC_NAME) $(call CcNameSelect,-EP,-EP,-E -P,-EP)
++ _CC := $(CC_NAME) $(call CcNameSelect,, -nologo,, -nologo)
++
++-ifeq ($(origin CC),default)
++- CC := $(_CC)
++-endif
++-ifeq ($(origin CPP),default)
++- CPP := $(_CPP)
++-endif
++-
++ CselCc = $(call Cset,$1,$(call CcTypeSelect,$2,$3))
++
++ QOPT := $(call CselCc, QOPT, -, /Q )
diff --git a/app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch b/app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch
new file mode 100644
index 000000000000..b66c15b89b5a
--- /dev/null
+++ b/app-emulation/plus42/files/plus42-1.0.9-fix-makefile.patch
@@ -0,0 +1,25 @@
+diff -Naur plus42-upstream-1.0.9.orig/gtk/Makefile plus42-upstream-1.0.9/gtk/Makefile
+--- plus42-upstream-1.0.9.orig/gtk/Makefile 2022-06-19 14:44:32.000000000 +0200
++++ plus42-upstream-1.0.9/gtk/Makefile 2022-07-04 19:37:35.533799322 +0200
+@@ -40,9 +40,10 @@
+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS=1 \
+ -DDECIMAL_GLOBAL_EXCEPTION_FLAGS_ACCESS_FUNCTIONS=1
+
+-CXXFLAGS = $(CFLAGS) \
++CXXFLAGS := $(CFLAGS) \
+ -fno-rtti \
+- -D_WCHAR_T_DEFINED
++ -D_WCHAR_T_DEFINED \
++ ${CXXFLAGS}
+
+ LIBS = gcc111libbid.a $(shell $(PKG_CONFIG) --libs gtk+-3.0)
+
+@@ -121,7 +122,7 @@
+ ./keymap2cc
+
+ gcc111libbid.a:
+- sh ./build-intel-lib.sh
++ +sh ./build-intel-lib.sh
+ ln -s IntelRDFPMathLib20U1/TESTS/readtest.c
+
+ symlinks:
diff --git a/app-emulation/plus42/metadata.xml b/app-emulation/plus42/metadata.xml
new file mode 100644
index 000000000000..3104198ce549
--- /dev/null
+++ b/app-emulation/plus42/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>voyageur@gentoo.org</email>
+ <name>Bernard Cafarelli</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">thomasokken/plus42desktop</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/plus42/plus42-1.1.3.ebuild b/app-emulation/plus42/plus42-1.1.3.ebuild
new file mode 100644
index 000000000000..b779379a5982
--- /dev/null
+++ b/app-emulation/plus42/plus42-1.1.3.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV="${PN}-upstream-${PV}"
+
+DESCRIPTION="An Enhanced HP-42S Calculator Simulator"
+HOMEPAGE="https://thomasokken.com/plus42/"
+SRC_URI="https://thomasokken.com/plus42/upstream/${MY_PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa"
+
+DEPEND="app-accessibility/at-spi2-core
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ alsa? ( media-libs/alsa-lib )"
+
+RDEPEND="${DEPEND}"
+
+DOCS=( CREDITS HISTORY README )
+S="${WORKDIR}/${MY_PV}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.9-fix-makefile.patch"
+ "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch"
+)
+
+src_prepare() {
+ default
+}
+
+src_compile() {
+ local myconf
+ use alsa && myconf="AUDIO_ALSA=yes"
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk
+ emake -C gtk clean
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk
+}
+
+src_install() {
+ default
+ dobin gtk/plus42bin gtk/plus42dec
+}
diff --git a/app-emulation/plus42/plus42-1.1.9.ebuild b/app-emulation/plus42/plus42-1.1.9.ebuild
new file mode 100644
index 000000000000..3916a804001b
--- /dev/null
+++ b/app-emulation/plus42/plus42-1.1.9.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV="${PN}-upstream-${PV}"
+
+DESCRIPTION="An Enhanced HP-42S Calculator Simulator"
+HOMEPAGE="https://thomasokken.com/plus42/"
+SRC_URI="https://thomasokken.com/plus42/upstream/${MY_PV}.tgz"
+S=${WORKDIR}/${MY_PV}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+alsa"
+
+DEPEND="app-accessibility/at-spi2-core
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:3
+ alsa? ( media-libs/alsa-lib )"
+RDEPEND="${DEPEND}"
+
+DOCS=( CREDITS HISTORY README )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.9-fix-makefile.patch"
+ "${FILESDIR}/${PN}-1.0.12-fix-build-intel-lib.patch"
+)
+
+src_prepare() {
+ default
+}
+
+src_compile() {
+ local myconf
+ use alsa && myconf="AUDIO_ALSA=yes"
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" ${myconf} -C gtk
+ emake -C gtk clean
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)" BCD_MATH=1 ${myconf} -C gtk
+}
+
+src_install() {
+ default
+ dobin gtk/plus42bin gtk/plus42dec
+}
diff --git a/app-emulation/protontricks/Manifest b/app-emulation/protontricks/Manifest
index afc7360b5036..792b86075eb6 100644
--- a/app-emulation/protontricks/Manifest
+++ b/app-emulation/protontricks/Manifest
@@ -1,2 +1,2 @@
-DIST protontricks-1.4.1.tar.gz 31838 BLAKE2B b8c94a1b96fa7df14eaf1cc6d11cb96e43ae4e8c7bd232687a50cae9c79cf2d0e7864b1af0e1dc4cc20086952e1fcefeb16cb71a9c3a977f6feafad1b17d6857 SHA512 7635c9830afa3c64617514cd86edc7d7f9f33e6e81a1da995ec8bee70adc1cf8b5d9de92036c372134e408d735615b267b46a9afc9246f14ff161cb2ee1fc8f9
-DIST protontricks-1.4.2.gh.tar.gz 41381 BLAKE2B 9030c5cc0781303834af3b478e78f9ba43f01c68c5e203df20a9db80492dd5e641134b796158011a15e65f6907f27a67c542323ea8f9e10c49dca3f5c663458a SHA512 8b60233723130e5f7cd1a7ce7b9563ba1cc8595352b6d942d9ce66a6906f18d86cf97e2b49cbdb8e276fad6cd038eaf1de8a704a8b900b29de5dfb7327b045d0
+DIST protontricks-1.10.5.tar.gz 163931 BLAKE2B 299fd6c77460de3d2fa1b585a1ad3dae857e4b78898c753007b358cc25b82918d33cb31c2028a4b1b562ee6c20b95ebafc532d97e2bc1fa5358464c6a4c1da5c SHA512 305b27ceaf428946a0ed09994173c861da1097c0bd21eebcc8b255bed3c4c50a920f0cc422601fbd44e0af373b71e928096fdd6f4cc2aa05c88126212fb4401f
+DIST protontricks-1.11.1.tar.gz 166843 BLAKE2B af6692b081d1d819bef39fd69c2108454b6dfcc29b004415a73aa0c0463e3887ddffe0e10864799f665f81fc90e5365accab1722af046f50a08bb7ba221f7e23 SHA512 eb0233180ba41c91ba78072ea2aabe9e8fea5b452fba0fd56aaf17e0282b0ee04e81d3665a7be546e3112382e0b574bb077af6b6be6ad2156dabc3112a1b831b
diff --git a/app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch b/app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch
deleted file mode 100644
index fac3ed813d4e..000000000000
--- a/app-emulation/protontricks/files/protontricks-1.4.1_no-setuptools-scm.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Since version 1.4.1 upstream has used setuptools-scm to determine the
-current version number. Unfortunately the package in question does not
-support GitHub release archives, using GitHub VCS snapshots would require
-retrieving and updating commit hashes corresponding to release tags, and
-PyPI tarballs do not contain tests. setuptools_scm_git_archive does not
-help because it requires extra files to be included in the repository,
-which upstream has not done.
-
-Seeing as we already know the version number, bypass setuptools_scm
-altogether and create the version file ourselves. For obvious reasons the
-latter cannot be done with a patch alone - have to call sed in src_prepare.
-
---- a/setup.py
-+++ b/setup.py
-@@ -16,9 +16,6 @@
-
- setup(
- name="protontricks",
-- use_scm_version={
-- "write_to": "src/protontricks/_version.py"
-- },
- description=DESCRIPTION,
- long_description=LONG_DESCRIPTION,
- author=AUTHOR,
-@@ -28,7 +25,6 @@
- packages=["protontricks"],
- package_data={"": ["LICENSE"]},
- package_dir={"protontricks": "src/protontricks"},
-- setup_requires=["setuptools_scm"],
- install_requires=["vdf>=2.4"],
- entry_points={
- "console_scripts": [
---- /dev/null
-+++ b/src/protontricks/_version.py
-@@ -0,0 +1 @@
-+version = '@VERSION@'
diff --git a/app-emulation/protontricks/metadata.xml b/app-emulation/protontricks/metadata.xml
index e18d1ed94ac5..c813e008582a 100644
--- a/app-emulation/protontricks/metadata.xml
+++ b/app-emulation/protontricks/metadata.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>marecki@gentoo.org</email>
<name>Marek Szuba</name>
</maintainer>
+ <stabilize-allarches/>
<longdescription lang="en">
A simple wrapper script that allows you to easily run Winetricks commands for Steam Play/Proton
games. This is often useful when a game requires closed-source runtime libraries that are not
diff --git a/app-emulation/protontricks/protontricks-1.4.1.ebuild b/app-emulation/protontricks/protontricks-1.10.5.ebuild
index cd8f8b2402a3..4c4ddf7953ad 100644
--- a/app-emulation/protontricks/protontricks-1.4.1.ebuild
+++ b/app-emulation/protontricks/protontricks-1.10.5.ebuild
@@ -1,31 +1,27 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
+EAPI=8
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_SETUPTOOLS=rdepend
-inherit distutils-r1
+DISTUTILS_USE_PEP517=setuptools
+
+inherit distutils-r1 pypi xdg-utils
DESCRIPTION="app-emulation/winetricks wrapper for Proton (Steam Play) games"
HOMEPAGE="https://github.com/Matoking/protontricks"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64"
IUSE="+gui"
-BDEPEND="
- $(python_gen_cond_dep '
- dev-python/setuptools_scm[${PYTHON_USEDEP}]
- ')"
-RDEPEND="${PYTHON_DEPS}
- app-emulation/winetricks
+RDEPEND="app-emulation/winetricks
$(python_gen_cond_dep '
- dev-python/vdf[${PYTHON_MULTI_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/vdf[${PYTHON_USEDEP}]
')
gui? ( gnome-extra/zenity
|| (
@@ -33,14 +29,17 @@ RDEPEND="${PYTHON_DEPS}
app-emulation/winetricks[kde]
)
)"
+BDEPEND="$(python_gen_cond_dep '
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+')"
-# Tarballs from PyPI do not contain tests, and we cannot use GitHub releases
-# any more because they are incompatible with setuptools_scm.
-RESTRICT="test"
+DOCS=( CHANGELOG.md README.md )
-DOCS=(CHANGELOG.md README.md)
+distutils_enable_tests pytest
pkg_postinst() {
+ xdg_desktop_database_update
+
elog
if ! use gui; then
@@ -53,3 +52,7 @@ pkg_postinst() {
elog "Make sure to run a Proton game at least once before trying to use protontricks on it."
elog
}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+}
diff --git a/app-emulation/protontricks/protontricks-1.4.2.ebuild b/app-emulation/protontricks/protontricks-1.11.1.ebuild
index aff61b39a84c..fc9689a51050 100644
--- a/app-emulation/protontricks/protontricks-1.4.2.ebuild
+++ b/app-emulation/protontricks/protontricks-1.11.1.ebuild
@@ -1,18 +1,16 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6..9} pypy3 )
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
DISTUTILS_SINGLE_IMPL=1
-DISTUTILS_USE_SETUPTOOLS=rdepend
+DISTUTILS_USE_PEP517=setuptools
-inherit distutils-r1
+inherit distutils-r1 pypi xdg-utils
DESCRIPTION="app-emulation/winetricks wrapper for Proton (Steam Play) games"
HOMEPAGE="https://github.com/Matoking/protontricks"
-# Will remove the .gh bit come next version bump
-SRC_URI="https://github.com/Matoking/${PN}/archive/${PV}.tar.gz -> ${P}.gh.tar.gz"
LICENSE="GPL-3"
SLOT="0"
@@ -21,6 +19,8 @@ IUSE="+gui"
RDEPEND="app-emulation/winetricks
$(python_gen_cond_dep '
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/vdf[${PYTHON_USEDEP}]
')
gui? ( gnome-extra/zenity
@@ -29,21 +29,17 @@ RDEPEND="app-emulation/winetricks
app-emulation/winetricks[kde]
)
)"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.4.1_no-setuptools-scm.patch
-)
+BDEPEND="$(python_gen_cond_dep '
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+')"
DOCS=( CHANGELOG.md README.md )
distutils_enable_tests pytest
-python_prepare_all() {
- distutils-r1_python_prepare_all
- sed -i -e "s/@VERSION@/${PV}/" "${S}"/src/${PN}/_version.py || die
-}
-
pkg_postinst() {
+ xdg_desktop_database_update
+
elog
if ! use gui; then
@@ -56,3 +52,7 @@ pkg_postinst() {
elog "Make sure to run a Proton game at least once before trying to use protontricks on it."
elog
}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+}
diff --git a/app-emulation/punes/Manifest b/app-emulation/punes/Manifest
index 44c8a05db29c..8161798f4ed7 100644
--- a/app-emulation/punes/Manifest
+++ b/app-emulation/punes/Manifest
@@ -1 +1 @@
-DIST punes-0.106.tar.gz 5595484 BLAKE2B aa3bb5c869e679b19829a3d1de970517d6d626e0ed2404a9ed09d16af8fabb1ee3258ec8fbb4027fb6b70b5449b2bb7ac6880f43c3ba846687c65d8a0eeaf3f2 SHA512 f35c5cee05464cb11f130938cf7aa519d4dea35dbf52ce3606c3c6bb2596bc59b75e11816a5b44c7b1c9d402a299b4db49727087b4c93c3cb2ba473adfdd4fa2
+DIST punes-0.111.tar.gz 57538299 BLAKE2B a900fe2bc9117e6739e58a43e457bfa466053d5a96ae5ad1333d7e0bc11eafb2408a96dc7e35ddf1a3cee50cafe99549a43d2abb629b106bbb1082878a845cc6 SHA512 6388cdf2b303e217adfe43b1b3b1ef66a75b6adfdb0363b213c47fc129b5815f3e96814ee25a3637147dc184203cef0438930c280f0c6249085ecac1220b435c
diff --git a/app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch b/app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch
new file mode 100644
index 000000000000..065483ad058f
--- /dev/null
+++ b/app-emulation/punes/files/punes-0.111-FULLSCREEN_RESFREQ-fix.patch
@@ -0,0 +1,33 @@
+From e1516fcefe3dcc9710ae85cce0f536fd2d9fdcd6 Mon Sep 17 00:00:00 2001
+From: Fabio Cavallo <punes.development@gmail.com>
+Date: Sat, 23 Mar 2024 10:34:34 +0100
+Subject: [PATCH] Fixed compilation with FULLSCREEN_RESFREQ disabled (#388).
+
+--- a/src/core/emu.c
++++ b/src/core/emu.c
+@@ -43,11 +43,11 @@
+ #include "recent_roms.h"
+ #include "../../c++/crc/crc.h"
+ #include "gui.h"
++#include "nes20db.h"
+ #include "video/effects/pause.h"
+ #include "video/effects/tv_noise.h"
+ #if defined (FULLSCREEN_RESFREQ)
+ #include "video/gfx_monitor.h"
+-#include "nes20db.h"
+ #endif
+
+ #define RS_SCALE (1.0f / (1.0f + (float)RAND_MAX))
+--- a/src/gui/wdgOverlayUi.cpp
++++ b/src/gui/wdgOverlayUi.cpp
+@@ -34,9 +34,9 @@
+ #include "rewind.h"
+ #include "version.h"
+ #include "nes.h"
++#include "input/standard_controller.h"
+ #if defined (FULLSCREEN_RESFREQ)
+ #include "video/gfx_monitor.h"
+-#include "input/standard_controller.h"
+ #endif
+
+ void overlay_info_append_qstring(BYTE alignment, const QString &msg);
diff --git a/app-emulation/punes/metadata.xml b/app-emulation/punes/metadata.xml
index 23b1c9a0b21e..5008ea7a724f 100644
--- a/app-emulation/punes/metadata.xml
+++ b/app-emulation/punes/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>azamat.hackimov@gmail.com</email>
<name>Azamat H. Hackimov</name>
</maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
diff --git a/app-emulation/punes/punes-0.106.ebuild b/app-emulation/punes/punes-0.106.ebuild
deleted file mode 100644
index 1cdb9cc4f012..000000000000
--- a/app-emulation/punes/punes-0.106.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools xdg-utils
-
-DESCRIPTION="Nintendo Entertainment System (NES) emulator"
-HOMEPAGE="https://github.com/punesemu/puNES"
-SRC_URI="https://github.com/punesemu/puNES/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="cg"
-
-RDEPEND="
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- media-libs/alsa-lib
- virtual/glu
- virtual/opengl"
-DEPEND="${RDEPEND}"
-BDEPEND="
- cg? ( media-gfx/nvidia-cg-toolkit )
- dev-qt/linguist-tools:5
- virtual/pkgconfig"
-
-S="${WORKDIR}/puNES-${PV}"
-
-src_prepare() {
- default
-
- sed -i "/update-desktop-database/d" misc/Makefile.am || die
- eautoreconf
- # FIXME why eautoreconf can't handle this?
- cd "src/extra/lib7zip-1.6.5" || die
- eautoreconf
-}
-
-src_configure() {
- econf \
- $(use_with cg opengl-nvidia-cg)
-}
-
-pkg_postinst() {
- xdg_icon_cache_update
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
-}
-
-pkg_postrm() {
- xdg_icon_cache_update
- xdg_desktop_database_update
- xdg_mimeinfo_database_update
-}
diff --git a/app-emulation/punes/punes-0.111.ebuild b/app-emulation/punes/punes-0.111.ebuild
new file mode 100644
index 000000000000..03071411bec5
--- /dev/null
+++ b/app-emulation/punes/punes-0.111.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg
+
+DESCRIPTION="Nintendo Entertainment System (NES) emulator"
+HOMEPAGE="https://github.com/punesemu/puNES"
+SRC_URI="https://github.com/punesemu/puNES/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/puNES-${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="X cg ffmpeg qt6"
+
+RDEPEND="
+ media-libs/alsa-lib
+ media-libs/libglvnd[X?]
+ virtual/glu
+ virtual/udev
+ X? (
+ x11-libs/libX11
+ x11-libs/libXrandr
+ )
+ cg? ( media-gfx/nvidia-cg-toolkit )
+ ffmpeg? ( media-video/ffmpeg:= )
+ qt6? (
+ dev-qt/qtbase:6[gui,network,opengl,widgets]
+ dev-qt/qtsvg:6
+ )
+ !qt6? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ )"
+
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-base/xorg-proto )"
+BDEPEND="
+ virtual/pkgconfig
+ qt6? ( dev-qt/qttools[linguist] )
+ !qt6? ( dev-qt/linguist-tools:5 )"
+
+PATCHES=(
+ "${FILESDIR}/punes-0.111-FULLSCREEN_RESFREQ-fix.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_GIT_INFO=OFF
+ -DENABLE_QT6_LIBS=$(usex qt6)
+ -DDISABLE_PORTABLE_MODE=OFF
+ -DENABLE_FFMPEG=$(usex ffmpeg)
+ -DENABLE_FULLSCREEN_RESFREQ=$(usex X)
+ -DENABLE_OPENGL_CG=$(usex cg)
+ )
+ cmake_src_configure
+}
diff --git a/app-emulation/q4wine/Manifest b/app-emulation/q4wine/Manifest
index 354fecf5321e..5f97e112b9a9 100644
--- a/app-emulation/q4wine/Manifest
+++ b/app-emulation/q4wine/Manifest
@@ -1 +1 @@
-DIST q4wine-1.3.12.tar.bz2 2875348 BLAKE2B 0656574542c218163a0d7bef6d09459e7816a936f1d4c2fcf3ee15416aca23f6c97895b7f2f34e9a40b64f904cad579062ab173cc93f00c543a1ae861bf3f179 SHA512 c384c5c57b3bbea9f5ba2940e990c7ff28c9f410c9abd33fe1f17973b67bdf85dad4c74809ad3a225eaea49796221ab04e2e29dd81ea8ef7015e9b7adf9ab44e
+DIST q4wine-1.3.13.tar.bz2 2862153 BLAKE2B ad70ec0c4122d7eb6acc14976fc8194e1250beadd38762f726ccb9f40fe0f61e5c46fa40727fd2323521db4ba01a759c678d5ead7cb247fdd2e7da6ae47d9e05 SHA512 1e364519889713192f39115093740827c96ee33092ac0a3ee6c548790fc380687481e999bfb0e9df725e6497877d6b3808714a698f794e97ad86c360d505509b
diff --git a/app-emulation/q4wine/metadata.xml b/app-emulation/q4wine/metadata.xml
index 098a455159e2..d5f783f41ca2 100644
--- a/app-emulation/q4wine/metadata.xml
+++ b/app-emulation/q4wine/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>qt@gentoo.org</email>
diff --git a/app-emulation/q4wine/q4wine-1.3.12.ebuild b/app-emulation/q4wine/q4wine-1.3.13.ebuild
index 81b76c34c437..b5d1301ef420 100644
--- a/app-emulation/q4wine/q4wine-1.3.12.ebuild
+++ b/app-emulation/q4wine/q4wine-1.3.13.ebuild
@@ -1,25 +1,23 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
# Upstream names the package PV-rX. We change that to
# PV_pX so we can use portage revisions.
MY_P=${PN}-${PV/_p/-r}
-inherit xdg cmake
+inherit cmake xdg
DESCRIPTION="Qt GUI configuration tool for Wine"
HOMEPAGE="https://q4wine.brezblock.org.ua/"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
+S="${WORKDIR}"/${MY_P}
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="+dbus debug +ico +iso +wineappdb"
-BDEPEND="
- dev-qt/linguist-tools:5
-"
DEPEND="
dev-qt/qtcore:5
dev-qt/qtgui:5
@@ -37,8 +35,7 @@ RDEPEND="${DEPEND}
>=sys-apps/which-2.19
iso? ( sys-fs/fuseiso )
"
-
-S="${WORKDIR}"/${MY_P}
+BDEPEND="dev-qt/linguist-tools:5"
DOCS=( AUTHORS ChangeLog README )
diff --git a/app-emulation/qemu-guest-agent/Manifest b/app-emulation/qemu-guest-agent/Manifest
index 51faa0caf06a..44032f6790ed 100644
--- a/app-emulation/qemu-guest-agent/Manifest
+++ b/app-emulation/qemu-guest-agent/Manifest
@@ -1,4 +1,6 @@
-DIST qemu-3.1.0.tar.xz 36070104 BLAKE2B 9ed7d1b3256d84f2b73d61763e20f5e4bc5b47d56e4e0d56cf4c29cd25669457b0f08e90d7255589c9666400bb310df3dba3b9290232cad18057b20f08013a3b SHA512 7e8dae823937cfac2f0c60406bd3bdcb89df40313dab2a4bed327d5198f7fcc68ac8b31e44692caa09299cc71256ee0b8c17e4f49f78ada8043d424f5daf82fe
-DIST qemu-4.0.0.tar.xz 55628624 BLAKE2B 8afd1f54aa13d2e61fd36c4f4544b7c4ffb1a7eee5c69d3aa1d40a432ca296ad8abe6cb83d7c66ac4045ca624d2a00e737f51e4e62ed46fef9766ef71f43b98b SHA512 952e94194ce9e64c15388c59035cb31fb9f761d30095c2fb9441012b609c18c9976285727b93bf37b95e15675802d73f8e1c4619ebecd23606675bb503646b13
-DIST qemu-4.2.0.tar.xz 62222068 BLAKE2B 27c9fbcd5093af425764674817ab9299224bd03f37b5983786f6f437fff1fab3b7da247c55c4ca8b8c42726b9867005944a2f7f04f2d0d94d753961615f901ef SHA512 2a79973c2b07c53e8c57a808ea8add7b6b2cbca96488ed5d4b669ead8c9318907dec2b6109f180fc8ca8f04c0f73a56e82b3a527b5626b799d7e849f2474ec56
-DIST qemu-5.0.0.tar.xz 62426192 BLAKE2B 785d02ef79c95b5c4f0556186054885f9893d4e8a9f4b4f2d6199a4e1ae9c31d7c79dd900305469217f85d61bbe74134b601d5c6c1b0eee2b74792d010f1fd63 SHA512 21ef0cbe107c468a40f0fa2635db2a40048c8790b629dfffca5cd62bb1b502ea8eb133bfc40df5ecf1489e2bffe87f6829aee041cb8a380ff04a8afa23b39fcf
+DIST qemu-6.0.0.tar.xz 107333232 BLAKE2B 7746329d3e13782b7c346ce4052cc517cfc65cd9b2d514d199e4d5b8570ca79566ec04b0c114db2e97c84e68eb551e0d4cdce1b14b91a88fe08d2a5f682c1418 SHA512 ee3ff00aebec4d8891d2ff6dabe4e667e510b2a4fe3f6190aa34673a91ea32dcd2db2e9bf94c2f1bf05aa79788f17cfbbedc6027c0988ea08a92587b79ee05e4
+DIST qemu-7.1.0.tar.xz 121833004 BLAKE2B e05f91ce4993c7591a2df08b5fb017f8b8ec2141ab7bfd55d14730ea6b793ac1091de539992058392a5522d4e58beee92a87752707be58e3619b8213ef9f35bf SHA512 c60c5ff8ec99b7552e485768908920658fdd8035ff7a6fa370fb6881957dc8b7e5f18ff1a8f49bd6aa22909ede2a7c084986d8244f12074ccd33ebe40a0c411f
+DIST qemu-8.0.0.tar.xz 127835148 BLAKE2B 9b54aae10fe09691a26e68374723ded5fdda6409673b4de9461a25ee060cfd03968a16ddeadc21d48b9262e53aa6d4e5eb645376969f97c65807fad19607b04f SHA512 1f31d1e653dec2d35f1b7a5468ee3f471553b48eca8c8afafffcf9243c6b2260e78a5b73da3fe567f9b85d4133573eebd397747b3aec501fb24076263eb07b27
+DIST qemu-8.0.2.tar.xz 126707132 BLAKE2B f2b1a63e10c42aabfe39722c7732d0f04818ad367b769b3deb29c5bf9adcabc3aca1706f3c40fafeeb57ac1f7a61ded5066de32134c483e2fd27bc65b4b7d30a SHA512 4e915d33a662bf55b09247fb85150be376c92270d3764e3d6470c452cb70cc558f54e84de5610dd60a9eb3ea02d5d4277b1ec75c9804967d278fa8361c7f9b9a
+DIST qemu-8.0.3.tar.xz 126710536 BLAKE2B 071cc1a35209a02e8c5dd4f43cb112f110b4655adb0f870a04fdf9a6e2c761699574e8c9426f70f60787a99acf252d7a64d94a8e837cdfeda93d89428d7866f3 SHA512 18b2ccb65f7ec2ae92f0e04406539620c881e2b75f63816588c86043a07464bb99d16a83e792ed9508de393f4b694c46d52f4d07edf52741e85224c8b8d5d5c3
+DIST qemu-8.2.0.tar.xz 130008888 BLAKE2B a63667042e1e19c635568072d8dcc117320117e81e374a93cfb79e2363ebf505df3217fb098638e53c899eb6f83435221e8031f2aae003c27ec25af8654683b3 SHA512 92ec41196ff145cdbb98948f6b6e43214fa4b4419554a8a1927fb4527080c8212ccb703e184baf8ee0bdfa50ad7a84689e8f5a69eba1bd7bbbdfd69e3b91256c
diff --git a/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch b/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch
new file mode 100644
index 000000000000..b6ef6214af55
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/files/qemu-8.1.0-find-sphinx.patch
@@ -0,0 +1,10 @@
+This gets confused by python-any-r1 and tries to find sphinx-build in ${T}.
+--- a/docs/meson.build
++++ b/docs/meson.build
+@@ -1,5 +1,4 @@
+-sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build',
+- required: get_option('docs'))
++sphinx_build = find_program('sphinx-build', required: get_option('docs'))
+
+ # Check if tools are available to build documentation.
+ build_docs = false
diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-2.5.0-sysmacros.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-2.5.0-sysmacros.patch
deleted file mode 100644
index 4d5690c59ae4..000000000000
--- a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-2.5.0-sysmacros.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://bugs.gentoo.org/580924
-
-Linux C libs are moving away from implicit header pollution with sys/types.h
-
---- a/include/qemu/osdep.h
-+++ b/include/qemu/osdep.h
-@@ -78,6 +78,10 @@ extern int daemon(int, int);
- #include <assert.h>
- #include <signal.h>
-
-+#ifdef __linux__
-+#include <sys/sysmacros.h>
-+#endif
-+
- #ifdef __OpenBSD__
- #include <sys/signal.h>
- #endif
diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch
deleted file mode 100644
index f69781694f1d..000000000000
--- a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-fix-shutdown.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qemu-4.2.0/qga/commands-posix.c.orig 2020-03-23 11:15:05.972610989 +0300
-+++ qemu-4.2.0/qga/commands-posix.c 2020-03-23 11:15:39.676015087 +0300
-@@ -108,7 +108,7 @@
- reopen_fd_to_null(1);
- reopen_fd_to_null(2);
-
-- execle("/sbin/shutdown", "shutdown", "-h", shutdown_flag, "+0",
-+ execle("/sbin/shutdown", "shutdown", "-h", "now", shutdown_flag, "+0",
- "hypervisor initiated shutdown", (char*)NULL, environ);
- _exit(EXIT_FAILURE);
- } else if (pid < 0) {
diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch
deleted file mode 100644
index 94b6a2c8bb3f..000000000000
--- a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-4.2.0-sysmacros.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://bugs.gentoo.org/580924
-
-Linux C libs are moving away from implicit header pollution with sys/types.h
-
---- a/include/qemu/osdep.h
-+++ b/include/qemu/osdep.h
-@@ -118,6 +118,10 @@ extern int daemon(int, int);
- #include <setjmp.h>
- #include <signal.h>
-
-+#ifdef __linux__
-+#include <sys/sysmacros.h>
-+#endif
-+
- #ifdef __OpenBSD__
- #include <sys/signal.h>
- #endif
diff --git a/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch
new file mode 100644
index 000000000000..dff62304a5c7
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/files/qemu-guest-agent-7.1.0-configure-Avoid-using-strings-binary.patch
@@ -0,0 +1,85 @@
+From 33ab5f24913db8d5590fe4155829bd38e7902506 Mon Sep 17 00:00:00 2001
+Message-Id: <33ab5f24913db8d5590fe4155829bd38e7902506.1666164897.git.mprivozn@redhat.com>
+From: Michal Privoznik <mprivozn@redhat.com>
+Date: Fri, 14 Oct 2022 09:30:15 +0200
+Subject: [PATCH] configure: Avoid using strings binary
+
+When determining the endiandness of the target architecture we're
+building for a small program is compiled, which in an obfuscated
+way declares two strings. Then, we look which string is in
+correct order (using strings binary) and deduct the endiandness.
+But using the strings binary is problematic, because it's part of
+toolchain (strings is just a symlink to
+x86_64-pc-linux-gnu-strings or llvm-strings). And when
+(cross-)compiling, it requires users to set the symlink to the
+correct toolchain.
+
+Fortunately, we have a better alternative anyways. We can mimic
+what compiler.h is already doing: comparing __BYTE_ORDER__
+against values for little/big endiandness.
+
+Bug: https://bugs.gentoo.org/876933
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+Message-Id: <d6d9c7043cfe6d976d96694f2b4ecf85cf3206f1.1665732504.git.mprivozn@redhat.com>
+Cc: qemu-stable@nongnu.org
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+---
+ configure | 35 ++++++++++++++++++-----------------
+ 1 file changed, 18 insertions(+), 17 deletions(-)
+
+diff --git a/configure b/configure
+index f9ec050bf8..81561be7c1 100755
+--- a/configure
++++ b/configure
+@@ -1423,30 +1423,31 @@ if test "$tcg" = "enabled"; then
+ git_submodules="$git_submodules tests/fp/berkeley-softfloat-3"
+ fi
+
+-# ---
++##########################################
+ # big/little endian test
+ cat > $TMPC << EOF
+-#include <stdio.h>
+-short big_endian[] = { 0x4269, 0x4765, 0x4e64, 0x4961, 0x4e00, 0, };
+-short little_endian[] = { 0x694c, 0x7454, 0x654c, 0x6e45, 0x6944, 0x6e41, 0, };
+-int main(int argc, char *argv[])
+-{
+- return printf("%s %s\n", (char *)big_endian, (char *)little_endian);
+-}
++#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
++# error LITTLE
++#endif
++int main(void) { return 0; }
+ EOF
+
+-if compile_prog ; then
+- if strings -a $TMPE | grep -q BiGeNdIaN ; then
+- bigendian="yes"
+- elif strings -a $TMPE | grep -q LiTtLeEnDiAn ; then
+- bigendian="no"
+- else
+- echo big/little test failed
+- exit 1
+- fi
++if ! compile_prog ; then
++ bigendian="no"
+ else
++ cat > $TMPC << EOF
++#if defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
++# error BIG
++#endif
++int main(void) { return 0; }
++EOF
++
++ if ! compile_prog ; then
++ bigendian="yes"
++ else
+ echo big/little test failed
+ exit 1
++ fi
+ fi
+
+ ##########################################
+--
+2.37.3
+
diff --git a/app-emulation/qemu-guest-agent/metadata.xml b/app-emulation/qemu-guest-agent/metadata.xml
index 88bcd95b4c70..8995a7240036 100644
--- a/app-emulation/qemu-guest-agent/metadata.xml
+++ b/app-emulation/qemu-guest-agent/metadata.xml
@@ -1,7 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
+ <email>ajak@gentoo.org</email>
+ <name>John Helmert III</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="person">
<email>tamiko@gentoo.org</email>
<name>Matthias Maier</name>
</maintainer>
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
index bef260b3de02..e1c778871839 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.0.0.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-6.0.0.ebuild
@@ -1,11 +1,11 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
-PYTHON_COMPAT=( python3_6 )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit eutils systemd toolchain-funcs udev python-any-r1
+inherit systemd toolchain-funcs udev python-any-r1
MY_PN="qemu"
MY_P="${MY_PN}-${PV}"
@@ -27,10 +27,6 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/${MY_P}"
-PATCHES=(
- "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch #580924
-)
-
src_configure() {
tc-export AR LD OBJCOPY RANLIB
@@ -43,7 +39,7 @@ src_configure() {
--disable-linux-user
--disable-system
--disable-strip
- --disable-tools
+ --enable-tools
--disable-werror
--enable-guest-agent
--python="${PYTHON}"
@@ -55,12 +51,8 @@ src_configure() {
./configure "${myconf[@]}" || die
}
-src_compile() {
- emake V=1 qemu-ga
-}
-
src_install() {
- dobin qemu-ga
+ dobin build/qga/qemu-ga
# Normal init stuff
newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
@@ -79,4 +71,9 @@ src_install() {
pkg_postinst() {
elog "You should add 'qemu-guest-agent' to the default runlevel."
elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.2.0-r1.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild
index 46783392cf0b..89b3517badc9 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-4.2.0-r1.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-7.1.0.ebuild
@@ -1,35 +1,33 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit eutils systemd toolchain-funcs udev python-any-r1
+inherit edo systemd toolchain-funcs python-any-r1 udev
MY_PN="qemu"
MY_P="${MY_PN}-${PV}"
-SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
-KEYWORDS="amd64 ~ppc ~ppc64 x86"
-
DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
LICENSE="GPL-2 BSD-2"
SLOT="0"
-IUSE=""
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
RDEPEND="dev-libs/glib"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
S="${WORKDIR}/${MY_P}"
PATCHES=(
- "${FILESDIR}"/${PN}-4.2.0-sysmacros.patch #580924
- "${FILESDIR}"/${PN}-4.2.0-fix-shutdown.patch #681874
+ "${FILESDIR}"/${PN}-7.1.0-configure-Avoid-using-strings-binary.patch
)
src_configure() {
@@ -44,7 +42,7 @@ src_configure() {
--disable-linux-user
--disable-system
--disable-strip
- --disable-tools
+ --enable-tools
--disable-werror
--enable-guest-agent
--python="${PYTHON}"
@@ -52,16 +50,12 @@ src_configure() {
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
)
- echo "./configure ${myconf[*]}"
- ./configure "${myconf[@]}" || die
-}
-src_compile() {
- emake V=1 qemu-ga
+ edo ./configure "${myconf[@]}"
}
src_install() {
- dobin qemu-ga
+ dobin build/qga/qemu-ga
# Normal init stuff
newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
@@ -80,4 +74,9 @@ src_install() {
pkg_postinst() {
elog "You should add 'qemu-guest-agent' to the default runlevel."
elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-3.1.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild
index bef260b3de02..4b64963e345a 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-3.1.0.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.0.ebuild
@@ -1,34 +1,32 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python3_6 )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit eutils systemd toolchain-funcs udev python-any-r1
+inherit edo systemd toolchain-funcs python-any-r1 udev
MY_PN="qemu"
MY_P="${MY_PN}-${PV}"
-SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
-KEYWORDS="amd64 ~ppc ~ppc64 x86"
-
DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
LICENSE="GPL-2 BSD-2"
SLOT="0"
-IUSE=""
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
RDEPEND="dev-libs/glib"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
S="${WORKDIR}/${MY_P}"
PATCHES=(
- "${FILESDIR}"/${PN}-2.5.0-sysmacros.patch #580924
)
src_configure() {
@@ -43,7 +41,7 @@ src_configure() {
--disable-linux-user
--disable-system
--disable-strip
- --disable-tools
+ --enable-tools
--disable-werror
--enable-guest-agent
--python="${PYTHON}"
@@ -51,16 +49,12 @@ src_configure() {
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
)
- echo "./configure ${myconf[*]}"
- ./configure "${myconf[@]}" || die
-}
-src_compile() {
- emake V=1 qemu-ga
+ edo ./configure "${myconf[@]}"
}
src_install() {
- dobin qemu-ga
+ dobin build/qga/qemu-ga
# Normal init stuff
newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
@@ -79,4 +73,9 @@ src_install() {
pkg_postinst() {
elog "You should add 'qemu-guest-agent' to the default runlevel."
elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-5.0.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild
index 513caae41cee..cbca89288f83 100644
--- a/app-emulation/qemu-guest-agent/qemu-guest-agent-5.0.0.ebuild
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.2.ebuild
@@ -1,35 +1,32 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{9..11} )
-inherit eutils systemd toolchain-funcs udev python-any-r1
+inherit edo systemd toolchain-funcs python-any-r1 udev
MY_PN="qemu"
MY_P="${MY_PN}-${PV}"
-SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
-KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
-
DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
LICENSE="GPL-2 BSD-2"
SLOT="0"
-IUSE=""
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
RDEPEND="dev-libs/glib"
-
-DEPEND="${RDEPEND}
- ${PYTHON_DEPS}"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
S="${WORKDIR}/${MY_P}"
PATCHES=(
- "${FILESDIR}"/${PN}-4.2.0-sysmacros.patch #580924
- "${FILESDIR}"/${PN}-4.2.0-fix-shutdown.patch #681874
)
src_configure() {
@@ -44,7 +41,7 @@ src_configure() {
--disable-linux-user
--disable-system
--disable-strip
- --disable-tools
+ --enable-tools
--disable-werror
--enable-guest-agent
--python="${PYTHON}"
@@ -52,16 +49,12 @@ src_configure() {
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
)
- echo "./configure ${myconf[*]}"
- ./configure "${myconf[@]}" || die
-}
-src_compile() {
- emake V=1 qemu-ga
+ edo ./configure "${myconf[@]}"
}
src_install() {
- dobin qemu-ga
+ dobin build/qga/qemu-ga
# Normal init stuff
newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
@@ -80,4 +73,9 @@ src_install() {
pkg_postinst() {
elog "You should add 'qemu-guest-agent' to the default runlevel."
elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild
new file mode 100644
index 000000000000..86f9742a3e18
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.0.3.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit edo systemd toolchain-funcs python-any-r1 udev
+
+MY_PN="qemu"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
+HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
+
+LICENSE="GPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~ppc64 x86"
+
+RDEPEND="dev-libs/glib"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+)
+
+src_configure() {
+ tc-export AR LD OBJCOPY RANLIB
+
+ local myconf=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --libdir="/usr/$(get_libdir)"
+ --localstatedir=/
+ --disable-bsd-user
+ --disable-linux-user
+ --disable-system
+ --disable-strip
+ --enable-tools
+ --disable-werror
+ --without-default-features
+ --enable-guest-agent
+ --python="${PYTHON}"
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+ )
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_install() {
+ dobin build/qga/qemu-ga
+
+ # Normal init stuff
+ newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
+ newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent
+
+ # systemd stuff
+ udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules
+
+ systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \
+ qemu-guest-agent.service
+}
+
+pkg_postinst() {
+ elog "You should add 'qemu-guest-agent' to the default runlevel."
+ elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild
new file mode 100644
index 000000000000..19ce1d04753c
--- /dev/null
+++ b/app-emulation/qemu-guest-agent/qemu-guest-agent-8.2.0.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit edo systemd toolchain-funcs python-any-r1 udev
+
+MY_PN="qemu"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="QEMU Guest Agent (qemu-ga) for use when running inside a VM"
+HOMEPAGE="https://wiki.qemu.org/Features/GuestAgent"
+SRC_URI="http://wiki.qemu.org/download/${MY_P}.tar.xz"
+
+LICENSE="GPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="dev-libs/glib"
+DEPEND="${RDEPEND}"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/ninja"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/qemu-8.1.0-find-sphinx.patch
+)
+
+src_configure() {
+ tc-export AR LD OBJCOPY RANLIB
+
+ local myconf=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --libdir="/usr/$(get_libdir)"
+ --localstatedir=/
+ --disable-bsd-user
+ --disable-linux-user
+ --disable-system
+ --disable-strip
+ --enable-tools
+ --disable-werror
+ --without-default-features
+ --enable-guest-agent
+ --python="${PYTHON}"
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+ )
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_test() {
+ # qga only uses generic code covered by qobject tests,
+ # the full test suite requires at least one softmmu binary
+ emake check-unit
+}
+
+src_install() {
+ dobin build/qga/qemu-ga
+
+ # Normal init stuff
+ newinitd "${FILESDIR}/qemu-ga.init-r1" qemu-guest-agent
+ newconfd "${FILESDIR}/qemu-ga.conf-r1" qemu-guest-agent
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/qemu-ga.logrotate" qemu-guest-agent
+
+ # systemd stuff
+ udev_newrules "${FILESDIR}/qemu-ga-systemd.udev" 99-qemu-guest-agent.rules
+
+ systemd_newunit "${FILESDIR}/qemu-ga-systemd.service" \
+ qemu-guest-agent.service
+}
+
+pkg_postinst() {
+ elog "You should add 'qemu-guest-agent' to the default runlevel."
+ elog "e.g. rc-update add qemu-guest-agent default"
+ udev_reload
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/qemu-init-scripts/metadata.xml b/app-emulation/qemu-init-scripts/metadata.xml
index 7a38bb900964..115e9d64a669 100644
--- a/app-emulation/qemu-init-scripts/metadata.xml
+++ b/app-emulation/qemu-init-scripts/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/app-emulation/qemu-riscv64-bin/Manifest b/app-emulation/qemu-riscv64-bin/Manifest
deleted file mode 100644
index dca4fafb8830..000000000000
--- a/app-emulation/qemu-riscv64-bin/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST qemu-riscv64-bin-3.1.0-r4.tar.xz 889764 BLAKE2B 888fef2f27f44be098e9b834b083558ce18d98337612b4de2278ffe5d6599248d9ed4e99153ad9b2c1a5b773131c420bb23ce6d080943af744df34464660bc42 SHA512 bc92110f6730c61bd39056d0bf3f84b35ed340a47af51b28b27554f9f2f72409221d2c81826b718742475d0fc48040c81e8f051e29b4f13412c3a39e282471e0
-DIST qemu-riscv64-bin-5.0.0.tar.xz 922240 BLAKE2B d4ff41c8e45ca99bc1b9e795d9e218b05be283b32d179e8ab88d07bd333a52fce7893739e6572219083d5d56a7abb7cc1870df7c585ca41af15b56a5dc30369d SHA512 1ba28679ce4bf1f11b77059dae8cb76f0095cc4427159d769947b8a1b1212c9de0a25a236c69ff9780dd111a22fa6e01519a3017b0b0a5d29069575501552f40
diff --git a/app-emulation/qemu-riscv64-bin/metadata.xml b/app-emulation/qemu-riscv64-bin/metadata.xml
deleted file mode 100644
index 304c5d2c5ff3..000000000000
--- a/app-emulation/qemu-riscv64-bin/metadata.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>riscv@gentoo.org</email>
- <name>RISC-V</name>
- </maintainer>
- <maintainer type="person">
- <email>tamiko@gentoo.org</email>
- <name>Matthias Maier</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild b/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild
deleted file mode 100644
index 650e2af57e19..000000000000
--- a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-3.1.0-r4.ebuild
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Statically linked x86-64 binary of app-emulation/qemu, riscv64 emulator"
-
-HOMEPAGE="http://www.qemu.org"
-SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${PN}-${PVR}.tar.xz"
-LICENSE="GPL-2 LGPL-2 BSD-2"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="!app-emulation/qemu[qemu_user_targets_riscv64]"
-
-QA_PREBUILT="*"
-
-S=${WORKDIR}
-
-src_install() {
- dobin qemu-riscv64
-}
diff --git a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild b/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild
deleted file mode 100644
index 650e2af57e19..000000000000
--- a/app-emulation/qemu-riscv64-bin/qemu-riscv64-bin-5.0.0.ebuild
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Statically linked x86-64 binary of app-emulation/qemu, riscv64 emulator"
-
-HOMEPAGE="http://www.qemu.org"
-SRC_URI="https://dev.gentoo.org/~dilfridge/distfiles/${PN}-${PVR}.tar.xz"
-LICENSE="GPL-2 LGPL-2 BSD-2"
-SLOT="0"
-KEYWORDS="~amd64"
-
-RDEPEND="!app-emulation/qemu[qemu_user_targets_riscv64]"
-
-QA_PREBUILT="*"
-
-S=${WORKDIR}
-
-src_install() {
- dobin qemu-riscv64
-}
diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest
index 5dd8a4c2408c..a6d749083741 100644
--- a/app-emulation/qemu/Manifest
+++ b/app-emulation/qemu/Manifest
@@ -1 +1,15 @@
-DIST qemu-5.1.0.tar.xz 62911540 BLAKE2B 6a3ecbda2d9274f2736ffbc88d2006be31f153e7687e1425c1a297975f0e828cd2eafc11d11b589991acda87a489dd256ccf5a8947f91bb9431e515e979d8f29 SHA512 e213edb71d93d5167ddce7546220ecb7b52a7778586a4f476f65bd1e510c9cfc6d1876238a7b501d9cc3fd31cc2ae4b7fb9e753bc3f12cc17cd16dfce2a96ba3
+DIST berkeley-softfloat-3-b64af41c3276f97f0e181920400ee056b9c88037.tar.bz2 84094 BLAKE2B 396f9df2e6ad559545054e89916915c3a3c8ff80e5e409498fec497b564d8b3ac9dd3cb966e26dce232ddff82af18a0e84e864ca18a80c2a2f4fe47e320249c2 SHA512 93c20d50a356c90f4293d8c7593611b2e0a9bc7567b6d946319f8ae06962ae1e297c8788f66fd38a1d3a0d44661bff9a07a63eaa84c8bb40ae01a45476be446c
+DIST berkeley-testfloat-3-40619cbb3bf32872df8c53cc457039229428a263.tar.bz2 90086 BLAKE2B ab2070622453a7a0a1fbcf234df68cc7316474c04482b2ac13c700edbb5624968c5274f337dc84f06c4ab6c3e82698cd7b0b30fe206d004b0715f15a2cc7cfd1 SHA512 969892af9fdf16d45660753ed02bbd8d6159928e5e6ef2f87aed8a08d995bb19d2115fb6b559522074492b2595716d314c5c059bfa69c7fbb5aab9275582c22e
+DIST keycodemapdb-f5772a62ec52591ff6870b7e8ef32482371f22c6.tar.bz2 27971 BLAKE2B 0ed69ad24c53bd459c8753565814bcc1cd858f20d3a046c38912a35bcb0ba6d388ef5d2b93157cd028959284b330caf5467d82071c3df56a405dd8e08fd177c7 SHA512 8f2cc14e8bd46cb045e3ebfe32e463793ab7472ebda9b57b8ea0b06fa107a1a99c3ebcacb9c4548e30698d8ec154c0e56f789385201182b680819b8068a103f2
+DIST qemu-7.2.0-docs.tar.xz 1984184 BLAKE2B 103900fb7903ed8d75f7f012bf61fa2d6fce345b657c851d0437c3384f5735bd1cfd3129320683ea7846ea0b0940e5af5b2663c9320f12fee74b058523a8ea06 SHA512 a7edd448982865e07533c300d3e44a8b50cefbdde1982b73c24d0b2aa74315439252c59b634c75de312860874c7b06c75aa72629da681b5105f28ee936794585
+DIST qemu-7.2.10.tar.xz 121311584 BLAKE2B e3b5156302cc699c38ad966340f68b1c72d00a2c420732368a22a9671a27d87ccd64e06c97b2e47d1dddf2d1d202b5103a6fc51221502b1c812d1c63a082d976 SHA512 d402dc49b9ed5da773785ce9c8ed75b66985286ab8a2f0956cb88277b9da88a5a86cf02226c6b24fe63635405f2fe89ebac9288cf2d4b59df22b4d05c2a8fe30
+DIST qemu-7.2.4.tar.xz 121849100 BLAKE2B a9c5ffce9ff0fac4e2d1fa4be1a1dcee2f5d7f793ddf726871c5ae9a68c22f7ba03692a8a5096de3051030d3c2f34e46697d5af2d66c34984b8161ae3bb07b42 SHA512 fa765673833a1f2cbecdb9d47dc7dc29d7613be5a5c8fc63925ae70e1f5aafb4f9f02e45b212a329f17b689351b8a9cdf5f5235ab6adb71bb40e41868898d95b
+DIST qemu-7.2.9.tar.xz 121870204 BLAKE2B 3336541124f96c09aec05721ce77e8187f8d29c716a05419fcb2b9510976683e58dd791205971d9daa11d3053eb211343225597de1bae72b07467e5acac2a851 SHA512 b1aa2316f6e2fe1e972b6d1aabf7c04b06bca3863143c6a523b5fda40bb8841bec27e0774f24adc4b3267cf1f1d39ba81246eb3d15d7273904a0df8e8503077d
+DIST qemu-8.0.0-docs.tar.xz 3218024 BLAKE2B b764a625024e78a39470048355471e12cfb57ab3c34e764dc4200fdf5c1aea635d26095ec961979bf46f177101c5bd38618bacf7e98e04bd64688ab5e29591aa SHA512 d9dfe191372e105fe16fe8f66f41ed793ade4c89b5ab1d84b39459f3419a1ca61bd49422a83981965cc257c05eca7fd49054703f58f179f5c7b656e9473a1054
+DIST qemu-8.0.4.tar.xz 126179324 BLAKE2B dfb98964c629b251f0004b4630ae4500a52465579417d6f5c7dbbb1f672e10d8d7ffb98a4b00e26fb98b3c867208146dbdca026e4d30cbf1752ac733c4d9b915 SHA512 bd5ed682d51f974abd4be93f949701f9b5bfb87fd9929e31df130534da2f2c03b99adc9f924b3efd47d3b254e0e3c0046f4e69fbe9f6d0c4ac1f6babecb29449
+DIST qemu-8.0.5.tar.xz 126175064 BLAKE2B 1d1f78c185ab64b4ca946a44ad04d0bbb6ea48de058037e4ba18176abeb0f0528754c6e832f742f93227182bbce145544eca5b908a366006e7ee58876aca0bda SHA512 ec9679473dda84a2f56ae8ee0039ec4dafb056414bfc5a3a147b2b6bb45ae3b130dd80f6385e8567b5d18f4be94f3536bc8acc45c61eddf40c9678b46cb8bddc
+DIST qemu-8.1.0-docs.tar.xz 2129912 BLAKE2B 8aaf7b748538afdb5bcb6da15dbd96572d086824377c4b0e93f1ddc695f9a4775471e360a9616d2d481dbf8113e91d2601c69d92cef565fb90b65ffacfdb304e SHA512 905515742bb56a439fc8117ec48ea668e7b2bf0244587673e4352d9e8e49911eb84ff093596ff566e44787197cf9789ec8950e3d75fb7a670c5546394a322ac9
+DIST qemu-8.1.5.tar.xz 124007248 BLAKE2B 0d5db3e18c4dc1035fed442116be98b7e7bbfae905e4facef3278ef5a488332fa2d8e6599169fa1f740e96a035027e989c5cdffc0bfd4e0ca0fca1d0a537e8da SHA512 1005e0602a763979c4d0ec6e79a390e4232dcc3d0b8461fe42856c58e54ad25a2079f3850d27023fce8a2b382b36e3baa7882b69d48cbb72002984c160241c92
+DIST qemu-8.2.0-docs.tar.xz 2233352 BLAKE2B 22b9499fdf4ff93e72399dab3803f3171c855859dc7fe111612e2f9146db244ca6d2e0aad16aefdf29b231d2b3a2fbc22171fe6bac13b03445d54555ce798d16 SHA512 f57e78c28277c153fff00b25097d0df5c6ad36cb4e9f3acf30382bfb1c99508503c186c1bbecf266810ef24fd618428fdf3e0eee41c715a552918c9e6ef9e8e5
+DIST qemu-8.2.1.tar.xz 129848448 BLAKE2B af5b03fecd41c376daece7598c01755c458d38e045486f33e2915cc7d4856f23b4478a2c1a32a7eb600c4fc675c24df55007840c8a3c6d1fd2d585c74848f02e SHA512 e72d3e13339c03e8d371ca060ac700c45af2ca37523cddb6b02dcaf8430d75c8cef194cf496df9816440b281f368457def1126677db757928805d93ceca2f9af
+DIST qemu-8.2.2.tar.xz 129398020 BLAKE2B ceecbae945d9ac1bd85935266c33b91aedbc201796b38a9cb721d778ba8b35f07d01af8c5ce572e68e637ae94455c70ddcf9087579231613f92828bccafa93f4 SHA512 dfd2e1305f9e51bfbc90a7738c69336d5f805481a626ea527b971bdfb6dbe6867e5df7461d48d1c22b79be2dc18e057ea9fa36ef593127cd8b262a5c33f1aa41
diff --git a/app-emulation/qemu/files/65-kvm.rules-r1 b/app-emulation/qemu/files/65-kvm.rules-r2
index ab3776ac29e3..15c89b201879 100644
--- a/app-emulation/qemu/files/65-kvm.rules-r1
+++ b/app-emulation/qemu/files/65-kvm.rules-r2
@@ -1,2 +1,3 @@
KERNEL=="kvm", GROUP="kvm", MODE="0660"
KERNEL=="vhost-net", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-net"
+KERNEL=="vhost-vsock", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-vsock"
diff --git a/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch b/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch
deleted file mode 100644
index d79570ebb8aa..000000000000
--- a/app-emulation/qemu/files/qemu-2.11.1-capstone_include_path.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- qemu-2.11.1/include/disas/capstone.h 2018-02-14 22:53:22.000000000 +0100
-+++ qemu-2.11.1/include/disas/capstone.h 2018-02-17 20:12:12.754703951 +0100
-@@ -3,7 +3,7 @@
-
- #ifdef CONFIG_CAPSTONE
-
--#include <capstone.h>
-+#include <capstone/capstone.h>
-
- #else
-
diff --git a/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch b/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch
deleted file mode 100644
index 95ccdd7a4b1c..000000000000
--- a/app-emulation/qemu/files/qemu-4.0.0-mkdir_systemtap.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile b/Makefile
-index 04a0d450..e0013a59 100644
---- a/Makefile
-+++ b/Makefile
-@@ -803,6 +802,7 @@
- $(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir))
- endif
- ifdef CONFIG_TRACE_SYSTEMTAP
-+ mkdir -p $(DESTDIR)$(bindir)
- $(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir)
- endif
- ifneq ($(BLOBS),)
diff --git a/app-emulation/qemu/files/qemu-4.2.0-cflags.patch b/app-emulation/qemu/files/qemu-4.2.0-cflags.patch
deleted file mode 100644
index 101926589a61..000000000000
--- a/app-emulation/qemu/files/qemu-4.2.0-cflags.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git i/configure w/configure
-index a72a5def57..546d757603 100755
---- i/configure
-+++ w/configure
-@@ -6093,10 +6093,6 @@ write_c_skeleton
- if test "$gcov" = "yes" ; then
- QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS"
- QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS"
--elif test "$fortify_source" = "yes" ; then
-- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
--elif test "$debug" = "no"; then
-- CFLAGS="-O2 $CFLAGS"
- fi
-
- if test "$have_asan" = "yes"; then
-
diff --git a/app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch b/app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch
deleted file mode 100644
index 4eb644fde543..000000000000
--- a/app-emulation/qemu/files/qemu-5.1.0-pixman-for-vhost-user-gpu.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-https://bugs.gentoo.org/735146
-
-From 4fd46e6cdd976f4aecdc3fbbad728e00a7bc4ee0 Mon Sep 17 00:00:00 2001
-From: Rafael Kitover <rkitover@gmail.com>
-Date: Thu, 13 Aug 2020 20:19:24 +0000
-Subject: [PATCH] configure: Require pixman for vhost-user-gpu.
-
-Use the test from Makefile to check if vhost-user-gpu is being built,
-and if so require pixman.
-
-Signed-off-by: Rafael Kitover <rkitover@gmail.com>
----
- configure | 28 ++++++++++++++--------------
- 1 file changed, 14 insertions(+), 14 deletions(-)
-
---- a/configure
-+++ b/configure
-@@ -4062,20 +4062,6 @@ if test "$modules" = yes; then
- fi
- fi
-
--##########################################
--# pixman support probe
--
--if test "$softmmu" = "no"; then
-- pixman_cflags=
-- pixman_libs=
--elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then
-- pixman_cflags=$($pkg_config --cflags pixman-1)
-- pixman_libs=$($pkg_config --libs pixman-1)
--else
-- error_exit "pixman >= 0.21.8 not present." \
-- "Please install the pixman devel package."
--fi
--
- ##########################################
- # libmpathpersist probe
-
-@@ -4491,6 +4477,20 @@ if test "$opengl" = "yes" && test "$have_x11" = "yes"; then
- done
- fi
-
-+##########################################
-+# pixman support probe
-+
-+if test "$softmmu" = "no" && ! test "${linux} ${virglrenderer} ${gbm} ${want_tools}" = "yes yes yes yes"; then
-+ pixman_cflags=
-+ pixman_libs=
-+elif $pkg_config --atleast-version=0.21.8 pixman-1 > /dev/null 2>&1; then
-+ pixman_cflags=$($pkg_config --cflags pixman-1)
-+ pixman_libs=$($pkg_config --libs pixman-1)
-+else
-+ error_exit "pixman >= 0.21.8 not present." \
-+ "Please install the pixman devel package."
-+fi
-+
- ##########################################
- # libxml2 probe
- if test "$libxml2" != "no" ; then
---
-2.28.0
-
diff --git a/app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch b/app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch
deleted file mode 100644
index d1d23ec6f0e5..000000000000
--- a/app-emulation/qemu/files/qemu-5.1.0-usb-oob-CVE-2020-14364.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-https://bugs.gentoo.org/743649
-
-From b946434f2659a182afc17e155be6791ebfb302eb Mon Sep 17 00:00:00 2001
-From: Gerd Hoffmann <kraxel@redhat.com>
-Date: Tue, 25 Aug 2020 07:36:36 +0200
-Subject: [PATCH] usb: fix setup_len init (CVE-2020-14364)
-
-Store calculated setup_len in a local variable, verify it, and only
-write it to the struct (USBDevice->setup_len) in case it passed the
-sanity checks.
-
-This prevents other code (do_token_{in,out} functions specifically)
-from working with invalid USBDevice->setup_len values and overrunning
-the USBDevice->setup_buf[] buffer.
-
-Fixes: CVE-2020-14364
-Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
-Tested-by: Gonglei <arei.gonglei@huawei.com>
-Reviewed-by: Li Qiang <liq3ea@gmail.com>
-Message-id: 20200825053636.29648-1-kraxel@redhat.com
----
- hw/usb/core.c | 16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/hw/usb/core.c b/hw/usb/core.c
-index 5abd128b6b..5234dcc73f 100644
---- a/hw/usb/core.c
-+++ b/hw/usb/core.c
-@@ -129,6 +129,7 @@ void usb_wakeup(USBEndpoint *ep, unsigned int stream)
- static void do_token_setup(USBDevice *s, USBPacket *p)
- {
- int request, value, index;
-+ unsigned int setup_len;
-
- if (p->iov.size != 8) {
- p->status = USB_RET_STALL;
-@@ -138,14 +139,15 @@ static void do_token_setup(USBDevice *s, USBPacket *p)
- usb_packet_copy(p, s->setup_buf, p->iov.size);
- s->setup_index = 0;
- p->actual_length = 0;
-- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
-- if (s->setup_len > sizeof(s->data_buf)) {
-+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
-+ if (setup_len > sizeof(s->data_buf)) {
- fprintf(stderr,
- "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n",
-- s->setup_len, sizeof(s->data_buf));
-+ setup_len, sizeof(s->data_buf));
- p->status = USB_RET_STALL;
- return;
- }
-+ s->setup_len = setup_len;
-
- request = (s->setup_buf[0] << 8) | s->setup_buf[1];
- value = (s->setup_buf[3] << 8) | s->setup_buf[2];
-@@ -259,26 +261,28 @@ static void do_token_out(USBDevice *s, USBPacket *p)
- static void do_parameter(USBDevice *s, USBPacket *p)
- {
- int i, request, value, index;
-+ unsigned int setup_len;
-
- for (i = 0; i < 8; i++) {
- s->setup_buf[i] = p->parameter >> (i*8);
- }
-
- s->setup_state = SETUP_STATE_PARAM;
-- s->setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
- s->setup_index = 0;
-
- request = (s->setup_buf[0] << 8) | s->setup_buf[1];
- value = (s->setup_buf[3] << 8) | s->setup_buf[2];
- index = (s->setup_buf[5] << 8) | s->setup_buf[4];
-
-- if (s->setup_len > sizeof(s->data_buf)) {
-+ setup_len = (s->setup_buf[7] << 8) | s->setup_buf[6];
-+ if (setup_len > sizeof(s->data_buf)) {
- fprintf(stderr,
- "usb_generic_handle_packet: ctrl buffer too small (%d > %zu)\n",
-- s->setup_len, sizeof(s->data_buf));
-+ setup_len, sizeof(s->data_buf));
- p->status = USB_RET_STALL;
- return;
- }
-+ s->setup_len = setup_len;
-
- if (p->pid == USB_TOKEN_OUT) {
- usb_packet_copy(p, s->data_buf, s->setup_len);
---
-2.28.0
-
diff --git a/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch
new file mode 100644
index 000000000000..4b5676be4d29
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.2.0-disable-keymap.patch
@@ -0,0 +1,25 @@
+Do not use system's 'qemu-keymap' in native case.
+--- a/meson.build
++++ b/meson.build
+@@ -337,6 +337,8 @@ if 'CONFIG_LIBCAP_NG' in config_host
+ endif
+ if get_option('xkbcommon').auto() and not have_system and not have_tools
+ xkbcommon = not_found
++elif get_option('xkbcommon').disabled()
++ xkbcommon = not_found
+ else
+ xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
+ method: 'pkg-config', static: enable_static)
+--- a/pc-bios/keymaps/meson.build
++++ b/pc-bios/keymaps/meson.build
+@@ -33,7 +33,9 @@ keymaps = {
+ 'tr': '-l tr',
+ }
+
+-if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host
++if meson.is_cross_build()
+ native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
++elif get_option('xkbcommon').disabled()
++ native_qemu_keymap = not_found
+ else
+ native_qemu_keymap = qemu_keymap
diff --git a/app-emulation/qemu/files/qemu-6.0.0-make.patch b/app-emulation/qemu/files/qemu-6.0.0-make.patch
new file mode 100644
index 000000000000..2dac1ca11d99
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-6.0.0-make.patch
@@ -0,0 +1,14 @@
+Allow MAKE='make V=1' and similar.
+
+https://bugs.gentoo.org/795678
+--- a/configure
++++ b/configure
+@@ -1953,7 +1953,7 @@ if test -z "$python"
+ then
+ error_exit "Python not found. Use --python=/path/to/python"
+ fi
+-if ! has "$make"
++if ! has $make
+ then
+ error_exit "GNU make ($make) not found"
+ fi
diff --git a/app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch
new file mode 100644
index 000000000000..b6f3078a6906
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-7.1.0-also-build-virtfs-proxy-helper.patch
@@ -0,0 +1,32 @@
+From d02ea89239768c93651a161d057f2bf04d56a024 Mon Sep 17 00:00:00 2001
+From: Matthias Maier <tamiko@43-1.org>
+Date: Mon, 4 Apr 2022 12:56:59 +0200
+Subject: [PATCH] also build virtfs-proxy-helper
+
+The Gentoo ebuild splits the qemu build into a softmmu, user and tool
+phase in order to be able to build and link some of the qemu emulators
+statically. This unfortunately has the consequence that we never
+configure with "have_virtfs" and "have_tools" at the same time.
+
+As a workaround, simply build the virtfs userland unconditionally. After
+all, it is a tiny executable
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 65a885ea69..29ce7a5a8e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1684,7 +1684,7 @@ have_virtfs = get_option('virtfs') \
+ .disable_auto_if(not have_tools and not have_system) \
+ .allowed()
+
+-have_virtfs_proxy_helper = targetos != 'darwin' and have_virtfs and have_tools
++have_virtfs_proxy_helper = have_tools and libattr.found() and libcap_ng.found()
+
+ if get_option('block_drv_ro_whitelist') == ''
+ config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '')
+--
+2.35.1
+
diff --git a/app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch b/app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch
new file mode 100644
index 000000000000..585e798345f4
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-7.1.0-capstone-include-path.patch
@@ -0,0 +1,31 @@
+Forward ported from qemu-2.11.1-capstone_include_path.patch.
+This time also fix the capstone.h header check to use the path we're
+already patching in.
+
+Bug: https://bugs.gentoo.org/873157
+diff --git a/include/disas/capstone.h b/include/disas/capstone.h
+index e29068dd97..d8fdc5d537 100644
+--- a/include/disas/capstone.h
++++ b/include/disas/capstone.h
+@@ -3,7 +3,7 @@
+
+ #ifdef CONFIG_CAPSTONE
+
+-#include <capstone.h>
++#include <capstone/capstone.h>
+
+ #else
+
+diff --git a/meson.build b/meson.build
+index 20fddbd707..50ce96bbd1 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2605,7 +2605,7 @@ if not get_option('capstone').auto() or have_system or have_user
+ # that reports a wrong -I path, causing the #include to
+ # fail later. If the system has such a broken version
+ # do not use it.
+- if capstone.found() and not cc.compiles('#include <capstone.h>',
++ if capstone.found() and not cc.compiles('#include <capstone/capstone.h>',
+ dependencies: [capstone])
+ capstone = not_found
+ if get_option('capstone').enabled()
diff --git a/app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch b/app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch
new file mode 100644
index 000000000000..3050228b4e0c
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-7.2.0-disable-gmp.patch
@@ -0,0 +1,45 @@
+commit 433c2acd1b9c3f7f5903273e85fed9a7f9157b23
+Author: John Helmert III <ajak@gentoo.org>
+Date: Wed Jan 4 12:25:08 2023 -0600
+
+ meson.build: disable gmp
+
+ gmp isn't required, and we want to avoid linking to it automatigcally
+ in Gentoo.
+
+ Bug: https://bugs.gentoo.org/886207
+ Signed-off-by: John Helmert III <ajak@gentoo.org>
+
+diff --git a/meson.build b/meson.build
+index 5c6b5a1c75..2f9550362d 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1234,15 +1234,6 @@ if not gnutls_crypto.found()
+ endif
+ endif
+
+-gmp = dependency('gmp', required: false, method: 'pkg-config', kwargs: static_kwargs)
+-if nettle.found() and gmp.found()
+- hogweed = dependency('hogweed', version: '>=3.4',
+- method: 'pkg-config',
+- required: get_option('nettle'),
+- kwargs: static_kwargs)
+-endif
+-
+-
+ gtk = not_found
+ gtkx11 = not_found
+ vte = not_found
+diff --git a/meson_options.txt b/meson_options.txt
+index 4b749ca549..e06b274960 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -277,6 +277,8 @@ option('vduse_blk_export', type: 'feature', value: 'auto',
+
+ option('capstone', type: 'feature', value: 'auto',
+ description: 'Whether and how to find the capstone library')
++option('gmp', type: 'feature', value: 'auto',
++ description: 'Whether or not to find the gmp library')
+ option('fdt', type: 'combo', value: 'auto',
+ choices: ['disabled', 'enabled', 'auto', 'system', 'internal'],
+ description: 'Whether and how to find the libfdt library')
diff --git a/app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch b/app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch
new file mode 100644
index 000000000000..2a58ca1ad735
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-7.2.0-linux-headers-6.2-glibc-2.36.patch
@@ -0,0 +1,137 @@
+https://bugs.gentoo.org/895662
+https://gitlab.com/qemu-project/qemu/-/commit/9f0246539ae84a5e21efd1cc4516fc343f08115a
+https://gitlab.com/qemu-project/qemu/-/commit/6003159ce18faad4e1bc7bf9c85669019cd4950e
+
+From 9f0246539ae84a5e21efd1cc4516fc343f08115a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Tue, 10 Jan 2023 12:49:00 -0500
+Subject: [PATCH] Revert "linux-user: add more compat ioctl definitions"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit c5495f4ecb0cdaaf2e9dddeb48f1689cdb520ca0.
+
+glibc has fixed (in 2.36.9000-40-g774058d729) the problem
+that caused a clash when both sys/mount.h annd linux/mount.h
+are included, and backported this to the 2.36 stable release
+too:
+
+ https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+
+It is saner for QEMU to remove the workaround it applied for
+glibc 2.36 and expect distros to ship the 2.36 maint release
+with the fix. This avoids needing to add a further workaround
+to QEMU to deal with the fact that linux/brtfs.h now also pulls
+in linux/mount.h via linux/fs.h since Linux 6.1
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+Message-Id: <20230110174901.2580297-2-berrange@redhat.com>
+Signed-off-by: Laurent Vivier <laurent@vivier.eu>
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -111,31 +111,6 @@
+ #define FS_IOC32_SETFLAGS _IOW('f', 2, int)
+ #define FS_IOC32_GETVERSION _IOR('v', 1, int)
+ #define FS_IOC32_SETVERSION _IOW('v', 2, int)
+-
+-#define BLKGETSIZE64 _IOR(0x12,114,size_t)
+-#define BLKDISCARD _IO(0x12,119)
+-#define BLKIOMIN _IO(0x12,120)
+-#define BLKIOOPT _IO(0x12,121)
+-#define BLKALIGNOFF _IO(0x12,122)
+-#define BLKPBSZGET _IO(0x12,123)
+-#define BLKDISCARDZEROES _IO(0x12,124)
+-#define BLKSECDISCARD _IO(0x12,125)
+-#define BLKROTATIONAL _IO(0x12,126)
+-#define BLKZEROOUT _IO(0x12,127)
+-
+-#define FIBMAP _IO(0x00,1)
+-#define FIGETBSZ _IO(0x00,2)
+-
+-struct file_clone_range {
+- __s64 src_fd;
+- __u64 src_offset;
+- __u64 src_length;
+- __u64 dest_offset;
+-};
+-
+-#define FICLONE _IOW(0x94, 9, int)
+-#define FICLONERANGE _IOW(0x94, 13, struct file_clone_range)
+-
+ #else
+ #include <linux/fs.h>
+ #endif
+--
+GitLab
+
+From 6003159ce18faad4e1bc7bf9c85669019cd4950e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
+Date: Tue, 10 Jan 2023 12:49:01 -0500
+Subject: [PATCH] Revert "linux-user: fix compat with glibc >= 2.36
+ sys/mount.h"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit 3cd3df2a9584e6f753bb62a0028bd67124ab5532.
+
+glibc has fixed (in 2.36.9000-40-g774058d729) the problem
+that caused a clash when both sys/mount.h annd linux/mount.h
+are included, and backported this to the 2.36 stable release
+too:
+
+ https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+
+It is saner for QEMU to remove the workaround it applied for
+glibc 2.36 and expect distros to ship the 2.36 maint release
+with the fix. This avoids needing to add a further workaround
+to QEMU to deal with the fact that linux/brtfs.h now also pulls
+in linux/mount.h via linux/fs.h since Linux 6.1
+
+Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
+Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
+Message-Id: <20230110174901.2580297-3-berrange@redhat.com>
+Signed-off-by: Laurent Vivier <laurent@vivier.eu>
+--- a/linux-user/syscall.c
++++ b/linux-user/syscall.c
+@@ -95,25 +95,7 @@
+ #include <linux/soundcard.h>
+ #include <linux/kd.h>
+ #include <linux/mtio.h>
+-
+-#ifdef HAVE_SYS_MOUNT_FSCONFIG
+-/*
+- * glibc >= 2.36 linux/mount.h conflicts with sys/mount.h,
+- * which in turn prevents use of linux/fs.h. So we have to
+- * define the constants ourselves for now.
+- */
+-#define FS_IOC_GETFLAGS _IOR('f', 1, long)
+-#define FS_IOC_SETFLAGS _IOW('f', 2, long)
+-#define FS_IOC_GETVERSION _IOR('v', 1, long)
+-#define FS_IOC_SETVERSION _IOW('v', 2, long)
+-#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap)
+-#define FS_IOC32_GETFLAGS _IOR('f', 1, int)
+-#define FS_IOC32_SETFLAGS _IOW('f', 2, int)
+-#define FS_IOC32_GETVERSION _IOR('v', 1, int)
+-#define FS_IOC32_SETVERSION _IOW('v', 2, int)
+-#else
+ #include <linux/fs.h>
+-#endif
+ #include <linux/fd.h>
+ #if defined(CONFIG_FIEMAP)
+ #include <linux/fiemap.h>
+--- a/meson.build
++++ b/meson.build
+@@ -2046,8 +2046,6 @@ config_host_data.set('HAVE_OPTRESET',
+ cc.has_header_symbol('getopt.h', 'optreset'))
+ config_host_data.set('HAVE_IPPROTO_MPTCP',
+ cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP'))
+-config_host_data.set('HAVE_SYS_MOUNT_FSCONFIG',
+- cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG'))
+
+ # has_member
+ config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID',
+--
+GitLab
diff --git a/app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch b/app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch
new file mode 100644
index 000000000000..6a5437056e6f
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-8.0.0-disable-keymap.patch
@@ -0,0 +1,29 @@
+diff --git a/meson.build b/meson.build
+index c44d05a13..5c5c09894 100644
+--- a/meson.build
++++ b/meson.build
+@@ -671,6 +671,8 @@ endif
+
+ if get_option('xkbcommon').auto() and not have_system and not have_tools
+ xkbcommon = not_found
++elif get_option('xkbcommon').disabled()
++ xkbcommon = not_found
+ else
+ xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
+ method: 'pkg-config', kwargs: static_kwargs)
+diff --git a/pc-bios/keymaps/meson.build b/pc-bios/keymaps/meson.build
+index 158a3b410..3bb318a23 100644
+--- a/pc-bios/keymaps/meson.build
++++ b/pc-bios/keymaps/meson.build
+@@ -33,8 +33,10 @@ keymaps = {
+ 'tr': '-l tr',
+ }
+
+-if meson.is_cross_build() or not xkbcommon.found()
++if meson.is_cross_build()
+ native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
++elif get_option('xkbcommon').disabled()
++ native_qemu_keymap = not_found
+ else
+ native_qemu_keymap = qemu_keymap
+ endif
diff --git a/app-emulation/qemu/files/qemu-8.0.0-make.patch b/app-emulation/qemu/files/qemu-8.0.0-make.patch
new file mode 100644
index 000000000000..40bafd490052
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-8.0.0-make.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index 800b5850f..331e8950d 100755
+--- a/configure
++++ b/configure
+@@ -1069,7 +1069,7 @@ then
+ fi
+ fi
+
+-if ! has "$make"
++if ! has $make
+ then
+ error_exit "GNU make ($make) not found"
+ fi
diff --git a/app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch b/app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch
new file mode 100644
index 000000000000..07d3836c57e4
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-8.0.0-remove-python-meson-check.patch
@@ -0,0 +1,40 @@
+diff --git a/configure b/configure
+index 4369fa5..7807ad5 100755
+--- a/configure
++++ b/configure
+@@ -1095,34 +1095,7 @@ has_meson() {
+ fi
+ }
+
+-if test -z "$meson"; then
+- if test "$explicit_python" = no && has_meson && version_ge "$(meson --version)" 0.61.5; then
+- meson=meson
+- elif test "$git_submodules_action" != 'ignore' ; then
+- meson=git
+- elif test -e "${source_path}/meson/meson.py" ; then
+- meson=internal
+- else
+- if test "$explicit_python" = yes; then
+- error_exit "--python requires using QEMU's embedded Meson distribution, but it was not found."
+- else
+- error_exit "Meson not found. Use --meson=/path/to/meson"
+- fi
+- fi
+-else
+- # Meson uses its own Python interpreter to invoke other Python scripts,
+- # but the user wants to use the one they specified with --python.
+- #
+- # We do not want to override the distro Python interpreter (and sometimes
+- # cannot: for example in Homebrew /usr/bin/meson is a bash script), so
+- # just require --meson=git|internal together with --python.
+- if test "$explicit_python" = yes; then
+- case "$meson" in
+- git | internal) ;;
+- *) error_exit "--python requires using QEMU's embedded Meson distribution." ;;
+- esac
+- fi
+-fi
++meson=meson
+
+ if test "$meson" = git; then
+ git_submodules="${git_submodules} meson"
diff --git a/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch b/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch
new file mode 100644
index 000000000000..61ea0f36d90a
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-8.1.0-also-build-virtfs-proxy-helper.patch
@@ -0,0 +1,32 @@
+From d02ea89239768c93651a161d057f2bf04d56a024 Mon Sep 17 00:00:00 2001
+From: Matthias Maier <tamiko@43-1.org>
+Date: Mon, 4 Apr 2022 12:56:59 +0200
+Subject: [PATCH] also build virtfs-proxy-helper
+
+The Gentoo ebuild splits the qemu build into a softmmu, user and tool
+phase in order to be able to build and link some of the qemu emulators
+statically. This unfortunately has the consequence that we never
+configure with "have_virtfs" and "have_tools" at the same time.
+
+As a workaround, simply build the virtfs userland unconditionally. After
+all, it is a tiny executable
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 063c736aee..fda8639293 100644
+--- a/meson.build
++++ b/meson.build
+@@ -2008,8 +2008,6 @@ have_virtfs = get_option('virtfs') \
+ .allowed()
+
+ have_virtfs_proxy_helper = get_option('virtfs_proxy_helper') \
+- .require(targetos != 'darwin', error_message: 'the virtfs proxy helper is incompatible with macOS') \
+- .require(have_virtfs, error_message: 'the virtfs proxy helper requires that virtfs is enabled') \
+ .disable_auto_if(not have_tools) \
+ .require(libcap_ng.found(), error_message: 'the virtfs proxy helper requires libcap-ng') \
+ .allowed()
+--
+2.35.1
+
diff --git a/app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch b/app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch
new file mode 100644
index 000000000000..b6ef6214af55
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-8.1.0-find-sphinx.patch
@@ -0,0 +1,10 @@
+This gets confused by python-any-r1 and tries to find sphinx-build in ${T}.
+--- a/docs/meson.build
++++ b/docs/meson.build
+@@ -1,5 +1,4 @@
+-sphinx_build = find_program(fs.parent(python.full_path()) / 'sphinx-build',
+- required: get_option('docs'))
++sphinx_build = find_program('sphinx-build', required: get_option('docs'))
+
+ # Check if tools are available to build documentation.
+ build_docs = false
diff --git a/app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch b/app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch
new file mode 100644
index 000000000000..f668584e8d4b
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-8.1.0-skip-tests.patch
@@ -0,0 +1,64 @@
+* netdev-socket.c
+qtest-i386/netdev-socket fails with:
+```
+stderr:
+qemu-system-i386: -netdev dgram,id=st0,remote.type=inet,remote.host=230.0.0.1,remote.port=1234: can't add socket to multicast group 230.0.0.1: No such device
+Broken pipe
+../tests/qtest/libqtest.c:191: kill_qemu() tried to terminate QEMU process but encountered exit status 1 (expected 0)
+```
+
+* vhost-user-test.c
+qtest-x86_64/qos-test fails with a timeout:
+```
+qemu-system-x86_64: Failed to set msg fds.
+qemu-system-x86_64: vhost VQ 0 ring restore failed: -22: Invalid argument (22)
+qemu-system-x86_64: Failed to set msg fds.
+qemu-system-x86_64: vhost VQ 1 ring restore failed: -22: Invalid argument (22)
+**
+ERROR:../tests/qtest/vhost-user-test.c:892:wait_for_rings_started: assertion failed (ctpop64(s->rings) == count): (1 == 2)
+**
+ERROR:../tests/qtest/qos-test.c:191:subprocess_run_one_test: child process (/x86_64/pc/i440FX-pcihost/pci-bus-pc/pci-bus/virtio-net-pci/virtio-net/virtio-net-tests/vhost-user/reconnect/subprocess [6082]) failed unexpectedl
+```
+
+--- a/tests/qtest/netdev-socket.c
++++ b/tests/qtest/netdev-socket.c
+@@ -498,6 +498,10 @@ int main(int argc, char **argv)
+ socket_init();
+ g_test_init(&argc, &argv, NULL);
+
++ /* XXX: Skip test for now on Gentoo, fails with "No such device" */
++ g_test_skip("Skipping test known to fail on Gentoo");
++ return 0;
++
+ if (socket_check_protocol_support(&has_ipv4, &has_ipv6) < 0) {
+ g_error("socket_check_protocol_support() failed\n");
+ }
+--- a/tests/qtest/vhost-user-test.c
++++ b/tests/qtest/vhost-user-test.c
+@@ -243,7 +243,7 @@ static bool wait_for_fds(TestServer *s)
+
+ g_mutex_lock(&s->data_mutex);
+
+- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
++ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND;
+ while (!s->fds_num) {
+ if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
+ /* timeout has passed */
+@@ -672,7 +672,7 @@ static void wait_for_log_fd(TestServer *s)
+ gint64 end_time;
+
+ g_mutex_lock(&s->data_mutex);
+- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
++ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND;
+ while (s->log_fd == -1) {
+ if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
+ /* timeout has passed */
+@@ -885,7 +885,7 @@ static void wait_for_rings_started(TestServer *s, size_t count)
+ gint64 end_time;
+
+ g_mutex_lock(&s->data_mutex);
+- end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
++ end_time = g_get_monotonic_time() + 30 * G_TIME_SPAN_SECOND;
+ while (ctpop64(s->rings) != count) {
+ if (!g_cond_wait_until(&s->data_cond, &s->data_mutex, end_time)) {
+ /* timeout has passed */
diff --git a/app-emulation/qemu/metadata.xml b/app-emulation/qemu/metadata.xml
index 930ce2797949..adb556795249 100644
--- a/app-emulation/qemu/metadata.xml
+++ b/app-emulation/qemu/metadata.xml
@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>tamiko@gentoo.org</email>
- <name>Matthias Maier</name>
- </maintainer>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
<name>Gentoo Virtualization Project</name>
</maintainer>
+ <maintainer type="person">
+ <email>dilfridge@gentoo.org</email>
+ <name>Andreas K. Hüttel</name>
+ </maintainer>
<use>
<flag name="accessibility">Adds support for braille displays using brltty</flag>
<flag name="aio">Enables support for Linux's Async IO</flag>
<flag name="alsa">Enable alsa output for sound emulation</flag>
+ <flag name="bpf">Enable eBPF support for RSS implementation.</flag>
<flag name="capstone">Enable disassembly support with <pkg>dev-libs/capstone</pkg></flag>
- <flag name="curl">Support ISOs / -cdrom directives vis HTTP or HTTPS.</flag>
+ <flag name="curl">Support ISOs / -cdrom directives via HTTP or HTTPS.</flag>
<flag name="fdt">Enables firmware device tree support</flag>
+ <flag name="fuse">Enables FUSE block device export</flag>
<flag name="glusterfs">Enables GlusterFS cluster fileystem via
<pkg>sys-cluster/glusterfs</pkg></flag>
<flag name="gnutls">Enable TLS support for the VNC console server.
@@ -29,6 +27,7 @@
<pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux
block layer that <pkg>sys-block/open-iscsi</pkg> does.</flag>
<flag name="io-uring">Enable efficient I/O via <pkg>sys-libs/liburing</pkg>.</flag>
+ <flag name="keyutils">Support Linux keyrings via <pkg>sys-apps/keyutils</pkg></flag>
<flag name="multipath">Enable multipath persistent reservation passthrough via
<pkg>sys-fs/multipath-tools</pkg>.</flag>
<flag name="ncurses">Enable the ncurses-based console</flag>
@@ -37,9 +36,10 @@
<flag name="pin-upstream-blobs">Pin the versions of BIOS firmware to the version included in the upstream release.
This is needed to sanely support migration/suspend/resume/snapshotting/etc... of instances.
When the blobs are different, random corruption/bugs/crashes/etc... may be observed.</flag>
+ <flag name="pipewire">Enable pipewire output for sound emulation</flag>
<flag name="plugins">Enable qemu plugin API via shared library loading.</flag>
<flag name="pulseaudio">Enable pulseaudio output for sound emulation</flag>
- <flag name="rbd">Enable rados block device backend support, see http://ceph.newdream.net/wiki/QEMU-RBD</flag>
+ <flag name="rbd">Enable rados block device backend support, see https://docs.ceph.com/en/mimic/rbd/qemu-rbd/</flag>
<flag name="sdl">Enable the SDL-based console</flag>
<flag name="sdl-image">SDL Image support for icons</flag>
<flag name="slirp">Enable TCP/IP in hypervisor via <pkg>net-libs/libslirp</pkg></flag>
@@ -54,16 +54,15 @@
<flag name="usb">Enable USB passthrough via <pkg>dev-libs/libusb</pkg></flag>
<flag name="usbredir">Use <pkg>sys-apps/usbredir</pkg> to redirect USB devices to another machine over TCP</flag>
<flag name="vde">Enable VDE-based networking</flag>
- <flag name="vhost-net">Enable accelerated networking using vhost-net, see http://www.linux-kvm.org/page/VhostNet</flag>
- <flag name="vhost-user-fs">Enable shared file system access using the FUSE protocol carried over virtio.</flag>
+ <flag name="vhost-net">Enable accelerated networking using vhost-net, see https://www.linux-kvm.org/page/VhostNet</flag>
<flag name="virgl">Enable experimental Virgil 3d (virtual software GPU)</flag>
- <flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See http://wiki.qemu.org/Documentation/9psetup</flag>
+ <flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See https://wiki.qemu.org/Documentation/9psetup</flag>
<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
<flag name="xattr">Add support for getting and setting POSIX extended attributes, through
<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.</flag>
<flag name="xen">Enables support for Xen backends</flag>
- <flag name="xfs">Support xfsctl() notification and syncing for XFS backed
- virtual disks.</flag>
- <flag name="xkb">Depend on x11-libs/libxkbcommon to build qemu-keymap tool for converting xkb keymaps</flag>
</use>
+ <upstream>
+ <remote-id type="gitlab">qemu-project/qemu</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/qemu/qemu-5.1.0-r1.ebuild b/app-emulation/qemu/qemu-7.2.10.ebuild
index 33685210022a..ac517632fb22 100644
--- a/app-emulation/qemu/qemu-5.1.0-r1.ebuild
+++ b/app-emulation/qemu/qemu-7.2.10.ebuild
@@ -1,65 +1,125 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8,9} )
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=ajak
+QEMU_DOCS_VERSION="7.2.0"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10,11} )
PYTHON_REQ_USE="ncurses,readline"
-PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN"
+FIRMWARE_ABI_VERSION="7.2.0"
-FIRMWARE_ABI_VERSION="4.0.0-r50"
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
-inherit eutils linux-info toolchain-funcs multilib python-r1 \
- udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
-if [[ ${PV} = *9999* ]]; then
- EGIT_REPO_URI="https://git.qemu.org/git/qemu.git"
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
EGIT_SUBMODULES=(
- tests/fp/berkeley-{test,soft}float-3
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
ui/keycodemapdb
)
inherit git-r3
SRC_URI=""
else
- SRC_URI="https://download.qemu.org/${P}.tar.xz"
- KEYWORDS="amd64 arm64 ~ppc ~ppc64 x86"
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
-HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
-IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
- +fdt glusterfs gnutls gtk infiniband iscsi io-uring
- jack jemalloc +jpeg kernel_linux
- kernel_FreeBSD lzo multipath
- ncurses nfs nls numa opengl +oss +pin-upstream-blobs
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
- smartcard snappy spice ssh static static-user systemtap test usb
- usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
- xfs +xkb zstd"
-
-COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel
- mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x
- sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb"
-IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS}
- avr lm32 moxie rx tricore unicore32"
-IUSE_USER_TARGETS="${COMMON_TARGETS}
- aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
- tilegx"
+ smartcard snappy spice ssh static static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
RESTRICT="!test? ( test )"
+
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
@@ -67,12 +127,20 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_riscv32? ( fdt )
qemu_softmmu_targets_riscv64? ( fdt )
- static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
static-user? ( !plugins )
- virtfs? ( caps xattr )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
vte? ( gtk )
+ multipath? ( udev )
plugins? ( !static !static-user )
"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
+done
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# and user/softmmu targets (qemu-*, qemu-system-*).
@@ -83,17 +151,16 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
# respected). This is because qemu supports using the C library's API
# when available rather than always using the external library.
ALL_DEPEND="
- >=dev-libs/glib-2.0[static-libs(+)]
+ dev-libs/glib:2[static-libs(+)]
sys-libs/zlib[static-libs(+)]
python? ( ${PYTHON_DEPS} )
- systemtap? ( dev-util/systemtap )
+ systemtap? ( dev-debug/systemtap )
xattr? ( sys-apps/attr[static-libs(+)] )"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
- dev-libs/libxml2[static-libs(+)]
- xkb? ( x11-libs/libxkbcommon[static-libs(+)] )
+ sys-libs/libcap-ng[static-libs(+)]
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@@ -101,35 +168,35 @@ SOFTMMU_TOOLS_DEPEND="
)
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
bzip2? ( app-arch/bzip2[static-libs(+)] )
- capstone? ( dev-libs/capstone:= )
- caps? ( sys-libs/libcap-ng[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
- fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gnutls? (
- dev-libs/nettle:=[static-libs(+)]
>=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
)
gtk? (
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
x11-libs/gtk+:3
+ x11-libs/libX11
vte? ( x11-libs/vte:2.91 )
)
- infiniband? (
- sys-fabric/libibumad:=[static-libs(+)]
- sys-fabric/libibverbs:=[static-libs(+)]
- sys-fabric/librdmacm:=[static-libs(+)]
- )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
- io-uring? ( sys-libs/liburing[static-libs(+)] )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
- jpeg? ( virtual/jpeg:0=[static-libs(+)] )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (
- sys-libs/ncurses:0=[unicode]
- sys-libs/ncurses:0=[static-libs(+)]
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
)
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
@@ -137,10 +204,11 @@ SOFTMMU_TOOLS_DEPEND="
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
- media-libs/mesa[egl,gbm]
+ media-libs/mesa[egl(+),gbm(+)]
)
+ pam? ( sys-libs/pam )
png? ( media-libs/libpng:0=[static-libs(+)] )
- pulseaudio? ( media-sound/pulseaudio )
+ pulseaudio? ( media-libs/libpulse )
rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
@@ -157,48 +225,64 @@ SOFTMMU_TOOLS_DEPEND="
>=app-emulation/spice-0.12.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
- usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virgl? ( media-libs/virglrenderer[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools:= )
- xfs? ( sys-fs/xfsprogs[static-libs(+)] )
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
- ~sys-firmware/edk2-ovmf-201905[binary]
- ~sys-firmware/ipxe-1.0.0_p20190728[binary]
- ~sys-firmware/seabios-1.12.0[binary,seavgabios]
- ~sys-firmware/sgabios-0.1_pre8[binary]
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
)
!pin-upstream-blobs? (
- sys-firmware/edk2-ovmf
- sys-firmware/ipxe
- >=sys-firmware/seabios-1.10.2[seavgabios]
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
sys-firmware/sgabios
)"
-PPC64_FIRMWARE_DEPEND="
+PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
- ~sys-firmware/seabios-1.12.0[binary,seavgabios]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
!pin-upstream-blobs? (
- >=sys-firmware/seabios-1.10.2[seavgabios]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
)
"
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
+ dev-build/meson
sys-apps/texinfo
virtual/pkgconfig
- doc? ( dev-python/sphinx )
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
- sys-devel/bc
+ app-alternatives/bc
)
"
CDEPEND="
@@ -208,7 +292,8 @@ CDEPEND="
)
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
- qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
"
DEPEND="${CDEPEND}
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
@@ -219,14 +304,17 @@ DEPEND="${CDEPEND}
static-user? ( ${ALL_DEPEND} )"
RDEPEND="${CDEPEND}
acct-group/kvm
- selinux? ( sec-policy/selinux-qemu )"
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )"
PATCHES=(
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
- "${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
- "${FILESDIR}"/${PN}-4.2.0-cflags.patch
- "${FILESDIR}"/${PN}-5.1.0-pixman-for-vhost-user-gpu.patch
- "${FILESDIR}"/${PN}-5.1.0-usb-oob-CVE-2020-14364.patch #743649
+ "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-6.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
)
QA_PREBUILT="
@@ -234,10 +322,13 @@ QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/s390-netboot.img
- usr/share/qemu/u-boot.e500"
+ usr/share/qemu/u-boot.e500
+"
QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-x86_64
@@ -252,7 +343,6 @@ QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-or1k
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
- usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
@@ -260,7 +350,8 @@ QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
- usr/bin/qemu-unicore32"
+ usr/bin/qemu-unicore32
+"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
kernel module loaded before running kvm. The easiest way to ensure that the
@@ -335,7 +426,7 @@ check_targets() {
local var=$1 mak=$2
local detected sorted
- pushd "${S}"/default-configs >/dev/null || die
+ pushd "${S}"/configs/targets/ >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
@@ -350,29 +441,6 @@ check_targets() {
popd >/dev/null
}
-handle_locales() {
- # Make sure locale list is kept up-to-date.
- local detected sorted
- detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u))
- sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u))
- if [[ ${sorted} != "${detected}" ]] ; then
- eerror "The ebuild needs to be kept in sync."
- eerror "PLOCALES: ${sorted}"
- eerror " po/*.po: ${detected}"
- die "sync PLOCALES"
- fi
-
- # Deal with selective install of locales.
- if use nls ; then
- # Delete locales the user does not want. #577814
- rm_loc() { rm po/$1.po || die; }
- l10n_for_each_disabled_locale_do rm_loc
- else
- # Cheap hack to disable gettext .mo generation.
- rm -f po/*.po
- fi
-}
-
src_prepare() {
check_targets IUSE_SOFTMMU_TARGETS softmmu
check_targets IUSE_USER_TARGETS linux-user
@@ -380,17 +448,19 @@ src_prepare() {
default
# Use correct toolchain to fix cross-compiling
- tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
export WINDRES=${CHOST}-windres
# Verbose builds
MAKEOPTS+=" V=1"
- # Run after we've applied all patches.
- handle_locales
+ # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
+ # this setting (-U then -D..=2) will prevent us from trying out 3, so
+ # drop it. No change to level of protection b/c we patch our toolchain.
+ sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
- # Remove bundled copy of libfdt
- rm -r dtc || die
+ # Remove bundled modules
+ rm -r dtc meson roms/*/ || die
}
##
@@ -403,7 +473,7 @@ qemu_src_configure() {
local buildtype=$1
local builddir="${S}/${buildtype}-build"
- mkdir "${builddir}"
+ mkdir "${builddir}" || die
local conf_opts=(
--prefix=/usr
@@ -413,12 +483,12 @@ qemu_src_configure() {
--datadir=/usr/share
--docdir=/usr/share/doc/${PF}/html
--mandir=/usr/share/man
- --with-confsuffix=/qemu
--localstatedir=/var
--disable-bsd-user
--disable-containers # bug #732972
--disable-guest-agent
--disable-strip
+ --with-git-submodules=ignore
# bug #746752: TCG interpreter has a few limitations:
# - it does not support FPU
@@ -435,14 +505,19 @@ qemu_src_configure() {
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
- --python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
--host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
- $(use_enable doc docs)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
$(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
$(use_enable xattr attr)
)
@@ -455,14 +530,39 @@ qemu_src_configure() {
use_enable "$@"
fi
}
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
conf_opts+=(
$(conf_notuser accessibility brlapi)
$(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
- $(conf_notuser caps cap-ng)
$(conf_notuser curl)
+ $(conf_tools doc docs)
$(conf_notuser fdt)
+ $(conf_notuser fuse)
$(conf_notuser glusterfs)
$(conf_notuser gnutls)
$(conf_notuser gnutls nettle)
@@ -470,7 +570,7 @@ qemu_src_configure() {
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
$(conf_notuser io-uring linux-io-uring)
- $(conf_notuser jemalloc jemalloc)
+ $(conf_malloc jemalloc)
$(conf_notuser jpeg vnc-jpeg)
$(conf_notuser kernel_linux kvm)
$(conf_notuser lzo)
@@ -479,39 +579,34 @@ qemu_src_configure() {
$(conf_notuser nfs libnfs)
$(conf_notuser numa)
$(conf_notuser opengl)
- $(conf_notuser png vnc-png)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
$(conf_notuser rbd)
$(conf_notuser sasl vnc-sasl)
$(conf_notuser sdl)
- $(conf_notuser sdl-image)
+ $(conf_softmmu sdl-image)
$(conf_notuser seccomp)
- $(conf_notuser slirp slirp system)
+ $(conf_notuser slirp)
$(conf_notuser smartcard)
$(conf_notuser snappy)
$(conf_notuser spice)
$(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
$(conf_notuser usb libusb)
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
- $(conf_notuser vhost-user-fs)
$(conf_notuser virgl virglrenderer)
- $(conf_notuser virtfs)
+ $(conf_softmmu virtfs)
$(conf_notuser vnc)
$(conf_notuser vte)
$(conf_notuser xen)
$(conf_notuser xen xen-pci-passthrough)
- $(conf_notuser xfs xfsctl)
- $(conf_notuser xkb xkbcommon)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
$(conf_notuser zstd)
)
- if [[ ${buildtype} == "user" ]] ; then
- conf_opts+=( --disable-libxml2 )
- else
- conf_opts+=( --enable-libxml2 )
- fi
-
if [[ ! ${buildtype} == "user" ]] ; then
# audio options
local audio_opts=(
@@ -524,7 +619,7 @@ qemu_src_configure() {
$(usev oss)
)
conf_opts+=(
- --audio-drv-list=$(printf "%s," "${audio_opts[@]}")
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
@@ -535,6 +630,8 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -543,6 +640,8 @@ qemu_src_configure() {
--disable-linux-user
--enable-system
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
local static_flag="static"
;;
@@ -552,6 +651,7 @@ qemu_src_configure() {
--disable-system
--disable-blobs
--enable-tools
+ --enable-cap-ng
)
local static_flag="static"
;;
@@ -572,6 +672,9 @@ qemu_src_configure() {
tc-enables-pie && conf_opts+=( --enable-pie )
fi
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
# Plumb through equivalent of EXTRA_ECONF to allow experiments
# like bug #747928.
conf_opts+=( ${EXTRA_CONF_QEMU} )
@@ -579,11 +682,6 @@ qemu_src_configure() {
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
-
- # FreeBSD's kernel does not support QEMU assigning/grabbing
- # host USB devices yet
- use kernel_FreeBSD && \
- sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
@@ -618,22 +716,22 @@ src_configure() {
src_compile() {
if [[ -n ${user_targets} ]]; then
- cd "${S}/user-build"
+ cd "${S}/user-build" || die
default
fi
if [[ -n ${softmmu_targets} ]]; then
- cd "${S}/softmmu-build"
+ cd "${S}/softmmu-build" || die
default
fi
- cd "${S}/tools-build"
+ cd "${S}/tools-build" || die
default
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
- cd "${S}/softmmu-build"
+ cd "${S}/softmmu-build" || die
pax-mark m */qemu-system-* #515550
emake check
fi
@@ -722,7 +820,7 @@ src_install() {
[[ -e check-report.html ]] && dodoc check-report.html
if use kernel_linux; then
- udev_newrules "${FILESDIR}"/65-kvm.rules-r1 65-kvm.rules
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
fi
if use python; then
@@ -730,20 +828,25 @@ src_install() {
fi
fi
- cd "${S}/tools-build"
+ cd "${S}/tools-build" || die
emake DESTDIR="${ED}" install
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
- pushd "${ED}"/usr/bin >/dev/null
+ pushd "${ED}"/usr/bin >/dev/null || die
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
- popd >/dev/null
+ popd >/dev/null || die
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
- cd "${S}"
- dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
+ cd "${S}" || die
+ dodoc MAINTAINERS docs/specs/pci-ids.txt
newdoc pc-bios/README README.pc-bios
# Disallow stripping of prebuilt firmware files.
@@ -751,10 +854,7 @@ src_install() {
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
- rm "${ED}/usr/share/qemu/bios.bin"
- rm "${ED}/usr/share/qemu/bios-256k.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
- dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
@@ -765,8 +865,9 @@ src_install() {
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
- # PPC64 loads vgabios-stdvga
- if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
@@ -776,13 +877,11 @@ src_install() {
fi
# Remove sgabios since we're using the sgabios packaged one
- rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
- rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
@@ -800,7 +899,7 @@ src_install() {
firmware_abi_change() {
local pv
for pv in ${REPLACING_VERSIONS}; do
- if ver_test $pv -lt ${FIRMWARE_ABI_VERSION}; then
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
return 0
fi
done
@@ -815,16 +914,27 @@ pkg_postinst() {
xdg_icon_cache_update
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
- fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
DISABLE_AUTOFORMATTING=true
readme.gentoo_print_elog
if use pin-upstream-blobs && firmware_abi_change; then
ewarn "This version of qemu pins new versions of firmware blobs:"
- ewarn " $(best_version sys-firmware/edk2-ovmf)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
ewarn " $(best_version sys-firmware/ipxe)"
- ewarn " $(best_version sys-firmware/seabios)"
ewarn " $(best_version sys-firmware/sgabios)"
ewarn "This might break resume of hibernated guests (started with a different"
ewarn "firmware version) and live migration to/from qemu versions with different"
@@ -838,22 +948,24 @@ pkg_postinst() {
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
- echo " $(best_version sys-firmware/edk2-ovmf)"
- if has_version 'sys-firmware/edk2-ovmf[binary]'; then
- echo " USE=binary"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
else
- echo " USE=''"
+ echo " $(best_version sys-firmware/edk2-ovmf)"
fi
- echo " $(best_version sys-firmware/ipxe)"
- echo " $(best_version sys-firmware/seabios)"
- if has_version 'sys-firmware/seabios[binary]'; then
- echo " USE=binary"
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
else
- echo " USE=''"
+ echo " $(best_version sys-firmware/seabios)"
fi
+
+ echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
+ udev_reload
}
diff --git a/app-emulation/qemu/qemu-7.2.4.ebuild b/app-emulation/qemu/qemu-7.2.4.ebuild
new file mode 100644
index 000000000000..ecb35f27987f
--- /dev/null
+++ b/app-emulation/qemu/qemu-7.2.4.ebuild
@@ -0,0 +1,972 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=ajak
+QEMU_DOCS_VERSION="7.2.0"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10,11} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ ui/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ sys-libs/libcap-ng[static-libs(+)]
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ png? ( media-libs/libpng:0=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.12.3
+ >=app-emulation/spice-0.12.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ dev-build/meson
+ sys-apps/texinfo
+ virtual/pkgconfig
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ !static? (
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ )
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static? (
+ ${ALL_DEPEND}
+ ${SOFTMMU_TOOLS_DEPEND}
+ )
+ static-user? ( ${ALL_DEPEND} )"
+RDEPEND="${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-6.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
+ "${FILESDIR}"/${PN}-7.2.0-linux-headers-6.2-glibc-2.36.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
+ # this setting (-U then -D..=2) will prevent us from trying out 3, so
+ # drop it. No change to level of protection b/c we patch our toolchain.
+ sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
+
+ # Remove bundled modules
+ rm -r dtc meson roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --with-git-submodules=ignore
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-blobs
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="static"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --disable-blobs
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="static"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS docs/specs/pci-ids.txt
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-7.2.9.ebuild b/app-emulation/qemu/qemu-7.2.9.ebuild
new file mode 100644
index 000000000000..ac517632fb22
--- /dev/null
+++ b/app-emulation/qemu/qemu-7.2.9.ebuild
@@ -0,0 +1,971 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=ajak
+QEMU_DOCS_VERSION="7.2.0"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10,11} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ ui/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static? ( static-user !alsa !gtk !jack !opengl !pam !pulseaudio !plugins !rbd !snappy !udev )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( seccomp ) "
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ sys-libs/libcap-ng[static-libs(+)]
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ png? ( media-libs/libpng:0=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.12.3
+ >=app-emulation/spice-0.12.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ dev-build/meson
+ sys-apps/texinfo
+ virtual/pkgconfig
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ !static? (
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ )
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static? (
+ ${ALL_DEPEND}
+ ${SOFTMMU_TOOLS_DEPEND}
+ )
+ static-user? ( ${ALL_DEPEND} )"
+RDEPEND="${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-6.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
+ # this setting (-U then -D..=2) will prevent us from trying out 3, so
+ # drop it. No change to level of protection b/c we patch our toolchain.
+ sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
+
+ # Remove bundled modules
+ rm -r dtc meson roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --with-git-submodules=ignore
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-blobs
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="static"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --disable-blobs
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="static"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS docs/specs/pci-ids.txt
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.0.4.ebuild b/app-emulation/qemu/qemu-8.0.4.ebuild
new file mode 100644
index 000000000000..592f8ef9cdb7
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.0.4.ebuild
@@ -0,0 +1,970 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION="8.0.0"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ ui/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ dev-build/meson
+ sys-apps/texinfo
+ virtual/pkgconfig
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-8.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
+ "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
+ # this setting (-U then -D..=2) will prevent us from trying out 3, so
+ # drop it. No change to level of protection b/c we patch our toolchain.
+ sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
+
+ # Remove bundled modules
+ rm -r dtc meson roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --with-git-submodules=ignore
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS docs/specs/pci-ids.txt
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.0.5.ebuild b/app-emulation/qemu/qemu-8.0.5.ebuild
new file mode 100644
index 000000000000..6c943ce3a21c
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.0.5.ebuild
@@ -0,0 +1,972 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION="8.0.0"
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ ui/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ dev-build/meson
+ sys-apps/texinfo
+ virtual/pkgconfig
+ doc? (
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-8.0.0-make.patch
+ "${FILESDIR}"/${PN}-7.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-7.2.0-disable-gmp.patch
+ "${FILESDIR}"/${PN}-8.0.0-remove-python-meson-check.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # We already force -D_FORTIFY_SOURCE=2 (or 3) in our toolchain, but
+ # this setting (-U then -D..=2) will prevent us from trying out 3, so
+ # drop it. No change to level of protection b/c we patch our toolchain.
+ sed -i -e 's/-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2//' configure || die
+
+ # Remove bundled modules
+ rm -r dtc meson roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --with-git-submodules=ignore
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS docs/specs/pci-ids.txt
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.1.5.ebuild b/app-emulation/qemu/qemu-8.1.5.ebuild
new file mode 100644
index 000000000000..05d55122f855
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.1.5.ebuild
@@ -0,0 +1,972 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+#QEMU_DOCS_VERSION=$(ver_cut 1-3)
+QEMU_DOCS_VERSION=8.1.0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=(
+ tests/fp/berkeley-softfloat-3
+ tests/fp/berkeley-testfloat-3
+ subprojects/keycodemapdb
+ )
+ inherit git-r3
+ SRC_URI=""
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/gtk+:3
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+# See bug #913084 for pip dep
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # Remove bundled modules
+ rm -r subprojects/dtc roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --disable-download
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev pipewire)
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.2.1.ebuild b/app-emulation/qemu/qemu-8.2.1.ebuild
new file mode 100644
index 000000000000..9523cdbfcf5e
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.2.1.ebuild
@@ -0,0 +1,991 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+ SRC_URI=""
+ declare -A SUBPROJECTS=(
+ [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
+ [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
+ [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263"
+ )
+
+ for proj in "${!SUBPROJECTS[@]}"; do
+ c=${SUBPROJECTS[${proj}]}
+ SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
+ done
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/gtk+:3
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+# See bug #913084 for pip dep
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ >=dev-build/meson-0.63.0
+ dev-python/pip[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ for file in ${A}; do
+ unpack "${file}"
+ done
+ cd "${WORKDIR}" || die
+ for proj in "${!SUBPROJECTS[@]}"; do
+ mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die
+ done
+ cd "${S}" || die
+ meson subprojects packagefiles --apply || die
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # Remove bundled modules
+ rm -r roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --disable-download
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev pipewire)
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-8.2.2.ebuild b/app-emulation/qemu/qemu-8.2.2.ebuild
new file mode 100644
index 000000000000..b62207759882
--- /dev/null
+++ b/app-emulation/qemu/qemu-8.2.2.ebuild
@@ -0,0 +1,992 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-1}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION=$(ver_cut 1-2).0
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
+PYTHON_REQ_USE="ncurses,readline"
+
+FIRMWARE_ABI_VERSION="7.2.0"
+
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
+
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
+
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=()
+ inherit git-r3
+ SRC_URI=""
+ declare -A SUBPROJECTS=(
+ [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
+ [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
+ [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263"
+ )
+
+ for proj in "${!SUBPROJECTS[@]}"; do
+ c=${SUBPROJECTS[${proj}]}
+ SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
+ done
+else
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
+
+LICENSE="GPL-2 LGPL-2 BSD-2"
+SLOT="0"
+
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
+ plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+ +slirp
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
+
+use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
+use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
+IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
+
+RESTRICT="!test? ( test )"
+
+# Allow no targets to be built so that people can get a tools-only build.
+# Block USE flag configurations known to not work.
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ qemu_softmmu_targets_arm? ( fdt )
+ qemu_softmmu_targets_microblaze? ( fdt )
+ qemu_softmmu_targets_mips64el? ( fdt )
+ qemu_softmmu_targets_ppc64? ( fdt )
+ qemu_softmmu_targets_ppc? ( fdt )
+ qemu_softmmu_targets_riscv32? ( fdt )
+ qemu_softmmu_targets_riscv64? ( fdt )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
+ static-user? ( !plugins )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
+ vte? ( gtk )
+ multipath? ( udev )
+ plugins? ( !static-user )
+"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# and user/softmmu targets (qemu-*, qemu-system-*).
+#
+# Yep, you need both libcap and libcap-ng since virtfs only uses libcap.
+#
+# The attr lib isn't always linked in (although the USE flag is always
+# respected). This is because qemu supports using the C library's API
+# when available rather than always using the external library.
+ALL_DEPEND="
+ dev-libs/glib:2[static-libs(+)]
+ sys-libs/zlib[static-libs(+)]
+ python? ( ${PYTHON_DEPS} )
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
+
+# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
+# softmmu targets (qemu-system-*).
+SOFTMMU_TOOLS_DEPEND="
+ >=x11-libs/pixman-0.28.0[static-libs(+)]
+ accessibility? (
+ app-accessibility/brltty[api]
+ app-accessibility/brltty[static-libs(+)]
+ )
+ aio? ( dev-libs/libaio[static-libs(+)] )
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
+ bzip2? ( app-arch/bzip2[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
+ curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
+ glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
+ gnutls? (
+ >=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
+ )
+ gtk? (
+ x11-libs/gtk+:3
+ vte? ( x11-libs/vte:2.91 )
+ )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
+ iscsi? ( net-libs/libiscsi )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
+ jack? ( virtual/jack )
+ jemalloc? ( dev-libs/jemalloc )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
+ lzo? ( dev-libs/lzo:2[static-libs(+)] )
+ multipath? ( sys-fs/multipath-tools )
+ ncurses? (
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
+ )
+ nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
+ numa? ( sys-process/numactl[static-libs(+)] )
+ opengl? (
+ virtual/opengl
+ media-libs/libepoxy[static-libs(+)]
+ media-libs/mesa[static-libs(+)]
+ media-libs/mesa[egl(+),gbm(+)]
+ )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
+ rbd? ( sys-cluster/ceph )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/libsdl2[static-libs(+)]
+ )
+ sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
+ seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
+ slirp? ( net-libs/libslirp[static-libs(+)] )
+ smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
+ snappy? ( app-arch/snappy:= )
+ spice? (
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
+ )
+ ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
+ usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
+ vde? ( net-misc/vde[static-libs(+)] )
+ virgl? ( media-libs/virglrenderer[static-libs(+)] )
+ virtfs? ( sys-libs/libcap )
+ xen? ( app-emulation/xen-tools:= )
+ zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
+"
+
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
+X86_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ sys-firmware/sgabios
+ )
+"
+PPC_FIRMWARE_DEPEND="
+ pin-upstream-blobs? (
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ !pin-upstream-blobs? (
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
+ )
+"
+
+# See bug #913084 for pip dep
+BDEPEND="
+ $(python_gen_impl_dep)
+ dev-lang/perl
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
+ gtk? ( nls? ( sys-devel/gettext ) )
+ test? (
+ dev-libs/glib[utils]
+ app-alternatives/bc
+ )
+"
+CDEPEND="
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
+ qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
+"
+DEPEND="
+ ${CDEPEND}
+ kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
+ acct-group/kvm
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
+)
+
+QA_PREBUILT="
+ usr/share/qemu/hppa-firmware.img
+ usr/share/qemu/openbios-ppc
+ usr/share/qemu/openbios-sparc64
+ usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu/palcode-clipper
+ usr/share/qemu/s390-ccw.img
+ usr/share/qemu/s390-netboot.img
+ usr/share/qemu/u-boot.e500
+"
+
+QA_WX_LOAD="
+ usr/bin/qemu-i386
+ usr/bin/qemu-x86_64
+ usr/bin/qemu-alpha
+ usr/bin/qemu-arm
+ usr/bin/qemu-cris
+ usr/bin/qemu-m68k
+ usr/bin/qemu-microblaze
+ usr/bin/qemu-microblazeel
+ usr/bin/qemu-mips
+ usr/bin/qemu-mipsel
+ usr/bin/qemu-or1k
+ usr/bin/qemu-ppc
+ usr/bin/qemu-ppc64
+ usr/bin/qemu-sh4
+ usr/bin/qemu-sh4eb
+ usr/bin/qemu-sparc
+ usr/bin/qemu-sparc64
+ usr/bin/qemu-armeb
+ usr/bin/qemu-sparc32plus
+ usr/bin/qemu-s390x
+ usr/bin/qemu-unicore32
+"
+
+DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
+kernel module loaded before running kvm. The easiest way to ensure that the
+kernel module is loaded is to load it on boot.
+ For AMD CPUs the module is called 'kvm-amd'.
+ For Intel CPUs the module is called 'kvm-intel'.
+Please review /etc/conf.d/modules for how to load these.
+
+Make sure your user is in the 'kvm' group. Just run
+ $ gpasswd -a <USER> kvm
+then have <USER> re-login.
+
+For brand new installs, the default permissions on /dev/kvm might not let
+you access it. You can tell udev to reset ownership/perms:
+ $ udevadm trigger -c add /dev/kvm
+
+If you want to register binfmt handlers for qemu user targets:
+For openrc:
+ # rc-update add qemu-binfmt
+For systemd:
+ # ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf"
+
+pkg_pretend() {
+ if use kernel_linux && kernel_is lt 2 6 25; then
+ eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
+ elif use kernel_linux; then
+ if ! linux_config_exists; then
+ eerror "Unable to check your kernel for KVM support"
+ else
+ CONFIG_CHECK="~KVM ~TUN ~BRIDGE"
+ ERROR_KVM="You must enable KVM in your kernel to continue"
+ ERROR_KVM_AMD="If you have an AMD CPU, you must enable KVM_AMD in"
+ ERROR_KVM_AMD+=" your kernel configuration."
+ ERROR_KVM_INTEL="If you have an Intel CPU, you must enable"
+ ERROR_KVM_INTEL+=" KVM_INTEL in your kernel configuration."
+ ERROR_TUN="You will need the Universal TUN/TAP driver compiled"
+ ERROR_TUN+=" into your kernel or loaded as a module to use the"
+ ERROR_TUN+=" virtual network device if using -net tap."
+ ERROR_BRIDGE="You will also need support for 802.1d"
+ ERROR_BRIDGE+=" Ethernet Bridging for some network configurations."
+ use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
+ ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
+ ERROR_VHOST_NET+=" support"
+
+ if use amd64 || use x86 || use amd64-linux || use x86-linux; then
+ if grep -q AuthenticAMD /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_AMD"
+ elif grep -q GenuineIntel /proc/cpuinfo; then
+ CONFIG_CHECK+=" ~KVM_INTEL"
+ fi
+ fi
+
+ use python && CONFIG_CHECK+=" ~DEBUG_FS"
+ ERROR_DEBUG_FS="debugFS support required for kvm_stat"
+
+ # Now do the actual checks setup above
+ check_extra_config
+ fi
+ fi
+
+ if grep -qs '/usr/bin/qemu-kvm' "${EROOT}"/etc/libvirt/qemu/*.xml; then
+ eerror "The kvm/qemu-kvm wrappers no longer exist, but your libvirt"
+ eerror "instances are still pointing to it. Please update your"
+ eerror "configs in /etc/libvirt/qemu/ to use the -enable-kvm flag"
+ eerror "and the right system binary (e.g. qemu-system-x86_64)."
+ die "update your virt configs to not use qemu-kvm"
+ fi
+}
+
+# Sanity check to make sure target lists are kept up-to-date.
+check_targets() {
+ local var=$1 mak=$2
+ local detected sorted
+
+ pushd "${S}"/configs/targets/ >/dev/null || die
+
+ # Force C locale until glibc is updated. #564936
+ detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
+ sorted=$(echo $(printf '%s\n' ${!var} | LC_COLLATE=C sort -u))
+ if [[ ${sorted} != "${detected}" ]] ; then
+ eerror "The ebuild needs to be kept in sync."
+ eerror "${var}: ${sorted}"
+ eerror "$(printf '%-*s' ${#var} configure): ${detected}"
+ die "sync ${var} to the list of targets"
+ fi
+
+ popd >/dev/null
+}
+
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ for file in ${A}; do
+ unpack "${file}"
+ done
+ cd "${WORKDIR}" || die
+ for proj in "${!SUBPROJECTS[@]}"; do
+ mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die
+ done
+ cd "${S}" || die
+ meson subprojects packagefiles --apply || die
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ check_targets IUSE_SOFTMMU_TARGETS softmmu
+ check_targets IUSE_USER_TARGETS linux-user
+
+ default
+
+ # Use correct toolchain to fix cross-compiling
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
+ export WINDRES=${CHOST}-windres
+
+ # Verbose builds
+ MAKEOPTS+=" V=1"
+
+ # Remove bundled modules
+ rm -r roms/*/ || die
+}
+
+##
+# configures qemu based on the build directory and the build type
+# we are using.
+#
+qemu_src_configure() {
+ debug-print-function ${FUNCNAME} "$@"
+
+ local buildtype=$1
+ local builddir="${S}/${buildtype}-build"
+
+ mkdir "${builddir}" || die
+
+ local conf_opts=(
+ --prefix=/usr
+ --sysconfdir=/etc
+ --bindir=/usr/bin
+ --libdir=/usr/$(get_libdir)
+ --datadir=/usr/share
+ --docdir=/usr/share/doc/${PF}/html
+ --mandir=/usr/share/man
+ --localstatedir=/var
+ --disable-bsd-user
+ --disable-containers # bug #732972
+ --disable-guest-agent
+ --disable-strip
+ --disable-download
+
+ # bug #746752: TCG interpreter has a few limitations:
+ # - it does not support FPU
+ # - it's generally slower on non-self-modifying code
+ # It's advantage is support for host architectures
+ # where native codegeneration is not implemented.
+ # Gentoo has qemu keyworded only on targets with
+ # native code generation available. Avoid the interpreter.
+ --disable-tcg-interpreter
+
+ --disable-werror
+ # We support gnutls/nettle for crypto operations. It is possible
+ # to use gcrypt when gnutls/nettle are disabled (but not when they
+ # are enabled), but it's not really worth the hassle. Disable it
+ # all the time to avoid automatically detecting it. #568856
+ --disable-gcrypt
+ --cc="$(tc-getCC)"
+ --cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
+ --host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
+ $(use_enable debug debug-info)
+ $(use_enable debug debug-tcg)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
+ $(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
+ $(use_enable xattr attr)
+ )
+
+ # Disable options not used by user targets. This simplifies building
+ # static user targets (USE=static-user) considerably.
+ conf_notuser() {
+ if [[ ${buildtype} == "user" ]] ; then
+ echo "--disable-${2:-$1}"
+ else
+ use_enable "$@"
+ fi
+ }
+ # Enable option only for softmmu build, but not 'user' or 'tools'
+ conf_softmmu() {
+ if [[ ${buildtype} == "softmmu" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
+ conf_opts+=(
+ $(conf_notuser accessibility brlapi)
+ $(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
+ $(conf_notuser bzip2)
+ $(conf_notuser capstone)
+ $(conf_notuser curl)
+ $(conf_tools doc docs)
+ $(conf_notuser fdt)
+ $(conf_notuser fuse)
+ $(conf_notuser glusterfs)
+ $(conf_notuser gnutls)
+ $(conf_notuser gnutls nettle)
+ $(conf_notuser gtk)
+ $(conf_notuser infiniband rdma)
+ $(conf_notuser iscsi libiscsi)
+ $(conf_notuser io-uring linux-io-uring)
+ $(conf_malloc jemalloc)
+ $(conf_notuser jpeg vnc-jpeg)
+ $(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
+ $(conf_notuser lzo)
+ $(conf_notuser multipath mpath)
+ $(conf_notuser ncurses curses)
+ $(conf_notuser nfs libnfs)
+ $(conf_notuser numa)
+ $(conf_notuser opengl)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
+ $(conf_notuser rbd)
+ $(conf_notuser sasl vnc-sasl)
+ $(conf_notuser sdl)
+ $(conf_softmmu sdl-image)
+ $(conf_notuser seccomp)
+ $(conf_notuser slirp)
+ $(conf_notuser smartcard)
+ $(conf_notuser snappy)
+ $(conf_notuser spice)
+ $(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
+ $(conf_notuser usb libusb)
+ $(conf_notuser usbredir usb-redir)
+ $(conf_notuser vde)
+ $(conf_notuser vhost-net)
+ $(conf_notuser virgl virglrenderer)
+ $(conf_softmmu virtfs)
+ $(conf_notuser vnc)
+ $(conf_notuser vte)
+ $(conf_notuser xen)
+ $(conf_notuser xen xen-pci-passthrough)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
+ $(conf_notuser zstd)
+ )
+
+ if [[ ! ${buildtype} == "user" ]] ; then
+ # audio options
+ local audio_opts=(
+ # Note: backend order matters here: #716202
+ # We iterate from higher-level to lower level.
+ $(usex pulseaudio pa "")
+ $(usev pipewire)
+ $(usev jack)
+ $(usev sdl)
+ $(usev alsa)
+ $(usev oss)
+ )
+ conf_opts+=(
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
+ )
+ fi
+
+ case ${buildtype} in
+ user)
+ conf_opts+=(
+ --enable-linux-user
+ --disable-system
+ --disable-tools
+ --disable-cap-ng
+ --disable-seccomp
+ )
+ local static_flag="static-user"
+ ;;
+ softmmu)
+ conf_opts+=(
+ --disable-linux-user
+ --enable-system
+ --disable-tools
+ --enable-cap-ng
+ --enable-seccomp
+ )
+ local static_flag="none"
+ ;;
+ tools)
+ conf_opts+=(
+ --disable-linux-user
+ --disable-system
+ --enable-tools
+ --enable-cap-ng
+ )
+ local static_flag="none"
+ ;;
+ esac
+
+ local targets="${buildtype}_targets"
+ [[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
+
+ # Add support for SystemTAP
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
+
+ # We always want to attempt to build with PIE support as it results
+ # in a more secure binary. But it doesn't work with static or if
+ # the current GCC doesn't have PIE support.
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
+ conf_opts+=( --static --disable-pie )
+ else
+ tc-enables-pie && conf_opts+=( --enable-pie )
+ fi
+
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
+ # Plumb through equivalent of EXTRA_ECONF to allow experiments
+ # like bug #747928.
+ conf_opts+=( ${EXTRA_CONF_QEMU} )
+
+ echo "../configure ${conf_opts[*]}"
+ cd "${builddir}"
+ ../configure "${conf_opts[@]}" || die "configure failed"
+}
+
+src_configure() {
+ local target
+
+ python_setup
+
+ softmmu_targets= softmmu_bins=()
+ user_targets= user_bins=()
+
+ for target in ${IUSE_SOFTMMU_TARGETS} ; do
+ if use "qemu_softmmu_targets_${target}"; then
+ softmmu_targets+=",${target}-softmmu"
+ softmmu_bins+=( "qemu-system-${target}" )
+ fi
+ done
+
+ for target in ${IUSE_USER_TARGETS} ; do
+ if use "qemu_user_targets_${target}"; then
+ user_targets+=",${target}-linux-user"
+ user_bins+=( "qemu-${target}" )
+ fi
+ done
+
+ softmmu_targets=${softmmu_targets#,}
+ user_targets=${user_targets#,}
+
+ [[ -n ${softmmu_targets} ]] && qemu_src_configure "softmmu"
+ [[ -n ${user_targets} ]] && qemu_src_configure "user"
+ qemu_src_configure "tools"
+}
+
+src_compile() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build" || die
+ default
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ default
+ fi
+
+ cd "${S}/tools-build" || die
+ default
+}
+
+src_test() {
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build" || die
+ pax-mark m */qemu-system-* #515550
+ emake check
+ fi
+}
+
+qemu_python_install() {
+ python_domodule "${S}/python/qemu"
+
+ python_doscript "${S}/scripts/kvm/vmxcap"
+ python_doscript "${S}/scripts/qmp/qmp-shell"
+ python_doscript "${S}/scripts/qmp/qemu-ga-client"
+}
+
+# Generate binfmt support files.
+# - /etc/init.d/qemu-binfmt script which registers the user handlers (openrc)
+# - /usr/share/qemu/binfmt.d/qemu.conf (for use with systemd-binfmt)
+generate_initd() {
+ local out="${T}/qemu-binfmt"
+ local out_systemd="${T}/qemu.conf"
+ local d="${T}/binfmt.d"
+
+ einfo "Generating qemu binfmt scripts and configuration files"
+
+ # Generate the debian fragments first.
+ mkdir -p "${d}"
+ "${S}"/scripts/qemu-binfmt-conf.sh \
+ --debian \
+ --exportdir "${d}" \
+ --qemu-path "${EPREFIX}/usr/bin" \
+ || die
+ # Then turn the fragments into a shell script we can source.
+ sed -E -i \
+ -e 's:^([^ ]+) (.*)$:\1="\2":' \
+ "${d}"/* || die
+
+ # Generate the init.d script by assembling the fragments from above.
+ local f qcpu package interpreter magic mask
+ cat "${FILESDIR}"/qemu-binfmt.initd.head >"${out}" || die
+ for f in "${d}"/qemu-* ; do
+ source "${f}"
+
+ # Normalize the cpu logic like we do in the init.d for the native cpu.
+ qcpu=${package#qemu-}
+ case ${qcpu} in
+ arm*) qcpu="arm";;
+ mips*) qcpu="mips";;
+ ppc*) qcpu="ppc";;
+ s390*) qcpu="s390";;
+ sh*) qcpu="sh";;
+ sparc*) qcpu="sparc";;
+ esac
+
+ # we use 'printf' here to be portable across 'sh'
+ # implementations: #679168
+ cat <<EOF >>"${out}"
+ if [ "\${cpu}" != "${qcpu}" -a -x "${interpreter}" ] ; then
+ printf '%s\n' ':${package}:M::${magic}:${mask}:${interpreter}:'"\${QEMU_BINFMT_FLAGS}" >/proc/sys/fs/binfmt_misc/register
+ fi
+EOF
+
+ echo ":${package}:M::${magic}:${mask}:${interpreter}:OC" >>"${out_systemd}"
+
+ done
+ cat "${FILESDIR}"/qemu-binfmt.initd.tail >>"${out}" || die
+}
+
+src_install() {
+ if [[ -n ${user_targets} ]]; then
+ cd "${S}/user-build"
+ emake DESTDIR="${ED}" install
+
+ # Install binfmt handler init script for user targets.
+ generate_initd
+ doinitd "${T}/qemu-binfmt"
+
+ # Install binfmt/qemu.conf.
+ insinto "/usr/share/qemu/binfmt.d"
+ doins "${T}/qemu.conf"
+ fi
+
+ if [[ -n ${softmmu_targets} ]]; then
+ cd "${S}/softmmu-build"
+ emake DESTDIR="${ED}" install
+
+ # This might not exist if the test failed. #512010
+ [[ -e check-report.html ]] && dodoc check-report.html
+
+ if use kernel_linux; then
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
+ fi
+
+ if use python; then
+ python_foreach_impl qemu_python_install
+ fi
+ fi
+
+ cd "${S}/tools-build" || die
+ emake DESTDIR="${ED}" install
+
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
+ # Disable mprotect on the qemu binaries as they use JITs to be fast #459348
+ pushd "${ED}"/usr/bin >/dev/null || die
+ pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
+ popd >/dev/null || die
+
+ # Install config file example for qemu-bridge-helper
+ insinto "/etc/qemu"
+ doins "${FILESDIR}/bridge.conf"
+
+ cd "${S}" || die
+ dodoc MAINTAINERS
+ newdoc pc-bios/README README.pc-bios
+
+ # Disallow stripping of prebuilt firmware files.
+ dostrip -x ${QA_PREBUILT}
+
+ if [[ -n ${softmmu_targets} ]]; then
+ # Remove SeaBIOS since we're using the SeaBIOS packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
+ fi
+
+ # Remove vgabios since we're using the seavgabios packaged one
+ rm "${ED}/usr/share/qemu/vgabios.bin"
+ rm "${ED}/usr/share/qemu/vgabios-cirrus.bin"
+ rm "${ED}/usr/share/qemu/vgabios-qxl.bin"
+ rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
+ rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
+ rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
+ dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
+ dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
+ dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
+ dosym ../seavgabios/vgabios-stdvga.bin /usr/share/qemu/vgabios-stdvga.bin
+ dosym ../seavgabios/vgabios-virtio.bin /usr/share/qemu/vgabios-virtio.bin
+ dosym ../seavgabios/vgabios-vmware.bin /usr/share/qemu/vgabios-vmware.bin
+ fi
+
+ # Remove sgabios since we're using the sgabios packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
+ fi
+
+ # Remove iPXE since we're using the iPXE packaged one
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
+ dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
+ dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
+ dosym ../ipxe/10500940.rom /usr/share/qemu/pxe-ne2k_pci.rom
+ dosym ../ipxe/10222000.rom /usr/share/qemu/pxe-pcnet.rom
+ dosym ../ipxe/10ec8139.rom /usr/share/qemu/pxe-rtl8139.rom
+ dosym ../ipxe/1af41000.rom /usr/share/qemu/pxe-virtio.rom
+ fi
+ fi
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_create_doc
+}
+
+firmware_abi_change() {
+ local pv
+ for pv in ${REPLACING_VERSIONS}; do
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+pkg_postinst() {
+ if [[ -n ${softmmu_targets} ]] && use kernel_linux; then
+ udev_reload
+ fi
+
+ xdg_icon_cache_update
+
+ [[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
+
+ DISABLE_AUTOFORMATTING=true
+ readme.gentoo_print_elog
+
+ if use pin-upstream-blobs && firmware_abi_change; then
+ ewarn "This version of qemu pins new versions of firmware blobs:"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
+ ewarn " $(best_version sys-firmware/ipxe)"
+ ewarn " $(best_version sys-firmware/sgabios)"
+ ewarn "This might break resume of hibernated guests (started with a different"
+ ewarn "firmware version) and live migration to/from qemu versions with different"
+ ewarn "firmware. Please (cold) restart all running guests. For functional"
+ ewarn "guest migration ensure that all"
+ ewarn "hosts run at least"
+ ewarn " app-emulation/qemu-${FIRMWARE_ABI_VERSION}."
+ fi
+}
+
+pkg_info() {
+ echo "Using:"
+ echo " $(best_version app-emulation/spice-protocol)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ echo " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
+ else
+ echo " $(best_version sys-firmware/seabios)"
+ fi
+
+ echo " $(best_version sys-firmware/ipxe)"
+ echo " $(best_version sys-firmware/sgabios)"
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ udev_reload
+}
diff --git a/app-emulation/qemu/qemu-9999.ebuild b/app-emulation/qemu/qemu-9999.ebuild
index 0bf87946b777..381a891e0191 100644
--- a/app-emulation/qemu/qemu-9999.ebuild
+++ b/app-emulation/qemu/qemu-9999.ebuild
@@ -1,67 +1,131 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="7"
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8,9} )
+# Generate using https://github.com/thesamesam/sam-gentoo-scripts/blob/main/niche/generate-qemu-docs
+# Set to 1 if prebuilt, 0 if not
+# (the construct below is to allow overriding from env for script)
+QEMU_DOCS_PREBUILT=${QEMU_DOCS_PREBUILT:-0}
+QEMU_DOCS_PREBUILT_DEV=sam
+QEMU_DOCS_VERSION=$(ver_cut 1-3)
+# Default to generating docs (inc. man pages) if no prebuilt; overridden later
+# bug #830088
+QEMU_DOC_USEFLAG="+doc"
+
+PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses,readline"
-PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN"
+FIRMWARE_ABI_VERSION="7.2.0"
-FIRMWARE_ABI_VERSION="4.0.0-r50"
+inherit linux-info toolchain-funcs python-r1 udev fcaps readme.gentoo-r1 \
+ pax-utils xdg-utils
-inherit eutils linux-info toolchain-funcs multilib python-r1 \
- udev fcaps readme.gentoo-r1 pax-utils l10n xdg-utils
+if [[ ${PV} == *9999* ]]; then
+ QEMU_DOCS_PREBUILT=0
-if [[ ${PV} = *9999* ]]; then
- EGIT_REPO_URI="https://git.qemu.org/git/qemu.git"
- EGIT_SUBMODULES=(
- meson
- tests/fp/berkeley-softfloat-3
- tests/fp/berkeley-testfloat-3
- ui/keycodemapdb
- )
+ EGIT_REPO_URI="https://gitlab.com/qemu-project/qemu.git/"
+ EGIT_SUBMODULES=()
inherit git-r3
SRC_URI=""
+ declare -A SUBPROJECTS=(
+ [keycodemapdb]="f5772a62ec52591ff6870b7e8ef32482371f22c6"
+ [berkeley-softfloat-3]="b64af41c3276f97f0e181920400ee056b9c88037"
+ [berkeley-testfloat-3]="40619cbb3bf32872df8c53cc457039229428a263"
+ )
+
+ for proj in "${!SUBPROJECTS[@]}"; do
+ c=${SUBPROJECTS[${proj}]}
+ SRC_URI+=" https://gitlab.com/qemu-project/${proj}/-/archive/${c}/${proj}-${c}.tar.bz2"
+ done
else
- SRC_URI="https://download.qemu.org/${P}.tar.xz"
- KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~x86"
+ MY_P="${PN}-${PV/_rc/-rc}"
+ SRC_URI="https://download.qemu.org/${MY_P}.tar.xz"
+
+ if [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ SRC_URI+=" !doc? ( https://dev.gentoo.org/~${QEMU_DOCS_PREBUILT_DEV}/distfiles/${CATEGORY}/${PN}/${PN}-${QEMU_DOCS_VERSION}-docs.tar.xz )"
+ fi
+
+ S="${WORKDIR}/${MY_P}"
+ [[ "${PV}" != *_rc* ]] && KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
-HOMEPAGE="http://www.qemu.org http://www.linux-kvm.org"
+HOMEPAGE="https://www.qemu.org https://www.linux-kvm.org"
LICENSE="GPL-2 LGPL-2 BSD-2"
SLOT="0"
-IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
- +fdt glusterfs gnutls gtk infiniband iscsi io-uring
- jack jemalloc +jpeg kernel_linux
- kernel_FreeBSD lzo multipath
- ncurses nfs nls numa opengl +oss +pin-upstream-blobs
+[[ ${QEMU_DOCS_PREBUILT} == 1 ]] && QEMU_DOC_USEFLAG="doc"
+
+IUSE="accessibility +aio alsa bpf bzip2 capstone +curl debug ${QEMU_DOC_USEFLAG}
+ +fdt fuse glusterfs +gnutls gtk infiniband iscsi io-uring
+ jack jemalloc +jpeg keyutils
+ lzo multipath
+ ncurses nfs nls numa opengl +oss pam +pin-upstream-blobs pipewire
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
- smartcard snappy spice ssh static static-user systemtap test usb
- usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
- xfs +xkb zstd"
-
-COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel
- mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x
- sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb"
-IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS}
- avr lm32 moxie rx tricore unicore32"
-IUSE_USER_TARGETS="${COMMON_TARGETS}
- aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
- tilegx"
+ smartcard snappy spice ssh static-user systemtap test udev usb
+ usbredir vde +vhost-net virgl virtfs +vnc vte xattr xen
+ zstd"
+
+COMMON_TARGETS="
+ aarch64
+ alpha
+ arm
+ cris
+ hppa
+ i386
+ loongarch64
+ m68k
+ microblaze
+ microblazeel
+ mips
+ mips64
+ mips64el
+ mipsel
+ nios2
+ or1k
+ ppc
+ ppc64
+ riscv32
+ riscv64
+ s390x
+ sh4
+ sh4eb
+ sparc
+ sparc64
+ x86_64
+ xtensa
+ xtensaeb
+"
+IUSE_SOFTMMU_TARGETS="
+ ${COMMON_TARGETS}
+ avr
+ rx
+ tricore
+"
+IUSE_USER_TARGETS="
+ ${COMMON_TARGETS}
+ aarch64_be
+ armeb
+ hexagon
+ mipsn32
+ mipsn32el
+ ppc64le
+ sparc32plus
+"
use_softmmu_targets=$(printf ' qemu_softmmu_targets_%s' ${IUSE_SOFTMMU_TARGETS})
use_user_targets=$(printf ' qemu_user_targets_%s' ${IUSE_USER_TARGETS})
IUSE+=" ${use_softmmu_targets} ${use_user_targets}"
RESTRICT="!test? ( test )"
+
# Allow no targets to be built so that people can get a tools-only build.
# Block USE flag configurations known to not work.
-REQUIRED_USE="${PYTHON_REQUIRED_USE}
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_arm? ( fdt )
qemu_softmmu_targets_microblaze? ( fdt )
qemu_softmmu_targets_mips64el? ( fdt )
@@ -69,12 +133,19 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
qemu_softmmu_targets_ppc? ( fdt )
qemu_softmmu_targets_riscv32? ( fdt )
qemu_softmmu_targets_riscv64? ( fdt )
- static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
+ qemu_softmmu_targets_x86_64? ( fdt )
+ sdl-image? ( sdl )
static-user? ( !plugins )
- virtfs? ( caps xattr )
+ virgl? ( opengl )
+ virtfs? ( xattr )
+ vnc? ( gnutls )
vte? ( gtk )
- plugins? ( !static !static-user )
+ multipath? ( udev )
+ plugins? ( !static-user )
"
+for smname in ${IUSE_SOFTMMU_TARGETS} ; do
+ REQUIRED_USE+=" qemu_softmmu_targets_${smname}? ( kernel_linux? ( seccomp ) )"
+done
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# and user/softmmu targets (qemu-*, qemu-system-*).
@@ -85,17 +156,16 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
# respected). This is because qemu supports using the C library's API
# when available rather than always using the external library.
ALL_DEPEND="
- >=dev-libs/glib-2.0[static-libs(+)]
+ dev-libs/glib:2[static-libs(+)]
sys-libs/zlib[static-libs(+)]
python? ( ${PYTHON_DEPS} )
- systemtap? ( dev-util/systemtap )
- xattr? ( sys-apps/attr[static-libs(+)] )"
+ systemtap? ( dev-debug/systemtap )
+ xattr? ( sys-apps/attr[static-libs(+)] )
+"
# Dependencies required for qemu tools (qemu-nbd, qemu-img, qemu-io, ...)
# softmmu targets (qemu-system-*).
SOFTMMU_TOOLS_DEPEND="
- dev-libs/libxml2[static-libs(+)]
- xkb? ( x11-libs/libxkbcommon[static-libs(+)] )
>=x11-libs/pixman-0.28.0[static-libs(+)]
accessibility? (
app-accessibility/brltty[api]
@@ -103,35 +173,34 @@ SOFTMMU_TOOLS_DEPEND="
)
aio? ( dev-libs/libaio[static-libs(+)] )
alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ bpf? ( dev-libs/libbpf:= )
bzip2? ( app-arch/bzip2[static-libs(+)] )
- capstone? ( dev-libs/capstone:= )
- caps? ( sys-libs/libcap-ng[static-libs(+)] )
+ capstone? ( dev-libs/capstone:=[static-libs(+)] )
curl? ( >=net-misc/curl-7.15.4[static-libs(+)] )
- fdt? ( >=sys-apps/dtc-1.5.0[static-libs(+)] )
+ fdt? ( >=sys-apps/dtc-1.5.1[static-libs(+)] )
+ fuse? ( >=sys-fs/fuse-3.1:3[static-libs(+)] )
glusterfs? ( >=sys-cluster/glusterfs-3.4.0[static-libs(+)] )
gnutls? (
- dev-libs/nettle:=[static-libs(+)]
>=net-libs/gnutls-3.0:=[static-libs(+)]
+ dev-libs/nettle:=[static-libs(+)]
)
gtk? (
x11-libs/gtk+:3
vte? ( x11-libs/vte:2.91 )
)
- infiniband? (
- sys-fabric/libibumad:=[static-libs(+)]
- sys-fabric/libibverbs:=[static-libs(+)]
- sys-fabric/librdmacm:=[static-libs(+)]
- )
+ infiniband? ( sys-cluster/rdma-core[static-libs(+)] )
iscsi? ( net-libs/libiscsi )
- io-uring? ( sys-libs/liburing[static-libs(+)] )
+ io-uring? ( sys-libs/liburing:=[static-libs(+)] )
jack? ( virtual/jack )
jemalloc? ( dev-libs/jemalloc )
- jpeg? ( virtual/jpeg:0=[static-libs(+)] )
+ jpeg? ( media-libs/libjpeg-turbo:=[static-libs(+)] )
+ kernel_linux? ( sys-libs/libcap-ng[static-libs(+)] )
+ keyutils? ( sys-apps/keyutils[static-libs(+)] )
lzo? ( dev-libs/lzo:2[static-libs(+)] )
multipath? ( sys-fs/multipath-tools )
ncurses? (
- sys-libs/ncurses:0=[unicode]
- sys-libs/ncurses:0=[static-libs(+)]
+ sys-libs/ncurses:=[unicode(+)]
+ sys-libs/ncurses:=[static-libs(+)]
)
nfs? ( >=net-fs/libnfs-1.9.3:=[static-libs(+)] )
numa? ( sys-process/numactl[static-libs(+)] )
@@ -139,10 +208,12 @@ SOFTMMU_TOOLS_DEPEND="
virtual/opengl
media-libs/libepoxy[static-libs(+)]
media-libs/mesa[static-libs(+)]
- media-libs/mesa[egl,gbm]
+ media-libs/mesa[egl(+),gbm(+)]
)
- png? ( media-libs/libpng:0=[static-libs(+)] )
- pulseaudio? ( media-sound/pulseaudio )
+ pam? ( sys-libs/pam )
+ pipewire? ( >=media-video/pipewire-0.3.60 )
+ png? ( >=media-libs/libpng-1.6.34:=[static-libs(+)] )
+ pulseaudio? ( media-libs/libpulse )
rbd? ( sys-cluster/ceph )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)] )
sdl? (
@@ -155,76 +226,101 @@ SOFTMMU_TOOLS_DEPEND="
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
snappy? ( app-arch/snappy:= )
spice? (
- >=app-emulation/spice-protocol-0.12.3
- >=app-emulation/spice-0.12.0[static-libs(+)]
+ >=app-emulation/spice-protocol-0.14.0
+ >=app-emulation/spice-0.14.0[static-libs(+)]
)
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
- usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
+ udev? ( virtual/libudev:= )
+ usb? ( >=virtual/libusb-1-r2:1[static-libs(+)] )
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
vde? ( net-misc/vde[static-libs(+)] )
virgl? ( media-libs/virglrenderer[static-libs(+)] )
virtfs? ( sys-libs/libcap )
xen? ( app-emulation/xen-tools:= )
- xfs? ( sys-fs/xfsprogs[static-libs(+)] )
zstd? ( >=app-arch/zstd-1.4.0[static-libs(+)] )
"
+EDK2_OVMF_VERSION="202202"
+SEABIOS_VERSION="1.16.0"
+
X86_FIRMWARE_DEPEND="
pin-upstream-blobs? (
- ~sys-firmware/edk2-ovmf-201905[binary]
- ~sys-firmware/ipxe-1.0.0_p20190728[binary]
- ~sys-firmware/seabios-1.12.0[binary,seavgabios]
- ~sys-firmware/sgabios-0.1_pre8[binary]
+ ~sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ ~sys-firmware/ipxe-1.21.1[binary,qemu]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ ~sys-firmware/sgabios-0.1_pre10[binary]
)
!pin-upstream-blobs? (
- sys-firmware/edk2-ovmf
- sys-firmware/ipxe
- >=sys-firmware/seabios-1.10.2[seavgabios]
+ || (
+ >=sys-firmware/edk2-ovmf-${EDK2_OVMF_VERSION}
+ >=sys-firmware/edk2-ovmf-bin-${EDK2_OVMF_VERSION}
+ )
+ sys-firmware/ipxe[qemu]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
sys-firmware/sgabios
- )"
-PPC64_FIRMWARE_DEPEND="
+ )
+"
+PPC_FIRMWARE_DEPEND="
pin-upstream-blobs? (
- ~sys-firmware/seabios-1.12.0[binary,seavgabios]
+ ~sys-firmware/seabios-bin-${SEABIOS_VERSION}
)
!pin-upstream-blobs? (
- >=sys-firmware/seabios-1.10.2[seavgabios]
+ || (
+ >=sys-firmware/seabios-${SEABIOS_VERSION}[seavgabios]
+ >=sys-firmware/seabios-bin-${SEABIOS_VERSION}
+ )
)
"
+# See bug #913084 for pip dep
BDEPEND="
$(python_gen_impl_dep)
dev-lang/perl
- sys-apps/texinfo
+ >=dev-build/meson-0.63.0
+ app-alternatives/ninja
+ dev-python/pip[${PYTHON_USEDEP}]
virtual/pkgconfig
- doc? ( dev-python/sphinx )
+ doc? (
+ >=dev-python/sphinx-1.6.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-rtd-theme[${PYTHON_USEDEP}]
+ )
gtk? ( nls? ( sys-devel/gettext ) )
test? (
dev-libs/glib[utils]
- sys-devel/bc
+ app-alternatives/bc
)
"
CDEPEND="
- !static? (
- ${ALL_DEPEND//\[static-libs(+)]}
- ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
- )
+ ${ALL_DEPEND//\[static-libs(+)]}
+ ${SOFTMMU_TOOLS_DEPEND//\[static-libs(+)]}
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
- qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
+ qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
"
-DEPEND="${CDEPEND}
+DEPEND="
+ ${CDEPEND}
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
- static? (
- ${ALL_DEPEND}
- ${SOFTMMU_TOOLS_DEPEND}
- )
- static-user? ( ${ALL_DEPEND} )"
-RDEPEND="${CDEPEND}
+ static-user? ( ${ALL_DEPEND} )
+"
+RDEPEND="
+ ${CDEPEND}
acct-group/kvm
- selinux? ( sec-policy/selinux-qemu )"
+ selinux? (
+ sec-policy/selinux-qemu
+ sys-libs/libselinux
+ )
+"
PATCHES=(
- "${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
+ "${FILESDIR}"/${PN}-8.0.0-disable-keymap.patch
+ "${FILESDIR}"/${PN}-7.1.0-capstone-include-path.patch
+ "${FILESDIR}"/${PN}-8.1.0-also-build-virtfs-proxy-helper.patch
+ "${FILESDIR}"/${PN}-8.1.0-skip-tests.patch
+ "${FILESDIR}"/${PN}-8.1.0-find-sphinx.patch
)
QA_PREBUILT="
@@ -232,12 +328,16 @@ QA_PREBUILT="
usr/share/qemu/openbios-ppc
usr/share/qemu/openbios-sparc64
usr/share/qemu/openbios-sparc32
+ usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
+ usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
usr/share/qemu/palcode-clipper
usr/share/qemu/s390-ccw.img
usr/share/qemu/s390-netboot.img
- usr/share/qemu/u-boot.e500"
+ usr/share/qemu/u-boot.e500
+"
-QA_WX_LOAD="usr/bin/qemu-i386
+QA_WX_LOAD="
+ usr/bin/qemu-i386
usr/bin/qemu-x86_64
usr/bin/qemu-alpha
usr/bin/qemu-arm
@@ -250,7 +350,6 @@ QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-or1k
usr/bin/qemu-ppc
usr/bin/qemu-ppc64
- usr/bin/qemu-ppc64abi32
usr/bin/qemu-sh4
usr/bin/qemu-sh4eb
usr/bin/qemu-sparc
@@ -258,7 +357,8 @@ QA_WX_LOAD="usr/bin/qemu-i386
usr/bin/qemu-armeb
usr/bin/qemu-sparc32plus
usr/bin/qemu-s390x
- usr/bin/qemu-unicore32"
+ usr/bin/qemu-unicore32
+"
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
kernel module loaded before running kvm. The easiest way to ensure that the
@@ -302,6 +402,8 @@ pkg_pretend() {
use vhost-net && CONFIG_CHECK+=" ~VHOST_NET"
ERROR_VHOST_NET="You must enable VHOST_NET to have vhost-net"
ERROR_VHOST_NET+=" support"
+ use test && CONFIG_CHECK+=" IP_MULTICAST"
+ ERROR_IP_MULTICAST="Test suite requires IP_MULTICAST"
if use amd64 || use x86 || use amd64-linux || use x86-linux; then
if grep -q AuthenticAMD /proc/cpuinfo; then
@@ -333,7 +435,7 @@ check_targets() {
local var=$1 mak=$2
local detected sorted
- pushd "${S}"/default-configs/targets/ >/dev/null || die
+ pushd "${S}"/configs/targets/ >/dev/null || die
# Force C locale until glibc is updated. #564936
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
@@ -348,26 +450,20 @@ check_targets() {
popd >/dev/null
}
-handle_locales() {
- # Make sure locale list is kept up-to-date.
- local detected sorted
- detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u))
- sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u))
- if [[ ${sorted} != "${detected}" ]] ; then
- eerror "The ebuild needs to be kept in sync."
- eerror "PLOCALES: ${sorted}"
- eerror " po/*.po: ${detected}"
- die "sync PLOCALES"
- fi
-
- # Deal with selective install of locales.
- if use nls ; then
- # Delete locales the user does not want. #577814
- rm_loc() { rm po/$1.po || die; }
- l10n_for_each_disabled_locale_do rm_loc
+src_unpack() {
+ if [[ ${PV} == 9999 ]] ; then
+ git-r3_src_unpack
+ for file in ${A}; do
+ unpack "${file}"
+ done
+ cd "${WORKDIR}" || die
+ for proj in "${!SUBPROJECTS[@]}"; do
+ mv "${proj}-${SUBPROJECTS[${proj}]}" "${S}/subprojects/${proj}" || die
+ done
+ cd "${S}" || die
+ meson subprojects packagefiles --apply || die
else
- # Cheap hack to disable gettext .mo generation.
- rm -f po/*.po
+ default
fi
}
@@ -378,17 +474,14 @@ src_prepare() {
default
# Use correct toolchain to fix cross-compiling
- tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB
+ tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
export WINDRES=${CHOST}-windres
# Verbose builds
MAKEOPTS+=" V=1"
- # Run after we've applied all patches.
- handle_locales
-
- # Remove bundled copy of libfdt
- rm -r dtc || die
+ # Remove bundled modules
+ rm -r roms/*/ || die
}
##
@@ -401,7 +494,7 @@ qemu_src_configure() {
local buildtype=$1
local builddir="${S}/${buildtype}-build"
- mkdir "${builddir}"
+ mkdir "${builddir}" || die
local conf_opts=(
--prefix=/usr
@@ -416,6 +509,7 @@ qemu_src_configure() {
--disable-containers # bug #732972
--disable-guest-agent
--disable-strip
+ --disable-download
# bug #746752: TCG interpreter has a few limitations:
# - it does not support FPU
@@ -432,14 +526,21 @@ qemu_src_configure() {
# are enabled), but it's not really worth the hassle. Disable it
# all the time to avoid automatically detecting it. #568856
--disable-gcrypt
- --python="${PYTHON}"
--cc="$(tc-getCC)"
--cxx="$(tc-getCXX)"
+ --objcc="$(tc-getCC)"
--host-cc="$(tc-getBUILD_CC)"
+
+ $(use_enable alsa)
$(use_enable debug debug-info)
$(use_enable debug debug-tcg)
- $(use_enable doc docs)
+ $(use_enable jack)
+ $(use_enable nls gettext)
+ $(use_enable oss)
+ $(use_enable pipewire)
$(use_enable plugins)
+ $(use_enable pulseaudio pa)
+ $(use_enable selinux)
$(use_enable xattr attr)
)
@@ -460,14 +561,31 @@ qemu_src_configure() {
echo "--disable-${2:-$1}"
fi
}
+ # Enable option only for tools build, but not 'user' or 'softmmu'
+ conf_tools() {
+ if [[ ${buildtype} == "tools" ]] ; then
+ use_enable "$@"
+ else
+ echo "--disable-${2:-$1}"
+ fi
+ }
+ # Special case for the malloc flag, because the --disable flag does
+ # not exist and trying like above will break configuring.
+ conf_malloc() {
+ if [[ ! ${buildtype} == "user" ]] ; then
+ usex "${1}" "--enable-malloc=${1}" ""
+ fi
+ }
conf_opts+=(
$(conf_notuser accessibility brlapi)
$(conf_notuser aio linux-aio)
+ $(conf_softmmu bpf)
$(conf_notuser bzip2)
$(conf_notuser capstone)
- $(conf_notuser caps cap-ng)
$(conf_notuser curl)
+ $(conf_tools doc docs)
$(conf_notuser fdt)
+ $(conf_notuser fuse)
$(conf_notuser glusterfs)
$(conf_notuser gnutls)
$(conf_notuser gnutls nettle)
@@ -475,61 +593,58 @@ qemu_src_configure() {
$(conf_notuser infiniband rdma)
$(conf_notuser iscsi libiscsi)
$(conf_notuser io-uring linux-io-uring)
- $(conf_notuser jemalloc jemalloc)
+ $(conf_malloc jemalloc)
$(conf_notuser jpeg vnc-jpeg)
$(conf_notuser kernel_linux kvm)
+ $(conf_notuser keyutils libkeyutils)
$(conf_notuser lzo)
$(conf_notuser multipath mpath)
$(conf_notuser ncurses curses)
$(conf_notuser nfs libnfs)
$(conf_notuser numa)
$(conf_notuser opengl)
- $(conf_notuser png vnc-png)
+ $(conf_notuser pam auth-pam)
+ $(conf_notuser png)
$(conf_notuser rbd)
$(conf_notuser sasl vnc-sasl)
$(conf_notuser sdl)
$(conf_softmmu sdl-image)
$(conf_notuser seccomp)
- $(conf_notuser slirp slirp system)
+ $(conf_notuser slirp)
$(conf_notuser smartcard)
$(conf_notuser snappy)
$(conf_notuser spice)
$(conf_notuser ssh libssh)
+ $(conf_notuser udev libudev)
$(conf_notuser usb libusb)
$(conf_notuser usbredir usb-redir)
$(conf_notuser vde)
$(conf_notuser vhost-net)
- $(conf_notuser vhost-user-fs)
$(conf_notuser virgl virglrenderer)
- $(conf_notuser virtfs)
+ $(conf_softmmu virtfs)
$(conf_notuser vnc)
$(conf_notuser vte)
$(conf_notuser xen)
$(conf_notuser xen xen-pci-passthrough)
- $(conf_notuser xfs xfsctl)
- $(conf_notuser xkb xkbcommon)
+ # use prebuilt keymaps, bug #759604
+ --disable-xkbcommon
$(conf_notuser zstd)
)
- if [[ ${buildtype} == "user" ]] ; then
- conf_opts+=( --disable-libxml2 )
- else
- conf_opts+=( --enable-libxml2 )
- fi
-
if [[ ! ${buildtype} == "user" ]] ; then
# audio options
local audio_opts=(
# Note: backend order matters here: #716202
# We iterate from higher-level to lower level.
$(usex pulseaudio pa "")
+ $(usev pipewire)
$(usev jack)
$(usev sdl)
$(usev alsa)
$(usev oss)
)
conf_opts+=(
- --audio-drv-list=$(printf "%s," "${audio_opts[@]}")
+ --audio-drv-list=$(IFS=,; echo "${audio_opts[*]}")
)
fi
@@ -538,8 +653,9 @@ qemu_src_configure() {
conf_opts+=(
--enable-linux-user
--disable-system
- --disable-blobs
--disable-tools
+ --disable-cap-ng
+ --disable-seccomp
)
local static_flag="static-user"
;;
@@ -548,17 +664,19 @@ qemu_src_configure() {
--disable-linux-user
--enable-system
--disable-tools
+ --enable-cap-ng
+ --enable-seccomp
)
- local static_flag="static"
+ local static_flag="none"
;;
tools)
conf_opts+=(
--disable-linux-user
--disable-system
- --disable-blobs
--enable-tools
+ --enable-cap-ng
)
- local static_flag="static"
+ local static_flag="none"
;;
esac
@@ -566,17 +684,20 @@ qemu_src_configure() {
[[ -n ${targets} ]] && conf_opts+=( --target-list="${!targets}" )
# Add support for SystemTAP
- use systemtap && conf_opts+=( --enable-trace-backend=dtrace )
+ use systemtap && conf_opts+=( --enable-trace-backends="dtrace" )
# We always want to attempt to build with PIE support as it results
# in a more secure binary. But it doesn't work with static or if
# the current GCC doesn't have PIE support.
- if use ${static_flag}; then
+ if [[ ${static_flag} != "none" ]] && use ${static_flag}; then
conf_opts+=( --static --disable-pie )
else
tc-enables-pie && conf_opts+=( --enable-pie )
fi
+ # Meson will not use a cross-file unless cross_prefix is set.
+ tc-is-cross-compiler && conf_opts+=( --cross-prefix="${CHOST}-" )
+
# Plumb through equivalent of EXTRA_ECONF to allow experiments
# like bug #747928.
conf_opts+=( ${EXTRA_CONF_QEMU} )
@@ -584,11 +705,6 @@ qemu_src_configure() {
echo "../configure ${conf_opts[*]}"
cd "${builddir}"
../configure "${conf_opts[@]}" || die "configure failed"
-
- # FreeBSD's kernel does not support QEMU assigning/grabbing
- # host USB devices yet
- use kernel_FreeBSD && \
- sed -i -E -e "s|^(HOST_USB=)bsd|\1stub|" "${S}"/config-host.mak
}
src_configure() {
@@ -623,22 +739,22 @@ src_configure() {
src_compile() {
if [[ -n ${user_targets} ]]; then
- cd "${S}/user-build"
+ cd "${S}/user-build" || die
default
fi
if [[ -n ${softmmu_targets} ]]; then
- cd "${S}/softmmu-build"
+ cd "${S}/softmmu-build" || die
default
fi
- cd "${S}/tools-build"
+ cd "${S}/tools-build" || die
default
}
src_test() {
if [[ -n ${softmmu_targets} ]]; then
- cd "${S}/softmmu-build"
+ cd "${S}/softmmu-build" || die
pax-mark m */qemu-system-* #515550
emake check
fi
@@ -727,7 +843,7 @@ src_install() {
[[ -e check-report.html ]] && dodoc check-report.html
if use kernel_linux; then
- udev_newrules "${FILESDIR}"/65-kvm.rules-r1 65-kvm.rules
+ udev_newrules "${FILESDIR}"/65-kvm.rules-r2 65-kvm.rules
fi
if use python; then
@@ -735,20 +851,25 @@ src_install() {
fi
fi
- cd "${S}/tools-build"
+ cd "${S}/tools-build" || die
emake DESTDIR="${ED}" install
+ # If USE=doc, there'll be newly generated docs which we install instead.
+ if ! use doc && [[ ${QEMU_DOCS_PREBUILT} == 1 ]] ; then
+ doman "${WORKDIR}"/${PN}-${QEMU_DOCS_VERSION}-docs/docs/*.[0-8]
+ fi
+
# Disable mprotect on the qemu binaries as they use JITs to be fast #459348
- pushd "${ED}"/usr/bin >/dev/null
+ pushd "${ED}"/usr/bin >/dev/null || die
pax-mark mr "${softmmu_bins[@]}" "${user_bins[@]}" # bug 575594
- popd >/dev/null
+ popd >/dev/null || die
# Install config file example for qemu-bridge-helper
insinto "/etc/qemu"
doins "${FILESDIR}/bridge.conf"
- cd "${S}"
- dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
+ cd "${S}" || die
+ dodoc MAINTAINERS
newdoc pc-bios/README README.pc-bios
# Disallow stripping of prebuilt firmware files.
@@ -756,10 +877,7 @@ src_install() {
if [[ -n ${softmmu_targets} ]]; then
# Remove SeaBIOS since we're using the SeaBIOS packaged one
- rm "${ED}/usr/share/qemu/bios.bin"
- rm "${ED}/usr/share/qemu/bios-256k.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
- dosym ../seabios/bios.bin /usr/share/qemu/bios.bin
dosym ../seabios/bios-256k.bin /usr/share/qemu/bios-256k.bin
fi
@@ -770,8 +888,9 @@ src_install() {
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
- # PPC64 loads vgabios-stdvga
- if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
+
+ # PPC/PPC64 loads vgabios-stdvga
+ if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
@@ -781,13 +900,11 @@ src_install() {
fi
# Remove sgabios since we're using the sgabios packaged one
- rm "${ED}/usr/share/qemu/sgabios.bin"
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../sgabios/sgabios.bin /usr/share/qemu/sgabios.bin
fi
# Remove iPXE since we're using the iPXE packaged one
- rm "${ED}"/usr/share/qemu/pxe-*.rom
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386; then
dosym ../ipxe/8086100e.rom /usr/share/qemu/pxe-e1000.rom
dosym ../ipxe/80861209.rom /usr/share/qemu/pxe-eepro100.rom
@@ -805,7 +922,7 @@ src_install() {
firmware_abi_change() {
local pv
for pv in ${REPLACING_VERSIONS}; do
- if ver_test $pv -lt ${FIRMWARE_ABI_VERSION}; then
+ if ver_test ${pv} -lt ${FIRMWARE_ABI_VERSION}; then
return 0
fi
done
@@ -820,16 +937,27 @@ pkg_postinst() {
xdg_icon_cache_update
[[ -z ${EPREFIX} ]] && [[ -f ${EROOT}/usr/libexec/qemu-bridge-helper ]] && \
- fcaps cap_net_admin ${EROOT}/usr/libexec/qemu-bridge-helper
+ fcaps cap_net_admin "${EROOT}"/usr/libexec/qemu-bridge-helper
DISABLE_AUTOFORMATTING=true
readme.gentoo_print_elog
if use pin-upstream-blobs && firmware_abi_change; then
ewarn "This version of qemu pins new versions of firmware blobs:"
- ewarn " $(best_version sys-firmware/edk2-ovmf)"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ ewarn " $(best_version sys-firmware/edk2-ovmf-bin)"
+ else
+ ewarn " $(best_version sys-firmware/edk2-ovmf)"
+ fi
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ ewarn " $(best_version sys-firmware/seabios-bin)"
+ else
+ ewarn " $(best_version sys-firmware/seabios)"
+ fi
+
ewarn " $(best_version sys-firmware/ipxe)"
- ewarn " $(best_version sys-firmware/seabios)"
ewarn " $(best_version sys-firmware/sgabios)"
ewarn "This might break resume of hibernated guests (started with a different"
ewarn "firmware version) and live migration to/from qemu versions with different"
@@ -843,22 +971,24 @@ pkg_postinst() {
pkg_info() {
echo "Using:"
echo " $(best_version app-emulation/spice-protocol)"
- echo " $(best_version sys-firmware/edk2-ovmf)"
- if has_version 'sys-firmware/edk2-ovmf[binary]'; then
- echo " USE=binary"
+
+ if has_version 'sys-firmware/edk2-ovmf-bin'; then
+ echo " $(best_version sys-firmware/edk2-ovmf-bin)"
else
- echo " USE=''"
+ echo " $(best_version sys-firmware/edk2-ovmf)"
fi
- echo " $(best_version sys-firmware/ipxe)"
- echo " $(best_version sys-firmware/seabios)"
- if has_version 'sys-firmware/seabios[binary]'; then
- echo " USE=binary"
+
+ if has_version 'sys-firmware/seabios-bin'; then
+ echo " $(best_version sys-firmware/seabios-bin)"
else
- echo " USE=''"
+ echo " $(best_version sys-firmware/seabios)"
fi
+
+ echo " $(best_version sys-firmware/ipxe)"
echo " $(best_version sys-firmware/sgabios)"
}
pkg_postrm() {
xdg_icon_cache_update
+ udev_reload
}
diff --git a/app-emulation/qt-virt-manager/metadata.xml b/app-emulation/qt-virt-manager/metadata.xml
deleted file mode 100644
index 911710bc8d2c..000000000000
--- a/app-emulation/qt-virt-manager/metadata.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <use>
- <flag name="smartcard">Enable smartcard remoting using <pkg>app-emulation/libcacard</pkg></flag>
- </use>
- <upstream>
- <remote-id type="github">F1ash/qt-virt-manager</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild b/app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild
deleted file mode 100644
index 7eb26346c9a9..000000000000
--- a/app-emulation/qt-virt-manager/qt-virt-manager-9999.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit cmake-utils
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://github.com/F1ash/qt-virt-manager.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- KEYWORDS=""
-else
- SRC_URI="https://github.com/F1ash/qt-virt-manager/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS=""
-fi
-
-DESCRIPTION="A GUI application for managing virtual machines"
-HOMEPAGE="https://github.com/F1ash/qt-virt-manager"
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="smartcard"
-
-DEPEND="
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtmultimedia:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- dev-qt/qtxml:5
- dev-qt/qtnetwork:5
- >=x11-libs/qtermwidget-0.7.0
- smartcard? ( >=app-emulation/libcacard-2.5.0 )
- dev-libs/glib
- net-misc/spice-gtk
- net-libs/libvncserver
- app-emulation/libvirt
-"
-RDEPEND="${DEPEND}"
-
-src_configure() {
- local mycmakeargs=(
- -DBUILD_QT_VERSION=5
- -DWITH_LIBCACARD="$(usex smartcard ON OFF)"
- )
- cmake-utils_src_configure
-}
diff --git a/app-emulation/qtrvsim/Manifest b/app-emulation/qtrvsim/Manifest
new file mode 100644
index 000000000000..762a7e2d5b7d
--- /dev/null
+++ b/app-emulation/qtrvsim/Manifest
@@ -0,0 +1 @@
+DIST qtrvsim-0.9.7.tar.gz 1421805 BLAKE2B 9128dbe513860eafd01e0f37a99547797d385b57a404e06aea310404012e66e6be802920cdea62acb914d355fc842cd3759fc794d2cd417257b941f9ec62fbec SHA512 0d53e21681630cbf97db472472bd96dfe4914e0d275a1094cb18a7f0372cef23b0dea3c33092b6ab6d2403737070ef0b6f2b1f5d9d35eea8923b24a80ac6adfe
diff --git a/app-emulation/qtrvsim/metadata.xml b/app-emulation/qtrvsim/metadata.xml
new file mode 100644
index 000000000000..38cc1db28ca8
--- /dev/null
+++ b/app-emulation/qtrvsim/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>flow@gentoo.org</email>
+ <name>Florian Schmaus</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">cvut/qtrvsim</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild b/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild
new file mode 100644
index 000000000000..88e56acd60ea
--- /dev/null
+++ b/app-emulation/qtrvsim/qtrvsim-0.9.7.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="RISC-V CPU simulator for education"
+HOMEPAGE="https://github.com/cvut/qtrvsim"
+SRC_URI="https://github.com/cvut/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-qt/qtbase:6[gui,widgets]
+ virtual/libelf:=
+"
+RDEPEND="${DEPEND}"
+
+CMAKE_SKIP_TESTS=(
+ # Fails in 0.9.7, but not in master.
+ cli_stalls
+)
diff --git a/app-emulation/reg/Manifest b/app-emulation/reg/Manifest
deleted file mode 100644
index aa259755a17d..000000000000
--- a/app-emulation/reg/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST github.com-go-yaml-yaml-eb3733d160e7.tar.gz 64789 BLAKE2B a59db73ba751c932695913770550e115d46df28c4cff402325cf5324c97069e3acccb9faf39826a5da416f8c5b0cc69377cef41a6b1451afa82c7ae8bd620544 SHA512 9e34c34c907d1177e072eb5f3b421b8a3af0e68b490508691d745cdcf1145d9bcfd2592d909a4b05e7f12bfb62355d49861f6d2e1bd29b69cf026ef631965289
-DIST reg-0.16.1.tar.gz 3163977 BLAKE2B b161200e7b96b26054e121853bafb4751865de1146f07fa48418a6624beeebd10eb8fcde1af90f9dd3c20ffd8d5807a106d012bf996944c96b5ff841b0079fb4 SHA512 77fbd543de6e94c504e98a0364895b19099e3cde55a85a4413730de58de8e84f50889fdcfaffa1c76ae412a603ed6d5f4b1d57566ec814cf88df70278e91aee6
diff --git a/app-emulation/reg/files/reg-0.16.0-config.patch b/app-emulation/reg/files/reg-0.16.0-config.patch
deleted file mode 100644
index 3ec1bf44d032..000000000000
--- a/app-emulation/reg/files/reg-0.16.0-config.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From 0ab86b565f437b9dede5d3a7cef56690d8d19bbb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Manuel=20R=C3=BCger?= <manuel@rueg.eu>
-Date: Tue, 18 Sep 2018 15:42:24 +0200
-Subject: [PATCH 2/2] server: Read config from file
-
----
- README.md | 4 ++
- config.yml.example | 37 ++++++++++++++++
- server.go | 107 +++++++++++++++++++++++++++++++--------------
- 3 files changed, 114 insertions(+), 34 deletions(-)
- create mode 100644 config.yml.example
-
-diff --git a/README.md b/README.md
-index 3b1b661f..5e0f0175 100644
---- a/README.md
-+++ b/README.md
-@@ -228,6 +228,7 @@ Flags:
- -u, --username username for the registry (default: <none>)
- --listen-address address to listen on (default: <none>)
- --asset-path Path to assets and templates (default: <none>)
-+ --config Path to config file (default: <none>)
- -f, --force-non-ssl force allow use of non-ssl (default: false)
- --once generate the templates once and then exit (default: false)
- --skip-ping skip pinging the registry while establishing connection (default: false)
-@@ -243,6 +244,9 @@ Flags:
- -p, --password password for the registry (default: <none>)
- ```
-
-+Alternatively you can provide configuration to `reg server` via a file passed to
-+`reg server` via as `--config`. See also config.yml.example in this repository.
-+
- **Screenshots:**
-
- ![home.png](server/home.png)
-diff --git a/config.yml.example b/config.yml.example
-new file mode 100644
-index 00000000..9d4be25f
---- /dev/null
-+++ b/config.yml.example
-@@ -0,0 +1,37 @@
-+### Reg Server Settings
-+
-+## Path to server TLS certificate:
-+# cert:
-+## Path to server TLS key:
-+# key:
-+## Address to listen on:
-+# listen-address: 0.0.0.0
-+## Port to listen on:
-+# port: 8080
-+## Path Assets are stored under:
-+# asset-path: /var/lib/reg
-+## Generate static website and exit:
-+# once: false
-+## Refresh interval:
-+# interval: 1h0m0s
-+## Debug output
-+# debug: false
-+## Skip initial ping
-+# skip-ping: false
-+## Timeout
-+# timeout: 1m0s
-+
-+
-+### Registry and Clair Server Settings
-+## Registry Server:
-+# registry: r.j3ss.co
-+## Username to authenticate against registry server
-+# username:
-+## Password to authenticate against registry server
-+# password:
-+## If true, do not verify TLS certificates
-+# insecure: false
-+## Force allow use of non-TLS connections
-+# force-nonssl: false
-+## Clair Server:
-+# clair:
-diff --git a/server.go b/server.go
-index fcd4cd71..0c84d85d 100644
---- a/server.go
-+++ b/server.go
-@@ -4,7 +4,9 @@ import (
- "context"
- "flag"
- "fmt"
-+ "gopkg.in/yaml.v2"
- "html/template"
-+ "io/ioutil"
- "net/http"
- "os"
- "path/filepath"
-@@ -29,39 +31,76 @@ func (cmd *serverCommand) LongHelp() string { return serverHelp }
- func (cmd *serverCommand) Hidden() bool { return false }
-
- func (cmd *serverCommand) Register(fs *flag.FlagSet) {
-- fs.DurationVar(&cmd.interval, "interval", time.Hour, "interval to generate new index.html's at")
-+ fs.DurationVar(&cmd.Interval, "interval", time.Hour, "interval to generate new index.html's at")
-
-- fs.StringVar(&cmd.registryServer, "registry", "", "URL to the private registry (ex. r.j3ss.co)")
-- fs.StringVar(&cmd.registryServer, "r", "", "URL to the private registry (ex. r.j3ss.co)")
-+ fs.StringVar(&cmd.RegistryServer, "registry", "", "URL to the private registry (ex. r.j3ss.co)")
-+ fs.StringVar(&cmd.RegistryServer, "r", "", "URL to the private registry (ex. r.j3ss.co)")
-
-- fs.StringVar(&cmd.clairServer, "clair", "", "url to clair instance")
-+ fs.StringVar(&cmd.ClairServer, "clair", "", "url to clair instance")
-
-- fs.StringVar(&cmd.cert, "cert", "", "path to ssl cert")
-- fs.StringVar(&cmd.key, "key", "", "path to ssl key")
-- fs.StringVar(&cmd.listenAddress, "listen-address", "", "address to listen on")
-- fs.StringVar(&cmd.port, "port", "8080", "port for server to run on")
-- fs.StringVar(&cmd.assetPath, "asset-path", "", "Path to assets and templates")
-+ fs.StringVar(&cmd.Cert, "cert", "", "path to ssl cert")
-+ fs.StringVar(&cmd.Key, "key", "", "path to ssl key")
-+ fs.StringVar(&cmd.ListenAddress, "listen-address", "", "address to listen on")
-+ fs.StringVar(&cmd.Port, "port", "8080", "port for server to run on")
-
-- fs.BoolVar(&cmd.generateAndExit, "once", false, "generate the templates once and then exit")
-+ fs.StringVar(&cmd.AssetPath, "asset-path", "", "Path to assets and templates")
-+ fs.StringVar(&cmd.configPath, "config", "", "Path to config file")
-+
-+ fs.BoolVar(&cmd.GenerateAndExit, "once", false, "generate the templates once and then exit")
- }
-
- type serverCommand struct {
-- interval time.Duration
-- registryServer string
-- clairServer string
--
-- generateAndExit bool
--
-- cert string
-- key string
-- listenAddress string
-- port string
-- assetPath string
-+ Interval time.Duration `yaml:"interval"`
-+ RegistryServer string `yaml:"registry"`
-+ ClairServer string `yaml:"clair"`
-+ GenerateAndExit bool `yaml:"once"`
-+ Cert string `yaml:"cert"`
-+ Key string `yaml:"key"`
-+ ListenAddress string `yaml:"listen-address"`
-+ Port string `yaml:"port"`
-+ AssetPath string `yaml:"asset-path"`
-+ configPath string
-+
-+ Password string `yaml:"password"`
-+ Username string `yaml:"username"`
-+ Insecure bool `yaml:"insecure"`
-+ Debug bool `yaml:"debug"`
-+ SkipPing bool `yaml:"skip-ping"`
-+ ForceNonSSL bool `yaml:"force-nonssl"`
-+ Timeout time.Duration `yaml:"timeout"`
- }
-
- func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
- // Create the registry client.
-- r, err := createRegistryClient(ctx, cmd.registryServer)
-+ if len(cmd.configPath) > 0 {
-+ config, err := ioutil.ReadFile(cmd.configPath)
-+ if err != nil {
-+ return err
-+ }
-+ yaml.Unmarshal(config, cmd)
-+ if err != nil {
-+ return err
-+ }
-+ if len(cmd.Username) > 0 {
-+ username = cmd.Username
-+ }
-+ if len(cmd.Password) > 0 {
-+ password = cmd.Password
-+ }
-+ if cmd.Debug {
-+ debug = cmd.Debug
-+ }
-+ if cmd.Insecure {
-+ insecure = cmd.Insecure
-+ }
-+ if cmd.SkipPing {
-+ skipPing = cmd.SkipPing
-+ }
-+ if cmd.Timeout != 0 {
-+ timeout = cmd.Timeout
-+ }
-+ }
-+ r, err := createRegistryClient(ctx, cmd.RegistryServer)
- if err != nil {
- return err
- }
-@@ -69,25 +108,25 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
- // Create the registry controller for the handlers.
- rc := registryController{
- reg: r,
-- generateOnly: cmd.generateAndExit,
-+ generateOnly: cmd.GenerateAndExit,
- }
-
- // Create a clair client if the user passed in a server address.
-- if len(cmd.clairServer) > 0 {
-- rc.cl, err = clair.New(cmd.clairServer, clair.Opt{
-+ if len(cmd.ClairServer) > 0 {
-+ rc.cl, err = clair.New(cmd.ClairServer, clair.Opt{
- Insecure: insecure,
- Debug: debug,
- Timeout: timeout,
- })
- if err != nil {
-- return fmt.Errorf("creation of clair client at %s failed: %v", cmd.clairServer, err)
-+ return fmt.Errorf("creation of clair client at %s failed: %v", cmd.ClairServer, err)
- }
- } else {
- rc.cl = nil
- }
- // Get the path to the asset directory.
-- assetDir := cmd.assetPath
-- if len(cmd.assetPath) <= 0 {
-+ assetDir := cmd.AssetPath
-+ if len(cmd.AssetPath) <= 0 {
- assetDir, err = os.Getwd()
- if err != nil {
- return err
-@@ -131,12 +170,12 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
- return fmt.Errorf("creating index failed: %v", err)
- }
-
-- if cmd.generateAndExit {
-+ if cmd.GenerateAndExit {
- logrus.Info("output generated, exiting...")
- return nil
- }
-
-- rc.interval = cmd.interval
-+ rc.interval = cmd.Interval
- ticker := time.NewTicker(rc.interval)
- go func() {
- // Create more indexes every X minutes based off interval.
-@@ -174,12 +213,12 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
-
- // Set up the server.
- server := &http.Server{
-- Addr: cmd.listenAddress + ":" + cmd.port,
-+ Addr: cmd.ListenAddress + ":" + cmd.Port,
- Handler: mux,
- }
-- logrus.Infof("Starting server on port %q", cmd.port)
-- if len(cmd.cert) > 0 && len(cmd.key) > 0 {
-- return server.ListenAndServeTLS(cmd.cert, cmd.key)
-+ logrus.Infof("Starting server on port %q", cmd.Port)
-+ if len(cmd.Cert) > 0 && len(cmd.Key) > 0 {
-+ return server.ListenAndServeTLS(cmd.Cert, cmd.Key)
- }
- return server.ListenAndServe()
- }
diff --git a/app-emulation/reg/files/reg.confd b/app-emulation/reg/files/reg.confd
deleted file mode 100644
index 1bd2475decc4..000000000000
--- a/app-emulation/reg/files/reg.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# arguments for reg server
-command_args="--asset-path=/var/lib/reg"
diff --git a/app-emulation/reg/files/reg.initd b/app-emulation/reg/files/reg.initd
deleted file mode 100644
index 7759f44f376c..000000000000
--- a/app-emulation/reg/files/reg.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 2016-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-description="Reg server - providing a UI for Docker Registry"
-pidfile=${pidfile:-"/run/${RC_SVCNAME}.pid"}
-user=${user:-${RC_SVCNAME}}
-group=${group:-${RC_SVCNAME}}
-
-command="/usr/bin/reg server"
-command_args="${command_args:---asset-path=/var/lib/reg}"
-command_background="true"
-start_stop_daemon_args="--user ${user} --group ${group} \
- --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
- --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
-
-depend() {
- after net
-}
diff --git a/app-emulation/reg/metadata.xml b/app-emulation/reg/metadata.xml
deleted file mode 100644
index 7496d961803e..000000000000
--- a/app-emulation/reg/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <upstream>
- <remote-id type="github">genuinetools/reg</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/reg/reg-0.16.1.ebuild b/app-emulation/reg/reg-0.16.1.ebuild
deleted file mode 100644
index bfd5ac25d064..000000000000
--- a/app-emulation/reg/reg-0.16.1.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-EGO_VENDOR=( "gopkg.in/yaml.v2 eb3733d160e7 github.com/go-yaml/yaml" )
-
-inherit golang-build golang-vcs-snapshot user
-
-EGO_PN="github.com/genuinetools/reg"
-GIT_COMMIT="4203e559f331009df04a3ca47820989c6c43e138"
-ARCHIVE_URI="https://${EGO_PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz
- ${EGO_VENDOR_URI}"
-KEYWORDS="~amd64"
-
-DESCRIPTION="Docker registry v2 command line client"
-HOMEPAGE="https://github.com/genuinetools/reg"
-SRC_URI="${ARCHIVE_URI}"
-LICENSE="MIT Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC"
-SLOT="0"
-IUSE=""
-
-RESTRICT="test"
-
-pkg_setup() {
- enewgroup reg
- enewuser reg -1 -1 /var/lib/reg reg
-}
-
-src_prepare() {
- pushd src/${EGO_PN} || die
- eapply "${FILESDIR}"/reg-0.16.0-config.patch
- default
- popd || die
-}
-
-src_compile() {
- export -n GOCACHE GOPATH XDG_CACHE_HOME
- pushd src/${EGO_PN} || die
- GO111MODULE=on go build -mod=vendor -v -ldflags "-X ${EGO_PN}/version.GITCOMMIT=${GIT_COMMIT} -X ${EGO_PN}/version.VERSION=${PV}" -o "${S}"/bin/reg . || die
- popd || die
-}
-
-src_install() {
- dobin bin/*
- dodoc src/${EGO_PN}/README.md
- insinto /var/lib/${PN}
- doins -r src/${EGO_PN}/server/*
- newinitd "${FILESDIR}"/reg.initd reg
- newconfd "${FILESDIR}"/reg.confd reg
-
- keepdir /var/log/reg
- fowners -R reg:reg /var/log/reg /var/lib/reg/static
-}
diff --git a/app-emulation/rex-client/metadata.xml b/app-emulation/rex-client/metadata.xml
deleted file mode 100644
index 6f49eba8f496..000000000000
--- a/app-emulation/rex-client/metadata.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<!-- maintainer-needed -->
-</pkgmetadata>
diff --git a/app-emulation/rex-client/rex-client-9999.ebuild b/app-emulation/rex-client/rex-client-9999.ebuild
deleted file mode 100644
index 4b6505b6105d..000000000000
--- a/app-emulation/rex-client/rex-client-9999.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-DESCRIPTION="Remote EXexcution agent"
-HOMEPAGE="http://mduft.github.io/rex/"
-
-if [[ ${PV} == 9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://github.com/mduft/rex.git"
-else
- SRC_URI=""
- KEYWORDS="~x86-linux"
-fi
-
-LICENSE="MIT"
-SLOT="0"
-IUSE=""
-
-REX_EXE=(
- "client/rex-exec.sh"
- "client/rex-register.sh"
- "client/rex-paths.sh"
- "client/rex-remote-pconv.sh"
- "client/winpath2unix"
- "client/unixpath2win"
- )
-
-src_prepare() {
- for x in ${REX_EXE[@]}; do
- sed \
- -e "s,\. \${HOME}/rex-config.sh,\. ${EPREFIX}/etc/rex.conf,g" \
- -i "${x}" || die
- done
-}
-
-src_install() {
- for x in ${REX_EXE[@]}; do
- dobin "${S}"/${x}
- done
-
- insinto /etc
- newins client/rex-config.sh rex.conf
-}
diff --git a/app-emulation/ruffle/Manifest b/app-emulation/ruffle/Manifest
new file mode 100644
index 000000000000..c5efc51a486f
--- /dev/null
+++ b/app-emulation/ruffle/Manifest
@@ -0,0 +1,896 @@
+DIST ab_glyph-0.2.23.crate 18537 BLAKE2B b11121197c7c2bfbc8096e82fb7321d2e3a56491c8d644d0b83d99663c642ef5813d1952994613c5c2fc98df76f67f0103487cc50c304e59307cc6c5a389a6b5 SHA512 169aaea8daf54cae7b3123b088f95217dda53f5e11b42a962d4607f546b8ecbdbab769d292cd2f50206f58d015785361479b4dfc42915b28bc5bdfff4340c151
+DIST ab_glyph_rasterizer-0.1.8.crate 11010 BLAKE2B 2a20fd3ff646559d704e214ae7c4e5b8297e20be0909c403c140edb67002665447a6a796e5ca5d71f5c8c55000489a14a101ec43dd90101be9c246d1a0138dc4 SHA512 6fd5ff2d068da84c4ac2e6e2c5ad6ab2f4926f1664afb8ba701b60a35c3bd7bf00b200b22c455ca15dfc7d4303c8caa0bb150c18dcce01ce107deaf323cde17f
+DIST accesskit-0.12.2.crate 27196 BLAKE2B 1b1526ecae790ef8d211c76747cbd79589cf0e726976448cbdb9e72736f717c472064146f3da8dc19f64b2e6140557f1a8da6c04e4d55d5b9410cbe754987f44 SHA512 539c341278cf25cbd3f9c7549a75bb2c63f8b13e11dead42ce62b23879c72d5e5028a8a76515098133e57e70a98e3aa54fab1a18f2cf0eda4832e1b5feb503a0
+DIST accesskit-0.12.3.crate 27022 BLAKE2B 834c6c46388014047d12e92fa8abc9c3cbba7506834a64cdd9159c0ccf3888f623da82fab106c64e62154be3ea4bb4447f0ddcf5f6ee670b282b94c4e0c3ea4f SHA512 5b271883b13c132be9036f016c4dcef7391287585cd9fc5bdec9a931a5bf1718732a14b09f55ee56c95ffb644ff52e1fe001e3ef1eb6c1518f1c8cf68f244440
+DIST addr2line-0.21.0.crate 40807 BLAKE2B 9796b9a1177a299797902b7f64247d81d63d3f7e0dcc1256990628e84c5f92e3094ee8d753d9b72187b9aaa73b7ca67c0217899f2226ebd1076f8d25b458475b SHA512 afde7660dda30dee240e79df1fb5b92d4572520bf17a134ef3765e2a077af9e13713952d52e27fae420109b40f6e24dbce1056687dbcbead858ffc21cc7dc69b
+DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
+DIST adler32-1.2.0.crate 6411 BLAKE2B 51d44ccfd774158687b8244e83377e40ff896364e3d41e9015665131cc2a176d4ca0ab5a84df027dec0869ee735ee36f5687a06c1d2341de666070cdbab89483 SHA512 8ed72612fb78e213fc92963fdae0508ef26988656c939e6c9cddccbe2658d4a956a8ae934d9658262a8b2687dc446b3f1ee7614128b440487c81e606526dfda3
+DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79
+DIST ahash-0.8.11.crate 43607 BLAKE2B 7dff8e41798ba25df8c4827ff414a182bb25da4825f0119a74916fe775db5445b87be8fc87f7c7f98d3b5053e1d47546f98873de1a942d36e5f308a3fb7dd620 SHA512 47d211b2422de0b381dfe32229faa346406eb7a22dff867dc04c22389609a8671ce3218e662000c49891a06c259d82e0ff4413740f007729d80e097a6c3f0d9d
+DIST ahash-0.8.8.crate 43028 BLAKE2B 598a7f2ef74a9470913d2d4e46d1652a8ea7ccd9843778b7f2f4d9f41703ba4cae552aca8205fef6ff8f601d919a5f141391a942e13e5285c7e053cbbbe4afcc SHA512 b54c8c2cfde8115d2108dca36ab698d1b43eb015caa36e6d02288ff21a67ff54144affd406af704107689888f52548203731d3793e5b881bd267b2f803f478cb
+DIST aho-corasick-1.1.2.crate 183136 BLAKE2B 2d4306d8968061b9f7e50190be6a92b3f668169ba1b9f9691de08a57c96185f7a4288d20c64cb8488a260eb18d3ed4b0e8358b0cca47aa44759b2e448049cbaa SHA512 61ef5092673ab5a60bec4e92df28a91fe6171ba59d5829ffe41fc55aff3bfb755533a4ad53dc7bf827a0b789fcce593b17e69d1fcfb3694f06ed3b1bd535d40c
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST allocator-api2-0.2.16.crate 59025 BLAKE2B fda69b52435a7243eb19bc55914a1961e59dbad5ac12c40db39cccdf7a99c742da59c3ef160350808698db24b91e0ce655cd1acedbbcbe20c717604aae23ea5e SHA512 e1eb0df6b44b62115795ebf772f81e9ac0b6d273afd81659dbddb7eb6628b6e5ef6a60ea21413e79ee638afb72e6872ba83a075f6324daf93f2f1eda48daff2f
+DIST alsa-0.7.1.crate 70626 BLAKE2B 350f7dccdbba20ec1c0ab4df8ebc136e9b826b24e6561aa1a2b1dcdeb5bd80cff2c0b225efd0dbbe90dc81b32f5cc081124bbaca51e9697458020d7465e9c2e5 SHA512 b94d9a1aef0becf2324cdcd6d20fc7542a017d746e73bad981e0ddcf300e43db5ea5e907487387028439d66871c7d9a05349d0f9ef0d50ed2a43b05cbeb990ee
+DIST alsa-0.9.0.crate 72602 BLAKE2B f65921c4d37204f9f8bfbb95cb3cf64952240b516600d9d48d3125c491ba12d476d5717db6cbb1ab58e0d85373a5d4347d5fb64405d5af0639d282de9632b7f9 SHA512 85dba28d451a8fed3b6131dddaedbe8de0fbcbc39dd9c58a9a9d56f132663f8f42f6e647ca26bc25c2558cc4db806894b8062f5f2bea619dc70f2dca32a2cc02
+DIST alsa-sys-0.3.1.crate 32748 BLAKE2B 0c4da9c343d622ddd521fe9332acf97c1ee4a202a909c7a0014a507148ab6ff82d5098660dcba847d938b296adde416ae420d454d6982c33a0456f37840d716b SHA512 6523d909c500fee433f934eedfdc200cfc52e1b55be09434665210c16bb9af3593d8b1346ace184b171c7135a7aa65fdac5ca8c68e64f9d20436e1d8fac961fe
+DIST android-activity-0.5.2.crate 258406 BLAKE2B bebcddb062921b10915959704d1339c0d200843b887be4588010a359f8b46fba6dce94d4f87a37e006c01e66e6ec061f33f4aaaf32ff616fdd2f52d2d0287b2b SHA512 281f2c3afaaa80d71f5aa6b531aae8e551897bb10c70da40787ee03ff194129da0df79f2e14d5432c9eb4a92c6227a1f9e1a3bd12e7060bbcae85fef177c009f
+DIST android-properties-0.2.2.crate 4563 BLAKE2B 00634bbee4d6dcd3254ee37dd7e5560963b35700aa95c47c84c129f0774cbac436347f0abdaa4ec33216358d9f079559552bd5a95de5026b7dba4e04d9cd674b SHA512 dae9a12ffa7d5fbabc28d3ddcc32f1b5300884cf2b3ef2e123f2dea596b3a796b9c3cb6c5381bf8f6caf04a633c5f2f0b56804fed8fb2a6f06c36d6c76539431
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST anstream-0.6.11.crate 30239 BLAKE2B 4ac585ec56a804239d32ad3e64d93936ef9d5c8e0f0e2df17f7b081b6a3b2c4c32ff4ebc09ec02507bbed22b025628029d859610aed90c024e19a3216de73c8b SHA512 f8dd65cc116a1495782a3bfc98edfdd0973ab22ea2fafd292fb4bd3495af7b5ea410f320d3fa05f7f812fa96c2a20f4cd2af9fc58869a1a306f32714cbe45163
+DIST anstream-0.6.13.crate 30928 BLAKE2B 0c6d0932dc486ccbe8d7e6f97bd8aae03fb84d4db90d0488070b7109de673e0af845a70a39e546af87f71f4c7f7bb159ab8ed68ac0f03a0297457062d9d69dc0 SHA512 4f9ccfd135de9be22a01230f39d571c8d8ccf7c3eba837fbf0868c9660693b60ee0c1c2f9490a587d5307e892ed45cb946da7a0690a9f972619c94fb050bde09
+DIST anstyle-1.0.6.crate 14604 BLAKE2B 0716d0dbb62bf05c63c2bfe1c689896660073a423d26965ce2570f11e1925752a61209d78c2f2fe65ec4eb64ea4ffbb39669e789c0ba5d1b71e75de929153b20 SHA512 dc0e505465be54799b9faad70d0c6f7f0dcf9f5e1aaa43177b826c85dae626b054910244da0499862f066f6723a1560ad12100aec523f28c6198f1ea0d1b78fa
+DIST anstyle-parse-0.2.3.crate 24699 BLAKE2B 17e8638187ccc1ca0174a8cec7f7daeee7e0d8b8c430f7e74f9b10d8de4b49fd1c6facfdafde305b7a3e55b1ebf2b4e8ec4975a0cce691514ddae9eb5b5e711e SHA512 4a6d0f706d75c9b3c5144f34efdef3ef8fcd075962c594a23a6209ed56112563a34b3c01e05a08a0868d59204272d06211b2585cb9d06ce075ea875bedb2f399
+DIST anstyle-query-1.0.2.crate 8739 BLAKE2B c06643e8616f1f4469a32f9c0512941ce53ac5db9ebfa7a5b2f19233040cd4438dd2ee69ab89ecbc1c239e92b674dea9df15ed673408c6f3fe21787cc17d76f3 SHA512 f409b624cbeecf58fd87c47f85be28cae1fe48f65d692195fb80854c514e38c40d0e0ffad3a5b388a3929c47bd2060302ebb635aa98dc57329f3a5ed7be3e2dc
+DIST anstyle-wincon-3.0.2.crate 11272 BLAKE2B 73e124773f618a744b17017d4680ec6ccc84ff94fbe2e565073fbcc0facecd3cb65356cf27746d07f453bc917cbeb2ade3a618c6b8578d64cff4828c99569868 SHA512 4cc194faacffa01c6989354c1cadbf1134f0945250f67b7020ab5b475e30db34c799176bd335a6265386cb9c5e8b5bcbdf35894ec0c809b140ffe1c406751931
+DIST anyhow-1.0.79.crate 44931 BLAKE2B 9270f04c6fbbecb535e3081f4275c3df28f6a893c1dfc0a9f7c009994de2deb8ebced04fe5e6f62931b33c3707f4fbfb0c3b28da1a611b413d40d27149d1fd2f SHA512 ecd6fb1367d494df18c0e274b336a133f3acf7b6a5487d20bdd06e08c7f1f729877086a0966e998221daff120504fadd2be2dc4219ed621f81b0a50c2bbc2011
+DIST anyhow-1.0.81.crate 45142 BLAKE2B 9b8678c5336fe5fd2823c58eae827f7aba726e12fb6edfa958c6e3b38a96dc3310bc8d044ee2e9db0bc611548f0be9a7b664b75321bd0b8a7e168d27dd3d7e78 SHA512 3d328c6b45a4780cfb6fc8daa5581cb5e45b230cb5f55837b0fcc8331c8d53630950c281115c06b21e655821a46d360c4aa667cbb24e87f3a534206361b08af5
+DIST anyhow-1.0.82.crate 45361 BLAKE2B 558bac4de847a432fc80427e7be4e78cae4b01c4da852eae2121416af4d7e6ddeaeffd7de9bb69e55340b9a228436b975fdea88e380391a77c782a3776b835dd SHA512 e0d25a8c0b9c45e1db2072618097aff3908f70bfcbf0963d3c9dd9c97be27a85c4a763c5cb74e1ccd1b0a2059360e0879df4be80e10e58e0a5346b65f4fa1a69
+DIST approx-0.5.1.crate 15100 BLAKE2B 8fe84d52263521c0b72a1d1e82ed283828f680b8b56f532df2c14ea86ca09e793686d823c5d58ecfd7a829948543bb375e85223c866cf036e9432be5d6aa7399 SHA512 c6d768496c974b6ff4cf7ad8e65f3fc9faf29a1957da497968ee112c6a0b9d7a0ff9a2579206e864976c0f65ed2190bc9d2b63b31a09ced7b57879e207c46407
+DIST arboard-3.3.1.crate 45745 BLAKE2B 9e320a3629e409000bd7f6ac17fed2ed3f792ee679e3857cb7934dbc8a211217a00bf6721fb2bad175f9bfc038f3f94cc04e49fad11ba06b37a21318ea7c4278 SHA512 6e6b36c925f8fff8e45c56bdaf61670be3fb0735fe9d3f640860498e5ab9f56a1b172aa52b80bd3469390fc85d576c9fc739e40b7c271da675ecc4260857554b
+DIST arboard-3.3.2.crate 45916 BLAKE2B 4d4b39d9447e7043cc30b6989fdd9955dd6028ec2aea77566ad24d91c31d4bf01306bffefa412d5b494f021dd8a3e51e61036dc64377f86c5ef1ffb1e27ecb4c SHA512 cba3917b302f4f4630275cf64d31d4052a2f7aee1b179bdcef95d5153cf92a9a46f139b76ffdfddab525c1ea36ef8e7fef78ac704222d4fb33fecaeaa8d3af50
+DIST arc-swap-1.6.0.crate 67342 BLAKE2B 6afd6570c3cef4ae722d4168c3320be1343c4f6043892e5e5b52879b8210a896e083d720797b41a41db04a08eefdcfbacbfdee1a7f2180e9755c868d6fded872 SHA512 5e09cef9fa12d1204db24f3397158a3f45d12dd0fa61eadd691bba120a43fdaa916ab09997e7a63d61a3fb7dada4e3266181f4ef413850c4bc5e59d2c6c5b9df
+DIST arc-swap-1.7.0.crate 68468 BLAKE2B e0e1685ff648f5ee4dc019bcb0b9828a721692c92dd95737f8e9046ce24cf91a7954dbd47d8fedbb980c5dad0cd75ea8fa24977410837cf6dc0df107aec2e8c5 SHA512 f4fa33638a1d94e32f7a288f4e54544222bca8180247047bece1e5ba999a72509e140f7cf58e2757756af001ea94c193d66bf3bcfbbf6013d24b097156a4c99c
+DIST arc-swap-1.7.1.crate 68512 BLAKE2B 5ddeffd2ae8af4125a5b43d4a0a1afc7948533bf037d8cd3e47603c13b57b156618280d99b840bf318b25b6eb29400ad68499695e182acdc05bc5f621c42ee16 SHA512 070fa8dd17b380b6d7d72f6f45c84e591de9a9770b9662351e7a41af03798bf5e34d185a5fcb948f4d8ac5e210a33acd465c39eff6097662c2442b34ee3dbdff
+DIST arrayref-0.3.7.crate 9620 BLAKE2B 69d25ca9c15c188ca954a862f320869a448a5d8ed5765a6fc26309abb030e1d846d12800d960c8a97aa3ab422e8d2b883bd154781ed219a858e02b20cc803613 SHA512 dcf1c7de6d1d4b921e26a39cd70070bd460cd27f0a38be9099e41fc8b05fb60ba4f9aa91f92401cdcd0847bad08bffa7db4dca8d7cc84a3c8a1416d1758838ce
+DIST arrayvec-0.7.4.crate 29856 BLAKE2B 81ffac1db340e919618351819def3880ab1ef70d0acc47d680f15298eb749bcbc3bf7944ba14159be46b1e734c91b4c0f8cbaf774fd864c17caa3c9fb1fc2e9b SHA512 91e8f70330c515c966d78ae235e890594f9607381ac738a2c3586b53f01411e98d1687494f39ccc365948ae60497df3dfb2be18e26ab7e69bc0966b6c250e1ac
+DIST as-raw-xcb-connection-1.0.1.crate 6460 BLAKE2B 678c4c28852bddfb8ec9660742370e480df6cc379bd7d653e12fa00aa99b598d9e5519e15c33e59fbbf43d260fd01856129ad4e9e8dab28af6e043e3ea651fa0 SHA512 79afaab72e5a5af2e70b1b66deed1dcec5b40a4a47516bee4845684c0cb8afcb2f141af0bd4034e7fb76e57a0c7e7778c3deed2e73ab780915e04e3604fb9a98
+DIST ash-0.37.3+1.3.251.crate 449524 BLAKE2B 0f21db7c1e8290b3cf5ae8ee064dc6905fe75d9f6075edf2255451a3cb9c1e7973c6555be6e06a3abe7d29a64e159cf9b6cc9c9ff9808a6fea82216dee41fee4 SHA512 7967df0dbe734d5ed7b60fbaad7a844e0c0c39792828f4764580fdadc3b38d631d4f1a62ea2cf4b08e3a6c0c0f89d771ed9aa97241d6f86031a9d9cb1ef140cc
+DIST ashpd-0.8.1.crate 74342 BLAKE2B 853b77be49af0797804c2d2303a21ca2026b99fcff210797e28db6c09bd0142eadbbf85771a3fd2029d44b2a51167d3ccb231179b8ddc92c3a8d0b0fdfa9fcb5 SHA512 287febcd2fb246435092a8c376d628a6fa833ff288dc0b31d0534da95c91385b06c5428a19d490079b4b32c72ed9e4fe56f3c6040e687d30e2ffd41d6669acf1
+DIST async-broadcast-0.7.0.crate 20852 BLAKE2B 5848b71ced51d2a8ba7c5d9e1102b626b450c5412d35362903beecdcb7a7fc89ef33ebc3aa233fa1ae8bdf2da2768b541d16b91dc21c0435751bdda9e1bdce7a SHA512 d1a452db233cd9c1776b0d5931727d8d96a5e7779088fc410eae897a174c5dd80900c86385e270c62f164f340951a5f83860be970e37cd4910cf8a85dd78d89f
+DIST async-channel-1.9.0.crate 13664 BLAKE2B 52455c1c9f82bede902a96de0526ce4563184a9da303477110b556b4c877b563c21c32bfd9c6ded446ea0bad416af81a07e5df5a62e7c8f40c8183c1d09ac4f5 SHA512 cc624b87dbf34e4be4e219a82b96036396b92042025eeed2362d91f414ca17884365470fca5014b02659be44b77f20530ca33236dc427f0a2fcff2704c46c3dc
+DIST async-channel-2.2.0.crate 14307 BLAKE2B 7973ff2e6d64d033b648b5d8dc91c25fe28d815371f6d22a2ed6342cff116862f2ecd3ba97f8724b30bfef4b80cba38a7452419742daea85793dd776bb8bdf37 SHA512 1fb9af56299f4379c013371c36874c26c59bb6daf53cc552d5138c32da7e3e306200cf6d51d9acde074302dc1c4b720d1487f815a9bf840a8f5d5dbd10c6b4d3
+DIST async-channel-2.2.1.crate 14326 BLAKE2B ff89c3c0daf1b682c6eef8efba42e9fd29a374b6508cf254e69c8e503eb6ae10d96d129baf0c5033af4a9826210c57a6f826eb62241108ca4448f8dc438ad33a SHA512 706aa51402267ee2e7b8995efea8fb950a88d5db5e86302d554850074a2ecc541b02db3b9b28f068d4143de41300f75a405c0f2b9e83cd848ffc98a1d336da71
+DIST async-executor-1.8.0.crate 21870 BLAKE2B 85e24330e50d971239e4b2f7c8f7e524cc41fd51a9a795481286e5dbf932de4b9034c1e1138bf0a53408dab4d613f52349f4ca2c383ee869bb107b6dd34a6fdc SHA512 285361d42c34331b3ef67d9d768f62bc72077046766d44802a7e769d5e56718505751d9019b0867b2c28c08273038ca18a936430ff44b7714b780fe520adface
+DIST async-fs-2.1.1.crate 16545 BLAKE2B 1c14543f6f1e86c38fe12cadc988d097ebe3e42d4bacce5c6ed63c6861a7490752b7cd668c28c70d8f864403e7d5c355e387aec65b4213b6d52c1ab6be2fb4da SHA512 0909ffd7961fa5e2b2d29349f21ca08c679c915bcace8f3a518b2a826863c9c990aa27fbf7fa08e6afb9bba473b4dabc8398f48b92158cc6224984b5ebc87cf9
+DIST async-io-2.3.1.crate 49279 BLAKE2B 342daab31d51a3040cd35863f7d9c5dd8653187413d5340cb7929d926e2fc458bfdef1f08bc819a776480760ec3d84fa0f41a76ed0a9c2260803b61bd291379a SHA512 8dff4265b650199292e43a8cb24ece49991d17586ea57bb013d734a2c05e8787a47bbabd60cdeb557521fee376c9310e907aad0fa5ad178f5c6ab0495502e387
+DIST async-io-2.3.2.crate 49298 BLAKE2B cf01d97782405c56261d54800fcefe97c914850d50b49ce2902eda3cfacfbe6800dc0ec9b418f4bc51f579a9d0dca8b2842b17d97c3e046667e539ac67f72a57 SHA512 a7f04de21cd2eea933d7bdddaa548c92ed9a96d4f910d0aebd2ea9ddb7fe75de5f142df7aa4f7afc23b6877a20e68d3376db2e801e2a258e74b3f0ad674630fd
+DIST async-lock-2.8.0.crate 29944 BLAKE2B ebb35437caf6bc8db154b21fd17bbe1973490fec06cd34e7385d9028440b0960407d674beaa707a01becb227ef1107686165953658f490902e13d0732a4e80b4 SHA512 f48732dd8e5de0228f56780adb87e4d9870496ddbfe4cc7c6aace8d4cd7198627a05ff0358fb33ed57480c7ac886b57253fc73b2bbcd3e8cfe65624b51847ae1
+DIST async-lock-3.3.0.crate 33286 BLAKE2B 93e66c16a6b1cb759378e198927d2df8ff9f7839a2bcda49d8e013ec7b9b175bb4199864bff585282a471cab6d4f88b70141636413dbcaa7b0453d35f08a94d6 SHA512 0f9e0940e610744fa97c6d2ece9220a2ad91f09155eda66703c2aaf4959f85c17f2cb55ef5fdf29013d4dcd84f8cdb6b16e8692ec7724744b57bf11a86f22f5c
+DIST async-net-2.0.0.crate 17787 BLAKE2B 04685e1ffd4c363b3b29bbc4819c7a79ca45a212c1c3094835f2ca8ffe000b8061a4b28de84497d5daaa70139a8d0c036fa4385ba20ea4bdef73b52102cfc349 SHA512 e12163eb7fb526d434c257d82ad0bcc64d3a1fb868b899fc5666c1307f821654f7afff9bf5dd3ca6c8cceac31df29a5027542f6e5901c8801ce2a696ab737479
+DIST async-process-2.1.0.crate 24505 BLAKE2B 4acd4f44d3e7825523f138dc8ec84a58198dc337dc81e473aec52117da7517bda78533ae9e05505af30a72026dbadb2951378aa608aa041a7190bdf205a37b83 SHA512 a81c2081106753ba09807d833c2c0575a8aa0f73c7a50abcdac88c3c9d2d34a4ed67920842c8f86a26bda0ef89302ceb5e9d05516353d793bcf29dcfb7f7d79b
+DIST async-recursion-1.1.0.crate 14982 BLAKE2B d27e03f166a8b65d48fc7430845d0d8affa37e8292a37125b71c0f3e26c678a979422163b72c40bcb0a51f5e85331ebf9533ad1d3249b596b86ac9cccee93ef4 SHA512 a6d3d43a1b0e08c9caae950634610ea1eb101af10dfe82f168da3125839f9c3702ae7761b65ed6af191533d1b6e6dd0d668f2605812a666d191e3883ac0d5277
+DIST async-signal-0.2.5.crate 16743 BLAKE2B d767437ec634911781b883450b7a32d6b3c40f52a18840c1d14c2d7cc0984fb25789d3b66e1b3ef776c693337fdbbf2f32f2cb75721864708aafe094f0826ccf SHA512 0529f5bfe74f8ab16e1597db31e997dfb9d6185f96cda3c988cfdb1cde95291533da5ed2934456a2527d5530bc2972effdd34ec955f3bd94a34fde892726b3f0
+DIST async-task-4.7.0.crate 38906 BLAKE2B 6dc02149a64f6ff8d605e74fb7db4fd0e48e6f0b57b0aef27959a7c654f25cfd1f76a403541ad8abf948a2a15bbefacf30c9f5145e2ce276222c53c62e0b30af SHA512 9267434c8785869dd281346adfa2ed79e55e97c6a889db3be8e05597420331596cc9d87547cb1305b172e434359c2d4dac6da6453cdb4e1f1dd4fbc989ee0a3d
+DIST async-trait-0.1.78.crate 29593 BLAKE2B e46d11867e564eadfd6cccb994878c911c0c8a33caf799ea0a0900a3e9ffda91d7989c64a2c1ef4953a7f8b27a744976434a6673c131716607cc672f1ccc1333 SHA512 67c33065f1702fa4a3abe979650938d954cab93029f7e6c9b4b70b549a7f2ae3d6691a07a36cd7a64854603fa86c9eba5410bcad06881b4ea28453e38c781ef4
+DIST async-trait-0.1.79.crate 29558 BLAKE2B f6c5c4c28b85e1907f37f9f6e556c8f4304e15d6af8f7535fd201919496fa03fb213a0389644e2d1433a8e528f36dc9aec9699bdfd37082404d4026ec03fe666 SHA512 4c417b01776d939675b0c4717edbb8e11810cf08ccccb26697809fe10898b73e03ba3332ebd20a2cea72e8f4f16903737d9923e0048f1ce6eb9c8f04465f2487
+DIST atk-sys-0.18.0.crate 22910 BLAKE2B 21c1443c7de350db4f3bcb11bade8f1b3ba3e68a72b471bb3c8bd92ebe9a9803231d3c3b60c5737ac380a3b8cbb9cb8c9ac7822316b9e971ea6839b668a0bd49 SHA512 24a3b52e1943cd68a5ef896ff6c9be0f71fe644d6584571816f7a53821516cb986b4ce3591d83ac5c83998875a58ac69722dab505a43e70f25a58c49d7efa3ae
+DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c
+DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
+DIST autocfg-1.2.0.crate 14808 BLAKE2B 122327d6ffd32e08dc9fbdb4dcf69128b19d56280f9d934311b946741003b40571cdd1f3ef54b2be02c8dc505aea11c962b244d33a92206bf4ee8f6b2b9da432 SHA512 66cbfd13e33b36284cf4c74c8d654f93adcc45893d127d9aaa4c1d183e47336096e72d74e7c17dd481fb7a98931ab6cfec7e4d4165cfb491861d4e3ffe2416fc
+DIST backtrace-0.3.69.crate 77299 BLAKE2B 594358f1d9171fc369f50cacffab03b8a10a8fe3da5b915611cb74b0dbad0e048c7dc79c53569d89827db583e0f61fb7269147b6258781a1599a811e642414a8 SHA512 6e86de53e1c5003ef68b6a85479cde1e70bf416bdc50e6e32ead9f9f070fa30ad46de22574041c844ddfeabd5d15de01ef746f19f8cb7f257c491ef0bf071244
+DIST backtrace-0.3.71.crate 86553 BLAKE2B 15ed93574fb9e8e28d5ad901bb1f94013b5fec7a79aa96d17f13f6f11a02d29a274ec14ce51a9f515574839aa41232e5aaf6e6fa3ad9c0483591055bd0a78c8a SHA512 5d9307757349e860fb4cab7e9ba1c9d0f1faf49ebcd935ba879b85fed2a9812786c7458abb59a742842a0796fc29ce9921cf575792402486ecdbd9a2568cdd89
+DIST base64-0.21.7.crate 82576 BLAKE2B 25cc8761c14220981ff4ed332058f6179948080cbfa2b225ec1d1602e4af14cd470c969e8b7049117e6fc51a5a24e06b1d27bab844486ecb76409d12e0581d5d SHA512 c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9
+DIST base64-0.22.0.crate 81568 BLAKE2B 55e6bf8888de846bc14010fd706686544a1706dc9cea034435b5bf97bbbfcdab57210e69b425c9f2adf7b088b6f2cbe0f8148077a8be3aad88114c404738682c SHA512 116928d2fed66b43ecc8ffb4e1cdafb1aec3005e0034e2cacf1cd3cac7a591aed8e423fb2523900c25a4592ada49d3a0e438703afe7bb66dd1ab9fcaade24000
+DIST base64ct-1.6.0.crate 28870 BLAKE2B 60fbd9958f2519f293db2cd86add5160b51ff4f98718591b3e65d866e8bb176670ceecd5f6e365ff3ff488bf813860bf65d375a2159dd28b25e276e027303c4a SHA512 e3a267dce49257b6990d8d0842299d75b49a9af635082dfee25e314f5ab9067b339c877a4c7b012a1eaf9a84a7f8ddf0173c6f9d8695be81b8b4db03df66c92c
+DIST bindgen-0.68.1.crate 218997 BLAKE2B e3706a992c166c16cd8b8ef996b2eba6a0d67f493825e7257ba660f597de33002a32df7fea0fc2508fb47155f70ace0765e9ac4e4649d1f24b2bbac8ecf06d8f SHA512 29520e30db93ef3e239273854c926eba7bbbe2ec70e5162a4722e03947461510732319bfcfc20d5dfc0df137d69e8c1ad97daa0236c5bd4da8a1679bfd696a90
+DIST bindgen-0.69.4.crate 221092 BLAKE2B 69ed55a5827bfe850f589e39bc6e2f4445e20363002c765c5475007b75e4d81cac3d9df358505c63bd6a48300ae4988507abf78dd734bb98b33525bf9212237b SHA512 99530060708690f2ce0b87b97c9ce2998ee968df193137f3c9bf4fa66836814e2ae74c7e0b3057dcff1da7d2c4ea38157e21143c5117be35e94b878c0a427a34
+DIST bit-set-0.5.3.crate 14470 BLAKE2B f6525500a494236103df2b27e964bae0b2caf718156879f972b9972fa509794bcc663c2130e3d872ecadb7ead0982b415dfa4468ef12523ee248fb1bbec2559e SHA512 c5ce7ef71559706d996505e138ce95d9f008ac3375928012a36339bfec48986ad935b384e2d21fa0d505d4cf98bd3e93be15955ecd9607d253b8a276351334c6
+DIST bit-vec-0.6.3.crate 19927 BLAKE2B f5bd3bb9c87fdf3b206739b74df20cab50a1a45af3a58b2642a5a061c26207884be58ef8369a3cd06dfd3615bff0ce15915fdd4b6b6f03facc4a0f86c0b7e910 SHA512 b4b4a82c80d0ff13527ae4fff449ac9c1c7bc519c013af6ea3428348e0e5b9306b725c0a13a42d7d9dcf0f895a9eee0c63695a2503eb7fd2200083c9ea3a9aa8
+DIST bit_field-0.10.2.crate 10568 BLAKE2B 4dc92498b5f2befb9e3d8d5a7bcac478b7f905e708cb674e7589f23b60a3ade33b2c660c3f57105520aa863ef19787a00221e1f61914f090f9ec500961e3f70b SHA512 99bacb002aa9ef89cef1403429807042135898614df85e59475772b90d2d21972ddc77ef9b129ca931355ff11bfb3de66b55b828bbf792f76300fc5cfef066a8
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.4.2.crate 42602 BLAKE2B 768d4ca52aca73d8acf2f494a66957ed2603eefd5a04332ed0880d230c2cc6ef3bfdc0792fa6f288a0eb132913dbb256793e580bc34f4a40e8200e1fbafe97a9 SHA512 ef4c20e6e78a2ecee97e17189b7100a504d8176c7c15d7f17d62157a116d66f83f8b2bba472a4acf02cd3edbd94b20a7047af918c3f3b371e2e04f7474be0214
+DIST bitflags-2.5.0.crate 43821 BLAKE2B 2d2a78b0a19dcb39580e6f73ed6c468b0626043010b34661084944c83561fe49db24bee1ab57fd692d57617be6506d529e095aea27b753a77e26d0b1ebf7ed78 SHA512 75d7a89e53e5e7582591932bc430e6a1db7ed0f914ded6dbcf957125be52975598df7fee14ef816f66544432ef0505f0a081f3794d17138ec429e283fe14fcf9
+DIST bitstream-io-1.10.0.crate 33372 BLAKE2B 9066458b9b39ea04e914f2465a102b56f79cf748ad757d2df9f6f8bd1d3c7c87c1597675213f5769b161c2e4a49477f5fefa5f7bcf30d0c8f7c3a93b9e53163b SHA512 72c73231cc5169e602ad493fdd29e0f63f014f4760988bf6b4094d9492500043e0eda73e94c8add8333631c506f7106c8332ab4513ef851723cd8f162c1e2bfc
+DIST bitstream-io-2.2.0.crate 34113 BLAKE2B a449d31429b3aed5ec54c2590d285a532377c7d5e614eb785e11bb208c3541d1df8c439999202ac52227544ca42008a60b0989696ed0888ef2bfdedbc23f6b95 SHA512 51d328fb67df4d89f755769cb8806249349d9d69a4c1c538f72120b058fb7fed81356b867363396234a96061da92446c6e07b6498c7bf9c1f3f99de60aad3f2f
+DIST block-0.1.6.crate 4077 BLAKE2B a2c11873b8cb1a1ea399ecc99ed45e5d0b9399bd88435cdea346910b8707b7da94eeef522dafa5cdb09929534472b2a096c03c373744a789962d4175fd1b110e SHA512 c278e3c0346cae423b533a8f5d6b822e788ec450c92ef0f5f559d5705764a0a11df49f0f66bb1c8af7e89bec8ec802934676b969e43f92255a38b210d0fbd710
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST block-sys-0.2.1.crate 9320 BLAKE2B ef7eac006fa851fa18b4efb3795b960e2111128c9a2671757ce281a585bba948ad2cb39e6dfb2426aee52b517e2e53d494f6975a62ef3ff57a8c8122693f70b8 SHA512 51f66e673f08e4ae28dad971ac795aba0eafca4380307cfb0967435768dc7abf172c2d6df06318c9b18aca5f710438acb94645d3ffec3327c7d55db6a9e2667c
+DIST block2-0.3.0.crate 10924 BLAKE2B 039f6b38831ad8aa45ba6845031a17af52b172f3f68d98c9ee648fa300ce1c8fb6766736e33813fe9916596ae4388210b7d0d33c9dd44346b551bcd2c15a1645 SHA512 8f1be7f0e147b6689fe999389246dfa57bec002304d4452f668724591b117bc9a5b3d1a4bd9fd5f72e81799d13a7c2893a4fdca5b5131cf6ee275bd396291688
+DIST blocking-1.5.1.crate 17277 BLAKE2B 0eb9ca486e2eaa790b2b74bb32208e5a7df2053b045f5928c78f9b461c964cb8d38737c1a83cecd8f42495b7101a2378883533dd747f2ffac6744551ec164f4c SHA512 b12916db3975a1aefc36fc2a8824a89f5c0eafd83d83e458d1b6b35ddc3acfa92374cf0b5cd82825eec0182bb4ca97b048edf3b8a80cbbe0daa1c07875131ce9
+DIST bstr-1.9.0.crate 380170 BLAKE2B 06ae5065a5d566b6333e911a5b97e3999ad2f0bc19b27023187004c81cd01e5315dcac920ff87a6bb87ccfbb949364f1361dc04d342e24f9f54490b5d44a81d1 SHA512 dc313a16c38ad881128977a20bb390e7c95a96d9530596433a7c4fd7f77d5fffd079d436006dd8d2bfc4aacdd7f0aff229504444250418f6aa3f8d6d4df9abba
+DIST bstr-1.9.1.crate 380305 BLAKE2B 52b45bd48874d052636c6b451cc36d8b012808ea5193e0188e5edd09f81d21b8306926cfebb405ad0650ec9aa710f609bacaa773bf854b21f4803dc38bb2eca7 SHA512 67e9f76719310de60f46adf3c39768b4dc078d4c32dc6bdcec1a94cd9f630c5238e427ed84cd6ec25a44f54e84adeb795a0e92060a5372d9fb9ad9f0914e3172
+DIST bumpalo-3.14.0.crate 82400 BLAKE2B 13bde02e2e60ea3099f4e46ff679d07b2e8046740c1855bb81fe8d20a4ef0fb26e565da724f628a00c9154ef16ffc9018f67433d2a32544564b66803b5bab223 SHA512 179c116a5320c5f21163c343ed48add36089d806e35bc303318dcfe09ba1d5f02bf8012726d0c2cb76a73fae05a7c887a91e18f9e5ff3b9f9ad8a2f12838757b
+DIST bumpalo-3.15.4.crate 85028 BLAKE2B 9ec98f430fef4e9b59e61d413b3703430f91bc818f3294aea7416cf8a35e0606357bb5b4d1edebe590f07fb614f832da16016c8530ff39ca853aff1d1369cc60 SHA512 59ca9f8e6b74bdd95b9b4ad1bff3bf4be46dacedeb1eea6196a65dfb0ca7b60e86ab6c25d0f91dae3caecd17ab73c48f953be0bc24bdc0ceaaf4c1726b9ffdc8
+DIST bytecount-0.6.7.crate 14642 BLAKE2B eabbc141f2a277d07fd002869d1746e7f743b96c3dc72b8708308e826d3934ecb01407e77653ef46d06b3bdd9d931e121c9c66a784d46116a9e6b98e992512f4 SHA512 afd46ec3f60022a173b57dd954a06c7c86f21fc153a0ee6fc2052ada5a630515a386bc8344680ced57dd19a205480c694b9a04a6da0660b6e854b4a712604d53
+DIST bytemuck-1.14.3.crate 47032 BLAKE2B 7364a8b474013fd1ffd1df66e47f4f3fa516ab762e10e7b31d9135c5a811ebd87d368b1e723ef41095d17a05465b80128893cb76af310c52fd1fb04b57f7e1f2 SHA512 f01f21142273c53daf07bd168068661ab763f4696a39543a73d9341335f6da6f2e3c88e8859bb06ab3c1ddfddec9bbebf00f4cbd42ad49d77618dea612523c13
+DIST bytemuck-1.15.0.crate 47672 BLAKE2B 49f2d92cfd5abfbe3fd94e7e4c9a3d4ac22c67b58e73947f461cf8e5022738b7d38c790de2a1717b731d658f1646066bee2f936a1575e2995e6de39d20f918b2 SHA512 5b6886f252945449c4546c181bbb6c95597e498aba6b1faf81c5a4af69bcb9e3e024d7d6e849d347682e8ca72ecaa9a70d13fb06c174e17846f0c85bb4810433
+DIST bytemuck_derive-1.5.0.crate 17323 BLAKE2B 847cbbe7a4449d17295d9b6082a8f38be8a1a426638a80f0fc097b208533bdf74d2192d5d898c4a7baf69921a56344e52e70c50daedd4818d6d0e0cd9f8959ff SHA512 aec9f0a10da379a0e909430d4f752457221a53a2a44801be1850072e3a0c6e9dbb1bae6c00609c85419f634a88204b9916a63276692399270223e4d67d7dbe29
+DIST bytemuck_derive-1.6.0.crate 21194 BLAKE2B 9cfad9add5c35c2ccaf3615d3273410c14ed1b420dec930d41d5b3456d7c6fc4da04c12b59594e9f591092ce3f2096a7c7ccba55f724ddb7f1aa2c013b749559 SHA512 085ed20e91dbca4619802ad796f79d25e04d5360422e9f8dd7693d5ef536ae93ba00e996353c196bf1f410225f84d23e55ccd0c84df99dcab22cb32b2a0fcd3d
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST bytes-1.5.0.crate 58909 BLAKE2B 2931f19e813eff73be407677622fa29e45f9b49434d5b3a04104b56563fc0e941fd8c5f996258a1aa660000ef014668d70b683b751af8e48d28d0aea76890c92 SHA512 6654cf41d8f0d7e19b05fd95044b9a3bfccd81f469c797c6aa763a4dd29e1b34064bed2e094548d147045cca7bc4706059de5bcf9f6579189e6068fbbf1c29a3
+DIST bytes-1.6.0.crate 60605 BLAKE2B 3e4cd094443969c6062b51917ad9df314b61ec9ddcb0336cf2621d8966c568d5b1fdbf16b11b5e2fab01b43ea76f6609f753eb5c2380a5e4aa8fb6e807a2ff5d SHA512 6507bc4274204d0a19b6a95c3284c52245c71cbf5f2dfb5cd372193d989e49869ec557c0c4e449e96ed4e3028c90606dfb0dcdc1d72bb234a36bc5f344c0a7a8
+DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555
+DIST bzip2-sys-0.1.11+1.0.8.crate 633444 BLAKE2B 01578c512443134fc786669bea4f2ec4b9c457b9936c907315299d8b67ed78045d458c83ccc119f0fad511529fb5af5feff5fa2d983fdae832d2fcc1b343e102 SHA512 d0a86b9f03acb1e4e309d5739dc2e88cab582757d467a433afe0017017f0e5d2c0282529e3a117160958ed170d8d695ecae739805888305df0e35e4dc440582b
+DIST cairo-sys-rs-0.18.2.crate 11855 BLAKE2B da237a944a6eed675b6812bf8a71f99354c0c41302d222cc0ddf38e47d612d6c49754cb8854c92dbc62d32de5f716bc869cc874949b62c2ac4736104c5996144 SHA512 b101f7a2543793fbc1a1cf86c62a8fa404ce171160603e72f9aae3592736e4d68ae53b8ad91aa8d70e21965d263dc740f96fe001bb049674b4efee1039d3d68a
+DIST calloop-0.12.4.crate 69583 BLAKE2B 5cfab752477b0e08af797268b1b4cb1a4cbd866ea789da25b5b42b8579889da8b589d2e843c774cf98f29c78d40749c60a14fb972812216eced717002a92d731 SHA512 657c6a17ca47f633e3bc3e3b6e98160bbae6ec51e496c720c35f2fffd2b9c1c5fa175b69cdd567f6bcef0088fc5af35c2a142c3b9a14ad9720a9ff7dbff2f53d
+DIST calloop-wayland-source-0.2.0.crate 11304 BLAKE2B 27ff9165921be61db363be0c93f2250d8d9532cf67af2f3c00ea4f2e2e3575d7698c1669e418e065dd1ead91f473cdda0f681b1dd989a3f5b75ff606377c73ff SHA512 53bd9b57c10fdd0c94d2c6dcc634d6f7b2e64aa9625d15163b76cef5a3bafa6bd8643401bef0b66d6fd42148f6014bec1339baefdc61d6c79334243bf797f6b8
+DIST camino-1.1.6.crate 30519 BLAKE2B 3696bee362c9a6c7331079f86823aede0df06c1c36fdc2d11c0628267ca7635fd78430cc927cf3b2af34591537d3968b3c5f1cf9d500f3e889c202c944fc6138 SHA512 e777cc6e2a01c95931a81521eb278156d1c50ffd0126f914b21e35dbb7644b835f3c26bbe7a487bbca508d26b4c933bbbb9e051fa42825b154c2fa03c04375b0
+DIST cargo-platform-0.1.7.crate 11819 BLAKE2B d165680a5edf71a40087ea3edb3231185b4f4282989f9e0b59fe968ea16693abb059ee003815bba813bc4ac43cd1fb4c33ed1ac84ccaea5ab4609af537d08b37 SHA512 0cbccbfef8316c925aa2ad40723096925b0218c8cb84dca912d18219c0fa27cb8dfd80c1dee949071781e7f783a7f6fae65fe50a2c4d3e0300fbae466b3b4efb
+DIST cargo-platform-0.1.8.crate 11813 BLAKE2B b074b49e08b2b93e93e08276f2a79546fe1f9ba0a52b3b4ef0ecdd28fa3fe5e842c0291fed158a1a12b90804e0172d5419b7603fd0d5f87f062f44dcaf3428f6 SHA512 187acf1b8cc81078ede3353997bec9010df32aba82f56f9479d4c8eaa13436590a16f3ab6ea11ed2b31d1d1d2299d824d9ad10f04bf5281c92372cc8334b0dd2
+DIST cargo_metadata-0.18.1.crate 24535 BLAKE2B 9d0018e28a3941e269dbd30291054a882a960905a43d4818c874250356a6c203bf08ed77a8041f08607390b2a382864701c519d71a0b88818ee59c6322c74e86 SHA512 43f87d2b84597ec9a27e9fccf06ec5f2630a0147a9c85779622c25493bd61268c266643f8206a17d76a16329af85f0cc563a9af7e17ca77024c0eaf788555f7d
+DIST castaway-0.1.2.crate 7124 BLAKE2B 43b5cc2106028b9d69a79235e9b1431fb76de1c2c881a26c158be66f79dadbe67b03c4718a439bd0b48d9de70424872c890956bd6774dd7af88375b0807137be SHA512 548c192c8e746107e4aee4b1e392425a024ea6dac53468cfd399c7dfba01e26a1c2e4a6bb824846d57cd940b6b72e26b66525ddbb14a6e3fcf5fea8659ba88a5
+DIST cc-1.0.83.crate 68343 BLAKE2B 33245b33fa845ea2f36da36e3830ec835f937e4319865b357ee9d5ea29a0f9f8392eadb38bf1d95e3c15ed201e561acaa87aedcef744f8db3dabff87a96c7f02 SHA512 742a248c3a7547bb220a0b9c97b67a831fab9b4ac21daa08c85a3966b9fe576088def33e16132fcabec9a2828a6fc437088bb045bfc98b2cea829df6742565a7
+DIST cc-1.0.90.crate 73954 BLAKE2B 840417889519dec96a745c49ecbc8b0d3da9b37a4b6b0165ee8983c07b8150061690b34409381365ae4c70c5780923d19cddce29d5fbc370eb6b6fff29121436 SHA512 349f3c3f8208632f8754cc05d70976eb14f3f13a14d59413994c656efc36bb32b7310adc7d5f3a6745f15e0aaa88334644c9aba8d29fb961215d74bec605307e
+DIST cesu8-1.1.0.crate 10555 BLAKE2B 4fe369d1247c3b30ff9beb644dbe2a517d78632191f3216bb83d632bc8857f9541a1b60d0bb583cf3fc0ae974f7c9d2b07fca5efe2057d9ef281de76fe810a49 SHA512 2d902b624c7ccfe3633c7bcf99b833b120c0ed7760ea825bfb2fa03ae90df543e637efd46e0743782b81e468e0fd3b534956ffca81f9bdfbf742ff3beae8f8b8
+DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886
+DIST cfg-expr-0.15.7.crate 42003 BLAKE2B adbcc2498d6bfd4f3445ba2c406aee1d1f6e12f02496f3bf608f7002e74ce1eae81d32bccbf6da87178ada6ea889642f38daad7f8f96360cd2ef03fe572fbacf SHA512 3e803a741008147a5cc0bd3eeb101fb3e4f24396fd3086e8201c070230a0c92e4eb69e74546421c59e1f039dd8aa9d913df1e9bc76866583100c63063c94ed54
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST cfg_aliases-0.1.1.crate 6009 BLAKE2B 6acfae9a89d3479f7ce1f0b5dbb13bfe27c006b936a96685606a61a06f69d17ab754a8a0d96c54213f758281c2fb32ac74d03a34e0f836dc7e438387955aac37 SHA512 238828445c5b48ca41ff88825af0a1ad30494e423bb6f89b6d5e4d26042afaa1ceb0e32041f7cddd79c3e15c6c82a1ddb9469c4b63a1ac52d4bcc1174900f880
+DIST chrono-0.4.34.crate 228932 BLAKE2B a2feab8d8b079209f8661fd8c5069f2a5fc3e5b0a6233187ace16f8f2ad8b4a147253e47af306cb31aacd82bdf490a8c8a171ad702b8dc22f9b934205d080c55 SHA512 2aaccde5e5ecaec744613429f807b3c34b92632973de7fdbdafd7ca510b917a23a0abc92a6497754d0d3368d684305648aec1fa2a0a61c88a100a20fab2348f1
+DIST chrono-0.4.35.crate 234267 BLAKE2B 92552b9c8fb40160de9ee62ed8c5bea12bf8bae393caf91c1c64596d6b2efd09dce94355fb757ed46eaf4a13d27ee3ebb43af91e2d8c26df1f9a9f429869f319 SHA512 aed8bc3298c8f8dd8146c6a919610b6dda52c038a28b56c837a21590e41fda605cd466dc1b85e407f365e116d741cb82afbeff5d29f95f3f5bce4a62abf80812
+DIST chrono-0.4.38.crate 220559 BLAKE2B ab828bfeed56eb737a1797d5e1132cafe87a1e14bf7a1fe4a5098f50e6ceead50ca2e7f041cc2ff63d5f4e41e2853322f6c345bb31ff12a5b412e3e5202f5fea SHA512 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9
+DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846
+DIST clang-sys-1.7.0.crate 42088 BLAKE2B d1ed314a910c1b676eb780fc1c96f5ac391217ec135480d0a91b11d6f447ad06484b48966ae99115e35d921a506caf6aa7ffbc4ed86aa64367dca321678cfd7d SHA512 e544984d5bd76824ea2093f43f98b59a99e1ca8a5de40e49164b870ed4a91a530f3492faf0678190b91e74aa5d122bdbb32c649998d0ce24912dfb0b83ed6b81
+DIST clap-4.5.0.crate 55379 BLAKE2B cd81a1347f2dbb0fc16ac3263d0dd653d6bd948666c8e05cee9c842550e6dfa2373eb68b16159466ded6c679359421586687204c7945bbd7b7c50fd1fb0e422f SHA512 2956b6e65220188b2d11fc532480b78f0f3574dc4137adbae2519d77b9f581bc89a10ad044e8e533a032633340ff09e21dc35ceba41b8f0f2e2b8917ea00581e
+DIST clap-4.5.3.crate 55388 BLAKE2B c0de02441b38bf4a4c7879997e70a8c0b55d41ac60ea2d918a3eaf7933ac9105a22cd59def6e7260066ab2d12ba32f13b26f4fffaa6303ed4e4f33622ac9c9c8 SHA512 735be90c75211cd8d77f014c8b91782246c652e92da810877a44ab4c9dc0b4ff9637640da04d57a17cd1550df1eba73d91d49d2e7a73815010c5d6a5017aaa9d
+DIST clap-4.5.4.crate 55401 BLAKE2B e9ece2eee6be16c366888f6140080c43a182aa758a971ab2f60fa5c8f5e00460c3e6ae6bface1f36445306265ce13d8145ac24cef833b68b2b2c32c13a7a4a00 SHA512 c1e88968a86598a6541cd8f8144909872fe71fc707dc5327293a71425f6ff9d4957491f93c36326a9f615c1cce1a453cc85740ff18e1ca571e91bf8f7a6ad7c0
+DIST clap_builder-4.5.0.crate 163521 BLAKE2B 597b64b2bf727186d9bf1c4b55227d96dbb819313ed1f952b2753d24cf6c7737075acdbd0091a919e6e4fdd60bbee4a1e7707bc09860e49068556a1112842204 SHA512 d0df594d0c15687d2b9c19c51f86a9fe1cfb9b8b78a8220d77b0e4d9252a850e217312fd3e1d1aae57703ce973f194241acd4e6ae0c9ab79e45d0c14ea8dae57
+DIST clap_builder-4.5.2.crate 163566 BLAKE2B 5eb81df416f3da0bb7e53c59ef4e914f03e2bb0563bb3707fbf70215f249aa523e3f5ef2205d0a8e25c23db6c6d0d344181c1c771566453505c769c55b355374 SHA512 af7eb8326a980cf461442a4dd6d224e61ae31a2fe4a45b34210a2c1f747eed49e00b6254699e82f986f441667f290a5de747b5e9d9d0360ed049504343385864
+DIST clap_derive-4.5.0.crate 29042 BLAKE2B 80a7646b2e30432008d52e27494e2563637e408a90557e5b0009a9db6a39abfdc79c04139f99caedd433a94b45f7d95fa11b49cfd33d203fbc4bc911fad4f9d1 SHA512 0a9d79f957067b929f8e1340b0e0623f78808c5d287cae252e6508fe8e07c4f11bfa39b1d3b60bb6a531d888d809c43ad3f6a491a7dd1e3d3ce89af7e1b670f6
+DIST clap_derive-4.5.3.crate 29043 BLAKE2B 22001d5b0bd7a53dfa4b146014a668e64411deff0b16f0f4645145855b6d52a0166cb9f01ee8aa434b516a68d487219d133455cec1f57984f2a652b92f4e4db0 SHA512 c9c5357225494d4cd4141dc5e3017c78966c53b04b9f43ea4e42e7d83f2a2b69b2668e2a25572c3957038eacab054524cd9b56044404d74cb7efbb19ceb7bbf2
+DIST clap_derive-4.5.4.crate 29159 BLAKE2B 6f7087d553102f24c9de37e1ba85c0d540ea42d9df9af26b5234ccde23175180efe21df93513df49f6ba83e46cc85cedcead29c902e426c39b25086c9f79a51c SHA512 670411136c819577c0129c6fcf5a8216cac82a47ae11ce3cd97cffd038644e06c5a21f7a69948628f01fb77f1e656678ffbfe441385866fdf90d247bda036c4d
+DIST clap_lex-0.7.0.crate 11915 BLAKE2B 03287f02067f6cb33bb3889e8032b0848e9a9cc17446eb0e2767768cf6ea8c579a7455d33c8af735fb8d0c16095b19f991a5e2528dee3a7628d68c16f9307fa4 SHA512 638feb2e4571677dbe15ef0423866d2f0df309723e5ad65ddeaff7fd5e2e83adcb973a32d52a5f3924ea88fcff865e956b7d30dcd569df0412ef47848af14036
+DIST clipboard-win-5.1.0.crate 16809 BLAKE2B 78a966132e4f46ac8c944cd627b8f41a372d9f6bdf724e56595b07a3def65833565182d3022a81742d64d2253bce2628f2a47a8518dad8f7fb7684590bbcdeac SHA512 0e2ca2b56dec070a90c957b4986194d593182762c5a18b76a4fa32eae1f3cfcd947eae27458e8cb17ebf6283c1515dbba58e2caf5a7360781e2f23e42468e849
+DIST clipboard-win-5.3.0.crate 19597 BLAKE2B 1f61d0c7049e6b2d9f09d6ef47196153ca4f592cb0eff7602317cb871cf06a54ecf7b49a121f45842cf49555c171f27db38e41975ba13920e5eed456283b6c10 SHA512 decd0b73e2d879c7b650f525b74e2ff20d271ac21598a64d447d863cd3d1fe344b3f4b4420514644c777d1d1793b585336e877759734c7234627ada0510daffc
+DIST codespan-reporting-0.11.1.crate 48963 BLAKE2B 39deb717a853ffbe3585e20a67fd7a75b62e2d796a66b5004876501fd7476acde9f126804f2ef6220ebab66821a3ccf058d544d689a2705eae44285f34b510cb SHA512 0869789f5c50d3523d3ee16a8fe64756498a13704efbe82bb0845eaa87c7b6b1d075b3b6b80567cd9fce6cb09c5179e9c07e485fd17ce56c8139ade0f8bc6844
+DIST color_quant-1.1.0.crate 6649 BLAKE2B 9a2488dd00b7a33e15e05531ea49ef1961131f0be0922ba41e2d74d2b1a047daed483ac3a9dd87c847a81cce70a347395c557cad8228ab9a8dc5be7cc0f1bcaa SHA512 690c928bda4b7b57425f38ea68ac89cde2473b7a91b7e62c04a8f2c5a0fa3505e26b065d48b7ad0a8bb491f92f600f896fefdad3ce0e86e43cbf4f9a89e94201
+DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551
+DIST colored-2.1.0.crate 23348 BLAKE2B e2778d83b28571501adb4e9ec3fa95d684faf5730f093f6e608ec631e58b883d2b9f17ed7e2c1612da285a58251f479a365aa90fa7be24a2adbb69e426e0fc89 SHA512 fa70f18fb29f6870a727d8243808c96e9497f8302f5f2b1748f9d9e396031e9c53a025b8edc9c8c9a0f8cfca12e5da73250a71e382b3074e9415b85bc004769e
+DIST com-0.6.0.crate 24855 BLAKE2B 3cb2eaae6864f05a6d47819d58c83c9be2ecff8e382ed84dec93763f605d1392947dc5025198ccff4b28be5b37287725ee4cc7d7f8e057f1804351b82ed0bd2c SHA512 3ca186fdfb130863ab62fabb2c266f2258ee45482fa9b925dc0d5d7ff492a49fde5c75f8850b18895a27f804aea16fe7bd4c53011e8badfc5114a9740b5b52d9
+DIST com_macros-0.6.0.crate 1075 BLAKE2B e271f5e11a62d666bfcb530879b0f41dbb2d81b94b6cbea15a306a72c97cde9eb77360cd8b5b169f861dd1d5c422c3de07442f016ae169287f243b0e9ebbe7df SHA512 737df65d1281fcb0b636ec1dd908ac48dfc020681022d64de1e327605604cecf9100c6ed629a991716693cd251563e259c4ff5611410117a6e585c94de03faff
+DIST com_macros_support-0.6.0.crate 17334 BLAKE2B a786a331c0080b0803684d1447efbe2f6903ce5139242b6c81773727fa61c7721cb198050119f3cefdaed32753f756f9862debf5e8f91d49e39804291080d572 SHA512 e4ec9f58d8ee25b0447854db8f528fe4e989d8944b3fc2b74ef8ea899d3bf6e082e8b516a51a7f77a09073f18c1ad7efdc62d6da8c82e52bbfee02cd7a552cb3
+DIST combine-4.6.6.crate 132428 BLAKE2B fb52e724a52f1a551255591fedc134178080ea5efc0c488efbc369e6272f7f2b87dd7d0ce63361754d8ff0cf1b0a59bbc7b0396c50c53210f3e2c28ac965e0e6 SHA512 ff9ef9329de2cfc103271a25ad1fcb7e478f3328843bd8a65653e80b74112728ad4a33326a58ed7ef8cf39eec7c3b797fc287295ba149ee0dccb1de9721b5819
+DIST concurrent-queue-2.4.0.crate 20244 BLAKE2B b30b97eeaabf0205bbd8f4eddcc57e59b6863f18969731be66b134cdc5bcac9eb543493c54b17bb394b6e227e808f016e4f3c1da2fd6b40269b9b24a5c433f7f SHA512 5821bb396a73692e5b033d8406c2996bc4318cebf8807e596e441a2bdc28715fc6bb8eb29b575ea318f84b748ce47341a8d23f5c4de65660f86056e99b6a8b78
+DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9
+DIST console_error_panic_hook-0.1.7.crate 507196 BLAKE2B 90f2855b54c78258f9e4983849a0c0b41f842990d622bef0ea16ae5e3a93914919022d21b1437bb2ce644333d4e0c6e7b55d960452c4fa437e23bcd0da83a4dd SHA512 49f4fb2175c0068981678f291422ace3737dab7033b1a49d78fd821512c92fdd023c3fe28c7daed88c8f338c30a9c7f82f18bb4583c3fe7839ad8dcd0addd6b9
+DIST constant_time_eq-0.1.5.crate 4936 BLAKE2B 882dbf33f20954205fcc5b6e39863db8969d184b697fd51ef462f6890c1a754e3fae67bcc7db685d8cc26abe6e3871d3b80aa542489ba9551a0c95a49f7a6dc2 SHA512 a4e0155a7ad72babcfd418d832d362b3fca7333aaaf36c246b00e948983837c3c93378b86e37c5fa7626fe137e3b6d77276ccc61624a7f4ab914605905a88a01
+DIST convert_case-0.6.0.crate 18675 BLAKE2B 5e5ab159a61e68b801f1c95dc5336f3af7ffe6fee212c8ffb9905af1121f0b272b234b4e70a30f29f5ed24f4825ccfb59722057b69549fec0fc3472857ee1ce9 SHA512 3b17449195a9a36e3965db89eeb967979c192ad7743217ea08e8c8b91ecae1ac1674362d05dc6f32f1f361fface3f783398285bb78060403f65a777a9d29adf2
+DIST cookie-0.17.0.crate 36545 BLAKE2B 55ca885f4ec63da16c795ac1ab223b41af425506f0597e4c1fe743443cdb95a8644bc035e0c8af70125afbf080d81a3610548da4572c7f67c1b143db1091dca7 SHA512 a0f8e6458b97dcfb70e2046ed121cec35a291666880d39a2acde32781ce55ae24218c5db9cd804f93523392de27071281c89224f9f332d4c9eabc061d7a11e47
+DIST cookie-factory-0.3.2.crate 14325 BLAKE2B 34a45c00e033b7d684b1bfd61a60d5969d3f5cf72532239d09f4f9f803b8cdff4858d1c827bdccc991b562c3ecad3b308995430775080c06fd5ad03538e6e9de SHA512 8c3eb5ac052368a426158ec23c4d2cd3d74f14b426782cab4b89de6070611cbdaf4360a668dc3c76d9168f738cd10389eb56094f72014c7e5c249ee1616aebc7
+DIST cookie-factory-0.3.3.crate 19084 BLAKE2B 795a6f0cd4e93fe8ee257ddaf1f76852499137bcfe47d25e3188f3822f3d92b191cb9f3894163de39386584fcb899ec01d0cabe5757f534dfcee9fa28aef8132 SHA512 25f79e74be133b780373c1277a00538d9faa19b77868d62b16d60037d4890b57aeba2eeaf52d78d3f8523285b033e88b680195a67ba5bb8ffa7c0ffb2070831c
+DIST cookie_store-0.20.0.crate 31374 BLAKE2B c9adddf2ee5f0ee146fb813536d7793a5ca1f9e70529e1a8ce84a50a605223c909e02d8b87e2c560b069ad87eabaf12230c56addb5d06e5aa194d1c4309658d3 SHA512 c2da6bd8e42c52ce91ef2a1a5c68bfdfa6a0125847cd5d3a8dc49ff9e46ac865ce5d10f9d4376ba640e4c0efbd6868ac88dcfa9ca85d91cedaea37d30be452e4
+DIST core-foundation-0.9.4.crate 27743 BLAKE2B 5b695e671cc833170bc6bad436b2d0d8d386ffb8181bfcf2e92a1d93cee67c3ba1768cf57064fb91b0897c6aec1be7db40b5bd256a052c1bdaf872ec19f6e15e SHA512 82d0878a1b9e3d56b3666fb5a78f92c6f7806d01665c242c06a640bd6b1fd36260211e92dc05e1a16d1430622bfdd650aabb0b5bd8e5592f74abdcf412448e33
+DIST core-foundation-sys-0.8.6.crate 37629 BLAKE2B 683d5a84b6a3816317f87359532a8339f08bb4043f1d70a8588636eb5dbe6ebb3843e2a12d9a7e5fd1637a912c52a5aefbb8d44796330b09593e7adefd3babd8 SHA512 24a8958cb16b081862a9000affb0147b8b3be1a664b834c3dbddbff03e709de3f4060ff4800e5a35453f4392ccf33168e8b864be71b17be38cb264a39b915100
+DIST core-graphics-0.23.1.crate 30714 BLAKE2B 291e5cc4cfcf1a6507dc0e4dbeb304fb445530c60d7bef79dbaa53524233fc453d1ee977e7ed43513319e1d5641e756749f43b536535fee730308322190462e8 SHA512 2b0e2c00900d4a9e09c718197692ab2aa0d009a43fc03a30075eb33ed7648f6ef640bc2d827fd9cf17f752b810eaecb77107096aeb1daa0348b3b7e17ae47fe4
+DIST core-graphics-types-0.1.3.crate 7063 BLAKE2B a2bb17838745a28a59e85d884ea60069c33f548d41f98548956eaca4178409c74556039a5a731a9c1e9f26de8c69d45f458a90a3f7b358065202b660c62431eb SHA512 e56b96662fcb892b73bae3292478a9ba4c7e92f5967b6438546f229fce115b09f997734c40f8f776be6ede2c6512e837632eacc8ec15b5c3311f9f24fd22a397
+DIST core2-0.4.0.crate 37075 BLAKE2B 89ad26bf5eb5ee48dff32d3b6b11e0a84b68e4f29c39fb9db79c64f3c445fde248b33b1ba9d1410673c3fe823ecca25dea637237c384b7cb419de9bceab8a570 SHA512 53c9d2599d87c37d8b6fc8b2293fc16928a97754240e35af770f7e969e4d91ffffe3afbb4e04312de828d1d43ca6c9b734e0725ac5ac9d74f252449ce296ab7b
+DIST coreaudio-rs-0.11.3.crate 42844 BLAKE2B bae10c9b7670651e78f24426378708a2c14b6b1a7da9d4e359611a8bb4df8354af5b409eb20bdf1e9b05a6117c59b6cd7d3a79851682a217732986602c8cf3ed SHA512 41b3ade3b6e157be533bd25352ad76a01de28cb3c8d60d7789a3f3b5aa868d6a7dd71456b90d6453684d2022e0f0a94b3e830b3920918c18a4693c2de0258a1e
+DIST coreaudio-sys-0.2.15.crate 5532 BLAKE2B c7c3f67a6db3b9d9b604989812b45d75b02a04565d1dfcca4698abdf540d1deef1c93b6a9b02a3689a32f033495411a5dc11efe4871e907f8bc0fec6b5fc4f25 SHA512 060379c57ee110ac413fbd24b48edef283ffba17692672f9ea3f6f0a627cad8f827ae2d375c341b0180bd4de7b3b5d55a06ed7b171fcf3cc20264826f2489436
+DIST cpal-0.15.2.crate 98128 BLAKE2B af06ea384069ece983a4008f5a0a18a5a7213446beaac163594d159d0e8fc6ffc60058246019ba54e0889872f796ad4c60837e5332dfff8f34e621636ed3d5cd SHA512 a2a92dc2a506cacba143253a9e71de8ca6993ef8a1f936b29ee26476c59a4204db307063fb22a30740716bcb9408bafb3ceada5be5f7ee843693ccadc60f35ec
+DIST cpal-0.15.3.crate 100083 BLAKE2B eeca832ced49c8b4913125b948a4c5996783361105d106ec7bac263c2a81ab87e5e2485229c3742f1d600037993abfedabed10ddc175ac507234d720e8f7f18b SHA512 c4461e740dbc8528b753074f3e53fa863ac6318b11a786250c520aaf32f33af98e830016ec92711dc5ebd631068275dae66d3d9c1d452191869c8a0b5879feea
+DIST cpufeatures-0.2.12.crate 12837 BLAKE2B 5b518c58c548d9116f94cefc2214fe2faf87c3aaf3fffbb0bf4085f75372cf7fc5144bc3f827101a3a14a51363d06d8075db94ff5ed853ab2ccffaf597728093 SHA512 52742595702fc3371d4126fb355f3d7a6da514a94e43170f1db041cc6c560027f92115eab7846131dba1018ca5c72003ae36f945c1de88d57a0e7f66331623c6
+DIST crc-3.0.1.crate 9950 BLAKE2B 2afbaee34f754953396e452260290422d19416dad4b88333e4501592deff3b3350363ca4c2b37d573ecd4e64a762b702b79445460f15fc90bdb8214fe43c0945 SHA512 aabe9d4058fb4710405146e978ec5881bce5ce8971618b69a7ff873b0fff15fc78e5c48ff0136ca6d37663a53905bc3c5daa0ed3a2ed4d8d721e90c3b0ec28a5
+DIST crc-catalog-2.4.0.crate 10155 BLAKE2B a9c3ef81871d72635addf1ded611fa6e963b9b128dda198eaa3a256512c8759608bae95df95524704aeb38f81e2fb6c2da2e29e306a8ed3dea595e63cdf05638 SHA512 25536456fe71c44fd8ec527299339c1d186f6e12f1f90142de60eabce337d836c2497ddd6307473b57a6cc720cfc8e29b059f378c70b8165bc171420ccb40a29
+DIST crc32fast-1.4.0.crate 38665 BLAKE2B 77398dedfa5e61357fb9abe3415ee53e45d3f1f7aaee959cbc9774f31a10ed324da2a558d20fd7c0674d450c8985b1e9c78b0b65e6ae2d9da6c873fe631c5ce7 SHA512 3e0bf1d2411ad9c651e0242c574cfda09403db24ab4b55560145ee73b31b08be45e5e12ce2db991d165ff056c7f2f67203fb2c048651f1c66ce90ec3276c455e
+DIST crossbeam-channel-0.5.11.crate 90434 BLAKE2B 8666f039a0e4ac6f0f8be2d08ce3349d8ad4aa7d0f38c638dfa6dc6a7f30a1629e42f87757d9e054e836941dff6a8efa53b5337706bc5958d33dee61f38e7bcd SHA512 1d37bae1c946d402c1fce37f22a82037d68896770757aa91d209387f947d39c514df52e0ce94317141513784511ac626482f16099cc3b62ca28a52f387b69c71
+DIST crossbeam-channel-0.5.12.crate 90515 BLAKE2B 5a302e58411d99d52630cd154f4f642ec925af3330ced9456a16e417e2e43a37dc2b2288ccc88137a75e682e7b10ab2979f1f90c0bd42ceca8fa84c700b7dd0d SHA512 e17b0e41901b2b41e89913a0a50cd1eaacbf64cd07f454605a85781b8b1373c35bedd16ccf6b24029404a3171e0d670fc2b1474a6448d0feb40ba0e41f99019c
+DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.19.crate 42328 BLAKE2B b2846f569555818fe7a3ef4aa29f68c638f933ee0251713c2c92624bee5f8013def5527027022963f572815991abb98d5e68d0fa00f478b2762133f84ffc84c0 SHA512 6e742fbb0d2a6371db87e81f8ac583259530a288237d0e8347394581c60004703a822318ec945936c410bb44001b115d8d986bb264e5b2d8091bb63a8edd93a9
+DIST crunchy-0.2.2.crate 2995 BLAKE2B 74ddf8c5e0deb2ceab65c20a2743e1230739ac6aa3af60c9e867a7852270697a1278b7dee00df8949fc4268f9756a4a098df1211ab3b3e31a122652c3ba0a6fb SHA512 36dc0aebc41a3aac5f1b178a7e61b65bcd9bb5c8539b2024f79428200f7c62daa7098af55c6ab0765febd2f8969bd6c0ac8096f73cdc0958e5c4e4eb6a4f7025
+DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
+DIST csv-1.3.0.crate 888212 BLAKE2B df05956223c50cde32f4ae6df922fbdedd8b50008a8898dd49bcc8bb7430d25727a03430c32ec23cc44ced043709de1f80f4d750e335bd12b22d0b06050881c6 SHA512 1b9e870c433e4d37e61cd604d2712c59ccd392cab55b8c88596a7094245072dcae02ecc80d3ee7cdaaa083ec2c2865b71712330c55e93715917a86106a2230ed
+DIST csv-core-0.1.11.crate 25852 BLAKE2B 9f56cea786b5b35f6fd5c4f41fc3cc06d777f6d643d939ca7d57b1f1a24d4ee16ae3a4de629e484b0e4cf87009abf4911dc4d1bc199968ef5c7f4100cd238d1a SHA512 0445c8a4d4d0f90f03e5d6507c26454aaeac0b355fb39d19e1676a7cb27b4372db3541367ce838d38151862b7bfbf19750cb550e24e74ab5e07ae9bb4edeedee
+DIST curl-0.4.46.crate 94864 BLAKE2B bcfc97c19ce299abd3e8a9769a30c0ec5dc6692b5c1d81423f47aeea39066d1840ca7ec1d4713132519f3bea94d43aebd8d733a19028280e2e6c2a8e91eb1948 SHA512 c08f857b385582ba635a76744c940017b74c3f241d28cc7c8c6eeff958c76c01a1a51df41b3a7a6a9a38a31f8cf5b9b3b639eaa163c441fdec29d0b3f14c8336
+DIST curl-sys-0.4.72+curl-8.6.0.crate 3269599 BLAKE2B 07f7d22f787ba9f329af1e3f477ec877dcebd0c6f0cb32d284cce364c1d3fd4f9eba153753655405e06d0b759eee8ddb0e6f8600864ce8fa18ae727f985927e2 SHA512 d77db758acab7cacbab724bf9d6f5a3a40083be7290c9b6dfdf91370f1d965e21d8ce01f1d3df79eb40da2ec759c2b0609d3c6176a0517acbcdc5a2bbb66a1ce
+DIST cursor-icon-1.1.0.crate 11453 BLAKE2B 964bae7d3fe138e00c51e52ad187ddf5b71a86d9b1bc9bb394fd27869d714cafdcbd539e2c62eca9b0912593d08187d550f5507e73754a00112560acb83912d7 SHA512 4e3b74cb17773ec2b89312fd4fe60330b785cff850102e9643bd06e99b5d96c11cce14a9350f295c6063c4133dc0179cbca13fefd7ab816e57c915f75d066d2e
+DIST d3d12-0.19.0.crate 16772 BLAKE2B da5466148c3bfdd47a9a70d8eea4599b68cd0381a8fc0e5f7e27893d6a5d35b9507712cdeb1d753c4e321fca07cbddc898daf0ede1bba0ac3ca6ea746950b6bf SHA512 8d36d0ddad5da12fde6db6dbcf0493059221bae91b16ab2832dcb73e692d47344c407882b25cae9e95e4554f4c8ffe96721b1dbe8053caff931956adb53e365b
+DIST darling-0.20.5.crate 27737 BLAKE2B f3b5dfcb8313e8eb74edbd49322d45ed814ef63df642b27c27c1e464c8db155b536fb6d53133f070f3edea749cf6f15d465908119cc1c30156a2acfd4b93d536 SHA512 394bccf43738ce63d7d0647e828f6606daa1d1b2be85ac2839fd5ed22450e93191c33e25bd32e61ab9b82a4546a3f84acc6b376cc0029b9a236db31a38923a5a
+DIST darling-0.20.8.crate 31234 BLAKE2B 13e8ec124715f743486d740241273fa5ff046b5ede86c39ad5413b3e767166dd90e7ba7344a69c1e14991f0572f7ffa24b081ef54236712c5286f211fcfbafd2 SHA512 2b4cf37cf7cce9af8e93f576dcf36b539816e1ee7b8881b5b8480c45e038c97ca2d3a80c54e243d7c6e1ae23782947efaf0d67a37c0d4dc66301c8a86ce0fcc3
+DIST darling_core-0.20.5.crate 61089 BLAKE2B 00dffe93c0bfd97c856f8f4e070c2cec02928389fed26b3680ed6505e1618688f76438c4ea85ed68ea01f8f574cde375fc7f227a6510361e1727510960fa0531 SHA512 9179e08ada4e4871242d3be176109c8c6a94e1ce2451ab18e553061b40f004d1d725c50eb7f91668a43a90b548a0ba6a2a05728ef631c857a53116ff7dec08b7
+DIST darling_core-0.20.8.crate 64442 BLAKE2B bf1844eba6bac260104e2ef310721d3aae7ff222d99b01b9bb66e3c71ab700095af7dd5b3a77043d6751d94af131f02f23bd321fe9d4a7066f93d1fb7c0c605b SHA512 6f2d047758541355b81e43273cd1eb8865624096c951643e6ce777d716e17256528c47fe012f33eeb1f63883ca08f532b1ca52f43394dff82fd1bbf323763751
+DIST darling_macro-0.20.5.crate 1857 BLAKE2B 540369edd7ae25f16024008b0e6c8d0ee2d338cc1e28edfbfde1b72449e4f4b40dc6a8e12ac19851eadcf97e620bdfcb5e8877c6b05c190a4116728143f6d073 SHA512 ef8d3433d4020decd186f842a0c590b6c44778252afadda0a6dab840f874bb0d7aaabaf3bdfa28f66f19ee8108930b5605a7f733a516b9c0c53955f229c5d4cc
+DIST darling_macro-0.20.8.crate 1856 BLAKE2B d7087fa67033c897aae582e5f4d3126e06e024b7db203de7e7513308af7a0ff6ef0584a150c6f30ce434ba6ce4cc2a438f89f024c9d6338198aba3bd15cdd116 SHA512 97d18bb22b79dd95dc5ab23ea7226f9fd2d6e418b7ce9aecd4d43b7a15b37cb91e509607b89eb3a914a5d3dc562b2a292d1343f87f594ab32d41fb583d7cbdc0
+DIST dary_heap-0.3.6.crate 23683 BLAKE2B dad2fc57dc12fb6e8c7f15fe4b1c6ed292c1057274423d9985149a843e82040dedbbe6f76a74888735fd294de9af5af80969593213521b7ade19320f2f027be6 SHA512 76ab17e04f79f8d52f88db3bbb7cb6b6dab1191f1363ebdd6487407e68d716446d043a9e8f43dbc06ed91e1e9d3e0d077f3fb246bb2cc83e831a1553c09cff65
+DIST dasp-0.11.0.crate 3212 BLAKE2B 2c24091fabf4f0bfbe7067a7a244e988d59e5dea3b588235c6abba8a5c4458691786300226824dc1f9c69057f60480ce8a66a44a436025d26efd1b7eee6f8941 SHA512 35e4c90abfb965a5810e1245ee64e030c47f5b6c3ba4b27577647a9a8a9eb7b0dd5a2d4db75067c6344bc117e5081bb47fbe053d5b151932ff39927bce2da2eb
+DIST dasp_envelope-0.11.0.crate 3331 BLAKE2B 44606b58f13ae3e9483d8aea7b3dad77b5ce3b597306a9825ff305ea8d7358f11dddc919ba294ed0e9e8cbacf8482fe87c2f36c7d08ae8f2d95a5df654737897 SHA512 e7a13a00b4ad8462f74ae1f87a66a21c548d963cd11070cc7c49a2846a41e33a4d52673d32a6567db3562f3a7f922dc15dcf838bd7782f9b3ae79676a981110b
+DIST dasp_frame-0.11.0.crate 4910 BLAKE2B 124cc78a826ff5926a7a9dcd9ae35ff23834640ec18ff4b64a7b1c1ba7d73c15e15515b6bade82849cc3b352ebe1707339f1f1c90d3c77daad649e939f12e871 SHA512 aec23bafef3d7aa4c0f1c1c9c4bed1cbf5e57731bb904c8ccf66ce908ccbb374b58e662654af5e940800de30cfb9726881bb2ddc155b80fe1d2d3e0351a57d47
+DIST dasp_interpolate-0.11.0.crate 3602 BLAKE2B 3ec024698f6daafb2d61a179a2a7b1ec61d3d9f7c3e644705d1e71a0c452c5acd2b119cad4a25a8891fe67a6648070ba4072c11103fa45acfcce6672133c4c48 SHA512 7ef2eb3fee5f22a02e6be437896478d5bd049c64776346dad925eaab0d5a7b2adf70f58e846e45925e97254b1863be7ee6364c2678ef199bf5579750141699a6
+DIST dasp_peak-0.11.0.crate 1602 BLAKE2B 7bf98534442705c2b5929e7476ea33eb711381fb4f17f789d5c0618fff973976a2f4d4c80fffa37188e5022d4e4462d31e940ab0a70e9cc7b015ee328b128f4a SHA512 9e7bc940f4ab5fbfd663b475fcb52fefdea52be6ed21e96e06843f4730c7b587a5317a74cd4d08a529641444544d01804f9be44af86fc407ba495148f3ad7de6
+DIST dasp_ring_buffer-0.11.0.crate 6319 BLAKE2B c1d0e0dcb1280fcde1e6817fe9c6279151ee95b95fcaae97885bb597ab63f02b58e7c974e4e94414c3103d0879554f6ea56a699964cb9a449129c1600c1d8cb6 SHA512 8a0f3ee73c432073eef5eaa64a744e21d1fddab1bbf18ce2a04ddd64f106e4b60fa27c6a603b51c33c5f1e4e3ed701ca156a3515b7625cfd5e88c1506b987f34
+DIST dasp_rms-0.11.0.crate 2798 BLAKE2B 21c71b5052ca11a7902fa0f8574159e4751673732347082e7613a89d5b17f70e68e26062acc6389038411ddc9162baf0d2d1c62d56fb689a1f860b15cbba52f9 SHA512 1d097935e43515040228104eed8003cae2b6a7c55b49a37a580bc1b21a5df042077a273c7aac8fee09a73ffb22e908f200b7f69915c806938569944c481489d6
+DIST dasp_sample-0.11.0.crate 11617 BLAKE2B 30bad992ba12c78769ff2f72e187f5ba0775a45f0af9d346d3e56271f414d3deb607415e73d40eb09023149c261ab02240f112386c0acec26e99d666cf8cb959 SHA512 438a2ed44fa3cc97edff6c6b6c2869dd06a5df790457e339a36ebcff024c152ade36740d889cdbedddb5dd7bd706dcd61778e68f5f42aa100eeb76213f5fefbe
+DIST dasp_signal-0.11.0.crate 22544 BLAKE2B 07841590ca78df87a5d39f8784d94a548fc1c487dbd14e11fdc48b695892d4deabb78016e355a4078752b01ad3b1c63c6f2abaeb9883e4347c0b44101a3b6a5c SHA512 40aa9d759a5edc1652d8bb8411cbceeb4789c876bec7806fb00d4746e10f9572d1a3b70d3c47bb272bd74885bf5072d8b9cad07d1f39f418172072c906089059
+DIST dasp_slice-0.11.0.crate 5637 BLAKE2B 07fec1b3390075d4ee0f6f1a6e76453604759c1bc995564f055cd1860288da75f5cee39cd16f84880dd6f0b23326e6e83ea8d1d0e0fc371757e0ddd89d8ae2a5 SHA512 6cb51d3d3573f13fc23b6d9a5eae3a543167afe944f59410a79c84ca4150aab042f0f1f7ea5f1e92720ddcf6da388b4cd1a470b18a83372051d096ff1f62f213
+DIST dasp_window-0.11.1.crate 2247 BLAKE2B d8596948e7d559ff76d89529b2f6276dfda3ad7f06ba665f3120900aadd4abfa3656cf3577fea1d8868c2c7c5311d744b39bee32c4d6d0d265fd896eb6f32dfb SHA512 b3f318e85b73dbdc3ed12b127c43471a10eb76a4a0a4c72311dccb5bea0d8c861b68f02cbdff1ff3bb6f1716445842fbb07bb342edba8d52b9983668e54e233d
+DIST data-encoding-2.5.0.crate 20632 BLAKE2B 16ea08dd12f09f2e6f8ba2910b3db07d4e7c9916e6a70d41420ef1a0e5393284b49787c47af0868bceb7f5d3f1fadf203f5a547dc8cb97713d5225dc9181fdef SHA512 b1de8bcfd7cfbfb988091fdb550eb98dfa5739ff58c4b789663e5db0d539c9acf145ccd72d87f7e1cdefd09d5771772d131d2b2e2589ac8f0bc6972c801ee0ae
+DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43
+DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da
+DIST derive-new-0.5.9.crate 7733 BLAKE2B 3f0a19b794c10e529da5b3618cfeaa4e575ee31597d2ff1f95618eb5163568c6c8836c5a634323dda65f448bf3fba2bbf066df5f815feb07f59ff99d1f46da26 SHA512 9ce0991fe63d8339a88d9552fcd8cc744d8bbc2c6525f60959faf519e1ffa84256c773291df2101912483c0d9accd4fe5f7dbb199dbd36d299ceae8f607e0b30
+DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
+DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
+DIST dirs-5.0.1.crate 12255 BLAKE2B eadd38e85211ed5aee7fab964e90342273320644c36262aa7b436e493512851a4751a09d22aa8bae0495f4b22df6e7395d13715ca8b8c6196107b1be03af9328 SHA512 cfc329518e85a25c296521b9aeb6e5d5f60b4525aa786ebfa8b9f198446a1ff5892160d1bb4790d7f3fc4a0abdb5921b2e4896e271a3fc3a3225897313b77bd1
+DIST dirs-sys-0.4.1.crate 10719 BLAKE2B 30334f2192698d7d03bd4e8bc8a682482da7d13baacb8547a132f55019d3727ac35579926ba4367fe0a5b7fa917945abc03e010cb7363683753c87440581df42 SHA512 53c7c8bc76d7211d08a0e6b25caaed12eeb7283cb4b352c12311db3c796794330943259a08e48ff9d3a280917920a088e5aede32677a4b2f9f819c2dca6adb9a
+DIST dispatch-0.2.0.crate 10229 BLAKE2B 3a3f011bbd994f6620619d5bd26d95eda7ba21f1a4874b69e3a654e04611ec7af7257300a669ee95ae04ce35a91e033dddddb4a14da48036a5d19c4bad721386 SHA512 cf2b4c624f92808e43a0a4828ee1085e115540d5df5a0ad6a3593c9e5109951b26e8afbabcfb0a1fde41207d5c060566bf9260bf4c2a95907e3a822d84364b3d
+DIST displaydoc-0.2.4.crate 23200 BLAKE2B 91b0ae7018109d407095060b6bbd6aed1cc21120bc30348e8b16b5121f7c35ab72b65e80bf97dbea6cb4ee6b4d5215e8e5c4374f92a569697bc9c862348620cd SHA512 a1de2c200584bfac640f8b84b5103d8687919cd29f59a14898e98d480f476a8e4dc06e3b929af479d536cd02186e2a9be72e6414338bc117b97bc0d160029592
+DIST dlib-0.5.2.crate 5806 BLAKE2B 2a8be2d76c44c95d5b1b9a5439a99a75daa703a341980d8af1c050d6096d45fb748f0acee7f7de2f9433f97ec19faec9e028f57c8149229eecb1827a1ef8eb60 SHA512 4a8f1c09007ecce1d7c829899aafb90081fe4fd89cfac3550638018760e24f63985e3060c4056b55bf58cf4622b1b31595e1c524a75b1b4354b8f3c35fc267ae
+DIST doc-comment-0.3.3.crate 4123 BLAKE2B a82d1c1a7a90af6e111b5e684a1298d7eac5fd8e4bf7d5baf6c7403d26b609958716d57e51122fe7ad7626fe00a2d824dcfef3cc2fd7679fdb7b5099603de1cd SHA512 e98ff9646a3612bd41bb6f278e7b6e9a0c58747f8b82524da814cf51b7f06c76ad4d65b502ac5740e818744abb295f78f15f8262d0b50ced1523f6d1a26939ba
+DIST document-features-0.2.8.crate 12979 BLAKE2B 6387136adc2f2d82dcf58a5c4b4f30ab8f918649b5fda02b31b0a412c516c1c4344f4a5cbdc9be777000252f32db6826aa588ce260021b16538afb01d873b754 SHA512 7d564698eca8d20ae66f533071b8ac27243889eb41fc419e929280aa54f508398924456e6f63cc174aef9f2df294b56d6ffdb3064ae7b68583ff1f3790dd03f6
+DIST downcast-rs-1.2.0.crate 11670 BLAKE2B 7d44d708c1ac068a02ea5d72dd3caa8a7f6d18b7ee653d520600acc9c52365824f5b8d3c68143d1d13aa438a18b16ff9975e15131cac7ec48b2d995184673d37 SHA512 b80b72f30b42c5e6b2bd33287f2dd22be5673b2fa5c1a8c75c5de224fc7eca46a55f2fce63c02d225dfbc94ac3462b4b2fec53d63331c70da6307ebcdcc6cb14
+DIST downcast-rs-1.2.1.crate 11821 BLAKE2B e8a78afcd8d2f17c9505973359e2151d59b233e1757b4c7019047f148b1c8a4f28dc3a0d6eff6cc7f4a7ed986bf592ccf0481dc112768a9751475e1b0dbe27f2 SHA512 f37804c1b1e2cb0ecf2460fd6ab274c843c43e94aa7dfbf4e3c53529cca9b5624c4ea5ab5ceaafd72481165c7335f3cd1f846ae43deaabd18f363572825a5f86
+DIST ecolor-0.26.2.crate 10173 BLAKE2B 93124e6aacdbcdd6e394eefd477302fb276f32e33f0b87757d3188735ad9c692752544c441d1352bf0583eaa0955b821d92bb97614155f73d52c5425efc16bb7 SHA512 21b50e25df65996f9fc077c8f7afb752a4a95b481fb394a9bff7d5efad181993a668e47ca056e3f43f8765fb3044c213985d1c36286229043fb1af3b72f8fdc7
+DIST ecolor-0.27.2.crate 10172 BLAKE2B a0e04c2902e1eba70a554a03c3dd619cd88720f2bc323b7ef0e54be54e0a45ec0253a76a0a8bf36ca06e6c868f1d1422bf04d6ade4617efc9fbd03852c05170f SHA512 5bb1e6d08edd4b7238af9938c3fd4d79255e1190b40ae23ce35a914eab530ca3964ff030b079990b173973facf8774a0e7beaeb68776c51b1fb0d923fc72ec1c
+DIST egui-0.26.2.crate 287876 BLAKE2B c90f689bf83a5d06ce12a1922d04c781d5f0f527f7d5bbcee9909f6bd2d227b08248ccac2af9b34fbd56855607b107079687e89c67141db3d8b800902d694155 SHA512 86d0f3df9322540bf8bf844574e279088ef32839d57e287769456defd9c3eda0c06aedd0293a1ede63ed75f1cb1234e409cfabfa21816f914760c9bf3f0af73b
+DIST egui-0.27.2.crate 301121 BLAKE2B d4b7f511a7f6305476ea7d5b168edffe973d1884f2bb816d0a337709cf330ebad74576fbe97aa5de20e6186ea6ed0e3911566d0422de0c59099000b74c90fae7 SHA512 27246cc8fddbbbced96e6671aef72ea8bde7fd698143718f629386c0aacfd47d46ca1e39fdee24f474fef5327fdd1a8ffeeaa5615f5bc805e620a6c43414da03
+DIST egui-wgpu-0.26.2.crate 21225 BLAKE2B 2fb3393006698cb2cf091bf9c61b37f616230ca4234585fdb38cd7ce196edeaa1f689b5d5990a61ff7f533ee552d5bfd7383ce38eb25b095bc63139bb5c092b4 SHA512 84d5aceb267d95c07a8b9b019819e0bf6de848720ff6518b932708ce6298fcf893c0b9a678377456cc299ffab6dfa53bedf9055f8385faf3636018439bedeefa
+DIST egui-wgpu-0.27.2.crate 21227 BLAKE2B 3c93eaf15291436cdd55d7d6967998835639f8461f68b13eb2e5bfb328dcfc8825945afd4d91ce9bfa69a5dcf1bd053b24e86c27694bca117556db8d6cf94107 SHA512 76a982536a76fd79de636bb1dbc217717b00faddbc15a6cf3fb44f30f435c9d5277ef0ef9c999d76d01dbe8ea22c3e44aadc7d72486d810bb28f79fcfa6bfdd7
+DIST egui-winit-0.26.2.crate 18826 BLAKE2B 18ca4b274928ad4ddf4fbf3b22d837402df0c9366ac35c0ffd1e3293c48bf57ec0effee5c63e73c2f81b57cc2912ff0fa829e75b5d603cd607b1dc8ca908d817 SHA512 6e15a7a56a22224cb9beb9102e9cac38c4652b5be5c6f53bcc664a4e3e838be8a617118411a11e24cdb2f1a28caf694ac5bed47bbb28926fffd7408ef8211dff
+DIST egui-winit-0.27.2.crate 19368 BLAKE2B 522df61925c0a4482ac724d1e71f8f3063791ab23996ade77eeb5642c2a11d8d30c9c810fb192df72c1b099e5af1e2386657b3a8abdc41dd47c484e18c89b0b8 SHA512 d36e7ee81010b30ef90673aea33f5e3581e97ef8881325e66f9bdf3f2202ab0fde46920514db8e06e87405b76b6732db8a90373ea14366136789654f39bcf6fc
+DIST egui_extras-0.26.2.crate 32011 BLAKE2B e2e1d5b778c506229180124cff1bd1c6ddbc7406dbc9c20f2b9e2ab34050f6113d911bf38e069251193bf5a96fda9e70a0af78ee5d5637ba1e4834c7a5a6e0f4 SHA512 7762ec30a889cddcab51abaab15a5613a38991a24162844f408c58716a480ba628d561fd4d266680ba7b9e65155d9ec813e4db53ca59b49a750fa1369a5ae07a
+DIST egui_extras-0.27.2.crate 32589 BLAKE2B 689af5de768b65bc33d968a3d96c152725430364393bb58bac9d91da2408f848aa80f2ecfb2927e299584670c534d93498061474a3318486d545057da7673976 SHA512 f831c0e88d954c39dfd319804d4b3ecf8e9c268fc375c258594c9ffd541e4a7b8dd4f02c3ecb6d4b93fc956f5ee5b835c42580f23decc2a1d95b9b08bcfd6bf8
+DIST either-1.10.0.crate 18334 BLAKE2B ac5d81e0822132846e29f8959671b14ac6047330d54020ea7d4ad790ef985ecb4ddcb96ec7e327b1a66b9c89d37b112dae33c9ac35232c136f60ad9baab7d5a2 SHA512 2de38a37b7f3e61effa89648acadbf220eacfda1ca7c82fb77484e45577769b724f7dbaa297e73e3d355d6b1bd5109373c3e96e4c1a13a918176162b33ea2432
+DIST either-1.11.0.crate 18973 BLAKE2B 31ece6eb44a367926b5f9ee817f6ac9d93746f5b95c95fab360361f6b3a02160c682d298d115f39615e5b4758953f3f29ece22a72fe4285875dce03483f87486 SHA512 f62a3859afdba762b004d4c766090a25d3bd81e4a14509c3bd0f39b0d433aeff997b39759f7dbc5a012bf3b680fc4510a4b2643d63dda8171bad7403554905ff
+DIST emath-0.26.2.crate 20427 BLAKE2B 63dad036d39092b85f5cb007b98ccab20bc6091478b798c3ecb6823b6a6c4e1d6533b1cbead958f547c47268d500e90724700cc9ede4d509a672afd77de46336 SHA512 a268f1cd19ae296b907a095ef2861ea8403c31d1e2af6dcfb8b4a4b8d9f42dd1c4715161b566d3b99ebdbd909cd91e91d3cd6d44e6690e581d0ab090a5523edb
+DIST emath-0.27.2.crate 22041 BLAKE2B b286f5613c6235223103e8cb13f044f78691011ec44696eaa237a6c278f426d8a33892d82120f2efba97872b9c78653b138dc0e44434455e99545c10a69dac4f SHA512 683c090187251e1dc4d95023e07cdb50d9b9cf7e0743c6de8fcc5a489a8e892c39260ad2fffa058c15a94372d6a728f05feb4c94314fbec6b77033f4b8e9334c
+DIST embed-resource-2.4.1.crate 16561 BLAKE2B 40bae940866d3bebb274f8359ddc27429b16a498caa565e432e88b291e55a5e936f9aedcd8c56f406d731c30d45376997c6cf3db27afe72f19a83c9999e451a4 SHA512 bde01d763f4440abf838a4261e9eee49280289ee97792c28a997961be95ccb5033bb00b8ee23b7598ff63dad415274e50f634cf66772f81a40194d439a560e36
+DIST embed-resource-2.4.2.crate 16553 BLAKE2B 8a69faacabda9ba6560e352229f91121348ae40358156bacb560ad135364d82059f503f46aaa323e327c5f7a39886d779e1a77a8bed5c2f24d150f07b30af33e SHA512 22e821ff36fcc39638358946972295b20020c4851f39a66329405d39ba1916453f3c0b11bd9d31f94b787d8fd8fe7800ef13a7b0207edd00934e747cf50fb0bf
+DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
+DIST encoding_rs-0.8.33.crate 1370071 BLAKE2B 0e81419086ca6e18f2aba5194b87eaba49ddf20493fd6ee09d479db86306e39dff9b23f399594afc42f1fdb33855e070beaa1871794dc0b0371c35d296a6369a SHA512 20d28a4c0ff0710f911f510be56c2bc5e7514b76d370493d2b89b7f25d1c0cd46ffa64862e54fc472f07f928a2cc24cf9d790a37751cafafc81f263705aac4bc
+DIST encoding_rs-0.8.34.crate 1378166 BLAKE2B 528692170cdb1d74ffb0b122a5aee61f50a2a7e4ce6db049ebea4a185e5c43d4ed99e515f08524053a110e061f788f861e62e0b04eb016e7a9e2678235a04577 SHA512 e23b87003814dd6e7e17924bd1f53989a5008dd1da07baa23c40d2a18dc1ab2d786d61e2c304b3f60e73be5f180ae2deea3b4499c0157b6afe3c9273d2f739f6
+DIST endi-1.1.0.crate 4872 BLAKE2B 8bbffc45ceb70777c6606714a7bb8f9b26ff33a295fd722958a5e9c556d5bb1e97a34e216514e5acaea51811d78fb4aac927c1f8315fcfd8000fda3741c53b4e SHA512 1a4b65cf77f530a2d15cfe968aecfcc9120957d23d2b442cd3d8f23d7039e832e7d6ab29aa5ad8570468421095650e26fa07f29bf75ae361416072241726c61a
+DIST enum-map-2.7.3.crate 21792 BLAKE2B 5cee4f4f5b3f29c5f73197de22a7559fd6264fbc3b146c683d93579d5d2e5e208ba0d6965a028aedb9536620b089fab81e7899a5be631217f193648f6ced32ef SHA512 cafb9346ef17ebc8940efc542d5613c32f13775a684db186f30a632daca1c17feef6e0e77ecede646fc688e1cd1b189ac0914e79c0263333a75bc50c1c6a9568
+DIST enum-map-derive-0.17.0.crate 10781 BLAKE2B df77d362cfee0cfbcd9354f65530424af9b501351544d97d5cf04c4a4fbd5f1862968bce42b719b9159892490e69c06c47d9fe1be4ecff16212e26906329e572 SHA512 270f2e9130e5c0124be707b7b4f642992768d2dde3b429cd86a192410c3618cabe24a914ffa79578f14cce72c28a55d5a44df8d66ccf3178c4c68bf4da61c065
+DIST enumflags2-0.7.9.crate 16555 BLAKE2B fc9d888285be03c9b47c6f2192467361bd4e67d41053a046508d0d431ac15b8cba69c265123a5403cdeac213d6c3ace8a94130267bd891e576b6d4cd34ffb082 SHA512 3899b6af180e239673d10cef2b02c848c79325f50dc40ce1ed07d00775d157679f1aee83b3fb79b8e432419810309d3ffd1bdde8c866aff723c2a3cc9d4c735b
+DIST enumflags2_derive-0.7.9.crate 7901 BLAKE2B e71ecdabe6c4e5ff7e01b1a820da948b000d614fb9ca6dd53c2a6dee215269d392a1e15c724ded3caae3b08dfdf796e1f61e04fc4a887956eeed8666fbf25868 SHA512 4bb89eba5b22cef199b19cd0d92605b5a11ec3738002b4fc2426c6aefbe6017f8b7156b3ac83fa7ecbb5abe54643b3456a8700ec831cf1dc27a518e621446be0
+DIST enumn-0.1.13.crate 8391 BLAKE2B fd02b908c615ae0565a78bf3d9977169be81ce1f176b45ff165c45df231d8a90601ba226aa449d52c929710ba796a08e0d81a6ab9dc59e4f6506f2096cec1492 SHA512 c0b453e3c5f37b5037d39327d239718775f2c554ff8c2f454447720b323c3452d6a04b124a5577960bde078e312f4f5d4a59ec8c269d5d0ad77c602f344db505
+DIST enumset-1.1.3.crate 26976 BLAKE2B 4e40cec8a6db10a04b598eed3aa7b9a81235ed95e433571ee4c92a699c4687a004dffb94721aafceadc4a6c68dcf08fd622385a802ad330208d55f7c0cea0436 SHA512 1fcc39050a75d73febf9f1976913872269f41916fbfe936b7ab67d7d61bd67de9ffc71a1cbf34eef92b2fdb0313b5c77ce9dc7adafae5992fbeb6fcf7b31c180
+DIST enumset_derive-0.8.1.crate 12711 BLAKE2B 752eeac1d1215a041962e3386ac95c1b8673921b76bc4ecb14acd98895f01ed3be24a95b5ac127af9f4fbacf65bb5035e60b989e3cc7d732db6015d92106ef38 SHA512 9ff87a0a5dbee945b58987f9d26200efa5e8d5c085ceda6e44ff9cc1b05bd903cdda632e459b26415e7e2195af79aa51b8e95fb9ee7917fc74a6102f220e5148
+DIST env_filter-0.1.0.crate 11553 BLAKE2B 8e358517c0aeda431239f14610925bcfd6be3bd346c7628e1818cdbaa1796bfdf2454db99cd06bc6ffdca95e7ff47c0a621d1f4c3bb50ecd1641f9d19efe4b4d SHA512 a0ab51c2b905466d23c75fd77b430dff2956556b7687ea434050c78a497cbe63018c5730be950724c0ca6aefe29bbc379ac01c8a7cd2779a69c5a03e92a21bf1
+DIST env_logger-0.11.2.crate 28310 BLAKE2B 8fcfb9a7fd96928e500b59ebe4cc86c5bddcf685a57bdb65b458e5299da3993172e207442ed3129bb6d683b39163c3456512ba4973402f0993ba2eab52c596e4 SHA512 12029a99de8eb2c5514d138869cc3242a32799bbf94932c3d8030fa8ed7cd10e9026738a9591116a2397c4875c0cb22b2c64faf120246e88a63ad420aa17e427
+DIST env_logger-0.11.3.crate 29704 BLAKE2B fd23d377d258ead87e820dd89e4175c0596b284d629563b7d04be10f80bf859d84a6e71a21d1c333a94779262608554e95bf7b44c35b3336cbedf545184ea6d1 SHA512 50df911455429a83088c87d30137fda6fc73971ffd32eb66f21e0d006bce92580c519d4a3a3fddadb7bdcce5d6dc33df853dff6373fe66f128cfd60ca26f9f02
+DIST epaint-0.26.2.crate 856811 BLAKE2B 52809849c37908c342324a7ce212cd015edde60a5af7f8b1a850bd2fdc87a92934076edff31321b2dd2df4c5560165181944464fedfe90773be6fea9034afc89 SHA512 5f69b1dc7f2cacf5d846181a3d295ecf2b1b52348183eb396cc55fd73e61fcb32923f3af238c1084134d409d5b0d916f6bdb6303860b5518a469102b3abc69a5
+DIST epaint-0.27.2.crate 859742 BLAKE2B 5247bdc719f01eb803f23c1af84090451d954110f262c611c430d8580b6cfb8f095f47184a215490de7f1b1e2c039a1641e673b330a0189c52e7c4b6393a3ded SHA512 119bf8434afd490cdd363adfede22d7ecd1b8d9eaeb23f8de28ebf2b746ed01d71842231880d6cb72690381b88878eecca6032fdc8ba9b21db445934c608de9e
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.8.crate 10645 BLAKE2B 4a7af10845f11b3d8f177a75a692be468e8ef0ee53fb84a4d212335f1499456b6739a59af260894b5c3853d3bf21ef3490d1e3a613305561203ca334a636c3b3 SHA512 29753c421c6f929760cd7565f8171696e4f70e677654a7507253f4fc495edbcf214ace27be46bdfe5c1a0d782f4b688f591476e56f4a1096471cb353c643328d
+DIST error-code-3.0.0.crate 6176 BLAKE2B 569fbc0fe97c3e9369ea751e04b5cb7e523bb00e6b2f5e7b866c4eec2e98b453b85f5efdcb4efeab8da6399cd7a9e77965896233c0cae668d0bf1514ccfe41ee SHA512 86a9c6ab7d7e229646ba193d5376bc9e705315858e3920c2cf6b284f1fa529942764b68f0a95ccb1bc92f8e2b73f4fd138654dfb03bba7e4361549aee620c908
+DIST error-code-3.2.0.crate 7569 BLAKE2B 815e83d67a1f257b4e9b3058ff849b3c37a44a0339b8a3ba175b7c3cf4794ffbc76369ddb433ec278002200702b83e32042d62e5603af5010ad4df4c9364c501 SHA512 d3a6dbfdbc1626d9502964dd4615fa5d39f8507996fe6e727bc694c1da54c1760b000d4827bca7a2190db5f04b8549c6345f262702eaca88d8b83a43649c37e2
+DIST escape8259-0.5.2.crate 5462 BLAKE2B 799d4dce6e7be45f96558ab665fa629c21a08748f953ceb34d8c5cfba2a1ec63a3fae125a27d2df9e820a8a9f53b0823f5e829f79877099ecb602818ac4c8980 SHA512 46e000a93a8ed9175807f7dc1f63787c084fe55ac6cc994aca772bce8a941fc81c1f277459af218b051952e78ab02cf9ee9b0b7a254f6c249f91e3fc2e4e9a9b
+DIST euclid-0.22.9.crate 76671 BLAKE2B 784f79bc10c04fd438007a566bca8fcf58de149d414306726a211bb822f5de62f91d6fe15d623fe36b82757d6b2426279914352555abe1bd582b64c6f196293b SHA512 19fa3756085051c86a58c4ea00cf459b43a6326c9b916e17e15160b43813dfd3edf113379dfdf5f345b7c96d294a75f1ca96f1065f5bac9e44cf340434a2dc33
+DIST event-listener-2.5.3.crate 15392 BLAKE2B c56ed5eafa64014141e869dcf952e86f755eb35ed1722f8139260cb502ba226351ed1bea301618e94c9ca7f3309747057eb5f7d7986cfcdb7f6b79d13d52b439 SHA512 ddd67c1139ffe2aba95d763b73db0e2a9985dd2e57cf8f72030047d53d46d833df4b4192730cf0af4e060ce52e4f2df23aab6509abb94a6cd02e0d8cc3559d22
+DIST event-listener-4.0.3.crate 39784 BLAKE2B 2924aa196726f3a6404536dbf494a52d266014b2097ea1f4a42e0f5d54bc2d14d6722deb4e40f1b1fb539ec12af7348275a75a9fe3e619a7f6a6a9156e0d30ac SHA512 2ed4f1624fde0643fc8eaf3275dfe77c15f936e1eeaae43d205f68d90e2a8dd3eee3b39e953a221cd19a88e8b947eabd5b8477dabaf8f30de328c0c13d132d7b
+DIST event-listener-5.0.0.crate 39954 BLAKE2B b8113780dd5b6f0dbd76b4e0c6bc540eefbd241c6948e3db58863cb0f2736188b6c11d76e261bcdff74f120aa711341d6a6daa744a9f9096cf7356a96438772c SHA512 00d4eb0cdf7da9b303b145950c27e5bd100b7149e2bb5bf4673f86fc22df00950488b974f743bbad848cea8ea84ac4708306f61940fb44a55398847a2e7d9b1f
+DIST event-listener-5.2.0.crate 40217 BLAKE2B e353e1d18f50055ccdc4b061e86f809eb0543422cf67384f8e5dff7345b409d5f5cc3b27aa6bd7370e68a35fc6e924839cbafc73381316b6f48e6102eeac68ab SHA512 fefaf5cdfcad5493fd6f76011881204252b187ad1a1c8d57c567be94c81343490ef992d28538ee47314d6890fbcd288529d776ca9c2c94ef365868d324e9a4c5
+DIST event-listener-strategy-0.4.0.crate 10225 BLAKE2B cedf057e73b7d26ce691c3a5523c7492ba6fea65393ba20ca80ed091d3c4b392c85caf5a526647886547cca22bd703b0a01aaa8d018b07731ef909bc3281243a SHA512 02e8253ce8b680d9df72b786115d8894147483c5b44d530adb600718213424b2d87c899517ddacefe73738ec9c8904d042341d4aab8076fd19876e89972061e9
+DIST event-listener-strategy-0.5.0.crate 10616 BLAKE2B 532e5e73bd6bc8071d0dcbdb13e5b9a3ef1f0930b2d0a27183a9e203b54b0aa8b526f35393147c46c334a793764c338002b00a8df9428d3a7640d713b4f2f774 SHA512 553d7dcc86a9bcca01ff67e5f60bee536d208eb61cc28de1c40d30a8e7488177b8e5e3d50523d055e64da3d9051dccc02b984788f33f8de048fd23b6e964506e
+DIST exr-1.72.0.crate 243996 BLAKE2B 53797775fef4e8cd520f4a98d390453b36f9500dbe999a631a54d906476f82a7a975bde0a369116a997db5e383c846de9a7bf4330c68ea7ec2c9e44e4856aaf0 SHA512 eeab15189ca6801d3b3748c88395de9d2a3fd970f182f70bd39ff7dbc960bd27d06191a42d1a5cb895a334787f18dd3ff31af74d223419e1845396a5f696dd1c
+DIST fastrand-1.9.0.crate 11910 BLAKE2B 570c66ec1d4ace08b9790299759e3b6f0394aca52c4ec2e02258229c198846cba7c0627807548bac3ef1f86c7e512c4bd105f1e18e35ac0ea6934f76a6838e1f SHA512 321567b5fad8552c0efc4393b1e77d1bce288b0a88c475d432f79e91b3457ee6eb5db9e4d65ac6381b9990c9916f4651b6a76250df44d51ea3e25bd8184bdc52
+DIST fastrand-2.0.1.crate 14664 BLAKE2B 7a5812153500170dcc53ca8d66384fef46eeb5a8f970be43863f22f82bf427672d07cb053f4e04b0fea358ca89178399871235680f57223b8561c07b8d21cf13 SHA512 79a1e1b3f39264f037def236afbd87b732f5e0a2154b1d9e721b3c7990c52be45138320e2571fe628f482e0da7e3cf867abb745e3c277b19015fc031fd4410d9
+DIST fastrand-2.0.2.crate 14674 BLAKE2B ea23f52d745f4fcfd4ec911d48d77c60da837f57942994b17458daac7cae38953cf679459908d68e5f393d03a90cd6eddba23d2a86c2bc11ebfeed0bb41fe4dd SHA512 3ef9c21e4928071619adbad6421165ea82feb04c26ee18893b172f9f8a510b9a2097257ae31647a907680412b68d6662eff13cb27649ed9f5e68c374619701cf
+DIST fdeflate-0.3.4.crate 25001 BLAKE2B 69bffdb689dc467bd62738299ea17295bf7dd9d51c78b17e1ef6eee265056308703646791676c44430a686e1d713a8f561c5db972de7ab7c5e7b21050cad70f8 SHA512 a38b493eba656beb97275faf5a2f32c8a2c2cb12c5d5c280d37bbcf1406fe404151fd6312ec496aafdce802ef08745a6927e571890f9b290010ca5ac45ac9bdf
+DIST filetime-0.2.23.crate 14942 BLAKE2B e4d2d9c11745dfa5592903f3c3c6a9871292a02f9862607b610ead7562b5d1fc3b64d37e779cad0630bde8012efda72d86af5e687cd2ef5d3627d8a89bca517c SHA512 8d5ac82482758577d1d0669abbe7b880efc44958687bba745c9ee4a5c16bddb44ec0fbe9c29cf424e7120905f3c3da607f3a7ca1e50287154c0475ddf2148bf3
+DIST fixedbitset-0.4.2.crate 15954 BLAKE2B 91270883db5ad0e999ebbca1123d8729d3040eb936034ab8da3cda72a830e45fcb977b3fe3c2b94e870c1fbc366ee8602357bb77e8b9a40cc41a04afad1b266b SHA512 57c5d756b0a202b2506270f0d5e890f7617a1e0c015b6059ea23fab49cf7af47fd06927eb56feb03b37cb2b6c467e326b3f0da1e32cfcb6339cf11a130a3ccab
+DIST flate2-1.0.28.crate 73690 BLAKE2B c9f141bde0eda6b9c42da0a3ed69322c12c6c29bc522131f51ad56f6e2758646aa5585382407409257a8301f5f07a1825d150838bbb55822f2d49037f6279aa8 SHA512 9db6f3ddc4e1e91960b07c08712beabd911b297d93db8be3ecb97a392a4262e608c75ed8e9e34d87d58c3e67d1b7987734e14ab3d45fd837a2767e8016380284
+DIST float-cmp-0.9.0.crate 10102 BLAKE2B 46bce5f7e838a947bbbdd22b085435e795b67fd23479780f65bf1586a70e7a35f04f9af086be98bff24e2583eeac7c9688727a2ddbd1ce978526dc01abf67dfd SHA512 f8dad12ecf8a278769054fd78794999dae8dedbcfde5e77bdf6cea12fdeaadeeb2f1f3ca62df9aadc1bc3f61457236c4854d6d6923ad6d03ae7f23af600572e8
+DIST float_next_after-1.0.0.crate 6965 BLAKE2B f13aea22ad07b4f7518e5802ed84838ba8250eaf73354b3144d69c41fd7a2ff378e182139a36e73d6b4a9228aff8a9b720f72d078278ba472f6abba0b1690c1d SHA512 72e5b919c60a66450625603ee739aa17dede02eea34aa75e0ccf4ac07c1f4f3388c28ad7652627b70e0366b046ac3d09ae7611d8c5225527abb952fe5c59f546
+DIST fluent-0.16.0.crate 8321 BLAKE2B 1e91c434d1e006cc0c8939ec5435f55af5226d4a88660c91db2dc7e3c7ad7804786d5f6a1c20185bc54caba9781f601e82c0d7f3399af91dcbb9d0a5b2229995 SHA512 b38bc79635f843e1bbf2abbeba9ac99fd5c3b702cd1699f1424e7ceeba07a548cd3846b4886b9472c7f5bff52dde652acb8a17760c677c5246a235e0f02ff418
+DIST fluent-bundle-0.15.2.crate 32239 BLAKE2B 43cc9f0399c43391256ba76bc1231cd5346d13eddf21b5db1246a5821e61416912c8aaa2e35bb19e2b1220dbc96c3515abee0dda0a58ab9ad9f579270a2385b1 SHA512 95da35b5ef98b79cc37408f92e6fec38e27975d4e447e96d01843d3b08a3c7bf730984eb59690ca9bbef6c24efb1b003367aea22e2f76074dd0192066ecd8d67
+DIST fluent-langneg-0.13.0.crate 11723 BLAKE2B bfa4ec1a3a11360d28b5291e8eed2628ca6007b8afca726ded87d630394773835b3c8aaf818376a93a60de10feab25d7784c8d2b1e34e63b660d581a37d9626d SHA512 397d0a4f3508c7f58105dbb9ef7a32c5c4ebe4a73d80d2a19930479bee325839485c8002b49fb8c55d686ec9f3ed1d26493b56825b65d60ef7fba78a1442f9d5
+DIST fluent-syntax-0.11.0.crate 28524 BLAKE2B ff5762a9feb333aadac587296401d6386c327f93525a9b2243df34f7dc4532cd37a66d865660c7a6b0e775a6cc0e5454ec92808ca7236bf0265314a5be151989 SHA512 cd6157ed27735fe319b115e555760832ee29d5887d8a1a9932a47e880c97f927304320c7ced54b30984c65acfd5ce1b9dc659a8e27b4976330cb803d07f64289
+DIST fluent-template-macros-0.8.0.crate 3710 BLAKE2B ae0ebe8834bfe2c6617e8d7d4635b18f4387d569cd259e907698c1064e4f6c6d6b0b28718e1d91f946dcfe7960349523bfb0eadd8e2633fe7d9b1e0fd65cfda1 SHA512 caeec2323848e5b84cc3876c4cd0d24c13cfe9532e4c93005c03bcdf33a292cb8cd1f0af5e680b5a98a2835430c46a4ef9315de3a95f7c23154ba70c2569d986
+DIST fluent-template-macros-0.9.1.crate 4548 BLAKE2B 4bb8ee526c0614926f1a4294a02644ee13e1c180995c79dbcb6cdbad6d2036b96f895d2c0ccf78ae35f266348a09a6bf80856c07680fba37e3fa594564d35880 SHA512 388df550a2bf8f7b5fdf3ea0a65dcaf04e54e8ea6af7dbe064c39b98efb27028905a6c285577b394ac6f62dbe60c4d69d862c1e3fe7ac609b886e0614fa1585f
+DIST fluent-template-macros-0.9.2.crate 4601 BLAKE2B 59dea2cdd7c7aa8bf86606d20deb70c70aa6647f4eea2e64bfbf57955629c0fa38481519eabeb0cde813fed62b990c66a643a16eedea4fa336c69decaeaf6c9a SHA512 f94218b01d9e45b6d5fa5a754c2a7cdfbedc7127c2ee4e841594e77eab2fc095efb65c2528cf022727c125837436d4b7b820b56c0ae3c8d236d9c994a55a3a20
+DIST fluent-templates-0.8.0.crate 20385 BLAKE2B 050ff89d4cf64ede28ee00016178d9bd8527f7515855e54dc14a4140fa0b1163bdc97bafaa2008e1b110fae90ec594d6331ec1b2a0ee1a4b298b8dc216f86be8 SHA512 6dde59bc9cab57aa5db1ad2dc22ad6d73f89f9e71ec0480b3c7f53a79fdcfaa915744f6f23931d2a770440547c178970c880481dacf11778b113051a22c57257
+DIST fluent-templates-0.9.1.crate 23210 BLAKE2B 2fd8824872ae856d3ae872af0b5e53a2d4c007850b1a00387dc2bd198529f890f9f1e1cbf85e4ef80206019000d422afa06db69029b4e2cd0c8f9e970554d3e9 SHA512 496d216b276bd4095f6d2ec98b99922c912e6fc53f159f63027e1ddea7e6cbbdec256c4e7bc77e9f0bc2d700791414205515b124f474f37dad5c22e815157f17
+DIST fluent-templates-0.9.2.crate 23195 BLAKE2B 87235080c46bd6aa8f8846ad74be1d800e91d87ece482453e26521eff51ea7ba58fc12455f897f5aebe4cc736ed4c61192e5f37036faf099294d83d4ae044b30 SHA512 ff2a9c3edc9216baf51998764e5ea7c5952b26f1eb2b308e6ba774fce0cb80cd9787492ef7d9ed38c78c8deb9dc5c3fb8b4d772d6acf07af6b3ee3b409da8da2
+DIST flume-0.10.14.crate 65389 BLAKE2B c88deea78a5713728a6b6a94a4aaef570f6eee1af85fc489534d7b336a9ec9cfdd76890929a456a689ac196bef24cee68efadb30e06ad585063c5bb77fb2699f SHA512 ad31351031683453b77d85a89812304d63a12cce8bbd31dfaa508091cec52bc511739d4d13a085aa8bf9f2438fc1876a99f2e4ab2602bdbfe0d2ebb1df4eab0f
+DIST flume-0.11.0.crate 67502 BLAKE2B aadebeda44f899b6290df4ccddfc0fc49c4e55709243e9b1eb26b6a232aee042d2260c9b504d554551be54ad4e4ae1b1dc6ee861fee0cbb6eb92fbebb5a7d9ad SHA512 29e499f3de970d2d400c3826e912a49a01408dae8d933068dc94576cb0c2ca0e42ec4a9ebeffd17a20f56869f09eec04a2b90a335bfaa6462b8df474b2a49fcd
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST fontconfig-parser-0.5.6.crate 39300 BLAKE2B d919f290d09bcfd37b790c03b301dead637543082952339394504b6de9eec2baa27fb79d08cd782b318bd8662df100e40284e929940aec94be551de332d886b4 SHA512 8d58fa2db0d6444025841d460ef3703ed1ff4bab9a7399df9830b8c13155633932e90684530ceb85a6d0803bf8a15f1647650158e5b8aa6288e4300b5201319d
+DIST fontdb-0.16.1.crate 107360 BLAKE2B 34e172ddba9793c2b1ddb5c9de69f71ebbc77e59b2a2efb253b17a2c72a9dd131518bee3e94c9904b547ca60b49062d66f75a1f825fe088a89708ecf0b1c34ee SHA512 77d7eaea09103852c5e9de0b30f36602d62fa3209b4c2583611d5c0abc4db7448db3d350a3c8153c2c803548d2ffdc34216474ac8ecf733c274d1cd6b2886193
+DIST fontdb-0.16.2.crate 107447 BLAKE2B 3ad1710274f57bce123e6c9b3c449b7be273955e15da33cead1597dc229bb174dbe7d89d7413f28f7431127a1899d30fad01354f1ea41940fd82bcca7d7a1713 SHA512 7e18eabeb967cf5d2149362c8fd45dc809e8f4b2f0cb2f9753cae1b633dec1e2fa371905bb83ff140851f30d9bb824749a8fb23f90e8d528c24754df3872ea54
+DIST foreign-types-0.5.0.crate 7824 BLAKE2B 01a5111a11e48462914f9877d3228008590093633e957883fdafd3a7017e144c14fbbe713bb8b0061ebae78d20a49978191ce416a4e28317b67ec69e38acb879 SHA512 d07c92cf99c99419a3ebe05ba9154e396ab88116f46af736ffdd958c8e47741bca5d9f478f6719d5361360e844375968c1cbf6ac40995d47128a5e5fda3f6c82
+DIST foreign-types-macros-0.2.3.crate 7635 BLAKE2B ee89f576f2d892209c0f344dcab9dd85a671c976c8034b33dc984b93a5c872ff0353311657fa1dafc499243e55d3293a7bfc532ba55894a719a50ddaa6957589 SHA512 c3965e058d15159f789a8ab1597770ff6325e8ac9e6914c98450225ce27af849698646d53326e07b13eb3a9730452d926b73fd76e5a1fbd8ae4a6083bdce3367
+DIST foreign-types-shared-0.3.1.crate 6006 BLAKE2B 27c26518e0de0a298df2996da4959727dcc6a21bb4efa6c28869a9affe7ee3b427d1bae25ed6928477d07959bd143d5d4fa27325f8f5a5cb0ddd3cdb9e5314df SHA512 c68da34b55230941d6655f6a52d5dcb8ee02149f25c25a5ef782402f9a18b33047905f28b70183a5f45b45977c011a5320cf7283b7901c76ede4d82082ca4c9e
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST futures-0.3.30.crate 53828 BLAKE2B 4e595639500f7147ceb994359ef1656ed096ea679409a5721c05ff84ba439fe4e82563a7cf8dca9aed4cd16b03e89ba1385b0a34feed9d4923871225e131b91e SHA512 98fc67bf1047609c8bb0763c00ab9cb39b6a6d0cb7d993bce4966ddc2492a6578b789e98095981b207ddd73ac4b1dfcd5224b352a0e970eed347537c6fbea43e
+DIST futures-channel-0.3.30.crate 31736 BLAKE2B 57461dbb723fd53daa07b2fe6164125508cc3901e0138d2a60da5c814ade415a3611baa45c71487f1853812282ef358c132785ff40c630408e8544d57eee3483 SHA512 689531748821529c528772a6dd0f27362078ff5803d2e0b431ee5a0ecf8787b5a15262d65d52f48486ded46b88f7a9c477ad95cc2c5a3e8f5f9b9f53f367832c
+DIST futures-core-0.3.30.crate 14071 BLAKE2B 76a9fa5aedd0d4ae8dd9db9639839b6b342125759c1b9f9bbf58aacb4ecca316ff1f24ff8f3c15f559ffbf974e4c2cd02a5418cb4c4d7612dac8449c8234eeb8 SHA512 3c7259ddacbe02e47a84178b75e5f13523bd0c8f8bc0b2375f7ecca60b7075695ee0a5cc4e1c1de26665cf250271173be803661e2f2f53e2a3b96380a8efe7c4
+DIST futures-executor-0.3.30.crate 17744 BLAKE2B 927abec40eab31251409149179baa95a8d025f9cdb848afa83f95439c4768abbf6da8e2163291a086ea0b83b0b650d1e19cb8e15f70369b70efdc70eb3121f6b SHA512 fa65c038e5eeee695b2673cd65cf7529713bef47da373290595b554bc287267ee5cd015ddeda5a22169cc8828717987364584a91a69685cdbfc0fc779abd764f
+DIST futures-io-0.3.30.crate 8910 BLAKE2B c9af4290f45a9fd0839e107fbdfa4abff4f9077ff45b61054670419076f1c4508d7d560d4d86f8cd7ce146e436e531b9f5e0abfed2c4f2406c57be209cfdd498 SHA512 077acf5eab1101917b5b4b4b83347d30d533110d9a34c2de6db1411ffae0f0530f457033c5a5c14249119e89375c9f12127790b46e486dcd003a12a6fad48bc2
+DIST futures-lite-1.13.0.crate 37058 BLAKE2B e1151b6263adfc96494ced26c377eb6582c4529f1c6347c1f920623400d317f6466d11e03c1ed70dd4172c57340b13b1fb1cfceedf430e3b95879bfa120d8e59 SHA512 2c007c62294c86108eba30a850a341e8fb369892bcbacfcd4b7ca39f949bc9a20624c3bb21630706d8240e27dcc402cec542480dbae8867ff933375e4be15fef
+DIST futures-lite-2.2.0.crate 38029 BLAKE2B a66919e5fe30a9b44af7363c5550fe8f91735c37ad8bbe2d65a3d3a6c8aca9ea1fc6291a5602e68dfe5ec1e0c3376c64c02fb33d485fd817850f1c7132362e00 SHA512 f507b58537c5ec48ba22d61415fde260ef9393ca4151d2d47b9ecebb5f736d8e1f0f838e0f133b051ef8bee5c32b4c5fdcbc4c4deeaffb35dc3a48f92802ae90
+DIST futures-lite-2.3.0.crate 39181 BLAKE2B 0e4c510d7b640efc6ca8e8b00f4cd51b05b727ce5d25d76e317fd5aec2f515d3b1dac57e4058c323fdd0c5d125ebc4073a9ab1f2ee21aee0e5aa0f9bf2e049ac SHA512 057de40b58d5ae06104c480a0e20a0ee4a962a93af615b04a9a34cd08135359c1f49f1b61577f15277fa73e9b7a93d2a659d3203b490ca4295b88fde2316bc7f
+DIST futures-macro-0.3.30.crate 11278 BLAKE2B 6311039db4bd31242e4f45bb7c581bec28eec9da850c47ffd9235c4baef5e5f1c72155f49573b2dc942a9cf246949b79c7d35200d04f91a13b0205cbd33d96c0 SHA512 220b5cc61c744617479d7e8ef9888785a17b9bc26c517c9c4445a39e8be21f111f77e53bfb3d143df18dfde23feccee17e349a84b897eb4d86f94d7ae4f714cc
+DIST futures-sink-0.3.30.crate 7852 BLAKE2B dc768e4ec4c9f9dfb22a20c1c977401d859072b9222e6f77978332f495cbd0f764b175a679c9d7c77028d7b56cda5e2d86188ee979c7f323187defa6a0485ce3 SHA512 1c198da8f4118d9a9ab2b597e3f7b4e1ac7094dfa547bb81f3c4148c45216ef55b309255849174a517ebddba6c874283425f1df6e56e2ba5150af091bacf46a3
+DIST futures-task-0.3.30.crate 11126 BLAKE2B c2ded9b9b709fc10c44cfeaa72d4e7477e43331b14f3e72433b25126fef93f2812a09b4fdc3c246b7379d41d3764ba17fa87c3e9c131095864cbb5f54771a204 SHA512 c190fa0acf7ff15fa67fe172911cfae803b2a8c08168570a5518a40767d08134f147259a413ab25c45cac5dbf2f601a9753c77ab0eb2c180cad2fe48cfe3867d
+DIST futures-util-0.3.30.crate 159977 BLAKE2B 9012edf76336952dab02cb61db48dfc74b6cfc17c137c36372709e8d575b306a4d7c4da89328067c9482a645aceb7b44ef57deb21a0c25964a5515e738a039d0 SHA512 7faae5aa35641d858d0f5430e4a69acd4ba9037852ad73c5a890bffeed411d28820883e18bad4ca8f7b0a765f9f4c5dbeaf5d0cfaaf90c2c69846434ae091951
+DIST gc-arena-0.5.0.crate 39122 BLAKE2B 729bba3b8ba18a644f826c943bfc2a94c7b0a401ab1bb46604e00f62e099c3a13b710b9836d6bc554cd1b44e3be99da4aec428f4885f1053f54c43f38fa47ac2 SHA512 a8d1eec4d9f9a6234b92a0b46b93d16d1636fe6fd3ccb8b3b6e6eb7543086c05357d7b6a745727fb618d153d7385d4e1a5ccc37aeddf18d6ab29cce56cdc3b85
+DIST gc-arena-derive-0.5.0.crate 6933 BLAKE2B 44780fbb252cb86f1b368d3cfd5eab766e52d34c1c8333aaa39bd88b01c62e0eb4fa3cdf747387fc7e38e23281dceed60263ecd5568e7760da443da4a9634f0c SHA512 55371df8997ec6dfdf11dac4eab5a1c1debb41c7ca9f61c7326831249f14e26596a26e218bb0d76545952e05270d347363438f5c2d7dd7c07ceca8373c6189d1
+DIST gdk-pixbuf-sys-0.18.0.crate 9674 BLAKE2B f9c224988cc2d46181a5d3dde212988785c5cd8fd411ca5d4a55156307ee5895465c5185d761b246a7ebfff81a60ef7c5973ecbe5704b5e0ad77ec72b55025e2 SHA512 ef757be6df8f6ffbe8a0276ccac2b3d4c46b7acc6580876635a10b6782d5afb9ae6e8b11c7dccb0933b6d8767c57bc89b0ab117470f33b73f7a4a141f44fb121
+DIST gdk-sys-0.18.0.crate 73250 BLAKE2B 3a4d1f0524067818be6f48e1bebed35e527f06b7ec0a454d471748a3913dfec1ef5bee8d83855e2236758da5c0574ec385339f699d671361de0ea5da8100c494 SHA512 27820ce9dbe87157785c7a31b9d1b79280e9e4a8fe4bd6027fe661d188a714de7f951694bc42b4ac5e8cef4fadc6f36e1329bdc5a2bf83f2830437cbbd9ec6c0
+DIST generational-arena-0.2.9.crate 21409 BLAKE2B 3c8e0e63f2e91a68676a88547032806200484f5ca08d5790e25dbb0215e6812535a9c65e105af5b53e61b47923de1631847bb5be02b87a4e62b845d13eb8df32 SHA512 f729ac873edebc1ad8e28e6e21d76db8ef1cf785092f2bfdbbfe5eb34955f96fde323ccbc95f5bdc9a86cd7aa870b3e88cb22cf9f0854705b4c067a4dbc1896b
+DIST generator-0.7.5.crate 29947 BLAKE2B d6c68ecaa48f30e3657bab1315228194c679e6bdf71cf7ea28273ac20aa34ba416309d6253ac19cb5e940e7c058eed39eff1c0a5594103389136d10148bd1338 SHA512 fb634f5fa252acc3d22ff925cfc06f02c4c82c64c567c98fde9040b457b8248a6199d0ccbdf27d759e75134318c0bc1a9d9cb351af4edf5332cc184c90c89d3e
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST gethostname-0.4.3.crate 9336 BLAKE2B 12be5fdca0b6e3788cf3d67a4a80f283d240611b4fd37b6d1c37eb2503e4a7025b17bbb70adf421ac840d8f952434bdedf4691f31362780a267e21e8c4d3a006 SHA512 8c5dc404132f2ecf9bf82d8b89cbd698b4cb6d43141c47a60b95401da2e8c314347ab0a0ad5fba50cf98f01a621faa68293cb78f48977d3ddfe6e6f21926abf7
+DIST getrandom-0.2.12.crate 36163 BLAKE2B 0afef8504932ea0ea051cde1d14bd5b79edde68d6ebae6fe88fa4aaa532605a16f466d0d9c0d0aa619eaa105600b6d5ee4e191865a3fa041549a78f78ca82396 SHA512 dd97d7dae1a7ba653abdaf2db719e1a9c8eb721b08b4af0f1c45b1ed5079069d1b57e4f6d9d879e7fae3a890763f4b6aea9bc2d945392b98e811e7b348589bee
+DIST getrandom-0.2.14.crate 37307 BLAKE2B 5904388869335ea904d950ee83ad1867a0d3f6831b7139102b53f4bb4a2c12371c9396f1f1cbcc44e3ce69a4ea316651b1674722071bfa7562385ad4b6a88c33 SHA512 6c334415e09f570e3123e3c6c6eed1727533ac6c9c4142e16ae995c237a16effe146832a891be9fdde4335bd02b454e0fdd9160f20dc02f107ad106756221658
+DIST gif-0.12.0.crate 634734 BLAKE2B 067baacc4a10ad1d992aadecb578034bc820ff2470eb2fe1b63212584ae1f73fb6febe3652a309a3931fc6fc6823533af2c3d567414925118c5086970a09bdf3 SHA512 9cee5c4f68b02252f6214fccabda29087c89cadd8408df4fb6b9479da7958a9759dfc4b13ad2bc7e1447be9050cea6d3757d891b774a7e6fe8c6fd25bca3b74a
+DIST gif-0.13.1.crate 36408 BLAKE2B f2544552c177a4e33440b05a949f6b205d3dda1afcb7e6574c92ed9d31cdb3bf536e1914186730bd8777e1c10d86466dffbee34d975884f0125a1dfcce937bda SHA512 7e76ee111c6a94763c4dfe01faf4cb0b5272d5041e2b2b8f4db666debf647e192b963c6fb3228cdde28e1d112830c2aa31eaf0551d712ea9963e41e47e26fb26
+DIST gilrs-0.10.6.crate 127891 BLAKE2B c1e5cd7002eb3d88e27cb814fb73c3fbb7baa2b1ea20d2b89d0e58385869350c6003660a1510a37e2fac99e8e692683561f89601f253f9f260a64c9591924aa2 SHA512 62a6e035f0d438f5c17ad72678c9ffd13bca9fe095ff3fcd563ce1340eeba35eeb1e9ebee329de697fd7ee6e15373ef54b35cedc3de4e9ac3eca62e4d44ca50c
+DIST gilrs-core-0.5.11.crate 47123 BLAKE2B 55cc7668cea1cfe5f0a558ed5a9524dff2ba23099c48b05b7f02e8f20af9b2d4776c33debeae75cd7bd747404db6aaa40120778bda161aae9c0532997944b10a SHA512 cc5c96270e246e1b4e94a7b1d613d263607d02638fc7baebcccc990000a35fe52901b3c348c9ff657b97ae5c74b8ff744f64ac93abe1697ab869506f05aead95
+DIST gimli-0.28.1.crate 270497 BLAKE2B 4089e0f871295d464e548610ab5f0c2fd863825416109cf58ca827e482897f00eab23b795295758f1e3af16167b52c77c91df6f707f1f445984a6c4bcd68c6ef SHA512 695e46471fc07813dc4a47744458729b097f6efbfceeb57eb3db4165654e99bebb98dde2d73230b90bb5dd7c0ca0c6e77c7c3dc6f2abf70058b830a2fb386d25
+DIST gio-sys-0.18.1.crate 81369 BLAKE2B 40b7425735f49cab5748130a3edde01713472cb75c2e3f1612ac1699ff2488abcd17addc8b9de1704328f7656e660f90cf33502f8567c22565f15d9f80aa4079 SHA512 f02e9766754d48407e955fc81bb27820a357a1f6cf7b1e89464c0399cd39d4adfb8586d7d7a2a12e98792fcf6e4fe2807816185824967906d45ff936ba3d911c
+DIST gl_generator-0.14.0.crate 22330 BLAKE2B d2e84bf81e7c4e2869c3e23872bd86466ede80d6fdbdadaddafb1ae9ab45672613cfda319b15720c35fc26ab103ba106a997ea6f5d4654bc9db19fb86f20d765 SHA512 98779d525a042b47ac373340c6fd2e019a670a5bce643128ae2cde2021c0bc8b2253064819c2b0ff444e62bfb3679dc70f11f268c660050cc891063ed6b45fd0
+DIST glib-sys-0.18.1.crate 60464 BLAKE2B a68df8198874339988cb60ff45b9904607a7852d224e5efa487f22f3bda8d3eb54f7e30f6e2c30bb20dd6e5d48c205b65b7f8c3787915d3a436666d6fbfb797c SHA512 46583979de6d58cb863e522f9f11f9fd2e16ed5d1ec098f9f9511a7a124029671107beba01d5a19dcb082e57c53a2714ad3f75b0ae47c65985c2ab947d3f2c15
+DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b
+DIST globset-0.4.14.crate 25090 BLAKE2B 2c3e6f8384a066ebfa1f36bf03125b5eae79329255674e32c58963451d4b342ada10f17524232a953bee133b3c77b678a141543759ebc622b5fd659fe55622ae SHA512 e83e4f5e42a97609e2579b09f49c2cb0a76a94e7e2975c5871f2c5af5d3b809736e0a7b220404c582f4a0c7eebdbfad6cb432e89b26401b58f2b253f8c0151bc
+DIST gloo-net-0.5.0.crate 18586 BLAKE2B 8fb6ee702f468cbfb77ba40437f99f2a4c992f4d9787e79db463eee4d3810282569ad3ac0672a04ebefea012cfaf52c93b57220207a1af5b86c287d8de89a1b0 SHA512 9f00e686b0ba473b264752591cdc7bbc609fd998b36e98fd7ecfb09f4c3910050112cf7e2758b4d1dfd990ec2950076e5984ce0ac9d011b7852882b0ac42b557
+DIST gloo-utils-0.2.0.crate 5103 BLAKE2B 2ade2182cc7abd8bff18584a6a22efd185dc3d687461e9ecae86d669e21c007833a2b71320bf71b41d950ebfa23c433792ec140b6f373dab61c236c5f884abf0 SHA512 ffab533a4d05c62ac8096e500608a0e2c28760672afd69cb990b17c978f83db890e7db1175c13fd7ccba365b9363eb704c0b9387d04b8e2522e6f97dbf1cccac
+DIST glow-0.13.1.crate 150940 BLAKE2B 30916c62bf166cc5aa07cf2bf7f91b80d3580f0e7d16d43d77e185dd1fab17c96d1a20e7a018725e6822c2910776d27e57bd52677886461cd22b5083b9a605ec SHA512 2a7975f049fa7292dcb15a6f7d6141aac59a316f97a21c4ee65a6cf91594f8340b74a3e3135903be4dae51e6ec73892270531f0f76140dcc1534a93bfc46c49f
+DIST glutin_wgl_sys-0.5.0.crate 5469 BLAKE2B 853aeadd1e7a775deb075116d08efc0b17e7032e6a41bcfbc4ea87cd3c466596f083042e3b213f1e33afa4bb106ade7a64f346311c0c1cf6d228820859887a5d SHA512 a8f44456b66a95627f7d0fe3b8a79270368b11343a9f34feeae5675af0e0fc1629b5ccb00e8cddae21ae8e71f61028567d806796595fb94e02b31dc1db03d521
+DIST gobject-sys-0.18.0.crate 18699 BLAKE2B c5578c791f40ebece8210473bb363174ebf6d41db6a7ce64f4a86a2ab5337c45c5b10ff9093712a846cd2cd9bec99e135b4db556a4d18d6d4758a1a66aac08ed SHA512 7b274a6a4c4f38a4c1a5abf6410151d5ecd669c9a2c3ca874faadb0cf31c94b000c7439e1c1d409cf66ba41d8157dc9bd931de5bac58e50bc2ea9cbab13b3f00
+DIST gpu-alloc-0.6.0.crate 19649 BLAKE2B 47fbe3b604b4ffdd2e44d2298e969117688378ef5ed32aaf698106cc06f9973caefbad0cf7ee7a4e75a5602bae9ac0eb3b0661ceaaa82ec1c0d08184d0880ea8 SHA512 b0d19c68c3d122b89dde988d2df53798ba7f3cc9475698eddb0bd116a55509610a9e4edeea81ffd501b3e0a3d50a656161b6f3eabadc7a14e46578f9f5230314
+DIST gpu-alloc-types-0.3.0.crate 4128 BLAKE2B 3f14d804b0d02cd8b2a3532412085db3b6e78a500c9629e3908ab1ac7787d8b807cfc88c8b98bba8b9aea0635787e3d6cdc65d2f565047c6ec74a90ed74002e3 SHA512 9b9f7e81269070269c592c3ded750e0507bf56e1062708ae0f3784fdffa86786f15fd647b07a5d9a4d8c83d5bc277f4062711a5af99e88604e0a0b5d708534e4
+DIST gpu-allocator-0.25.0.crate 44341 BLAKE2B ebc71ad9ce8178c07dd86c5b0db68177809b60d63d8c7094b23a0bbdbbd0c43b50c85a967ff6ba8802e87dfc11d8b2a526c096454dab34931d2135ce9578205a SHA512 b311f10c39cf01afa6d196b3557f3d1193c110ec3d4d8195b55c84eadd9e34a75c1b2fb72e79106d19b3399bb917b5d46dedf73ce3be049db918de4db9fe9f7d
+DIST gpu-descriptor-0.2.4.crate 6641 BLAKE2B e80259593e7768e96829e262f1cdcee69fad3e5ba635e61e83d40d1c43e3d50db4f88c7fd0ce70160e65b60f220cafea290bfe286e16267c72dede48dd7cd8e9 SHA512 f68c75425ea5c675a61f7dc0ef23a9b38772acafe6eab15d5a1f74f2c41a5aaf3433f685dad31810df2c82cbaf8ea2b0b15c272fbde38e0d9a02629861e8a83f
+DIST gpu-descriptor-types-0.1.2.crate 1928 BLAKE2B 5f36337952eccc0d564d9342932235d26cc01c5234a7ee6f01525cec10236e59b6c039e81c595e3252e5ddfce246c877aaa8af928f6965d4e07b67694df5f7fa SHA512 570308c4f788abeaa0de6df121b8111b73c7c9f81661968a9b3fb40d2ab1f593ac89711407a91693b05ae0a8189b741030b7b8154a5dbbb2e6b3aa794c5d015e
+DIST gtk-sys-0.18.0.crate 137104 BLAKE2B 6c77b87f9dcbcbb61bf193a03f8af382ac68a185152e07a33061dfdcb8bed41390861ea07623300677879dc246f7ef611a51637e7f01b6847d17f867cd7e4c88 SHA512 ff51215d62f45685e3165c86d79dde2fa267068bc82495dade45175f8922b427cee90570c5b972c3897bf76125210c0187838ff764bb314ac79397493c277d4d
+DIST h2-0.4.4.crate 168905 BLAKE2B aa71ad20ac387054449bce337d9097822d583c5daf7bc3f703f1a8dd204cd616f0f690ca39eb5e3b623b5694ca9c5c070f829d461a1f6fef0b94882b142806e6 SHA512 469ea1d854a70fa8a0510437626b0e0b2fb5409c6eefb0f5a89be5cf24d9082654be6cecba3d817a19604e8778deca6fb10762bb29e0d1bfcf8548031e3ef4e5
+DIST h263-rs-16700664e2b3334f0a930f99af86011aebee14cc.gh.tar.gz 89840 BLAKE2B badfd0134b5af25c3e20b5b785fc717ac6fca399fe7c82a5edc50391973f01e0843731119a0dd48c72488d1f96622bb9d6e1b796151ae58cf9c133ea538af22d SHA512 88aaa8c0dababf9a74d0631d53139126457675c4720bad1da8609c3510a28fd478ffe70036f05443ef01b9afc100edcad68c09dce58836b9ece3aec8e82b77f6
+DIST h263-rs-5c8d9d7d86f62b70ca484df006a75a9c8ff1985c.gh.tar.gz 89864 BLAKE2B fc2f799c7b72b4e039615ec1cc608a45c5f06c5b65c5acfe971f2fece9278094316557e4bc19af7472eaed25057a4ecc7cc0c1d5ffa1a3662b361645c7c8b083 SHA512 43cc6b5b0ba97e086f7ab22a100b4527ae6af095dfa1f9694222414210c989fc80a0001a632074b7a1e9424a7a8b3e34071e0efcb1be02e73be30de8b61f6cb4
+DIST half-2.3.1.crate 50257 BLAKE2B 073192254d98ea786b450eb4e29d36c3a661ee2ac6e57b8f303a7da483ac60451de59a91fb4d4be3fab23ceb109674416162f8224d3e9bc05883e4f998182225 SHA512 b29acbca7b8f8fed6392346d03c710dad0f51cb2e358e7ea74a3aad4e10ffd22edb4154a56f877adc375da831a7597b51f7049335c0781a1b1110103e5eafc35
+DIST hashbrown-0.13.2.crate 105265 BLAKE2B e9ff7e6e753166ab3051a834df6f2da81a19ac6997ba269ab13a65e0abb9ce00839311785aefb451553284ad5ef3a0cda925dc2bc188d2a138a78578e530969c SHA512 21dae7a283326d21e16bb32ae0dd1481c4936939a32a06478a3351c2dec97941be532437b808e99ac40e7900a75433fe0efbd852158659a682461245e19d0e70
+DIST hashbrown-0.14.3.crate 141425 BLAKE2B 23c63a99c6c6b7a6b9b9e8bbbc7f1e342e1eb9d7582fc9eb408d3eec50c99f34502d450170bcfef4da7f2b1e743e1d1619875ec879e4753dffcb84f3c10dc3b2 SHA512 4d344e5c89ce58e04668b80ef10e4e110a3a5daf4d610c52d980577795d0e2050c7d0b151d8ba97128117665e27b92ab0300f85b88bd6e1de943c62d49249356
+DIST hassle-rs-0.11.0.crate 27178 BLAKE2B 5af929f5989f5522fc04aa27631b24dc53aac842a238d2c7e3a5f45221ab56a0725578cf3bde1b070b88a3d151ee6522e914318fcaeb0317c0da9d2cd74d082f SHA512 b4eeed4e47236cfb88087b1b6e4d2ad7c93acd90e55ef4c1b039d3798b3a7c6f81238200c15948e42be69010a7bfc24bc20f309dedd90625160a5a50f35e0930
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hermit-abi-0.3.6.crate 14884 BLAKE2B e46434195f0cd710ad215bb740ae5a012a1cd9d9286f43b5922a90ded832d02f82812790a1682ca5211fd22998a86cf9a03d267d71c69fd302a0e3f0c9c55816 SHA512 ab920f843f7061949322597ccc3b6c64f2cd9be106deb71bade5848c379e0964892fe154ab89eda93d767298ad44db7c66604e6e0c065a8921089d873940e66d
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
+DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
+DIST hexf-parse-0.2.1.crate 4662 BLAKE2B e1b6bfef243b07305d7a8f08c8dbdafb67dc50c284ae70ee7032ee8bdc4e72928b6f45344613db63bbaea49d883f0f54e1c09235fb951c1a65755946c557ff55 SHA512 76e64d95121b0c3cd534a0005df0933bf6430f50969ba7a72f6a8261c9b7830c00a65b9286315cf78dca4a23c02bddf75488004630ca9839cc371c43efc8cade
+DIST hmac-0.12.1.crate 42657 BLAKE2B 5d432a666dbcf9077a98e1f8a4aaa3afc88f3d88553cf7a2356d117c66f38efafe686c148598ad67ae89d64ee3edf56387a6f89b75dd9ab5eee63e13953dcead SHA512 77d4bf51f4633a8c36712ce3178945141df31cd645eafcf4bd130b8ecd7cb498bf1ee6f2d9c8dfbbc9f97ac638919fcc81bd3ee600a1b27c3be3fa87313aa0b8
+DIST home-0.5.9.crate 8760 BLAKE2B 02277a6d0e54a88e62a50ceb5b50b08cd5dc1ca5ddc17a799db0f49a17fee8560df53f616ae22cd16020ae2a89ce7c6ec22e5e2c0d513405bc2859a6e3ec61f9 SHA512 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1
+DIST http-0.2.11.crate 100478 BLAKE2B 1ef12d67fc52392322c24f79ca49c52fcd7dcad0145b761c8aea21fef38682919d664161f242c606a1f3737987368c08432f33e2abfa53d681c6c2aa5cb000cb SHA512 71d98f5fa55c7bdb9fb31e36f898e8b2b7596dcb30ef9b5df3e34581b7306b66a782e82c2797732e28626eec5c9e432cc0475703e5a0e0e47aa1d6f22235ef51
+DIST http-0.2.12.crate 101964 BLAKE2B c35c2ae5f9494cafdfacefd778b4b6824588e74685fe5204bc6efa87b667d00b28f59cae667115fe45ae332d8542e7a0c2c7c42fdeb302302f89b00cb716f380 SHA512 e32dd4600aae7e26f1d530871815b30fa0b9bf95293005649bd9a7bc4df7f69a1d8de503d1b8873e67a5496e644d0a47db2a0680fa1e9058bee4dcecccebee58
+DIST http-1.1.0.crate 103144 BLAKE2B 7a8c4ffd3ce664e1f575bf4042ac0f15ff42b200fa8c6aa27a6686d77be2de7cd3df242e36f8cb45cdb822bfa96011d5d5dd7bb03122ae5bdcaa15bbf9d40051 SHA512 1c29f25a8895a69d815e21df427dfff7924e9040d01c55cc3256dd0b5e72b670fe75b1414223fb971c16082e4b26217142628be5e0905994da4f08b52e7f4a33
+DIST http-body-1.0.0.crate 5411 BLAKE2B f560b45bfb1525fbdb209982740dc2da5688034912377b88a1f0e069a003bd3fba3d3f248bae98dde043e6f797f256a219228611e9b8035e6181f4c84381f823 SHA512 b351df7a2ec991787a57232229f80a29a648433de25efc1db2c9453d5a09b75c2e8b0101268b6753251c686a2af9ce346e08bd016f4e93891534f428c1d80183
+DIST http-body-util-0.1.1.crate 11930 BLAKE2B 7e8388c2e15f7cd2d4e4630bd1af25bea49efc2444b18aaecd5fe191d913c7922a34efcf48b69811e1c64923bb7dc1e3aae9a2ca2daa1b1a5c9e12c679dcf787 SHA512 bb3750ab98dcaa7024c1b5a90b3865b303fac8f723dd037960f12815c6e0d1e68ab5e09dad0b7ab3154a820e7ec4a5bc7b39be104e5721c7ef1fb36416fd9b24
+DIST httparse-1.8.0.crate 29954 BLAKE2B 82c48fdd6d28e94c42df180415ea3e30d471ace2fee09d7d8d33aff0a8e9a15d3029c90f3bb036b4f587c8902094a2ec21e4ca6ca7b654a82562bd84fe208ef9 SHA512 849159d9876e0474c71f3c7aa3a7271699b807b293832d88d52e4326ed410b25f9d7b9ad75a143a51fb5c8ea5016c2513348edbc050d3b62dc9a6737ae98ee8f
+DIST httpdate-1.0.3.crate 10639 BLAKE2B ce0b401c69f76252639c10f6c2e4a823574a58565d7c5cc3633c72837aa4ec3630b34b148de4378ec498db196e3b2e1413ca0e5a4d9247855380fe19a8c20f94 SHA512 0586888fe89f40b838d5ceb083084d0b8058feff1d2933faedb96896dc86eec68b541a0374a508fd11b86eeadab3c62f88568ffe2c53206fad438373a50b2e5a
+DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST hyper-1.2.0.crate 148064 BLAKE2B d0ea30be277a41a1faf699b306ec84659a4c8b8a90d192c8b187a793103c2cea3670bc7d378db706039f4555dc7c66298fb826bfd330e8cdd4c97e907bd7e375 SHA512 1ad844b0d13206598ea8ee887255f4776f2ed9eac3d07b1e5b07652016655736868e5521aca0c436faa418dc47fb46cae21870cf97858d16a21101d84fbf6263
+DIST hyper-rustls-0.26.0.crate 29538 BLAKE2B 9c6c62097e17b66e7cf9fc1325daa1e0b851ced699fe5c19a42e061dcfa7bdb26d614d6aaa6704bc07b5801b0efe54c87f8f6eafe2462ce01c0ab85418e0c783 SHA512 df6bd4e2e9b5f54315c4235c13fcaab4bf9fcb3b0f1673311da60a34ab22f2e566c4de3d3002e65620fea0b7942d27a83f52187310cfd9d8ee4e06ee6fe384db
+DIST hyper-util-0.1.3.crate 61647 BLAKE2B 25821f66f7576e89b5c7a5207a4179a7e86f024b04acd1e8c7cdc8be3bc8c9222df1efdb14de087a0db50029370a84ba5d48ae2a0d85d04c1322bc1701a4c2df SHA512 fa68ae79e56a40beef318ec1b3fa6683ecd49371a64b123e55cb311a739d44226bfd526afbbab661785ce4302ef4bb1bcbff80ae3c6af26a4db62e9d4792a114
+DIST iana-time-zone-0.1.60.crate 27074 BLAKE2B 6f534056e220e2f721fc7c7f3ed24152eea7f07d1f4cb3609ca734ade32a2d6b18fd0164ed831170cdff192cbe48653b2c4eb0903fb6f157292b3b5bf47299bb SHA512 5619b994d3277f56e65322a7903e4c5e03928a87bdb72831cbef88788aaf5573b8460abc0a4d5488c5df7052bb978531d973dd66002b0ec4a3af468928c9b722
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST icrate-0.0.4.crate 1040120 BLAKE2B bf09a1f5e4dcb6b119f158a6d7c93124d7f8a2434fbdfa19e356c282a3bcd2c191fe028f7c45becbeb313d163339106f8999c159b33920f90d70f7e09123d58c SHA512 2aeb124d3b303311500c163a33b033b8cecabefe53f50da360178c320d884e3b11d064da11c52d7ec87e97d4bdf6e6f47f71d1b7609e226fa3910eb9b7e270fb
+DIST id3-1.13.1.crate 61018 BLAKE2B bc7bac0c91cb81d5f0e1920efe02c6b14196e80b0bab3bbc29dce23af2b27efdfc94bbbc2db863a551443e2043b3e36d6cb8963e01eb76aad4b0c93a5882b160 SHA512 a5848324df95bf0d9e693c89d24620b3b235d05ebd2dcbbd699eca2a3d6850f31aa65f0ba9e8416473d30e3b9c10204027ab4f6bb08ec5fda5d4ff48d11fc62d
+DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9
+DIST idna-0.3.0.crate 271128 BLAKE2B cf8a2c43760f03e94953c6692423a12f28fe763aabea8785b93cd247b3aedd2aeef2cd99978a027186290016ed924db39d19fe7d397da1ab570be9646bbb630a SHA512 9b7cee27811ee52ed9bb39fe82f724742eef2e5370642b6c756bd134c8cbc20bb6faa9f296053672dba8a66f7356a08b2ca99f176407b173e2d566d85d066441
+DIST idna-0.5.0.crate 271940 BLAKE2B 0b781c2e9bf717af429efb53bdfd18244f2b8c58e5111c3bd3bee50c8a01cc747513fe20db75c38b6b771d5845647bf6c1849ae6667766c9623e018c1f399a9b SHA512 bee6cfbfc99859b113aa8c7b487429a836dabc4e317980f132d28ff8333336f33480bf9f8b186a07115eff33024cd855bc85d346fce85e17c4132e886769c54c
+DIST ignore-0.4.22.crate 55462 BLAKE2B a9a29e5286c9a9c132f2fa319226bfa85c9555150afd18e34bd3b37915250842c46f6079208dce75674fef448450dfd23242858ee2e4e2bdb7eb65f89d689d0c SHA512 9647a4887258dd970c87798dee32a16c1cda75ce3e352829f78d97e1b786d67f74d89b2fd76d48a607fe795213965c04c9dfb47713f8fa80561f87ac465956d9
+DIST image-0.24.8.crate 9271035 BLAKE2B a467b3e571b2eb1fea297f3eced0179131467d5cc766a29dc42e6c13eef7820e93a0097fcbcddf3e7f8416fdfabc072f0a6049a65bc4bc5ed571073e5cef7ae2 SHA512 808c25e1b2308b25afa727cf510ee5b5398cc3948e647eea7cd4e651857d158462190a39c2e1d5279c8c7a5144efdcf1943e311504a404d801de76d05692a88e
+DIST image-0.24.9.crate 9261055 BLAKE2B b4d95a88fa2fdca01e5d89ba9975be22269e3a5d90d24bc31d5f1168007508a0337d0acc5347be012c2b98de02e4f481a573f012f47a1f1e365d26d89df236d8 SHA512 3f858efceeed54e21543eee065ca6008f40c568e1ece1016b38040eff5625c9fb6de77c7e950c08c9e82b9fcbd4c4ec2f8c4c1157ed5d232bc8e35b4850420d2
+DIST image-0.25.0.crate 9176398 BLAKE2B 87c69ef0d5b68a1cc0d7f89f9c3ecebb426b569bbcf7618ee98fe6e7e874cd7d28ef685685dbc66ddc52249ea89542258223d70500cd2f93cc82d6f674e2ba9e SHA512 c845e16419baa5d4ecd6540a293ac2ab026dd667b5fb4bf028bf08b5415852b2d38f8fc07b9879c31662fc12294058325ab35dd951d7acc901ce8c5eb4bc5387
+DIST image-0.25.1.crate 9176733 BLAKE2B f7daa1982ec510de79c925157f2e1a861c89a92f1cc043617469f3c95cc9158f1ffcf274513556993bbc4bd5ee5f86bcccd406cfec06d98b0330bfc10687acac SHA512 4252672cb5b5fde61e9c7fce1712997ea082e3e7d5350970d597c0a1421b21078e1b4c3088474c4b500f396bce604d0749085fe4cdfe1c3b5f3d1ffcd39c1b04
+DIST indexmap-2.2.3.crate 79019 BLAKE2B cc87bac104efd9aa565e3b8d6071f271b33501e2192b3a478120c41d015537e807bf3ae808ddab930aeb861f353022ac76522e5102e32f72722b93d36d5f2236 SHA512 ddc45ebcfb36d761d8c11b8f61bcef046a51eea71692d89495c897cf9b4cdb5e14287600285297c8a6aab543761d9f5ba3ab45442803837a810b945aa346d48a
+DIST indexmap-2.2.5.crate 81498 BLAKE2B 8914a50344951aad58766fbfebe8780298098e3a7c923287e3a84f6de41e2924a6a3bb3ee91ceae9b5b49654b83ddc7516a4cfa6253584b0657995d7c8f63a89 SHA512 84fbb6e61756d5ff746f6ffb2c3c8552f96d3af205075a381f06df85258c7597ce24b0d193127a797f975a3fddc1fa92110738227babc73a7fa37505331f8d78
+DIST indexmap-2.2.6.crate 82420 BLAKE2B fac5cf6339dc3c0a40b100035a5c874cc7b2efeafeb31c51488d25156e392dc9db86a497e76eead351d2126f69d060422faa9c55d73407a0de9f5be18d234123 SHA512 53211c4a9003d751feb6dcdf1a76495764cbf32d24bbfe2be7023946622ef4f2b07a6de57109e5d24ee01892f4b2be0e0692e10cd31fd39c4ffdff4d37abe9ea
+DIST indicatif-0.17.8.crate 64869 BLAKE2B c534020b2c7b25bb07cdd0fd4414fc817506647cf5b8e2081c22be58857d5adb170082a3756004c69187619fc5625f8b9a1904566dc51c621838e09ecda5b43e SHA512 487e73445c5c7d3c16d6f93a3d9767f41b37d2832e56851154f8b69e678ab7d9ab04eba225a6bcf8b48842ae0db0249b060e998e29a252dedf8afacdc88b1aaf
+DIST inotify-0.10.2.crate 26200 BLAKE2B 8080cace302b0e5aca8ed4188126992fed5b5b4f3624d0e5de70dfb426583428890513faae2fa32c31afbe1051aea03acb7a7f22d0720a24569f020a2a5ec940 SHA512 79692a043787daa67284f9b94892a09a2bebb12feaa5be2e1bcfa213b710af5499a4fb62b837d45793efdc19ed1eee00a014a7a620b5bfc9a594fe0571e96929
+DIST inotify-sys-0.1.5.crate 6965 BLAKE2B d70124656ce3e6f5ea3f430e8e7100d0691003161234b40542ca86c407ecaac1785f3eca98e9fd2914dababbc3f47a0855c99c9f19245d1f2cd5312739c802af SHA512 dae749f32c533b0c9f99963d97a77dcbfcacf173ec8fd7a02f275804f9925e867b4dfdf6be52c3c3c3de136d64e6e7d6b30a3bf804a01608cf974b0cc2e346da
+DIST inout-0.1.3.crate 10743 BLAKE2B ac2fa5cadd98088ea3f6eb94ca46b3a9ceb6547ba49f0de311d86474d71024d1a087ce9b8d44ec808008db69146e9c81446bcfeebeb2fd74d2e8d0ad2c4975ed SHA512 1db5bc2bd87aae145b3b0be6669a9a722df2aac8f970fda210aaf945c372e641b941cee822917926dfa1ab8381c6e99cc7df4b18d2f4e2fbef17fdec36ed2beb
+DIST insta-1.34.0.crate 550760 BLAKE2B 56ef9742bf38cabfeb26226fcfbe70cb2372964711a9d5f6b9886afdc3134d272a827f77f858c29e7ef2b723e50a7da9030ebec3ffcfbc37db46a7540f848226 SHA512 792eff6de9d7d10212aad14566d0509ae66c0b43b2a38b187e8387ca131162daa097b92abfca801f3b4efa052a1adc1464a07f5e9c6d564832c2310b8a7f544a
+DIST insta-1.36.1.crate 552129 BLAKE2B be67a3e26bb691a2f08879d3a57ba212e1bf3d373a0546554624f705f720447ac6e7ee72a6c3f4474837411e711b759d229d0ef331eee3d9a01134ad93023767 SHA512 4f9ae3bf8eb25f81cd262a0c37ce305171a185536b174f07cc96b2129013bd7ec30ffe2620a85887be865ffa12ff7633ce1adcd4f8d29423bcbdf95a4227ba12
+DIST insta-1.38.0.crate 86379 BLAKE2B a0d349fc486dd4dd771b292b3013e7609e44e6db70c661b37123985427004938022f09bf82dcce97124e7acc1d72c7b3895ba0cf7d4dc2ad2e6334a02c85d3ce SHA512 c0604d51c34bcfa696bcf1bb98bfeeb210a91ad8f58ae2df0c81acf99a8380484a0e4bf3697e8363fbcb2a9c946b00ce91883f5ea9fe5b997dd772b230b86827
+DIST instant-0.1.12.crate 6128 BLAKE2B 728923f757c1ee4e4a7afb90e460eed81392068961240a538e5c6468e15a0b6491f590fb5f6cc46e6d78901ca232351f65abb9f2f230d8f4983c5e58c4011902 SHA512 fae494c00111c51c840f9dd6a10febe403e27ebb933dd16633a213e9c20f2bc11adeb431c71f8a6713bf88f270a010941e15d83df294e658791934f83a5d2407
+DIST intl-memoizer-0.5.1.crate 8292 BLAKE2B 32b42caed088028a254c8eca21aab5b44c7e4348255c09009a9e97f205cdb92743c9355f7eabf132bad1a22c4c30335708f1da13b3658a4f0eaa7f77f2721b14 SHA512 3f505dff396039da10ed45c1b99904601dd4784900c0b9f1d0c73d99df656998c56c7644c8d3608d08cf23516b9e35018acdb810e8add48b8435da8e03098a7b
+DIST intl_pluralrules-7.0.2.crate 9201 BLAKE2B e80c46d863296008c85dd8738cb1140cd246c588daf2ed531de97b9f07f02d44ed7fa36fb61c05f717d59b870f924745a4babce25f6bbf170698f6d21da50546 SHA512 e03eace1382afa6704cb2118701c2281628c15df753687079eb02cc13a8f80b07c122b44618f2fa85438cb7343eb676f3c09e08216589c480deee36e7896eb43
+DIST io-kit-sys-0.4.1.crate 39052 BLAKE2B 4e5ef7c37b27cd9fa2f53beb2618ce3fb1fbb7c94ae5fdf4d53992b5671da55d2893b84456a622e2a96c6a0cf01aae1492ebdfd4820bb52c0e93ebeb0d93de2d SHA512 fc9bb9b47483c3dce0adb233faa2b47ac9303786771d97e3ff5836c81c04754406cf9ebe5fef32cb879dee5ff3f10d6a81a21a423dd34f3ae1178d94fb151163
+DIST ipnet-2.9.0.crate 27627 BLAKE2B e7e1c74815b965e9cec1cd37cc3dca76671168feb689620d44d5e635f3a5fa92a7276cb3022f25a9512ffbaaa11b0a8719cc1b838a7dacda71a5beb1a992ecc0 SHA512 8ce429ba2bae53cfdaf8a7d6bf980e10b9dd515446ef3ed4e4e11432043a18e09454260567419818f523bc589fc367194bc345660f2cc808d281db235d3e0b54
+DIST isahc-1.7.2.crate 203314 BLAKE2B 60b4b7112581740cad3321a647b71e1ff10c1a7386ae8e9c95012c0a77bb05115f9f09d451db87ad2a19820e0e985748e42898c3e856b47739103d93178ce163 SHA512 c58dac9bf57f6019a215b0d38ba97eb3042933dc327e260c007531a7afe64cb778c27b5f0fbb761ef0794833f8ad049564c3f2268850f949e9697ded61477c7b
+DIST itertools-0.11.0.crate 125074 BLAKE2B 8e686f176764e92e4da3697eb781e1bc30d6c57ac61d97343b4fc3a48e4febf669d5771fa8620005c620cce52c236760ee2e1bc344cf602e878bc168a2e69cab SHA512 8ece00ba0a7cf481ad4586da24385a6f0b1719b9c3f0c25b9b5b373dd1a0ca7b9687a77cd179853392890b7bf4d31e0356a4e5fd540465b4ac62bd74ef717fd8
+DIST itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68
+DIST itoa-1.0.10.crate 10534 BLAKE2B 8ffcb345d07070cc01651fd44c19f3e0659185eda733c407fd4be0955a301879ae1272dae7f425279dae8dcb7f7dc954465c9a09b5c521938a503d34fecfe2a7 SHA512 fc496be0873e31afa6ddf7f2958030f8fcb517cadb86a48280a0c50ce50460afda189af1e6c26e5ff6f85c750d772c21503864c32b526c4fe4bcdb5b07918538
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+DIST jni-0.19.0.crate 65890 BLAKE2B 78f93688f80f123027a5b800b0c3e8fa714a1a06b59ab36de73ab2d02f1f9ae3ceb2d3d4fd19c8d6d951394eb85f986f303987ad1e23b2fc451a237a04a9ef4e SHA512 75b48cd05ffbfa6e220dc4ffce3f37eb89105d42b0ac4e108930ed81c3525c4ee3d1c069342cee203c401c9f2e9bb2c53382fb61155da922ea9585d4fff9b212
+DIST jni-0.20.0.crate 69054 BLAKE2B 171a8592ee150c1022753b44e36d6addcf2b697b118ee3c55e3e3741400f92ca3a909d5f67da09242a32730aece6f1ca6f72917dd004eec95613321d4f6ac287 SHA512 08e4f2b072148e558b79dc4c92fe2e113962bfa02a16d0adbbbf43058b708ec844414db57f9d8c325a0a50d651a4e82f3ce78c8ca35fc157d1122812c0e928c2
+DIST jni-0.21.1.crate 105028 BLAKE2B b384973d4d991de027da3f0c27aaae33a5d1f2ae8037f0121e8c637a96382055611da753c14732cd9fda56f929b307c988f1c3f6bc2c7617e2e5182a66a943b6 SHA512 46897d5fb968e598fe39179307376305f4604db61ea5d7f12050506a6813e242c05785536528ff2d59de8a3877f6b24be15c30f451f1bec40a5c72fa3b772835
+DIST jni-sys-0.3.0.crate 10232 BLAKE2B dd6334daa6db9fae6cf1b31b9c13f09f9dc3f6a0e227bf6779880a6e197189d91583cd463b9876125cf892ffa5f8417dcc51aa010cdb8c99bb4f969990e969b1 SHA512 1e47582ed4dcf608ffd218549f1eef5ee3c87a89e28c65eeb5bba801edd6cabc0f095e213e8df606e050a57608653a59ced6f01a8bc76a5eb32ba1a337a63321
+DIST jobserver-0.1.28.crate 25543 BLAKE2B 90fb1d8696b575b16b5b12d6fa4e7bc7890f5f09110b147d65eef8888a16ace1446a789f8079a3706f0252be8a04061d989bc8fc53e6c004d6b8a4094baf1642 SHA512 8ffb33b8c162935de1226e0ca4048f36e6e90bd1731cc7f06110bc97e2adef904f777df0ca4ed48b3b8ee4f2c243b2f883f6897427867904aa3385098abcbcee
+DIST jpeg-decoder-0.3.1.crate 744364 BLAKE2B 0ccc3a7f42e471fc1fc7995fa99573b798da89911667e477a310d10b95745708e583d53776467b9d54a399047b727a3fd4c26a1387382c226f6594770b21ba05 SHA512 103b7602876069603620cc2b5530e84fdab88ec96855a821606560a67cfa26f628b401eace62ee793e6c16ef282f958ed789f5db725ff901124fe6c9b123de00
+DIST jpegxr-688021cb0a4935295f9aa8b488ca05bb4f1e9b34.gh.tar.gz 9321606 BLAKE2B dbcbffbe21d9de5709d9188086144fc56289440b4d34648a524165c24acfd45ef53d204c587403176492a53c6e4d56dda2a2a9b41aa858e4657c1c169b9537a7 SHA512 64e605477e6acda146abc1cce4974581ea0f68a13e944156c0376770559c61f7a5ff9bd2cd5324a4831e27a7467bfd80c176c74b5527a2de596399d1d1e57620
+DIST jpegxr-d49988f40f220e3e9c90d9f3df1d4e3bc41f6ce2.gh.tar.gz 9321582 BLAKE2B ba553a64109fd397b0cb8c7ad88e24c2c88e86d23d18096f359ddb365b99370d7e97ab8b25c41aa9aa4ac4dc6ae97cb59eb54e51508e0f7228cce9d11b4226e5 SHA512 a7b658df30b61a3bd03797e07d829a5ff9b0e08a7511e31ef8118a0a17e603464836151bf6f5f6e313e2ebd57f90bde2cea83043383c4dff27c8b30cf2a405a9
+DIST js-sys-0.3.67.crate 80764 BLAKE2B aee8b96c8c5811020b3ee4277524902e27d96a027add7b21a8ff94eaac7db15e8de08a9e203ff462b05ce10d0a44aff78a355c07514794e41f49fa936a3c8fb2 SHA512 590d947a869c3435166e34c25b3011351f6804b43887ee76bc2be69b7407b5181bbbc3a5bf6c50867c65d73fcd8e65ac7b0d395710ccd52000beb87f8826be96
+DIST js-sys-0.3.69.crate 81083 BLAKE2B 529c94cd2289883b3b43a848d47d8ae025ad0909548a38ba93ebc684ed3edafab16842b922da6c8b6be5ba39c36a1c05057dd3dd93fc8936d5dac372937ab8f6 SHA512 506722e6dc13484828a4147d974822ff9d103d9e7db58a48181b0957770d9fc43b97605ced105c5b680d8b2cda5fa1705f605707611cb48ed8a45a96d5f196b9
+DIST khronos-egl-6.0.0.crate 29315 BLAKE2B 929d825923bce022ce13595a0ad183a3437581af6cdb19ece34af853c793dddf0a63bf8dd9a160ef253bc4e97c38d4973f667340a809455136b07dd248d2fe46 SHA512 be57e604f577ec526f3f2ea81767a5fbef0b609e0c1aff7c14e2fe658e47bbbcf65b5ac9d6dafb83d2b4fe25039550e21a165fb1d503ea08f167b039bd72cdbb
+DIST khronos_api-3.1.0.crate 599718 BLAKE2B 945600455c85874c37c7c395162a3e56531b417a1e6ce414386ecf31f8951fb40049604c27d719014b5379028e5da25fb9977c7487433cebcee4ccc49e00c7d5 SHA512 f9ed9e1bac648a82bc608bc7df339d3ef1db868c8ce8bda9598926839b3de9e3c11c2b45886b9a7dfe5ad6900770fd59c690bfe9a87f7c5b479945ffb8dfd292
+DIST lazy_static-1.4.0.crate 10443 BLAKE2B 25b2e61bbac48f0dcbc79c81d7bf01f2403d8269ecb6be3ea6147bd00f7a588df15a91f44dfc18ada19b21faa71de4637c7d493a8628cbecd0e547d74e616a23 SHA512 e124c0521ec7c950f3c4a066821918da7a9c6e711115d98009ae7c351928fdddead852e7596fea5937a9c30e4e4ce8eee7099b20248b5d6e3b2494b6a6d88cb8
+DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d
+DIST lebe-0.5.2.crate 8422 BLAKE2B afa49a1945d623b34139e31406f4780a5ab7b3d34648caf5f73b1504dbec4c4c02fc3aad3fdcdf85509eb8ba733a131a96478d6b9494cc9f69048f9ae28eb880 SHA512 ae8fce41c9a934999dad672ad74acabac9d7998aac4f1d03b54910d4b941375b9e9721cb1bfc8cd7cfcc4206fc0b18d725b0ea256a3a10a125a8d5848ed761ae
+DIST libc-0.2.153.crate 740614 BLAKE2B 523a41bc8cff4ebcba0edbbe9e6a2286ec7cb3ba5e90ca5926c972b68e4b34188bc077d20c22376238c3cd91b7455898a95c505ace4ededea88cc496edb4c5a7 SHA512 3f99e3a192974fffdc053ef21e9ad5fb54b7cdbd4755df176704a95dba38047138ccab76763e89c6b565f37f98fd549fe368749f84f6d1638b3209cb07eae9b4
+DIST libflate-2.0.0.crate 42505 BLAKE2B 2ded808b1aed0ce708ce85754359abe470a481eb8aac6572d1b5a525cd68d452da76c2e29d57f40f0568aafb451b9f3989ac16a805486f153a2564e995cbc192 SHA512 62f1222ec0f439ae6c51b89ae2eac7977ad0eb4fe125de21f5decce98cb2f05ee74b4da9b877005b783275ed7eee1e99de386eb927f86bd75d50369820b40441
+DIST libflate_lz77-2.0.0.crate 5893 BLAKE2B 5340b47195ad0af44011906224664d561e6c74145b921656a008f0227fc5d79814c6b189d68f1b5783b167b71b41d1a81fb2eda2035b066c2407435f7bc73498 SHA512 507d24d0e808ac6f3afb9615d325451fe1d02954a48d057c5a04d2cc2416f22b88d0290000379d250ce578ac752b04abaf8c191e97350f0c44b0a839d282cff9
+DIST libloading-0.7.4.crate 27580 BLAKE2B 491faef2659270b10bb88ac46e0453f747f35e78d7f28b7d6d9151177b4c7a7aec0a1efdf702eda0988c31e9dafff2990eba4e6a9b0b695c535ea9086ccf36e7 SHA512 34439d9eca68bac8fcbe2bc94a70e07550e7e95d713ab74ed60ba6736ec807fd9c9135c178d436fbeb39afb074b2a9b05775d953340845c088f5f8712f5f56a1
+DIST libloading-0.8.1.crate 27893 BLAKE2B afabb6e07ecd390918344388b5fa63e5aa9223bf3ce513d1ed94cf02b1defe9909d94f0fa05e1516a39dfe4f41636834d3de0386b3c58212103263f2b1423f76 SHA512 f17ca367ef8e62fe80f43e5f3e2d1585be7b78b0fe4a733d80acdde38c20f9f72e710cff082442de6afa323aaafa17eda4491c4430b2d12f398d420e057cadab
+DIST libloading-0.8.3.crate 28480 BLAKE2B b8588be0e7034e94c808490adb8ee6e81c29e962aec436a0d8f8c7617b3ba9177887ce59b95b2f0af00ab030bc77b73e0a889d8a77b84deb437245211a969c94 SHA512 af8fa5fe2428fa98177d6adfc01bcd6e701b0d77ac18c95b8b8d5abb3a6376f16241ccc71b9fe100782c73c843ca53c9bad465545d8bb7def52320dad0eecef9
+DIST libm-0.2.8.crate 113450 BLAKE2B fc4a55ecc0d4a558b9014b58861341887679c696af6b6539c7cdb70c033c63219b24f6f30cb8d9b335d15e3af42be6f3a6bd719e189667ca0c43ac818730b674 SHA512 753df71bb2c838abbac360db2e4400c2d931185ecff993da51a979870f2c3f7ac017380fadee4622102fb4b37ebcc1960b0cbd295afc9cd1cb3307524e1f39c5
+DIST libnghttp2-sys-0.1.9+1.58.0.crate 1901846 BLAKE2B 82777a0a9e4ae3db2f16829a2514062e487230a826c19248a307ac9f1bcfe540a7aa2bc415f35a5a3aeb17a41eaa9d6ff968655640ce37f253246f3428fad9a3 SHA512 654c08682ff6bc9d417e51492cdb96301cdba3b40774bd094fb971449b00f788146612c27f79dfb2cd6c6f1e693862e11c704c727a61fff3281aa6fa31659a19
+DIST libredox-0.0.1.crate 4212 BLAKE2B fecbb90e2842a69f3967bb2a09b0181dce1720b60c5d762a334a279b52c00a9b4b52de72c6484603981c0c3e1cd8e173ef5e15fa290ce8b8888739204956be92 SHA512 31a9234201f5128f1519e108f7424d1740a67699828265cc725304a70f6a51e139f1d0c0e626b487857a7b421f25ad93e81b95b65cf0d3e0ad912388deecfb41
+DIST libredox-0.0.2.crate 4538 BLAKE2B 3b160b1ed9a476b1d51fb6a107ce2a5955495cd862d01854c79ac4f1cc1aacaff57f83e03be9b14f3c8fbb67c4124946aae19046620eb968fe97745d8cf46fce SHA512 4c321f6072bc4d6c32f9a2a8bc3ea64443e1b1b770e9d2626be86b3506cfb804c3cbafe376c7300efb09788510a57a626ffa65c9eecd447a2ad29532c307dc9f
+DIST libtest-mimic-0.7.0.crate 26695 BLAKE2B 74b8915561310ba2a9a889334cd003cf4ddd542f00e1123bff6a2f5a95e0fee10533a4ca0fd80240dcba803dac361c7ebb1446b015ac50b5094263baaca72a1f SHA512 98722d23a27e58f696e32fc5a716ff157db91f7861340d316be398c765a82166b945f87167ccf570cae1d1355d67171be0a03e25d36360850f3684583e5ae912
+DIST libtest-mimic-0.7.2.crate 27619 BLAKE2B 2a7bf5430933eb063015e7c8613a2cab3032c6386fe9cd3bec50b9a894b4220409d1d30fd140a5076dc2b18906338f758a7102ea1abc4987dbbea07a9bbfc772 SHA512 d1078c9481775e44ea1fe7587bb6925c3be792304e620b553c38a8c21083acd686b74a2933dd4155d6330499f496e0989afbdea5b277ecc9a41d057925485611
+DIST libudev-sys-0.1.4.crate 6177 BLAKE2B c513b5cd68fc60a7a33ba281e4fc4f9a5896946aeb1fe31abb8af22d279c39c3d781fd34109f98fd010fe8aa817b9d91726887f0ee8bf0f66a3bf313b01c9ff3 SHA512 185bd84a729a5dda6fb274584c7a731652418da9435d844870a9d09662918c9230287f4ad002273599d0a3e9709a36ae06d59a6686dfba978fb7cd1c51bbc2c7
+DIST libz-sys-1.1.15.crate 3958887 BLAKE2B 989b33d3a0ce09b0268f81d86c33979c7627379d921fce4be83b8c31419aa0613a9e3d82aea400861090fe6b0bf00612396cfbe0b8eff2cf682576b62f81f807 SHA512 316a3b961d8f9b47ac763365d36a4171afc0fb19a01f9570f1962765da0bf67e7f57b848e16f370d653b40a2526fb8720a4625062cd53d4e4f12e1c69d158097
+DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linkme-0.3.22.crate 13673 BLAKE2B 4459bdfb6751aea9bbee13a3cf8361dfea0e8b783ba5cac46aeab7fddb0acfa38c39467107831a2a1c22139cc955ba050096e4504fed864b5ebdc81207679b3b SHA512 f81a786a68defd1e765e95dcf7be9cf2406a404704295882b3fa2d94ed07b9797d71c9e883294d610b7b15de1f9cffdf488f7f03d37ac57197293a435397cefd
+DIST linkme-0.3.25.crate 13890 BLAKE2B af9e79f651a3f1d55f48ee2cde91b5c5746419c833d908dfe9fab00918612464e235b46406eb8647c98e56b76db65e12eeafb88895d0941e9f25a9ccc7b8ca3b SHA512 7e700c904cee012005399e73069ba75bf31c583f72c35b36c20e1dec3fc3f32fe3b87d6ee2cafe32ff1f6f8736476d60bc953227c95957162ac036dcfcd18406
+DIST linkme-impl-0.3.22.crate 6868 BLAKE2B 9240ca65bf28b387126682337ef81e4ccd15a6566cd1ad1406797de518e592eaa5aa006691f3866b5b66684264730fd354e69ec689b47308d0d7fbaf69bad01e SHA512 1e0b815c92a2b6c73942b28500e61c3b5fe467da3f2a051af0de28dabd884e5665998636a401251f9d3c8817c1732823fbacb354093e963fd66c25225846d916
+DIST linkme-impl-0.3.25.crate 6912 BLAKE2B bcf05b34894390536cf878b0fc0a363951011fb2f701ddc4e38fbe6103277a4c39b11641278b43a821ed047809a86c5a3bb8a0fb9b0e15728f30631d71118f81 SHA512 799f72e1184a9cb22fb72ab46ed9444e6b3e849f2caebc59104b11e623826cbb0f88cf2281aa767b2cf14d5fbed7a33dba8a6c471dbc47d63e3a72f2a8277d3d
+DIST linux-raw-sys-0.4.13.crate 1493855 BLAKE2B 1298a038276e2424eda9873c642fb43d864b343b03b7962446122d2dbea94d58d9fb2b93e890769e6fe4092378755413ed6afba81ce56fd61e512146e44148a3 SHA512 3918da6b667a08ef8a51aa0b087129e2dc5ab101669cbba7690fc98ae2659a36861bf9410a3b87d18522a7549d43ac169b995ea192d3073f7249305a809cac62
+DIST litrs-0.4.1.crate 42603 BLAKE2B bb5c471204b982708e4a9848aaa8ce3699cf929a16d1beb554ff422fc36ca7037c84cd7fa83a19f6c2278b9626e43a4a0524842027b6a079e604147162e6e9ab SHA512 49e03d5307d9cc31d1e7940e7931f062780728530c3de0db92ebb636b7d22581bbd9900c8994e545a8fde5d3d5564500af8fa367f54040ed01d1f18d2e48a22a
+DIST lock_api-0.4.11.crate 27487 BLAKE2B 87116cf908f7f1f9c300cedded989df305f855883e3df5a482de2c76814c48739582d3079d76a2bdd14a6999204b7fd31dcd8fd06d1dc7f9418f0e2f70a1450e SHA512 9946adf313a5c67a0dd87a1b679b7d9d16a86149fb95974d3f28aa57a9a1a3932e4a5ee1d332097559329c5e3b2295be2e4b655b115d9f75269f33a758b17fb3
+DIST log-0.4.20.crate 38307 BLAKE2B cb9c9a401b49bd68c18d5e42f2ed94446f1aeb184caa23cefacad4ce54a2a357143af54a5595c45d6f3c3d20b054c451d9e6ccdc09c19cca99ffffdaf8bbfc72 SHA512 8661b0c71d3b7fc0d679aa3d7f06910e6d3da1c53862aa06526000e1bcaa0b0b068415a1a9ab317c318f00d15346dba8a4f5d2a60d8850790bed9cfaaf757b3e
+DIST log-0.4.21.crate 43442 BLAKE2B 8429b3270794d3e2c7f7d5b58bd4fa1abb9d4807ab3a1ac980ac81c11d9544635003d8cf2e608c2c0094865459108a2879f280278e121df68d09bc1561d604ba SHA512 0becc1a06b6e7048cff6c0bb8df49a16ac4772133c00239e9e9459c0811e7715c500f440cf1a9aef8d7ad74f57434559ca9b55917f588b8e476cf36eb6d4e10b
+DIST loom-0.7.1.crate 73744 BLAKE2B e689335f9e247876650eb1d90cbf406be917ee0060d90855adddc302ec1d215f4303ae52ccaa5a7c6454e032c5fa96adb09dd50de4a737dd981630feb7fb8a2e SHA512 1546c2d1a0043274ca820afe69586cc390331cb4972bd6ee0e42143a59ebf41bf12fba6946d94234df9b7bce6cdf24d95c7e54198b619cae1c6edc446a51eda1
+DIST lru-0.12.2.crate 14826 BLAKE2B 67c2defae452e05c91a8f5af70ef7c07856112f81603a3f5df5d1f45c1a48d0295355b1d1f69b172b571ac54763a9990b8abe46bec49cf22d9404af0efa074ee SHA512 b4df8c6b090d5399dba0270f229d633f872caae91861356743db3b66b1c98c89683a130c56489dc9f38b1ac8d703fe4f15a085b71687ce8425a5370fca748c6f
+DIST lru-0.12.3.crate 15009 BLAKE2B 2b2587a602409113a7ed61d0dbc44b8b1740e44897bf9273011e6196db64a51e6973436d6bf34df7a1e534cfc0490e0bec4d83c0dcb0f53f640c80b88713974b SHA512 1768ff09e294ad7b0631a4c7cfc1773be57568329901e9c2034b1cffadaca9963180b3bf8194554bad2f9f42f6c5e67d52dc90ba7d75d929cadf31642f4a688a
+DIST lyon-1.0.1.crate 3837 BLAKE2B b7a5a2be4e96ddd974974495a61e50e782f7d3c08d8b5e14b86a2e02c55a6a3848e332405ab61d2f7523eee2291e42869814f208d41efa28050f2ed79e2c8e95 SHA512 f9dbad320ccbcd33d692af4c8d7998745ab8d86d307058ce132432eacc9215c8cfe3c42a6d5edffa7942ef892199625be5a55bbfd13ce383c3e9f1465ae81ae5
+DIST lyon_algorithms-1.0.4.crate 31806 BLAKE2B 4eb255b1c1ded57b7bfd947a503afa6fa4b7a2c6240c2442c28e0bc41797150786510daf741eb518ea7a572b2ad05db95423d5e83fcc4369448c08a73183758b SHA512 cae8b9ea4618304f0025ab8d0fe8eda47ee16fa715e279ad698cc06e8ae7f9799be2b2a786fae0133c7f2e8c6c40ede9b9e06f7a5c20cc7965d4648ddfd01921
+DIST lyon_geom-1.0.5.crate 52658 BLAKE2B 9dc405aff5616913358ee97f57de77ab8876837908640996c732a2e86f048c4a99e01fa7bb54b8f1334be008d0a7365770abc8dc1b7d85e65e0884bbee905626 SHA512 9dd99cafe99596dab3d5b35456383338d6967f6879c4f32a4a64ed9c54486a1b2765e29343799efd6a76de118a23c42399e7c009e2924a78c542e35db966bd74
+DIST lyon_path-1.0.4.crate 35616 BLAKE2B fca069c6b9d2ac3e79d42b81a1f747adba24d0ea11eb207dede801f44d76548b8447ea0180b14d354f0cf1a642483876670d84a72053253ec1931afe65d3fae8 SHA512 1532fb365386a1b9d57145fd36bd0a3e27b9e6af2957c3267f122df1e927ea855d897f61ee1f5282cbb35bee64ca84cb07d53f002406c53c1f87cae97b53cab7
+DIST lyon_tessellation-1.0.13.crate 183135 BLAKE2B c3ff44134b210b7c769b9e721a23a34ea8bd7cb4636e23da9ad6195464f462d5d54684ae50fda395695646616ae1bf7da241a04710276624b2b9133f6bb80ae1 SHA512 f70bd02f5eb630d5c56608c9a98392775feaf748437a39a549ffe37683c7b734dbbf099fd136a3efc38d9d002ac59ac84522d073565bd84815f0eac9adf237d6
+DIST lzma-rs-0.3.0.crate 29080 BLAKE2B 521d9f12a155fb1c9224b155400ada0cabe8be62a6b46f3b9d73704928446bfce653df97c73ae0951b6b1cf793a2b95c37180d5794c07a399ac581d75ef87337 SHA512 1c554b5fe33e6cd6ab069efaafc2826d3cb0bbb13dc55c2438345e1dd17de99cd43da4aa3419841ce50d9fdfa5956baff477b37a09470f48908fc1b7382086ad
+DIST mach2-0.4.2.crate 21889 BLAKE2B 137db92691ea6647ca19257abf90402344cc3a8508fe6f8760a02fbe6f56d5341a025fd9e5ef92ea355feff9f36ed6926bf70c79edc17977b65e935ad5f36959 SHA512 5338254f5b9833d41957715898ab4bc52585f99bc8f8fef3ebe526ea36d8a5cbd191aa07a218ebb6f71b7487418223e4279977294b4a6494aee8d01f34cf447b
+DIST macro_rules_attribute-0.2.0.crate 15408 BLAKE2B 3a568de49448ec1aaf2abb8c361fd84d2b257a05579b8345cc66a45ecf111e0964e46d1510b458204c95169a67d0c8a3d41b604afefb8db9f642ed60587ac05d SHA512 53dd3b4d271f5aadee7877829660bdf9a6b89f1173494d102a5360866721fc6c02b9bb1c7fb14f50e214bc16a59752e69eedad5dd1d64411a1fdda76f7d62afc
+DIST macro_rules_attribute-proc_macro-0.2.0.crate 8264 BLAKE2B c885432d9334a3aa2c1ac66bd3c1f1e186aa259a449aa851a0663b422c9861365216e4dad10e31e7608fd970391508c9ad8a232272057dd9268e0e0299109b66 SHA512 6ce9cd867b5f6fb8459e3103688aa149275718a5bb2290994a02cbd7ae49aa23eaea41aa7247a6f9b15e2572bc95fc2f94c26b401e28a76e229a0907da6021e3
+DIST malloc_buf-0.0.6.crate 1239 BLAKE2B baa59345fd372db162773adbb441caff1f6bad965c3681f244161deaee76282fa09b9af0d0642cd39ef35689f85f5bd7c2efb7ba8119a58e86c7cd12d81b2c6b SHA512 463b3d7666cdd7de618abf0cc4e488060c84d6d93c56d4e922169511a0b03de380ea988cd998f5a162b244088902198763351ac16dea3762f0fa0840fc29d6ed
+DIST matchers-0.1.0.crate 6948 BLAKE2B ec3a5d01d2fedbb4dbf5bb185afbb9401410463a61f51674e0df6a571db352b2bbabfb99cdbdcfb4e511ae783165bf0258f5163f240a229b9087f9edbd0df41a SHA512 84214c1a84952d85631aa1ab5115df7cda223ac64e2acf055b6129ba1aa26ddc87615a8b51ca890ce3fee0419053fa7fe1599ae128f1d211b58c07b0c4af3b19
+DIST memchr-2.7.1.crate 96307 BLAKE2B f1a008fbdbfe84852a8ae1d9d9574306b1bf120dd5087903adbcca6af342c9abbb296496eb9bf6cb58915c4444b3edd6ca4e27131ac7d8aed8849815df87a944 SHA512 5120496faa31fc427c8b4178461a262b3a34d70eddb7ad17a19d6db8b9969c9e113d3625b5e6dc677087fc80907377b00ba0421aba9a92cf73ca2849d932f473
+DIST memchr-2.7.2.crate 96220 BLAKE2B 2399064b6db21838d4aa0b25ed0bf04940ee3820741658cc6bf62e5ade08f41320df743ff13f99b2781da7b844e18deb1cfe25fe570f0e93f98ff03ca5d442e3 SHA512 cadcb4239c7f3aaab042592c5186770a225621e32f8583052fd3dbebb4a6d9b99be28f589b39b5ca36cb2d56fb3709e7d4ba91838ebb882e28e51280c02bbc40
+DIST memmap2-0.9.4.crate 32752 BLAKE2B 1b21af908061e6fe09484ce5f84d31ed1751301dffb6439512b38c53f9f090cef7541b591b968d0207c6d8351ee4d5949007caef7832ce130ffda1b3716b5454 SHA512 8bba078dba73253e8ee88f0bd2202dcd2afd0b7b800d08af8af593b882cb4acff7e297a3f299e253f5adf103893fc390dcd73e882a2e7d93ca96099fc2eace4a
+DIST memoffset-0.7.1.crate 8556 BLAKE2B 1ef270f1c8dba32e66cf47a1835f10c342024762c0e56953f16e82d575250028154054d4c42b1324c60f955a40fad3bbb1c5fced147c11c9a4ad62f6f0e948c3 SHA512 40ca3c4b1fb929bec75bfcde0135037f81a6c5aa80181bc7dd7bbcd9c0946288eea8d23fca95e296567ccb02155ed0f66c7c23644b5cb3e6d3932be9f9742157
+DIST memoffset-0.9.0.crate 9033 BLAKE2B 19090c1af8b8cf54a2cf7593748aff4d3dc685ec7080aa476139c1721ef71555495e1bc513b1efaddc7e7702f83e0e1c2a8f71ff40009d266539484c9297e0ed SHA512 2f04f9b6fed31e94388c18162ad275897a835df7b9ac827f4df0f4b0ecf71064ef247f7ad11dbc27d7a6d448984a0f29d1c000e3c8d5fa6e121fa9571770ec55
+DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
+DIST metal-0.27.0.crate 3028990 BLAKE2B 10539e6d5196fca56e35037c09ae72ae6bb293e828c50096d16fc053ea9e21e89b900f01e19cab68c1e6531c737598027cd0afc1553f4f81b88fa83957c5c978 SHA512 b90cb1e371fefd548d75a4413ea2a050341fbda6c4627564dc7de89284a8a42a95192014d3f8580bcdb26d9e8be247bb09265591acf373b974cb95159b628a1f
+DIST mime-0.3.17.crate 15712 BLAKE2B abb892b75b40657d356b6b53b9a45b2c822a05873453e919f2bbfeed9e5c06104f24db9cef2716f302198020870eaf96b2c62aff55cc11d8ca4f4f614d7c8e17 SHA512 e6d2ca92bb58fc747c1bb65a7f9023e5dbf4b94966003a72e4913bcaaeccdd6752725cdbd5081e0fd69d9e8f364d79664fcbe70061737d5c39e5b3e3a154a0d1
+DIST mime_guess2-2.0.5.crate 26304 BLAKE2B 9428bf658fc2f5b98450a9a39898762fbfdb9108519f7dcf67d97093073a5ecfa06b2ef6210c42946f516d49a3bf65b5e99cf247581e276344aef91a2bad3c44 SHA512 c54e4b401cf994aa18249040f32e5d258073fb10af705c5c052acbb02cf03f0f50ebeb5cff96be91a298840def5895f9b6ffa056f3d78b748113b5374079c4c1
+DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c
+DIST miniz_oxide-0.7.2.crate 55731 BLAKE2B e3cbf5983025bee879b8a735fa2912db8975cb60f0499498a73ce4375e7d452c9ed62d4b0b6f6a4fa591aab55e5d7ff20033baa007fd6c839b9d74b31142c0b1 SHA512 2f8f09d7afdb9d78bfc80a228ded85a215fea05e577e907921f1808f84aae30ab118048d7b53295f11aeb5de70ab6cbdec892f3a2417bedf6f53a4576d095432
+DIST mio-0.8.11.crate 102983 BLAKE2B 913a8e0e4843b3b19cce3eeaaff0a0024eaf1bdb4784a710e54ee95b6631edbd763e37669ec7d269e45157907663dd2eb6c9279db850fa47ef4c1eee867ea24a SHA512 9a2806ea78b0637d0cf92448abcd50bc5d09bd80da0f37752c847bc98d014baae7a5cc4d929de98be6283c76d82ccab1f1467aa6ab583a4e782d97d5592b0bb1
+DIST naga-0.19.0.crate 540736 BLAKE2B 66af1debd02f97b9e1f238bdf459c2b880650568292899bbe3982f4e831a623b118655c0db8a268b17055f37875ca0156a28a651a4443ad196b3f4f47247cbf9 SHA512 0bcf6e8795f843a84199d85b97033948ce22719723644dfed17b05cdc68cdd91eb131f930a04c6472bf8bd931946c8dcbf86c35a380bcb85fdffb8a686e98953
+DIST naga-0.19.2.crate 537942 BLAKE2B 0368d7de05f3ba696b1581792ffe8a420e632e287930a53ae2df5de4735783de83e20758eb6f95c1b8d33bd5452f619fb9ce7c6c9d9a2b7d2aab06787372c182 SHA512 521926b6704a6dba2d1dfbf083641bb71e575474a4c44aa5be10285f0be4467c36e68f5b2f4542a2073b7f59ba6d901249d9957ad10d0414c0015a5e1005049b
+DIST naga_oil-0.13.0.crate 102295 BLAKE2B 640d0b6d3ab92a6c98174bd9d40abf0fcf847abc8ab35eb8d826b2a89ce9df78c49a5ec9cb523b7ee7beca8cb56a83c508231ac8a1f7509e19aaca8fbea8a925 SHA512 1a09e456fb502dfc63dad209d308440d00b68c9d7facb8d298bddc47e7f7cef4c9a5952b4711e9fc24d755d6279f741ca2c77cea524af1bd8b1ebdf01eaca0d1
+DIST ndk-0.7.0.crate 54683 BLAKE2B 6b8429c4201d3efbf3665025d4126b3fc533884b211901fd167f502f29b76401175123abaaa948b2172b8b6d272174af24def92c8e176e442170867b9171b4ca SHA512 9c32cdd44f5e9d57e2c19dab764db1d4d8ec63bf08021e6f4dea4e5eede85b8bf54002016ca9385f9f6caee47d969780f653f360d866e862f760843798cbd58d
+DIST ndk-0.8.0.crate 79770 BLAKE2B 82ad3258f730bc26f91cfe231b3bb811de466ef30244b963c7b78f215cb396a50528129773a986121069d058f5b1d79e7aa8a18f4217e371428520f95c934301 SHA512 bf666942469ebac77eb2ddffed6a276098ac291d459d4b544920fa6644e9fe71a41e556d7d46ae2c23b46865d2825b08d0e2eab3bc3dce2e6f9b2d5786f1d9ec
+DIST ndk-context-0.1.1.crate 2205 BLAKE2B 6c1013410459ee13357877654303a04c2ee674eae77911d8c35dc7ebf3df2e8632440c26273f994f90f083fe20b4923240e3b9eaa2ae90faccc7e2f0021b6e0a SHA512 3e15db351492b3f1935424a4c119d878f5d771d6ca0cb6161e4105b263178e96e41cdf1e927e5f3c81a281f55dee25929a9cee911eeb4ff307dcd31fc400398b
+DIST ndk-sys-0.4.1+23.1.7779620.crate 291699 BLAKE2B 3292afbb535382167d2a5cc52bf9bed1f17165604cf579c263de0313efa51adfaf96c152d9c00a99d975b92a9977c372ee0aefe525cbc0bbfce9a1aa1fe2d707 SHA512 26af0a3c0d1bae2bd548f075019613a7a9bdd751a6b4fe9cc667dbd7f39223d1468b526cbfe7a57af4db206dfa1407032ad29fd384cfde131470b65d9e14720b
+DIST ndk-sys-0.5.0+25.2.9519653.crate 307233 BLAKE2B 884f73ab15acf81b238d0ef06b66942949222506ff0f6deeb009348ac8870b0a8e74b4015ceceb2bf0611609ec4acd0923c2724b1240f314d0b56a42213e0b44 SHA512 380a6c0124df4bc2a835465506c1837ced58f1174ddfd89891c1784ea27508023543dfd229a5440ec1e593461e0e96b07557da72eff4b90032deb8cdf9db9be5
+DIST nellymoser-4a33521c29a918950df8ae9fe07e527ac65553f5.gh.tar.gz 5970 BLAKE2B 70d67cfaea7fb849741fce315494644f094be7dfb653171126122aa00e80cad4ee0107dbb3b0953a046b20177242dc3f73c1253224f2fe60aa39252d9542b303 SHA512 c9c0e2ced1d725dce18ff6202262997e3290c8141dc67a6422e2fc8a0238992c48acb187bb9f12c5eb694fa074d5d89c7ebf3d953c02153115bec57016c7bd7b
+DIST nellymoser-754b1184037aa9952a907107284fb73897e26adc.gh.tar.gz 5972 BLAKE2B dd4604ca10d26a1d7def7d6321a1164a6011b48d44f322128f98baccd6b76bb1220515d7f73a1ef31497a6ee030387e31ef03d30b241fdea0a6b74149e20f3d6 SHA512 e031364892d61f973131ee76b7014a90a36bf5ad14ea6d481cbd2ac5c41266a1f195eb71b6cb860ccdd5912edc166e73b420d15a5dd49d450be8ff7f70b3d93a
+DIST nihav-vp6-83c7e1094d603d9fc1212d39d99abb17f3a3226b.gh.tar.gz 37669 BLAKE2B b0f2c3598d6946e44406c59da1b74d5f862a1a0403b96009e9b8dbcfdb911c242f036898d60316fc767d1c7ad6d5f098447e1711556dccb7c6164f507a576377 SHA512 97a122659407815aa563120846eae98395f08eb4eb300b0ca1ff59526af2ee002e3932b8ca03c28945eb9394271516fbba43526d230d41c08a3d33bb0d6ca4c1
+DIST nix-0.24.3.crate 266843 BLAKE2B 1eb1667a60d07c4541a0cb0cf0bed2c7c5256411028becdb229febd0f6215e8e176d3bf691f3bad2fc64841209bf364ff8345a3e92afb2bf8d3705fd734c8ef5 SHA512 6ecda3a14ce00002265e46a066b443cd3c092a306e25d9206b74ae31b8468fd5105b597ff1e7097588bbb6ef5e52fa48ebad908303b61db53361b525f44c13ad
+DIST nix-0.26.4.crate 279099 BLAKE2B 41debf1f21427ad6c25c6cd26b7867feb8ba46366028c4b74073307e902e526543f536fc0a66db2cdc5a52fbbf9166a6a4843aba57e5e5caada3d914286ddd60 SHA512 cc68ff8e3e8ea8635c6fd4c0a866cf42121aa3e25165666ef3b97b5b2c1d9273cba6f689e80eb812b55b5ee513390924a926d95fce45de0a74b98764dd1fa27d
+DIST nix-0.28.0.crate 311086 BLAKE2B a07023566f04896fdb3ef8b2a1ae8dd64adaa5eb48217c58588e1b41733642e03e0637350c0ee83ac47e663c02b24d5668be751f8d199aa773de6df8b2213894 SHA512 73c0c94b360f4fc81ff07a13692b2a5b5ceda3a7203bdf1e526facabd36cdf160f0ae8fa479e31a4e4237c09bde11e9bf821aa496311cac8614f9c5626f8d69a
+DIST nohash-hasher-0.2.0.crate 8051 BLAKE2B 5f307e2bd15580f398d53d499b9013a6c62becd4ef0d3edb76f9fdf83a59c8fd86ee4bcf42ba3a8d67bbea522db65828fe7fe324ffc8d5008428570d7b2203a5 SHA512 b1b754262471ac1fb074559c264321f8f08c46c55752187f51a93cdc73509551b43008751ff9db4aa5b47fbfdda783904f5492349546ad14856fe485ccec55d8
+DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad
+DIST nu-ansi-term-0.46.0.crate 24311 BLAKE2B d2e678e0eab5ad48534e686b1a4af344996d1b07a0fa40839072df3061bd7e5bc9341363403ea3ef8d19c7725ba3b7a8ed540c63e2209123b1b93f69418288b6 SHA512 b4f37786dc85e0596e2b7b261a5a9fe0265bf1651c39efb358dd649b926b12c3093f307b98bf0c4df3899f0a7cb1854f2596bd5c3e22fbbef42f912ab2eb5043
+DIST num-bigint-0.4.4.crate 99369 BLAKE2B 09a44754e3a3d4f949b3714d96ddd7f3915164d611036675e3df421d6c0863e368eb0180978a4ec27fbfff529b4999d2593e411903516670c24c08fbed6a79de SHA512 0dcef3344a933509fdfe87d6adb0bb1bf67af3c692ccaeec5663a8f18ad0a251199ef9c7a24c25b95d1b255b413947e70f0a205669d549b13e54b6f4864ab3b5
+DIST num-complex-0.4.5.crate 29614 BLAKE2B 32277724d5336443768a299c835cba63906ac91b85c57ff0e57338902e32731a0e67a93c647e6a57ae53a1b4a961c8b9ca2f6937a275e51a58089378a9646e8a SHA512 7b607f240773e4f4ff1954f46b2ee85be1a4f012e2d290343f6178543d10b69c0e9e1a93b0df8efa013c3914ad48321e1d96a4578092ae4d359acdc239ce1ebf
+DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100
+DIST num-derive-0.3.3.crate 14545 BLAKE2B 3af73d35ced61f8e4fa2f2bef695f72a3cf1f1a67c77982d3518d9383331f34c1222dd7d72802cec22baa108ae08a87805a11942132c565ab8439c4983e99871 SHA512 e0f4d06fff26c2d2b140ff5ec1ba655a46c8d8fda484f03a8ad4910e8cf1392f0130d5c0bfbbe3bfb95da1f93e964f73364de6551fddd81e6fc27bfa35c15053
+DIST num-derive-0.4.2.crate 14709 BLAKE2B be4abc3c51647f2d4ebe0c0619948cdc994c6ef808d768dd2b9274410716f524ec73c75440f7a780e4871f33055c81f800b0171e4b7a4e2214da5a3007393dab SHA512 55b951470a07dbce489ee43e1540056123d3eb7b5240903cd348951b81ef5aa5b2b1db311d1219bec8ad191373d0079bf40861e3f45380f8d8132f39d33b4f4c
+DIST num-integer-0.1.46.crate 22331 BLAKE2B d88c9f84e5d803a3aa8f44dfc1bd6d9b5e336e7cbf47231cb3a7de30dfe263c41c62c586d31f0029459c8c240475cd329b3fce79f355be7643bdccf8d56dcbba SHA512 e27986d91f6c6dc3d5a0900defe28ab5f47905cde3f84d0914b7acee076dca8fec6fdb7b631ac94d3a31eb01ecbc5854e51afc3187cd1abfa21e1bfafdc700ae
+DIST num-traits-0.2.18.crate 51930 BLAKE2B 6c40e155d7a52267a7183d8030ef34245492d33f103cc24551b10da3eaa18e3db485062ff87057dc23e6b55e381e5c5d2a2633aaf6f4763c06677a0a0c524f02 SHA512 e395ad9f3b21b0dd1d3a94cefe0d68a42d1b1d429ddb2823696f9cd75042568a635d93d133ddb9497ed357e5b3be5caddb8e4a4af87b65882bbdc60b05c74ebc
+DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d
+DIST num_enum-0.5.11.crate 16772 BLAKE2B 4f032e0605730dbd72d2e7d6e06085211e885f66ff43193b32c7860905fb85070030371544ad1ce0f926e93ce13a1aad6f70f4c300abeed447373f40a46d02b3 SHA512 962e0e05e7c0eeb8e7520a699066f2b0af2ad0d5d8b4ff174c93aecb609051a1d45992c0cb6a62cbea0ed391d716656047966d5bf4c3467adacd2c5550f33578
+DIST num_enum-0.7.2.crate 18571 BLAKE2B d68d127db218d8c4a34849cbf64a8dae823e9404bb4231504ecbe02236d04d96ac161c3dc6e400a05fb458e42bb24418ff08f937335d37839b0f9174e3a5725f SHA512 a002a35079c81eb39945b3b2a903c1d904924c8417e12f54b9825ccc04a2f1ea1b1b93ec540c746926536851c2f6a9aa71be3c05a29afbd5924236b3e7874389
+DIST num_enum_derive-0.5.11.crate 15552 BLAKE2B 35ea9ca8b1a4e7b40b7c9193f57a466d4436945a8ca1e11e40fafaefff8de6229957594db72e6632dfb49382c52cddac3c0198e9ea063299502ead3b6d958900 SHA512 c2f89d0642c41faf6baf6b718b52b8b09cd17b6753c0098649eb8333cb253c8a166e1f1ebf1be99039e1d7d9c50541a8741645d630df8285905ebff7b26759af
+DIST num_enum_derive-0.7.2.crate 17090 BLAKE2B 708f474f6be67cf1f3a63d989b6e84ff33a165f0fce98a2d82d99eee71970f2bcc2c9b58395049d0b6e7e089446a9155ae6b7d6621895326c48049416b5817f9 SHA512 f3d825aad4a04bddaa42d07ef4dbc69c793cc53999cc2b32ef49fb28499cd812896e0c5b89b9118d9def495de0caa05e473109a0937876da4c1a628964a8ba6b
+DIST num_threads-0.1.6.crate 7334 BLAKE2B 416efdf395b0299b6b01e1508823afdda08cf67ca54e1d644fc5accbb0490945a492a34bc5ba70c3e838e6405d17ddce164ef87468bd9da27097de8994ad9577 SHA512 b2d9897e29e59353379b6372a629fc7f9afc89f777b4410eaeac7b4729527948a8dbecb175f056899f9076693ef855cc0d40e725cc54f28af588fbac5f7ce3b6
+DIST num_threads-0.1.7.crate 7455 BLAKE2B 282514d1c6ebe67ab2c30f91efd5b6c8880baa078265e22d5d7200eca4f96702aad8b537ba772e5d4e680a6e90fa6919fecfcf37a060668b2a618bb01bbabf2a SHA512 60eecfe49c1afca8efa320c5f4d0cd794f6adf8924193682c903307f484ca0a1ddb56102a772232aca040f29651bbe26ddc1c4939e1f030e229d179837e06bda
+DIST number_prefix-0.4.0.crate 6922 BLAKE2B 81bd3b588c788e6865104e5ce87119b5e0c5a526042963d52cd582ff23c2f8c9f32b4c445ef0397fc402b6d047e031d8e2c67ac97e191bde22e17662eec3a554 SHA512 a43b668d7314218b86ca7451daa9dfef71f6c9f6616bc34c12d94ae6030f182bcca9da83905cb46f3d49d0aa81385a787e92e4f3ae239658067adc249f8174df
+DIST objc-0.2.7.crate 22036 BLAKE2B 14a41a5ed6beb100d68601af12914dfef67a9f580f80d70c4578ad9df98a6b4496bc3a1003dec762a27f0ae71afe2c9e8fd41ad715bdb310722c8fc092563599 SHA512 7178870c8e4e9154b4c7b4953b3164946b7ce72c956a02b9ba18889353c72be735824bd73e44a485e42ad5f97994820d9153ac684629342755a6a63711ab5988
+DIST objc-foundation-0.1.1.crate 9063 BLAKE2B 876dd217b612278a522f2d08434537d468f8b0fd1efb0e58d0b58216e20f7f9fc80a5ff034ea25d9216d4d53b2d65552684ae5d5212f18d758c7937c91742a84 SHA512 976dcab4e62ad1c387a81723d70b969fb7d332e1f7dbeb2ea9a26c62fa999d91ff6d8f737ac5725a7611334862df16fa8b15765c036d7acfc3e42a745d051f34
+DIST objc-sys-0.3.2.crate 19647 BLAKE2B 217743bd549a7c3ca76e204f8706bc6442f3cc354bfe91c9bfcd5dc8780145a14d9c2b7b98412df548bf6bb7a5dfbdbe7ba5a946c5a1158b505f73efb754a22d SHA512 7cb71e8e11196065fdce0a72f0c903b635d28b673ae9c19529c0e83682d4c03d58a6d310da91fb7c953e2b184b5f02a639aed1da8546a700809579d73e039d3e
+DIST objc2-0.4.1.crate 162783 BLAKE2B 45c7475c07b67191bda93d9a92c40eedbaf662048d8aa04ef738494367f899903fd5157b0e2fb1092ce7bed290509e8267fe59f720e8eeccfed10668ab944860 SHA512 12968441fdb26a04f0c0e61195d92f13630fdb034148fc2223ab2807f960bb79a4860ada6d8a365b6932c871a27902d22fae3a61fc8efcfed38f6ca87ee8785d
+DIST objc2-encode-3.0.0.crate 17934 BLAKE2B 7522f62b00b69299a15a7f4b7e242b74c25d31b22bbe8f5db62b9533ec2ee5f7a0985ff5ddad02da50e52056ec2b829e24874fa4b74636442a4c124c35304268 SHA512 040421b6df9badbf50ed381775bef64719b508da021e036bb6de3ff09f513ba1751b8a5c663715e79d4e0bd2e67b374718d706defb7c30ab920412db8550274c
+DIST objc_exception-0.1.2.crate 2251 BLAKE2B 6e46ab02269b6c3ef7d67f70bdc3b54ed675919b9de979cb60ebec4aaf79fb2f34614ceadbeaae75e6462ba6f09d859e38208d62b1dcb7744db184d5ed34ab50 SHA512 62abb21aef920a6bebe773d4680537f135975e5057af46cf11cec787e5224790a54b1c338d62b0fc8c91b904f018a3fde06e624096af6f5c39fb5aeb4cf40807
+DIST objc_id-0.1.1.crate 3258 BLAKE2B 9a74fc17235ffdd7987c2735a7a9d136376fd13355f0561b4ecf234784aed077d1ab5aa11c1a82fcee7d47d4d36e471ca4ba3e5bb725a2ed0049a5565967326f SHA512 ec36fae6f5cefda00f3e44618b3c9fe6ec8f528f70d1a95def6421704bfa128a6e5b4a32e9dd686bf6ff60c4f87fe8094aa5e1c8070bcde58b17fdc06f49f9f5
+DIST object-0.32.2.crate 286994 BLAKE2B b9085200fe0107ab0f8ddd5c5ac82bc681dc6266c6503e4a803ae4dbdec775ae84ca4a736754b770d858ebb058342af45d485d4c9a41f57966ca1466de40a4c5 SHA512 5d03d998f06dc592c3be141f7163bd72a0e73396f95d22ef1e0ffbfc66489bf727a6f6fb813a32739609b619b8e34a471974b2231dcfa23df8bff52007c25a96
+DIST oboe-0.5.0.crate 24384 BLAKE2B f6c8e34b0fddd2eed7aeca141c2e679494ebccaf735a2551809f4d3f2242b59812fe63bf3e1852200ad1a08bc78af169573548558d8ad51e3c9561bb00971fee SHA512 e73a7a0699199d88b08f74e9073d83a3f565ce861ed05bf8f2f1acfa8b4f4ac42147870e0cf6996bc5f53df4397e506e6f4f0a50916c721517ce93dc60ce9859
+DIST oboe-0.6.1.crate 24588 BLAKE2B caaac8795247ee9c14f02e4c572605f590930686487d7f5f3195b4f1adaa837a024d8fe2043f90b97af7832f9b8624750dbe7def8111536a2cf1f154ac6b43ae SHA512 62b7573b685ff2e64d28337c3c08c556dc6355a11ad31cfb2bf3423ef1eb6a73ff38201dd5c116580b0a540b3f76dbd4a5347758ff40accc1bbd50a893cfdbf7
+DIST oboe-sys-0.5.0.crate 150829 BLAKE2B 8e0b92c76328f398076c4863b04ef68dd4fa5e49404d40e136d74611263017fa95a75bee838d4c37ac25ebcad7337d46a3e14db8c0d91f2f1f8319d6358661af SHA512 4cd1272d4746497da1fcaedbc784fbf802d58bde69749382b1e7a57bc34e7306c558b620c3c2e8eda15aa9c49fe73e8f1ea279b40782dfed3cbb17f7981345f3
+DIST oboe-sys-0.6.1.crate 169091 BLAKE2B bd2ff90400c1a2602cdce23ae7a85528a4913523416a7a2cbd1baf91a07b067f0761a59753dd35dda622b1748415cab8c9b597404a738e6d5684b1efd1635714 SHA512 48378bbc6ad3d9cff907500bc72042a2063ea5a4a0493a577539dc7fd3280cb4e32b13785a793d8a3350656b7b898b46e61ecd20116b753a54cfadfee2c545a9
+DIST once_cell-1.19.0.crate 33046 BLAKE2B c14b374eaf4ac0f60acc2e02f7bba270a0e8e0a6978d749cd3cb0ab3eb26907e4fbea70dd5132982f90290381ed18ff8a87fd530f1415fabffac864f157ea380 SHA512 4154876afd34a699ee650d1a8a1c5ee5a25f0ebd9388b8bef2564e33629fae68f113d7507488c68abbe7ea1acf9bbc41813cbbf3ef3e464e3f3b9cc7a51d870c
+DIST openssl-probe-0.1.5.crate 7227 BLAKE2B d1fd6a9498b3ab7f25b228f19043067604bf20790530fd0ab6fe3d4d3bc27f13e6e94d1e7ef49314c3663477d8916b8790b90427f74976143b54b95350895165 SHA512 7e560314150709a34520472698060c4f29689d4e608dc4dde146140aa690350d3603279c693367deeb0f21ab34ef61956143a3447827a2b7a3d578b9ccd6552c
+DIST openssl-sys-0.9.101.crate 68568 BLAKE2B ad80cf56a33c71d6889470e4aaa0b314e67f75ac7921a63d87a94becf9203f4980b6e17b230c0954c126ab8df3c499444ab196958fa645ac9248ea8c245fa34a SHA512 33400053919f7fb2298b84bead88d82231640da6db4efe3dd21a837d0ddb50b2bb21be5befe1734bda15107a9e23cc9f8392647413ceb77451bc36034831b684
+DIST openssl-sys-0.9.99.crate 68158 BLAKE2B 59995535bc24f0ca67ea204193aee4114f88538bbd74ade7c22bc2ea1b0d7e41a79118b6d22917bd1e305a43c16f8aea095c635d27a56fc0481a2baa3092dfa3 SHA512 b91197583135c22d34814e6382dc4ad4be9c3905c979addee8688dbc52ce627815e719b9d0b365195335d4d665eaa79a406f89e4c19cef73988938d51fe2f4ee
+DIST option-ext-0.2.0.crate 7345 BLAKE2B cbfc03e7c960fe3023512a4ad816d657b4f54f8ecbde9f9c4df4c5fee3b36b68ab463c67ad650778279e01c7ffaa63a0dacbd0c080c8c3d15b1611de0e71f92d SHA512 f8539f97b01af97e0b80fc96556002251befa60f8ddd19613311e62f9dc9834d71c22f5d8e7c53c4925046e38cdcf834c3c28042a4da862d6f6a21ddff8d8e56
+DIST orbclient-0.3.47.crate 1324509 BLAKE2B 6596cba24e840b64db31ad9791cbfb60d82d46695fa15718918947040d9b8076d3134ad0959e1b7499c457dfe75b270e7feae9fc4474db5ae1a33c21e4de4009 SHA512 dd232376bef63b9d422949eaf2a210625c4b644faed72d58621ac8693ba6095c8f7a4df1a5d1743fca8d6d68e5aa44ccc0f4cd3dd2b2f18e7b10c263edeedb8a
+DIST ordered-stream-0.2.0.crate 19077 BLAKE2B 581285d32136bb9c2134f405c5a2d67c952a36eb3613912be029f2826b847919188e1b479506b46f20e0b63d371f476b99d9e7e1ee8d47ddef7b4f48451b0e3e SHA512 99976f90637f0daedeae05d4270d33bc03fad1c06a85bcf2cd7140b149f76c7560d5e60becf05a633a62dc82f7f65900eb8f510c62aea4e630b78c45dc76d83e
+DIST os_info-3.7.0.crate 24133 BLAKE2B 321f1c47fbb4425bb7a779a45cbd4edd0c8e57bc97739b80ff28ed19144913af775aabc0f328fafad6afb75f2a54c8b0132c943eaa713b469138144a68497e4f SHA512 46945e48e10677fed222a6f34e428a7fbbadc4535b929f141d98483246d1f3cfc45eee905f1bd75123a101d04c5111b6376233a5cc50df2caa482a461fa49d06
+DIST os_info-3.8.1.crate 26402 BLAKE2B 4b4f021d03433147021394cc25e2f1394e6f7d31683802d86e2b2010c78aa78baf814919d6d2067184d4b4325116b50369032a063c3d60bec0f03acbe188437e SHA512 ba4e33b09d5ee9706ac83f36ed8f08125f69e04116e62c9cad56cbf4f49cf88b658de541a80e769e31dc5eb6f92dbfb900126f5a217069ffeb802c6605b3510c
+DIST os_info-3.8.2.crate 26400 BLAKE2B d685f62f4273a75a5820d5445892fa5878cfcf3763730c2eecdf15fee12331884d04906b7c105f437299ee01f2999f77b6a4034e94f781bf694cbad8aab82b10 SHA512 4454fb13dbec94aea5849427742856619abe77b2209dfd0a60a8f446ce5f843b423831632786eb850d0493e023977fae705d0fabff90798774d1c32366984916
+DIST os_pipe-1.1.5.crate 11430 BLAKE2B 45abc371ddd363d193817a339f9e1894ec6fd275b9c9d190283347bb023ec7686e3ca6a5f2bf09cd7ee6abb8843ae52410c203af2310bf3e35c280c5b9874ea5 SHA512 d862484e9a0594f31e45531fac9a892fe247c1003a9c365a28083c0b5132719fe6fcd7ed996716a4baddf1f8ec4857d62d05663d3fd7ecee5802005c55368048
+DIST overload-0.1.1.crate 24439 BLAKE2B acb2dfa6c6c22ea95cf58079f6ec56a2bb5e297a055ce717d40633b789b0d005be2bfd6616448cac61bd032e74aa6eed212f1677461907cea2f7f7cf536c157f SHA512 f79bc3321f45df5e3d0e5fa9c4e60524e4e28dd3729a09956766738adcf99ca42c187a01d48701ebe23d39aee00a19d4a07da798edc781b942e866b339613532
+DIST owned_ttf_parser-0.20.0.crate 150890 BLAKE2B 47ac3309951c24f29151299512f0f54f96b22ed87ddb20d6f1a05861324cb0898ead8b12bd8c64e595b7cecc38cbe3035fd54c13d80ec660e7496fa30f573b4b SHA512 edb121dd4f9fadea578a11c2d9f323c66892b9ccb4b94c1c40ddbea1c57f83e6690b6cde45003024741bde8042f55e2119dc5b5b68e11dbc2a32bd58910ef00e
+DIST pango-sys-0.18.0.crate 24709 BLAKE2B f197872258fae7b554be9d62ad2c7a3484fc817430b008263a6b2d20845809ee3c450fa8c65e6845854d5885cdd80f24791a94ee7fa3cde43bf1c7c504f886a0 SHA512 b20df431e744c7b19896b31f487060e0d929c65289520f1fd4d624ff708698d4e082baa73366321206a2a7e3f4ad126ace9b3e55169ff815c9c6b25e5ec5ba3f
+DIST parking-2.2.0.crate 9730 BLAKE2B c6da9ea4d8c0a488a64510781b025ce07f283814a09703c58e8d46c625cd74e2c55d7e28a4c09b0886fe4ab415b128bd3114f8283d4c903398e12a11d65489b6 SHA512 184a4514322279ed093a27a9bcad5fce808900a9ebbfb624216dfcb90a5483e8bcc054d82a0bba4da3809364ad1ed0a623328cf983bec3751e4503c9670a3f9a
+DIST parking_lot-0.12.1.crate 40967 BLAKE2B 940a112a066e3cbd15e2f6df89bfff37e4ece2194118618a96fa14871813c91798f93181ab0f768d3e1f3d60805508f216724013afb7e3da95678d0d951a42d4 SHA512 07327d3b737a913508dffb66023766348ce7f9d555c224a099cabb05baefd16a28e15fec638e3a148a5169dbd980c4541b0f8820ae9d06dfe0704482838fbd5c
+DIST parking_lot_core-0.9.9.crate 32445 BLAKE2B 811d8de671bf6e0911cf0df7dcaee4fb03a3b223173a3bb8cee65a28724eeb7bac87f62aa7b1df5ea3fc93af3cee3ef30b83d06c6773d6b856a7e6fa5fa197ea SHA512 7f0df70f9f1ca8d3da0b9dcc96e49daf05d95c3a995289266b5333f68818d686d32b0c733dfe3a0f62da78fa45caa843a963923b2d0c80899c33413dc749c032
+DIST password-hash-0.4.2.crate 26099 BLAKE2B 3f211d467d43960c1d767111c679d2ee7ca004a14946409e37b4e8ea46848100095bd43ac5d4e4ab31828e6fc09e67eb0b40e677dffb086f711668c4918c8bcb SHA512 f6b7da81fa172ed37229894c426965182be1a445ccaba4351b91ce43ff1ab8cacd205b321721df49dd43ba17dc6a77e9b7cccc3a0c396572aa7ad642af44926d
+DIST paste-1.0.14.crate 18157 BLAKE2B 35e8548611c51ee75f4d04926149e5e54870d7073d9b635d550a6fa0f85891f57f326bdbcff3dd8618cf40f8e08cf903ef87d9c034d5921d8b91e1db842cdd7c SHA512 3a793f0e5e773a7f7defc798a4c17ae9a40d715144632ea6cb0a8c785e14c4212046491df016bb9838281f8eaf327a79f01c1e2ac5f26785c028bc880faff9ee
+DIST path-slash-0.2.1.crate 8821 BLAKE2B b3564d0f689ad1b943d132fd95adf2ff654b61f182082bd22f7b8f11dc9024cae8e1b9f3551c4424509db17aef899efd3df96a67e1cd588ffe0fe385c957b361 SHA512 c046707586f25f13d2f9fa452ea340198f6d2e6333ca3af806b9d2d1a61d46b033fffad60d1632ec16062fa79a3710d695b923b831a7db52602b728ed31fc3ab
+DIST pbkdf2-0.11.0.crate 13229 BLAKE2B 33a9fb386ab9550cf5b8b54a48b8ad4582c95c1de7b15e767caf7b08d5996677f0926b57c556e43e90daa099fadfd1f5bcddec3bf4a48a82e7c71228b5398dda SHA512 f900766e8e84d865670977bbe5816b74036f0c2b3a30df4c8ed73680f76f0ae111472af7aed96524cdf7e1092609c2008c5f40efb9a9c65b3a796b7f3415c087
+DIST peeking_take_while-0.1.2.crate 6697 BLAKE2B 31571604d00872900abcb677a483da93654de523bbdb0331c326dc9a3e531f246e571bebcb983e79dc46e33ed6dd32b978be509841ec0d9f1e7209c06289c22a SHA512 7bf8721987c3e2e1986683dd897746592a909382f02b840b777effec7d8b0a864c1a83b03c73d555e359f22c423168a54b75448a7e7b996b739527ce8c88b721
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST petgraph-0.6.4.crate 185895 BLAKE2B 9ddfb2796c461d2820db8227753113b02024e5dcb694a0bb2826bc1f375f028d8b98a3bd67555485db7fab88eb86043f5b768585dbe0c60703cc655976030a2c SHA512 b5a21572526387af3151dd4f864bd95c94f65eaf0612d96f99926faf646214df205bcc652b98d3b281f2e270779a4c1fdd6a32614ed60b3612e5d594b2bf3f20
+DIST pin-project-1.1.4.crate 54230 BLAKE2B e90fcdc609f42171b18a42626e59dd904555774c4c012a274149d18ee899ade6969c31d9fd706a363ee2d1a510d80d24e438e04cbed5f4ab26b9d645256e2438 SHA512 e378034c6de9148797d874e9a4ecf66039c662c54c263a06413a2ebf5bbbbdf21419e8738d6b2eca6bb5d2043102e52dc6d0e370e7c242830ced0779e13cb6d8
+DIST pin-project-1.1.5.crate 54214 BLAKE2B f4adef2c4f5587ab0523e92b7a662c035882237620fc87aa3919bfd360745b587ab84cce3cd0db24f4f15bd358a46af1cfd196c2071836f4d300be998b6bbcf7 SHA512 103e58f1779cd2d6c63053e9448d0f53edc7f08f29540fe0de2dded1dd0b7de50cd62d31ecaf6cf30b1a7f1f5e4728beb2cab3e40dacf8ad5d5a7a6254527578
+DIST pin-project-internal-1.1.4.crate 28249 BLAKE2B 6d8dae4d59d0b71c9a66414cf5babb45285a8d67f798a25e5521495ae23e983b871bc8f70c20d0785b5b53acf9a5cf734f137b581852a542f98b0492cf6568f6 SHA512 b8a687d1d2fa84bccb41eb7652434036c227268177f2f05a7071b0dfb16672fc8a9762ecac6c4e519478cefe16ed4bcc2c77dd9298057dc42f87021f8e0a603b
+DIST pin-project-internal-1.1.5.crate 28280 BLAKE2B fa30a86b1c2d1a66d7e427b04772efb68bfd7c006194dfcc458713b4dfc8c90929e43732e0792a9c33285855857f0979780e854e303322243b7654a120f74ece SHA512 f0c264460bb111ed8d0d3bf57cbb0f6a1adca16500accca4be7e5ec0d292ce6e1319c6b98108c583b85c3211ca1a84a5470f3e31caa63989f52022abafddc032
+DIST pin-project-lite-0.2.13.crate 29141 BLAKE2B c434a336716c9cdd16ebc297fed393e9106ef167a693c4aa0b12c681e03141b8ba3cdf64c310916cb7d5cc43cbbfcaaeb39bb5fb1e8b3efb9e94a3f72af914eb SHA512 7f12595d751d315de6c0d380e2f501b74154661eb676987d2cab6fdc956091a68c9cac658df45dbff73615e982e6ae2ea138c09ebb708cd6c351f0d18dbbdbee
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST piper-0.2.1.crate 15878 BLAKE2B bf63206c72b08a87da7ec5949124bb2742ec0aadb116f4c2ea86b09adeec4f741479b64e92f824a3df87ae9dba07ebdf812cbb6622853f9223f8ed90ee6dc389 SHA512 86d2195b8811bc2d30050e977925a947b175ca674e99497b7202dd8c515e09fb83e42f389ed3c6b554dc2c6480892bfd26c91fee463115ef1c710aaea858afe1
+DIST pkg-config-0.3.30.crate 20613 BLAKE2B e14dd544612f74b038bc7d279d629034237946c261e3e97621d6ac910a12f4fa4e75932dbd5d3339e62325d0ccf33002b07f04b0523f93d2bd3b1a919841ba66 SHA512 e4bce232e1e1cbb17d1c08c3de4dd12613f5a5238f831c2a765b6ede9b494e647d2416a7d9a0c926104e24066dd1b38df8df98a6c55d62f25060f80eb33d064d
+DIST png-0.17.11.crate 98834 BLAKE2B 21bc47c7f96c135fed2cf7db902eff0941619ff79e34e439d9a63ebabc8c5967323822446417a87e8c63ff3fed2f99636b86268321f5fb4c91225f1f7db97b93 SHA512 4ff7ad4f207ebedcee68b2b4d8a8ce5bccc48a3931939dc13ba23b486cc1ba92cedfe227fc14a21e780fa74eca8c7dcb336b3da4f7474a475d057b0c98389a37
+DIST png-0.17.13.crate 103176 BLAKE2B 99bfd1c444f5967b715b81607e3c3266fb3b1d8110897e4c93afb5b6e0e28df262f9c9d842aefed922c38a5ff9d16e75cca065d7cc14ddadb3a7e9ea4776e787 SHA512 064a932f4c48c2243286a9b4cdec0487cc976291bc8ecf4753691afdfe43acda4b17ea8d48ec933f309d158df28f40ee93b5b32b3ab5252e2e7aa1ee1c0e4e84
+DIST polling-2.8.0.crate 43554 BLAKE2B 8fc5986db7c34989954bbe84bd69d1f61c59b890d4e5fd21a20f3861bad750aafe2d1a89b3181df97f3659f1a6c980a92e43dcb9ef9e1de3881518024caa6f58 SHA512 c22dc35f39f374f21483c987d43108472dbfc291508e3f5e1d76e2c466f40b396b1ba7c222db5e5a2c0e670e83b4c34e0fbb5c3e93d86435b8a2ebb0890471a2
+DIST polling-3.4.0.crate 56336 BLAKE2B a6dd890abdc3d62587c79188db6e4a50b6af4544df10ae93fa8301595a3679bf482ec5c4f280cd6a313ce67b8ee28cf931d557021efac1a3ebd8c7cd75454c6f SHA512 3e62fa4f498d386dd6710bb14474e6e5e3aa6a4759b45cee16051945fce9710068eb7d36171c6d8108c75b394c01531b031461e8254131b36a5deead1d153842
+DIST polling-3.5.0.crate 56439 BLAKE2B 5a86c9889410c26a667a70a68a0a37f1949a2b74d8256586f0f210a20fa4d4573251303d0282efd63af2809e123cfcc7e782edfde9201d87fd2a542e4eb041cc SHA512 0d9e3e8a2141e1e2796a2a41c076c3e2baa4905b8a7828a52bc557e4a702b600e299e0d9b44c76729d1380975a6654f7a1b2afc5a625332e9be396af15b1400e
+DIST polling-3.6.0.crate 58128 BLAKE2B 650221d0589d477a899800f6fd1de0c8c8b16a37fa6d16867e250a5ccd8d95e4814b1ba6c36cb2dce3fbfb089ea0ea76bb61be4906c10c6be5b8f3d595213fca SHA512 68af1b166c7c578fe8d4754122666760c1ba8a206186d38cae3f272ec6d7ffe6f6d585428b023f0055591f0214361d14ea6a953bf5cd1b8b1f2f2677ab66cdcb
+DIST pollster-0.3.0.crate 9436 BLAKE2B 5d61b6eeca2bb5eb58728f644cdca2e2090d2b2b719534f55c3c22648c2f9e95ef4b0c42cd0b99aac600f953de49c4001579e4f67edec38530e298a2e3717d80 SHA512 f528a948a912af3d296adbd87fb7f207754fb1464fbad145c906572e205cda82c70c356cd47dc57edc5920e1e4383a2b1fcdae471ba9e35b1733f506e3692038
+DIST portable-atomic-1.6.0.crate 140689 BLAKE2B c91d06e04a87c9a207233d8a850859aa1f5cc43dda8aed34511c3fe9641c27412796539ed045a58e649d2a0c7d71100b6b2d78a0c662fc061fd961a652ae8722 SHA512 b27cf57655a2f1e2d6ea7b45d80b4f9920a836e462f132c50dc1e4d314e162444309de1baecf45dad2defc7a5b99759165e54da9fe759b24092f8cb8755c515c
+DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST pp-rs-0.2.1.crate 25905 BLAKE2B 6ad747b3a5641c33d0f8815f5e755ab6a0d1750f2eaeab5da69e6b671fbda5ec9acfd3e854655c09914aafbb9f1656c601af080ccad5bba88ea8500090474a3c SHA512 bd4b50ce881812ad6afd3e03d83212ce4987828e379e254591a0ed47f23f16d1b51b555be9ebd347096ca85f6d75ee7a8190564a20383ddff57fca8993483056
+DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
+DIST presser-0.3.1.crate 20946 BLAKE2B 270c86e5b21e660c68fc5c4f6780371041dcb161bc2c3044e80f16bf9ee09bdfca900d2b7813679bf44ad00147df457f73687dd822e8a2af3a707f63bda553a6 SHA512 d21b42169dd0769b2910b04059aa9b920a98fb6487184d61de6e94e1891e49bcf75dd89012554bf2a5fb748d2322a87b24d8a733c34f6294b07b00fd76cf397c
+DIST pretty_assertions-1.4.0.crate 78846 BLAKE2B 68583c49f81ab0cf5b90f6de10ef3aae9b525288fec25f9d006f2eed0877c0fa742dad5f878fc78233b54c0cd32dda7ac1f7161bfb475288d8858e8e40aa9e1f SHA512 f76d38c787e91b3739272e3bebeb9763d312b85a43cda5e1311ba8d6b0e4da1ef25bd66208e772b1cf56a34553ee560482b5ad19c5290608b2aaf9c0d0f0e995
+DIST prettyplease-0.2.16.crate 57630 BLAKE2B b3548f37a41d1bf46d58e84297142e8d3addf6134e39c07b7fca809cd2f72004947c31bcf7ee2aeef548bc200dfcb9c888e090d3a96f63289bc15aebe1085075 SHA512 f542640f809de6aa77d34d92d9a4454ef2a92153dba38ab41782d9a3fb73cbae2569c3163c21938b908e666303631ca9393ea1166c7ad5e5970145f26238c79e
+DIST prettyplease-0.2.17.crate 57713 BLAKE2B 22cd81941d7ac701ec90b0d24946c4f6c12ae48e90500c58a95e8b04e1b3515872110ffdb9af18c322d0465fdeb4e75c4e57ba987b6e7d904115edc91b6f9e88 SHA512 8d67996d928b7ff6415f067d7bd20c5230f459f4e7f6e2a852427b19b91567e5c2c5bba33c1e51de8bef550a6430ac548156dc0fb5a2550715580b50334ad565
+DIST primal-check-0.3.3.crate 8720 BLAKE2B 9c7b5273a5df414c57b4104b9bf795b853b433da3a5d91a1b878ef9b7cdb6a810572dfb8fae11543a106760e449b886f6e10a12347f043171f5d7947b30f2b20 SHA512 d56fcee65802b1ca272515589574786dfd066099c55a536cb1076193242859074918651c4fa3c1a7dab4fd13ba91c8f6a2a5b0789a6cd24faffc092edf27d75e
+DIST proc-macro-crate-1.3.1.crate 9678 BLAKE2B ed617a1930bf28a26e865f6477229566a0c4ade7f2c1e8f70d628c5536985f03c7533c561490415e207c0f58b4885367e7f54ddcf10b058711829f78a34d68a9 SHA512 5306f017933ffa89eb6111ee00b0536179c5cfab56529440630a0bec86b62194ff16f57ebb471b233e88cd886b7b9871de8402ed29073b23e5ca98193e513659
+DIST proc-macro-crate-3.1.0.crate 11084 BLAKE2B 9a9d02f0f34a30668ba94e34d51199c332209c47fd8bef28c452924f75984dcf3aef2c92c4ab3fb03205d589e4f773d960064b4d08fdb2480168f10b84fafe98 SHA512 eb5ad763aa700f2cb1604c32a4bf2fad499a03ad868a22d06b0697b77875b1cc13c739fcf165b2bd547207ef6dc3bd13ceb75e1a59c596daf916f356ed27d8e2
+DIST proc-macro-hack-0.5.20+deprecated.crate 15045 BLAKE2B fb7b9fa57ad64f2920e801482bfccc762bb7b2c8c1db7da32f393c7b47414fab37234c8a408a4ca9d7072a541df22b07775fc509f76f352fb6be9fe822f84dfd SHA512 278e786f8e0c93e346de900666b3d55d366324167a2e5e553565870c4444bfe661cf8c151a29cbd3176a4905ec49d69cffb81ae1e4a129f30404f930972c4b43
+DIST proc-macro2-1.0.78.crate 47158 BLAKE2B c56a24fce3faca9e04db7965cab552d2a976c3764df0a84179b5a89d1230ab355c777a82b4c982e3945414f1f0478473a88821dd176c32d6de394d73a26adb9a SHA512 11956fe03a2e77a925cdff2c3c8bc8804dffab4fa1de963a128fa23f4189976fd2e2102bd346b92c33524beae320b71dadaa5213695a3ec638404196e14fa769
+DIST proc-macro2-1.0.79.crate 47200 BLAKE2B fff8e514d618b8ef60d6a4ca7610607641cb25701fc5e8452e0db5f942a3c38c724acbbfb0474823fe0f4864df07958c1524383e7640105266608f1d5a741368 SHA512 8bfa6fc1022556cbabe0050a37b93c5ef1056ebda9d3dd368e705a7c695df9dfb5cd5adc18ad1eadf7338631ad1d5ed6f63f0adff3616429ef8c50a930b1838f
+DIST proc-macro2-1.0.81.crate 48233 BLAKE2B 94319064772c757b6bf57eb9e759e827454f719d82210271ebab9c6ee4ecfddc9099522cdc8595123efe2efb64fd50eadd7e31419c5842ff1cb8fdd32e8daa0c SHA512 7edec4b786d9fe076ced4fa5c0d369c163fd1c27c895431245a8268ab2e16665b7c0a585552d46ceee6b8103979a4201f92abb381f0e678128abed359f514de7
+DIST profiling-1.0.14.crate 14259 BLAKE2B 2bfbcfe1f90135fe032ddff58c172bdff156674a1de94b286f37ac30a293b10e818d45c0516223a33d428f2886dff414f8e58f56cc8c2da436cc6afbc584ed63 SHA512 a25f8ec03c784126be2106cf478284002cec48b4969e1b959418262c0e2d594764b98aefe0d25d1244ad9c27080e15e3633d6eebfe3342994199964678f24db3
+DIST profiling-procmacros-1.0.14.crate 5958 BLAKE2B 510fe173c8b7c553af20b6eaae0454b3a8a01f1657bf15082f24271295dff157db1f7008debe234bbbafef9b6727651d0e9234bd7b10b91b1c1442a2801d5c4d SHA512 1fd6fd545b5f1e7cabd59cde635595d60335ef2e558bd286296e57747f347d9340196c88cc5eb71748f8510b2afcf4120bc81a01bc2937bcd52e4b7d632bf9bb
+DIST psl-types-2.0.11.crate 7959 BLAKE2B 287a71add0c75af1266fa1e4089da8f82c8b64e3ae1e880b3a71ebef5fe43bce3bf50f6378a228e131cf857a4cc29f3ff37c2b08b62896196a3e86ef82b1128c SHA512 c609f6a414bc1f5f98c22f9ca73e3908ddaf10e33ef43f408ab8ae2f8c544c0f70cc1a73b1fcfa20ea53f2225f60922f6d28d2e5d31a9877550c2ef3520ee2b7
+DIST publicsuffix-2.2.3.crate 87807 BLAKE2B d2ce617f07f34e5d01cd3257c53c77441dfa537d827a00992cb9e2c46531a0523b506350f85401bd50fbaa7a2af9afd2dd290671dff4ae407bcd6d8dc725185c SHA512 b6455e8d657df9f9f6fcf8a26a26b8753450b53f1ba92bef637886b6ff2c1e0273aff96f53e7fd0c6a9a495518be00f6d8f05dab0c1d76ae7e1d8481b9bbb8a4
+DIST qoi-0.4.1.crate 71135 BLAKE2B 8b4e2ebfdd6df425efb1326912e8db02258e570320fdeef465aa8b03f3248cd811bedaa17c15902f851083cc1db06a2b500aeddf734345eb25af0d835300b2f0 SHA512 884cde33bfb2d02716daa5f309890093bdb7b3f53eb06aca0b6eff0b7a66fd67cb8b9acd510d19e3ae7718930add971e871532a1605e4989639bf72f59329377
+DIST quick-xml-0.31.0.crate 172236 BLAKE2B b83c7f485a30576027a4ae77aa23cd6284942d786f0f0a14faafdfecff646371ba15133b3ba90f820183c8537c8ac47ad3e1e7deaad65e56761bc662be406026 SHA512 9b1f4f9c32694ccb244938a9a4e9373c3902314afb6af5d2f6b1be55e5ec63fee5cf1085f8f32161570cc10fdd96f3375c7564b1d884bb152542b86593f175de
+DIST quote-1.0.35.crate 28136 BLAKE2B 81424245e1e2b94459df68bb3a9a866c6a364102b5e1d010ede9c5f8278f8406d7b651957d091c5914e936b494b0f6e9a6a1dd8b7d35cd7d7100f86dee4ec12e SHA512 f5314fb6af17cf36c228e1970c569c29ec248954a450a5f90ba9e2896d04f74904c9cec5a1f74325f2489295a94491eee4ce8fb461e22cd4b34e53f1f881efd2
+DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST range-alloc-0.1.3.crate 7664 BLAKE2B 19c453738d48d09d0e076d3cf833a5cec2721627ada1e88eada2a4a5087b00dbd2784594e63c379c2d15977696a83bbacc6cda76e9bf37ca29a20f73ed082781 SHA512 b165ff007057143e1e68e8ccbca955364749cb45d7ca6aecc37c9099478ca3d954e959685941f0e505aa1cdccc9e25e43131c18d3eb447b2486254a32401653e
+DIST raw-window-handle-0.5.2.crate 17063 BLAKE2B af6170239d2a2e9db62ed9450cee9be6350fd8f74d6344ddd76acfa873d124996dd8dff798a79e8c03fed50fdf26b2731b150bd20f8dcf905c8d68da351e0861 SHA512 51d93a4609533742178ab15d4454ffca1668e2a03c2a6e742ee2a61554564c74307311a50e3992919451f4f4d30ac112284413fb4310abbf06c0fa24d85d5971
+DIST raw-window-handle-0.6.0.crate 17224 BLAKE2B c4a38ca8921448cbd8430aa2f97acb9d27a006005ebeeb5de0823341f84fb95833c16b3b6fd6adc67aa70482d082438df9a14fac9857e1ddd630191e275f208d SHA512 bd029ac635ca18e8e041fb868c75fdeba9a4540e19d10db614cc14a67b76c887476954f4aa3b42f9014ee07c5d1c002ba9c88a2a7ec8c84a1589bd71bd65c4eb
+DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3
+DIST rayon-1.8.1.crate 170448 BLAKE2B 982f7ba7d6a43956e6f438921fea2e40d3b398f4f72a4c89f55657aba6aa0d99912a7240b1c32c1dadafa9852adf440e3153a3f0cc56f6582867fa2794bb5144 SHA512 a83304be8334f5aa1c63468ddc749d8e8124c6947f1472320ba0bd4351c9ae582dba31ff369e9efdafdab439571fbf91b497c2370ec15406cfa810f5161cfb32
+DIST rayon-1.9.0.crate 177770 BLAKE2B 34e20aeb82a548bd80b8ab3faf8fd870201ba3d67f9618e5493332a3c43bcf1443c027b8ccc76cec8df6bff852434531a01c8490f829f57df5cfbc3d8a6e8a42 SHA512 c9763503fb135eefdebebb82d4d19d20e48a182f1125030a7df085ebda4184942d9057598194ab8e8d39b942c83c231834b10a677e89badb6305a2b571fc1abc
+DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
+DIST realfft-3.3.0.crate 16539 BLAKE2B 938f007e6857868c6618e70aba4513f4540e832558625119b2fd48bd5f55302f7ed93fbc3d5e1427a8ed3c91600593aa879ca00c33e3ba70599a1354c82e4563 SHA512 daf10b56580b486dbe8cfe3542a77f4a230f1cd19c7b057672908bb2db685b5c44e983c5a7235f404d5780ec9b17fd0e620049bcff62412ad6f093c302744e46
+DIST redox_syscall-0.3.5.crate 23404 BLAKE2B 85aa4299d9816666bf576f523da5cdeae87b3c8fbb2af103e82258d23f73303c068a4b6c3ef4117ad67958cb31e41f836a9f59f2ce1bc52c23605e34399afcf1 SHA512 16f8f4766932bb54e4740cfdb4f0802f76246c0bf88c1d76c69c115949b124b625d8c3b85d8947073c2e9544f425aa16c10f71fabe3c03d29e424c47fe4ccdde
+DIST redox_syscall-0.4.1.crate 24858 BLAKE2B c3301137a0b84e03b09d28dfa377ab3bea74d574a08cee21d35713b278d8b5b30ca2a1d73a0981baeb4644cbb88c86c8eb15ab3bb2692e38b93e6b35fab4e0da SHA512 073ed9d96090cf46eab9877742277a013c62d8da86d9caf2310b4fa868af306511936553579e01309f27067d344226cc8dc5e3aef01d9b900da2febd33848f8d
+DIST redox_users-0.4.4.crate 15438 BLAKE2B 5f44e9ef20f1a6c8b22239838f8f6a6648dbebd5b4386b3a2c417e39add8c4a0dc32e4369b8bb4e0ea17678140f596b9bc981b1d56f06de6a38a503600420481 SHA512 7c208116d1171b1f52f22aedcf8ad00076a3d1f062f4018f4a9f5fb2c38d7ed83258589062d1559f64e43f3e2a9ddf789799f57cf87a49ad8a37463ea09aa269
+DIST regex-1.10.3.crate 253101 BLAKE2B 390ebb00bf5430048412883b672d80737e783fd36f40895343cb38ef2e26e2713418c2fb4d66792bfd3be4c990b4518ba120de229a72cbeb7fd5c2af325fbcaf SHA512 d090898465013b0975a6de87fbdcdf76b4896578056f4da83424bd5e7832547a3d8ace643c379c4f14700a0a88dc95950a38645508d1675306c377879a90cf5d
+DIST regex-1.10.4.crate 253191 BLAKE2B 08bdb925efbea1ee9f885a89ec6b4692e39d7b17039f788e5b3c1dbfb7847d4f53b67f0c61e4085af7ef4901e67e33ea94948668bf706fef19b4102a06ef0447 SHA512 88ef121a51759f418d5dc01607a6e02651bd00343dae92962c02a80f30343d3f079a0375457780ce46bf205ca38f279b03989154638199fe2fcede10554bf21b
+DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f
+DIST regex-automata-0.4.5.crate 617406 BLAKE2B 21826731ed5439a12cdda5a1ef217dc3239a0884d038170855985bf830f2782bdf4dbfd1b1a8812812db3a2399dadf8c173e75db635dfabc97382fda0561bba3 SHA512 0e9681d5c4529d49ff2555b7b73cf234b1f321a7fc634beccdf76c2bce5094e8501403e8caee2b3a16ac299cbe4701d891f1efa380b54f9dc2d92bbacd4de611
+DIST regex-automata-0.4.6.crate 617565 BLAKE2B 8f1e2a3cc1d2d50478776281d2bf10164ef441dcf7127994f4a0341ec40588ec8dc1c07fdf9f670da9e61a7753551500b80314df130370b61d2c03c2b2e3135a SHA512 b288e1facae2612f73d3de3fe9fd1af13d337107004f990263abe6277b31b948478ad9c2b807dcafa73fa565e48bdf2113139f5ca67eb73165b7d29e2ee5c9f1
+DIST regex-syntax-0.6.29.crate 299752 BLAKE2B 2408ebfe5f0dd6578c33f18e8ea9a0a7a84388420c5b67adcaedde477f3f67fb3e39ba9fab1f6892c7ae7fff754c4aca51314601529cabc6a8fc43af38a11f88 SHA512 28a58950d15df1f0ac4ff4185c05b535e8f5bf0b75f79fad24e40e17a02570d1c9bd9cfc919eed8756a1069bc489c5fdccfd04f6b8266c83e3412b7b4bdc262e
+DIST regex-syntax-0.8.2.crate 347228 BLAKE2B 211fd1c35ad0f28874d4b4d276e0fb0a27e5a1608f2f16ba2333641b154624e378419daf8d1c955f21ff5f40f6d49c89569b7e11ea5649850846d0fe447a675c SHA512 301dde555f300298f2594490ccd8b92033e4917fe9b8671b8a97db6c827793c73969be85a92999964dcaf3177edda51abeb576811ad6cab9772964dc0a77e728
+DIST regex-syntax-0.8.3.crate 347497 BLAKE2B 9ac2f63098ffa3fff51fe2bc0bcf9ef164cf9389a909a3f0cb668d2598e7ca65d573e47d571ee2e6bba3a1a96ef7c298b8d681e1ef89c8c53b7d590e0e22839b SHA512 925f7bcc50d94c65d34fcc770c6e58dd5b8a045541c0109e77b8efe842eef4c110087ac9c0f86c7c3022ed013abbc5c0a187d796dce292ad5361a0cdf7153d76
+DIST regress-0.8.0.crate 258285 BLAKE2B c0c8619c940e59ecaeb40099ff1cd329a41c417954f1f7f17dcef8583cdd36e6cb555b72e06522e59ed564da33f9210632ef769680625cdd74c0a6ead01a4c22 SHA512 88cc78d41d144212051b3f8d60eb4b3e6ef0d654d27f40ede5459e683b8ebd0675729381062b8091f4a0759bff5ed934b921d4bd65ef72328df0b0b7bbdf2be2
+DIST regress-0.9.0.crate 328998 BLAKE2B e859a63295a6b57b50fa012207042d9848f5f09f755b9b72ecee46c80ea61c7b3a74c4ccd39cd18592f7b824a1831d96dd80d308f0c2abed6a53f422db725c30 SHA512 736b703c1b2bf6f86e94fe24ef5a2559d9fca4820c54634ee157f812288039b008bdf8b02bb5322ffb422fcda010cf6cb95b41bc03c9866ed76c28efa7af34b5
+DIST regress-0.9.1.crate 329053 BLAKE2B 9122a30c7c3c2b618dcdee2d7a7998f179cc45e9594dc16c9670b32361dbfe747b5461e93e6adefeb39a1c1eea47ee38e30f54f540de6c093465974056be441c SHA512 24882c0867ce3170469c41225a140b836f9e434942020f034c97798591632c2df91502ab454f0062e37fceb5a1f423132ca25ab1ad4afcd9d987b668de8ebc26
+DIST renderdoc-0.11.0.crate 41192 BLAKE2B 07cb2ce7c54f5edc46234c4e79601382058576f92d846a097203891958c4a9e4632a5b2d6683bc1b505ab3ac7d0a1076452cf64dbd5fce87a0fe8ba4018bf568 SHA512 7cb2297ed028b3dbe799755739c66c4c1f320657628ca3ef881fc9908587218fa77922ef20b058098f0ce538e235253c801dbacfee63362053a325de7aca90da
+DIST renderdoc-0.12.1.crate 42334 BLAKE2B a964705c16d7cf30ba15740b5cbffb85be8511279890c8a19304e55d832be1a50a7fe3a0d39eb08794fc1f3f51ffe034ffecb717cf0307861f8e47f04666f61e SHA512 e6be1af1828e06a8413b9b485000e93b89d1002dee7b43df4baa7bfbc80b2ead98178b8418311d00f565d1a3412f3f8026a4415f94ba3483c8623f458964b252
+DIST renderdoc-sys-1.0.0.crate 10336 BLAKE2B 9f9b0221f11376093771aa9d91b2122a60fab45ae3363e38a778b2cd647729f6ac8df4e79049079ad1e84b4d60b362b5658f080a91abd5939df11c482c060e8c SHA512 a9e36c82853edf10e143fde02359aceac879ca42d23c95a3a7c66e99ef027a6449937136c9d1c90efc1cc542aa532513690fa235e7cfbcc59ab951c535a26890
+DIST renderdoc-sys-1.1.0.crate 10366 BLAKE2B b8a45b84ed2d258c684b8056eee7f699bbf2381034aefcf77df0481c3f07a0705b46ab89d462d515bec752f22de689ede3535be5e826a75b84adba54ade51abe SHA512 a9535ffe9fb0a7c38133a834419f5b1f9b866e116569e0f31f2238145a63e1392d4f24186504cbf40bc67521842c1a977c0dcc53f5a12f45366b6c44484a64c9
+DIST reqwest-0.12.3.crate 168057 BLAKE2B c86a11a8f27e0a363d9aa8b5018fc1383f60f7098c31e3c550d2ebdb5eb5fb9ee080a54edd7e64e743d254e35bff7eb2470037d79a5c15e7ef578cf8f08fc985 SHA512 1e9db7af229e5f2ab2177adf23a544a6024460a57bd5832f585db513d6124f4b42ee97ed8a3ae3c70cb29abe63a5e7e534a5f834042a8d35c4fb97b37bc83c9d
+DIST rfd-0.13.0.crate 49679 BLAKE2B 1dfb5e0551113502fa9658029113fb407da7f921942be09259d065c5ee0fee596f4c723daaa9006571c21faaa44d7514838810f7fc0d9149781a07595c14d0f2 SHA512 8e4db1561a361fe487efa7c1da85edd89c1756dbf9c5ac3b4a9729edf663922ed0b41cfa6cb0d237a9d7ffb27c385ea56496c3483fd7e7d92b944802abe0d627
+DIST rfd-0.14.0.crate 50275 BLAKE2B 004ace61b0dc63cc496f503405d83d932da580d943aa62c4bccf90e5e93bd859eec1e4b87922aa29e8e95a0fa0b3da4a4eca50d25d58f3a8ebdb6750dd04927d SHA512 ef41c6bbca4f18a057ab4a4c2cd88d86c181eac82d203f03e4c8a9f68ea3e9948ffe59ce3dee2a825338fbcda9dd1427b0af156dd03b327fb6513122f877c3b1
+DIST rfd-0.14.1.crate 50342 BLAKE2B 605a73c7419bdfbf67fe05307ed9e7105c5861640e9adec59cb0b71606df94953eea8c2d96d4a3813af9b4a750566ffa558199ff8bb1203e579ad9e226dd9bae SHA512 ea2b7182a44097161a5d6d99f1b770d38539c8d7b34c2c4064a8da2e5d8440a242c6f658dc0de82b82f60c4b43a52c6b7d72ad5d930248f7871715a46686a8c2
+DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358
+DIST rle-decode-fast-1.0.3.crate 62086 BLAKE2B 402d56595936734f36597c18e816a798ade6a8636b27e79acdedd4069da38e22e6ded5f2358ef0f0d509ea752e828fa294a4a9ac6d99cf26472fe21a505302c9 SHA512 f647cfd9ae0bbaca4a189cd1f8d1f8531f6dc0ffa1fd296c75cfe405fc9060e25be74581558a9195364ea90e32c7ccd60e066d21704cae836d41606b5799301a
+DIST ron-0.8.1.crate 63251 BLAKE2B 9d9724cff8df112c1590c0e66e897a277a7bf8a180849db4e8834151fb53639d424e19124cc9f3a5c4f977d49c824686c73f337e9ef0f0355acae2b1b43a4d14 SHA512 d0d9eb18632c2458dd3e8fa8ff365a818e5214c88a19c11421c208c31ebd75236bb20fd74ea84942f8e71bfbb02d660f965dd1447318b5372bd16d45d11fb920
+DIST roxmltree-0.19.0.crate 53547 BLAKE2B 0bf23bb050dec29cdfcd66bb231ea81caab40aa54b015c5480fde7dac899128438ecfb10d818dde456db8ec4cbeebc7f32f3c8ff17594b6a78c0f04f0361555f SHA512 c8eeb974d797316a8dc332c4068b2850eee124a13b0792cdc8acaefe521d8b40161f9159bbfee2866ab2c4f6133ceaaa1b5ed704a5f0db5ae3819d76042cbf36
+DIST ruffle-nightly-2024-02-17.tar.gz 89135416 BLAKE2B fca2fa3fd363d2e660f149c4e13d69ab223b9b4cbdc71c004a286fc98beb7a6c30714b2a28f3a16e00f36373afb98cffe37f5d6e11e6ff6771ec9e0c19d2e7ec SHA512 033799805943bc5b3187996d3f475562612c32aee29e18e494349baf39c7ff18e07368c39e42a5bd0ca652592abad7453fbcadaa32af71e216aadef7e50fe395
+DIST ruffle-nightly-2024-03-19.tar.gz 91196452 BLAKE2B cad28d50999d670c153db5dc6db4243e6162b83d9b68c0c87dbd4ea80a413c6b785f84397aa841a65adbd4bf76fe9347a30895ab1bca4353d334baecd1bc42ff SHA512 264e9a29ee0959e2ab66e4cd00db1b48cbc855e205cd542d16789a1c6033658e2212b9c03023d68f2aa02fa80cadbf9411faab272e843c17b3fbe7921451a7f5
+DIST ruffle-nightly-2024-04-22.tar.gz 91389255 BLAKE2B 7ab6a7c2bbaea16e7506037af2e7461d5ff28c283477254a74f7179e910316f8bf73ce9ceaa26fd82c4d53542c26b88617870861db5c9bfe5be6e37415aa75c2 SHA512 9b59e24ce8e0097a052da4506deeca64d5cb35850cbae4cca1938c0ff0f69a202313a6fc2bc8a06e5109aa92af6a6ce50da843c1b578980caace975ca35e3581
+DIST rust-flash-lso-2f770555ea49c6db49c57c1dd46c7cc686e8dacc.gh.tar.gz 688059 BLAKE2B ddb791fa4c455a21d0de0c7e27a61658517f52b672d850a9da08498bfebba4ae054663b9171722617051b61e7a962a2b90be04ef168f53512a35f58ae9e84104 SHA512 6c231443267464760fab0a534c7dfc5cb8bc45cc722201133bd178eb40785ef126341b8a61b80813f6532142290ae8f7033994834f933a3fd0fabb6d02ad2a74
+DIST rust-flash-lso-2f976fb15b30aa4c5cb398710dc5e31a21004e57.gh.tar.gz 687858 BLAKE2B b7bab3e5536c9424964a84ef2613fea9c0bb325c4082ecffb38963d999b0269bbdf96ee91a12915e91e9fcfcc7e4a2e61dbf036cdf9c981a0d8439c989fc7d27 SHA512 2de328130ac33141adf0b562e865e956956bc6167fecb6058bc6d549a8a1b8057616c9bef43bf98e025a673446122fe5ba3304900d020e19309202318d9f966b
+DIST rustc-demangle-0.1.23.crate 28970 BLAKE2B 611d2e41a8a9799db2f8bcb8fc8fefcda361d055a417d2bfaaf2dedcce9d6f388c69d905a28c65e6691b4d408d7922ccdc97ce524c87c3cccb8467e314bc87b9 SHA512 8cd29800254b1305ad50f1fc008838c52d9659f97a51a68e9f2bd6d0a60126f3ebdd1c79760f96445b3bf998d0773526ddf663b174acca81babdc0b423247247
+DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544
+DIST rustc_version-0.4.0.crate 12175 BLAKE2B 6fda2ce03eab45d7193fa0d70175cc7ffb56b7be85fb1314092bdcfd3948ea145420569ace3a47218a4a2a6e44a818862cea6dd8cfb945475496f63b591c29da SHA512 f66da7c6efe431db06cd01180d84ba67fcd38f8cd6ef693762957c00ccc2211f23c08079d7f184776e08f28d2d6ca3bdb5f5016f7de245c6193d4722891ba1db
+DIST rustdct-0.7.1.crate 41849 BLAKE2B ee952bade816e4bd1fb44f8b95288b5b7c34efe8b2006905ce62f1dfc1d6f6f33d2d9da45d1b32d9ac2cdcf0c3011a0588c56fa84ead89f3c5f0ed582a3ae849 SHA512 6679df13888c1517fd8c8bf458e201b49e1607343f04a8eef1ccb39a1cdda673bd7835452a6eb06c83d4b3ef1e831acf24561721477985d3d52be931ae4f6493
+DIST rustfft-6.2.0.crate 363170 BLAKE2B fb77c741b16d7dd833901914e91e5fdfc297639a91f97e47746a19b678bf12bd408327635f0ae3008113cbdb89b4b5ad606f55f67e835535837f560ea1642bd5 SHA512 c8f4bbf66f3c7c990af36bacd65240bca2c6334cb7139a3f92790e66ffcb5ea62757a469a7aff56ef602a79ebf2f860dc017a1ef8bd5a896f8383183f3b179ec
+DIST rustix-0.38.31.crate 375443 BLAKE2B 9e8ba6bb4eb4fdf0bacfbc719124f745f383abbabfeb161bff9908d1948942d358f46191377b90c180a2793a88bb01be20dab556cfabc8da8efa2533af8e460b SHA512 593e0395a7bc5bba949e6f2a5ed9e39ae13140970a598def32ab7d6d91b4ec100752fb05abda407ee2e5e420d950b19e607f963f3974213637423c751df75960
+DIST rustix-0.38.32.crate 376999 BLAKE2B 681ea50f5405b3a749a26a481995d3a85800378067734bb857e32e5d3764687b0da4b3749d227174440e432b374ae9ada154a8288e4353ca2ff1b851698477f4 SHA512 8f028b4df785aa78fc798f3e053d0a4fb9b3c552a47f66f52f1666f4c1324441be6581ed643c4ef0f56d92e1a078c6d3b45be183fc3df0ed1fc89de0d610cad6
+DIST rustls-0.22.4.crate 333681 BLAKE2B 01f84b7f44883c807d8651b6058647180d6e9d48deb51fab0e76d7b587ad11face13215170db3bb7d0216505eb108438dcc3bc08ed2080816401f3955f73fbab SHA512 0b62c741b73dd49dd9d5531c9ae749fc8eedd4a396c5b4c02b1b33062d56c84e327e12f5a984b9ca22c7984103896d4ac69899032397dd6eac1b737e0647e2da
+DIST rustls-pemfile-2.1.2.crate 25928 BLAKE2B 790545dd6347badda8f67bbe67b8d4d7de9f24c134857840d7ba2335f2755cf03c05b26c16c8b1e397b3257cd39a6d3a333103c2c3ea32ccf4118bc3d42995c2 SHA512 35127c68250c31f2fd6924355ec37d5318d8a86ad38da48e68b3ea6e241deeb019eb967c510e95230be6d6c3357b0a85aa022942d21a50423632f8e2496177cb
+DIST rustls-pki-types-1.4.1.crate 29437 BLAKE2B 82aa975c98e9d583ea77e6811fb6be7f7f35b9535748e38ce67424159f1a4147b0f0ea690312151a331a03b446b7aea60c13490f3ff12ebe6e9f3369c9116337 SHA512 abe47dbd2604fd4db0df59412ec8f44b6dd2cb9bf5d67e01be6c5428daa3924151d4d996b33af387a31564cbe29e1ec1e9ea1a0ce98e7aea19d8bd7dbb0d66fb
+DIST rustls-webpki-0.102.2.crate 196881 BLAKE2B 783877064d2cfbc9078d33f081b2b1edfe43218184e60a8a3b3917ba0a3ab97a226f677d4bf4addef5d19d29ac63a8268dab5bd3cf973d64df866e3e71492f9d SHA512 697d44daa5e0a8ea2d12aa6f68026eb63a6e1c4420ee92656c9479df77e3f672ca2525442be55ab6183111fe594ac85661647150326223129ec23686792f6014
+DIST rustversion-1.0.14.crate 17261 BLAKE2B db30d01914059a893bdb4c448ed0bf04852085c2d948bfbed8819a1d2317c34133cf609abdd806ad628b86974a9c1ab9d09f79743cb8e13257ef32cd444f49c6 SHA512 466d753c28c4899ab3da3e9f3366f7ecc435d484f51e0c07acfa5f3367af0de27ea3bc75efda22159b4990c976b1466a27e7c31c834c72a87d8234318357454b
+DIST ryu-1.0.16.crate 47351 BLAKE2B 13c72ec8aa608f6c53cf27c95d06b90839c5bec5e54b0441e9c4f779af3dece30d01a2276c717a733f92406a5a02b09c045b2b5f92714fe492d7263b6c6808e6 SHA512 89e3e18346ae6e4035787766f286a6eb62f5294e39ad902cc29e95c53781c4e5dd629f567f22ecc7e9fe9d1c273323da9b867aadc9cd8a066727c58330b51b10
+DIST ryu-1.0.17.crate 47537 BLAKE2B 28408e17a4322f1afb6f21bc8d7328c39d07186de4d464f8e9bd63a69757cb4af61b46e558075e14836f310f020ac824d5ffa616fc0a5ffba59b9df0bb66ffc4 SHA512 6dad725c4fb2d3a33ea30107b63cb702eed56bd2f3c16a72265f648f5aaefcd3d5a7b919b1d037af926cc6311bc68ba58c4e0483da2b2e2135c6a7c2d6601af4
+DIST safe_arch-0.7.1.crate 76930 BLAKE2B 7083fbf6b390dd238f22c499b725cdeb21fd07fe1b17a6fda183ae2cccaec22659dc6c154f4b0dbb902648588a77e0c457c79dfbe3f3fc4029a912e2fb1249bc SHA512 99c9c076c046a29bd8c6430b41ff37e3604490b9cd83ce69edd289ea22b511f1e70ed477164d5edae650fb933a7fb01713ca7a5b3dace5df793a4e80c3154ece
+DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
+DIST schannel-0.1.23.crate 41667 BLAKE2B 3f34ecf4cc519f5302f0ab5207907a275c68e6fcbb47630aec4ed5d5f1a1cc7475f6d7a8c22361e9878002f9f54314c1f630ab0c1f77ea309714bdb7ada6c9af SHA512 dfce25e3b8bc09d8dd1fce2783fe02ec83f74697cb24aa212ef9369a628685ba488f821cb3e5f863798e0e59995038c8d748f74b89f7929eb8cfd804d5066b84
+DIST scoped-tls-1.0.1.crate 8202 BLAKE2B 20be49f0546691bcff3f0fc257345e432e200836a60b297ff3fe698699ef6a2fe8a5dc6977902a08f7dc63c578aa27607dae0f1889b849c257c59c48a458e1ed SHA512 342f43d53edd33ea3e2197faf5dce37bfbeb0b20b6f0febad4dc6244c3185df127b2c10488e95561260a0ef968f32707460f2d0d23667cebece19b167c0a0c25
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST sctk-adwaita-0.8.1.crate 53712 BLAKE2B 2d54470cc5b8f3c6bbca1cec1760c5e647973fc1b377bd0397f279213e81d792f0ba31b6b81dd84599b41d93cfd014abba890febd9987c94ac6c6fe8e139bb1e SHA512 7eba66a3f4f7d9f5e33615d0c1245c211e599106573c8d68e7e6a07a9d297261f0a01fd31b90a3ded934b4082e722ac93a5004acfd56e0aff280597a715d58f1
+DIST self_cell-0.10.3.crate 7308 BLAKE2B a7297b9926d4351d4235e5fcc4084929751a0bed37598729ac519f23150464b6369ac055d3218f3ef101c9ebcd7b1b74e03581051d773493e7ff5f11e369f06d SHA512 4806034b1d28cfbdc1d47f32ca0bf9c5a87903d186bfdcab7d79664a1604ebaf8f709ac9e618af81323b247d0eede1e7dd8b113cfaf7a602250aa689bd2b2b6c
+DIST self_cell-1.0.3.crate 15147 BLAKE2B 9b53b0568dc4ce0c7372565eef14e593aa25e262d7501da6e4b8cd7807f5385977f9bd3563ed39a6fd4e07c824847d0c09a2a750024a800229c7a57ce5e8e325 SHA512 89a990f8a59cdbb99930ebbf9bb6566b77f03f1f551e49b207c865e7205541fd9f0342d284aca5f3d054a24520fd438b6c53baf48c43fa28dfbe8d79fe8c7e00
+DIST semver-1.0.21.crate 30445 BLAKE2B 1c779c25576723ee7e44e7c831eacc5dc6bb33cbf051bd0748f688573e01595d05808cdef4ae48a6423df15e474cea58a0664ad7fa5cad490a61f89473f426d7 SHA512 bc3ceb11f2b729be086120c06ca2cefc34c5141d2d4af64279b0868456894eb9097b234b326249f2aa83d8b99086fcac4c5b7ef4a1e14b1198ae808fde245c35
+DIST semver-1.0.22.crate 30446 BLAKE2B b77a951d959a3685b0373c80b9991a8567f8926d093b23b7b8fab48595b5d565acf7408fbfc8f4d58331f39e316a8068885d28bcd70c1476d1cda436a2dd88b2 SHA512 7dcf9b6a02650d71d6c9ab3c29e44fdef95af296208f26aa7be6fd6e16773e5e5e66418c303a0589d1165df6dbfd46ad6ebf9eb5b3adab25a51f340947b2d949
+DIST serde-1.0.196.crate 77097 BLAKE2B 22403615511a7621a9d8d54fd2dcc63878cd2de0e43bff6b7921db85e19f34ee5022eb1086890edb6987428cbb707a59277ae007d1536b5d80a7da615fc3f36a SHA512 0917aa36d855ca77726d538fb7fcfcf629722c784d747b3869c0d69444c447d7b1fab556a9eb9594ddf6cc508df636fdde051a1c3909f9c691e4921946ebda19
+DIST serde-1.0.197.crate 77087 BLAKE2B 4a4e04ededf5fefaabfcc4e17457db823239e8eeee7631a905ed47800ca10d26a93632e3a9d1b784b83f84168d0d649cfa2e6f5f1e68ab15a68e837cd5b6c699 SHA512 69e42825fce6a0a5d109979785daceacfd6afc5641e202fe83da32e2b1f968416557cce97fa014839e873e65f85c27494c8f8e20e6e9e4fbedf20d0291880410
+DIST serde-1.0.198.crate 77577 BLAKE2B 10d18e00a17f38e6eca67f78a3df6bea777053b4c510be7fb89ecde7d0ac2ffe37399031ea0cdc6113a0b80f8f3f1095271bc6aa3f2147e2d675cb3f5df713d1 SHA512 561e4ec8858148e9cf59f1b824c489ab259b63819e6b031205db8d89b30a5b0c12c3828fc587cef67316d1b9752f3618d089fa21b3a27cb87a074d943f27c7ff
+DIST serde-wasm-bindgen-0.6.3.crate 20941 BLAKE2B ff2dc32e650e815772555ecdadf69c6612dbce7084c5a2f0fcef02b655d907bf8f93f8762b00765b14d4d5ce01a2872fcdecdba2f9dd8d2a1ee10d575f6fba3b SHA512 c2f7ee9ceb64fb6fc4d653946f23bb0ba2e62ab6cb0cfb870cda451251e721546f484e5a70e4d81c367dd6880028c3625366791a0011a0b4ed8af99a91d184c8
+DIST serde-wasm-bindgen-0.6.5.crate 21098 BLAKE2B 34b7a66752422c21031fb21202c8405c43a1e6758eb067b4fafeb24f812280e70bf16c27bbcfa4b4b5723e369bca81e42020677787a79277f32f71eaab6822fd SHA512 c457b1e8c83760d94eaf8eb49169cd620cc1fd8246af8953503c2bea9c4ae916f3de3b9070bfd4102a713f8d843b6ee96404e27b21a48c589b444aae0f9303b1
+DIST serde-xml-rs-0.6.0.crate 20677 BLAKE2B 84e497670bc661b3dff37f081b40679cf1c019e82eb4dc491f78665b46be20b54e826171f51dc03959b1792f4b416b007e9726e41b59074e420bc81416eb47f3 SHA512 a5096bfa71c1e02f3593ef26ee0375ef1bf5d31e42eba76938c51ec9bb507f8f1f20d325a48375b1fd688ee8b79197025ea5d49c537321cdb67ffd16fd53bbd8
+DIST serde_derive-1.0.196.crate 55775 BLAKE2B 3d06b3896f0cdd1b1acdcd0046bdbfd1e8a298d6f07d12a2326ff144baaac07fcbd4af1d18b8b1188d4cc192e253fcd79860d1dbb2ecb148025449c0ac954c72 SHA512 f4df7f835e8416e4662c62a46d5f6e6d45ffd103812d681b220f8080310720e27f738a34a8e622df722fed55a1d8c654dd4abfbd78d1fdc871306bf3985baf22
+DIST serde_derive-1.0.197.crate 55771 BLAKE2B 73708908b6d1e104af4c63b498bd25c5a728e07e22afdf92f15754c0f17636efe44c0560c1f0df1b9a30708e8e8894a62f1ea57c234b6dd861cb9c8dc044eb4b SHA512 669376e248b76a5ee8b9c93fd9fe6d35372e7267fbabc14730539ef28a94e405ee5e9c2cc2846897d59d6153742cdc6799f9e2c87f20b9dad119bd3a86c28994
+DIST serde_derive-1.0.198.crate 55787 BLAKE2B 6fb5b68d3bd0010283a1f61d9af5471845d9f2f5a6b476245348c6bf3d3c5d3026325de87cc8ffab0300d31dfe03e093acc40e4a7f334d33b9d33cb8e03645c0 SHA512 f33fd1e1ced08a305a41114e354ec174e09c8918e28bd486549ffbb859a139e41b5de27932cb24767f4b3db4703c25e6987c55c9b3ea566d60b9f6cd893b38ef
+DIST serde_json-1.0.113.crate 146970 BLAKE2B 8d80b0fc913ba4f008175c6b89955870af6476dc8bae0cd711b748cd0a2bf67b1299396bbd492a1ae5a4ff8050fddc85f0a0ab54f7b24e27529ead3e3d7c920e SHA512 82571b025cd598fca635f18881b52db2364e07eff1b961ca7e3b0591dd41f95503f7188ef1ee6fbc060b9a2360cacbc8a5b85c01fef7879ae3392b29c0004b34
+DIST serde_json-1.0.114.crate 146986 BLAKE2B 229f0a8e2c0bc35435b49774fab9d4cec4e2323e85e2f97ccaa2a18277ecfb9cff9e9b165786e782cba043e9ac670717364b0f9c145254eefd74582b728f2186 SHA512 2c35cd0e29ee2af6046ce849b5854b82b90f402b51c04ea86b32ce7d67869736f17a4d028dd8245c31201036bcca7a1d3df11d842a92a45b0eaebd809687d436
+DIST serde_json-1.0.116.crate 146790 BLAKE2B 20492ac3c431fd3666599f079383a9d945549e02357127a58acaa7011684ef0caca221a253218402ceff6956ee8a20cc41ca3394b25bb69669be75ab22b66a1e SHA512 d383de754b0a50cc4ab3e6378b758ebd6178ad32ebed80cb4e32a9d8e81d0c689585ee5cd35f12b376e488d25ecfaca659be943c9bb4104b63a1c4f9ded2f337
+DIST serde_repr-0.1.18.crate 9974 BLAKE2B f6a8b2c8bc759bc8cfb3826489faf67da13b1cbe2432c30ec877036924869b9cf7c1ead2809b8e5852e352b51c91f40fa892ca68832ea567e4a7df29f8590a98 SHA512 09d77ccc60a748f8c95998632459f52268cf45949c0e22250f751eeaceb7336c03a457587af7bdc6fbc188cea4e15e77c8bf63d9741a9ae31fd0b8e787cabcde
+DIST serde_spanned-0.6.5.crate 8349 BLAKE2B f4f8f798ae3a02c0d5178aa12a94bd1bc08fef88b6a81d782ba07ba36fb0d89927ecf621087faf376b6e53de12f6a96e0880ce0cd01ecc31c5dab7dadc6f3ff4 SHA512 bffe2398629ae5a5a5bb6d5fc2fa0f4b94d02c96e25d1be2fb9ad95d8ca2fa9bfdeb3af11049ee9c050e497f3beca108f03020f88f6de29b208063c3898af354
+DIST serde_urlencoded-0.7.1.crate 12822 BLAKE2B 38c74ea862f041828467dfa586bad9b8e1d1d64a9f82fb7f98727e3965377d00e59f2dbf20955a9dce976b6911c0a619d2a6e4cc9dfc73cf0f6c449d873fd072 SHA512 b209ad01b6565e95c1d5b431a3f4f8a0df3d11c2a06a44123048bfa4b34ebb6807eec593f0c1c89de3a06ac3786a14747df9c70b4f4d5e4b72b4feb53084eb60
+DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
+DIST sha2-0.10.8.crate 26357 BLAKE2B 1d01b381223a931dc631ad3a1191f5378b1d2f3f9f20474c5f020e366624c73b08330ce8dc4bdd3e63b15f647276f533de655b545b77f70fbedc1a1846f44f0a SHA512 3be73133a6b7690e14acaead47914dc92395dca4191fb657a2ea186fefd0ccd94d12a1121d63a26027d9a9c62b775c53202473edc461587b9dcd75472af77785
+DIST sharded-slab-0.1.7.crate 58227 BLAKE2B 9b4c4e4849ed324cf48c2b905f21139d1d65aa5ab13e7fb11817cac9a32ad09f8dbb1e50a93d40cafa0aba872792bc92f7bd2e219f62f80695409e949c07978b SHA512 3be7438d4a75debb14463477f34de6db1ac38abe958ada5d5dae7ae8d5993e245da69fcb989d91aaaffda5f2b085d4bcc88d10e07ec567b7f40a21437de6d4cb
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST signal-hook-registry-1.4.1.crate 17987 BLAKE2B f1df8bba55c72a506b9210347f9dcac4d158948e73f6d1e60f43340ddfae368aff1bbb6a109af326af47246d9738d49f76d380c52208efc3c6f79ea0acd31f0b SHA512 e83acec2b0083967555f6c659dfaacc32d851a9485c9f6f4b4cf257742ae3ffba8c14708c75f1a5520e9d132ea9e21d6eb65aba492eec481e8492af8b798c5d1
+DIST simd-adler32-0.3.7.crate 12086 BLAKE2B 8e0ae18603b344fd8a6573cc3fe1f8594ad542619a6e0d6e8f62e356a3a97409f4de3a215d561b8ed0e063ab431d81b63967a5a0b6561c45537a27ee84eaa362 SHA512 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac
+DIST similar-2.4.0.crate 53147 BLAKE2B b30771e3c26300f9ad691566af22faf4592225de44dd55abb1231aa3641a32ca71c83fe9253dfcfb0c438b6f599c77358595fa03125d5f343cc617e99354dfbf SHA512 6c8f1cb194c165ff6ad64298d37deb6bab0abdd51921e29395e1c86268c65db1b4a67ac03ba37dbc69a0ea35c0f3770e894de7253f0e410be7bfc7845a45ce7a
+DIST similar-2.5.0.crate 51648 BLAKE2B 43515b3014ff75e2a94debb0e40a081d60dfa371bc3bc3b3a7944cfbf2e326a8a56c6aa26ca2b6f9ab6f32929a89da673ec2fd4f037c07f8ff91ca95a77b1fe1 SHA512 7206380b6e4eb496b1dddc4501ac03d716bd6b5228971a35ca71f507940e799410dffad7e50e52c6f8fcd43c570ecef23220962fb057100665343498a5ce118f
+DIST simple_asn1-0.6.2.crate 15992 BLAKE2B 3abf422412f51d0f8d3440c245792b817eb3333d58f27146109f11278b8eac4b49898264e266de3d00816319aaa822eeb0d1115e46f96f2c9a971b41a3edce0c SHA512 b2ad0042a4492f8cfdbf475b52c87431dccb91444ba3ed026adc488c844d1182a6ec88fc833b5dc0c2ebfdd6194c5b49289af71c151822228b8ecf89251ee9ae
+DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST slotmap-1.0.7.crate 61390 BLAKE2B 56f7ee840f848f2331bee7d7e31aa66f2185db5b57fc72694e1514b462dab8f673442c36f7b9260d5db7b68a522ca76f7748aab774246bb12c2ecfbfd3e7bb8f SHA512 f130275c506a3d648b5d66acddf7ed88274fc381d8d0101ea5b3ad931069d4ca46b856d75311e95e09a23c009af343c7a4321023bd1d065d3d516a0b4b8a3080
+DIST sluice-0.5.5.crate 6960 BLAKE2B 0a1ed02c2e0f3f8a90afa1e851cbd6e352881ba00fd4ef824b0768b6ec19a9eca959fa7c215ad4d6ebc8f103f5508766648004bbd897706bb44b98884627af4a SHA512 d0a85db370a921f0591d63a5a78fffedc4c97e5a68915c86753dfb7798cf120542b1fc3193e093655442b34502ce6cadc799b25e39e26c122683e26ebd0383b3
+DIST smallvec-1.13.1.crate 34952 BLAKE2B e0dcf1d26883564cd4f5d20a588562404e193075b1ae011f7f7542009a9466e5df3ade7768e1a8feb8806774b2cee5f15d31779928f83714e7d4b6ed46af9ab9 SHA512 1259ef947400470b8c9e74c5582dbc1a49753aa46420883c1f7d66f320f67bebe733a15a23cd57ba461020fad4ff337a5b298de82754602a78f5e6cec969652d
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST smithay-client-toolkit-0.18.1.crate 129920 BLAKE2B aac37c6705b04e67fa48bbea9e1c276d1b105ba5c53ddcb78983261ccf6fe8139033ecdc7d108f67ce662b3e3d6af63234f0b8b2ec19c1c5d5afde5fec81cfdf SHA512 0a6570af153abcca4162bda695422c321b8040fbd68e1a822ab7409050e2295cc4f89465b2bfae3467f19b114c321fb72901356dba768a30151d5e2c08320297
+DIST smithay-clipboard-0.7.0.crate 18028 BLAKE2B 79b8b1217df2488bb9c25cf133a2cbc93938ffd37836ba27d925a12af82e10eda122929c8c71a9d42471be32a80b3c9da3a6d6b95066ee27a9e8b34a715e6bbc SHA512 b302a6c57810699e2e88077a3301bfed0ce87d0c43d23372ddbb93811f9fc46df2e74bd6bf1b2a9fa94fba05426111ec7eefdc624cbf685e8379c66695c3f5eb
+DIST smithay-clipboard-0.7.1.crate 18456 BLAKE2B f9687d74751b279d570f4ed93ef931a0fe4a6d7409f553bb9e4d738a154dd39a244072f3a5bf3d8ed7f1f159a3bd13ef8acf2da3085ffb8b7f00f837b2fc3154 SHA512 c5cc982efb1a68f1f1dc80eb5c1433edcdc48fb36cc9209d0d346c91da895c5b15f9f3dad216cce52a251e64c45d4044720f184d5d6ccd2706b56878fd5c6591
+DIST smol_str-0.2.1.crate 14689 BLAKE2B a1bc1121fcbd42fff6248b74a566ef606470b733a9e37211748512a95f3a0710ebdabe6f96d9b2d2482a8a546618e428e32fedd38ca893f6ae87c52a69948a7f SHA512 97ec765f3244210adac567a36b21436ab3cb387db0810b86258b80161ff4858d34e148fe34f5cf351b4355ef998b017d216749e12c154554fb36abe37bb541d8
+DIST snafu-0.7.5.crate 65229 BLAKE2B 7ab41547d6775fe92a0be3810847a00567cd3c82fe12b7f6f5170f1c5ede011b763fcc8f470c7d4dad9369956e9ce6d5e66edd4d66f4bb6c8a260dbd1deaea2e SHA512 50a10d3d1c13a28136227219da1e43c8655309bd1ca44e81a76516ce7661ba3cda8ba2f4e0ad16b3b1e7d5e07b2dcf50e158bbd6ff54077709a105633e6bcb50
+DIST snafu-derive-0.7.5.crate 28208 BLAKE2B aee0f63ef6fa1c414a42d6bd625067d5c1065ef6df4178ace3c5b2bed733f719126ac428b723d77522cf5b1a384382aaa03c0acfb32a7b5a7703b3212c2c9d9d SHA512 6e07fae7d75ca975bf2b90ba10e2bd7368a0bee7670e1d9f4cc90512d9290c9d131b4fa6accbf6e177cb23a17072e029e879a55c5b1bb595b3e4ab447ce445c4
+DIST socket2-0.5.5.crate 54863 BLAKE2B 4237b540dfaa96d3f8a8b9178519e5ea37b6b96480a2aed5287f462845231427a18f5add26756c7b03c18d4d4aa617a5a36c5462258ebd8be326e8fed1c48641 SHA512 afa8df546234d4e8f89289622448aa42d8c2ba74a0a3a4b13c0ff7bc30fa435a7d6d6e8c9e2a6933cfa23ebdfb4908c865e82c657611defbc16e1f1bf66f9f8c
+DIST socket2-0.5.6.crate 55270 BLAKE2B 10eb32486b9a2908e05ab24620ad7a79243e59c2c2db5a7793f87f32765745b21746423d5b3896ef37d3dc9e76410fba97826cc64cafb7dd45adb485900c2282 SHA512 10f14ce7bcb9fabac56f98bd34ccd6368dcf4ca245ba2df80fe0f1157e177056eeffc6fcfb1d1fea6e89c0eaafb99d8056fbd10101031d3ccabb98950ec563dc
+DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee
+DIST spirv-0.3.0+sdk-1.3.268.0.crate 30802 BLAKE2B 8608a8613b02bb5c9e5258bb604db55c81d289664383606686c70f314e5bd31d5b4b0cd1e0b77c8431c363e023861c18a08f642b690a9ce01ce485d069bb6a25 SHA512 82187b94f32ee784eca112408e61e3c3ca8c825207b4c817b2b87900b252c514d137e6ea5e9384a2e241d5352ebad0e153a72d5b3db2b0dc938aaa472d3c261d
+DIST sptr-0.3.2.crate 14598 BLAKE2B 0ede8a60dee9925fcb39377c2e41b2fe5ec760a2c9e3166f4f8dae35c34721848d328522897403fd60808135b11661d373b7fd89c7127367a806cefa8b914d8d SHA512 cc26ba96f808c57d6aa5efe5985ea3e83b65827a7d163837c81a06fdd4f178fd5bd86e4c08d7383a10d94e63bb97a0f6c151b55cd79c9c26f3a8b7a0c6e5b530
+DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
+DIST strength_reduce-0.2.4.crate 17859 BLAKE2B 63ad1af9698ed3ced72f7c0e6d8c62ec35fd564d179286d6cde8975280dbc901303a3be5664b1902c135924dde8a03447a8e837ff0cc8037db50b053ad3c2c9b SHA512 2d44e54e4cf78f718faf482ade6c33fd42e73187a7e4fbbe41fa0905e6bf1ad5f5241c3d8ddfd7b18d9bbfa3f331c54ef2d817b254e1200b50b146f04327f157
+DIST strict-num-0.1.1.crate 5104 BLAKE2B ca255ac7afce45b8e2dec87cbe080730959315f753c69bacf1c941617d5c3513e57532494409bec29acc73928291baf98413cff6d0686ced10804ada2a26d361 SHA512 27ced0b3110094b3d8a22b60c67980b7416debe5a22b0416a025dcfc8264fbc1ada1ff73362383ec605c36d682245b2dface093cb6152852f4d4b28705f8a197
+DIST strsim-0.11.0.crate 13710 BLAKE2B bdc748ffab302c8e1d3412663e300c399ba13bfc0e15b07101a680394204af2df8897ba784dbe57b95c4fa9e732439d0f5aabb090b1b1c81f066bfa125919419 SHA512 ef4165dabaf8cbdd6c58420043cff9c0d1f4bc3ed53de5973b654bd71ac7d462fecaa6e1b750fbcbb8e19b35f6e6b73641a17656b20f5562b6ba7d84e69de226
+DIST subtle-2.5.0.crate 13909 BLAKE2B 660c3a472ca54c9843ce3feea74b802e27fd7f62dd37a30e2a4ba82e4b3a71df63562e8865d5fc675d31d0900998a8730503f91a61450884446a3bdd6af0041b SHA512 f150b1e2037554f8cd3213a54ddbc258f8f670cc4f39e7084cdea4b47538dbc58b834bc93b443d58a4b9087224efc003234042aaf366687dbd32b1e7174082a0
+DIST symphonia-0.5.3.crate 10946 BLAKE2B 2139ffa564b2f6e736482810a9b77ab5c3a18a4fba0226fdf29d2f2036ce3cee4b3fe14cfada8d8d050db226420762df5b4d480ec60cc54689b94d655091d935 SHA512 a417a34730c8f45aee43c6d965da2972f713df841a0c249fd9c89b0e7227859eaf92f6d317be6ce01ad5b798bd58fbba84da27776fb7c6a9f75cdc6f03b922a5
+DIST symphonia-0.5.4.crate 12039 BLAKE2B 9bd9230cad0011a014471ed2e01160a2ac7e31383345e7befdb7e7d44197e12d8de86e9c399743760f79245d85214b6ac99a1209c06e899d1e1044e6e32f6c60 SHA512 fba7aee862ea3225790d6e527f7253a08c3d735e4d3eed8812c551b2fe180bec116bceb1f4718ffd1af53e48156b4f4cbdefe75657ca1487481757f7e8cb9d13
+DIST symphonia-bundle-mp3-0.5.3.crate 59988 BLAKE2B 235d04805f8d95d48ebf8a135aee4cfe4dc38618a0a6dace4d55eb8addbe79528df4ab9a7bb4e9b9c8cf331766bb8568eb686ee2b90f33cf7d7aa59b57ad353d SHA512 a4e8648f40b3c1f6663b7e52b142758250051e4c27f501f195c2869c6c3cf1bfa5de0b16edbc896003496b37c280694a2029a3cd7d4c3d34923d8c58ab062fb9
+DIST symphonia-bundle-mp3-0.5.4.crate 60104 BLAKE2B 1d7a86ee6092c706be3b622326615d161a48aebf16dea96768cf986fc9f7b295a59fdf85b47495d3444e05667d619940220df8c73f7f5a114897fb4257ff2c61 SHA512 19b2132af39be9ae7d74ef0141a637db0a0f3d4df6405331bc928a6bdffefd783e16fb75f60adc08e0235034a9862228355871b30d2adbf4d412a539e7843d56
+DIST symphonia-core-0.5.3.crate 97048 BLAKE2B e5e010ed9ae45c63d221a6a84bd06fb3b7b786eb833980da1a6dc197385154d12080c6daff3182e42d73239bb0922bd521c4dd7eebb0ad6fb15937775567baa3 SHA512 a1aff187ffa3860bf9113801059d9d1eec8b8ee2f127d12b8d4082a342e42ff8ea67bcd7781c18560c448f3cb58cdce152c9f28f964ecb861c6f570502552a33
+DIST symphonia-core-0.5.4.crate 98029 BLAKE2B f65a92cbde4b91865d088c7a7727fedffda325450281ab98f8ec93b1866d88e2ae6ec8bb25ced31a716537d664298f82658914d02c729af9f9bcad0bfa8bd160 SHA512 3f2265b9eecf405d699779d66014017f6654452607e62462bdf7914fee51d812c63773d0d22f78fa099df67a11aef375bf1859258ce1ecfb07a45c175c686888
+DIST symphonia-metadata-0.5.3.crate 21089 BLAKE2B 28f11aff59840c12bbb920ea2555aa8ea258398bee41f6ae69c5a36386c0e50e8e6e5339da601922a8931dd8e1f02e1d686ec9a01a145e35fac9592266a563ff SHA512 d87213ed6b51b14b612b78d6ff81c7e748ec64b86806b1c7425a1c7ea2f3f71643b16cb888d0d505dbcdc5b81336ffba84fd870ab71933a1af8edda37372d46a
+DIST symphonia-metadata-0.5.4.crate 23343 BLAKE2B 2861b684047bddd0f4a524be213fc15b1287d9301563ee862a1fa69f50eaf6df07357616c33ace46066373c55868ed7b40655630051e0215ed230a11e2e34d20 SHA512 b1c0f37008d7ef5d21f7da5a93fc68920c0606d9745e79a7f0b9120b3d92e5fcc75a67bb5c0528c9647730fa4212b6a589e3ac299ce3bfa5e9641c1de0bef18f
+DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+DIST syn-2.0.48.crate 250566 BLAKE2B e46b0863af76c3116c84d01b654a9820b7edc51f75c9c5301a7967d12284f78da602409f34fc40524728350dc6b998a4d738f08b8868f95236b3e5d24c460580 SHA512 926c0ad55cc743df20f9166b6d71fd44421aeb1f073fd86b6ddb53e13cd508b539c0360ce64b07b65597bb14639c8f33acf7e60951e1e9128624517aa3aee325
+DIST syn-2.0.53.crate 254828 BLAKE2B 4bbff9a430e12baae231eec35dca4a3130e9977c6272dcad4a25266441959461e6e2b69832492a6895948fada9152abf8630c1d011c93912356397360bfb7b8e SHA512 0c3e40e1af47910b59877246700dd695e2bf03c35e036adb99e9756f8e055c8b3421020fc43f71954aa7adfdc56712d58968f3f39ca2e93c0daedfebd8862b9b
+DIST syn-2.0.60.crate 255808 BLAKE2B d7a8e415dd72267fd92da48ba8b3e6feb728f0639797db1aa74aeaa2a57935b7565eec37cbd32eec826154e2c54075b121737369eb15af36c322c34b3cfd7930 SHA512 20bfa02b03c193672a9922f9a5e196185341e082a262f7c00d7c2d467d9e2d77f4af3994634923cfaeee34aa9eab510415165f052ffd9b1ed0b1b581e272898d
+DIST sync_wrapper-0.1.2.crate 6933 BLAKE2B 0ec797ddead298a95bde0a508ae942a4e90943948d3c1e4833fb3ad1cefd3566b7fd1aa0b133d614839707e3f416e3e739099ac73441527213da81b6d1c47d50 SHA512 ca7cd7a6dd242fa420e8dba820117d85b1b11ea6a9fd99c92a5a260f12263cac0c034c9f9fe10090d5830fb5bf5eefc8a5a0d0b5a40f3f809d69e5393693d5c8
+DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST sys-locale-0.3.1.crate 15681 BLAKE2B c60d11812280b8e0c1e5a753c7867351deaa43d26bb3ce0b381f56c2f375ec8db2755636131a13fadd79aa6d90b75c5834dbf52848b9ca50c1ecc5b627fc640a SHA512 c06ff352d5beb9d214f08e82b8d49acd8b83114e6b88c9685f0694d42bba079215e6afd1c5c75a8e8bfbcc72d99cb01de7a3d8f160196adb6db9c34bcf1a1ebd
+DIST system-configuration-0.5.1.crate 12618 BLAKE2B fa75a24f8db6eafe578bcbf162fcd110ca059c58af24916acd64959b48d8541e0aa95ce2c929a8a50c62e7e8a967de9101640d1da7805fce2f76b7c5c86c4544 SHA512 af77ed5be890e826b9b8f975bd2e63f3905adb24a597069a887ff2a861820f1ed40582b918f35c3d4eb063800e179b93e5acd7d5b48b147e9b16e3cf4c12840f
+DIST system-configuration-sys-0.5.0.crate 6730 BLAKE2B e40c4b5e7897cfe30b2fb6daa9b44fe2b83eb2a12d798a1ad8908b51abc735566becb0e001f52f5f8a0d3596f62a9eec631341c3a9cbd132a4f650f988c74b93 SHA512 764168ee5efe1ba82e847ed74a14d1f5f1892735e98657c3ecaafcb4b405d4f779592dfaade252f6a577ca2cfd5cd5e467c0b6326bbdcfa573c3ab01cdc8fc34
+DIST system-deps-6.2.0.crate 24961 BLAKE2B de59a67e59aeb793dfc7f71aacf93303a4eaa3364aec69fabb7572c07120c447c0b3581ad62aa61292d7c78cda880557e1bc11a3a76bd1a6bd84dd3128c4fa2a SHA512 10bbc503b8f55560a607d764c2575c7b854ae07ed50470d7cededc1e0451e4c7f75e06a655eba90e5470d8c2d1f1911089cd4d82da378a2d15f8e718c8f794c4
+DIST target-lexicon-0.12.13.crate 25424 BLAKE2B 5fcac231c270a59b6589adb79c90cd3bb15ce024e3c5fa3fd267b3226e5514ce77387c57c86ca765b43ee593a55ec99fdc8fbfd464dc01afaa91ad10337b6278 SHA512 323331857bd3db9877a6c7304392e39d378439462ae4f6d6939c02d28914ecddec52696c94ceebfe8a0e7e93ce25c900099bb3922d7783643162e55c7a8769b7
+DIST tempfile-3.10.0.crate 33376 BLAKE2B 303e3bbc2492fd965c5e5ca02229868e94de1b1286175a07b3f9767a174c5a83bb6f6ab59d582f963f9cc4f92362be6a8e898e140397e4314bc18bd8d4e13249 SHA512 0f9bb6420105badfaf7e59f9679b53c6e3f875208ad8b08b9bf38cf67a1512742f1e3dc586136ec9cb760d127da6be69e9f9ed55f18722edf1af3a452e7d93fa
+DIST tempfile-3.10.1.crate 33653 BLAKE2B 819b183e7840f70270883ee8b6a91fa09861c3112eaadc65007199885abe099bd593e1cdc4d9ab48c23490a6d484cad9bf0e80cf4e718c369cc2418b72eaf09c SHA512 bac7515b85b0d01ea914b527f0fadd3a4d8e77c9eabe786977d2625d8a3e91decaec502dd15bab4d49a43597fa7cf7660fff4be1b043112d13b542a72443bf39
+DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+DIST thiserror-1.0.57.crate 20993 BLAKE2B 4eb90b8ee027e39102d6c030176db94510180f2bd2966503501ff89ca6b49afd61e6d9e1ebf18c08d374ff9de4e958dfcb3da8740fdfe31cceace5be456bfe4b SHA512 0ff7e48c3696f4f4c6af29f3142f0a7bb88a07b7a9877ec243e3ea15d89c48f1898b731311da5d4a7c88060628cae3eeea6a4eccf25bd851cb3075920cb1a936
+DIST thiserror-1.0.58.crate 21025 BLAKE2B 2915ed6ab691fe94e97a834ce5874d37a388c3240499889cff633ee6c67d46a2ca88098ba40c225ca0e2e3c1ac7bdcfafcfde3dcefc50867e299dc49505d6fc0 SHA512 3cba2d1f4965bc56bac8fc70540d8cd442ab6b8c7d25d328bde7f4cc108535d83c75f293316d730bbd86eb247400b6e35107d610c7caf47f43a28b1f52fed578
+DIST thiserror-impl-1.0.57.crate 15639 BLAKE2B 2838235c5536fcb16d19382fe286850d6fb882b1d77ca4ade6a62e1d4727ef89f69cf0383cf330996f9e2303226d5fd709557331a45c9a91393db1788fbf4422 SHA512 a850806f09b232546d1e0df5e35cd961a8aa32f1d8ac3b24df360981da53b75325a46dc788c994042c95a5887fdc77234b9f6ee5851242f734a613e579548e3c
+DIST thiserror-impl-1.0.58.crate 15645 BLAKE2B 9c6f643a582666ee4eb43330340888e7141f0dd89d927e3345268c3eaca02fa42b018514ef38b3db3ff9722b25ebdd43c36b11ecfc7bcb36950ce2c204ff78e1 SHA512 9bbc623f54c71595e48b33bdb3e4f12eb2e48074b15ebe400d6faab43410b363e5af94df071aaa324c59dc6958173e3c301fd51b216969f095e19cb98a27292b
+DIST thread_local-1.1.7.crate 13585 BLAKE2B f497dbcdfaf7dbc8b4b0dd97f77ba93df15b63303e7894c9032c9822a5b8111e0a21db2fa8cfdce5a503f70959ac9cdf48c840b925bdd850dc15e8436ba72379 SHA512 3772452c2a349fb564d29bb06e13c8ae64807db27c3ee217fa04fd0e9847e94adeea582b82ffc2d9116f31ff478eb088550caf1346c263de49b55fa17b431c31
+DIST thread_local-1.1.8.crate 13962 BLAKE2B fce2feddaaebde42bdb83d814929868f06387a4fa25d5becc73ff0b983395aabe076268569c6a89e2d90ce6e68d2ebca7c3e0ba1c9159c61b32631ce39289a9f SHA512 6d7e3941f43c43ac091db5d1cf2a8a3892b54b0634d9200426eadeb82015566532f04b6040085dbdcb10580ac724b6ded8416931d764d795a5f923aced66c492
+DIST threadpool-1.8.1.crate 14408 BLAKE2B 8bd64ede19184e18460f6b2ad5bc888d6facd5fcaa5b43c35269e35909c9c68a884203f5c4b92619c097ad48c19ec29f73085755ee348cc637233ff3b5b50ccc SHA512 adaa5aecdeec25848af15b160e5b39833978454d834974211bd586d81837f2ce89e5590f08b7e0d4868346cf57056913a5d41bc8bf92b89109ed769cce4a8be0
+DIST tiff-0.9.1.crate 1423953 BLAKE2B d01949cc3a76a32f2e802a151a4c1d4bbe47c7f217f198f940293d02fd6a1a6d3087c66b3fbc099da3e155f959774d2a9d4d8c5f5f00cd6486f5f44571a1dedd SHA512 82419e671c6a896f1d639d46a3c5a019e3bff6c75d961b838f5311e5ecb31c3baafc5f88fe928e88f6b3b31881a867ea4ca9905f43e3e24f77f183260dc27b93
+DIST time-0.3.34.crate 118430 BLAKE2B 6d04a20596c9b0961ca104748d9d360f07b16059719d7410fdf1a7a0d5f2aa02aaebf640999464835964bbded2d3257d79c4b0ca3080fbecf13dd2d0aa6962fc SHA512 3997e1b8d9be2f54184ebc9e1355d4b65f0b7bc9439b2b29e4a4acd86ad3a3aa019261112a24d998d76a7f66b266a86536fa50412279911b14d4d7aa7078c116
+DIST time-core-0.1.2.crate 7191 BLAKE2B c477ad3410ff29f3bf4a38fc6ac4a043d49b6d2bdf5cf309ffcd2eec3bb6e4c4b62156ee7f069f0b37ea31c163bc75ccbf35abc1db2833cdd4912135e60ddfc9 SHA512 3861724c23cb806829a01186deb5217ae8252c20af622975264e6670cff528f42155039e4937756a9eb312a5580ffab07949437d5504d684a0e70755046cac52
+DIST time-macros-0.2.17.crate 24443 BLAKE2B 5045af9352961db0c97cae2f6ca3e8d2c4f89a129c7ac2ec1d8d20804292aa9f2901a61f910a564954614b68f39311bd381deeb66fed8bdac423227d077f3d14 SHA512 c81747f0b74e68d3b3f36d378ac5911dece8c6b511e5ac793807f854cc31c812b927d0df941f55ff90d3d67512d0ac6a5f63f2de4322c81b05da42f46b4a661c
+DIST tiny-skia-0.11.4.crate 201082 BLAKE2B fe350137665e6229ea707bedbb535b8d5c3fd24752ec9c97e2a6c43b28ce7fb9107935a6f91074e0613dd2a156a45dde695343cde7ca78f3f9079636c5e1f9d9 SHA512 1371fa11934c1223169fb4494accf3b47958003e19a603e8fde446216e2c1253a6ef80da5d7bf3c9c73038f5282e3c47cc5f8eb87f8456cc5706392b28b4ecac
+DIST tiny-skia-path-0.11.4.crate 47764 BLAKE2B 55b76adc467fb4c063ac2136271c353b92254f20a68e5205395081582c624481687bc319845e217868e5f2c54ef320728d0b2ddefe32fab1a17b90882168c2dd SHA512 723557dcb08cbdbc4d442ccfbba38481b922e367cec07fa23957f9271a96d1c656fd46bb0e0b5609686e5c830d1a988b0e209f57d0765d0afa738e5b2b0d8dc8
+DIST tinystr-0.7.5.crate 16366 BLAKE2B 00a5eda21da581ab351dbdd2591960c027d0d1e35f00b2b1049cf78ce115b4e7f9583ebec74d0a95c79112d2b4fa60ab8440ec83646542d8c73236790c07ae8c SHA512 f6f5ee490049a3572d13305f1431d4882f201c81bacb0e0a333e949a0a955c98d3a0d347b1f31d1fc8eaeefb4690a3fe6fb18e82163b92d10b757a56bb5610c3
+DIST tinyvec-1.6.0.crate 45991 BLAKE2B e9699d4d80a78978f0ebfd049f5b33d7f23d401cf4f4439ccb168e8c0e322473ad0ea7e2ff0ff69e9aac3e5c4c9ae5a7102185533bfbf96dbe77b3526e700bc9 SHA512 e5acaf353c58c60ae5556130a934f1048abb79cf6668ae467d308bac44b689d8a9997227ea879f4b5fe50f29cde8761801b088d7149bcd063b973056c381921c
+DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
+DIST tokio-1.36.0.crate 757286 BLAKE2B be9fccb7c41fa6a48f500509ce7b7ce0e1c831a5ee51772ed10fdf054b5872395d0037864f10da4d8cd160d15e8dd8e2445446de75b8e8613debd01e530fd0b8 SHA512 0687980dd375965647c89cd6f569f74ded6400dbbf73318f02d8221e8f49a03151a4f023fced542cf63197d7bb150ca45417c10dfd91517d10bafe0d329d6848
+DIST tokio-1.37.0.crate 764297 BLAKE2B 725f3b62c52ae962623df84c690db7c54438581b8d2108dda76f05bfabdf1688f2de8b4fed2ab0db5c04c7659af8d95a7e19702654a12fd498d85a1d030c7a45 SHA512 fc3c070ed0c09e57205b76618a93b8b00f4d74c2ad89df3295254ec2a984f4fdfa9ed5472ff935e1644e89cf2abc44354742603c0e006f14861deab2b873cd85
+DIST tokio-macros-2.2.0.crate 11520 BLAKE2B b688669f8bcb44967fe0d3db51fc5d5f86da3cd0c7eb7b5803feb250ea3444d134ecc7f79345f0b947cd3479a46659f3a158a04e0edaaa52deb8d343deac4761 SHA512 7e33fa62e0cf4b829638553a51f849242788d217264437444b3bf478fb40be26800d5cfd954b1bcdca1e5191b3c6c60879050f0f7e707461f7b090ae5025e0c6
+DIST tokio-rustls-0.25.0.crate 30541 BLAKE2B fc85306724dbb91efee7924340e0cbf4557cfeb149cf11dca84e37ca96e6ca54cbe774edaffdaf313da11af98ac03cca23bb7c2ff6ea551f5328a3bf3ee9aa02 SHA512 4e04669ecdd8235edd438075e6b125f6473e117adc2ae13ceaee7668705e81a87f97242253f51dea204fa1bb3b9f8f9f21b587b4edc7c2e58e375f5537ee5f95
+DIST tokio-util-0.7.10.crate 110508 BLAKE2B 073b25e1484d54911bc15fc2a4b3fb7658f24f7f77a2382f9f84c5122871cf8c5d6097d5c784cd75b17a79aa63eca80644ff54bb496b52e53bb89650ce35cab0 SHA512 d77db36cfa5a2ace3090874d8996b9e94058ac31648308da8dd92a7bdc9b9b61adb703dbd2131adfef0b428cd61b4de76fbdb674f718e89b297f762af11ec50c
+DIST toml-0.8.10.crate 50667 BLAKE2B 815c850d4e2b8f107729c24ff82a6be81160649fff726f07a2c6e2af0283298fd5eadcc5811ba4ef20ce12914ecb43da79fa1840fea8d1572ca59f02f9e2c310 SHA512 24f3b44244d7e91ae50eaf20bde40c177352592aadd2dac697a831a5de9305ac1c93c8dc407579b9bbd8d9984fe34cfdc42c3243cd0057ad83db14bd899bb546
+DIST toml-0.8.11.crate 51146 BLAKE2B 105dc2202867eee9fda569d8af0cdfa79bea45617de8adc66820e5b75e4ee37b9629302b21016c86bcbb2660a0183b8b8c544c9977f4e619750d2ebe63253abf SHA512 375f38cf272cf62ae4ab6dd5e495e3ec85dfc1effd61581afc5ba3a7e991fb0f6f778405c331b2969946116b43d7777acf5a3bdf43798b987bbdc47322564034
+DIST toml-0.8.12.crate 51145 BLAKE2B bbd5b7c536c16b23f26bc520298172a61a61cf72195191d1d3eddcf54ef0ceef781902ad2c0033fab5aed11229400ec537e3cf86c24645a6d111b387ca8d54c7 SHA512 dd8054e20aac5320a2a6a7d47640cc56e48c2b6db01069786382fe5ae19e9b307fe7f4811ce5b8fd283a307c0aabb2b7f57101e05edadf79636785128b5cc265
+DIST toml_datetime-0.6.5.crate 10910 BLAKE2B 93a21ab2784e96ee2e6b56c7b4f733f6ac4c68c1e7d7dac3fbd8aceedb3580e25b4a9c7d9c3f9b5ed152560353b3e80906e37824956dc4ea90bc6f039768f6cb SHA512 502bdedbcbd2ac9fbaa5f4b51f2e409af185f3633f01f8845de5e3b007f2400215ddeb82ac588bc915ed5a5f9d7251ccf93fe2a57cd40fca2927f4c0966357e6
+DIST toml_edit-0.19.15.crate 95324 BLAKE2B f989f96d571693ff81572af6c05a6f51b673e478f22d20a6b166c45909902ac80280ea92ec5c3567327df90100a47fb7504845fc39bbcff6756af6c1a89e2221 SHA512 46d6bd2fea957392ae0ad7e687dad7743b76ee8e8ec76c80d6374ea294d3d09b6f73df0a82c821b9ee3b5268987a4136aa825034309f3cbc1947dbd1af1505dc
+DIST toml_edit-0.21.1.crate 101661 BLAKE2B e794b6121ba7e2b1b3f50966cd40eebacee6968b6b28986cfe4cb7312b51ffff19f74826910d8e4ce307f74940f11e71e6afdd768ac196427bddf44595bbc797 SHA512 10cd3b16f763f55294923ce8f166f96fbd67a0acc4a93a46fb3044d8a38148097c592ebb405ced87030d35154abfcc971eacf0172b624ab477a11e616efbaa07
+DIST toml_edit-0.22.5.crate 103292 BLAKE2B 317770698d6588a39e245e4297f465a61b6fbeca04a28bd3d82dc7a14a8e41c672f0dd23dfc967da125b802769b9477614db05f4e4506f442c923bf7454a4b6b SHA512 bb485b58c44ffd72da3bcda2a6279104e2115f3988b897393ccb5dc029d487b6adbaeb5791fa2603e7ab8dbbba7ae4ed54aae64578e0040a130d64918a37bb01
+DIST toml_edit-0.22.7.crate 104001 BLAKE2B dd1685032655842750c4d5bfd754d7df643eb25cb497fccd48e8a4b1fa9527c60af5514bc250c13f20e2c93eff2da8d7b819a96f8d9af759a3e6e5c6d2958422 SHA512 db3c648ed54301f510769d572b0b0b1ebb445fbb7f38dbd572bc8f15efe1256ba50403fec1288cd8b74c834399386a05da40d472bc9ac726a8124ca6e93d0fcc
+DIST toml_edit-0.22.9.crate 104173 BLAKE2B 1d2ae80707a554bfc9b9b66975828cc66e4759e1c2d9475d0ab200710cd9794a2560834802e586a42d8e52eb309497593f6673944101d90948974d21d3f227d7 SHA512 b96b310e18618c5cb75cc827f5bf4565f06e0089577decd38a2669bc51672f3d1500e2ca5e69838ee93d98c966fcaee1584e8fea1fe0b2ae724be0882fd5880e
+DIST tower-0.4.13.crate 106906 BLAKE2B 6a8f4455dcc69f6c03af703fcfb0e6b214c2ce599611ef78fd41cf411ccf06bdce241e03a1d85d36cfeadc72db9f3d9b7ed94c4fcec466c070f2357ff6e27360 SHA512 592f23eee5efa6a4f0d2ffb0d965da7e0f75a90a4320a0d0dacdd5add66513ae40902d21af2bf683573133ee984866987df2ae8eb8e632cba7a9d196985aff8c
+DIST tower-layer-0.3.2.crate 6023 BLAKE2B 3450211e07a40419526cf1afe063c56357dd5add53470a4146ced3d294edeb95dbd645ab46ae0e42e4877dde63b1577adb21d9cf50116c4cfe4165e115d54ea9 SHA512 d5429b40569f67937e752c2d61c39a474af32bea5ba3940dbdf5a4037fde1ef7173cbd8fcdb87d0ea15c01bf84f2d55abd51fefbab2f27aa54e656eb1748c43e
+DIST tower-service-0.3.2.crate 6847 BLAKE2B d4571704eb4bf7f729f4535a04b7eb94f644d71ba8c5604297843351adf4bcce7ff64ec4e5435783ee6ada1b0a5c97726cfaade391525c6b2bca933cd5e8ec19 SHA512 f4578421603067fa708c4ad9eca5ca096b5262b6d51a404f37d9fbb6c64f027cec6114991e4b7f8324cb756c033971a384f1804add28e00d0cd6b2ee01d9e005
+DIST tracing-0.1.40.crate 79459 BLAKE2B 33693ee71564fe5925a63dca351e838dfd8612b4b1e49a33a70095e56ca63287c13c772661ace0e540d08c92942d7cbdc51ff2cce4f4b372164d9aa20ec05dee SHA512 5622188a45dddc0d6d3a8244a9b12db6221f4180944ce1019d18f4e613e4bd113dae5d45fb57dd0754f6e8e153b047cdf00c8f200782bb2b868bc2d423d99275
+DIST tracing-appender-0.2.3.crate 21964 BLAKE2B 7e2e9b759d876731984dd6c7b802fce18b8f233f6d659a220e5f1b338abe928b8f869d1479278eecac2899985d578db0f60dfeb80a1b8eb774265f21fff960d8 SHA512 c00f22d85a29209ec59377dd2f8c9bdfba84a5153ac84e1551266837e30fb931e76d93239a09bd4a27fabaf822bcbfd88d27787d923bc809493b7030b5cdfc02
+DIST tracing-attributes-0.1.27.crate 32241 BLAKE2B a20af0f50a90dcd64e5318e55779142da294ba18d1cd40059a8aa964fd3c92834e03ee563e41caaeef71a30e3f027e5c8d167d90e2844da79e0774b267e179b4 SHA512 7dc59f4234c3bf3434fb352baed2b81db4e931eeb3ed207c4a204e480da734be40847b167b808058d2807b5583815625bcd5153e2bbe79804cfa6f069a74ffa0
+DIST tracing-core-0.1.32.crate 61221 BLAKE2B a7815c46af9852ce62498083103c6d359351f4d33609b4291330073b6abf4b63f5e1bb1a7dfed3bbf4d6913ad5217e96999416261af8a70609408a29109e4db6 SHA512 164f79cacfcca533a53b7dbbdc2015aaf851a16e00c72fbc4e5f515b6a6dedfa464e964810009b54f08cbcdc5a314e50245ac7b1b01a71fce4c63db135bf5521
+DIST tracing-futures-0.2.5.crate 11637 BLAKE2B 2b23233705674cadf5dc8092d3990f375e780de2b9bdfcbfdd5f4bc9bd0f15a14c6bc8e36963bcd332e729b33b90ecd10b2250495e0657eaeb302e666313534e SHA512 8a437a029e18dcac3a3be7a3355a63e75432ff892316c9f2929c7557e3895b1bb5efb59a7588372bd9efc386b5cab54c2b382be99ef8fa643e66ae5656e506bb
+DIST tracing-log-0.2.0.crate 17561 BLAKE2B 701bdadd40f1343f3c4901bd8dd188f1dbc0afcdf50807bd0f6df7539635e239b5095696872103125a4d4cfec24af6336fce6f3931363dd5be4f53a09fa584f2 SHA512 0c1f060e8ffb9ff24cee7b85cc2d7d42c69b2f7623a7faecd7422b23b11ae8d5c7691e4635bae76861d444c369d9701ccb147904668023642b223e442e3c8285
+DIST tracing-subscriber-0.3.18.crate 196312 BLAKE2B bc2f04da63b0313d26073eb4a39b549ae37701e4dbf1fe06a2483279a03d9dde981f0efea6ceb5cd441ab313bfe7eaf812971c3ca60dfd4b5d9cf0d2eb7bacd4 SHA512 72f91855637aa476f03077d5f523cbc94989d40b12d7328167f88b081869ed096e6370450831f6cd5f0686cae5628f14eed4696c06a2ec75f56808b64445e0c1
+DIST tracing-tracy-0.10.4.crate 11229 BLAKE2B cb3b73ab9880721c435de731d06a4baac8a985a15709775086873ba8e34c3428f492fc400604a5bf0660aecc6c62048da1785689c8e0a3a39f1dc4ac97f3ef72 SHA512 364aa4e465d8fdba7d38881524dda509bd133dfa0197e8272b48008705d5dab5e57be9b9012063d234a25a9ca1b2ca9302f1ffba2b79082f3a459d61b878bdc9
+DIST tracing-wasm-0.2.1.crate 9372 BLAKE2B 5cdca349f6a4552e2d22812260c7ad94a2f2a4d0e94c9fe7edaea22a840d439e90425ed65ed7f572f46451626689cb1609e85722fac80ea9592746df29d2e5f5 SHA512 9ac4db2c9bd3f19351e5ad40a03da2ec9cf4b7d78c1d6ffd5fe55a4f94524adf90a0acdc9d97ef6e4399b90c70b90c413f2726e5cab9e9c79877105b5d00f342
+DIST tracy-client-0.16.5.crate 20125 BLAKE2B 5627a92881ab34ebe5a493a809260039bee084b55745cf51d5125784edfb4f06bd2eff8cf5bb916d4deb2173e5d11e30cf7c345d63f6c31231ed992fe5417bd1 SHA512 d00d7b4e2d48817e68105e7dd17aabc8942b5d56389b6e057f897fa71f29fdb80eb5ee394acb2a0a6e2e8dbba24f88d16c3e16fe0d45757294fb4a13d8793e8e
+DIST tracy-client-sys-0.22.2.crate 308267 BLAKE2B a2f5b6250ed37dbeb526165ac365679d53e5800c8dbfb2780fefc517071f85ed139b5c92ff19ae7bd330d6c6662f3c19aa2d19b2a79d83156974357e458df8d4 SHA512 33fa9f8cfe02594b18dee50629f93f688eaa84fb136a2e526b5ae89ad287038a838726bca5d975197c22473a246fc0dfc7b29d7b2c7c385b78d2211cc8965633
+DIST transpose-0.2.2.crate 10816 BLAKE2B 87c6e1152858048fa188406a3683781b5af1f036c8236db2b4548a452327ba221a0c6ce71a6a191b2fe854a3292119cfe548a9b57266f4857fa0e517c331a6d4 SHA512 a08347773fba17586fd42f8e6ccd17c30f6d6c22faf391c6ff57ece99147754366b4273b41186a206f54b2be0bd3b29b2ef49182d23f0cfd11137cb49368338f
+DIST transpose-0.2.3.crate 10913 BLAKE2B 5af25c7e404121acf68caaa5b4109f4f3cd56093575139ce54a68dc14bd2238ef1d3cd2c7626a1a9e860433b15d517b57af264dea1f16cd59827bfa3cc4e93f2 SHA512 1a624e7baf2c74da48489558f9327d935bde67812eec50e205a4060180612d7e6d7d18f18c1b118bd7b08650cd089d8c1574db3fbd504a6915c9cd3b4ec09b59
+DIST tree_magic_mini-3.0.3.crate 15406 BLAKE2B 84b8761c1496e1d771bb7d884a0afd48d1a457b87db26edc23f0db63aeb5780966f330662e9725570bffb0122b8544a4e0828e48cdf7ebb892d70f43aaa1145f SHA512 6299f42c3286a9a4b38a1503810b0eee302e99cfd386256dde275bd5df402ba6800cf94b4bb94444b011898657d687f89642634d20f6f07e2a7719c27188d684
+DIST try-lock-0.2.5.crate 4314 BLAKE2B e75c6c0d7c975e294e3d723e2fb023067530ad6db3c7bdbe89b9558764606fd1a74f0d1ba787d85266db1912dbeda85408e85646d0f7cb24496d743b7a18c705 SHA512 433db3c52f55d78220db414ef6a7367791dd66eac935f41dcda85ec9200f0eefeab6e8342e70aabe35c300069c0e7b7c4f8d63a2334b52a081cc98416371ef08
+DIST ttf-parser-0.20.0.crate 161769 BLAKE2B 0c2cce46dac6ad19335f5d4a0182725d347640976f8d1474472b3b0541bc9b8b4360f25d50166de7ebf5237b537a811bf0a4a55e529825689c375ca3777c0fc2 SHA512 57f8b09a47109da06a4472d6a75de41773bc6a4a976684e5490a19b1b6da4631d381650152914ad8ab04ddd01b7c5cccca971ca45054cfdf027ebcd924037929
+DIST type-map-0.4.0.crate 3177 BLAKE2B 6c56ab2600e36679f37319040a529029bf8432959026c95c98490a5f137c64ae30b889dac7e4bab2b4edc656adc22d2a01c6c7a688f8ac46db1505f5c7ff5642 SHA512 c3e81d6dd94d5d8266bf409efb9e9ce6fb5d5889d672422b1f85f406ab62c58e27af5b6031ba5699af9d70c90bd8fca913c7ae0fb75f64358e3b7989f3d32099
+DIST type-map-0.5.0.crate 3464 BLAKE2B 02eb7aec3b683842cbc2daecc5e778719a353c3f9fd24c76262c980acdac2a303b9156718bf7fc15e0ac66345bf1c04befbc218a358f55a97ae0d172390b5367 SHA512 9d35158412917abfd56833a365c32d06df1ce1b2de3411993a43a675833321d9b3120ae4432a4618a887cf087cffc3470b82786a1f67db29a90ebb7b2555012e
+DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
+DIST uds_windows-1.1.0.crate 17040 BLAKE2B c77914e150d2f0afc5c55680e28ba242238f4f1291948ae492fe63c16791e443ef33bafa6686cb753e53361ce452f2df27d2bf4088fb1ae203a47df3c55856bf SHA512 092c41f6fac2aacd5b83009b4aabe2cfc487cc1ad5ebc8237d9804aff0c5c823d3c079d99748e9ec3bb1c02b8a51f6a22e41441ec9a72c50600c08b1efdeb0ca
+DIST unic-char-property-0.9.0.crate 6809 BLAKE2B d2bb66259b66e59e831ad74d89528882336a7cf6dfac7a9f49308a70a3d61d5ab88f3ade9df2c086f27ff4a6eae0d2d2b8e63bd154ce3e700cc525769f34542a SHA512 ef969968c61eae6a7d68e6ccb0b40f6618a69bfc4714b51bf4ee8c5ec4532d10b9c6675a4cd5121c904a578ceec7c6471d1496fedbf121059f076ad1c5ccb70d
+DIST unic-char-range-0.9.0.crate 7020 BLAKE2B ab79b4298b999a9fbb769bf191f83e259b40b8d06cc5cb82abac48434162216a283fa82c1bc9af8b40656c2d06e5b6a919ff7888852eabb9001a92db12fa48d7 SHA512 bb0ede1695f4f016bdf9ec83bb49639527248c175c71d24993b8651ea6be0a411251ed8518893101dd5e96fd2913cf15ec27799c677ddb08b8e408da06ae0ceb
+DIST unic-common-0.9.0.crate 2558 BLAKE2B 4efd81198a61076ed45f6fff73561de21b5b7500277de206ed41cfb01ce8e5046a1e2c5f90ac75c03eb1897b7f54a14cf0a8f6d9cb39f624b3a9fac375468e58 SHA512 9212f99afd4c694a3a671963d63e5349f81adde6d5f50c92ec39d15e7ee24aa91eee63ba578a857c8b21380937860968a8e13cd16bb0ee0c0ccd96b3094ad155
+DIST unic-langid-0.9.4.crate 8850 BLAKE2B e95ae483eb531b0ec50c53a0c5499cd593815e7ce7c20e2c5655879361bc0fdb9daa415e7641b2573a0912ea7042a53dd09528660b43027cbeef3b8494f736f5 SHA512 4297a84a8ec8479dd88b34380f882a1b2891d15be5089d7a015baaf172f57a003f92beb2faa96360262ff19ecb9542b7e720631609c69580586fe4a496fdca83
+DIST unic-langid-impl-0.9.4.crate 89401 BLAKE2B 8f3eb98a62624c8d3e49169517d0bda2992dc57caf6dbe7c935a0eadceca4df98048fb8ebdc951bd91541f92b6ad4fdd543bc5bef0d5c3403adf0eec542fc23f SHA512 4dcb307390567d474317a5f9c231624ebe524b393aadbc135e0923b474a14a0a593aa05cba2ee04eb195af0445b9058ddb5648a282a7ed0c44b4b6fcbc791e50
+DIST unic-langid-macros-0.9.4.crate 6332 BLAKE2B 864930823d705f9bb8e630d86f2d17508ae995058f288871cc4710811a663a294d22086c500a77ec02fe4ffe19890e088bda75151cf06bb3a655dd2ebae82a3f SHA512 a5e8ce24962ce3b2e26fefe624fe8d4816c81664acb9d0b852a2f4c2ca792a1855769f65efbd8f24df9d4c12dd68640ec600fe16b0fc2812390ff74322d77986
+DIST unic-langid-macros-impl-0.9.4.crate 6202 BLAKE2B fba2c4580e08f474e209ed9599433a8a8d95ef3123448e83157e942aabf3d9a4aaf715ac95dfdf71bb38b3b9a18ea34cc1bb672ab4ff8b00e8ba67276e70ae94 SHA512 8bf869f70bc599b7b55e0d671dc88e24c0cf7e16dfecec84baec5156261c5c2e72fc6314436cedf776afd92a2776367facf26985cf863b7b4f525abd6061c59e
+DIST unic-segment-0.9.0.crate 34848 BLAKE2B cf04b1d875ebc835758b17f8fa0937da8e47b5c3aa3d2389b9ee35160805b1a0696c3a654d68b60a515fd31dba0571b0a087e97f6815ebd075e1bfeefd0a623a SHA512 cc2a27459dca554a78ce24fee42f0e4d0fbac37c42b4c5a1275f9e3b412cd1c813a4b4864857ddc33b549d99f10c9ce9c277b00f9fa7d93f130f5e47106d8fb3
+DIST unic-ucd-segment-0.9.0.crate 39262 BLAKE2B 73a2f0bfeb17ee731c17e7eb4b7188a800fcd3745c5c6480916240d087df5a856e4f51556e1aaee1e6668b216377acdaf4879beee6b285da040f6871f0c04e6b SHA512 04aab71f97785453dce7f561acfb2382a23d60a68735f3664577015a256191463dd6b1f90694e4440c4889eb9b6380c16c7a0ec2dfc2d49fc44a284eeca43c09
+DIST unic-ucd-version-0.9.0.crate 2246 BLAKE2B c546ee182387db997e6cd699a25bc201fc943306d8e87f96edc1a3dc1cd5ab8ad96f34e8275721a5604765aa6fb6f81e3d8d9eae690d04e5ba71325a769b065b SHA512 153219ff18be02e23ff3dc90bba11fa8c7cda11b972e0d84500d9a0742fb7d84466f2cc63ee278a24098c39634e50742af3317cd942f4ea882ef5a2a8e003d7b
+DIST unicase-2.7.0.crate 23783 BLAKE2B 2b74b932b45c9d5b984b57bfe8249496c192944e2e66916919177eac81c509e2d7a5d30a85ea58e8cd5a0b47fec746bdb18723f3f14002fc64af3a0d320a9e7d SHA512 c2b05a3bbd8996e1cf65d7458f5ad95de9797c8349484f8db04967bde15c1f057f62b2f7a60e7367871512071ed5076c0da042169dbbdcaf4d6c16cae62da828
+DIST unicode-bidi-0.3.15.crate 56811 BLAKE2B 1f1d372c86ec7444f13eb32baf13dfc8699b52156b265a2b53f40c0d771064876405451120fe54739a2679e6991caaf4f63e0644f03729cab814079fef4868c8 SHA512 7a21d5eb05ea8d691dfd54ce4cf7d3693d08067f7a88ef17b8c3044634f46411176b1bde1516c442577910b254007b247f5e40f9932eb601cd96cd574f9d9db8
+DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+DIST unicode-normalization-0.1.22.crate 122604 BLAKE2B 3f3430b279cc0ce1595392c869442ce676ab097154c688779ebcf726e10c497df59be2cd7bb2f84f99499a9df0654760a10ac92224c17d74775aeebe291241e1 SHA512 a5810d5e9cd93dbb80e013997aa9d38e60834619483a6623eb2859ec5d59a5aec3fc4db123dc7f4e2fe9f2b8799cf6af48bdff22d69a00a23707240e8bf3bb3c
+DIST unicode-normalization-0.1.23.crate 122649 BLAKE2B 22ea5ce3f5a2b371c3c8782321b1bbbee724db1e4d8c1d43af4e6bd8044b99307c227d93631d178d10fda445a941a485882ae0015a6e3d3c347e4bd465bbe1d9 SHA512 539f04010810d73fde7b0ab314faf813f3e7ecd2e51d7975281554b7cba4a8706e2b5523c4b7840568593652360ca59e9db0e1ce342e71c28db635ff55ffb0f5
+DIST unicode-segmentation-1.11.0.crate 102740 BLAKE2B 6ab5de53073ff56da4924e8c6ecbfa4bbd72a66b8d86f2c32b2f0ccfefee8064997a6b5311af5de2b71943089c9f52862e3cb13cf366cd645f57c96f2ac8673a SHA512 4914543cf022680f341c4a235f6d9204b3ac9a9098f34a80ee8c94e3d8ccbb82e78af016978eda910987533044593ac629a35286dc80707d349b33e405e86bef
+DIST unicode-width-0.1.11.crate 19187 BLAKE2B 6baf7f3b32eb838925e591792abfe11968206d177facefb89ef51daf44c18f3fef1e41c19a47b88b81be50667af626af2024ccc540b240fb6e1d83fdea57076f SHA512 ee06f4144525424327a17578642565f396802f0eea539b3bebc8d9627376a8bc6c5376d83a6ee577068e99fe75815bd765e6d49fb9ab9b253d00594bb15a5ffe
+DIST unicode-xid-0.2.4.crate 15352 BLAKE2B 80c327b39f3b8f2cdb5747cde968cfa1efe7b65b6bee9136adc881fa19f66aa5b1010d9d08de55a61b322d665b5b0cb0395e9ac471f6333c40d8dca5d97e123c SHA512 e67bd1258e1961807d9d5fe583a89ab5b82b2a529ecd32cadfc79aa5331380eb4a2db9fd96b74c8eace47f2f29021587d69bcdbf79f7e2650e92a25f7839d03c
+DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+DIST url-2.5.0.crate 78605 BLAKE2B f3fec3477248cbbe67866577eebb03f517c284a5e5cb783132b11ef3ad156a03524f4730f188d822dec85169d7474e265099296d6bdd4adf5ffaa0a118821617 SHA512 4aedbc48b85bcc2853189f5fe8265a01c76516b5507f4e958d8d0b860fe2590c69c95f0f4b9fd6fac9b8d5911bcb0a5e9ab7f8e8b600f37a12db1438976ee5c3
+DIST urlencoding-2.1.3.crate 6538 BLAKE2B 65777b0990aa6b3d27a47f36114da8622026ac8946b5ffb6e04172b666ec7244a55c250a7fb626472bb2b636eb32ee945599cee5ce7351c3cef2322366db15ff SHA512 035848d9243ed6a4528377b56edd7f8bcb5f824381b420dc8f5c4bfc3f1246655c54eaa7de0e4aaa7138e0b08fd796b9ace140ab919aed2d94f6952b577386ac
+DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e126f1774a4377d41eba3269369862f57515af387ea785d69a8adf46338b5e53761b5ee6f4f4380473f4d9cab0a SHA512 51fba8f1e7eb74b7020fd831e30a67fc8353ac2ee07335c8c3374a5570ac8117f165f6905d4b7f0360095b7b5ed3e739001d02a8cc3c89195baf2cd679136050
+DIST uuid-1.7.0.crate 42627 BLAKE2B 493f6a3a643d3493a2bd7e0e92a1ccfb7bd722e3a1fc8deb7df0ddc875a822daead1cdd35dc3ac6f26346844100a671318d71e5ad760c9587471d4f05bbb0c69 SHA512 2ea704d082b725d98717d772e1af84fe743929ee32658ebeb111c6fa2395ff5f44558b7e375087617f91c6f7bc242f2db96e80a631071722de6fe15af845e856
+DIST uuid-1.8.0.crate 44043 BLAKE2B 6a5e3008f0399d5606ea4ef51e5932aedf2a02e747b9bee4b4c2c6646cd959a720373c346a734c00554ff0359fe42bdf471dea5029e23a9e70164e20895cacee SHA512 fe254f0bf6b863538ce568405569a4c755b33bce561148661b10985bf4485fa7ee7a6ec650d93656552b3cdead46b2074ebfd45b040edef19cd1648300f68ed5
+DIST valuable-0.1.0.crate 27718 BLAKE2B ef5ded994c9a6dd302bed27f0d757447b0c86dfefa499c1ef0d25c3a6745ce61cfa2c926826534c9f605f9b89b4a19f91f06f94ae7c03f1ddc4c58fab3ae58bb SHA512 a97f65db1f1c5049a276dbb0e45e25c6fc6ce9d27ac1fcd77c945324cd8216ef60344065c79799ca04e338455e4f7422c44078eea32d5fc359dd0211ee7eb387
+DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
+DIST vec_map-0.8.2.crate 14466 BLAKE2B 8f109fbff19604b82ea2aa61c952e2ce9b5597ccc8e1ef4e847648e2de08dece8c4debe92889edeccb8d393645fd0b62436b49d236ded7ad181c4a51239a9539 SHA512 4f1ef59bc2c437e79f1f84fe021bce5aa8ccd581f500f3d5776913d5f17d45b03ccee64f5bd03d47656318cfc9344a1f4311079d471fa409a8e4e94c143973f9
+DIST vergen-8.3.1.crate 44665 BLAKE2B be409f3e469592d90fa1b839721b23c7d0bf6f23d04ad74ecb0ae275e44f2b7ad7ddf747180d0009ff6621830b26259f379abc85e89797a015a0d00e25eca26c SHA512 63da805fbe324eb7032d98d3c09e1f71b9f9cb4f9a69f2a7e4560442e7a83be37c7f558b7d3bdb4719b4350decb3a562bbbd8f2e8dfc180f8dc58907411df7c7
+DIST version-compare-0.1.1.crate 13224 BLAKE2B 4bb1e7db6a4a5b30f4ef950234fa939bd562e8d5693aad42a5dadddde7caee01b4dc42b28d8ef61a769cf573440e57c0dc321f8a8b4b3dfc0cc035507bfed886 SHA512 efc9441440f702518867e2056c0ab066cd2fa6949112479e463802610f25a4d50c4411eb5fd0ba6ca9b187e358fce8d99579188e0ed9ba0297191172ab7af408
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST vfs-0.10.0.crate 44427 BLAKE2B e870381164015202942197ac877a7fd79d8d5d0aa122aae58b45826c813d7b56add285b64925bc3dd4cdfe46a5c8af3d06c011939e21f8c0f04d5bf4123d42ef SHA512 ed05149b0d71854d0ddb3dbeeb63fcd3ff08bf47036a1d699ff06b13015ed7fabbc23fa5e6901090ebf150bd95dae6ded75c59af268a7dd2118e918328fa9734
+DIST vfs-0.12.0.crate 47059 BLAKE2B d830cb157cb9b4421b05ad1e59b90c27b33a6c8c0b4d9606ee403feeaa3042c5c2dd19b09ced94000618ed1431ba01e140780709fcf7543ffc621db3ac8feb7a SHA512 1f807681adf20357e4b944bbb1f42790b7134f136bd6b016a434141e7586864da964476486683be38915c35cd6b68ac870ab3decb97e4986381f729f82ee049a
+DIST vswhom-0.1.0.crate 9420 BLAKE2B ad748822fa9650d011c5f240f5e52ae1e27380fc1b22db2ceaaece4fbc814ac2f2792cf6772079199202efe88fb968618a13d91609e5245639f25b32640fad44 SHA512 0ac192e6a1d296904246d89a08021b55384b48959f26f1f0dca893f8fa1e71a012a0d731d1e48e41ca8e4427da84e50fa43ced621e435b010cbcda4f19c45a58
+DIST vswhom-sys-0.1.2.crate 15852 BLAKE2B b21fbc0af440d3feac8ffb769f951f504e01f630d6f806d78a8f218eeb09ff8940328d6a9289e195deae9fdc43fdd55cfd037ae9c57b366ae57906b80d2f4785 SHA512 cd7e7b9e1953c70470d2f17210e83d28cd2c5ab8fc34ef0c9e06390e928853e375ed7bc2bda343b2f15820e989b5adc5bd33d9cea078716bc31545ff019435c8
+DIST waker-fn-1.1.1.crate 6323 BLAKE2B a6b60c11d72aa5991ba57036bff589f73ddb5c15c399b8510a7e4d2993af67fcfb9c0d3a85b0ed27a772a98d068b0748f4b43145475e46e4a5ee1ce290875a09 SHA512 293321481eba0b72a4a37b158c76b0a783f0e5e4677d9609e43aafb703d44162e4abfb6b50bed1adda5bd1bff95a3b658fb542cbaa6c684a1bc7a8e8cf4135c8
+DIST walkdir-2.4.0.crate 23550 BLAKE2B b4298c01cb38be0479b7ddfee627af01f889b6b6ff432e368bb67f65134c3958a4fe271a5a7dd61b19259ae88f5680e5ce8e12e50a872b05fcba68f59b7073ec SHA512 09e1bc852c01b452c95b26a369831a97bc5c9e0ada3111c73774570dd73bb5b9e4735317d5572304fb48dca44ce7b9f77bbd17c418b6b047b2ab17b8bb42d9d9
+DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad
+DIST want-0.3.1.crate 6398 BLAKE2B bcc1384bbb86db27b5e082b29a8dd4d89c37b40f6cdec4df8a86c8d205b418468b6cd42a78bd14ebaba057b28e151c00b474c098d7596f49a823ce33510c13b9 SHA512 f93f765113f035e134b967e8eb3f4511b8e03e793a47899b614d826afac02348fc02865c298a10410ecec4eb64f35f66c22bcbdbe36ed0c4c1665dca1db4d526
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasm-bindgen-0.2.91.crate 182689 BLAKE2B 4ee85709546462be3da2a6f1caa02448fa903c7411eb264894aac402979afae4a0d7f3dbb486266b05d8caa911893ae9bfe9921cd36e03eb5147a8d75d6c17d2 SHA512 80e91e5b6094eddadbafd842a4a1b3284de7bb51bbd795e8716a0adac354dc14ceee0593d7c33090de06aadc8bc61b8eeab8851d066cc4ef4661e64adff1988a
+DIST wasm-bindgen-0.2.92.crate 184119 BLAKE2B ca256c686bb3854492bad6afe3cd27dab314561a1ea2e0205579820066b462bacdb2cc01075fb420bd20eb33b03a648ce1ff46feee04d8759ea8aa990ff8232a SHA512 6e46501276c0d4befbf930c816d6ae6c3764e3b5ce0ef4aafa627a6ea371f1a056ecc15970a817e9e9bf51c0a2ffa57df427d758b2d367beb6a474d75b8939a5
+DIST wasm-bindgen-backend-0.2.91.crate 28345 BLAKE2B 912a0471ac64d61f18d1c1749a3614ab70d08f330fd90b903ce5ef51f18288c7d4ef153f1d8100671c02de8fc499928cf925bdab4da4f0352789268dfae87457 SHA512 7d3c8db4503982fae9c86620c964e8f9a4ce542a79c56f21d9f82d26bb9418e78b7fa9922901663bf78516d58652dc3255ef48d1e1f042d8a3c69210f5804204
+DIST wasm-bindgen-backend-0.2.92.crate 28348 BLAKE2B 425497aa7a023b70549c55d5a15dfed80877c5503863b186c0a9d11b29551c4606c1cd5961c7dfdeee2eab5662952ad7ad215513e93abe727a33f84b30bd181e SHA512 22e4f5848d62bd1fd55f4f054ea1293e223b3cd6f916bde2523eec10388e733623492c3a3246d61831e696dffdec5d000b95e9aa1217be6e38dd6459872166aa
+DIST wasm-bindgen-futures-0.4.40.crate 15375 BLAKE2B a11cdba684c14f0deaeb22eb490012b1d72d03e0c5307a8b7e1fafbdd19207482770c66fe02b013bd459a073757bbbb1e93031e8f96ffde04dbb6717f282e514 SHA512 8a2cd103e6d2c8c2c4cf1f83897f9cd54319bf1a648078c18b0bbd5f47903d8ec21949b776eaca8c997ddac7b9ffb3cf48348be1e830d485671a73bccc876250
+DIST wasm-bindgen-futures-0.4.42.crate 15380 BLAKE2B a20ba9f2bc814d7aac031f1cbaec90289f63893b76c60b536a65af85379771e102d6c3d949a8528328587ac776d7a3b684c12a217f9e186bf10046a1fcb34652 SHA512 0a77203499381b6bc4e9258480d7ef499d9c26b195baf38d0b7b228872f844d24c827cd57c8e2b0176927fd5957428084f53fe80cf60b35b7ba02d02b27a4682
+DIST wasm-bindgen-macro-0.2.91.crate 13898 BLAKE2B dda8dd5d77dc57324b633f056805bf7892c39c5e70257b6d048c2f8cf885f7306f91f3f17de1b63dc740db66d52fe2250ba981077e03dcc731dcf7c80c047c9d SHA512 6b05e0a2657e7e4f313089787b52cc7f59f5a94be6f716ba007fcbc3bf7c38561225ba3f39245d779e28dd30630b2d4c6be12baa6ea1e6cb47e562ccff48372f
+DIST wasm-bindgen-macro-0.2.92.crate 13835 BLAKE2B 1f2202fdaeb78c32813eaf08b2fbd7aa9c469228386df71b8ffd81a46374e39a7104b79991f702505f9b7e97957fda8574517fbb03e3f9e93098c4d6e1e46be3 SHA512 78d2ddac88a9ca3ca5eef8a7af81cdf2366187a67d844e69f65f6893d1949f9723ab5f2be762c2217a5c21aee2f3dbc2d5d55ef0c9cbf0dec0d52d67a6ba7462
+DIST wasm-bindgen-macro-support-0.2.91.crate 20091 BLAKE2B 337b1b2a9e9e9c1350267df0d9f041291a847cf4faa3bcd6fcc8a96e66fda54685da72f6e64e57cde0d4609409ebdc7851e96781f599470f8b0545018bdc2166 SHA512 1277682520d88cb9529adbc054590a732a8890debe33d1d64ebce332c66c02f84065c0f643fa45c01de8b80534b2daf8333979601323b3ed50dc49553233c39c
+DIST wasm-bindgen-macro-support-0.2.92.crate 20092 BLAKE2B 8e274a4053e7afc680740e811c3941478caf5342e2206e3d28cdea9f9514bedbfa4f2b6bc608817306a1c455dd7134b7e17f0f04499f6bfb5302f29b041ac7ae SHA512 92543d2aad0b25798ec20e68832b823610c2c01401088cd9cac1684a86ddd1b567b3e2712acb862060f9c645a0df509b01d9834fd3e13cdaab97960f66d8daa7
+DIST wasm-bindgen-shared-0.2.91.crate 7267 BLAKE2B a9dca2db84a33c650a7abbb6dc552bc4bab1446e66aace751d3709d2c63b878b127748a83cb174aae3ff8c5f5ec017b97623e5e9294e6ebf92d669efc618c357 SHA512 97072a8bdfadde104f6e9e760e1ac5ec665fdaff38a93a0bf601c95e652b35403e58a99fa8c0fefea6e47b38fb97f2e1ffcf52736f9ab890b0b9632efb26cb4b
+DIST wasm-bindgen-shared-0.2.92.crate 7263 BLAKE2B e54895486b9a31cc4651b7bb042059cc84421708346c06a9764315ebd4f440a1077520c7d325d6889a690b2c06aa185d40cede2dc4d061b363594cbde20fac31 SHA512 70e3a22731ed8aec428433bf30500eb3f62e3b7f4f1be34d8bb3b6f34f99690fc85d49eb413caecab807064494cfec64242c6a42709dffd638046e370bf86e07
+DIST wasm-streams-0.4.0.crate 34328 BLAKE2B a29fc66c00b9fab42ba1691ddbc251bebba429837875989874073427cfcd2ed1874597d7f7a9f1097e0bab74a3cef04ba6d312ee9138a5cd973d71837a545d6c SHA512 9a729b183999bd5cd6a31e69014381371d7c750bd0ff5c3ef0b08682fa4563ad8de1a2db0901bfc53f6721269c937cfdc4742b34388829513dfee1337d30d60d
+DIST wayland-backend-0.3.3.crate 70455 BLAKE2B 9c6bbb5c8982411b8d63305cd109d5dba3b396ea1c130e0327dc31d4f6d0df56e8d8fe5992fc80c000bb8127ad4e8d32d2ef5e7fec925fe3b0b508e63b4149d9 SHA512 fb3c7f25074747954b5dbf8455c2faa92862ae53864599f49ed64b74e5f114d7e578ed388cb3b7240fac3fff98a5d231a977154bbe976354938d66fc5da5b8e4
+DIST wayland-client-0.31.2.crate 62976 BLAKE2B f7c4e1f581bace8b491c7ffd393106db44b7be028c136b1ab99c9f091f828c6ff6e5157234882a7926da5cc0de22c1ce14dda7e00ccd5e2ecc5e3356dec86e71 SHA512 1f15b1f8787e1b25b90369106ac6119f208a60ab9c3fe851287fa9c7c8d9fb03217c3f33ffb1dfba5df4f2a749be19402d25ed80e1ed9d7301c1c40e847911b8
+DIST wayland-csd-frame-0.3.0.crate 5696 BLAKE2B cc475e52f9cb0bd06569b7a6996cc78158a07ed2cad7282973806d4b4dd345b968088d5d035ce1f52909aeb3aeb804b93243f6fe98c38c0e8032d961992cbc1a SHA512 2ae56291ebf40e84ff690f15ce43cee36a29fc67975cb1331c47a44cd93aab7c19fc8b385b67149a62836b3bcbe1d5bdb646078b9cf2b00e5288893ba9840bb8
+DIST wayland-cursor-0.31.1.crate 6883 BLAKE2B b70a56f45fc16d0dbb63ac64c69270ef1ef4185101c77751fd063913489e49e0c0257e83a07a136f2f6ac8d923a495d52bfd6bbbaca69b5f3de2f4f50fe0ae44 SHA512 42b975a1c9097b588505243c2923ff3acfe0aa312e8dce5390cb7aea98924f3e29d1cf29245a54a54b617829028c96ad2b5ad51f3854a3e85ce840eaf0edf844
+DIST wayland-protocols-0.31.2.crate 147062 BLAKE2B 62d5ea52833d9edc661d405c83159f97c5bdbc41bdefbc9418a08971236cb74d317efe11e2e23ed6d96f0be27e4a830b4d47bf27d5b269e30e5a4cb97c469c8b SHA512 8f295413b20f308fbf337d8d6e2b6905061d32baa0aeea2aac55edeceadc754a121c56b8b96ca218aa902cfb26fa168c84334ef5033f8cc72e1505f1cfba06fa
+DIST wayland-protocols-plasma-0.2.0.crate 59992 BLAKE2B e43993c207db0ab01c09ca2ad523adaefa1b07978fe2bf67c1e16a8d7e24f443e181a4ebaab2555bc45119d0c66a26ac4f91de932d13b3fe1c881d9bcf0a211a SHA512 d72a03ae0c34b9102567b584971714734aa97e0bd85a3447663a0f88b05bc06a295b1aabc46b6c92701e620c2af87ad6a321a5daddab0df08e7e09f1337f3cb6
+DIST wayland-protocols-wlr-0.2.0.crate 25804 BLAKE2B 226af653146d7eef2ee0a7b6d1484048c5f8b1d2618d3bb9d33eca7e019579c9868d42e5488ba8dc830457ca186a0aa07599accef22902b982d653e381b2f4ef SHA512 b1e5025dbe50a9b90bfd7a38d7564ea8a02c84c8c802d2200864dc604847a4b0979f8a0e05d8d76c2b7c1e198c7847e4d59ad49311b00ab2d4d36eceb776a16a
+DIST wayland-scanner-0.31.1.crate 35419 BLAKE2B adaf9d19f395c5b11e35113ef31b5e11e76fda4929365e61f5a40fbc3f8505e68cacc4e31eb0137da2a07edaca898a2835a22e7236affddf7fea012f087197b7 SHA512 61521f39f414bce7bf372656544294382676649a42d3e2751b6a33874bf12ea3fe87d55c9389799197bbbab36fade2f386a6a83437434d4e0175347b232f7f62
+DIST wayland-sys-0.31.1.crate 8577 BLAKE2B 9252740742340e1f4a4192f610c3c8e6788e08e9c37528c97371762a8949d5eedcc9c052f2b74edf23218e8a6dfce3c63adea0da769ff805e3f68d689d041fab SHA512 79d6feda8a2a4307218ad51b292efd7d0e80707630908a9ae9bca6c0ceed57af874f3b6467915fefd078279ff4f7d39291d84d6250312f692305d38d7f0bed3e
+DIST weak-table-0.3.2.crate 23989 BLAKE2B f5b12d62704a86f77fabaac918d084a4f7471b52994307da20376d48264b811eaeffe2cae2f28ebeeefa4338c758516bcdba5d138cd7ac12ebfccc697009e167 SHA512 78936f2afca36575d3faa823ef4e621d7dea9e3eb4c8c3e1d66af296951fc25476dc8cbadae184322f6e1e8166410df617fe74794b2d3696d599bb2406499562
+DIST web-sys-0.3.67.crate 725967 BLAKE2B 4d9080733645fe5056bef44d7649372ab588ad8642bc8581f15c7d24cbceafbd214569a5f07f968d30999b08588005c5ffa0c63da16d44bdd6d772e8bf712a1c SHA512 9653be945e3c19dd5ff344ee002f41762a5efc24af316424a30246427e15d1c945f6ae25b9d6dec1881867003ea0dc261adef328bc1a1a8f94d7d792faa95e1f
+DIST web-sys-0.3.69.crate 728877 BLAKE2B 9f1678cbddb15f5a37331216a43785c72896f87e8ce62c6b9e69007316ca6eeaa7edbb33b9f2d9bf96c98de2a1e10afe491d8734657b186e2c3905ad1ff19ad9 SHA512 78b79ceb6a47485c766ad660bb8b971ba549424542a020c35c7db64a19f7b161617e464eaea0602f433b6ac4973b8d1a86a56e76dcda179ccea60aef1245347b
+DIST web-time-0.2.4.crate 15743 BLAKE2B b0255c2d8742c736a2900e32422c439c90878b3bf883943bb6772b91ab13411fbe6617b7801434062b1529843c57d7debfc454cc7a67553c6247047e4def4413 SHA512 d52025a11a11e3286aa0fcd20639eac6cb93ac189b368419adc0ccd2045b288bee9df8c0042a65744a78700e4576f3055478fd52c5a5381088f9a6e28ca3e3c3
+DIST web-time-1.1.0.crate 18026 BLAKE2B cd72e384aca90c79e587448160587531c417f31a32e9ded23e6b78d492d0e517520170fd03177f28870c313b9302b28c32069a2408acccc076a1e4939a2c8f8d SHA512 73e4ef9851de089fde9381a595cb9e37a434f563f1fd350e345f2617b701caf57a9aef739b922b5b10cda131cdf2fd0af42c55603f8973a623a8b6ae70f6cc9f
+DIST webbrowser-0.8.12.crate 38923 BLAKE2B cb2908dc0dae7b3f9c9c9f4616a7952f845c0f00048b58ba9cea957e33ce651819b95b1e7fc96279df9c10a84f405e43e564927b39be65e41fedaa3dc7b2debe SHA512 b83488c3f03dd37b7810ddc71788febf5d613073fcf55d356bef89b603335470df651cdc7ea74d2c567cc3d0739bf272427fb86cc90ca789faa09fc712d971bc
+DIST webbrowser-0.8.13.crate 39032 BLAKE2B 01477f7b7ab6d49581a679e7af8e0a132bf1d30c7c8b8a84c83b173421a6019537bd06c39aa6ae2282f6815d51bf07cc4b601ec188d34a0514096140f0427007 SHA512 0f7afa20f9bbd2216637374f40f448d6b5cf1ba5d15510d371c70e9f0cf9078db8f2da67d173f9ad51050e39c30a68aa0ee73941d8566a64a13fca38857fde1b
+DIST webbrowser-0.8.15.crate 39264 BLAKE2B c33d3def837e89f9c52635a401dc5db56adb3fef4cf57907c0770cbe7b576da4d6147c0a93c24a309b99a59cff91be7756f609c840db0d11c81de7f27a04a0e8 SHA512 b34d6fed1833b03dcc949429443acbabe9f5fc59ab559b87cdc3764303eb817d628f27c46b6361a6163a60cffe6b0f0acc93d2129b8503dbfe9711fda3e21442
+DIST webpki-roots-0.26.1.crate 249748 BLAKE2B 6a2468eb2f868c65c599d2f6664798f75e77cb7a7228a2c7285ee5256cb01d110709474feb389991f12ba0d143211770c6922932c7fab01b4b0e37b612cbd453 SHA512 89ac53267d850953aa78550a60f58f5bcb0f9e885c4c448911dc55bbb8dbc3fb845cd7545fc40ff26998b0c360756de85206adcb148ca6190e50bc2daea7f61f
+DIST weezl-0.1.8.crate 42175 BLAKE2B 2a8dc84f018a4364ef814044a590477724b79655cd01d605e02442bdc8de1f7df3003946041dbcc17bc82315f0c11e7fc3c3b0b0375f65436f53bcac11b2bc71 SHA512 6012de47d6bb5177820be9794e70ce6354577247750b8a125dad1d3e093d96cacba62471d8f67f056a72447bb6bf7fffabc6254ae96d93014a5200c71d571c97
+DIST wgpu-0.19.1.crate 109340 BLAKE2B 6b189a25dfe5a9d8ae56c967f509217406451d1160c621e3cca0e8011172212572842190e0e1780960a2f3b4cb46e65806d67bce8671255aaf67419234907510 SHA512 809a762b686ff68c784c96b7f65263448832588b93ccf07150193dbeef515cf9d0f03e82694d6f846d5183e5418689996d3b602576aecdef8b980f7c31021961
+DIST wgpu-0.19.3.crate 140218 BLAKE2B 6f9ee1d9ddad7557caa13ba5d6dd0aa3463d5f6a9fca086f4e1e1fc07f6cb42b28053d829c44804c9e3871d42724b6949a997f83203e03d4c80a37ffa076712b SHA512 8c16820fb25b40c1b870aa25b52538b171dad278f26d2dee69eaf4db46d6d9cab8433077b810bba2acfc10a5b7953659efb22327979553a210cadb71695f7b40
+DIST wgpu-0.19.4.crate 140361 BLAKE2B e1cab07eec353b487f7cec5ef7924dfd8b892a58332ef492ad0ed2baff77766dfcdd4aab4b16c1e28b5704702b12e5f8c0cec6a33836283b628cec4bda2b332b SHA512 6a4e92be70b639ad7870db2a1425f145448e480315ae1d2f5de061c4a2b4be3dd83a2971138dc6de107356947a8bc40ec869b7b0f03a99873065f07217cd8b62
+DIST wgpu-core-0.19.0.crate 237141 BLAKE2B 77d6b885567f7453444837ac7bdd3fcfb559c822242990264235726fc40c738f4272103854e80f9f6631a5423fcc822ec1d4d121abbab470589dcfff8f2cd56e SHA512 8c29bd03f4a62e0f598e967cd3dc4a0b9828d115949858da4116994b8374a9fb703455e01dc188a44ba0b23c782eb9af19b68ea45ff791d066f9d784c58962a1
+DIST wgpu-core-0.19.3.crate 235851 BLAKE2B 40ffb89a2e4b960c4b88239980c007d70dbc4196cab10bedc5fcf9092cf2cba3423261eec34eaae1be098b83d82987f37c18e908a73118007f471cfa545d7d0a SHA512 330df424655981937f11e32c70fc2ada5f21dbfe5e82961eb3c0093ff329f5cd7db69b7e05126bbdca5fd04c4f16a08392daa0b3afee609b18ad67f5cb2091a8
+DIST wgpu-hal-0.19.1.crate 291249 BLAKE2B a1682b55ee892cbd803bdd450f0029928d86d1306b0df7a04ef5b6f011c21481173f5798bb89a655279376a814e34cd6e573d4e76269ee728ef74fd08fecd81f SHA512 1d42d567d2a3762e0ea4abf30da4acdbfc8284723ae34c6aff21ede250de6dc7762b50d8f5d2edf70b214ae2d876c5d22c9c1c23c5ecec2c6c84afdcbcda4a5f
+DIST wgpu-hal-0.19.3.crate 289888 BLAKE2B 4fbbecaaa29b3691156a4923d8c9bfed7fe1f84a7bd633449bf70c196ec7e96deb1f85953b2511d1c7fb471f3663431e22d4cb12a6d174507686e448fc846f11 SHA512 372e63533c796859152b21babce39e8decc8e5ee533a9ffd203f08fb7eafbbcffcdf8057008cb0fe36756ccb42eca77baeb35c501bff27b4c6640eaf547ffa08
+DIST wgpu-types-0.19.0.crate 59618 BLAKE2B 0b6cd6d4ad0271cfd5dcb12648bda84e1743b4a51f8c68c47038bfca490cd85ad2e043cef5d39156146b94f5bd6770d5929d217c163b8e290b9a6640a582206f SHA512 b698a1e7ffad00ac61897c11d4128392889f52c64984a62233079df0c3b42660e96b4b54d7a3c2ec29d5b8ea46194308dcd35516ecef8b3b6ca2215a9eb10941
+DIST wgpu-types-0.19.2.crate 59463 BLAKE2B 25d333b889e4fa21a79d0ae2a4b613cc317afa1eb57cfc73e08191facc29a2536a00a0cbb67470da9f98b1dcb11e96e3d63d0b434a6ddaec479db2beea2faa2f SHA512 5476fb614a92cd74197831ee7f7aa16e7cd1ed8258d699458c7a77d2ea2d6224c58076f994e01554cee8010b826a8d0dc15fa2c03a25797f87f4d92060c69ce6
+DIST which-4.4.2.crate 15953 BLAKE2B 40ca22cd2f625cb035a1d919ed457a300b482c7751dcee4441974c53d56ce13f1f502535e1f7c0746a01981f4de2e2f761c3a255902d6353db1a4c3c62637448 SHA512 2d12aa1d4c2dbc140e39c8f15bd4ee1eeb8e8de71bcdf579479ef4be860fb0839eaf4cdb818addba242d50420f6e08acaf2bfc979a889e092c83644819246fd5
+DIST wide-0.7.15.crate 80990 BLAKE2B 6e9321206e1929257130c18074304f69000cf69f61df42b7924fec6cf0416c05cac02062d910b73b90371a7e6fd3c4e7253644516708bbf1cc688bf0d9b7718d SHA512 ba28b5583b524bc32878b07bf183ce293776006c514fe7a6ee95e6fb9abe8ef4e832c4dfb0642b224df3e8f7f39d9023a50492b414c3a77c28caff8eb1f4a19b
+DIST widestring-1.0.2.crate 79706 BLAKE2B 64423d0c485d1596015e9fcee691222a2a69b85a1b13a91651c50c1e3c5ec61c5105232904c6239bb442a2b3f2e808379d802856b93bb62ec8779cbf3db77655 SHA512 cbebac37d87808e791d7839ad69e0b86af49b0e8a354a22e11797915c719937ed5b0cb638e5afc9d710cd1e073eaa9f7db76cd3ca1ec35a71b565f0b8f55407b
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.6.crate 12234 BLAKE2B b8db8ec9d7ada5532a22a2d070320174c32ece1f48890e9b028708e194fe72a04287b11910dc2ddc7f9c9674a9d8d39449b3e100725e1f59e59e3047a7e3650b SHA512 b1c949f9bcd34c1949a9d3a7bde6ce62fcf3d2cb66df60af41fe67a9d1acb24e571cdd5ac721be9f1ee4b3af5ef5149b5724ad6e02b558e124ef2a4412d12db9
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-0.46.0.crate 11668505 BLAKE2B 0f707487e1a2b23f18acb0f8915be9ce180d2a1367909cc639d4168aa98049b1796e4d225cc0ef746209a41a1a60ba492b1c75fadc8ccb40fe176cf751b59631 SHA512 4f4ab7eb7479bff554d2ca20d795753f10944b8e65c6496fdf02436411b598ae09fc174cfe9a75e11999913adb5e1b2b672bc2ff3426ea5408a9a5916d5c4aeb
+DIST windows-0.48.0.crate 11864177 BLAKE2B 39c0e4f058f68a829ee08721818a0b04287af20dfe6e03a125b75566b4c8a58b56557d685600f1f9c215811154f9782f12368d42848445d54dcf9bfd6471349d SHA512 7c906f885fa0a730f1cb1ef4e62f5b602a49d44343febe1d38fcd4cbc28e0342766983796042585fe457aa229333558715b6270e378946faa8f398a7ecc2af8c
+DIST windows-0.52.0.crate 11843715 BLAKE2B 0d35225f5d61f71b0cb768f03825031101e05c83d7f12e05cb17b14ba28e6bc6a3d5aaee5ba07e54c1a773b6eadde4ce3523ab87e8e313e5578e2de01a3dcdc7 SHA512 8a9d443cfae3b44ab50bdffd70b70ea3b3d536f464e4beb7cfa9e15eb4e4505cbac20266b44d589bb7231790a87f473ead6d2160b8cd18d62f31b78bf61417da
+DIST windows-0.54.0.crate 11096265 BLAKE2B d9e2741577ef5a8cdd66ff0dc3de16d92b5005a43c4d521f9c9670ec15fdf0ef5f9656219695d80e2f9bc2ed51e31b5e3b867c484a00dae1a388b647f2eca6b9 SHA512 703d9de3d8624b9179e3b4aae24c8ba384c823d54e9f55133c9ae8bec8090019280674aa6c8e47872d91fb0f194c692ef5cbaff710714bddef12cf3fe98552db
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-core-0.54.0.crate 44015 BLAKE2B 2ec7bdc09eef66ca4360dbe6b6c75548b91abc6cbc7272818108d3f37b97141bf4ee57e1b70cd33a5ee9d637be9f3674067ab26cdd204d97aa195e4f59b98935 SHA512 eb83e67ea04b7fc6cb33fa470e43683588a26c842f6949abd3b5ef26753dab3f8ce6924872a3dfae4b497f7980921027162c6d364a02430d3af7d2f63fa9f45f
+DIST windows-result-0.1.0.crate 10486 BLAKE2B d830c0edaf913014dbb61e108b5c8967c50bd8b8741155b1ea6d0d3a0181d1fcd9d6bd260e3c1413697e6c1f8e4828547ae44f5c4c5ec0cec57022d6803ab13c SHA512 69cd05d1ddc61e52d1f5c76d48a8de716aee40874ab6cfa5b72143873fa4b09bcfa82be6744c9ed87b551e0b0d0489f87801ece5b74d4993cfc1a10580c6b29d
+DIST windows-sys-0.45.0.crate 2568659 BLAKE2B 6f2d634d121a9bf41e2887e277a73f33aee69b04c7fcfc6ff973d21902787997f1e186f530e9226cddc003ffc3f85a179c069c8a8688de459f617df92d33f94f SHA512 f239346c0141b95aa76e0771e2f4e38b9a592f3cd92c6001de353637cd65cd73b94cbf9917a4eaa9b0c0b2e6e2af920b9cf6b3fccb52770df5160254cffc1c47
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-targets-0.42.2.crate 5492 BLAKE2B 42fc4a7d3e287fe2a70637e890304b49737776596f4a94a6d216668247092135e84322bd04caddd19c83b7700b0f27278e600ce8ed326957fabc21bffcae89b0 SHA512 84fbaffcad9a80beca77506aac26d0c5cb75aa0f21a5a70bcd3f6a16e71e8753ae00d3b89da9262c99756624163dcc0d6074fa9f99dfaae0dc098018209025f9
+DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.0.crate 6229 BLAKE2B 4b1efdd32202f112d3782b586ce60667f5d3b6f97ccae0d7da833aee2ae81ceece88b5ef4126db2448c9019de3f77e4fe66ed4286bb6275d9a5e8ab74725b804 SHA512 0ea09552d89b802ec0d419b640fa02d0af7af602704a0e88ba10f81d123dee0c907460f6ec91224177ec9a948970abd7414740eb219148a4d66c269c2362740e
+DIST windows-targets-0.52.4.crate 6310 BLAKE2B 0393bf3e7f8823edc455055e9977798bd6cdc1e523127cf840ee1b9e36febe40e01dcad9875a06aea283dd55443d02f643d42752103a5ec1de933285fe410b17 SHA512 4b2c26468df54b9801e6badd120dcffc15429fc78a614f45efa16d5fed1a36983198fbb621cc3beb4a4f9f0161ef8ddeca3a5c6a6ac48b5589681936f4d2bf50
+DIST windows_aarch64_gnullvm-0.42.2.crate 364071 BLAKE2B 97c4e3b2a2dd3f936f9bfcdad23639c9c4c499eed220aec361d26d6013d798efa118e6b298f9cf841ac149d2ae5d58ca653731718450fcf2910bb5f6fa39159f SHA512 75cd7eb1def8ce9d0ff3d7468d2b1cc31cc76c08f981a2460c3d1eb09cff7100d7442863a3591621c1f5f3b3f4badf0b5c95285b6ed583e37283a8403f1095f1
+DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.0.crate 430182 BLAKE2B f23370c62c4ab3fd885e3ee22e8ec2fb5a3a837a57044c1df3f9986dd4e7e9d0a44ec58be1648a41e1ea4d037afa3077f0f03de0204199a82fb8395731815a4a SHA512 b7c3fe0a2ad5149be0df48fc7a4d15879eb130bd9441c58c25fc71b8a91483f0b553fb1bf29a9302acd348e9083a547430a840b059b0cfe19867ecaffcae986f
+DIST windows_aarch64_gnullvm-0.52.4.crate 433373 BLAKE2B 5678cf2371e4c566b7ff0dd1fabcae92d12ce9f97670524c93fd8c34bf6b09d054e7de2f852302b8d994f52c81015b7cc8a74f529490c7bdd17a3b5d2c88a12e SHA512 dbb914a866873892a8cffecd4ed4977fe6c3fc48a58bb9f88655d86e7f8969cc27e6f5bb7d40eee41ae7d78f6f4be65d46650719321a7697c7b5b99a0f07a5dd
+DIST windows_aarch64_msvc-0.42.2.crate 666981 BLAKE2B 9f3cc5592cdede08bcdc1e7c455325279e3b763d96942695e10dccf1dfc37a81c749b69a7d6de883d4c0fa6e8a0d2f578fe2a8d6c42ad8ef6282590bf8fc87b7 SHA512 d2dafa8c94d01c1b65ca1bd631d31f2ef842f1db7accb132ff78c3f8483221b991afd3391563e03dcec42bbc9cbdc0ebdab47b991d25af85b5ba2ac1bbf8db63
+DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.0.crate 821663 BLAKE2B e6f772858205f7cd871722136aec4d00daea4793ff9dcae53e6311e74526c46aa11c2b3df7a85e6c577757254cbfa5a713e68c694625ca274b64e7a1c5532c23 SHA512 8446bfe5b9fe538415762c8129ab3bf2fe45482e045bce367475747786602ad4ae1187c6e508dd9d7b6be81bfc8d430e0db9c624e35c7cc52e823023e46f5cf1
+DIST windows_aarch64_msvc-0.52.4.crate 828055 BLAKE2B 3088f2f66fc91ad698906315eae7e6c0dd7da5414c28cfa25b24e138fc4a7da40535be09129cd37b8e331d8d6e8c41d0106fba1ef9e5b4ac561140653e9ded4d SHA512 dcc538d0a9c276e7ec415575ec1392bf476219348984d9567f56d5cc7af0f9beeac523a9a6651f763dd4f50f89535a3ea2275d5321ec022c2ee8814e4e84e95b
+DIST windows_i686_gnu-0.42.2.crate 736236 BLAKE2B 4ef0496462afc73d9d72af7e5da1e6d3506a92f8172930e88ae64ab97596ffd31c4f97fb969e9b677e30159c27f00a8e756deb006b630fb98ce83f03c8b762e2 SHA512 ad09d650a05cb91cb6b40f59025c023a4c286bc1194586697c506016df2b9b0d5b02606b81687bc634795a0d9a9b8a73e486599328ae09c853e8e5ba662fc59c
+DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.0.crate 870285 BLAKE2B a7688062a128a1b1394b3978210334e4e2aaa10dce131457c4a11ce0cb3f551e7f4962d1ece1846d8e9526983ced0e0a3ee8c933858e9314b62e76381e086ef9 SHA512 fe993f5bb6e039c257be9b35337e0221f718d23866818bfd19c76aaae236aafc2de4bb5014fcdf919563b5901cdaa14a2136cd086eeed3c83e46a5d02f6aa77e
+DIST windows_i686_gnu-0.52.4.crate 875736 BLAKE2B 31ee3017a6db246b0d5fc02e10cdb517a69ceac3dbbc9d41b4051f5dfa1196e4a46e7b3f5f90935560c03bb139b897e5dce69989a3698d9c88ebae923e24ef30 SHA512 9d57260744607eb63453040c532bf3693cf3d8d93c56543ee00aa66adf3a71919e72bdef7811f287167403ade893248f189b797a5d2dcb24ef4e6f3d915a88c6
+DIST windows_i686_msvc-0.42.2.crate 724951 BLAKE2B b084286cd4927efd2889b149abf8a9fe9d3d777130db9e592982660dbf9a96a0f5e723ca121465787aa11877d2d29a5a7d7cf066cdc8fa7e90d7ca7dcb7677f1 SHA512 c1706fc36d4b157c020744a11b3eb5d7dfbf05a0b56775bc717e94b7fd725816b20154fdbcd69ac08dbfb8b8bbfa74fab72d7a9c10399aad6a1cc54cf597e804
+DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.0.crate 888693 BLAKE2B 7a6e9d03e503c8f543e80a8c7bcf3f50cfa7eed462e487ae7b581746d7cc4d871b33e307110d3a3a75226d88e837f9452ac56bf3baf71b66cfab2626cc15558a SHA512 817ac796fd00bed51d80133ec873cf3d3d582ba41fec8a6f6407fbd7544f198e928aa5d710f70c13bbf74a1dde4c91c54e65eb9d3b7518a7f011ea42725eb671
+DIST windows_i686_msvc-0.52.4.crate 895530 BLAKE2B 87ec4628472beec8697317662fd599a8ea0ba5a11a0cad6b23f2481f39b3a4e0546d37fade4d715ad06a4798cf7faa6435bafa1e5054105c064cb560468b6025 SHA512 0d5526b21bfb96ab352b5181dcf84ff31007ce338245a374b3b413805239359a689b1a21de56ae998cc13444e40867bc30c4200454b84ef9ffa7117318baef1e
+DIST windows_x86_64_gnu-0.42.2.crate 699373 BLAKE2B 01c70809d564b16b268656e47295e99c992d8f9839fac8a51338a0e7c3b9cdcd0429c456ca8c1c139a8c687ed7ed6c43a82250889d881aadaa65bd037223e0a6 SHA512 5767af3c86e717f93137a89d442230e6b60a649057edb3ab104b1f82c0bcd64fe089dcdf2f4fd486a799bece1ddb5f0449641536b678211945e749ae24f35c1f
+DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.0.crate 826213 BLAKE2B 3ca03285ef289fc844261142154e710e996c29940b1c0a7dc3016906ff6452fa50b24f8668fce0ca44bf169ab1228c217fece9f7bddac9ab8bdc54fddafaf8a8 SHA512 2d81af56ad0bc9536f6e066776642a546ce6c6d99551edc0603ffcafe6db15d5d5a32a642b204bbfadf34231daa3894ad7897a9c0c575c2b6bc1e3e58a9a3eb7
+DIST windows_x86_64_gnu-0.52.4.crate 831627 BLAKE2B 64d29f6e0837be822d89cc8aaea2514382d2c03b33deb5684df1d6b81573b3817add39d99f66181a762fae7c155e60a8c070affe43a0f2e247fb0c5ddcc7afd9 SHA512 96c673fb330af597fc3c71b53b9b66cacc9f3f64f05dc7cfe4a77447b7545280f065df22b7d91a6b7cf681a442d8b71c9d2dd128e76580664d8598c481cbb95e
+DIST windows_x86_64_gnullvm-0.42.2.crate 364068 BLAKE2B 64bc53e98eb3fc649c9b43a6e734de4e65088e41edacabd49f7afcc5dc6e1065c563ecfc682747dda05978dea2dba4f45c16fcc18c3b00684c3d93681e5a7deb SHA512 d39a8bc948110fe612d3f8d6628b3f0d56620df11d8a49e0fabb6c90389ad407582b3af10e4eab46c79b3d11d2e10753d73d9e55963fbeac085f41e9749bdba3
+DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.0.crate 430165 BLAKE2B af9345a1f6e0ed1392ca1534c68d23f3be0fbb6a42b3c5518cee14373e645038526da15e849d14abe45c53766a30c6c2042a626482ba4a05409f325eb6aa36b1 SHA512 e88af35fd1c694dc189783e5c81aafa61aeffbddce4d7130e1125d0ce3d932fafeb345990ffd98477c41b578b7f5090f4f9c0457b02146309b95549c9f8f44f0
+DIST windows_x86_64_gnullvm-0.52.4.crate 433358 BLAKE2B ffd55fba15ef713bd48caec5ed5f32936e05ac4897b721bd2b041229bc8c7beeca77ca018c3258dcdb09495629aa359d1dadaaf5112d38e7ea54670309d0ddf4 SHA512 f153d86b01e47f17ef08271b69becf7883bab92f96d40cdb1d74432f2bc6a7a65aa4ed931d8f6f4c2679e360bbd8d12037dc2a74a6a444fcaec5e4c784c54c74
+DIST windows_x86_64_msvc-0.42.2.crate 666936 BLAKE2B bc3a456e7f8bc272f8978ec69506ec9d89f97b7582ebbe05d8bd57bdf8156ef62d0d2dc6137a97e81d54059d70db97a24af9a038adff357f5dfd28805d6193b5 SHA512 53a35f438903fceb59e36bd2ac331773fb8e6c8c5a6d984e79021761f91b3b4a23efe49d219667a4d0d23dcdbf906da9c24e74fb1cff93395b5c55ff524e3788
+DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.0.crate 821600 BLAKE2B cc448b65f98fc0fc4949ae622b7020d2dae927ae45310649f6ef71809740eda9d3db0fc035676c201fd9ab9639e9e7f21e2e992b4c789542f12b419d2c752179 SHA512 3aaee31533a1a48a6ab5cd15b3cadfbd906a93a153e53919d0aa74e440d11e29830554e4e014c215f5b88a475bb733fa8ba4ce9d773d3e23a40ea9ad37ddd0a7
+DIST windows_x86_64_msvc-0.52.4.crate 828019 BLAKE2B 08163b63d934114457cd64b1c372f8a0cfc1ebf48a2efb41d79031c58ea64e023acd32d2f5075b8b78536998188138562e584ece95f2021b4bc71087ac45f026 SHA512 0671fa3c0463c6d65b525ece8bc91eab2f75cb534de86ba2b1e854d4136fcb439717441881206dba7cfb602493bc24d2aefa96abf8977f5a0fe38d41eadc90f1
+DIST winit-0.29.10.crate 574116 BLAKE2B 37760ff992bbaf6ecc60304877e3f48b4eafcca1f0f6fe936636f849ed12aca540bfe1cfa77239730d845ff6aeca36c7e8015288b1b398cb8d836fb5fa3cc604 SHA512 faa02eb1904074fea65a5a796c6c503ac8cb2bc32ff79e55a1fb1d55cf16851da39dcb04ac89b5560fa0f155a8db9f54de84a13526d2e37b5c596ec92038e857
+DIST winit-0.29.15.crate 588797 BLAKE2B a22d11d2f6a733624ff093df348e0b4fb2dfb01b40d2e6483a4c72ed93a964df9af6a15d624f99a54c0e0e4cf9a751036be4bd8c3f3bbfd7a3fb8eb41118d9f7 SHA512 eb1ffc450eb4254b45e44d0291e6574247254eea39e0703379c81a14a4ac77429710f5b8e2f25b84c44ad0fa080318cbff12012bcf28b892f56321aa8eb13160
+DIST winnow-0.5.40.crate 159316 BLAKE2B aae5076d59b3459c901d918d8aaa97ba8bfcc993b8484344f52e45f1f37deb96d6cd3a1663a67f3c367be2b05d633286f270274c621bda9f3ab72b98bb652cc2 SHA512 525156f08514b0110697360be6e331a68d08f0cb65ee4ba3ac9d101dd2d42a8c89601e7409bdb5652c5b05145626506651010f58a854c47712065334c61ff39c
+DIST winnow-0.6.0.crate 156623 BLAKE2B d6d6e24abcb1b32a8b670ab6e2c1574834e49dc9ca022ad8d754c21f5bd63be69e4e8e23548436c1b8b98ab3cef8fcd553e39a6e30e1e58448394e9f6c24c0d6 SHA512 f9e4cb82e00575834ffeae1e2fb713ecaabc52fd640c8327c9311814dc40a6e010cc81cd11e2acce1a9d3a90ec4a9b1480e633dc3087bd3bfd058723d6ec1b47
+DIST winnow-0.6.5.crate 159316 BLAKE2B d28c6a069e3d557335c09ae04f1d90a9086b1744d711e259da230c031a0302e270e304f8f9e8bc690c01cedcf07b46e05938ab3468b3e388ae8c51ac361b6408 SHA512 5395db16797beb158e9458099279abf53c5ea62c65584bbb9e0111213ab21c88cd0b0674062757e57ceb6c762a349f22db6ef60deef866fe15ebb0818287ab99
+DIST winreg-0.51.0.crate 29194 BLAKE2B 6673128da1316fb5676260cec66e79c2aa3a94bd4c33a51ab823c25015a2b8afa8609c024dff0f64ce21d8e82abd24c3cc58ffa6085796b8be7ab97f9fdca7cf SHA512 3206069ce81adfd5bbe10b706d4d405794be76688cb6d9cf967468401be35a2dc674ac3115cbe3842167929ee9a34efd398d42155723961199ac965e230f61a3
+DIST winreg-0.52.0.crate 30148 BLAKE2B 7b458d356ed1385b23ace88d8a7e2a4e2e3211ba4bd22e6488b60fe508ab2b5f6d93c7547e45e0564f512391a8fbc2af1bbd3e3e3a773865d87adff67b5b2fb5 SHA512 50659afe4fa9671696bb5c6a50d62e493ef5359a324a71f7877e2ff0b522560ad65196ac6d2f7f4117edb2e47e84adce7d1de5ed2ce273f132cb2d5006472e25
+DIST wio-0.2.2.crate 11214 BLAKE2B 7356229f90aa50d6ac8a7651637967de3e06755a7a45eab2a144e13c876058553c22129abffb07717b1715233f6cfc1efe90ff60c1877f4291fabaa4b5ea283d SHA512 13838de6e01b20de8996c7aa9efbaca5bcd9e4551614cfc10bee45ecca4bcc70b953b2c59fe460d1a054b3ecac13445b020aa244ea70686fd19be8d65c539b0e
+DIST wl-clipboard-rs-0.8.0.crate 32847 BLAKE2B cc6cef635784d3a14b14b31b5acae436fb9ae556387203c12aabc8664c715d79008cb69c74dbfcd0046c19b98c464557bb59e53d8c86ece85345b18ad0f47460 SHA512 ba08c62cf721e1150761cdde5d6c18369fe9f51d892b14999436b68a4599082602aaea429e8682aa03b43c63d9d27bb3d6e35fc754a75eefda848df22f114221
+DIST x11-dl-2.21.0.crate 66823 BLAKE2B 83305b44ec89e765ecb2dc48fc3aa93bc67d30f12e9782348bca822ca636207e9a9c2b707ab33b6dfc7fadd2b2cdaa599480470eef7a29a15332e923413a7cce SHA512 b864b0865720a9b2afc6d986fb7ebe19734671433449897d7f00488e019f3781f417f8e3763f09fa0db100a1d0c7e709ea9ac43c6dd48775f3daf803ebaebee5
+DIST x11rb-0.13.0.crate 222396 BLAKE2B 279dd73a1b342d773097cbbac7ce3ce198ee503c809f6d3b89c2c69b2e40dd21005e47cde708c0e9b12f2d944c0c1965a815eee774b86d9620d4dd51289cf0fa SHA512 9e86c7fab70d20193804a85608aaf46697b56f3d78eec50dd835c4ddd4a45ff56c0819309b443baa4a58f93e7d37f303e29ef279dbcd5d8c917c559751ca00b8
+DIST x11rb-protocol-0.13.0.crate 507838 BLAKE2B 11955c1908fef177bef859c1207f8fb9e644a8841ccbef885446a021152cb37a113bcb988a0d645e8b9289dc760d03d66ea0a6836e28bc25717e6ba571d02cb0 SHA512 36f412ed83634c402cfb3fea3fc64b9782b348fde3e98617a6c478867a0e93bacd9a69b1feb8d7ee5c01de578ddb85fff1ab86dfaaf88391c3e03dc7aeb3dca7
+DIST xcursor-0.3.5.crate 6256 BLAKE2B 09af0002e0fc70790dd4a132fd74525c18d45cd285fc5ba263e9e6faf83a97aeaaef2ef6e04fc7eb939c501e865623a0f454cbc93913d9821fa6005b8f4445e7 SHA512 284f0012a07776f351d9951de33187636f8410651ed71cee3169c0cc082fda6a01a39fddbed4185dae894f7d5314ce204078ce0848308672ee19789a1fdfb05c
+DIST xdg-home-1.1.0.crate 3600 BLAKE2B 9ebd05881f0b835ad8647691d05b168f0cc807ccd02bbeff4da9db0a4f6b9c5458a891d6df2867f8597f70789d7e4d49d4b81dcd266ed05d1c3d4b67ad9f11f6 SHA512 3f4d6d81b84beab8eb549e124c9dcf5dbcad8b6471cd87edcebf5c0011371667718104c7ea6eba7301fde7524137b18484621c820c75b182bafd7b9b2972957a
+DIST xkbcommon-dl-0.4.2.crate 5879 BLAKE2B f80fdcd23e71ac64a302f89d572ae8eb61be3115f298c4a6a5b65345cc625bac089c131aa7f77a3601ee898405c0b1a6a1cb4d754fae200c932456964d12ee1e SHA512 71d6a8468bb05d5c1dac130c90135dec88804708f8f2061b861953a980948b1e7c1f893b86ba8bbf251012d834398394deaa26934939ad161fd4ab9a28578cba
+DIST xkeysym-0.2.0.crate 101431 BLAKE2B 626c023f399c3fb2dc155934e2b0d14d74e0b4cda25353a03b6bba3060e11e8ebba017571c7e704d5df8e658207149899cf741bc84262734e464be1a7efb55be SHA512 7dc5893f91aacafacce66f14ec27a6c792e7bf82c116e6d2221d2ed5ba3ef2889243f4af3f407d0370b46db6ac27568708b431d59b82c5d056f89d11e42ae44f
+DIST xml-rs-0.8.19.crate 54051 BLAKE2B 667358226fd5fa1829110ee9b587dae7d95fe1f010f8106f515af12435d3c49b0f9f3c09bb4ec4fa019f8e9b25575b3c5fc2dd5858b37b5bbca9bfa263df842a SHA512 a46796ed542a7396e760ee327ec191e96d61b3fd8b78cef2ab2da75c5290433f422a34cabef20267e8a6a162e0a48fc8f81cd66a5dcf997ddd539e55d9130199
+DIST yaml-rust-0.4.5.crate 47783 BLAKE2B 3e888c5cc7afb43eaf3aaab2b6f47b86df164a66eb54d4e166b965cc84b1e06cd17bd992a0d6ee175d9a73a76e2b44a13167246383ed054afcf3cc1710b309cb SHA512 7621dc8dfd5e7d4a7a8805b2a7e8319b63b852367655f2359d4e3e8fec6c4fad52d75c46ce1161e4c674eac0780b757ce9d34e664e304d8d2beec7afa0363ea0
+DIST yansi-0.5.1.crate 16525 BLAKE2B 3b5a93b98293daae72f53bf3f13bfc05feba8d5b27921f79595f7448fbcb9a0dfa6cd70f467c5735b914c46b7d3592e6cce080c540a458a904308525eb3aa839 SHA512 7b33005a066cc612408a65df6533e8718d1de43efc0fd57416a19dc2b811497570e6e18f100fb26073565e395e711518c27de7d644ae64777713f1a102eb16d2
+DIST zbus-4.1.2.crate 153356 BLAKE2B c6ca76de9305bcb9d1d8f0b21236feeee339aa1b0ce021336953df858fd3655045bffd7d8d95878d35db19bef264f719f0a74b0585b15a13bec2d612a597502e SHA512 2ac175d2ab04d3ac53567f44420d8cc61d2c67907072b9b08673ec776a6c6e0fc07c776e3893429ae6a488c79b7b382ecf242933803a55bad09b4fb1256f40c7
+DIST zbus_macros-4.1.2.crate 28306 BLAKE2B eb65d96bcb1f28e8cf7ce3196c6a1679d187229cbf66183c10315bed34c5d5f660e0e2920be0522f19aa0ec42ae32ee8f1748c129ee76d8dd42fd7d764b5f992 SHA512 394dcc0ef553e18e4dbed66f480bd444a24160d95498784615dc30c8611cb08a419a34324e8d761580d1c38e7da0489f9479b63b76b968f210590ff06fae85aa
+DIST zbus_names-3.0.0.crate 10650 BLAKE2B 0c8a0ee67c9236ef51a1add3038d5ac5a9f00dccd9df059b16454754db44e7c5ac66b74f3f98c317ee73a1c982b8439d6a92995d984b9b9d744c3c9203edbed3 SHA512 e0ebd468f152ef8063faa547f60b58d2d87948e24741d1cec0e97eef1817653d524ce5519795db64a3a7d9101ee2c6b67f0bf2bade894c57b5c37aee19fc82ab
+DIST zerocopy-0.7.32.crate 151096 BLAKE2B 12c7c329ec0e0865467af08306ff4b55ce1e39fd77b094ee48ed9c6e266dfa807bda9ea72a3f7ea989916327f4d9e803d8868995728bfe2fb1c2dc1e5ecff78e SHA512 6729b05eb88029555b88c75feff4f8bc28ad9675edb02b07486381f775c8650c95e2e59612906bd9c34c5e390fd339857ca91573ee9f9ca7948572cff4171c82
+DIST zerocopy-derive-0.7.32.crate 37623 BLAKE2B 8b583d39d7bf9c3dbbba578120751c664f87363c5ba3fc45f6506a4059b9e599c43d9fc7bd498a257ff7c9d872af77d39bebdb0e65fb8009eaa2ae9903dece46 SHA512 3ce8528871fd18d6abe92b98503927451d25791c9c4af0ba39a3b6ba2006030bdc137084d080e9b1ac8b5ddf5f2121e0a3ef34bb2033a040f2c72c8149a9fc0d
+DIST zeroize-1.7.0.crate 19039 BLAKE2B 2f94a5025f409bd2b96a456d2f78a34c6b05b5554abe7ef3fad2a55a8fcff8a6a1b971be660aa4c2954ab7d6e89bebc431036e349edef74711292f9f64b1dbae SHA512 9d31e3e76e8c861309a3579c21f6da5fd6b056c7d7a350427445a1a832e8827204804783f7f9b808acaa2148efef883d9078bf84943b1db55526bba5bf5a2756
+DIST zip-0.6.6.crate 65789 BLAKE2B acefc076297468d72cb20d8c6234fe5406875056fbf78fc0eac3ac430af78f320ed839f8683bd96fa1a03c457d6ac568d42bd703a902bc37bd126791d8b4c709 SHA512 affd46c17ceaa0545a155250dfd16756f8706dda43bae8a322ec0481dbfb41e4cf3166bf9662fc139ef9d0ab3b0f9f158535b21d2a61b21d38b8b2407813eeef
+DIST zstd-0.11.2+zstd.1.5.2.crate 28987 BLAKE2B e04fe25ec6661819efeca08698c207922c38447459aa291961d3512d7c30016c51ddf49a8dadac0b7b2bf677b6a89d22670ec1e214607b476584a7e1b2dbf36d SHA512 d3f053c4acbdb45f3dadc9590db56095c761f0ff8899d22461f664701de766dde2fac2960a4477cd05d0a9c7ec200caa02ff891eb1f04630734996e0c38d10dd
+DIST zstd-safe-5.0.2+zstd.1.5.2.crate 17273 BLAKE2B 74dc561046f9bc595c58b62bc6ff291325bc23fd06a1249148426bb853271393eab5121d2e1e29e433eff562c9eab72c1be265f3fe3bf14cc35d4a741db03c38 SHA512 03a6f07ada211fd6c364f03d06acff705fa5b08129aa09c29ad310f05b233553f8ea697e504470d4c104bd947f5d4102328c4df0df5e1da6d8e537f51451a014
+DIST zstd-sys-2.0.10+zstd.1.5.6.crate 749088 BLAKE2B 89ec471502281a65841e1c38b313571ac0ba1d2bb3aacba11297f782db9f0f8ed9cf945b757840e7851da0b7400b8c58fc79a60f24a6535fc271d28f07b2ffe9 SHA512 588008a436a9c7751fa7c088620bf04434751e508c9a729e6840e42a14a2cc26c8ee252e8f129a5ae00eb1f76ae6ecfffaac043d854b61381d386f71d80993f9
+DIST zune-inflate-0.2.54.crate 37973 BLAKE2B 8bdb532fae0da1d61fc9fc72ea72a9339116e1952e76ba7376f0ba0ea65101b88cd1e4766f516f21028a5ea3459e5590e7a54175a47f136cc572ed9abec2da2f SHA512 0de30f310121c1fed42612b7bcb50631d699195a77c7ce4094729f502e63d1ae38034d6054d95b6825e7e9a2afb7bb614ff123e12736163fee04a46ef1dc56bd
+DIST zvariant-4.0.2.crate 81443 BLAKE2B 5bf2cb6b2e2b34c2397d9579a60ea7cf28a060456e8dc86498e07c9d1bbf8313d5c2235cadd5be8ec30646cf9e224312efff49ed3c41e010678ec498ed586ae9 SHA512 2811d3b9da164d3848684ceb74ce928f5951b135a40be11502a67f8a6506342efcab0e9c4f9401b5ca0d7b7a14df02f6f4f1c4375c418e5a20ec5faf2a878a3e
+DIST zvariant_derive-4.0.2.crate 10974 BLAKE2B ae6c23021ded15d76305e9b3f3fa3a65d4e68f369cc3300e1d17206ca44c632b5ea624affb2df302f955f08a344b235cf01602168618980bc489bf490f3811a1 SHA512 87c17ad302c5f30f7677cc15b8db5b939e579b6bc0261534bb7321440266bfba9f43bbcf19e65603cdca8077bda8a4f3b7c7d4f177cd89980e2bfec39c98409d
+DIST zvariant_utils-1.1.0.crate 6858 BLAKE2B ed117144cdd1b3351cddb0403b7b8fa3290e097dc527456ca7580910a0ad07b323c5c221f2c796eefd8dd5c7945e594c5bffe6b72caf26f2d416b58889b8cc34 SHA512 5ab70e347a3251c029688b0e8060f640168da3d20d1f0ceef054096209b9101fbb48ba74eb04aabd4c39f4c8090eb94a0594750b85d9955542f0bf7732a66aa7
diff --git a/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch b/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch
new file mode 100644
index 000000000000..ef39453b7d58
--- /dev/null
+++ b/app-emulation/ruffle/files/ruffle-0_p20231216-skip-render-tests.patch
@@ -0,0 +1,16 @@
+Running renderer tests using mesa's software rendering has a tendency
+to misbehave (esp. on tinderboxes) and does not reflect usage on real
+hardware.
+
+These are auto-skipped if mesa[-gles2] and perhaps [-llvm], but pretend
+we lack support even if conditions are met.
+
+https://bugs.gentoo.org/903295
+https://bugs.gentoo.org/911320
+https://bugs.gentoo.org/911367
+--- a/tests/framework/src/options.rs
++++ b/tests/framework/src/options.rs
+@@ -170,2 +170,3 @@
+ if let Some(render) = &self.with_renderer {
++ if check_renderer { return false; }
+ // If we don't actually want to check the renderer (ie we're just listing potential tests),
diff --git a/app-emulation/ruffle/metadata.xml b/app-emulation/ruffle/metadata.xml
new file mode 100644
index 000000000000..b6a06cf293ca
--- /dev/null
+++ b/app-emulation/ruffle/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ionen@gentoo.org</email>
+ <name>Ionen Wolkens</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">ruffle-rs/ruffle</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/ruffle/ruffle-0_p20240217.ebuild b/app-emulation/ruffle/ruffle-0_p20240217.ebuild
new file mode 100644
index 000000000000..7793497c67ed
--- /dev/null
+++ b/app-emulation/ruffle/ruffle-0_p20240217.ebuild
@@ -0,0 +1,735 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ab_glyph@0.2.23
+ ab_glyph_rasterizer@0.1.8
+ accesskit@0.12.2
+ adler32@1.2.0
+ adler@1.0.2
+ ahash@0.8.8
+ aho-corasick@1.1.2
+ allocator-api2@0.2.16
+ alsa-sys@0.3.1
+ alsa@0.7.1
+ android-activity@0.5.2
+ android-properties@0.2.2
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.11
+ anstyle-parse@0.2.3
+ anstyle-query@1.0.2
+ anstyle-wincon@3.0.2
+ anstyle@1.0.6
+ anyhow@1.0.79
+ approx@0.5.1
+ arboard@3.3.1
+ arc-swap@1.6.0
+ arrayref@0.3.7
+ arrayvec@0.7.4
+ ash@0.37.3+1.3.251
+ async-channel@1.9.0
+ async-channel@2.2.0
+ async-io@2.3.1
+ async-lock@3.3.0
+ async-net@2.0.0
+ async-task@4.7.0
+ as-raw-xcb-connection@1.0.1
+ atk-sys@0.18.0
+ atomic-waker@1.1.2
+ autocfg@1.1.0
+ base64@0.21.7
+ bindgen@0.68.1
+ bindgen@0.69.4
+ bitflags@1.3.2
+ bitflags@2.4.2
+ bitstream-io@1.10.0
+ bitstream-io@2.2.0
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ bit_field@0.10.2
+ block2@0.3.0
+ blocking@1.5.1
+ block-buffer@0.10.4
+ block-sys@0.2.1
+ block@0.1.6
+ bstr@1.9.0
+ bumpalo@3.14.0
+ bytecount@0.6.7
+ bytemuck@1.14.3
+ bytemuck_derive@1.5.0
+ byteorder@1.5.0
+ bytes@1.5.0
+ cairo-sys-rs@0.18.2
+ calloop-wayland-source@0.2.0
+ calloop@0.12.4
+ camino@1.1.6
+ cargo-platform@0.1.7
+ cargo_metadata@0.18.1
+ castaway@0.1.2
+ cc@1.0.83
+ cesu8@1.1.0
+ cexpr@0.6.0
+ cfg-expr@0.15.7
+ cfg-if@1.0.0
+ cfg_aliases@0.1.1
+ chrono@0.4.34
+ clang-sys@1.7.0
+ clap@4.5.0
+ clap_builder@4.5.0
+ clap_derive@4.5.0
+ clap_lex@0.7.0
+ clipboard-win@5.1.0
+ codespan-reporting@0.11.1
+ colorchoice@1.0.0
+ colored@2.1.0
+ color_quant@1.1.0
+ combine@4.6.6
+ com@0.6.0
+ com_macros@0.6.0
+ com_macros_support@0.6.0
+ concurrent-queue@2.4.0
+ console@0.15.8
+ console_error_panic_hook@0.1.7
+ convert_case@0.6.0
+ cookie-factory@0.3.2
+ core2@0.4.0
+ coreaudio-rs@0.11.3
+ coreaudio-sys@0.2.15
+ core-foundation-sys@0.8.6
+ core-foundation@0.9.4
+ core-graphics-types@0.1.3
+ core-graphics@0.23.1
+ cpal@0.15.2
+ cpufeatures@0.2.12
+ crc32fast@1.4.0
+ crc-catalog@2.4.0
+ crc@3.0.1
+ crossbeam-channel@0.5.11
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.19
+ crunchy@0.2.2
+ crypto-common@0.1.6
+ csv-core@0.1.11
+ csv@1.3.0
+ curl-sys@0.4.72+curl-8.6.0
+ curl@0.4.46
+ cursor-icon@1.1.0
+ d3d12@0.19.0
+ darling@0.20.5
+ darling_core@0.20.5
+ darling_macro@0.20.5
+ dary_heap@0.3.6
+ dasp@0.11.0
+ dasp_envelope@0.11.0
+ dasp_frame@0.11.0
+ dasp_interpolate@0.11.0
+ dasp_peak@0.11.0
+ dasp_ring_buffer@0.11.0
+ dasp_rms@0.11.0
+ dasp_sample@0.11.0
+ dasp_signal@0.11.0
+ dasp_slice@0.11.0
+ dasp_window@0.11.1
+ data-encoding@2.5.0
+ deranged@0.3.11
+ derive-new@0.5.9
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.4.1
+ dirs@5.0.1
+ dispatch@0.2.0
+ displaydoc@0.2.4
+ dlib@0.5.2
+ document-features@0.2.8
+ doc-comment@0.3.3
+ downcast-rs@1.2.0
+ ecolor@0.26.2
+ egui-wgpu@0.26.2
+ egui-winit@0.26.2
+ egui@0.26.2
+ egui_extras@0.26.2
+ either@1.10.0
+ emath@0.26.2
+ embed-resource@2.4.1
+ encode_unicode@0.3.6
+ encoding_rs@0.8.33
+ enumn@0.1.13
+ enumset@1.1.3
+ enumset_derive@0.8.1
+ enum-map-derive@0.17.0
+ enum-map@2.7.3
+ env_filter@0.1.0
+ env_logger@0.11.2
+ epaint@0.26.2
+ equivalent@1.0.1
+ errno@0.3.8
+ error-code@3.0.0
+ escape8259@0.5.2
+ euclid@0.22.9
+ event-listener-strategy@0.4.0
+ event-listener-strategy@0.5.0
+ event-listener@2.5.3
+ event-listener@4.0.3
+ event-listener@5.0.0
+ exr@1.72.0
+ fastrand@1.9.0
+ fastrand@2.0.1
+ fdeflate@0.3.4
+ fixedbitset@0.4.2
+ flate2@1.0.28
+ float-cmp@0.9.0
+ float_next_after@1.0.0
+ fluent-bundle@0.15.2
+ fluent-langneg@0.13.0
+ fluent-syntax@0.11.0
+ fluent-templates@0.8.0
+ fluent-template-macros@0.8.0
+ fluent@0.16.0
+ flume@0.10.14
+ flume@0.11.0
+ fnv@1.0.7
+ fontconfig-parser@0.5.6
+ fontdb@0.16.1
+ foreign-types-macros@0.2.3
+ foreign-types-shared@0.3.1
+ foreign-types@0.5.0
+ form_urlencoded@1.2.1
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-executor@0.3.30
+ futures-io@0.3.30
+ futures-lite@1.13.0
+ futures-lite@2.2.0
+ futures-macro@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ futures@0.3.30
+ gc-arena-derive@0.5.0
+ gc-arena@0.5.0
+ gdk-pixbuf-sys@0.18.0
+ gdk-sys@0.18.0
+ generational-arena@0.2.9
+ generator@0.7.5
+ generic-array@0.14.7
+ gethostname@0.4.3
+ getrandom@0.2.12
+ gif@0.12.0
+ gif@0.13.1
+ gio-sys@0.18.1
+ glib-sys@0.18.1
+ globset@0.4.14
+ glob@0.3.1
+ gloo-net@0.5.0
+ gloo-utils@0.2.0
+ glow@0.13.1
+ glutin_wgl_sys@0.5.0
+ gl_generator@0.14.0
+ gobject-sys@0.18.0
+ gpu-allocator@0.25.0
+ gpu-alloc-types@0.3.0
+ gpu-alloc@0.6.0
+ gpu-descriptor-types@0.1.2
+ gpu-descriptor@0.2.4
+ gtk-sys@0.18.0
+ half@2.3.1
+ hashbrown@0.13.2
+ hashbrown@0.14.3
+ hassle-rs@0.11.0
+ heck@0.4.1
+ hermit-abi@0.3.6
+ hexf-parse@0.2.1
+ home@0.5.9
+ httpdate@1.0.3
+ http@0.2.11
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ icrate@0.0.4
+ ident_case@1.0.1
+ idna@0.5.0
+ ignore@0.4.22
+ image@0.24.8
+ indexmap@2.2.3
+ indicatif@0.17.8
+ instant@0.1.12
+ insta@1.34.0
+ intl-memoizer@0.5.1
+ intl_pluralrules@7.0.2
+ isahc@1.7.2
+ itertools@0.11.0
+ itertools@0.12.1
+ itoa@1.0.10
+ jni-sys@0.3.0
+ jni@0.19.0
+ jni@0.20.0
+ jni@0.21.1
+ jobserver@0.1.28
+ jpeg-decoder@0.3.1
+ js-sys@0.3.67
+ khronos-egl@6.0.0
+ khronos_api@3.1.0
+ lazycell@1.3.0
+ lazy_static@1.4.0
+ lebe@0.5.2
+ libc@0.2.153
+ libflate@2.0.0
+ libflate_lz77@2.0.0
+ libloading@0.7.4
+ libloading@0.8.1
+ libm@0.2.8
+ libnghttp2-sys@0.1.9+1.58.0
+ libredox@0.0.1
+ libredox@0.0.2
+ libtest-mimic@0.7.0
+ libz-sys@1.1.15
+ linked-hash-map@0.5.6
+ linkme-impl@0.3.22
+ linkme@0.3.22
+ linux-raw-sys@0.4.13
+ litrs@0.4.1
+ lock_api@0.4.11
+ log@0.4.20
+ loom@0.7.1
+ lru@0.12.2
+ lyon@1.0.1
+ lyon_algorithms@1.0.4
+ lyon_geom@1.0.5
+ lyon_path@1.0.4
+ lyon_tessellation@1.0.13
+ lzma-rs@0.3.0
+ mach2@0.4.2
+ malloc_buf@0.0.6
+ matchers@0.1.0
+ memchr@2.7.1
+ memmap2@0.9.4
+ memoffset@0.7.1
+ metal@0.27.0
+ mime@0.3.17
+ mime_guess2@2.0.5
+ minimal-lexical@0.2.1
+ miniz_oxide@0.7.2
+ naga@0.19.0
+ naga_oil@0.13.0
+ ndk-context@0.1.1
+ ndk-sys@0.4.1+23.1.7779620
+ ndk-sys@0.5.0+25.2.9519653
+ ndk@0.7.0
+ ndk@0.8.0
+ nix@0.24.3
+ nix@0.26.4
+ nohash-hasher@0.2.0
+ nom@7.1.3
+ number_prefix@0.4.0
+ num-bigint@0.4.4
+ num-complex@0.4.5
+ num-conv@0.1.0
+ num-derive@0.3.3
+ num-derive@0.4.2
+ num-integer@0.1.46
+ num-traits@0.2.18
+ num_cpus@1.16.0
+ num_enum@0.5.11
+ num_enum@0.7.2
+ num_enum_derive@0.5.11
+ num_enum_derive@0.7.2
+ num_threads@0.1.6
+ nu-ansi-term@0.46.0
+ objc2-encode@3.0.0
+ objc2@0.4.1
+ objc-foundation@0.1.1
+ objc-sys@0.3.2
+ objc@0.2.7
+ objc_exception@0.1.2
+ objc_id@0.1.1
+ oboe-sys@0.5.0
+ oboe@0.5.0
+ once_cell@1.19.0
+ openssl-probe@0.1.5
+ openssl-sys@0.9.99
+ option-ext@0.2.0
+ orbclient@0.3.47
+ os_info@3.7.0
+ os_pipe@1.1.5
+ overload@0.1.1
+ owned_ttf_parser@0.20.0
+ pango-sys@0.18.0
+ parking@2.2.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ paste@1.0.14
+ path-slash@0.2.1
+ peeking_take_while@0.1.2
+ percent-encoding@2.3.1
+ petgraph@0.6.4
+ pin-project-internal@1.1.4
+ pin-project-lite@0.2.13
+ pin-project@1.1.4
+ pin-utils@0.1.0
+ piper@0.2.1
+ pkg-config@0.3.30
+ png@0.17.11
+ polling@2.8.0
+ polling@3.4.0
+ portable-atomic@1.6.0
+ powerfmt@0.2.0
+ ppv-lite86@0.2.17
+ pp-rs@0.2.1
+ presser@0.3.1
+ prettyplease@0.2.16
+ pretty_assertions@1.4.0
+ primal-check@0.3.3
+ proc-macro2@1.0.78
+ proc-macro-crate@1.3.1
+ proc-macro-crate@3.1.0
+ proc-macro-hack@0.5.20+deprecated
+ profiling-procmacros@1.0.14
+ profiling@1.0.14
+ qoi@0.4.1
+ quick-xml@0.31.0
+ quote@1.0.35
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ range-alloc@0.1.3
+ raw-window-handle@0.5.2
+ raw-window-handle@0.6.0
+ rayon-core@1.12.1
+ rayon@1.8.1
+ realfft@3.3.0
+ redox_syscall@0.3.5
+ redox_syscall@0.4.1
+ redox_users@0.4.4
+ regex-automata@0.1.10
+ regex-automata@0.4.5
+ regex-syntax@0.6.29
+ regex-syntax@0.8.2
+ regex@1.10.3
+ regress@0.8.0
+ renderdoc-sys@1.0.0
+ renderdoc@0.11.0
+ rfd@0.13.0
+ rle-decode-fast@1.0.3
+ ron@0.8.1
+ roxmltree@0.19.0
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustdct@0.7.1
+ rustfft@6.2.0
+ rustix@0.38.31
+ rustversion@1.0.14
+ ryu@1.0.16
+ safe_arch@0.7.1
+ same-file@1.0.6
+ schannel@0.1.23
+ scoped-tls@1.0.1
+ scopeguard@1.2.0
+ sctk-adwaita@0.8.1
+ self_cell@0.10.3
+ self_cell@1.0.3
+ semver@1.0.21
+ serde-wasm-bindgen@0.6.3
+ serde-xml-rs@0.6.0
+ serde@1.0.196
+ serde_derive@1.0.196
+ serde_json@1.0.113
+ serde_spanned@0.6.5
+ sha2@0.10.8
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ simd-adler32@0.3.7
+ similar@2.4.0
+ simple_asn1@0.6.2
+ slab@0.4.9
+ slotmap@1.0.7
+ sluice@0.5.5
+ smallvec@1.13.1
+ smithay-client-toolkit@0.18.1
+ smithay-clipboard@0.7.0
+ smol_str@0.2.1
+ snafu-derive@0.7.5
+ snafu@0.7.5
+ socket2@0.5.5
+ spin@0.9.8
+ spirv@0.3.0+sdk-1.3.268.0
+ sptr@0.3.2
+ static_assertions@1.1.0
+ strength_reduce@0.2.4
+ strict-num@0.1.1
+ strsim@0.11.0
+ symphonia-bundle-mp3@0.5.3
+ symphonia-core@0.5.3
+ symphonia-metadata@0.5.3
+ symphonia@0.5.3
+ synstructure@0.13.1
+ syn@1.0.109
+ syn@2.0.48
+ system-deps@6.2.0
+ sys-locale@0.3.1
+ target-lexicon@0.12.13
+ tempfile@3.10.0
+ termcolor@1.4.1
+ thiserror-impl@1.0.57
+ thiserror@1.0.57
+ threadpool@1.8.1
+ thread_local@1.1.7
+ tiff@0.9.1
+ time-core@0.1.2
+ time-macros@0.2.17
+ time@0.3.34
+ tinystr@0.7.5
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tiny-skia-path@0.11.4
+ tiny-skia@0.11.4
+ toml@0.8.10
+ toml_datetime@0.6.5
+ toml_edit@0.19.15
+ toml_edit@0.21.1
+ toml_edit@0.22.5
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing-futures@0.2.5
+ tracing-log@0.2.0
+ tracing-subscriber@0.3.18
+ tracing-tracy@0.10.4
+ tracing-wasm@0.2.1
+ tracing@0.1.40
+ tracy-client-sys@0.22.2
+ tracy-client@0.16.5
+ transpose@0.2.2
+ tree_magic_mini@3.0.3
+ ttf-parser@0.20.0
+ typenum@1.17.0
+ type-map@0.4.0
+ type-map@0.5.0
+ unicase@2.7.0
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.22
+ unicode-segmentation@1.11.0
+ unicode-width@0.1.11
+ unicode-xid@0.2.4
+ unic-char-property@0.9.0
+ unic-char-range@0.9.0
+ unic-common@0.9.0
+ unic-langid-impl@0.9.4
+ unic-langid-macros-impl@0.9.4
+ unic-langid-macros@0.9.4
+ unic-langid@0.9.4
+ unic-segment@0.9.0
+ unic-ucd-segment@0.9.0
+ unic-ucd-version@0.9.0
+ url@2.5.0
+ utf8parse@0.2.1
+ valuable@0.1.0
+ vcpkg@0.2.15
+ vergen@8.3.1
+ version-compare@0.1.1
+ version_check@0.9.4
+ vfs@0.10.0
+ vswhom-sys@0.1.2
+ vswhom@0.1.0
+ waker-fn@1.1.1
+ walkdir@2.4.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.91
+ wasm-bindgen-futures@0.4.40
+ wasm-bindgen-macro-support@0.2.91
+ wasm-bindgen-macro@0.2.91
+ wasm-bindgen-shared@0.2.91
+ wasm-bindgen@0.2.91
+ wasm-streams@0.4.0
+ wayland-backend@0.3.3
+ wayland-client@0.31.2
+ wayland-csd-frame@0.3.0
+ wayland-cursor@0.31.1
+ wayland-protocols-plasma@0.2.0
+ wayland-protocols-wlr@0.2.0
+ wayland-protocols@0.31.2
+ wayland-scanner@0.31.1
+ wayland-sys@0.31.1
+ weak-table@0.3.2
+ webbrowser@0.8.12
+ web-sys@0.3.67
+ web-time@0.2.4
+ weezl@0.1.8
+ wgpu-core@0.19.0
+ wgpu-hal@0.19.1
+ wgpu-types@0.19.0
+ wgpu@0.19.1
+ which@4.4.2
+ widestring@1.0.2
+ wide@0.7.15
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.6
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.42.2
+ windows-targets@0.48.5
+ windows-targets@0.52.0
+ windows@0.46.0
+ windows@0.48.0
+ windows@0.52.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.0
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.0
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.0
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.0
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.0
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.0
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.0
+ winit@0.29.10
+ winnow@0.5.40
+ winnow@0.6.0
+ winreg@0.51.0
+ wio@0.2.2
+ wl-clipboard-rs@0.8.0
+ x11rb-protocol@0.13.0
+ x11rb@0.13.0
+ x11-dl@2.21.0
+ xcursor@0.3.5
+ xkbcommon-dl@0.4.2
+ xkeysym@0.2.0
+ xml-rs@0.8.19
+ yaml-rust@0.4.5
+ yansi@0.5.1
+ zerocopy-derive@0.7.32
+ zerocopy@0.7.32
+ zune-inflate@0.2.54
+"
+declare -A GIT_CRATES=(
+ [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f976fb15b30aa4c5cb398710dc5e31a21004e57;rust-flash-lso-%commit%/flash-lso"
+ [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/deblock'
+ [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/yuv"
+ [h263-rs]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/h263"
+ [jpegxr]="https://github.com/ruffle-rs/jpegxr;d49988f40f220e3e9c90d9f3df1d4e3bc41f6ce2;jpegxr-%commit%"
+ [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;4a33521c29a918950df8ae9fe07e527ac65553f5;nellymoser-%commit%"
+ [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support"
+ [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core"
+ [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck"
+)
+inherit cargo desktop xdg
+
+MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Flash Player emulator written in Rust"
+HOMEPAGE="https://ruffle.rs/"
+SRC_URI="
+ https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+LICENSE+="
+ Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0
+ CC0-1.0 ISC UbuntuFontLicense-1.0 MIT MPL-2.0 OFL-1.1
+ Unicode-DFS-2016 ZLIB curl
+" # crates
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# dlopen: libX* (see winit+x11-dl crates)
+RDEPEND="
+ dev-libs/glib:2
+ dev-libs/openssl:=
+ media-libs/alsa-lib
+ sys-libs/zlib:=
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXrandr
+ x11-libs/libXrender
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/jre:*
+ virtual/pkgconfig
+ >=virtual/rust-1.72
+"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}.*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch
+)
+
+src_configure() {
+ # see .cargo/config.toml, only needed if RUSTFLAGS is set by the user
+ [[ -v RUSTFLAGS ]] && RUSTFLAGS+=" --cfg=web_sys_unstable_apis"
+
+ local workspaces=(
+ ruffle_{desktop,scanner}
+ exporter
+ $(usev test tests)
+ )
+
+ cargo_src_configure "${workspaces[@]/#/--package=}"
+}
+
+src_test() {
+ local skip=(
+ # may need more investigation, strangely "pass" (xfail) when
+ # RUSTFLAGS is unset, skip for now (bug #915726)
+ --skip from_avmplus/as3/Types/Int/wraparound
+ )
+
+ cargo_src_test -- "${skip[@]}"
+}
+
+src_install() {
+ dodoc README.md
+
+ newicon web/packages/extension/assets/images/icon180.png ${PN}.png
+ make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
+ "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
+
+ # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510
+ cd target/$(usex debug{,} release) || die
+
+ newbin ${PN}_desktop ${PN}
+ newbin exporter ${PN}_exporter
+ dobin ${PN}_scanner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "${PN} is experimental software that is still under heavy development"
+ elog "and only receiving nightly releases. Plans in Gentoo is to update"
+ elog "roughly every months if no known major regressions (feel free to"
+ elog "report if you feel a newer nightly is needed ahead of time)."
+ elog
+ elog "There is currently no plans to support wasm builds / browser"
+ elog "extensions, this provides the desktop viewer and other tools."
+ fi
+}
diff --git a/app-emulation/ruffle/ruffle-0_p20240319.ebuild b/app-emulation/ruffle/ruffle-0_p20240319.ebuild
new file mode 100644
index 000000000000..615a239180db
--- /dev/null
+++ b/app-emulation/ruffle/ruffle-0_p20240319.ebuild
@@ -0,0 +1,742 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ab_glyph@0.2.23
+ ab_glyph_rasterizer@0.1.8
+ accesskit@0.12.3
+ addr2line@0.21.0
+ adler32@1.2.0
+ adler@1.0.2
+ ahash@0.8.11
+ aho-corasick@1.1.2
+ allocator-api2@0.2.16
+ alsa-sys@0.3.1
+ alsa@0.9.0
+ android-activity@0.5.2
+ android-properties@0.2.2
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.13
+ anstyle-parse@0.2.3
+ anstyle-query@1.0.2
+ anstyle-wincon@3.0.2
+ anstyle@1.0.6
+ anyhow@1.0.81
+ approx@0.5.1
+ arboard@3.3.2
+ arc-swap@1.7.0
+ arrayref@0.3.7
+ arrayvec@0.7.4
+ ashpd@0.8.1
+ ash@0.37.3+1.3.251
+ async-broadcast@0.7.0
+ async-channel@1.9.0
+ async-channel@2.2.0
+ async-executor@1.8.0
+ async-fs@2.1.1
+ async-io@2.3.2
+ async-lock@2.8.0
+ async-lock@3.3.0
+ async-net@2.0.0
+ async-process@2.1.0
+ async-recursion@1.1.0
+ async-signal@0.2.5
+ async-task@4.7.0
+ async-trait@0.1.78
+ as-raw-xcb-connection@1.0.1
+ atomic-waker@1.1.2
+ autocfg@1.1.0
+ backtrace@0.3.69
+ base64@0.21.7
+ base64@0.22.0
+ bindgen@0.69.4
+ bitflags@1.3.2
+ bitflags@2.4.2
+ bitstream-io@2.2.0
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ block2@0.3.0
+ blocking@1.5.1
+ block-buffer@0.10.4
+ block-sys@0.2.1
+ block@0.1.6
+ bstr@1.9.1
+ bumpalo@3.15.4
+ bytemuck@1.15.0
+ bytemuck_derive@1.6.0
+ byteorder@1.5.0
+ bytes@1.5.0
+ calloop-wayland-source@0.2.0
+ calloop@0.12.4
+ camino@1.1.6
+ cargo-platform@0.1.7
+ cargo_metadata@0.18.1
+ castaway@0.1.2
+ cc@1.0.90
+ cesu8@1.1.0
+ cexpr@0.6.0
+ cfg-if@1.0.0
+ cfg_aliases@0.1.1
+ chrono@0.4.35
+ clang-sys@1.7.0
+ clap@4.5.3
+ clap_builder@4.5.2
+ clap_derive@4.5.3
+ clap_lex@0.7.0
+ clipboard-win@5.3.0
+ codespan-reporting@0.11.1
+ colorchoice@1.0.0
+ colored@2.1.0
+ color_quant@1.1.0
+ combine@4.6.6
+ com@0.6.0
+ com_macros@0.6.0
+ com_macros_support@0.6.0
+ concurrent-queue@2.4.0
+ console@0.15.8
+ console_error_panic_hook@0.1.7
+ convert_case@0.6.0
+ cookie-factory@0.3.2
+ core2@0.4.0
+ coreaudio-rs@0.11.3
+ coreaudio-sys@0.2.15
+ core-foundation-sys@0.8.6
+ core-foundation@0.9.4
+ core-graphics-types@0.1.3
+ core-graphics@0.23.1
+ cpal@0.15.3
+ cpufeatures@0.2.12
+ crc32fast@1.4.0
+ crc-catalog@2.4.0
+ crc@3.0.1
+ crossbeam-channel@0.5.12
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.19
+ crypto-common@0.1.6
+ csv-core@0.1.11
+ csv@1.3.0
+ curl-sys@0.4.72+curl-8.6.0
+ curl@0.4.46
+ cursor-icon@1.1.0
+ d3d12@0.19.0
+ darling@0.20.8
+ darling_core@0.20.8
+ darling_macro@0.20.8
+ dary_heap@0.3.6
+ dasp@0.11.0
+ dasp_envelope@0.11.0
+ dasp_frame@0.11.0
+ dasp_interpolate@0.11.0
+ dasp_peak@0.11.0
+ dasp_ring_buffer@0.11.0
+ dasp_rms@0.11.0
+ dasp_sample@0.11.0
+ dasp_signal@0.11.0
+ dasp_slice@0.11.0
+ dasp_window@0.11.1
+ data-encoding@2.5.0
+ deranged@0.3.11
+ derivative@2.2.0
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.4.1
+ dirs@5.0.1
+ dispatch@0.2.0
+ displaydoc@0.2.4
+ dlib@0.5.2
+ document-features@0.2.8
+ doc-comment@0.3.3
+ downcast-rs@1.2.0
+ ecolor@0.26.2
+ egui-wgpu@0.26.2
+ egui-winit@0.26.2
+ egui@0.26.2
+ egui_extras@0.26.2
+ either@1.10.0
+ emath@0.26.2
+ embed-resource@2.4.2
+ encode_unicode@0.3.6
+ encoding_rs@0.8.33
+ endi@1.1.0
+ enumflags2@0.7.9
+ enumflags2_derive@0.7.9
+ enumn@0.1.13
+ enumset@1.1.3
+ enumset_derive@0.8.1
+ enum-map-derive@0.17.0
+ enum-map@2.7.3
+ env_filter@0.1.0
+ env_logger@0.11.3
+ epaint@0.26.2
+ equivalent@1.0.1
+ errno@0.3.8
+ error-code@3.2.0
+ escape8259@0.5.2
+ euclid@0.22.9
+ event-listener-strategy@0.4.0
+ event-listener-strategy@0.5.0
+ event-listener@2.5.3
+ event-listener@4.0.3
+ event-listener@5.2.0
+ fastrand@1.9.0
+ fastrand@2.0.1
+ fdeflate@0.3.4
+ filetime@0.2.23
+ flate2@1.0.28
+ float-cmp@0.9.0
+ float_next_after@1.0.0
+ fluent-bundle@0.15.2
+ fluent-langneg@0.13.0
+ fluent-syntax@0.11.0
+ fluent-templates@0.9.1
+ fluent-template-macros@0.9.1
+ fluent@0.16.0
+ flume@0.10.14
+ fnv@1.0.7
+ fontconfig-parser@0.5.6
+ fontdb@0.16.2
+ foreign-types-macros@0.2.3
+ foreign-types-shared@0.3.1
+ foreign-types@0.5.0
+ form_urlencoded@1.2.1
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-executor@0.3.30
+ futures-io@0.3.30
+ futures-lite@1.13.0
+ futures-lite@2.3.0
+ futures-macro@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ futures@0.3.30
+ gc-arena-derive@0.5.0
+ gc-arena@0.5.0
+ generator@0.7.5
+ generic-array@0.14.7
+ gethostname@0.4.3
+ getrandom@0.2.12
+ gif@0.13.1
+ gilrs-core@0.5.11
+ gilrs@0.10.6
+ gimli@0.28.1
+ globset@0.4.14
+ glob@0.3.1
+ gloo-net@0.5.0
+ gloo-utils@0.2.0
+ glow@0.13.1
+ glutin_wgl_sys@0.5.0
+ gl_generator@0.14.0
+ gpu-allocator@0.25.0
+ gpu-alloc-types@0.3.0
+ gpu-alloc@0.6.0
+ gpu-descriptor-types@0.1.2
+ gpu-descriptor@0.2.4
+ hashbrown@0.13.2
+ hashbrown@0.14.3
+ hassle-rs@0.11.0
+ heck@0.4.1
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hexf-parse@0.2.1
+ hex@0.4.3
+ home@0.5.9
+ httpdate@1.0.3
+ http@0.2.12
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ icrate@0.0.4
+ id3@1.13.1
+ ident_case@1.0.1
+ idna@0.5.0
+ ignore@0.4.22
+ image@0.24.9
+ image@0.25.0
+ indexmap@2.2.5
+ indicatif@0.17.8
+ inotify-sys@0.1.5
+ inotify@0.10.2
+ instant@0.1.12
+ insta@1.36.1
+ intl-memoizer@0.5.1
+ intl_pluralrules@7.0.2
+ io-kit-sys@0.4.1
+ isahc@1.7.2
+ itertools@0.11.0
+ itertools@0.12.1
+ itoa@1.0.10
+ jni-sys@0.3.0
+ jni@0.21.1
+ jobserver@0.1.28
+ jpeg-decoder@0.3.1
+ js-sys@0.3.69
+ khronos-egl@6.0.0
+ khronos_api@3.1.0
+ lazycell@1.3.0
+ lazy_static@1.4.0
+ libc@0.2.153
+ libflate@2.0.0
+ libflate_lz77@2.0.0
+ libloading@0.7.4
+ libloading@0.8.3
+ libm@0.2.8
+ libnghttp2-sys@0.1.9+1.58.0
+ libredox@0.0.1
+ libredox@0.0.2
+ libtest-mimic@0.7.0
+ libudev-sys@0.1.4
+ libz-sys@1.1.15
+ linked-hash-map@0.5.6
+ linkme-impl@0.3.25
+ linkme@0.3.25
+ linux-raw-sys@0.4.13
+ litrs@0.4.1
+ lock_api@0.4.11
+ log@0.4.21
+ loom@0.7.1
+ lru@0.12.3
+ lyon@1.0.1
+ lyon_algorithms@1.0.4
+ lyon_geom@1.0.5
+ lyon_path@1.0.4
+ lyon_tessellation@1.0.13
+ lzma-rs@0.3.0
+ mach2@0.4.2
+ macro_rules_attribute-proc_macro@0.2.0
+ macro_rules_attribute@0.2.0
+ malloc_buf@0.0.6
+ matchers@0.1.0
+ memchr@2.7.1
+ memmap2@0.9.4
+ memoffset@0.9.0
+ metal@0.27.0
+ mime@0.3.17
+ mime_guess2@2.0.5
+ minimal-lexical@0.2.1
+ miniz_oxide@0.7.2
+ naga@0.19.2
+ naga_oil@0.13.0
+ ndk-context@0.1.1
+ ndk-sys@0.5.0+25.2.9519653
+ ndk@0.8.0
+ nix@0.28.0
+ nohash-hasher@0.2.0
+ nom@7.1.3
+ number_prefix@0.4.0
+ num-bigint@0.4.4
+ num-complex@0.4.5
+ num-conv@0.1.0
+ num-derive@0.4.2
+ num-integer@0.1.46
+ num-traits@0.2.18
+ num_cpus@1.16.0
+ num_enum@0.7.2
+ num_enum_derive@0.7.2
+ num_threads@0.1.7
+ nu-ansi-term@0.46.0
+ objc2-encode@3.0.0
+ objc2@0.4.1
+ objc-foundation@0.1.1
+ objc-sys@0.3.2
+ objc@0.2.7
+ objc_exception@0.1.2
+ objc_id@0.1.1
+ object@0.32.2
+ oboe-sys@0.6.1
+ oboe@0.6.1
+ once_cell@1.19.0
+ openssl-probe@0.1.5
+ openssl-sys@0.9.101
+ option-ext@0.2.0
+ orbclient@0.3.47
+ ordered-stream@0.2.0
+ os_info@3.8.1
+ overload@0.1.1
+ owned_ttf_parser@0.20.0
+ parking@2.2.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ paste@1.0.14
+ path-slash@0.2.1
+ percent-encoding@2.3.1
+ pin-project-internal@1.1.5
+ pin-project-lite@0.2.13
+ pin-project@1.1.5
+ pin-utils@0.1.0
+ piper@0.2.1
+ pkg-config@0.3.30
+ png@0.17.13
+ polling@2.8.0
+ polling@3.5.0
+ pollster@0.3.0
+ portable-atomic@1.6.0
+ powerfmt@0.2.0
+ ppv-lite86@0.2.17
+ pp-rs@0.2.1
+ presser@0.3.1
+ prettyplease@0.2.16
+ pretty_assertions@1.4.0
+ primal-check@0.3.3
+ proc-macro2@1.0.79
+ proc-macro-crate@3.1.0
+ proc-macro-hack@0.5.20+deprecated
+ profiling-procmacros@1.0.14
+ profiling@1.0.14
+ quick-xml@0.31.0
+ quote@1.0.35
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ range-alloc@0.1.3
+ raw-window-handle@0.5.2
+ raw-window-handle@0.6.0
+ rayon-core@1.12.1
+ rayon@1.9.0
+ realfft@3.3.0
+ redox_syscall@0.3.5
+ redox_syscall@0.4.1
+ redox_users@0.4.4
+ regex-automata@0.1.10
+ regex-automata@0.4.6
+ regex-syntax@0.6.29
+ regex-syntax@0.8.2
+ regex@1.10.3
+ regress@0.9.0
+ renderdoc-sys@1.1.0
+ renderdoc@0.12.1
+ rfd@0.14.0
+ rle-decode-fast@1.0.3
+ ron@0.8.1
+ roxmltree@0.19.0
+ rustc-demangle@0.1.23
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustdct@0.7.1
+ rustfft@6.2.0
+ rustix@0.38.31
+ rustversion@1.0.14
+ ryu@1.0.17
+ safe_arch@0.7.1
+ same-file@1.0.6
+ schannel@0.1.23
+ scoped-tls@1.0.1
+ scopeguard@1.2.0
+ sctk-adwaita@0.8.1
+ self_cell@0.10.3
+ self_cell@1.0.3
+ semver@1.0.22
+ serde-wasm-bindgen@0.6.5
+ serde-xml-rs@0.6.0
+ serde@1.0.197
+ serde_derive@1.0.197
+ serde_json@1.0.114
+ serde_repr@0.1.18
+ serde_spanned@0.6.5
+ sha1@0.10.6
+ sha2@0.10.8
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ signal-hook-registry@1.4.1
+ simd-adler32@0.3.7
+ similar@2.4.0
+ simple_asn1@0.6.2
+ slab@0.4.9
+ slotmap@1.0.7
+ sluice@0.5.5
+ smallvec@1.13.1
+ smithay-client-toolkit@0.18.1
+ smithay-clipboard@0.7.1
+ smol_str@0.2.1
+ snafu-derive@0.7.5
+ snafu@0.7.5
+ socket2@0.5.6
+ spin@0.9.8
+ spirv@0.3.0+sdk-1.3.268.0
+ sptr@0.3.2
+ static_assertions@1.1.0
+ strength_reduce@0.2.4
+ strict-num@0.1.1
+ strsim@0.11.0
+ symphonia-bundle-mp3@0.5.4
+ symphonia-core@0.5.4
+ symphonia-metadata@0.5.4
+ symphonia@0.5.4
+ synstructure@0.13.1
+ syn@1.0.109
+ syn@2.0.53
+ sys-locale@0.3.1
+ tempfile@3.10.1
+ termcolor@1.4.1
+ thiserror-impl@1.0.58
+ thiserror@1.0.58
+ threadpool@1.8.1
+ thread_local@1.1.8
+ tiff@0.9.1
+ time-core@0.1.2
+ time-macros@0.2.17
+ time@0.3.34
+ tinystr@0.7.5
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tiny-skia-path@0.11.4
+ tiny-skia@0.11.4
+ tokio-macros@2.2.0
+ tokio@1.36.0
+ toml@0.8.11
+ toml_datetime@0.6.5
+ toml_edit@0.21.1
+ toml_edit@0.22.7
+ tracing-appender@0.2.3
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing-futures@0.2.5
+ tracing-log@0.2.0
+ tracing-subscriber@0.3.18
+ tracing-tracy@0.10.4
+ tracing-wasm@0.2.1
+ tracing@0.1.40
+ tracy-client-sys@0.22.2
+ tracy-client@0.16.5
+ transpose@0.2.3
+ ttf-parser@0.20.0
+ typenum@1.17.0
+ type-map@0.4.0
+ type-map@0.5.0
+ uds_windows@1.1.0
+ unicase@2.7.0
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ unicode-segmentation@1.11.0
+ unicode-width@0.1.11
+ unicode-xid@0.2.4
+ unic-char-property@0.9.0
+ unic-char-range@0.9.0
+ unic-common@0.9.0
+ unic-langid-impl@0.9.4
+ unic-langid-macros-impl@0.9.4
+ unic-langid-macros@0.9.4
+ unic-langid@0.9.4
+ unic-segment@0.9.0
+ unic-ucd-segment@0.9.0
+ unic-ucd-version@0.9.0
+ urlencoding@2.1.3
+ url@2.5.0
+ utf8parse@0.2.1
+ uuid@1.7.0
+ valuable@0.1.0
+ vcpkg@0.2.15
+ vec_map@0.8.2
+ vergen@8.3.1
+ version_check@0.9.4
+ vfs@0.12.0
+ vswhom-sys@0.1.2
+ vswhom@0.1.0
+ waker-fn@1.1.1
+ walkdir@2.5.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.92
+ wasm-bindgen-futures@0.4.42
+ wasm-bindgen-macro-support@0.2.92
+ wasm-bindgen-macro@0.2.92
+ wasm-bindgen-shared@0.2.92
+ wasm-bindgen@0.2.92
+ wasm-streams@0.4.0
+ wayland-backend@0.3.3
+ wayland-client@0.31.2
+ wayland-csd-frame@0.3.0
+ wayland-cursor@0.31.1
+ wayland-protocols-plasma@0.2.0
+ wayland-protocols-wlr@0.2.0
+ wayland-protocols@0.31.2
+ wayland-scanner@0.31.1
+ wayland-sys@0.31.1
+ weak-table@0.3.2
+ webbrowser@0.8.13
+ web-sys@0.3.69
+ web-time@0.2.4
+ weezl@0.1.8
+ wgpu-core@0.19.3
+ wgpu-hal@0.19.3
+ wgpu-types@0.19.2
+ wgpu@0.19.3
+ which@4.4.2
+ widestring@1.0.2
+ wide@0.7.15
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.6
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-core@0.54.0
+ windows-result@0.1.0
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.42.2
+ windows-targets@0.48.5
+ windows-targets@0.52.4
+ windows@0.48.0
+ windows@0.52.0
+ windows@0.54.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.4
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.4
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.4
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.4
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.4
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.4
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.4
+ winit@0.29.15
+ winnow@0.5.40
+ winnow@0.6.5
+ winreg@0.52.0
+ wio@0.2.2
+ x11rb-protocol@0.13.0
+ x11rb@0.13.0
+ x11-dl@2.21.0
+ xcursor@0.3.5
+ xdg-home@1.1.0
+ xkbcommon-dl@0.4.2
+ xkeysym@0.2.0
+ xml-rs@0.8.19
+ yaml-rust@0.4.5
+ yansi@0.5.1
+ zbus@4.1.2
+ zbus_macros@4.1.2
+ zbus_names@3.0.0
+ zerocopy-derive@0.7.32
+ zerocopy@0.7.32
+ zvariant@4.0.2
+ zvariant_derive@4.0.2
+ zvariant_utils@1.1.0
+"
+declare -A GIT_CRATES=(
+ [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f770555ea49c6db49c57c1dd46c7cc686e8dacc;rust-flash-lso-%commit%/flash-lso"
+ [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/deblock'
+ [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/yuv"
+ [h263-rs]="https://github.com/ruffle-rs/h263-rs;16700664e2b3334f0a930f99af86011aebee14cc;h263-rs-%commit%/h263"
+ [jpegxr]="https://github.com/ruffle-rs/jpegxr;688021cb0a4935295f9aa8b488ca05bb4f1e9b34;jpegxr-%commit%"
+ [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;754b1184037aa9952a907107284fb73897e26adc;nellymoser-%commit%"
+ [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support"
+ [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core"
+ [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck"
+)
+inherit cargo desktop optfeature xdg
+
+MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Flash Player emulator written in Rust"
+HOMEPAGE="https://ruffle.rs/"
+SRC_URI="
+ https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+LICENSE+="
+ Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT
+ MPL-2.0 OFL-1.1 Unicode-DFS-2016 ZLIB curl
+" # crates
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# dlopen: libX* (see winit+x11-dl crates)
+RDEPEND="
+ dev-libs/openssl:=
+ media-libs/alsa-lib
+ sys-libs/zlib:=
+ virtual/libudev:=
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXrandr
+ x11-libs/libXrender
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/jre:*
+ virtual/pkgconfig
+ >=virtual/rust-1.76
+"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}.*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch
+)
+
+src_configure() {
+ local workspaces=(
+ ruffle_{desktop,scanner}
+ exporter
+ $(usev test tests)
+ )
+
+ cargo_src_configure "${workspaces[@]/#/--package=}"
+}
+
+src_test() {
+ local skip=(
+ # may need more investigation, strangely "pass" (xfail) when
+ # RUSTFLAGS is unset, skip for now (bug #915726)
+ --skip from_avmplus/as3/Types/Int/wraparound
+ )
+
+ cargo_src_test -- "${skip[@]}"
+}
+
+src_install() {
+ dodoc README.md
+
+ newicon web/packages/extension/assets/images/icon180.png ${PN}.png
+ make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
+ "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
+
+ # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510
+ cd target/$(usex debug{,} release) || die
+
+ newbin ${PN}_desktop ${PN}
+ newbin exporter ${PN}_exporter
+ dobin ${PN}_scanner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "${PN} is experimental software that is still under heavy development"
+ elog "and only receiving nightly releases. Plans in Gentoo is to update"
+ elog "roughly every months if no known major regressions (feel free to"
+ elog "report if you feel a newer nightly is needed ahead of time)."
+ elog
+ elog "There is currently no plans to support wasm builds / browser"
+ elog "extensions, this provides the desktop viewer and other tools."
+ fi
+
+ optfeature "the in-application file picker" sys-apps/xdg-desktop-portal
+}
diff --git a/app-emulation/ruffle/ruffle-0_p20240422.ebuild b/app-emulation/ruffle/ruffle-0_p20240422.ebuild
new file mode 100644
index 000000000000..364a2d9de0bc
--- /dev/null
+++ b/app-emulation/ruffle/ruffle-0_p20240422.ebuild
@@ -0,0 +1,767 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ ab_glyph@0.2.23
+ ab_glyph_rasterizer@0.1.8
+ accesskit@0.12.3
+ addr2line@0.21.0
+ adler32@1.2.0
+ adler@1.0.2
+ aes@0.8.4
+ ahash@0.8.11
+ aho-corasick@1.1.3
+ allocator-api2@0.2.16
+ alsa-sys@0.3.1
+ alsa@0.9.0
+ android-activity@0.5.2
+ android-properties@0.2.2
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.13
+ anstyle-parse@0.2.3
+ anstyle-query@1.0.2
+ anstyle-wincon@3.0.2
+ anstyle@1.0.6
+ anyhow@1.0.82
+ approx@0.5.1
+ arboard@3.3.2
+ arc-swap@1.7.1
+ arrayref@0.3.7
+ arrayvec@0.7.4
+ ashpd@0.8.1
+ ash@0.37.3+1.3.251
+ async-broadcast@0.7.0
+ async-channel@2.2.1
+ async-executor@1.8.0
+ async-fs@2.1.1
+ async-io@2.3.2
+ async-lock@2.8.0
+ async-lock@3.3.0
+ async-net@2.0.0
+ async-process@2.1.0
+ async-recursion@1.1.0
+ async-signal@0.2.5
+ async-task@4.7.0
+ async-trait@0.1.79
+ as-raw-xcb-connection@1.0.1
+ atomic-waker@1.1.2
+ autocfg@1.2.0
+ backtrace@0.3.71
+ base64ct@1.6.0
+ base64@0.21.7
+ base64@0.22.0
+ bindgen@0.69.4
+ bitflags@1.3.2
+ bitflags@2.5.0
+ bitstream-io@2.2.0
+ bit-set@0.5.3
+ bit-vec@0.6.3
+ block2@0.3.0
+ blocking@1.5.1
+ block-buffer@0.10.4
+ block-sys@0.2.1
+ block@0.1.6
+ bstr@1.9.1
+ bumpalo@3.15.4
+ bytemuck@1.15.0
+ bytemuck_derive@1.6.0
+ byteorder@1.5.0
+ bytes@1.6.0
+ bzip2-sys@0.1.11+1.0.8
+ bzip2@0.4.4
+ calloop-wayland-source@0.2.0
+ calloop@0.12.4
+ camino@1.1.6
+ cargo-platform@0.1.8
+ cargo_metadata@0.18.1
+ cc@1.0.90
+ cesu8@1.1.0
+ cexpr@0.6.0
+ cfg-if@1.0.0
+ cfg_aliases@0.1.1
+ chrono@0.4.38
+ cipher@0.4.4
+ clang-sys@1.7.0
+ clap@4.5.4
+ clap_builder@4.5.2
+ clap_derive@4.5.4
+ clap_lex@0.7.0
+ clipboard-win@5.3.0
+ codespan-reporting@0.11.1
+ colorchoice@1.0.0
+ color_quant@1.1.0
+ combine@4.6.6
+ com@0.6.0
+ com_macros@0.6.0
+ com_macros_support@0.6.0
+ concurrent-queue@2.4.0
+ console@0.15.8
+ console_error_panic_hook@0.1.7
+ constant_time_eq@0.1.5
+ convert_case@0.6.0
+ cookie-factory@0.3.3
+ cookie@0.17.0
+ cookie_store@0.20.0
+ core2@0.4.0
+ coreaudio-rs@0.11.3
+ coreaudio-sys@0.2.15
+ core-foundation-sys@0.8.6
+ core-foundation@0.9.4
+ core-graphics-types@0.1.3
+ core-graphics@0.23.1
+ cpal@0.15.3
+ cpufeatures@0.2.12
+ crc32fast@1.4.0
+ crc-catalog@2.4.0
+ crc@3.0.1
+ crossbeam-channel@0.5.12
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.19
+ crypto-common@0.1.6
+ csv-core@0.1.11
+ csv@1.3.0
+ cursor-icon@1.1.0
+ d3d12@0.19.0
+ darling@0.20.8
+ darling_core@0.20.8
+ darling_macro@0.20.8
+ dary_heap@0.3.6
+ dasp@0.11.0
+ dasp_envelope@0.11.0
+ dasp_frame@0.11.0
+ dasp_interpolate@0.11.0
+ dasp_peak@0.11.0
+ dasp_ring_buffer@0.11.0
+ dasp_rms@0.11.0
+ dasp_sample@0.11.0
+ dasp_signal@0.11.0
+ dasp_slice@0.11.0
+ dasp_window@0.11.1
+ data-encoding@2.5.0
+ deranged@0.3.11
+ derivative@2.2.0
+ diff@0.1.13
+ digest@0.10.7
+ dirs-sys@0.4.1
+ dirs@5.0.1
+ dispatch@0.2.0
+ displaydoc@0.2.4
+ dlib@0.5.2
+ document-features@0.2.8
+ downcast-rs@1.2.1
+ ecolor@0.27.2
+ egui-wgpu@0.27.2
+ egui-winit@0.27.2
+ egui@0.27.2
+ egui_extras@0.27.2
+ either@1.11.0
+ emath@0.27.2
+ embed-resource@2.4.2
+ encode_unicode@0.3.6
+ encoding_rs@0.8.34
+ endi@1.1.0
+ enumflags2@0.7.9
+ enumflags2_derive@0.7.9
+ enumn@0.1.13
+ enumset@1.1.3
+ enumset_derive@0.8.1
+ enum-map-derive@0.17.0
+ enum-map@2.7.3
+ env_filter@0.1.0
+ env_logger@0.11.3
+ epaint@0.27.2
+ equivalent@1.0.1
+ errno@0.3.8
+ error-code@3.2.0
+ escape8259@0.5.2
+ euclid@0.22.9
+ event-listener-strategy@0.4.0
+ event-listener-strategy@0.5.0
+ event-listener@2.5.3
+ event-listener@4.0.3
+ event-listener@5.2.0
+ fastrand@2.0.2
+ fdeflate@0.3.4
+ filetime@0.2.23
+ flate2@1.0.28
+ float-cmp@0.9.0
+ float_next_after@1.0.0
+ fluent-bundle@0.15.2
+ fluent-langneg@0.13.0
+ fluent-syntax@0.11.0
+ fluent-templates@0.9.2
+ fluent-template-macros@0.9.2
+ fluent@0.16.0
+ flume@0.10.14
+ flume@0.11.0
+ fnv@1.0.7
+ fontconfig-parser@0.5.6
+ fontdb@0.16.2
+ foreign-types-macros@0.2.3
+ foreign-types-shared@0.3.1
+ foreign-types@0.5.0
+ form_urlencoded@1.2.1
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-executor@0.3.30
+ futures-io@0.3.30
+ futures-lite@2.3.0
+ futures-macro@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ futures@0.3.30
+ gc-arena-derive@0.5.0
+ gc-arena@0.5.0
+ generator@0.7.5
+ generic-array@0.14.7
+ gethostname@0.4.3
+ getrandom@0.2.14
+ gif@0.13.1
+ gilrs-core@0.5.11
+ gilrs@0.10.6
+ gimli@0.28.1
+ globset@0.4.14
+ glob@0.3.1
+ gloo-net@0.5.0
+ gloo-utils@0.2.0
+ glow@0.13.1
+ glutin_wgl_sys@0.5.0
+ gl_generator@0.14.0
+ gpu-allocator@0.25.0
+ gpu-alloc-types@0.3.0
+ gpu-alloc@0.6.0
+ gpu-descriptor-types@0.1.2
+ gpu-descriptor@0.2.4
+ h2@0.4.4
+ hashbrown@0.13.2
+ hashbrown@0.14.3
+ hassle-rs@0.11.0
+ heck@0.4.1
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hexf-parse@0.2.1
+ hex@0.4.3
+ hmac@0.12.1
+ home@0.5.9
+ httparse@1.8.0
+ http-body-util@0.1.1
+ http-body@1.0.0
+ http@0.2.12
+ http@1.1.0
+ humantime@2.1.0
+ hyper-rustls@0.26.0
+ hyper-util@0.1.3
+ hyper@1.2.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.60
+ icrate@0.0.4
+ id3@1.13.1
+ ident_case@1.0.1
+ idna@0.3.0
+ idna@0.5.0
+ ignore@0.4.22
+ image@0.24.9
+ image@0.25.1
+ indexmap@2.2.6
+ indicatif@0.17.8
+ inotify-sys@0.1.5
+ inotify@0.10.2
+ inout@0.1.3
+ instant@0.1.12
+ insta@1.38.0
+ intl-memoizer@0.5.1
+ intl_pluralrules@7.0.2
+ io-kit-sys@0.4.1
+ ipnet@2.9.0
+ itertools@0.12.1
+ itoa@1.0.11
+ jni-sys@0.3.0
+ jni@0.21.1
+ jobserver@0.1.28
+ jpeg-decoder@0.3.1
+ js-sys@0.3.69
+ khronos-egl@6.0.0
+ khronos_api@3.1.0
+ lazycell@1.3.0
+ lazy_static@1.4.0
+ libc@0.2.153
+ libflate@2.0.0
+ libflate_lz77@2.0.0
+ libloading@0.7.4
+ libloading@0.8.3
+ libm@0.2.8
+ libredox@0.0.1
+ libredox@0.0.2
+ libtest-mimic@0.7.2
+ libudev-sys@0.1.4
+ linked-hash-map@0.5.6
+ linkme-impl@0.3.25
+ linkme@0.3.25
+ linux-raw-sys@0.4.13
+ litrs@0.4.1
+ lock_api@0.4.11
+ log@0.4.21
+ loom@0.7.1
+ lru@0.12.3
+ lyon@1.0.1
+ lyon_algorithms@1.0.4
+ lyon_geom@1.0.5
+ lyon_path@1.0.4
+ lyon_tessellation@1.0.13
+ lzma-rs@0.3.0
+ mach2@0.4.2
+ macro_rules_attribute-proc_macro@0.2.0
+ macro_rules_attribute@0.2.0
+ malloc_buf@0.0.6
+ matchers@0.1.0
+ memchr@2.7.2
+ memmap2@0.9.4
+ memoffset@0.9.1
+ metal@0.27.0
+ mime@0.3.17
+ mime_guess2@2.0.5
+ minimal-lexical@0.2.1
+ miniz_oxide@0.7.2
+ mio@0.8.11
+ naga@0.19.2
+ naga_oil@0.13.0
+ ndk-context@0.1.1
+ ndk-sys@0.5.0+25.2.9519653
+ ndk@0.8.0
+ nix@0.28.0
+ nohash-hasher@0.2.0
+ nom@7.1.3
+ number_prefix@0.4.0
+ num-bigint@0.4.4
+ num-complex@0.4.5
+ num-conv@0.1.0
+ num-derive@0.4.2
+ num-integer@0.1.46
+ num-traits@0.2.18
+ num_cpus@1.16.0
+ num_enum@0.7.2
+ num_enum_derive@0.7.2
+ num_threads@0.1.7
+ nu-ansi-term@0.46.0
+ objc2-encode@3.0.0
+ objc2@0.4.1
+ objc-foundation@0.1.1
+ objc-sys@0.3.2
+ objc@0.2.7
+ objc_exception@0.1.2
+ objc_id@0.1.1
+ object@0.32.2
+ oboe-sys@0.6.1
+ oboe@0.6.1
+ once_cell@1.19.0
+ option-ext@0.2.0
+ orbclient@0.3.47
+ ordered-stream@0.2.0
+ os_info@3.8.2
+ overload@0.1.1
+ owned_ttf_parser@0.20.0
+ parking@2.2.0
+ parking_lot@0.12.1
+ parking_lot_core@0.9.9
+ password-hash@0.4.2
+ paste@1.0.14
+ path-slash@0.2.1
+ pbkdf2@0.11.0
+ percent-encoding@2.3.1
+ pin-project-internal@1.1.5
+ pin-project-lite@0.2.13
+ pin-project@1.1.5
+ pin-utils@0.1.0
+ piper@0.2.1
+ pkg-config@0.3.30
+ png@0.17.13
+ polling@3.6.0
+ pollster@0.3.0
+ portable-atomic@1.6.0
+ powerfmt@0.2.0
+ ppv-lite86@0.2.17
+ pp-rs@0.2.1
+ presser@0.3.1
+ prettyplease@0.2.17
+ pretty_assertions@1.4.0
+ primal-check@0.3.3
+ proc-macro2@1.0.81
+ proc-macro-crate@3.1.0
+ proc-macro-hack@0.5.20+deprecated
+ profiling-procmacros@1.0.14
+ profiling@1.0.14
+ psl-types@2.0.11
+ publicsuffix@2.2.3
+ quick-xml@0.31.0
+ quote@1.0.36
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ range-alloc@0.1.3
+ raw-window-handle@0.5.2
+ raw-window-handle@0.6.0
+ rayon-core@1.12.1
+ rayon@1.10.0
+ realfft@3.3.0
+ redox_syscall@0.3.5
+ redox_syscall@0.4.1
+ redox_users@0.4.4
+ regex-automata@0.1.10
+ regex-automata@0.4.6
+ regex-syntax@0.6.29
+ regex-syntax@0.8.3
+ regex@1.10.4
+ regress@0.9.1
+ renderdoc-sys@1.1.0
+ renderdoc@0.12.1
+ reqwest@0.12.3
+ rfd@0.14.1
+ ring@0.17.8
+ rle-decode-fast@1.0.3
+ ron@0.8.1
+ roxmltree@0.19.0
+ rustc-demangle@0.1.23
+ rustc-hash@1.1.0
+ rustc_version@0.4.0
+ rustdct@0.7.1
+ rustfft@6.2.0
+ rustix@0.38.32
+ rustls-pemfile@2.1.2
+ rustls-pki-types@1.4.1
+ rustls-webpki@0.102.2
+ rustls@0.22.4
+ rustversion@1.0.14
+ ryu@1.0.17
+ safe_arch@0.7.1
+ same-file@1.0.6
+ scoped-tls@1.0.1
+ scopeguard@1.2.0
+ sctk-adwaita@0.8.1
+ self_cell@0.10.3
+ self_cell@1.0.3
+ semver@1.0.22
+ serde-wasm-bindgen@0.6.5
+ serde@1.0.198
+ serde_derive@1.0.198
+ serde_json@1.0.116
+ serde_repr@0.1.18
+ serde_spanned@0.6.5
+ serde_urlencoded@0.7.1
+ sha1@0.10.6
+ sha2@0.10.8
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ signal-hook-registry@1.4.1
+ simd-adler32@0.3.7
+ similar@2.5.0
+ simple_asn1@0.6.2
+ slab@0.4.9
+ slotmap@1.0.7
+ smallvec@1.13.2
+ smithay-client-toolkit@0.18.1
+ smithay-clipboard@0.7.1
+ smol_str@0.2.1
+ socket2@0.5.6
+ spin@0.9.8
+ spirv@0.3.0+sdk-1.3.268.0
+ sptr@0.3.2
+ static_assertions@1.1.0
+ strength_reduce@0.2.4
+ strict-num@0.1.1
+ strsim@0.11.0
+ subtle@2.5.0
+ symphonia-bundle-mp3@0.5.4
+ symphonia-core@0.5.4
+ symphonia-metadata@0.5.4
+ symphonia@0.5.4
+ sync_wrapper@0.1.2
+ synstructure@0.13.1
+ syn@1.0.109
+ syn@2.0.60
+ system-configuration-sys@0.5.0
+ system-configuration@0.5.1
+ sys-locale@0.3.1
+ tempfile@3.10.1
+ termcolor@1.4.1
+ thiserror-impl@1.0.58
+ thiserror@1.0.58
+ threadpool@1.8.1
+ thread_local@1.1.8
+ tiff@0.9.1
+ time-core@0.1.2
+ time-macros@0.2.17
+ time@0.3.34
+ tinystr@0.7.5
+ tinyvec@1.6.0
+ tinyvec_macros@0.1.1
+ tiny-skia-path@0.11.4
+ tiny-skia@0.11.4
+ tokio-macros@2.2.0
+ tokio-rustls@0.25.0
+ tokio-util@0.7.10
+ tokio@1.37.0
+ toml@0.8.12
+ toml_datetime@0.6.5
+ toml_edit@0.21.1
+ toml_edit@0.22.9
+ tower-layer@0.3.2
+ tower-service@0.3.2
+ tower@0.4.13
+ tracing-appender@0.2.3
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing-log@0.2.0
+ tracing-subscriber@0.3.18
+ tracing-tracy@0.10.4
+ tracing-wasm@0.2.1
+ tracing@0.1.40
+ tracy-client-sys@0.22.2
+ tracy-client@0.16.5
+ transpose@0.2.3
+ try-lock@0.2.5
+ ttf-parser@0.20.0
+ typenum@1.17.0
+ type-map@0.4.0
+ type-map@0.5.0
+ uds_windows@1.1.0
+ unicase@2.7.0
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ unicode-segmentation@1.11.0
+ unicode-width@0.1.11
+ unicode-xid@0.2.4
+ unic-char-property@0.9.0
+ unic-char-range@0.9.0
+ unic-common@0.9.0
+ unic-langid-impl@0.9.4
+ unic-langid-macros-impl@0.9.4
+ unic-langid-macros@0.9.4
+ unic-langid@0.9.4
+ unic-segment@0.9.0
+ unic-ucd-segment@0.9.0
+ unic-ucd-version@0.9.0
+ untrusted@0.9.0
+ urlencoding@2.1.3
+ url@2.5.0
+ utf8parse@0.2.1
+ uuid@1.8.0
+ valuable@0.1.0
+ vec_map@0.8.2
+ vergen@8.3.1
+ version_check@0.9.4
+ vfs@0.12.0
+ vswhom-sys@0.1.2
+ vswhom@0.1.0
+ walkdir@2.5.0
+ want@0.3.1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.92
+ wasm-bindgen-futures@0.4.42
+ wasm-bindgen-macro-support@0.2.92
+ wasm-bindgen-macro@0.2.92
+ wasm-bindgen-shared@0.2.92
+ wasm-bindgen@0.2.92
+ wasm-streams@0.4.0
+ wayland-backend@0.3.3
+ wayland-client@0.31.2
+ wayland-csd-frame@0.3.0
+ wayland-cursor@0.31.1
+ wayland-protocols-plasma@0.2.0
+ wayland-protocols-wlr@0.2.0
+ wayland-protocols@0.31.2
+ wayland-scanner@0.31.1
+ wayland-sys@0.31.1
+ weak-table@0.3.2
+ webbrowser@0.8.15
+ webpki-roots@0.26.1
+ web-sys@0.3.69
+ web-time@0.2.4
+ web-time@1.1.0
+ weezl@0.1.8
+ wgpu-core@0.19.3
+ wgpu-hal@0.19.3
+ wgpu-types@0.19.2
+ wgpu@0.19.4
+ which@4.4.2
+ widestring@1.0.2
+ wide@0.7.15
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.6
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-core@0.54.0
+ windows-result@0.1.0
+ windows-sys@0.45.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-targets@0.42.2
+ windows-targets@0.48.5
+ windows-targets@0.52.4
+ windows@0.48.0
+ windows@0.52.0
+ windows@0.54.0
+ windows_aarch64_gnullvm@0.42.2
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.4
+ windows_aarch64_msvc@0.42.2
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.4
+ windows_i686_gnu@0.42.2
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.4
+ windows_i686_msvc@0.42.2
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.4
+ windows_x86_64_gnullvm@0.42.2
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.4
+ windows_x86_64_gnu@0.42.2
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.4
+ windows_x86_64_msvc@0.42.2
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.4
+ winit@0.29.15
+ winnow@0.5.40
+ winnow@0.6.5
+ winreg@0.52.0
+ wio@0.2.2
+ x11rb-protocol@0.13.0
+ x11rb@0.13.0
+ x11-dl@2.21.0
+ xcursor@0.3.5
+ xdg-home@1.1.0
+ xkbcommon-dl@0.4.2
+ xkeysym@0.2.0
+ xml-rs@0.8.19
+ yansi@0.5.1
+ zbus@4.1.2
+ zbus_macros@4.1.2
+ zbus_names@3.0.0
+ zerocopy-derive@0.7.32
+ zerocopy@0.7.32
+ zeroize@1.7.0
+ zip@0.6.6
+ zstd-safe@5.0.2+zstd.1.5.2
+ zstd-sys@2.0.10+zstd.1.5.6
+ zstd@0.11.2+zstd.1.5.2
+ zvariant@4.0.2
+ zvariant_derive@4.0.2
+ zvariant_utils@1.1.0
+"
+declare -A GIT_CRATES=(
+ [flash-lso]="https://github.com/ruffle-rs/rust-flash-lso;2f770555ea49c6db49c57c1dd46c7cc686e8dacc;rust-flash-lso-%commit%/flash-lso"
+ [h263-rs-deblock]='https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/deblock'
+ [h263-rs-yuv]="https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/yuv"
+ [h263-rs]="https://github.com/ruffle-rs/h263-rs;5c8d9d7d86f62b70ca484df006a75a9c8ff1985c;h263-rs-%commit%/h263"
+ [jpegxr]="https://github.com/ruffle-rs/jpegxr;688021cb0a4935295f9aa8b488ca05bb4f1e9b34;jpegxr-%commit%"
+ [nellymoser-rs]="https://github.com/ruffle-rs/nellymoser;754b1184037aa9952a907107284fb73897e26adc;nellymoser-%commit%"
+ [nihav_codec_support]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-codec-support"
+ [nihav_core]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-core"
+ [nihav_duck]="https://github.com/ruffle-rs/nihav-vp6;83c7e1094d603d9fc1212d39d99abb17f3a3226b;nihav-vp6-%commit%/nihav-duck"
+)
+inherit cargo desktop optfeature xdg
+
+MY_PV="nightly-${PV:3:4}-${PV:7:2}-${PV:9:2}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Flash Player emulator written in Rust"
+HOMEPAGE="https://ruffle.rs/"
+SRC_URI="
+ https://github.com/ruffle-rs/ruffle/archive/refs/tags/${MY_PV}.tar.gz -> ${MY_P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+LICENSE+="
+ Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT
+ MPL-2.0 OFL-1.1 openssl Unicode-DFS-2016 ZLIB
+" # crates
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# dlopen: libX* (see winit+x11-dl crates)
+RDEPEND="
+ media-libs/alsa-lib
+ virtual/libudev:=
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXrandr
+ x11-libs/libXrender
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/jre:*
+ virtual/pkgconfig
+ >=virtual/rust-1.76
+"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}.*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch
+)
+
+src_configure() {
+ local workspaces=(
+ ruffle_{desktop,scanner}
+ exporter
+ $(usev test tests)
+ )
+
+ cargo_src_configure "${workspaces[@]/#/--package=}"
+}
+
+src_test() {
+ local skip=(
+ # may need more investigation, strangely "pass" (xfail) when
+ # RUSTFLAGS is unset, skip for now (bug #915726)
+ --skip from_avmplus/as3/Types/Int/wraparound
+ )
+
+ cargo_src_test -- "${skip[@]}"
+}
+
+src_install() {
+ dodoc README.md
+
+ newicon web/packages/extension/assets/images/icon180.png ${PN}.png
+ make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
+ "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
+
+ # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510
+ cd target/$(usex debug{,} release) || die
+
+ newbin ${PN}_desktop ${PN}
+ newbin exporter ${PN}_exporter
+ dobin ${PN}_scanner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "${PN} is experimental software that is still under heavy development"
+ elog "and only receiving nightly releases. Plans in Gentoo is to update"
+ elog "roughly every months if no known major regressions (feel free to"
+ elog "report if you feel a newer nightly is needed ahead of time)."
+ elog
+ elog "There is currently no plans to support wasm builds / browser"
+ elog "extensions, this provides the desktop viewer and other tools."
+ fi
+
+ optfeature "the in-application file picker" sys-apps/xdg-desktop-portal
+}
diff --git a/app-emulation/ruffle/ruffle-9999.ebuild b/app-emulation/ruffle/ruffle-9999.ebuild
new file mode 100644
index 000000000000..29549b6f4ecb
--- /dev/null
+++ b/app-emulation/ruffle/ruffle-9999.ebuild
@@ -0,0 +1,90 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cargo desktop git-r3 optfeature xdg
+
+DESCRIPTION="Flash Player emulator written in Rust"
+HOMEPAGE="https://ruffle.rs/"
+EGIT_REPO_URI="https://github.com/ruffle-rs/ruffle.git"
+
+LICENSE="|| ( Apache-2.0 MIT )"
+LICENSE+="
+ Apache-2.0 BSD-2 BSD Boost-1.0 CC0-1.0 ISC UbuntuFontLicense-1.0 MIT
+ MPL-2.0 OFL-1.1 openssl Unicode-DFS-2016 ZLIB
+" # crates
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+# dlopen: libX* (see winit+x11-dl crates)
+RDEPEND="
+ media-libs/alsa-lib
+ virtual/libudev:=
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXrandr
+ x11-libs/libXrender
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ virtual/jre:*
+ virtual/pkgconfig
+ >=virtual/rust-1.76
+"
+
+QA_FLAGS_IGNORED="usr/bin/${PN}.*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0_p20231216-skip-render-tests.patch
+)
+
+src_unpack() {
+ git-r3_src_unpack
+ cargo_live_src_unpack
+}
+
+src_configure() {
+ local workspaces=(
+ ruffle_{desktop,scanner}
+ exporter
+ $(usev test tests)
+ )
+
+ cargo_src_configure "${workspaces[@]/#/--package=}"
+}
+
+src_test() {
+ local skip=(
+ # may need more investigation, strangely "pass" (xfail) when
+ # RUSTFLAGS is unset, skip for now (bug #915726)
+ --skip from_avmplus/as3/Types/Int/wraparound
+ )
+
+ cargo_src_test -- "${skip[@]}"
+}
+
+src_install() {
+ dodoc README.md
+
+ newicon web/packages/extension/assets/images/icon180.png ${PN}.png
+ make_desktop_entry ${PN} ${PN^} ${PN} "AudioVideo;Player;Emulator;" \
+ "MimeType=application/x-shockwave-flash;application/vnd.adobe.flash.movie;"
+
+ # TODO: swap with /gentoo after https://github.com/gentoo/gentoo/pull/29510
+ cd target/$(usex debug{,} release) || die
+
+ newbin ${PN}_desktop ${PN}
+ newbin exporter ${PN}_exporter
+ dobin ${PN}_scanner
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "the in-application file picker" sys-apps/xdg-desktop-portal
+}
diff --git a/app-emulation/runc/Manifest b/app-emulation/runc/Manifest
deleted file mode 100644
index 0c5009ddfbe3..000000000000
--- a/app-emulation/runc/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST runc-1.0.0_rc10.tar.gz 1929802 BLAKE2B 8399c3d62726bbb6256efef7e15b7496a7172bf25170b12beb60be498967dec4fde2aebd073de4265e132ff864bafc4d2499ab677390a4f7c0a1605d83ae55e5 SHA512 598221071ef07d18bf34bf5d5c68b8ad78ee71716177fc3ce5b6909cd841d5aed93f17ebf1f3d134707d29eef1f54a4ddc21e79621a9bd957df28a8d2e028ab7
diff --git a/app-emulation/runc/metadata.xml b/app-emulation/runc/metadata.xml
deleted file mode 100644
index 7cb4581ab75d..000000000000
--- a/app-emulation/runc/metadata.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <longdescription lang="en">
- runc is a CLI tool for spawning and running containers according
- to the OCF (Open Container Format) specification.
- </longdescription>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <use>
- <flag name="ambient">
- Enable support for ambient capabilities set (Requires Linux kernel 4.3 or later).
- </flag>
- <flag name="apparmor">
- Enable AppArmor support.
- </flag>
- <flag name="kmem">
- Enable Kernel Memory Accounting.
- </flag>
- </use>
- <upstream>
- <remote-id type="github">opencontainers/runc</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/runc/runc-1.0.0_rc10-r1.ebuild b/app-emulation/runc/runc-1.0.0_rc10-r1.ebuild
deleted file mode 100644
index 9f60bd86db13..000000000000
--- a/app-emulation/runc/runc-1.0.0_rc10-r1.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit golang-vcs-snapshot linux-info
-
-# update on bump, look for https://github.com/docker\
-# docker-ce/blob/<docker ver OR branch>/components/engine/hack/dockerfile/install/runc.installer
-RUNC_COMMIT="dc9208a3303feef5b3839f4323d9beb36df0a9dd"
-CONFIG_CHECK="~USER_NS"
-EGO_PN="github.com/opencontainers/${PN}"
-
-DESCRIPTION="runc container cli tools"
-HOMEPAGE="http://runc.io"
-SRC_URI="https://github.com/opencontainers/${PN}/archive/v${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD-2 BSD MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ppc64 ~x86"
-IUSE="apparmor +ambient hardened +kmem +seccomp selinux test"
-
-DEPEND="seccomp? ( sys-libs/libseccomp )"
-
-RDEPEND="
- ${DEPEND}
- !app-emulation/docker-runc
- apparmor? ( sys-libs/libapparmor )
-"
-
-BDEPEND="
- dev-go/go-md2man
- test? ( "${RDEPEND}" )
-"
-
-# tests need busybox binary, and portage namespace
-# sandboxing disabled: mount-sandbox pid-sandbox ipc-sandbox
-# majority of tests pass
-RESTRICT+=" test"
-
-src_compile() {
- # Taken from app-emulation/docker-1.7.0-r1
- export CGO_CFLAGS="-I${ROOT}/usr/include"
- export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')
- -L${ROOT}/usr/$(get_libdir)"
-
- # build up optional flags
- local options=(
- $(usev ambient)
- $(usev apparmor)
- $(usev seccomp)
- $(usev selinux)
- $(usex kmem '' 'nokmem')
- )
-
- myemakeargs=(
- BINDIR="${ED}/usr/bin"
- BUILDTAGS="${options[*]}"
- COMMIT=${RUNC_COMMIT}
- DESTDIR="${ED}"
- PREFIX="${ED}/usr"
- GOPATH="${S}"
- -C "src/${EGO_PN}"
- )
-
- emake "${myemakeargs[@]}" runc man
-}
-
-src_install() {
- emake "${myemakeargs[@]}" install install-man install-bash
-
- local DOCS=( src/"${EGO_PN}"/{README.md,PRINCIPLES.md,docs/.} )
- einstalldocs
-}
-
-src_test() {
- emake "${myemakeargs[@]}" localunittest
-}
diff --git a/app-emulation/runc/runc-1.0.0_rc10.ebuild b/app-emulation/runc/runc-1.0.0_rc10.ebuild
deleted file mode 100644
index 903314b0fd14..000000000000
--- a/app-emulation/runc/runc-1.0.0_rc10.ebuild
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit linux-info
-
-CONFIG_CHECK="~USER_NS"
-EGO_PN="github.com/opencontainers/${PN}"
-
-if [[ ${PV} == *9999 ]]; then
- inherit golang-build golang-vcs
-else
- MY_PV="${PV/_/-}"
- # Change this when you update the ebuild
- RUNC_COMMIT=dc9208a3303feef5b3839f4323d9beb36df0a9dd
- SRC_URI="https://${EGO_PN}/archive/${RUNC_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~x86"
- inherit golang-build golang-vcs-snapshot
-fi
-
-DESCRIPTION="runc container cli tools"
-HOMEPAGE="http://runc.io"
-
-LICENSE="Apache-2.0 BSD-2 BSD MIT"
-SLOT="0"
-IUSE="+ambient apparmor hardened +kmem +seccomp"
-
-RDEPEND="
- apparmor? ( sys-libs/libapparmor )
- seccomp? ( sys-libs/libseccomp )
- !app-emulation/docker-runc
-"
-
-src_compile() {
- # Taken from app-emulation/docker-1.7.0-r1
- export CGO_CFLAGS="-I${ROOT}/usr/include"
- export CGO_LDFLAGS="$(usex hardened '-fno-PIC ' '')
- -L${ROOT}/usr/$(get_libdir)"
-
- # build up optional flags
- local options=(
- $(usex ambient 'ambient' '')
- $(usex apparmor 'apparmor' '')
- $(usex seccomp 'seccomp' '')
- $(usex kmem '' 'nokmem')
- )
-
- COMMIT=${RUNC_COMMIT} GOPATH="${S}" emake BUILDTAGS="${options[*]}" \
- -C src/${EGO_PN}
-}
-
-src_install() {
- pushd src/${EGO_PN} || die
- dobin runc
- dodoc README.md PRINCIPLES.md
- popd || die
-}
diff --git a/app-emulation/runv/metadata.xml b/app-emulation/runv/metadata.xml
index af5a58145e7f..8187312886a3 100644
--- a/app-emulation/runv/metadata.xml
+++ b/app-emulation/runv/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
diff --git a/app-emulation/s6-overlay/Manifest b/app-emulation/s6-overlay/Manifest
deleted file mode 100644
index 10afae83b5a2..000000000000
--- a/app-emulation/s6-overlay/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST s6-overlay-1.18.1.3.tar.gz 20067 BLAKE2B 7006549052fb27c8e7ec2a756854ebd82a41a88e14be45657c375321f4c18f482aefc8d21f1d57d8432ff1b836f114aac75a28b56bdd7722b14de3c06330024d SHA512 2b17b86a93e1efc27181a100bb86aacbce2e2c58cfd0d0855a293b99ba5c871a2f17bd10fa14b173b297816ae2d1658aaee2e6a6e25b957ad60f93d535955775
diff --git a/app-emulation/s6-overlay/metadata.xml b/app-emulation/s6-overlay/metadata.xml
deleted file mode 100644
index eae269410bf0..000000000000
--- a/app-emulation/s6-overlay/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <upstream>
- <remote-id type="github">just-containers/s6-overlay</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild b/app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild
deleted file mode 100644
index c9dd1445da21..000000000000
--- a/app-emulation/s6-overlay/s6-overlay-1.18.1.3.ebuild
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-if [[ ${PV} = 9999 ]]; then
- EGIT_REPO_URI="https://github.com/just-containers/${PN}"
- inherit git-r3
-else
- SRC_URI="https://github.com/just-containers/${PN}/archive/v${PV}.tar.gz ->
- ${P}.tar.gz"
- KEYWORDS="~amd64"
- inherit vcs-snapshot
-fi
-
-DESCRIPTION="an s6-based init system for containers"
-HOMEPAGE="https://github.com/just-containers/s6-overlay"
-
-LICENSE="ISC"
-SLOT="0"
-IUSE=""
-
-DEPEND=""
-RDEPEND="sys-apps/s6
- sys-apps/s6-portable-utils"
-
-src_install() {
- dodoc *.md
- cd builder/overlay-rootfs
- dobin usr/bin/{fix-attrs,logutil*,print*,with*}
-
- insinto /
- doins -r etc init
-
- # create must exist directories
- dodir /etc/{cont-init.d,cont-finish.d,fix-attrs.d,services.d}
- dodir /etc/s6/init/env-stage2
-
- # create "supervise" directory in fdholder, its needed for no-catchall
- # stage2 wake up
- dodir /etc/s6/services/s6-fdholderd/supervise
- fperms 0700 /etc/s6/services/s6-fdholderd/supervise
-
- # fix misc permissions
- fperms 0755 /init
- fperms 0755 /etc/s6/init/init-stage1 \
- /etc/s6/init/init-stage2 \
- /etc/s6/init/init-stage2-redirfd \
- /etc/s6/init/init-stage3
- fperms 0755 /etc/s6/init-catchall/init-stage1 \
- /etc/s6/init-catchall/init-stage2
- fperms 0755 /etc/s6/init-no-catchall/init-stage1 \
- /etc/s6/init-no-catchall/init-stage2
- fperms 0755 /etc/s6/services/.s6-svscan/crash
- fperms 0755 /etc/s6/services/.s6-svscan/finish
- fperms 0755 /etc/s6/services/s6-fdholderd/run
- fperms 0755 /etc/s6/services/s6-svscan-log/run
-}
diff --git a/app-emulation/sen/Manifest b/app-emulation/sen/Manifest
deleted file mode 100644
index 7618cbd5460b..000000000000
--- a/app-emulation/sen/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-DIST sen-0.6.0.tar.gz 55113 BLAKE2B 5f6affbea94005c0adc9ac544d40d94cd9a9eca930b979c19174d21d73fdd887d21802a5241c02ba212a45c4a7873f22c7372aeb69955e1f97e444ef74d91929 SHA512 5573a0d6da5ae395e947bf34c54313e4e3a0251dc1868c52bbfe9ad11463397da83a0c9ac3f1912da2e6f49341c84d40dcab900d41b4a32ebac44d1dde3ac82b
-DIST sen-0.6.1.tar.gz 55357 BLAKE2B 0d58f0ea11eeff29161925018425c918b3260c754d1b658e2ebd3c88e0c371feb0f1815af61979206bee529c369a90ace895d25e645ef0d76c563abd8b74c943 SHA512 2f1cadf745ca7e12d3e92534e76984072b9678055b9911f76b1a6d3cbd43266ad1eeb4d5e7bb8742db91c4da4aef684fa644c33de6fa2494c37688e9747e0efa
-DIST sen-0.6.1_p20200905.tar.gz 1913978 BLAKE2B 189bff583770265de29ca3e54cad1283051c05eccab4fc98160801e50b31376188c52e49b43972292fe231b376ba42879fb34d7b1ae70c2246d676a6e25f670b SHA512 cd1899c1b4c5c7cf7f1f2f5e557bd609a7d7619dbc3fc6457f5ef5ce5c9ab43d92a6fbfa228c43d543d4f46c7928d74dbed9ab8346cabc772c8e7c63a7c07bfe
diff --git a/app-emulation/sen/metadata.xml b/app-emulation/sen/metadata.xml
deleted file mode 100644
index 75bfa9b4d173..000000000000
--- a/app-emulation/sen/metadata.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>nelo@wallus.de</email>
- <name>Nelo-Thara Wallus</name>
- </maintainer>
- <maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
- <upstream>
- <remote-id type="github">TomasTomecek/sen</remote-id>
- <remote-id type="pypi">sen</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/sen/sen-0.6.0.ebuild b/app-emulation/sen/sen-0.6.0.ebuild
deleted file mode 100644
index 6a712924ffc1..000000000000
--- a/app-emulation/sen/sen-0.6.0.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_6 )
-
-inherit distutils-r1
-
-DESCRIPTION="Terminal User Interface for docker engine"
-HOMEPAGE="https://github.com/TomasTomecek/sen"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
- dev-python/urwidtrees[${PYTHON_USEDEP}]
- dev-python/docker-py[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- test? (
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/flexmock[${PYTHON_USEDEP}]
- )
- "
-
-python_install_all() {
- distutils-r1_python_install_all
- dodoc -r docs
-}
-
-python_test() {
- pytest -vv tests || die "pytest failed"
-}
diff --git a/app-emulation/sen/sen-0.6.1.ebuild b/app-emulation/sen/sen-0.6.1.ebuild
deleted file mode 100644
index 4bad3d1cae6d..000000000000
--- a/app-emulation/sen/sen-0.6.1.ebuild
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_6 )
-
-inherit distutils-r1
-
-DESCRIPTION="Terminal User Interface for docker engine"
-HOMEPAGE="https://github.com/TomasTomecek/sen"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
- dev-python/urwidtrees[${PYTHON_USEDEP}]
- dev-python/docker-py[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- test? (
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/flexmock[${PYTHON_USEDEP}]
- )
- "
-
-python_install_all() {
- distutils-r1_python_install_all
- dodoc -r docs
-}
-
-python_test() {
- pytest -vv tests || die "pytest failed"
-}
diff --git a/app-emulation/sen/sen-0.6.1_p20200905.ebuild b/app-emulation/sen/sen-0.6.1_p20200905.ebuild
deleted file mode 100644
index 0ce4e0dc2ae1..000000000000
--- a/app-emulation/sen/sen-0.6.1_p20200905.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8} )
-
-DISTUTILS_USE_SETUPTOOLS=rdepend
-inherit distutils-r1
-
-COMMIT="02e5872ee2905861e1da06ab5174e1a3f41f0e0b"
-
-DESCRIPTION="Terminal User Interface for docker engine"
-HOMEPAGE="https://github.com/TomasTomecek/sen"
-SRC_URI="https://github.com/TomasTomecek/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
-S="${WORKDIR}/${PN}-${COMMIT}"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="dev-python/urwid[${PYTHON_USEDEP}]
- dev-python/urwidtrees[${PYTHON_USEDEP}]
- dev-python/docker-py[${PYTHON_USEDEP}]
- "
-DEPEND="${RDEPEND}
- test? (
- dev-python/pytest[${PYTHON_USEDEP}]
- dev-python/flexmock[${PYTHON_USEDEP}]
- )
- "
-
-python_install_all() {
- distutils-r1_python_install_all
- dodoc -r docs
-}
-
-python_test() {
- pytest -vv tests || die "pytest failed"
-}
diff --git a/app-emulation/simh/metadata.xml b/app-emulation/simh/metadata.xml
index c5298995d2d4..b67c0c2fbff6 100644
--- a/app-emulation/simh/metadata.xml
+++ b/app-emulation/simh/metadata.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
+ <!-- maintainer-needed -->
+ <upstream>
+ <remote-id type="github">simh/simh</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/simplevirt/Manifest b/app-emulation/simplevirt/Manifest
deleted file mode 100644
index 4c0da8421552..000000000000
--- a/app-emulation/simplevirt/Manifest
+++ /dev/null
@@ -1,6 +0,0 @@
-DIST github.com-go-check-check-20d25e2804050c1cd24a7eea1e7a6447dd0e74ec.tar.gz 30367 BLAKE2B c18a0f1aff1bde8e6fc533ea627377ca4de4830d84289355f68163855ec97ac47f537b3b2627568c31714ac3a7672ebf86d60452269c75c80c2cd7565d7c97a0 SHA512 94342de3aad4db1c4442062f4cf4e57c723a43bbcb0069a8bed3b719e3864eef7500a24c9c99c755114708d6822e9b23f296b6d0b2b46f32cc6ffc65944d1729
-DIST github.com-go-yaml-yaml-v2.2.1.tar.gz 70217 BLAKE2B 4ba34bd9432699ec60348d13d8b95498abf751a922f782bf177695e6854faf907c1728d1dc13ad1cb63215fe3a86366cd99068247d15c726ba77bd0cf434b9c6 SHA512 d49267ee361196b0a1e1b9ad6f6cfa903627ccf7925fc3acc8d1bd214b64d362a9dcee10ba524fb8887226235c5baa2c8812a9f62adc7e6719d4ed84baa4ce4b
-DIST github.com-inconshreveable-mousetrap-v1.0.0.tar.gz 2290 BLAKE2B bd46103e50dd916bad41aafbf8c1945d835222c131a88f4d3fba35feb4b11ae83c900280c9dafc6f0ef92f71b6a3ba02996dcb31d67eb49314b29d23fda2c8b8 SHA512 6f68bd6b7b1c7aa6651fe83b5230b6c8398b85561b01ca6a36ee638e186c325cc70444818de7a569db240159ba5840ed24f212e0defdf9f9890803a7641285d9
-DIST github.com-spf13-cobra-v0.0.3.tar.gz 101526 BLAKE2B 8613eccdd5bbd31429b7aa8260ee9367e34a5cc78075b394b09db91a97445ed1dadfb53a86105b55cb6ea3b4c2f9d50553e9198d64dfb6033dd1db2805984a2c SHA512 c38db9432a168f913b41a1e1b11d84bedfade82ff70791be9d343a6cc86b8a05b18bae344d67ebd8bae4c98662db7ac664a9dc86fa9b9ad4aa5c96cbf0178efb
-DIST github.com-spf13-pflag-v1.0.2.tar.gz 44042 BLAKE2B 157fa6c2b1efa594abebd76ff03121050187974d62475b1aa66af325a2198ea64105655597703c37f25e22c4a07864d9fc31a6a29ba9233fdeefcceef400d5e5 SHA512 fd3cefd683329316eda4ec660193a970e38435515c16805190235e2c969c8d65a6f602fdc7c2f7cf3d9740c5a321ee5be5e8034bd6cd7c05c12722cf64d1e8ae
-DIST simplevirt-0.0_p20181012.tar.gz 14652 BLAKE2B a6a648ed159d0648f27174c6598c9ae85e41530b218ef0360962884d1f61cfd16d2534ef4d2a01eb87138d0390fc7fe25e070c602f296344b8285c9dd2804287 SHA512 64c0edfc22ed0347c7335b942b06b6b9fd8c3f2ea7d374bf14b96b98b23248d15b6f38d7d1d809c8cd60b605f1809dfca8ff5c249e2df183c8b1636c26440ca8
diff --git a/app-emulation/simplevirt/files/simplevirtd.confd b/app-emulation/simplevirt/files/simplevirtd.confd
deleted file mode 100644
index 9f679f6221ac..000000000000
--- a/app-emulation/simplevirt/files/simplevirtd.confd
+++ /dev/null
@@ -1,4 +0,0 @@
-# /etc/conf.d/simplevirtd: config file for simplevirtd
-
-# See `simplevirtd --help`
-SIMPLEVIRTD_OPTS=""
diff --git a/app-emulation/simplevirt/files/simplevirtd.initd b/app-emulation/simplevirt/files/simplevirtd.initd
deleted file mode 100644
index d8dfadbcb69b..000000000000
--- a/app-emulation/simplevirt/files/simplevirtd.initd
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-name="simplevirtd"
-pidfile="/run/simplevirtd.pid"
-retry="SIGTERM/7200"
-command="/usr/sbin/simplevirtd"
-command_background="1"
-command_args="--syslog ${SIMPLEVIRTD_ARGS}"
-
-depend() {
- need net
- use dns logger
-}
diff --git a/app-emulation/simplevirt/metadata.xml b/app-emulation/simplevirt/metadata.xml
deleted file mode 100644
index e45e3daf442e..000000000000
--- a/app-emulation/simplevirt/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>rafaelmartins@gentoo.org</email>
- <name>Rafael G. Martins</name>
- </maintainer>
- <upstream>
- <maintainer status="active">
- <email>rafael@rafaelmartins.eng.br</email>
- <name>Rafael G. Martins</name>
- </maintainer>
- <remote-id type="github">rafaelmartins/simplevirt</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild b/app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild
deleted file mode 100644
index 45f5a524d281..000000000000
--- a/app-emulation/simplevirt/simplevirt-0.0_p20181012-r1.ebuild
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-EGO_VENDOR=(
- "github.com/inconshreveable/mousetrap v1.0.0"
- "github.com/spf13/cobra v0.0.3"
- "github.com/spf13/pflag v1.0.2"
- "gopkg.in/check.v1 20d25e2804050c1cd24a7eea1e7a6447dd0e74ec github.com/go-check/check"
- "gopkg.in/yaml.v2 v2.2.1 github.com/go-yaml/yaml"
-)
-
-inherit linux-info golang-vcs-snapshot
-
-EGO_PN="github.com/rafaelmartins/simplevirt"
-GIT_COMMIT="78d29d8fa11ce72af5f897430af7bb7d2947a32f"
-GIT_VERSION="0.0.26-78d2"
-ARCHIVE_URI="https://${EGO_PN}/archive/${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-
-DESCRIPTION="Simple virtual machine manager for Linux (QEMU/KVM)"
-HOMEPAGE="https://github.com/rafaelmartins/simplevirt"
-SRC_URI="
- ${ARCHIVE_URI}
- ${EGO_VENDOR_URI}"
-
-LICENSE="Apache-2.0 BSD-2 BSD MIT"
-SLOT="0"
-KEYWORDS=""
-IUSE=""
-
-RDEPEND="
- acct-group/simplevirt
- virtual/logger
- app-emulation/qemu"
-
-CONFIG_CHECK="~TUN ~BRIDGE"
-ERROR_TUN="CONFIG_TUN: Universal TUN/TAP driver required to setup bridge networking"
-ERROR_BRIDGE="CONFIG_BRIDGE: 802.1d Ethernet Bridging required to setup bridge networking"
-
-src_compile() {
- pushd src/${EGO_PN} > /dev/null || die
- GOPATH="${S}" go install -v -ldflags "-X ${EGO_PN}.Version=${GIT_VERSION}" ./cmd/... || die
- popd > /dev/null || die
-}
-
-src_install() {
- dobin bin/simplevirtctl
- dosbin bin/simplevirtd
-
- newinitd "${FILESDIR}/simplevirtd.initd" simplevirtd
- newconfd "${FILESDIR}/simplevirtd.confd" simplevirtd
-
- dodoc "src/${EGO_PN}/README.md"
-
- keepdir /etc/simplevirt
-}
-
-src_test() {
- pushd src/${EGO_PN} > /dev/null || die
- GOPATH="${S}" go test -v ./pkg/... || die
- popd > /dev/null || die
-}
-
-pkg_postinst() {
- elog
- elog "To use simplevirt, the simplevirtd daemon must be running as root."
- elog "To automatically start the daemon at boot, add it to the default runlevel:"
- elog " rc-update add simplevirtd default"
- elog
- elog "systemd is not supported for now."
- elog
- elog "To use simplevirtctl as a non-root user, add yourself to the 'simplevirt' group:"
- elog " usermod -aG simplevirt youruser"
- elog
-}
diff --git a/app-emulation/ski/Manifest b/app-emulation/ski/Manifest
index 3aed4ea18a1c..dbb5bd287253 100644
--- a/app-emulation/ski/Manifest
+++ b/app-emulation/ski/Manifest
@@ -1 +1,2 @@
DIST ski-1.3.2.tar.gz 2715791 BLAKE2B 5e6b237ea21bf410e44dbaa88150d980f2af66728effeab4e8bcef02f27c24069c4bcaf42d3814ad15c3bd759819d468f163b6c64a89408c09d1ffbdc9302c0f SHA512 21f2e1dd87cb517602d4d6ef62707ec6042c1b6ec5dfd063db7315d13bbc3fb47b491c15b7efb0433fc82f27c7924e2d50b2f57fe24e49aeb864ce2c3c2c8bd0
+DIST ski-1.4.0.tar.xz 2373876 BLAKE2B c9c20582274dd6db6e216c709a1793b55ac2c1aaf26c5e235bffdd190e9e7dca4c7ef37f96309c61ba9b5f03229966710a65405e2a345d65a08b9163f545c85b SHA512 855bc73c2cd93d890cd532db524eecc122d5f3eddf189efdbf34069d1c9bd7b7f98d5e593387fdc31b38fc8630f00b6b126f5c1a1f22dab57447e024b9015cf5
diff --git a/app-emulation/ski/metadata.xml b/app-emulation/ski/metadata.xml
index ab1c2fb53a4b..fab9a91d89c3 100644
--- a/app-emulation/ski/metadata.xml
+++ b/app-emulation/ski/metadata.xml
@@ -1,14 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>slyfox@gentoo.org</email>
- <name>Sergei Trofimovich</name>
- </maintainer>
+ <!-- maintainer-needed -->
<use>
- <flag name='debug'>enable extra binary emulation debugging via <pkg>sys-libs/binutils-libs</pkg></flag>
+ <flag name="debug">enable extra binary emulation debugging via <pkg>sys-libs/binutils-libs</pkg></flag>
</use>
<upstream>
<remote-id type="sourceforge">ski</remote-id>
+ <remote-id type="github">trofi/ski</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/ski/ski-1.3.2-r4.ebuild b/app-emulation/ski/ski-1.3.2-r4.ebuild
index ed996625c01d..381e6a334a78 100644
--- a/app-emulation/ski/ski-1.3.2-r4.ebuild
+++ b/app-emulation/ski/ski-1.3.2-r4.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -6,7 +6,7 @@ EAPI=7
inherit autotools
DESCRIPTION="ia64 instruction set simulator"
-HOMEPAGE="http://ski.sourceforge.net/ http://www.gelato.unsw.edu.au/IA64wiki/SkiSimulator"
+HOMEPAGE="http://ski.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
@@ -20,8 +20,8 @@ RDEPEND="dev-libs/libltdl:0=
debug? ( sys-libs/binutils-libs:0= )
motif? ( x11-libs/motif:0= )"
DEPEND="${RDEPEND}
- sys-devel/bison
- sys-devel/flex
+ app-alternatives/yacc
+ app-alternatives/lex
dev-util/gperf"
# games-sports/ski and app-emulation/ski both install 'ski' binary, bug #653110
diff --git a/app-emulation/ski/ski-1.4.0.ebuild b/app-emulation/ski/ski-1.4.0.ebuild
new file mode 100644
index 000000000000..1867d53df65f
--- /dev/null
+++ b/app-emulation/ski/ski-1.4.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="ia64 instruction set simulator"
+HOMEPAGE="https://github.com/trofi/ski http://ski.sourceforge.net/"
+SRC_URI="https://github.com/trofi/ski/releases/download/v${PV}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug motif"
+
+RDEPEND="
+ dev-libs/libltdl:=
+ sys-libs/ncurses:=
+ virtual/libelf
+ debug? ( sys-libs/binutils-libs:= )
+ motif? ( x11-libs/motif:= )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-util/gperf
+"
+# games-sports/ski and app-emulation/ski both install 'ski' binary, bug #653110
+RDEPEND="
+ ${RDEPEND}
+ !games-sports/ski
+"
+
+src_configure() {
+ # bug #854531
+ filter-lto
+
+ local myeconfargs=(
+ --without-gtk
+ $(use_with motif x11)
+ $(use_with debug bfd)
+ )
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/app-emulation/skopeo/Manifest b/app-emulation/skopeo/Manifest
deleted file mode 100644
index 4bb4f7d6b7c3..000000000000
--- a/app-emulation/skopeo/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST skopeo-0.1.41.tar.gz 4692408 BLAKE2B d5e99be0cb478065f1478beda355abc11c8f13ad8446251048502da1b1af38d407ec46d284e59d2018af5d1ca6a953ad6156a306e9bc1acbdb22b447fe17a59f SHA512 924af178eb9621395cfffcf51aa072886dc8c20746bce1599a503df8c54794e34184a1fc6fd9582b889c7c8efecf8cf192797bc8e208b90c71cca31bb970d8e9
-DIST skopeo-0.2.0.tar.gz 4295805 BLAKE2B 4ad13ff49bec56f3766e8d94f80fe8e22edb011b8862fb1249882e5695fa9260a6e2ce3d8345411ee7717cb92d4c1516268678f0884a62b02bfc8c9a554367ee SHA512 89d416110561dbe967860f752db607634a37b12adc376736de48264ec064abfed6b3db9ae195ffb3e9616dd6d65528660a23f2a5145d4674ed47cf443f17295a
-DIST skopeo-1.1.0.tar.gz 4516471 BLAKE2B 665acc925cd4f0a97919bbc03db37ca9b5636d110e4780b5053c4a2773b4e524dd879870262f1760aee7413f52c7614cc4adcd56f20881cfe20b2c9a3af09dc3 SHA512 84ce9d786a471cf7d2551ae884801255b0fe501a21d3d2bbbfe0bb9e9c771105b00cdcfc1bef2cee5bd5ce55d0fd30be49c87c09361be47854dbb5e8e20e13a5
-DIST skopeo-1.1.1.tar.gz 4622784 BLAKE2B 3f72a812409a48d960fe36028355cf7128dabbb466bbb20aae9d8dda81a35e018e5a3cf4d430beaf8834f5355d6293a01b7702e88713557afb58216bffd9f3e5 SHA512 7d38179d550a1461f58d2d590d69ea8445d2c1d399a7cf39fcbcf6aab64da056c6de0f772f28eb60aec04c379d2cf27cbc5678546005ea6c1e8c20b7fe5b8676
diff --git a/app-emulation/skopeo/metadata.xml b/app-emulation/skopeo/metadata.xml
deleted file mode 100644
index 6027ac0be078..000000000000
--- a/app-emulation/skopeo/metadata.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
- <use>
- <flag name="btrfs">Enables dependencies for the "btrfs" graph driver.</flag>
- </use>
-</pkgmetadata>
diff --git a/app-emulation/skopeo/skopeo-0.1.41.ebuild b/app-emulation/skopeo/skopeo-0.1.41.ebuild
deleted file mode 100644
index cc09b12134e3..000000000000
--- a/app-emulation/skopeo/skopeo-0.1.41.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-COMMIT=7d080ca
-inherit go-module bash-completion-r1
-
-DESCRIPTION="Command line utility foroperations on container images and image repositories"
-HOMEPAGE="https://github.com/containers/skopeo"
-SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-
-COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:=
- >=dev-libs/libassuan-2.4.3:=
- dev-libs/libgpg-error:=
- >=sys-fs/btrfs-progs-4.0.1
- >=sys-fs/lvm2-2.02.145:="
-DEPEND="${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS="containers_image_ostree_stub"
- set -- env -u GOCACHE -u XDG_CACHE_HOME \
- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \
- -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \
- -o skopeo ./cmd/skopeo
- echo "$@"
- "$@" || die
- cd docs || die
- for f in *.1.md; do
- go-md2man -in ${f} -out ${f%%.md} || die
- done
-}
-
-src_install() {
- dobin skopeo
- doman docs/*.1
- dobashcomp completions/bash/skopeo
- insinto /etc/containers
- newins default-policy.json policy.json
- insinto /etc/containers/registries.d
- doins default.yaml
- keepdir /var/lib/atomic/sigstore
- einstalldocs
-}
diff --git a/app-emulation/skopeo/skopeo-0.2.0.ebuild b/app-emulation/skopeo/skopeo-0.2.0.ebuild
deleted file mode 100644
index c6caefe701f8..000000000000
--- a/app-emulation/skopeo/skopeo-0.2.0.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-COMMIT=1119299c4b27e16680744e8bcf3b5362344a40d7
-inherit go-module bash-completion-r1
-
-DESCRIPTION="Command line utility foroperations on container images and image repositories"
-HOMEPAGE="https://github.com/containers/skopeo"
-SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="btrfs"
-
-COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:=
- >=dev-libs/libassuan-2.4.3:=
- dev-libs/libgpg-error:=
- btrfs? ( >=sys-fs/btrfs-progs-4.0.1 )
- >=sys-fs/lvm2-2.02.145:="
-DEPEND="${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS
- BUILDTAGS="containers_image_ostree_stub $(usex btrfs "" exclude_graphdriver_btrfs)"
- set -- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \
- -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \
- -o skopeo ./cmd/skopeo
- echo "$@"
- "$@" || die
- cd docs || die
- for f in *.1.md; do
- go-md2man -in ${f} -out ${f%%.md} || die
- done
-}
-
-src_install() {
- dobin skopeo
- doman docs/*.1
- dobashcomp completions/bash/skopeo
- insinto /etc/containers
- newins default-policy.json policy.json
- insinto /etc/containers/registries.d
- doins default.yaml
- keepdir /var/lib/atomic/sigstore
- einstalldocs
-}
diff --git a/app-emulation/skopeo/skopeo-1.1.0.ebuild b/app-emulation/skopeo/skopeo-1.1.0.ebuild
deleted file mode 100644
index 7a625ebb1c56..000000000000
--- a/app-emulation/skopeo/skopeo-1.1.0.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-COMMIT=63085f5bef1131aa9ec0907a5c8d66b67de7c4b2
-inherit go-module bash-completion-r1
-
-DESCRIPTION="Command line utility foroperations on container images and image repositories"
-HOMEPAGE="https://github.com/containers/skopeo"
-SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="btrfs"
-
-COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:=
- >=dev-libs/libassuan-2.4.3:=
- dev-libs/libgpg-error:=
- btrfs? ( >=sys-fs/btrfs-progs-4.0.1 )
- >=sys-fs/lvm2-2.02.145:="
-DEPEND="${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS
- BUILDTAGS="containers_image_ostree_stub $(usex btrfs "" exclude_graphdriver_btrfs)"
- set -- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \
- -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \
- -o skopeo ./cmd/skopeo
- echo "$@"
- "$@" || die
- cd docs || die
- for f in *.1.md; do
- go-md2man -in ${f} -out ${f%%.md} || die
- done
-}
-
-src_install() {
- dobin skopeo
- doman docs/*.1
- dobashcomp completions/bash/skopeo
- insinto /etc/containers
- newins default-policy.json policy.json
- insinto /etc/containers/registries.d
- doins default.yaml
- keepdir /var/lib/atomic/sigstore
- einstalldocs
-}
diff --git a/app-emulation/skopeo/skopeo-1.1.1.ebuild b/app-emulation/skopeo/skopeo-1.1.1.ebuild
deleted file mode 100644
index e0c555f2bb9c..000000000000
--- a/app-emulation/skopeo/skopeo-1.1.1.ebuild
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-COMMIT=67abbb3cefbdc876447583d5ea45e76bf441eba7
-inherit go-module bash-completion-r1
-
-DESCRIPTION="Command line utility foroperations on container images and image repositories"
-HOMEPAGE="https://github.com/containers/skopeo"
-SRC_URI="https://github.com/containers/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0 BSD BSD-2 CC-BY-SA-4.0 ISC MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64"
-IUSE="btrfs"
-
-COMMON_DEPEND=">=app-crypt/gpgme-1.5.5:=
- >=dev-libs/libassuan-2.4.3:=
- dev-libs/libgpg-error:=
- btrfs? ( >=sys-fs/btrfs-progs-4.0.1 )
- >=sys-fs/lvm2-2.02.145:="
-DEPEND="${COMMON_DEPEND}
- dev-go/go-md2man"
-RDEPEND="${COMMON_DEPEND}"
-
-RESTRICT="test"
-
-src_compile() {
- local BUILDTAGS
- BUILDTAGS="containers_image_ostree_stub $(usex btrfs "" exclude_graphdriver_btrfs)"
- set -- go build -mod=vendor -ldflags "-X main.gitCommit=${COMMIT}" \
- -gcflags "${GOGCFLAGS}" -tags "${BUILDTAGS}" \
- -o skopeo ./cmd/skopeo
- echo "$@"
- "$@" || die
- cd docs || die
- for f in *.1.md; do
- go-md2man -in ${f} -out ${f%%.md} || die
- done
-}
-
-src_install() {
- dobin skopeo
- doman docs/*.1
- dobashcomp completions/bash/skopeo
- insinto /etc/containers
- newins default-policy.json policy.json
- insinto /etc/containers/registries.d
- doins default.yaml
- keepdir /var/lib/atomic/sigstore
- einstalldocs
-}
diff --git a/app-emulation/slirp4netns/Manifest b/app-emulation/slirp4netns/Manifest
deleted file mode 100644
index 03bceefba8ae..000000000000
--- a/app-emulation/slirp4netns/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST slirp4netns-1.1.4.tar.gz 55346 BLAKE2B 86716ec9f42ae0087e9e7d142683f53b986275bce20b5ab0a33d0cdd63778adfeeadc86e5abb52d4a7e3e89baa0440c1a99bde920eeb2ed5293046e451d8ad01 SHA512 a6a26c55bdd4f50e668f7feeee3cd1d077e1ca9bd5bad5bbb8c47b15d366af4b1f2900241bedcd5a974a7597f43b17f970662271ec1987fbb6291c50470fa0a8
diff --git a/app-emulation/slirp4netns/metadata.xml b/app-emulation/slirp4netns/metadata.xml
deleted file mode 100644
index e7dbf873de1f..000000000000
--- a/app-emulation/slirp4netns/metadata.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>zmedico@gentoo.org</email>
- <name>Zac Medico</name>
- </maintainer>
- <maintainer type="person">
- <email>g.braeunlich@disroot.org</email>
- <name>Gerhard Bräunlich</name>
- </maintainer>
- <upstream>
- <remote-id type="github">rootless-containers/slirp4netns</remote-id>
- </upstream>
-</pkgmetadata>
diff --git a/app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild b/app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild
deleted file mode 100644
index ab7c659fa363..000000000000
--- a/app-emulation/slirp4netns/slirp4netns-1.1.4.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools
-
-DESCRIPTION="User-mode networking for unprivileged network namespaces"
-HOMEPAGE="https://github.com/rootless-containers/slirp4netns"
-SRC_URI="https://github.com/rootless-containers/slirp4netns/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-KEYWORDS="~amd64 ~arm64"
-LICENSE="GPL-2"
-SLOT="0"
-
-RDEPEND="
- dev-libs/glib:2=
- dev-libs/libpcre:=
- net-libs/libslirp:=
- sys-libs/libseccomp:=
- sys-libs/libcap:="
-
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-RESTRICT="test"
-
-src_prepare() {
- # Respect AR variable for bug 722162.
- sed -e 's|^AC_PROG_CC$|AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])\nAC_PROG_AR\n\0|' \
- -i configure.ac || die
- eautoreconf
- default
-}
-
-pkg_postinst() {
- if [[ -z ${REPLACING_VERSIONS} ]]; then
- elog "You need to have the tun kernel module loaded in order to have"
- elog "slirp4netns working"
- fi
-}
diff --git a/app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch b/app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch
new file mode 100644
index 000000000000..25bf382eee56
--- /dev/null
+++ b/app-emulation/softgun/files/softgun-0.22-fix-declarations-with-type-mismatches.patch
@@ -0,0 +1,148 @@
+Subject: [PATCH] fix declarations with type mismatches
+
+Type mismatches between declarations prevent the compile from using LTO
+
+Bug: https://bugs.gentoo.org/854534
+Upstream: https://sourceforge.net/p/softgun/patches/5/
+
+# Pascal Jäger <pascal.jaeger@leimstift.de> (2023-09-21)
+
+--- a/m16c/idecode_m16c.c
++++ b/m16c/idecode_m16c.c
+@@ -9,7 +9,7 @@
+ #include "sglib.h"
+
+ M16C_InstructionProc **iProcTab;
+-M16C_Instruction **iTab;
++M16C_Instruction **iTabM16C;
+
+ static M16C_Instruction instrlist[] = {
+ {0xfef0,0x76f0,"abs.size_dst",2 ,m16c_abs_size_dst},
+@@ -308,7 +308,7 @@ M16C_IDecoderNew()
+ int i,j;
+ int onecount1,onecount2;
+ iProcTab=(M16C_InstructionProc**)sg_calloc(0x10000*sizeof(M16C_InstructionProc*));
+- iTab=sg_calloc(0x10000*sizeof(M16C_Instruction*));
++ iTabM16C=sg_calloc(0x10000*sizeof(M16C_Instruction*));
+ fprintf(stderr,"Allocated M16C Instruction decoder table\n");
+ for(j=0;instrlist[j].proc;j++) {
+ M16C_Instruction *instr = &instrlist[j];
+@@ -327,8 +327,8 @@ M16C_IDecoderNew()
+ }
+ #endif
+ if((i & instr->mask) == instr->icode) {
+- if(iTab[i]) {
+- M16C_Instruction *instr2 = iTab[i];
++ if(iTabM16C[i]) {
++ M16C_Instruction *instr2 = iTabM16C[i];
+ specmask1 = instr->mask;
+ specmask2 = instr2->mask;
+ onecount1 = SGLib_OnecountU32(instr->mask);
+@@ -336,18 +336,18 @@ M16C_IDecoderNew()
+ fprintf(stderr,"Collission %s, %s\n",instr->name,instr2->name);
+ #if 0
+ if(instr->len > instr2->len) {
+- iTab[i] = instr;
++ iTabM16C[i] = instr;
+ iProcTab[i] = instr->proc;
+ } else if(instr2->len > instr->len) {
+- iTab[i] = instr2;
++ iTabM16C[i] = instr2;
+ iProcTab[i] = instr2->proc;
+ } else
+ #endif
+ if(onecount1 > onecount2) {
+- iTab[i] = instr;
++ iTabM16C[i] = instr;
+ iProcTab[i] = instr->proc;
+ } else if(onecount2 > onecount1) {
+- iTab[i] = instr2;
++ iTabM16C[i] = instr2;
+ iProcTab[i] = instr2->proc;
+ } else {
+ fprintf(stderr,"Can not decide %s, %s\n",instr->name,instr2->name);
+@@ -360,10 +360,10 @@ M16C_IDecoderNew()
+ specmask2 |= 0xff00;
+ }
+ if((specmask2 & specmask1) == specmask1) {
+- iTab[i] = instr2;
++ iTabM16C[i] = instr2;
+ iProcTab[i] = instr2->proc;
+ } else if((specmask2 & specmask1) == specmask2) {
+- iTab[i] = instr;
++ iTabM16C[i] = instr;
+ iProcTab[i] = instr->proc;
+ } else {
+ fprintf(stdout,"%04x: no instruction is more specific %s %s %04x %04x %d %d\n",i,instr->name,instr2->name,instr->icode,instr2->icode,instr->len,instr2->len);
+@@ -371,13 +371,13 @@ M16C_IDecoderNew()
+ }
+ #endif
+ } else {
+- iTab[i] = instr;
++ iTabM16C[i] = instr;
+ iProcTab[i] = instr->proc;
+ }
+ }
+ }
+- if(iTab[i] == NULL) {
+- iTab[i] = &undefined_instr;
++ if(iTabM16C[i] == NULL) {
++ iTabM16C[i] = &undefined_instr;
+ iProcTab[i] = (&undefined_instr)->proc;
+ }
+ }
+--- a/m16c/idecode_m16c.h
++++ b/m16c/idecode_m16c.h
+@@ -11,14 +11,14 @@ typedef struct M16C_Instruction {
+ } M16C_Instruction;
+
+ extern M16C_InstructionProc **iProcTab;
+-extern M16C_Instruction **iTab;
++extern M16C_Instruction **iTabM16C;
+
+ void M16C_IDecoderNew(void);
+
+ static inline M16C_Instruction *
+ M16C_InstructionFind(uint16_t icode)
+ {
+- return iTab[icode];
++ return iTabM16C[icode];
+ }
+ static inline M16C_InstructionProc *
+ M16C_InstructionProcFind(uint16_t icode)
+--- a/m16c/instructions_m16c.h
++++ b/m16c/instructions_m16c.h
+@@ -160,7 +160,7 @@ void m16c_smovb_size(void);
+ void m16c_smovf_size(void);
+ void m16c_sstr_size(void);
+ void m16c_stc_srcdst(void);
+-void m16c_stc_pcdst(void);
++void m16c_stc_pcdst(uint16_t icode);
+ void m16c_stctx_abs16abs20(void);
+ void m16c_ste_size_srcabs20(void);
+ void m16c_ste_size_srcdsp20(void);
+--- a/ppc/mmu_ppc.c
++++ b/ppc/mmu_ppc.c
+@@ -587,7 +587,7 @@ PPCMMU_Read8(uint32_t va) {
+ }
+
+ void
+-PPCMMU_Write64(uint32_t value,uint32_t va) {
++PPCMMU_Write64(uint64_t value,uint32_t va) {
+ uint32_t pa=translate_data(va);
+ Bus_Write64(value,pa);
+ }
+--- a/printer/decompress.c
++++ b/printer/decompress.c
+@@ -55,7 +55,7 @@ enum
+ eeCachedColor = 0x60
+ };
+
+-inline uint32_t get3pixel (uint8_t* src)
++static inline uint32_t get3pixel (uint8_t* src)
+ {
+ return (src[0] << 16) | (src[1] << 8) | (src[2]);
+ }
+--
+2.41.0
+
diff --git a/app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch b/app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch
new file mode 100644
index 000000000000..b65ddaf660f3
--- /dev/null
+++ b/app-emulation/softgun/files/softgun-0.22-fix-implicit-int.patch
@@ -0,0 +1,33 @@
+Subject: [PATCH] fix implicit int declarations in function params
+
+Clang16 does not allow implicit integer declarations by default.
+
+Bug: https://bugs.gentoo.org/882583
+Upstream: https://sourceforge.net/p/softgun/patches/5/
+
+# Pascal Jäger <pascal.jaeger@leimstift.de> (2023-09-21)
+--- a/arm/arm9cpu.h
++++ b/arm/arm9cpu.h
+@@ -356,7 +356,7 @@ ARM_PostRestartIdecoder() {
+ }
+
+ static inline void
+-ARM_SigDebugMode(value) {
++ARM_SigDebugMode(uint32_t value) {
+ if(value) {
+ gcpu.signals_raw |= ARM_SIG_DEBUGMODE;
+ } else {
+--- a/m32c/idecode_m32c.h
++++ b/m32c/idecode_m32c.h
+@@ -84,7 +84,7 @@ M32C_InstructionProcFind(uint16_t icode)
+ #endif
+
+ static inline int
+-M32C_InstructionLen(icode) {
++M32C_InstructionLen(uint32_t icode) {
+ M32C_Instruction *instr = M32C_InstructionFind(icode);
+ return instr->len;
+ }
+--
+2.41.0
+
diff --git a/app-emulation/softgun/metadata.xml b/app-emulation/softgun/metadata.xml
index a1d277727e3a..2ac14e132ac2 100644
--- a/app-emulation/softgun/metadata.xml
+++ b/app-emulation/softgun/metadata.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>arm@gentoo.org</email>
- <name>Gentoo Linux ARM Development</name>
+ <name>ARM architecture team</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">softgun</remote-id>
diff --git a/app-emulation/softgun/softgun-0.22-r1.ebuild b/app-emulation/softgun/softgun-0.22-r1.ebuild
new file mode 100644
index 000000000000..653521bd5aa3
--- /dev/null
+++ b/app-emulation/softgun/softgun-0.22-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="ARM software emulator"
+HOMEPAGE="https://softgun.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+DEPEND="media-libs/alsa-lib"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.22-make.patch
+ "${FILESDIR}"/${PN}-0.22-fix-implicit-int.patch
+ "${FILESDIR}"/${PN}-0.22-fix-declarations-with-type-mismatches.patch
+)
+
+src_configure() {
+ append-cflags -fcommon
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dodir /usr/bin
+ emake install prefix="${D}/usr"
+ dodoc README configs/*.sg
+}
diff --git a/app-emulation/softgun/softgun-0.22.ebuild b/app-emulation/softgun/softgun-0.22.ebuild
index 15758fcf1687..adba0132e20a 100644
--- a/app-emulation/softgun/softgun-0.22.ebuild
+++ b/app-emulation/softgun/softgun-0.22.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
+EAPI=7
-inherit toolchain-funcs eutils
+inherit flag-o-matic toolchain-funcs
DESCRIPTION="ARM software emulator"
HOMEPAGE="http://softgun.sourceforge.net/"
@@ -12,13 +12,15 @@ SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~x86"
-IUSE=""
DEPEND="media-libs/alsa-lib"
-RDEPEND=""
+RDEPEND="${DEPEND}"
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-0.22-make.patch
+PATCHES=( "${FILESDIR}"/${PN}-0.22-make.patch )
+
+src_configure() {
+ append-cflags -fcommon
+ default
}
src_compile() {
diff --git a/app-emulation/spectemu/metadata.xml b/app-emulation/spectemu/metadata.xml
index 6f49eba8f496..85e4ed814fa2 100644
--- a/app-emulation/spectemu/metadata.xml
+++ b/app-emulation/spectemu/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
</pkgmetadata>
diff --git a/app-emulation/spice-html5/Manifest b/app-emulation/spice-html5/Manifest
deleted file mode 100644
index b206c42b4f8a..000000000000
--- a/app-emulation/spice-html5/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST spice-html5-spice-html5-0.2.1.tar.gz 486871 BLAKE2B 4b44ad772ab5abf13e8d3fe7c651169b340c8978f4163b9b679046efaa554f86d5919d154f16262ea28ddb512ac55ea7b6651ae63f64cf6b69033d8306191dc3 SHA512 c6e17aa465da1a0b882184bb19f2560f43fd3b345fdc00ec71774c7aec37c3453fd87b2448202011e217dda21b602d20dd4d552d49d9a52b64cb91aff092eff7
-DIST spice-html5-spice-html5-0.2.2.tar.gz 487210 BLAKE2B 125e5c2b36970c787897395eb56f71f90067ca5e6a80da4981f26ed3083b3cef4aaa40d2bb9767e775f9739eb15182c2cea874305e6a247c56be00e037bee6d6 SHA512 2a486552055762e44f54a7454d97e49d8f0d92a476b768f8724e6dfb6796851bd143a2c5b74fc2cff0bcec1f86b919428562f82e4b8de51ff95dadcc8b1a8133
diff --git a/app-emulation/spice-html5/metadata.xml b/app-emulation/spice-html5/metadata.xml
deleted file mode 100644
index 4567d53b9b82..000000000000
--- a/app-emulation/spice-html5/metadata.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>prometheanfire@gentoo.org</email>
- <name>Matthew Thode</name>
- </maintainer>
- <maintainer type="project">
- <email>openstack@gentoo.org</email>
- <name>Openstack</name>
- </maintainer>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/spice-html5/spice-html5-0.2.1.ebuild b/app-emulation/spice-html5/spice-html5-0.2.1.ebuild
deleted file mode 100644
index f5632403f2a1..000000000000
--- a/app-emulation/spice-html5/spice-html5-0.2.1.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Spice Javascript client"
-HOMEPAGE="https://gitlab.freedesktop.org/spice/spice-html5"
-SRC_URI="https://gitlab.freedesktop.org/spice/${PN}/-/archive/${P}/${PN}-${P}.tar.gz"
-S="${WORKDIR}/${PN}-${P}"
-
-LICENSE="LGPL-3"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-BDEPEND=""
-
-# no compiling
-src_compile() {
- true
-}
-
-src_install() {
- insinto /usr/share/spice-html5
- doins -r src apache.conf.sample spice.css spice.html spice_auto.html
-}
diff --git a/app-emulation/spice-html5/spice-html5-0.2.2.ebuild b/app-emulation/spice-html5/spice-html5-0.2.2.ebuild
deleted file mode 100644
index b14ee2cb65c1..000000000000
--- a/app-emulation/spice-html5/spice-html5-0.2.2.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2019-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Spice Javascript client"
-HOMEPAGE="https://gitlab.freedesktop.org/spice/spice-html5"
-SRC_URI="https://gitlab.freedesktop.org/spice/${PN}/-/archive/${P}/${PN}-${P}.tar.gz"
-S="${WORKDIR}/${PN}-${P}"
-
-LICENSE="LGPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-BDEPEND=""
-
-# no compiling
-src_compile() {
- true
-}
-
-src_install() {
- insinto /usr/share/spice-html5
- doins -r src apache.conf.sample spice.css spice.html spice_auto.html
-}
diff --git a/app-emulation/spice-protocol/Manifest b/app-emulation/spice-protocol/Manifest
index 2b4cea0ccb8f..b8a9464a18fa 100644
--- a/app-emulation/spice-protocol/Manifest
+++ b/app-emulation/spice-protocol/Manifest
@@ -1 +1,3 @@
DIST spice-protocol-0.14.1.tar.bz2 73444 BLAKE2B 12050c38ee3d24814b57a340a88423352edae6412b5a20e27d59b7235e753f51aaf757f7e9e6ce702d0b0c0afeadfde7f3937725ae4715ae4dc4da20ee7fd663 SHA512 88b0e652564a1f826ee6d3c165ab05c40d13f366567db3840805f03d433d13d7f722225219c26759770d2cde33221fe6d97528521d0eb14bc069cd7ce9af8482
+DIST spice-protocol-0.14.3.tar.xz 22224 BLAKE2B 32e69c56ea78e21cf2ff9474e34908eababc1dd9667cd8be24c973e9ff006e1a14f55dd23ab16c40d7bcb5bd7f00392edccdd3512218928787ad9162a6519f1c SHA512 9e35fd0d9be14074a482bdb20fe6954e5f0a616d0ad60da63a065435df2b169ec134a95d5756df73e2606c7497c9bf0427023d4e5ebfbb1abb181cf8020879a6
+DIST spice-protocol-0.14.4.tar.xz 23540 BLAKE2B a36ea56f000fbbfd87f3a318ff932332116f5229d89cbf19be53e7605aef52cc650d453982d23d1f2decb7ef1273758b40022dc1dada49f40cd6f75e55f014d6 SHA512 c55677fd6da37303487f8245388cbd555715c736e15bca4a305c4374feafc655b74e549ea401949d72e17b2e6ad76f16c5add3963008a18a1fefedd4b4a001c1
diff --git a/app-emulation/spice-protocol/metadata.xml b/app-emulation/spice-protocol/metadata.xml
index 121cd46cb5e1..cfac6f8ac4ff 100644
--- a/app-emulation/spice-protocol/metadata.xml
+++ b/app-emulation/spice-protocol/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild
index 4c27cafcadab..f62cd0b98d8c 100644
--- a/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-0.14.1.ebuild
@@ -9,7 +9,7 @@ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ~ppc64 ~sparc x86"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ppc64 ~sparc x86"
IUSE=""
DEPEND=""
diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild
new file mode 100644
index 000000000000..2d8171ddeca0
--- /dev/null
+++ b/app-emulation/spice-protocol/spice-protocol-0.14.3.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson
+
+DESCRIPTION="Headers defining the SPICE protocol"
+HOMEPAGE="https://www.spice-space.org/"
+SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~ppc ppc64 ~riscv ~sparc x86"
diff --git a/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild b/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild
new file mode 100644
index 000000000000..3bd2990219d2
--- /dev/null
+++ b/app-emulation/spice-protocol/spice-protocol-0.14.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+if [[ ${PV} = *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice-protocol.git"
+else
+ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz"
+ KEYWORDS="~alpha amd64 ~arm arm64 ~ia64 ~loong ~ppc ppc64 ~riscv ~sparc x86"
+fi
+
+DESCRIPTION="Headers defining the SPICE protocol"
+HOMEPAGE="https://spice-space.org/"
+
+LICENSE="BSD"
+SLOT="0"
diff --git a/app-emulation/spice-protocol/spice-protocol-9999.ebuild b/app-emulation/spice-protocol/spice-protocol-9999.ebuild
index a2dc0bc3006d..8908284a7192 100644
--- a/app-emulation/spice-protocol/spice-protocol-9999.ebuild
+++ b/app-emulation/spice-protocol/spice-protocol-9999.ebuild
@@ -1,18 +1,16 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
inherit meson
if [[ ${PV} = *9999* ]]; then
inherit git-r3
EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice-protocol.git"
- SRC_URI=""
- KEYWORDS=""
else
- SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
- KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.xz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
DESCRIPTION="Headers defining the SPICE protocol"
@@ -20,7 +18,3 @@ HOMEPAGE="https://spice-space.org/"
LICENSE="BSD"
SLOT="0"
-IUSE=""
-
-DEPEND=""
-RDEPEND="${DEPEND}"
diff --git a/app-emulation/spice-vdagent/Manifest b/app-emulation/spice-vdagent/Manifest
index d62998b6b3ac..49738685af14 100644
--- a/app-emulation/spice-vdagent/Manifest
+++ b/app-emulation/spice-vdagent/Manifest
@@ -1,2 +1 @@
-DIST spice-vdagent-0.19.0.tar.bz2 151356 BLAKE2B b7a99a7205d955b27edfe483746e3f267a6e0b7885c4b8146ba42d99b581cf4e1748b503a37a3d6b66623ef2515b42756f2e6a5a4775d56def7aa396bd0dfb4f SHA512 f5056dfe66df3ee8205549be22bbc8c17d2196c8448eda97f01659ff30c34d9929f330767d7fafec557dc5f7fb9b65eaf85973193b38df774042de9b72d6e60d
-DIST spice-vdagent-0.20.0.tar.bz2 152510 BLAKE2B b00caadab385f4208bd18b78a006831953f99387e55fd86226efffdf537426627f02bb46708173b700eecd21f598a0db94f454c5252b0f4bfb93c30b39d69d16 SHA512 a6288e056645c071834f9ce5800669cb64e0f86a5efeb8eec61ac1e11f1fd56f7da8ea19b28a94c88741d794a0290fac9bcf74d45bcef271c2c5abfb2573a8e1
+DIST spice-vdagent-0.22.1.tar.bz2 165560 BLAKE2B 4fd4318592d20d305d515c65d7491b90ac79bcc7f5bdfafd9df7858bdce24aa57c79f2121bbf9cbadec8e6297890f4b8598b9abcadcce5a9f39712b96deaa396 SHA512 5a4d2661145f33a0583880a128d925b15ca5aec05df83271c80f8baa0fcdd28fab0242301bc38443ccddf70fbdcfd76b5d30bb5a6b4b7c895c3cea0eb38bdf92
diff --git a/app-emulation/spice-vdagent/metadata.xml b/app-emulation/spice-vdagent/metadata.xml
index 121cd46cb5e1..cfac6f8ac4ff 100644
--- a/app-emulation/spice-vdagent/metadata.xml
+++ b/app-emulation/spice-vdagent/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild
deleted file mode 100644
index 81ddd00bd633..000000000000
--- a/app-emulation/spice-vdagent/spice-vdagent-0.19.0-r1.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools linux-info
-
-DESCRIPTION="SPICE VD Linux Guest Agent"
-HOMEPAGE="https://www.spice-space.org/"
-SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="gtk selinux systemd"
-
-CDEPEND="
- dev-libs/glib:2
- >=app-emulation/spice-protocol-0.14.0
- media-libs/alsa-lib
- >=x11-libs/libpciaccess-0.10
- x11-libs/libdrm
- x11-libs/libXfixes
- x11-libs/libXrandr
- x11-libs/libX11
- x11-libs/libXinerama
- gtk? ( x11-libs/gtk+:3 )
- systemd? ( sys-apps/systemd )"
-DEPEND="${CDEPEND}
- virtual/pkgconfig"
-RDEPEND="${CDEPEND}
- selinux? ( sec-policy/selinux-vdagent )"
-
-CONFIG_CHECK="~INPUT_UINPUT ~VIRTIO_CONSOLE"
-ERROR_INPUT_UINPUT="User level input support (INPUT_UINPUT) is required"
-ERROR_VIRTIO_CONSOLE="VirtIO console/serial device support (VIRTIO_CONSOLE) is required"
-
-src_configure() {
- local opt=()
- if use systemd; then
- opt+=( --with-session-info=systemd )
- else
- opt+=( --with-session-info=none )
- fi
-
- econf \
- --with-init-script=systemd \
- --localstatedir="${EPREFIX}"/var \
- $(use_with gtk) \
- "${opt[@]}"
-}
-
-src_install() {
- default
-
- cd "${ED}" && rmdir -p var/run/spice-vdagentd || die
-
- keepdir /var/log/spice-vdagentd
-
- newinitd "${FILESDIR}/${PN}.initd-4" "${PN}"
- newconfd "${FILESDIR}/${PN}.confd-2" "${PN}"
-}
diff --git a/app-emulation/spice-vdagent/spice-vdagent-0.20.0.ebuild b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
index 3365574e5bb4..c58c80ea1479 100644
--- a/app-emulation/spice-vdagent/spice-vdagent-0.20.0.ebuild
+++ b/app-emulation/spice-vdagent/spice-vdagent-0.22.1.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit autotools linux-info
+inherit linux-info tmpfiles udev
DESCRIPTION="SPICE VD Linux Guest Agent"
HOMEPAGE="https://www.spice-space.org/"
@@ -11,25 +11,27 @@ SRC_URI="https://www.spice-space.org/download/releases/${P}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="~amd64 ~x86"
+KEYWORDS="amd64 ~arm64 ~loong x86"
IUSE="gtk selinux systemd"
-CDEPEND="
+COMMON_DEPEND="
dev-libs/glib:2
>=app-emulation/spice-protocol-0.14.0
media-libs/alsa-lib
- >=x11-libs/libpciaccess-0.10
+ sys-apps/dbus
x11-libs/libdrm
+ >=x11-libs/libpciaccess-0.10
x11-libs/libXfixes
x11-libs/libXrandr
x11-libs/libX11
x11-libs/libXinerama
gtk? ( x11-libs/gtk+:3 )
systemd? ( sys-apps/systemd )"
-DEPEND="${CDEPEND}
- virtual/pkgconfig"
-RDEPEND="${CDEPEND}
+DEPEND="${COMMON_DEPEND}
+ x11-base/xorg-proto"
+RDEPEND="${COMMON_DEPEND}
selinux? ( sec-policy/selinux-vdagent )"
+BDEPEND="virtual/pkgconfig"
CONFIG_CHECK="~INPUT_UINPUT ~VIRTIO_CONSOLE"
ERROR_INPUT_UINPUT="User level input support (INPUT_UINPUT) is required"
@@ -53,10 +55,19 @@ src_configure() {
src_install() {
default
- cd "${ED}" && rmdir -p var/run/spice-vdagentd || die
+ rmdir "${ED}"/var/run/spice-vdagentd || die
keepdir /var/log/spice-vdagentd
newinitd "${FILESDIR}/${PN}.initd-4" "${PN}"
newconfd "${FILESDIR}/${PN}.confd-2" "${PN}"
}
+
+pkg_postinst() {
+ udev_reload
+ tmpfiles_process spice-vdagentd.conf
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/spice/Manifest b/app-emulation/spice/Manifest
index 7b50d54451c4..c75ff310017c 100644
--- a/app-emulation/spice/Manifest
+++ b/app-emulation/spice/Manifest
@@ -1 +1,2 @@
-DIST spice-0.14.3.tar.bz2 1504304 BLAKE2B be655e1d4c48dae29903ab8e0dc52da63723e3252052afccc9587065531f28c8af7dbab4c585093f26d98f2273c6e734a553c18d4779a9f4464334ae1764f682 SHA512 9ecdc455ff25c71ac1fe6c576654b51efbfb860110bd6828065d23f7462d5c5cac772074d1a40f033386258d970b77275b2007bcfdffb23fdff2137154ea46e4
+DIST spice-0.15.1.tar.bz2 1623290 BLAKE2B 19ddb3cac91be07a4a358ed89a5e4d1a5c406a9831b8c8a518764055354ecf6e09d129ae03ba65d876669da72f2cbf0c307261564097f60951711e9852eebb69 SHA512 362ab2f0b483911830693834515e1d331a6b929c5c63fd4522e843c42bbb7d8a52510d60f5f17d175dd2617c9621630f6a81f3ff7dce11dc28e6fb135e60fa86
+DIST spice-0.15.2.tar.bz2 1663326 BLAKE2B 00f5393ac409590b8fe0203251b811a4fe6dca16e644a30dd8165d57ff28cbef3b2f9c2a92ff7d2f6c8092bbef4f89a4e85ef9228cc8c03b0a163ffa3afaf9f6 SHA512 c8f273b9e97ef38a03b331f7d32c5f0a09d540523fe626568c845152cbd22273a92b3a08bc13fa2e061b913ad16ceb7cbddf142655cd9cdcd8eb5f646fa6aa26
diff --git a/app-emulation/spice/metadata.xml b/app-emulation/spice/metadata.xml
index ee309bddf45f..ce2f1efd9185 100644
--- a/app-emulation/spice/metadata.xml
+++ b/app-emulation/spice/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
@@ -8,4 +8,7 @@
<use>
<flag name="smartcard">Enable smartcard remoting using <pkg>app-emulation/libcacard</pkg></flag>
</use>
+ <upstream>
+ <remote-id type="freedesktop-gitlab">spice/spice</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/spice/spice-0.14.3.ebuild b/app-emulation/spice/spice-0.15.1-r1.ebuild
index cfce2f9d50a5..3a1d525ff2a6 100644
--- a/app-emulation/spice/spice-0.14.3.ebuild
+++ b/app-emulation/spice/spice-0.15.1-r1.ebuild
@@ -1,9 +1,10 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_COMPAT=( python3_{10..12} )
+# Port to meson once https://gitlab.freedesktop.org/spice/spice/-/issues/75 is fixed
inherit autotools python-any-r1 readme.gentoo-r1 xdg-utils
DESCRIPTION="SPICE server"
@@ -12,30 +13,32 @@ SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS="amd64 arm64 ~ppc64 x86"
-IUSE="libressl lz4 sasl smartcard static-libs gstreamer"
+KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv x86"
+IUSE="gstreamer lz4 sasl smartcard static-libs test"
+
+RESTRICT="!test? ( test )"
# the libspice-server only uses the headers of libcacard
-RDEPEND="
- dev-lang/orc[static-libs(+)?]
- >=dev-libs/glib-2.22:2[static-libs(+)?]
+RDEPEND="dev-lang/orc[static-libs(+)?]
+ >=dev-libs/glib-2.38:2[static-libs(+)?]
+ dev-libs/openssl:0=[static-libs(+)?]
media-libs/opus[static-libs(+)?]
+ media-libs/libjpeg-turbo:0=[static-libs(+)?]
sys-libs/zlib[static-libs(+)?]
- virtual/jpeg:0=[static-libs(+)?]
>=x11-libs/pixman-0.17.7[static-libs(+)?]
- !libressl? ( dev-libs/openssl:0=[static-libs(+)?] )
- libressl? ( dev-libs/libressl:0=[static-libs(+)?] )
lz4? ( app-arch/lz4:0=[static-libs(+)?] )
- smartcard? ( >=app-emulation/libcacard-0.1.2 )
+ smartcard? ( >=app-emulation/libcacard-2.5.1 )
sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] )
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
)"
DEPEND="${RDEPEND}
- >=app-emulation/spice-protocol-0.14.0
- smartcard? ( app-emulation/qemu[smartcard] )"
+ >=app-emulation/spice-protocol-0.14.3
+ smartcard? ( app-emulation/qemu[smartcard] )
+ test? ( net-libs/glib-networking )"
BDEPEND="${PYTHON_DEPS}
+ dev-build/autoconf-archive
virtual/pkgconfig
$(python_gen_any_dep '
>=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]
@@ -43,8 +46,8 @@ BDEPEND="${PYTHON_DEPS}
')"
python_check_deps() {
- has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
- has_version -b "dev-python/six[${PYTHON_USEDEP}]"
+ python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
+ python_has_version -b "dev-python/six[${PYTHON_USEDEP}]"
}
pkg_setup() {
@@ -65,15 +68,17 @@ src_configure() {
xdg_environment_reset
- local myconf="
+ local myconf=(
$(use_enable static-libs static)
$(use_enable lz4)
$(use_with sasl)
$(use_enable smartcard)
+ $(use_enable test tests)
--enable-gstreamer=$(usex gstreamer "1.0" "no")
--disable-celt051
- "
- econf ${myconf}
+ )
+
+ econf "${myconf[@]}"
}
src_compile() {
diff --git a/app-emulation/spice/spice-0.15.2.ebuild b/app-emulation/spice/spice-0.15.2.ebuild
new file mode 100644
index 000000000000..69caa30dafc1
--- /dev/null
+++ b/app-emulation/spice/spice-0.15.2.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit meson python-any-r1 readme.gentoo-r1 xdg-utils
+
+DESCRIPTION="SPICE server"
+HOMEPAGE="https://www.spice-space.org/"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice.git"
+ inherit git-r3
+
+ DEPEND="~app-emulation/spice-protocol-9999"
+else
+ SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2"
+ KEYWORDS="amd64 arm64 ~loong ppc64 ~riscv x86"
+fi
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+IUSE="gstreamer lz4 sasl smartcard static-libs test"
+RESTRICT="!test? ( test )"
+
+# The libspice-server only uses the headers of libcacard
+RDEPEND="
+ dev-lang/orc[static-libs(+)?]
+ >=dev-libs/glib-2.38:2[static-libs(+)?]
+ dev-libs/openssl:0=[static-libs(+)?]
+ media-libs/opus[static-libs(+)?]
+ media-libs/libjpeg-turbo:0=[static-libs(+)?]
+ sys-libs/zlib[static-libs(+)?]
+ >=x11-libs/pixman-0.17.7[static-libs(+)?]
+ lz4? ( app-arch/lz4:0=[static-libs(+)?] )
+ smartcard? ( >=app-emulation/libcacard-2.5.1 )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+"
+DEPEND+="
+ ${RDEPEND}
+ >=app-emulation/spice-protocol-0.14.3
+ smartcard? ( app-emulation/qemu[smartcard] )
+ test? ( net-libs/glib-networking )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glib-utils
+ virtual/pkgconfig
+ $(python_gen_any_dep '
+ >=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ ')
+"
+
+python_check_deps() {
+ python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
+ python_has_version -b "dev-python/six[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && python-any-r1_pkg_setup
+}
+
+src_configure() {
+ # Prevent sandbox violations, bug #586560
+ # https://bugzilla.gnome.org/show_bug.cgi?id=744134
+ # https://bugzilla.gnome.org/show_bug.cgi?id=744135
+ use gstreamer && addpredict /dev
+
+ xdg_environment_reset
+
+ local emesonargs=(
+ -Ddefault_library=$(usex static-libs both shared)
+ -Dgstreamer=$(usex gstreamer 1.0 no)
+ -Dopus=enabled
+ -Dmanual=false
+ $(meson_use lz4)
+ $(meson_use sasl)
+ $(meson_feature smartcard)
+ $(meson_use test tests)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/app-emulation/spice/spice-9999.ebuild b/app-emulation/spice/spice-9999.ebuild
index 57eb7a47e64d..22dfed00d335 100644
--- a/app-emulation/spice/spice-9999.ebuild
+++ b/app-emulation/spice/spice-9999.ebuild
@@ -1,57 +1,64 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
-inherit git-r3 meson python-any-r1 readme.gentoo-r1 xdg-utils
+PYTHON_COMPAT=( python3_{10..12} )
+inherit meson python-any-r1 readme.gentoo-r1 xdg-utils
DESCRIPTION="SPICE server"
HOMEPAGE="https://www.spice-space.org/"
-SRC_URI=""
-EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice.git"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://anongit.freedesktop.org/git/spice/spice.git"
+ inherit git-r3
+
+ DEPEND="~app-emulation/spice-protocol-9999"
+else
+ SRC_URI="https://www.spice-space.org/download/releases/spice-server/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~arm64 ~loong ~ppc64 ~riscv ~x86"
+fi
LICENSE="LGPL-2.1"
SLOT="0"
-KEYWORDS=""
-IUSE="gstreamer libressl lz4 opus sasl smartcard static-libs"
+IUSE="gstreamer lz4 sasl smartcard static-libs test"
+RESTRICT="!test? ( test )"
-# the libspice-server only uses the headers of libcacard
+# The libspice-server only uses the headers of libcacard
RDEPEND="
- dev-lang/orc
- >=dev-libs/glib-2.22:2
- sys-libs/zlib
- virtual/jpeg:0=
- >=x11-libs/pixman-0.17.7
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- lz4? ( app-arch/lz4:0= )
- opus? ( media-libs/opus )
- smartcard? ( >=app-emulation/libcacard-0.1.2 )
- sasl? ( dev-libs/cyrus-sasl )
+ dev-lang/orc[static-libs(+)?]
+ >=dev-libs/glib-2.38:2[static-libs(+)?]
+ dev-libs/openssl:0=[static-libs(+)?]
+ media-libs/opus[static-libs(+)?]
+ media-libs/libjpeg-turbo:0=[static-libs(+)?]
+ sys-libs/zlib[static-libs(+)?]
+ >=x11-libs/pixman-0.17.7[static-libs(+)?]
+ lz4? ( app-arch/lz4:0=[static-libs(+)?] )
+ smartcard? ( >=app-emulation/libcacard-2.5.1 )
+ sasl? ( dev-libs/cyrus-sasl[static-libs(+)?] )
gstreamer? (
media-libs/gstreamer:1.0
media-libs/gst-plugins-base:1.0
- )"
-DEPEND="${RDEPEND}
- ~app-emulation/spice-protocol-9999
- smartcard? ( app-emulation/qemu[smartcard] )"
-BDEPEND="${PYTHON_DEPS}
+ )
+"
+DEPEND+="
+ ${RDEPEND}
+ >=app-emulation/spice-protocol-0.14.3
+ smartcard? ( app-emulation/qemu[smartcard] )
+ test? ( net-libs/glib-networking )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-util/glib-utils
virtual/pkgconfig
$(python_gen_any_dep '
>=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]
dev-python/six[${PYTHON_USEDEP}]
- ')"
-
-DOCS=(
- AUTHORS
- CHANGELOG.md
- README
-)
+ ')
+"
python_check_deps() {
- has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
- has_version -b "dev-python/six[${PYTHON_USEDEP}]"
+ python_has_version -b ">=dev-python/pyparsing-1.5.6-r2[${PYTHON_USEDEP}]"
+ python_has_version -b "dev-python/six[${PYTHON_USEDEP}]"
}
pkg_setup() {
@@ -69,28 +76,19 @@ src_configure() {
local emesonargs=(
-Ddefault_library=$(usex static-libs both shared)
-Dgstreamer=$(usex gstreamer 1.0 no)
+ -Dopus=enabled
+ -Dmanual=false
$(meson_use lz4)
$(meson_use sasl)
- $(meson_feature opus)
$(meson_feature smartcard)
- -Dmanual=false
- -Dtests=false
+ $(meson_use test tests)
)
- meson_src_configure
-}
-src_compile() {
- # Prevent sandbox violations, bug #586560
- # https://bugzilla.gnome.org/show_bug.cgi?id=744134
- # https://bugzilla.gnome.org/show_bug.cgi?id=744135
- use gstreamer && addpredict /dev
-
- meson_src_compile
+ meson_src_configure
}
src_install() {
meson_src_install
- einstalldocs
readme.gentoo_create_doc
}
diff --git a/app-emulation/spim/metadata.xml b/app-emulation/spim/metadata.xml
index 9d9f29c5239c..956e906311b4 100644
--- a/app-emulation/spim/metadata.xml
+++ b/app-emulation/spim/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<longdescription lang="en">
diff --git a/app-emulation/spim/spim-8.0-r3.ebuild b/app-emulation/spim/spim-8.0-r3.ebuild
index 2717b50ee23c..a011ed2f09c8 100644
--- a/app-emulation/spim/spim-8.0-r3.ebuild
+++ b/app-emulation/spim/spim-8.0-r3.ebuild
@@ -1,8 +1,9 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
-inherit toolchain-funcs
+EAPI=7
+
+inherit desktop toolchain-funcs
DESCRIPTION="MIPS Simulator"
HOMEPAGE="http://spimsimulator.sourceforge.net/"
@@ -10,29 +11,32 @@ SRC_URI="http://www.cs.wisc.edu/~larus/SPIM/${P}.tar.gz"
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+KEYWORDS="amd64 ~ppc ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="doc X"
RDEPEND="
X? (
media-fonts/font-adobe-100dpi
- x11-libs/libXaw )
-"
-DEPEND="${RDEPEND}
- X? (
- x11-base/xorg-proto
- x11-misc/imake
+ x11-libs/libXaw
)
- sys-devel/bison
"
+DEPEND="
+ ${RDEPEND}
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ app-alternatives/yacc
+ X? ( x11-misc/imake )
+"
+
# test hangs forever, disabling it
RESTRICT="test"
src_prepare() {
- # fix bugs 240005 and 243588
+ # fix bug #240005 and bug #243588
eapply "${FILESDIR}/${P}-r1-respect_env.patch"
- #fix bug 330389
+ # fix bug #330389
sed -i -e 's:-12-\*-75-:-14-\*-100-:g' xspim/xspim.c || die
default
@@ -56,6 +60,10 @@ src_compile() {
fi
}
+src_test() {
+ emake -C spim test
+}
+
src_install() {
emake DESTDIR="${ED}" -C spim install
newman Documentation/spim.man spim.1
@@ -74,7 +82,3 @@ src_install() {
dodoc Documentation/TeX/{cycle,spim}.ps
fi
}
-
-src_test() {
- emake -C spim test
-}
diff --git a/app-emulation/uade/metadata.xml b/app-emulation/uade/metadata.xml
index 78274e0fa550..b289c0683468 100644
--- a/app-emulation/uade/metadata.xml
+++ b/app-emulation/uade/metadata.xml
@@ -1,8 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="project">
- <email>games@gentoo.org</email>
- <name>Gentoo Games Project</name>
-</maintainer>
+ <maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+ <use>
+ <flag name="fuse">Enable <pkg>sys-fs/fuse</pkg> uadefs frontend for on-the-fly WAV conversion</flag>
+ </use>
+ <upstream>
+ <remote-id type="gitlab">uade-music-player/uade</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/uade/uade-2.13-r1.ebuild b/app-emulation/uade/uade-2.13-r1.ebuild
deleted file mode 100644
index 28ceda581e45..000000000000
--- a/app-emulation/uade/uade-2.13-r1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit toolchain-funcs
-
-DESCRIPTION="Unix Amiga Delitracker Emulator - plays old Amiga tunes through UAE emulation"
-HOMEPAGE="https://zakalwe.fi/uade"
-SRC_URI="https://zakalwe.fi/uade/uade2/${P}.tar.bz2"
-
-LICENSE="GPL-2+ LGPL-2+"
-SLOT="0"
-KEYWORDS="amd64 ppc x86"
-
-RDEPEND="media-libs/libao"
-DEPEND="${RDEPEND}"
-BDEPEND="virtual/pkgconfig"
-
-DOCS=( AUTHORS ChangeLog doc/BUGS doc/PLANS )
-
-PATCHES=( "${FILESDIR}"/${P}-configure.patch )
-
-src_configure() {
- tc-export CC
-
- ./configure \
- --prefix="${EPREFIX}"/usr \
- --package-prefix="${D}" \
- --libdir="${EPREFIX}/usr/$(get_libdir)" \
- --with-text-scope \
- --without-xmms \
- --without-audacious || die
-}
-
-src_install() {
- default
- doman doc/uade123.1
-}
diff --git a/app-emulation/uade/uade-2.13-r2.ebuild b/app-emulation/uade/uade-2.13-r2.ebuild
new file mode 100644
index 000000000000..bdefc261f02d
--- /dev/null
+++ b/app-emulation/uade/uade-2.13-r2.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Unix Amiga Delitracker Emulator - plays old Amiga tunes through UAE emulation"
+HOMEPAGE="https://zakalwe.fi/uade"
+SRC_URI="https://zakalwe.fi/uade/uade2/${P}.tar.bz2"
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 x86"
+IUSE="fuse"
+
+RDEPEND="
+ media-libs/libao
+ fuse? ( sys-fs/fuse:0 )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-configure.patch
+)
+
+DOCS=( AUTHORS ChangeLog doc/BUGS doc/PLANS )
+
+src_prepare() {
+ default
+
+ # needed to avoid ${D} VariableScope undefined behavior in src_configure
+ find . -name Makefile.in -exec sed -i 's|{PACKAGEPREFIX}|$(DESTDIR)|' {} + || die
+}
+
+src_configure() {
+ tc-export CC
+
+ # not autotools generated
+ local configure=(
+ ./configure
+ --prefix="${EPREFIX}"/usr
+ --libdir="${EPREFIX}"/usr/$(get_libdir)
+ --with-text-scope
+ --without-audacious
+ --without-xmms
+ $(use_with fuse uadefs)
+ ${EXTRA_ECONF}
+ )
+ echo ${configure[*]}
+ "${configure[@]}" || die
+}
diff --git a/app-emulation/umoci/Manifest b/app-emulation/umoci/Manifest
deleted file mode 100644
index 826a5a188950..000000000000
--- a/app-emulation/umoci/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST umoci-0.2.1.tar.gz 241472 BLAKE2B 2802fcb14e717a6460f9dc06226d3b430cce2181838a32064e86987131317947a4b117e91d11f981fa1df027804dbf2d92472b5c21749783b4f2ed371c699e7e SHA512 dfd7bbd1afd232400a9bffaf6c074d28ce4ce696c9f3c70bd436cc41b96928415d0793d57b1cf34dd70efd7d0e5eb567eaeea65d793c27ff9ea46fb190bd1807
diff --git a/app-emulation/umoci/metadata.xml b/app-emulation/umoci/metadata.xml
deleted file mode 100644
index c36c37139fad..000000000000
--- a/app-emulation/umoci/metadata.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>williamh@gentoo.org</email>
- <name>William Hubbs</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/umoci/umoci-0.2.1.ebuild b/app-emulation/umoci/umoci-0.2.1.ebuild
deleted file mode 100644
index ad66e4afe83d..000000000000
--- a/app-emulation/umoci/umoci-0.2.1.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-EGO_PN="github.com/openSUSE/umoci"
-COMMIT=0465f83826bc4f52e6e3c4dbb1022ec5792c421f
-inherit golang-vcs-snapshot
-
-DESCRIPTION="Manipulation tool for OCI images"
-HOMEPAGE="https://github.com/openSUSE/umoci"
-SRC_URI="https://github.com/openSUSE/umoci/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-
-DEPEND="dev-go/go-md2man"
-
-S="${WORKDIR}/${P}/src/${EGO_PN}"
-
-RESTRICT="test"
-
-src_compile() {
- set -- env GOPATH="${WORKDIR}/${P}:$(get_golibdir_gopath)" \
- go build -v -work -x \
- -ldflags "-w -X main.gitCommit=${COMMIT} -X main.version=${PV}" \
- -o "bin/${PN}" ./cmd/${PN}
- echo "$@"
- "$@" || die
- cd man
- for f in *.1.md; do
- go-md2man -in ${f} -out ${f%%.md} || die
- done
-}
-
-src_install() {
-dobin bin/${PN}
-doman man/*.1
-dodoc CHANGELOG.md
-einstalldocs
-}
diff --git a/app-emulation/uxn/Manifest b/app-emulation/uxn/Manifest
new file mode 100644
index 000000000000..4d0cba24998c
--- /dev/null
+++ b/app-emulation/uxn/Manifest
@@ -0,0 +1 @@
+DIST uxn-0_p20240304.tar.gz 307083 BLAKE2B 2b3a556c5094fd777d82d75c87f721d1a9ea136334cdbc8553662281ae498beb79514e9e567e79b84a625b2fe60b486aa7f6892594cbd08abbbfeb4c9a50b2e9 SHA512 048e24e33de04913e03fbf1b242837dd1ad190f52ede16c302cf436399f0ee478afca545236dd438e03d8dfc29252478c2d79c9b6d3e8d34bb83c99f1930d026
diff --git a/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch b/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch
new file mode 100644
index 000000000000..a8b75458da43
--- /dev/null
+++ b/app-emulation/uxn/files/uxn-0_p20230609-build.sh.patch
@@ -0,0 +1,20 @@
+--- a/build.sh
++++ b/build.sh
+@@ -52,7 +52,7 @@ fi
+
+ mkdir -p bin
+ CC="${CC:-cc}"
+-CFLAGS="${CFLAGS:--std=c89 -Wall -Wno-unknown-pragmas}"
++CFLAGS="${CFLAGS} --std=c89 "
+ case "$(uname -s 2>/dev/null)" in
+ MSYS_NT*|MINGW*) # MSYS2 on Windows
+ FILE_LDFLAGS="-liberty"
+@@ -77,7 +77,7 @@ then
+ echo "[debug]"
+ CFLAGS="${CFLAGS} -DDEBUG -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined"
+ else
+- CFLAGS="${CFLAGS} -DNDEBUG -O2 -g0 -s"
++ CFLAGS="${CFLAGS} -DNDEBUG "
+ fi
+
+ ${CC} ${CFLAGS} src/uxnasm.c -o bin/uxnasm
diff --git a/app-emulation/uxn/metadata.xml b/app-emulation/uxn/metadata.xml
new file mode 100644
index 000000000000..825e9e0f54aa
--- /dev/null
+++ b/app-emulation/uxn/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+
+<pkgmetadata>
+ <maintainer type="person">
+ <email>xgqt@gentoo.org</email>
+ <name>Maciej Barć</name>
+ </maintainer>
+ <longdescription>
+ Uxn is a virtual machine with 32 instructions. This one-page computer is
+ capable of hosting small applications, programmable in a unique language.
+ It was designed with an implementation-first mindset with a focus on
+ creating portable tools and games.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourcehut">~rabbits/uxn</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/uxn/uxn-0_p20240304.ebuild b/app-emulation/uxn/uxn-0_p20240304.ebuild
new file mode 100644
index 000000000000..8e63625c852d
--- /dev/null
+++ b/app-emulation/uxn/uxn-0_p20240304.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="An assembler and emulator for the Uxn stack-machine, written in ANSI C"
+HOMEPAGE="https://wiki.xxiivv.com/site/uxn.html
+ https://git.sr.ht/~rabbits/uxn/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://git.sr.ht/~rabbits/${PN}"
+elif [[ "${PV}" == *_p20240304 ]] ; then
+ COMMIT=e7c25fad05850f0e577fc83a140405ca6ccd93c2
+ SRC_URI="https://git.sr.ht/~rabbits/${PN}/archive/${COMMIT}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/uxn-${COMMIT}"
+
+ KEYWORDS="amd64 ~x86"
+else
+ die "wrong package version (PV), please update the ebuild, given: ${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ media-libs/libsdl2:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}/uxn-0_p20230609-build.sh.patch"
+)
+
+src_compile() {
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" \
+ ./build.sh --no-run \
+ || die "building with \"build.sh\" failed"
+
+ # Fails to assemble via following loop.
+ # Possibly not mean to be assembled by hand.
+ rm -rf ./projects/library ./projects/software/{asma,launcher}.tal || die
+
+ local tal_file
+ local tal_file_base
+
+ while read -r tal_file ; do
+ tal_file_base="$(basename "${tal_file}" .tal)"
+
+ ebegin "Assembling ROM ${tal_file_base}"
+ bin/uxnasm "${tal_file}" "$(dirname "${tal_file}")/${tal_file_base}.rom"
+ eend ${?} || die "failed to assemble ${tal_file}"
+ done \
+ < <(find projects -type f -name "*.tal")
+}
+
+src_install() {
+ insinto /usr/bin
+ doins bin/uxn{asm,cli,emu}
+ fperms 0755 /usr/bin/uxn{asm,cli,emu}
+
+ insinto /usr/share/uxn
+ doins -r projects
+
+ einstalldocs
+}
diff --git a/app-emulation/uxn/uxn-9999.ebuild b/app-emulation/uxn/uxn-9999.ebuild
new file mode 100644
index 000000000000..ef6e9fc2dafe
--- /dev/null
+++ b/app-emulation/uxn/uxn-9999.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="An assembler and emulator for the Uxn stack-machine, written in ANSI C"
+HOMEPAGE="https://wiki.xxiivv.com/site/uxn.html
+ https://git.sr.ht/~rabbits/uxn/"
+
+if [[ "${PV}" == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://git.sr.ht/~rabbits/${PN}"
+elif [[ "${PV}" == *_p20240304 ]] ; then
+ COMMIT=e7c25fad05850f0e577fc83a140405ca6ccd93c2
+ SRC_URI="https://git.sr.ht/~rabbits/${PN}/archive/${COMMIT}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/uxn-${COMMIT}"
+
+ KEYWORDS="~amd64 ~x86"
+else
+ die "wrong package version (PV), please update the ebuild, given: ${PV}"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ media-libs/libsdl2:=
+"
+DEPEND="
+ ${RDEPEND}
+"
+
+PATCHES=(
+ "${FILESDIR}/uxn-0_p20230609-build.sh.patch"
+)
+
+src_compile() {
+ CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${LDFLAGS}" \
+ ./build.sh --no-run \
+ || die "building with \"build.sh\" failed"
+
+ # Fails to assemble via following loop.
+ # Possibly not mean to be assembled by hand.
+ rm -rf ./projects/library ./projects/software/{asma,launcher}.tal || die
+
+ local tal_file
+ local tal_file_base
+
+ while read -r tal_file ; do
+ tal_file_base="$(basename "${tal_file}" .tal)"
+
+ ebegin "Assembling ROM ${tal_file_base}"
+ bin/uxnasm "${tal_file}" "$(dirname "${tal_file}")/${tal_file_base}.rom"
+ eend ${?} || die "failed to assemble ${tal_file}"
+ done \
+ < <(find projects -type f -name "*.tal")
+}
+
+src_install() {
+ insinto /usr/bin
+ doins bin/uxn*
+ fperms 0755 /usr/bin/uxn*
+
+ insinto /usr/share/uxn
+ doins -r projects
+
+ einstalldocs
+}
diff --git a/app-emulation/vagrant/Manifest b/app-emulation/vagrant/Manifest
index d686f4587be4..45b131565d44 100644
--- a/app-emulation/vagrant/Manifest
+++ b/app-emulation/vagrant/Manifest
@@ -1,2 +1,2 @@
-DIST vagrant-2.2.7.tar.gz 2173893 BLAKE2B bf905cb25a905e4fb79ce9c1fb59ad5520b5176d5681dfdc22855ca0a7520535346d2aebffe47162a1f8ca008083c94426e9de92b6d92de4373c654784605c7e SHA512 3455b74c8a867ab37ca9873187a98cdb80feb22a400c4e9f2266897da815815aaefbe0c166172b1c1dbd66aa49ccb1201dcbf904fd883ad34218d694e20d7f87
-DIST vagrant-2.2.9.tar.gz 2215868 BLAKE2B 6d40827c91c86f6b11865d9949e5313c419456c573686944ecd0d1874323aa81d6f26178d5b7a16fee701c513a98b3483dbea0531d9d77dee7b7e284004e17b3 SHA512 15e230bcf336615f0d49a2c40db36f7f26a9f0f6fd42d2ce801f28afc663aadded4fa373e33f9102b21ee70d98563fc68e2b24ffa6c3eec321f58b2c42b0d260
+DIST vagrant-2.4.0.tar.gz 3334706 BLAKE2B 62b720a83646e94c7608a2f8aa7acf985aea0a3532e0474aa45c229b054ea40a6e0b23ccdbfdbf7e27e3da9a4db5f57407656fe103ead0f5a98dc27dae5ebb57 SHA512 94e866b012303b65d33b72034f08305fc04c12be40aeb95247b786b53d14259b7b5062b372e3c87523390f0539848a0eafd45b28ad16a27badecd8888541243b
+DIST vagrant-2.4.1.tar.gz 3342333 BLAKE2B c24c7c30364cb9f03f6e43422ff05954dd877e22a5e244f62cd9ce4925bf10d064fc678dee40a7affd1b6cf49c82d2d2208ee47b92baa0cda4194419ed501be4 SHA512 12ce4a2161e99970f212f265bbc79d6af38bccc44feab95db8db3b8194e8080acb846d680d1006a4e3fb1beabac33f154a7507f43223f675ba1db09a24591893
diff --git a/app-emulation/vagrant/files/vagrant.in b/app-emulation/vagrant/files/vagrant.in
index fd35177c6fe0..21d6c0bf3c82 100644
--- a/app-emulation/vagrant/files/vagrant.in
+++ b/app-emulation/vagrant/files/vagrant.in
@@ -4,7 +4,7 @@
# Vagrant installation directory. This sets up proper environmental variables
# so that everything loads and compiles to proper directories.
-for r in ruby26 ruby25 ruby24; do
+for r in ruby33 ruby32 ruby31 ruby30 ruby27 ruby26; do
# not all ruby versions are guaranteed to be installed
if ! command -v "${r}" >/dev/null 2>&1; then
continue
diff --git a/app-emulation/vagrant/metadata.xml b/app-emulation/vagrant/metadata.xml
index 4f92768cfae5..1ca87553dc86 100644
--- a/app-emulation/vagrant/metadata.xml
+++ b/app-emulation/vagrant/metadata.xml
@@ -1,12 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <!-- maintainer-needed -->
- <use>
- <flag name="virtualbox">
- Use VirtualBox provider.
- </flag>
- </use>
+ <maintainer type="person">
+ <email>guillaumeseren@gmail.com</email>
+ <name>Guillaume Seren</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
<upstream>
<remote-id type="github">hashicorp/vagrant</remote-id>
</upstream>
diff --git a/app-emulation/vagrant/vagrant-2.2.7-r1.ebuild b/app-emulation/vagrant/vagrant-2.2.7-r1.ebuild
deleted file mode 100644
index 19daab60aa2d..000000000000
--- a/app-emulation/vagrant/vagrant-2.2.7-r1.ebuild
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-USE_RUBY="ruby24 ruby25 ruby26"
-
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec"
-RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt"
-RUBY_FAKEGEM_TASK_DOC=""
-
-inherit bash-completion-r1 ruby-fakegem
-
-DESCRIPTION="A tool for building and distributing development environments"
-HOMEPAGE="https://vagrantup.com/"
-SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="+virtualbox"
-RESTRICT="test"
-
-RDEPEND="${RDEPEND}
- app-arch/libarchive
- net-misc/curl
- virtualbox? ( || ( app-emulation/virtualbox app-emulation/virtualbox-bin ) )"
-
-ruby_add_rdepend "
- >=dev-ruby/bcrypt_pbkdf-1.0.0
- >=dev-ruby/childprocess-0.6.0
- >=dev-ruby/ed25519-1.2.4
- >=dev-ruby/erubis-2.7.0
- >=dev-ruby/hashicorp-checkpoint-0.1.5
- >=dev-ruby/i18n-1.1.1:1
- >=dev-ruby/listen-3.1.5
- <dev-ruby/log4r-1.1.11
- <dev-ruby/mime-types-3:*
- >=dev-ruby/net-ssh-5.1.0:*
- >=dev-ruby/net-sftp-2.1
- >=dev-ruby/net-scp-1.2.0
- dev-ruby/rest-client:2
- >=dev-ruby/rubyzip-1.3:1
- >=dev-ruby/vagrant_cloud-2.0.3
-"
-
-# upstream specifies rake>=12 but it apparently doesn't need something this
-# recent. Because vagrant builds fine with rake 10 and because stabilizing rake
-# is tricky, we specify a lower dependency requirement here. This way, we'll be
-# able to stabilize vagrant sooner.
-ruby_add_bdepend "
- >=dev-ruby/rake-10.5.0
-"
-
-all_ruby_prepare() {
- # remove bundler support
- sed -i '/[Bb]undler/d' Rakefile || die
- rm Gemfile || die
-
- # loosen dependencies
- sed -e '/hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|rake\|childprocess/s/~>/>=/' \
- -i ${PN}.gemspec || die
-
- # remove windows-specific gems
- sed -e '/wdm\|winrm/d' \
- -i ${PN}.gemspec || die
-
- # remove bsd-specific gems
- sed -e '/rb-kqueue/d' \
- -i ${PN}.gemspec || die
-
- # remove ruby_dep, it's unused and only listed to loosen ruby implementation deps
- sed -e '/ruby_dep/d' \
- -i ${PN}.gemspec || die
-
- sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die
-}
-
-all_ruby_install() {
- all_fakegem_install
-
- newbashcomp contrib/bash/completion.sh ${PN}
-
- # provide executable similar to upstream:
- # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb
- dobin "${PN}"
-
- # directory for plugins.json
- keepdir /var/lib/vagrant
-
- insinto /usr/share/vim/vimfiles/syntax/
- doins contrib/vim/vagrantfile.vim
-}
diff --git a/app-emulation/vagrant/vagrant-2.2.9-r1.ebuild b/app-emulation/vagrant/vagrant-2.2.9-r1.ebuild
deleted file mode 100644
index 9e265ce73a47..000000000000
--- a/app-emulation/vagrant/vagrant-2.2.9-r1.ebuild
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-USE_RUBY="ruby24 ruby25 ruby26"
-
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec"
-RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt"
-RUBY_FAKEGEM_TASK_DOC=""
-
-inherit bash-completion-r1 ruby-fakegem
-
-DESCRIPTION="A tool for building and distributing development environments"
-HOMEPAGE="https://vagrantup.com/"
-SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="+virtualbox"
-RESTRICT="test"
-
-RDEPEND="${RDEPEND}
- app-arch/libarchive
- net-misc/curl
- virtualbox? ( || ( app-emulation/virtualbox app-emulation/virtualbox-bin ) )"
-
-ruby_add_rdepend "
- >=dev-ruby/bcrypt_pbkdf-1.0.0
- >=dev-ruby/childprocess-3.0.0
- >=dev-ruby/ed25519-1.2.4
- >=dev-ruby/erubis-2.7.0
- >=dev-ruby/hashicorp-checkpoint-0.1.5
- >=dev-ruby/i18n-1.8:1
- >=dev-ruby/listen-3.1.5
- <dev-ruby/log4r-1.1.11
- <dev-ruby/mime-types-3:*
- >=dev-ruby/net-ssh-5.2.0:*
- >=dev-ruby/net-sftp-2.1
- >=dev-ruby/net-scp-1.2.0
- dev-ruby/rest-client:2
- dev-ruby/rubyzip:2
- >=dev-ruby/vagrant_cloud-2.0.3
-"
-
-# upstream specifies rake>=12 but it apparently doesn't need something this
-# recent. Because vagrant builds fine with rake 10 and because stabilizing rake
-# is tricky, we specify a lower dependency requirement here. This way, we'll be
-# able to stabilize vagrant sooner.
-ruby_add_bdepend "
- >=dev-ruby/rake-10.5.0
-"
-
-all_ruby_prepare() {
- # remove bundler support
- sed -i '/[Bb]undler/d' Rakefile || die
- rm Gemfile || die
-
- # loosen dependencies
- sed -e '/hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|net-sftp\|rake\|childprocess/s/~>/>=/' \
- -i ${PN}.gemspec || die
-
- # remove windows-specific gems
- sed -e '/wdm\|winrm/d' \
- -i ${PN}.gemspec || die
-
- # remove bsd-specific gems
- sed -e '/rb-kqueue/d' \
- -i ${PN}.gemspec || die
-
- # remove ruby_dep, it's unused and only listed to loosen ruby implementation deps
- sed -e '/ruby_dep/d' \
- -i ${PN}.gemspec || die
-
- sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die
-}
-
-all_ruby_install() {
- all_fakegem_install
-
- newbashcomp contrib/bash/completion.sh ${PN}
-
- # provide executable similar to upstream:
- # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb
- dobin "${PN}"
-
- # directory for plugins.json
- keepdir /var/lib/vagrant
-
- insinto /usr/share/vim/vimfiles/syntax/
- doins contrib/vim/vagrantfile.vim
-}
diff --git a/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild b/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild
new file mode 100644
index 000000000000..1ed485efc094
--- /dev/null
+++ b/app-emulation/vagrant/vagrant-2.4.0-r1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby31 ruby32"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/vagrant/vagrant_ssl/extconf.rb)
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec"
+RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt"
+RUBY_FAKEGEM_TASK_DOC=""
+RUBY_FAKEGEM_TASK_TEST=test:unit
+RUBY_FAKEGEM_RECIPE_TEST=rake
+
+inherit bash-completion-r1 optfeature ruby-fakegem
+
+DESCRIPTION="A tool for building and distributing development environments"
+HOMEPAGE="https://vagrantup.com/"
+SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BUSL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${RDEPEND}
+ app-arch/libarchive
+ net-misc/curl
+"
+
+ruby_add_rdepend "
+ >=dev-ruby/bcrypt_pbkdf-1.1.0
+ >=dev-ruby/childprocess-4.1.0
+ >=dev-ruby/ed25519-1.3.0
+ dev-ruby/erubi
+ >=dev-ruby/googleapis-common-protos-types-1.3.0
+ >=dev-ruby/grpc-1.59.2
+ >=dev-ruby/hashicorp-checkpoint-0.1.5
+ >=dev-ruby/i18n-1.12:1
+ >=dev-ruby/listen-3.7
+ >=dev-ruby/log4r-1.1.9
+ <dev-ruby/log4r-1.1.11
+ >=dev-ruby/mime-types-3.3:*
+ >=dev-ruby/net-ftp-0.2.0
+ >=dev-ruby/net-ssh-7.0.0
+ >=dev-ruby/net-sftp-4.0.0
+ >=dev-ruby/net-scp-4.0.0
+ >=dev-ruby/rexml-3.2.0
+ >=dev-ruby/rgl-0.5.10
+ >=dev-ruby/rubyzip-2.3.2
+ >=dev-ruby/vagrant_cloud-3.1.0
+ >=dev-ruby/ipaddr-1.2.4
+"
+
+ruby_add_bdepend "
+ >=dev-ruby/rake-13.0.0
+ test? (
+ ~app-emulation/vagrant-${PV}
+ dev-ruby/fake_ftp
+ dev-ruby/rake-compiler
+ >=dev-ruby/rspec-3.11
+ >=dev-ruby/rspec-its-1.3.0
+ >=dev-ruby/webrick-1.7.0
+ )
+"
+
+all_ruby_prepare() {
+ # remove bundler support
+ sed -e '/[Bb]undler/ s:^:#:' \
+ -e '/extensiontask/ s:^:#:' \
+ -e '/ExtensionTask/,/^end/ s:^:#:' \
+ -i Rakefile || die
+ rm Gemfile || die
+ rm tasks/bundler.rake || die
+
+ sed -e ':rake\|rspec: s:~>:>=:' \
+ -e ':bcrypt_pbkdf\|hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|net-sftp\|childprocess: s:~>:>=:' \
+ -e '/fake_ftp/ s:^#*:#:' \
+ -e '/wdm/ s:^#*:#:' \
+ -e '/winrm/ s:^#*:#:' \
+ -e '/rb-kqueue/ s:^#*:#:' \
+ -e '/ruby_dep/ s:^#*:#:' \
+ -i ${PN}.gemspec || die
+
+ sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die
+
+ sed -i -e 's/format documentation/format progress/' tasks/test.rake || die
+
+ # Avoid tests confused by the environment
+ rm -f test/unit/vagrant/util/env_test.rb || die
+
+ # Avoid tests for Windows-specific components
+ rm -rf test/unit/plugins/communicators/winrm || die
+ sed -e '/eager loads WinRM/askip "Windows component"' \
+ -e '/should return the specified communicator if given/askip "Windows component"' \
+ -i test/unit/vagrant/machine_test.rb || die
+ sed -e '/with winrm communicator/ s/context/xcontext/' \
+ -i test/unit/plugins/provisioners/ansible/provisioner_test.rb || die
+}
+
+all_ruby_install() {
+ all_fakegem_install
+
+ newbashcomp contrib/bash/completion.sh ${PN}
+
+ # provide executable similar to upstream:
+ # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb
+ dobin "${PN}"
+
+ # directory for plugins.json
+ keepdir /var/lib/vagrant
+
+ insinto /usr/share/vim/vimfiles/syntax/
+ doins contrib/vim/vagrantfile.vim
+
+ optfeature_header "Optional emulation/container backends:"
+ optfeature "VirtualBox support" app-emulation/virtualbox
+ optfeature "Docker support" app-containers/docker
+}
diff --git a/app-emulation/vagrant/vagrant-2.4.1.ebuild b/app-emulation/vagrant/vagrant-2.4.1.ebuild
new file mode 100644
index 000000000000..a64f74de084a
--- /dev/null
+++ b/app-emulation/vagrant/vagrant-2.4.1.ebuild
@@ -0,0 +1,122 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+USE_RUBY="ruby31 ruby32 ruby33"
+
+RUBY_FAKEGEM_EXTENSIONS=(ext/vagrant/vagrant_ssl/extconf.rb)
+RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
+RUBY_FAKEGEM_GEMSPEC="vagrant.gemspec"
+RUBY_FAKEGEM_EXTRAINSTALL="keys plugins templates version.txt"
+RUBY_FAKEGEM_TASK_DOC=""
+RUBY_FAKEGEM_TASK_TEST=test:unit
+RUBY_FAKEGEM_RECIPE_TEST=rake
+
+inherit bash-completion-r1 optfeature ruby-fakegem
+
+DESCRIPTION="A tool for building and distributing development environments"
+HOMEPAGE="https://vagrantup.com/"
+SRC_URI="https://github.com/hashicorp/vagrant/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BUSL-1.1"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ ${RDEPEND}
+ app-arch/libarchive
+ net-misc/curl
+"
+
+ruby_add_rdepend "
+ >=dev-ruby/bcrypt_pbkdf-1.1.0
+ >=dev-ruby/childprocess-4.1.0
+ >=dev-ruby/ed25519-1.3.0
+ dev-ruby/erubi
+ >=dev-ruby/googleapis-common-protos-types-1.3.0
+ >=dev-ruby/grpc-1.59.2
+ >=dev-ruby/hashicorp-checkpoint-0.1.5
+ >=dev-ruby/i18n-1.12:1
+ >=dev-ruby/listen-3.7
+ >=dev-ruby/log4r-1.1.9
+ <dev-ruby/log4r-1.1.11
+ >=dev-ruby/mime-types-3.3:*
+ >=dev-ruby/net-ftp-0.2.0
+ >=dev-ruby/net-ssh-7.0.0
+ >=dev-ruby/net-sftp-4.0.0
+ >=dev-ruby/net-scp-4.0.0
+ >=dev-ruby/rexml-3.2.0
+ >=dev-ruby/rgl-0.5.10
+ >=dev-ruby/rubyzip-2.3.2
+ >=dev-ruby/vagrant_cloud-3.1.1
+ >=dev-ruby/ipaddr-1.2.4
+"
+
+ruby_add_bdepend "
+ >=dev-ruby/rake-13.0.0
+ test? (
+ ~app-emulation/vagrant-${PV}
+ dev-ruby/fake_ftp
+ dev-ruby/rake-compiler
+ >=dev-ruby/rspec-3.11
+ >=dev-ruby/rspec-its-1.3.0
+ >=dev-ruby/webrick-1.7.0
+ )
+"
+
+all_ruby_prepare() {
+ # remove bundler support
+ sed -e '/[Bb]undler/ s:^:#:' \
+ -e '/extensiontask/ s:^:#:' \
+ -e '/ExtensionTask/,/^end/ s:^:#:' \
+ -i Rakefile || die
+ rm Gemfile || die
+ rm tasks/bundler.rake || die
+
+ sed -e ':rake\|rspec: s:~>:>=:' \
+ -e ':bcrypt_pbkdf\|hashicorp-checkpoint\|i18n\|listen\|net-ssh\|net-scp\|net-sftp\|childprocess: s:~>:>=:' \
+ -e '/fake_ftp/ s:^#*:#:' \
+ -e '/wdm/ s:^#*:#:' \
+ -e '/winrm/ s:^#*:#:' \
+ -e '/rb-kqueue/ s:^#*:#:' \
+ -e '/ruby_dep/ s:^#*:#:' \
+ -i ${PN}.gemspec || die
+
+ sed -e "s/@VAGRANT_VERSION@/${PV}/g" "${FILESDIR}/${PN}.in" > "${PN}" || die
+
+ sed -i -e 's/format documentation/format progress/' tasks/test.rake || die
+
+ # Avoid tests confused by the environment
+ rm -f test/unit/vagrant/util/env_test.rb || die
+
+ # Avoid tests for Windows-specific components
+ rm -rf test/unit/plugins/communicators/winrm || die
+ sed -e '/eager loads WinRM/askip "Windows component"' \
+ -e '/should return the specified communicator if given/askip "Windows component"' \
+ -i test/unit/vagrant/machine_test.rb || die
+ sed -e '/with winrm communicator/ s/context/xcontext/' \
+ -i test/unit/plugins/provisioners/ansible/provisioner_test.rb || die
+}
+
+all_ruby_install() {
+ all_fakegem_install
+
+ newbashcomp contrib/bash/completion.sh ${PN}
+
+ # provide executable similar to upstream:
+ # https://github.com/hashicorp/vagrant-installers/blob/master/substrate/modules/vagrant_installer/templates/vagrant.erb
+ dobin "${PN}"
+
+ # directory for plugins.json
+ keepdir /var/lib/vagrant
+
+ insinto /usr/share/vim/vimfiles/syntax/
+ doins contrib/vim/vagrantfile.vim
+
+ optfeature_header "Optional emulation/container backends:"
+ optfeature "VirtualBox support" app-emulation/virtualbox
+ optfeature "Docker support" app-containers/docker
+}
diff --git a/app-emulation/vendor-reset/Manifest b/app-emulation/vendor-reset/Manifest
new file mode 100644
index 000000000000..d6e8905b5c12
--- /dev/null
+++ b/app-emulation/vendor-reset/Manifest
@@ -0,0 +1 @@
+DIST vendor-reset-0.1.1_pre20221205.tar.gz 12725340 BLAKE2B 5f2e34b74e83c8f48daad8d2c714872ab23f50cb0fad6b5c7920476b43c2fbfcf5543e923c506dfb2d8c33846e8fdd08c7d20b30fcc053f2c191d813872b44c5 SHA512 87a3c64d917e6a44308115480f14956f65a9f84fef70de29feebe3fcd7d522b59a3dbcb5fc9a340ac9b7a3612a29ed696b4f52648f86a0d877b915c97c5a4cc9
diff --git a/app-emulation/vendor-reset/files/modload.conf b/app-emulation/vendor-reset/files/modload.conf
new file mode 100644
index 000000000000..ff75088aa8fe
--- /dev/null
+++ b/app-emulation/vendor-reset/files/modload.conf
@@ -0,0 +1 @@
+vendor-reset
diff --git a/app-emulation/vendor-reset/metadata.xml b/app-emulation/vendor-reset/metadata.xml
new file mode 100644
index 000000000000..9dd38a3711ed
--- /dev/null
+++ b/app-emulation/vendor-reset/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sarnex@gentoo.org</email>
+ <name>Nick Sarnie</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="github">gnif/vendor-reset</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild
new file mode 100644
index 000000000000..43bacc3c3ea3
--- /dev/null
+++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-mod-r1
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+else
+ KEYWORDS="~amd64"
+ EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248"
+ SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="Linux kernel vendor specific hardware reset module"
+HOMEPAGE="https://github.com/gnif/vendor-reset"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
+
+src_compile() {
+ local modlist=( vendor-reset )
+ local modargs=( KDIR="${KV_OUT_DIR}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modules-load.d/
+ newins "${FILESDIR}"/modload.conf vendor-reset.conf
+}
diff --git a/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild
new file mode 100644
index 000000000000..245e75a24d32
--- /dev/null
+++ b/app-emulation/vendor-reset/vendor-reset-0.1.1_pre20221205.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit linux-mod toolchain-funcs
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+else
+ KEYWORDS="~amd64"
+ EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248"
+ SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="Linux kernel vendor specific hardware reset module"
+HOMEPAGE="https://github.com/gnif/vendor-reset"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+MODULE_NAMES="vendor-reset(extra)"
+
+pkg_setup() {
+ local CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
+ linux-mod_pkg_setup
+ BUILD_TARGETS="build"
+ BUILD_PARAMS="CC=\"$(tc-getBUILD_CC)\" KDIR=${KERNEL_DIR}"
+}
+
+src_install() {
+ linux-mod_src_install
+
+ insinto /etc/modules-load.d/
+ newins "${FILESDIR}"/modload.conf vendor-reset.conf
+}
diff --git a/app-emulation/vendor-reset/vendor-reset-9999.ebuild b/app-emulation/vendor-reset/vendor-reset-9999.ebuild
new file mode 100644
index 000000000000..2723fba58a32
--- /dev/null
+++ b/app-emulation/vendor-reset/vendor-reset-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-mod-r1
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/gnif/vendor-reset.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+else
+ KEYWORDS="~amd64"
+ EGIT_COMMIT="4b466e92a2d9f76ce1082cde982c7be0be91e248"
+ SRC_URI="https://github.com/gnif/vendor-reset/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+fi
+
+DESCRIPTION="Linux kernel vendor specific hardware reset module"
+HOMEPAGE="https://github.com/gnif/vendor-reset"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+CONFIG_CHECK="FTRACE KPROBES PCI_QUIRKS KALLSYMS FUNCTION_TRACER"
+
+src_compile() {
+ local modlist=( vendor-reset )
+ local modargs=( KDIR="${KV_OUT_DIR}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modules-load.d/
+ newins "${FILESDIR}"/modload.conf vendor-reset.conf
+}
diff --git a/app-emulation/vice/Manifest b/app-emulation/vice/Manifest
index 5c23e52b7bf4..7c0058509c3a 100644
--- a/app-emulation/vice/Manifest
+++ b/app-emulation/vice/Manifest
@@ -1,2 +1 @@
-DIST vice-emu-code-r37498-trunk-vice.zip 26810776 BLAKE2B 05baa0d123e9a0f1141ef68940455b5abfccde0204d0ffeb0a806212977be6f1f2c777267cad077272f4e09fa3c6adb9e95436adaaee5482b2ce918a3485caeb SHA512 5b4c31e51efc67ac08f6fe9361c42b80115b315fc24c128861341f2eea7567bdbb1761e52bc914df442ed5cc7f2ca7c6b0a2694441d63e63f9f693bcf72c70c0
-DIST vice-emu-code-r38553-trunk-vice.zip 27146846 BLAKE2B 5139e4b1e9269c3885313889dffc055298c52152da77e5a824270feb0af6ba61a1726160a6d259e9f8840fefe486cc184f5bfda3ba1797e0359159ccf1e9824f SHA512 c4d3f132bae2980163e74695126e979bd68dddecb17c2eea8227edbb675985d1f04ade665b946a5e3c707bc17e260efb61f57aa141b6ef712385d4d85a68ef86
+DIST vice-3.8.tar.gz 13564021 BLAKE2B 709fd6eda874de542e5770a328b0c0308d04f755e3bf1fceba5147156eb894a95ce6f14e9f8848ca6992d4f958082f83a198d2176c1fe54e87027c7dfac8849c SHA512 fe644667736c32386b62af53314a95bf510c75d476eaab14b4c37693f2f57d6815126ab3db2f0cb11300c1a4a07c29b3f25210800ce97a673a0460ab59d0ebba
diff --git a/app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch b/app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch
deleted file mode 100644
index 557c0a927318..000000000000
--- a/app-emulation/vice/files/vice-pkg-config-3.4_p38553.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-https://sourceforge.net/p/vice-emu/patches/218/
-
-Index: configure.ac
-===================================================================
---- a/configure.ac (revision 38502)
-+++ b/configure.ac (working copy)
-@@ -1275,6 +1275,14 @@
- fi
-
- if test x"$found_sdl2" != "xyes"; then
-+ PKG_CHECK_MODULES(SDL2, sdl2, [
-+ use_sdl_prefix=no
-+ use_sdl2_prefix=no
-+ found_sdl2=yes
-+ VICE_CFLAGS="$VICE_CFLAGS $SDL2_CFLAGS"
-+ VICE_CXXFLAGS="$VICE_CXXFLAGS $SDL2_CFLAGS"
-+ LIBS="$LIBS $SDL2_LIBS"
-+ ], [
- dnl Check for sdl2-config
- if test x"$sdl2_config" != "xno"; then
- user_CFLAGS="$CFLAGS"
-@@ -1311,6 +1319,7 @@
- CFLAGS="$user_CFLAGS"
- CXXFLAGS="$user_CXXFLAGS"
- fi
-+ ])
- fi
-
- dnl fail if SDL2 ui was requested, otherwise restore flags and continue
diff --git a/app-emulation/vice/metadata.xml b/app-emulation/vice/metadata.xml
index 2294b11c8d08..28b3dc71db21 100644
--- a/app-emulation/vice/metadata.xml
+++ b/app-emulation/vice/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>games@gentoo.org</email>
diff --git a/app-emulation/vice/vice-3.4_p37498.ebuild b/app-emulation/vice/vice-3.4_p37498.ebuild
deleted file mode 100644
index 9053d48c332d..000000000000
--- a/app-emulation/vice/vice-3.4_p37498.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools multibuild
-
-MY_P="vice-emu-code-r${PV##*_p}-trunk-vice"
-
-DESCRIPTION="The Versatile Commodore Emulator"
-HOMEPAGE="https://vice-emu.sourceforge.io/"
-#SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz"
-SRC_URI="https://sourceforge.net/code-snapshots/svn/v/vi/vice-emu/code/${MY_P}.zip"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="alsa debug doc ethernet ffmpeg flac gif +gtk headless ipv6 jpeg lame mpg123 ogg oss +opengl parport pci png portaudio pulseaudio sdl zlib"
-REQUIRED_USE="|| ( gtk headless sdl ) gtk? ( zlib )"
-
-RDEPEND="
- sys-libs/readline:0=
- virtual/libintl
- alsa? ( media-libs/alsa-lib )
- ethernet? (
- >=net-libs/libpcap-0.9.8
- >=net-libs/libnet-1.1.2.1:1.1
- )
- ffmpeg? ( media-video/ffmpeg:= )
- flac? ( media-libs/flac )
- gif? ( media-libs/giflib:= )
- gtk? (
- dev-libs/glib:2
- media-libs/fontconfig:1.0
- x11-libs/gtk+:3
- opengl? (
- media-libs/glew:0=
- virtual/opengl
- )
- )
- jpeg? ( virtual/jpeg )
- lame? ( media-sound/lame )
- mpg123? ( media-sound/mpg123 )
- ogg? (
- media-libs/libogg
- media-libs/libvorbis
- )
- parport? ( sys-libs/libieee1284 )
- pci? ( sys-apps/pciutils )
- png? ( media-libs/libpng:0= )
- portaudio? ( media-libs/portaudio )
- pulseaudio? ( media-sound/pulseaudio )
- sdl? ( media-libs/libsdl2[video] )
- zlib? ( sys-libs/zlib )
-"
-
-DEPEND="
- ${RDEPEND}
- x11-base/xorg-proto
-"
-
-BDEPEND="
- app-arch/unzip
- dev-embedded/xa
- dev-lang/perl
- sys-apps/texinfo
- sys-devel/flex
- sys-devel/gettext
- virtual/pkgconfig
- virtual/yacc
- doc? ( virtual/texi2dvi )
-"
-
-S="${WORKDIR}/${MY_P}"
-ECONF_SOURCE="${S}"
-
-src_prepare() {
- default
-
- # Delete some bundled libraries.
- rm -r src/lib/lib{ffmpeg,lame,x264} || die
-
- sed "s/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/g" < configure.proto > configure.ac || die
-
- local DIR
- for DIR in src/resid src/resid-dtv .; do
- pushd "${DIR}" || die
- AT_NO_RECURSIVE=1 eautoreconf
- popd || die
- done
-
- # Strip the predefined C(XX)FLAGS.
- sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die
-}
-
-src_configure() {
- MULTIBUILD_VARIANTS=(
- $(usev gtk)
- $(usev headless)
- $(usev sdl)
- )
-
- multibuild_foreach_variant run_in_build_dir multibuild_src_configure
-}
-
-multibuild_enable() {
- if [[ ${MULTIBUILD_VARIANT} == $1 ]]; then
- printf -- "--enable-%s\n" "$2"
- else
- printf -- "--disable-%s\n" "$2"
- fi
-}
-
-multibuild_src_configure() {
- # Some dependencies lack configure options so prevent them becoming
- # automagic by using configure cache variables.
- use flac || export ac_cv_header_FLAC_stream_decoder_h=no
- use mpg123 || export ac_cv_header_mpg123_h=no
- use ogg || export ac_cv_header_vorbis_vorbisfile_h=no
- use pci || export ac_cv_header_pci_pci_h=no
-
- # Ensure we use giflib, not ungif.
- export ac_cv_lib_ungif_EGifPutLine=no
-
- # Append ".variant" to x* programs if building multiple variants.
- if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then
- xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/"
- else
- unset xform
- fi
-
- econf \
- --program-transform-name="${xform}" \
- --disable-sdlui \
- $(multibuild_enable sdl sdlui2) \
- $(multibuild_enable gtk native-gtk3ui) \
- $(use_enable debug debug-gtk3ui) \
- $(multibuild_enable headless headlessui) \
- $(use_enable opengl hwscale) \
- --disable-shared-ffmpeg \
- --disable-static-ffmpeg \
- $(use_enable ffmpeg external-ffmpeg) \
- $(use_enable ethernet) \
- $(use_enable ipv6) \
- $(use_enable parport libieee1284) \
- $(use_enable portaudio) \
- $(use_enable lame) \
- $(use_enable debug) \
- --disable-arch \
- $(use_enable doc pdf-docs) \
- --enable-html-docs \
- $(use_with pulseaudio pulse) \
- $(use_with alsa) \
- $(use_with oss) \
- $(use_with jpeg) \
- $(use_with png) \
- $(use_with gif) \
- $(use_with zlib)
-}
-
-src_compile() {
- multibuild_foreach_variant run_in_build_dir emake
-}
-
-src_install() {
- multibuild_foreach_variant run_in_build_dir default
- dodoc FEEDBACK
-
- # Delete the bundled fonts. These could be packaged separately but
- # they're only for the HTML documentation.
- rm -r "${ED}"/usr/share/doc/${PF}/html/fonts/ || die
-}
diff --git a/app-emulation/vice/vice-3.4_p38553.ebuild b/app-emulation/vice/vice-3.4_p38553.ebuild
deleted file mode 100644
index 6035ab43a443..000000000000
--- a/app-emulation/vice/vice-3.4_p38553.ebuild
+++ /dev/null
@@ -1,185 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools multibuild xdg
-
-MY_P="vice-emu-code-r${PV##*_p}-trunk-vice"
-
-DESCRIPTION="The Versatile Commodore Emulator"
-HOMEPAGE="https://vice-emu.sourceforge.io/"
-#SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz"
-SRC_URI="https://sourceforge.net/code-snapshots/svn/v/vi/vice-emu/code/${MY_P}.zip"
-
-LICENSE="GPL-2+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="alsa debug doc ethernet ffmpeg flac gif +gtk headless ipv6 jpeg lame mpg123 ogg oss +opengl parport pci png portaudio pulseaudio sdl zlib"
-REQUIRED_USE="|| ( gtk headless sdl ) gtk? ( zlib )"
-
-RDEPEND="
- sys-libs/readline:0=
- virtual/libintl
- alsa? ( media-libs/alsa-lib )
- ethernet? (
- >=net-libs/libpcap-0.9.8
- >=net-libs/libnet-1.1.2.1:1.1
- )
- ffmpeg? ( media-video/ffmpeg:= )
- flac? ( media-libs/flac )
- gif? ( media-libs/giflib:= )
- gtk? (
- dev-libs/glib:2
- media-libs/fontconfig:1.0
- x11-libs/cairo
- x11-libs/gtk+:3
- x11-libs/pango
- opengl? (
- media-libs/glew:0=
- virtual/opengl
- )
- )
- jpeg? ( virtual/jpeg )
- lame? ( media-sound/lame )
- mpg123? ( media-sound/mpg123 )
- ogg? (
- media-libs/libogg
- media-libs/libvorbis
- )
- parport? ( sys-libs/libieee1284 )
- pci? ( sys-apps/pciutils )
- png? ( media-libs/libpng:0= )
- portaudio? ( media-libs/portaudio )
- pulseaudio? ( media-sound/pulseaudio )
- sdl? ( media-libs/libsdl2[video] )
- zlib? ( sys-libs/zlib )
-"
-
-DEPEND="
- ${RDEPEND}
- x11-base/xorg-proto
-"
-
-BDEPEND="
- app-arch/unzip
- app-text/dos2unix
- dev-embedded/xa
- dev-lang/perl
- sys-apps/texinfo
- sys-devel/flex
- sys-devel/gettext
- virtual/pkgconfig
- virtual/yacc
- doc? ( virtual/texi2dvi )
- gtk? ( x11-misc/xdg-utils )
-"
-
-S="${WORKDIR}/${MY_P}"
-ECONF_SOURCE="${S}"
-
-PATCHES=(
- "${FILESDIR}"/vice-pkg-config-${PV}.patch
-)
-
-src_prepare() {
- default
-
- # Delete some bundled libraries.
- rm -r src/lib/lib{ffmpeg,lame,x264} || die
-
- local DIR
- for DIR in src/resid src/resid-dtv .; do
- pushd "${DIR}" || die
- AT_NO_RECURSIVE=1 eautoreconf
- popd || die
- done
-
- # Strip the predefined C(XX)FLAGS.
- sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die
-}
-
-src_configure() {
- MULTIBUILD_VARIANTS=(
- $(usev gtk)
- $(usev headless)
- $(usev sdl)
- )
-
- multibuild_foreach_variant run_in_build_dir multibuild_src_configure
-}
-
-multibuild_enable() {
- if [[ ${MULTIBUILD_VARIANT} == $1 ]]; then
- printf -- "--enable-%s\n" "$2"
- else
- printf -- "--disable-%s\n" "$2"
- fi
-}
-
-multibuild_src_configure() {
- # Some dependencies lack configure options so prevent them becoming
- # automagic by using configure cache variables.
- use pci || export ac_cv_header_pci_pci_h=no
-
- # Ensure we use giflib, not ungif.
- export ac_cv_lib_ungif_EGifPutLine=no
-
- # Append ".variant" to x* programs if building multiple variants.
- if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then
- xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/"
- else
- unset xform
- fi
-
- econf \
- --program-transform-name="${xform}" \
- --disable-arch \
- $(use_enable debug) \
- $(use_enable debug debug-gtk3ui) \
- $(use_enable ffmpeg external-ffmpeg) \
- $(multibuild_enable headless headlessui) \
- --enable-html-docs \
- $(use_enable ethernet) \
- $(use_enable opengl hwscale) \
- $(use_enable ipv6) \
- $(use_enable lame) \
- $(use_enable parport libieee1284) \
- $(multibuild_enable gtk native-gtk3ui) \
- $(use_enable doc pdf-docs) \
- $(use_enable portaudio) \
- --disable-sdlui \
- $(multibuild_enable sdl sdlui2) \
- --disable-shared-ffmpeg \
- --disable-static-ffmpeg \
- $(multibuild_enable gtk desktop-files) \
- $(use_with alsa) \
- $(use_with gif) \
- $(use_with jpeg) \
- $(use_with oss) \
- $(use_with png) \
- $(use_with pulseaudio pulse) \
- $(use_with zlib) \
- $(use_with mpg123) \
- $(use_with ogg vorbis) \
- $(use_with flac)
-}
-
-src_compile() {
- multibuild_foreach_variant run_in_build_dir emake
-}
-
-src_install() {
- # Get xdg-desktop-menu to play nicely while doing the install.
- dodir /etc/xdg/menus /usr/share/{applications,desktop-directories}
- XDG_UTILS_INSTALL_MODE=system \
- XDG_DATA_DIRS="${ED}"/usr/share \
- XDG_CONFIG_DIRS="${ED}"/etc/xdg \
- multibuild_foreach_variant run_in_build_dir default
- rm -f "${ED}"/usr/share/applications/*.cache || die
- dodoc FEEDBACK
-
- # Delete the bundled fonts. These could be packaged separately but
- # they're only for the HTML documentation.
- rm -r "${ED}"/usr/share/doc/${PF}/html/fonts/ || die
-}
diff --git a/app-emulation/vice/vice-3.8-r1.ebuild b/app-emulation/vice/vice-3.8-r1.ebuild
new file mode 100644
index 000000000000..3a39bda48be4
--- /dev/null
+++ b/app-emulation/vice/vice-3.8-r1.ebuild
@@ -0,0 +1,187 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multibuild toolchain-funcs xdg
+
+DESCRIPTION="Versatile Commodore Emulator"
+HOMEPAGE="https://vice-emu.sourceforge.io/"
+SRC_URI="mirror://sourceforge/vice-emu/releases/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+IUSE="
+ alsa curl debug doc ethernet flac gif +gtk headless lame mpg123
+ ogg openmp oss parport pci png portaudio pulseaudio sdl
+"
+REQUIRED_USE="|| ( gtk headless sdl )"
+
+RDEPEND="
+ sys-libs/zlib:=
+ virtual/libintl
+ alsa? ( media-libs/alsa-lib )
+ curl? ( net-misc/curl )
+ ethernet? (
+ net-libs/libpcap
+ sys-libs/libcap
+ )
+ flac? ( media-libs/flac:= )
+ gif? ( media-libs/giflib:= )
+ gtk? (
+ >=app-accessibility/at-spi2-core-2.46:2
+ dev-libs/glib:2
+ media-libs/fontconfig:1.0
+ media-libs/glew:0=[-egl-only(-)]
+ media-libs/libglvnd[X]
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3[X]
+ x11-libs/libX11
+ x11-libs/pango
+ )
+ lame? ( media-sound/lame )
+ mpg123? ( media-sound/mpg123 )
+ ogg? (
+ media-libs/libogg
+ media-libs/libvorbis
+ )
+ parport? ( sys-libs/libieee1284 )
+ pci? ( sys-apps/pciutils )
+ png? ( media-libs/libpng:= )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-libs/libpulse )
+ sdl? (
+ media-libs/libsdl2[video]
+ media-libs/sdl2-image
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ x11-base/xorg-proto
+"
+BDEPEND="
+ app-alternatives/awk
+ app-alternatives/yacc
+ app-arch/unzip
+ app-text/dos2unix
+ dev-embedded/xa
+ dev-lang/perl
+ sys-apps/texinfo
+ app-alternatives/lex
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? ( virtual/texi2dvi )
+ gtk? ( x11-misc/xdg-utils )
+"
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+src_prepare() {
+ default
+
+ # Strip the predefined C(XX)FLAGS.
+ sed -i -r 's:(VICE_C(XX)?FLAGS=)"[^$]+":\1:' configure || die
+
+ MULTIBUILD_VARIANTS=(
+ $(usev gtk)
+ $(usev headless)
+ $(usev sdl)
+ )
+
+ # Debug build currently broken without copy sources.
+ multibuild_copy_sources
+}
+
+src_configure() {
+ tc-export AR
+
+ multibuild_foreach_variant run_in_build_dir multibuild_src_configure
+}
+
+multibuild_src_configure() {
+ # Append ".variant" to x* programs if building multiple variants.
+ local xform
+ (( ${#MULTIBUILD_VARIANTS[@]} > 1 )) &&
+ xform="/^x/s/\$/.${MULTIBUILD_VARIANT}/"
+
+ vice-multi_enable() {
+ if [[ ${MULTIBUILD_VARIANT} == ${1} ]]; then
+ echo --enable-${2}
+ else
+ echo --disable-${2}
+ fi
+ }
+
+ local econfargs=(
+ --program-transform-name="${xform}"
+ $(vice-multi_enable gtk desktop-files)
+ $(vice-multi_enable gtk gtk3ui)
+ $(vice-multi_enable headless headlessui)
+ $(vice-multi_enable sdl sdl2ui)
+ $(usex debug $(vice-multi_enable gtk debug-gtk3ui) --disable-debug-gtk3ui)
+ $(use_enable debug)
+ $(use_enable doc pdf-docs)
+ $(use_enable ethernet)
+ $(use_enable openmp)
+ $(use_enable parport parsid)
+ $(use_with alsa)
+ $(use_with curl libcurl)
+ $(use_with flac)
+ $(use_with gif)
+ $(use_with lame)
+ $(use_with lame static-lame) # disables dlopen, uses shared still
+ $(use_with mpg123)
+ $(use_with ogg vorbis)
+ $(use_with oss)
+ $(use_with parport libieee1284)
+ $(use_with png)
+ $(use_with portaudio)
+ $(use_with pulseaudio pulse)
+ $(usex alsa --enable-midi $(use_enable oss midi))
+ $(usev !pci ac_cv_header_pci_pci_h=no)
+ --disable-arch
+ --disable-ffmpeg # deprecated in 3.8, also bug #834359
+ --disable-sdl1ui
+ ac_cv_lib_ungif_EGifPutLine=no # ensure use giflib, not ungif
+ )
+
+ econf "${econfargs[@]}"
+}
+
+src_compile() {
+ # bug #924116 wrt SHELL
+ multibuild_foreach_variant run_in_build_dir emake SHELL="${BASH}"
+}
+
+src_install() {
+ # Get xdg-desktop-menu to play nicely while doing the install.
+ dodir /etc/xdg/menus /usr/share/{applications,desktop-directories}
+
+ XDG_UTILS_INSTALL_MODE=system \
+ XDG_DATA_DIRS="${ED}"/usr/share \
+ XDG_CONFIG_DIRS="${ED}"/etc/xdg \
+ multibuild_foreach_variant run_in_build_dir default
+
+ rm -f "${ED}"/usr/share/applications/*.cache || die
+
+ vice-install_extras() {
+ docinto html
+ dodoc doc/html/*.{html,css}
+ dodoc -r doc/html/images
+
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins doc/vim/ftdetect/*.vim
+
+ insinto /usr/share/vim/vimfiles/syntax
+ doins doc/vim/syntax/*.vim
+ }
+ multibuild_for_best_variant run_in_build_dir vice-install_extras
+}
diff --git a/app-emulation/virt-firmware/Manifest b/app-emulation/virt-firmware/Manifest
new file mode 100644
index 000000000000..8181799f3918
--- /dev/null
+++ b/app-emulation/virt-firmware/Manifest
@@ -0,0 +1 @@
+DIST virt-firmware-24.4.tar.gz 111964 BLAKE2B 16005a6f911abf227988abaedd45237d44d403f367abd3c2d413f899a6c3e7db2a62edcd36b7408263f101a0f0a20bbea83bf51f7f798077311b478dfc6c9fc1 SHA512 3b13df25177fe5c20e460e2d82453e23ae96cb657f1228ff1c061db4c4197eba719a4d7f51a90fec60a4de2da9a0e9d3f056d53011bd4f61df7f40b706911a1d
diff --git a/app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful b/app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful
new file mode 100644
index 000000000000..5c7ef1a79ccf
--- /dev/null
+++ b/app-emulation/virt-firmware/files/kernel-bootcfg-boot-successful
@@ -0,0 +1,9 @@
+#!/sbin/openrc-run
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="UKI Successful Boot"
+
+start() {
+ kernel-bootcfg --boot-successful --update-csv || return 1
+}
diff --git a/app-emulation/virt-firmware/metadata.xml b/app-emulation/virt-firmware/metadata.xml
new file mode 100644
index 000000000000..1059efa31d78
--- /dev/null
+++ b/app-emulation/virt-firmware/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>andrewammerlaan@gentoo.org</email>
+ <name>Andrew Ammerlaan</name>
+ </maintainer>
+ <stabilize-allarches/>
+ <longdescription lang="en">
+ This is a small collection of tools for edk2 firmware images. They
+ support decoding and printing the content of firmware volumes.
+ Variable stores (OVMF_VARS.fd) can be modified, for example to enroll
+ secure boot certificates.
+ </longdescription>
+ <upstream>
+ <remote-id type="pypi">virt-firmware</remote-id>
+ <remote-id type="gitlab">kraxel/virt-firmware</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/virt-firmware/virt-firmware-24.4.ebuild b/app-emulation/virt-firmware/virt-firmware-24.4.ebuild
new file mode 100644
index 000000000000..36b536044e18
--- /dev/null
+++ b/app-emulation/virt-firmware/virt-firmware-24.4.ebuild
@@ -0,0 +1,52 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+
+inherit distutils-r1 optfeature pypi systemd
+
+DESCRIPTION="Tools for ovmf/armvirt firmware volumes"
+HOMEPAGE="
+ https://gitlab.com/kraxel/virt-firmware
+ https://pypi.org/project/virt-firmware/
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+# Currently requires files in /boot and read/write to efivars
+RESTRICT="test"
+
+RDEPEND="
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/pefile[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ eunittest tests
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doman man/*.1
+
+ doinitd "${FILESDIR}/kernel-bootcfg-boot-successful"
+ systemd_dounit systemd/kernel-bootcfg-boot-successful.service
+
+ # Use our own provided by sys-kernel/installkernel[efistub,systemd]
+ #exeinto /usr/lib/kernel/install.d
+ #doexe systemd/99-uki-uefi-setup.install
+}
+
+pkg_postinst() {
+ optfeature "automatically updating UEFI configuration on each kernel installation or removal" \
+ "sys-kernel/installkernel[systemd,efistub]"
+}
diff --git a/app-emulation/virt-manager/Manifest b/app-emulation/virt-manager/Manifest
index e8e1eea7b699..bead1d85a9f0 100644
--- a/app-emulation/virt-manager/Manifest
+++ b/app-emulation/virt-manager/Manifest
@@ -1,2 +1 @@
-DIST virt-manager-2.2.1.tar.gz 2623754 BLAKE2B c81e730f2d685152bd0ef0a0327a74a70c50bff91e80ed0e3de92d0b848183c4bc092be333f2f0785c6a0b39f0b6d6abbd1f38c902f52ba4af7c56d64ee9b026 SHA512 aa97af52b3552c087beab8701762c21e8e6d818c9787d5376ed4e1ae40a34d5e8870c4c00fda9cb17a2340d1dff5b17e853182df720cdd9ea4c91cf01502a33a
-DIST virt-manager-3.1.0.tar.gz 2848420 BLAKE2B 729a16ee419cfc9f118e4a59336e961f17f38908ab3aaa3598c83bff3e8bca75b150f0f38b021c5ccb839a7c43e87f071859f68c2a81425715e236e14d0a7929 SHA512 185e34d8ebb2f9755bf9732bdafdbe9d0924d8c3b69758947252cce5deeac2042f473ba63673eea2bf36beb1f216a856938650f86e2c86eb5618e8f8522df53d
+DIST virt-manager-4.1.0.tar.gz 3151412 BLAKE2B 1b4203be81bd7b82251225d691a4d9068f268e610f049bcadb96de5b539e964ca0b001f22f06ddd8266b58b079f60046f6d11942a1e4eadbc43f0607c46bbddd SHA512 725cb5bcbaebaafae417f95deffb4243ccdad769668cba6e1235f4607e2b29dbd099d2a9a3885981158f53ea854dd71cc29ed9d7557b2791161c13d34f2ef883
diff --git a/app-emulation/virt-manager/metadata.xml b/app-emulation/virt-manager/metadata.xml
index 024a5205e500..40002fc45349 100644
--- a/app-emulation/virt-manager/metadata.xml
+++ b/app-emulation/virt-manager/metadata.xml
@@ -1,19 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="project">
- <email>virtualization@gentoo.org</email>
- <name>Gentoo Virtualization Project</name>
- </maintainer>
- <use>
- <flag name="policykit">
- Enables <pkg>sys-auth/polkit</pkg> authentication support,
- required when using <pkg>app-emulation/libvirt</pkg> with
- PolicyKit authentication
- </flag>
- <flag name="sasl">
- Depend on the proper libraries needed to connect to SASL-enabled
- libvirtd instances (e.g. Kerberos-protected instances).
- </flag>
- </use>
+ <maintainer type="project">
+ <email>virtualization@gentoo.org</email>
+ <name>Gentoo Virtualization Project</name>
+ </maintainer>
+ <use>
+ <flag name="policykit">
+ Enables <pkg>sys-auth/polkit</pkg> authentication support,
+ required when using <pkg>app-emulation/libvirt</pkg> with
+ PolicyKit authentication
+ </flag>
+ <flag name="sasl">
+ Depend on the proper libraries needed to connect to SASL-enabled
+ libvirtd instances (e.g. Kerberos-protected instances).
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="github">virt-manager/virt-manager</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild b/app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild
deleted file mode 100644
index d652192107af..000000000000
--- a/app-emulation/virt-manager/virt-manager-2.2.1-r3.ebuild
+++ /dev/null
@@ -1,98 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{7,8} )
-DISTUTILS_SINGLE_IMPL=1
-
-DISTUTILS_USE_SETUPTOOLS=no
-inherit gnome2 distutils-r1
-
-DESCRIPTION="A graphical tool for administering virtual machines"
-HOMEPAGE="http://virt-manager.org"
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- SRC_URI=""
- KEYWORDS="amd64 arm64 x86"
- EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
-else
- SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
- KEYWORDS="amd64 ~arm64 ~ppc64 x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="gtk policykit sasl"
-
-RDEPEND="!app-emulation/virtinst
- ${PYTHON_DEPS}
- app-cdr/cdrtools
- >=app-emulation/libvirt-glib-1.0.0[introspection]
- $(python_gen_cond_dep '
- dev-libs/libxml2[python,${PYTHON_MULTI_USEDEP}]
- dev-python/libvirt-python[${PYTHON_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- dev-python/requests[${PYTHON_MULTI_USEDEP}]
- ')
- >=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
- gnome-base/dconf
- >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
- net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
- net-misc/x11-ssh-askpass
- x11-libs/gtk+:3[introspection]
- x11-libs/gtksourceview:4[introspection]
- x11-libs/vte:2.91[introspection]
- policykit? ( sys-auth/polkit[introspection] )
- )
-"
-DEPEND="${RDEPEND}
- dev-lang/perl
- dev-util/intltool
-"
-
-DOCS=( README.md NEWS.md )
-
-src_prepare() {
- distutils-r1_src_prepare
-}
-
-python_configure() {
- esetup.py configure \
- --default-graphics=spice
-}
-
-python_install() {
- esetup.py install
-}
-
-src_install() {
- local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas )
- distutils-r1_src_install
-
- python_fix_shebang "${ED}"/usr/share/virt-manager
-}
-
-pkg_preinst() {
- if use gtk; then
- gnome2_pkg_preinst
-
- cd "${ED}"
- export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null)
- else
- rm -rf "${ED}/usr/share/virt-manager/virtManager"
- rm -f "${ED}/usr/share/virt-manager/virt-manager"
- rm -rf "${ED}/usr/share/virt-manager/ui/"
- rm -rf "${ED}/usr/share/virt-manager/icons/"
- rm -rf "${ED}/usr/share/man/man1/virt-manager.1*"
- rm -rf "${ED}/usr/share/icons/"
- rm -rf "${ED}/usr/share/applications/virt-manager.desktop"
- rm -rf "${ED}/usr/bin/virt-manager"
- fi
-}
-
-pkg_postinst() {
- use gtk && gnome2_pkg_postinst
-}
diff --git a/app-emulation/virt-manager/virt-manager-3.1.0.ebuild b/app-emulation/virt-manager/virt-manager-3.1.0.ebuild
deleted file mode 100644
index cb575dc4df60..000000000000
--- a/app-emulation/virt-manager/virt-manager-3.1.0.ebuild
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python3_{7,8,9} )
-DISTUTILS_SINGLE_IMPL=1
-
-DISTUTILS_USE_SETUPTOOLS=no
-inherit gnome2 distutils-r1
-
-DESCRIPTION="A graphical tool for administering virtual machines"
-HOMEPAGE="http://virt-manager.org"
-
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- SRC_URI=""
- KEYWORDS="amd64 arm64 x86"
- EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
-else
- SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="gtk policykit sasl"
-
-RDEPEND="!app-emulation/virtinst
- ${PYTHON_DEPS}
- app-cdr/cdrtools
- >=app-emulation/libvirt-glib-1.0.0[introspection]
- $(python_gen_cond_dep '
- dev-libs/libxml2[python,${PYTHON_MULTI_USEDEP}]
- dev-python/argcomplete[${PYTHON_MULTI_USEDEP}]
- dev-python/libvirt-python[${PYTHON_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- dev-python/requests[${PYTHON_MULTI_USEDEP}]
- ')
- >=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
- gnome-base/dconf
- >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
- net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
- net-misc/x11-ssh-askpass
- x11-libs/gtk+:3[introspection]
- x11-libs/gtksourceview:4[introspection]
- x11-libs/vte:2.91[introspection]
- policykit? ( sys-auth/polkit[introspection] )
- )
-"
-DEPEND="${RDEPEND}
- dev-python/docutils
- dev-util/intltool
-"
-
-DOCS=( README.md NEWS.md )
-
-src_prepare() {
- distutils-r1_src_prepare
-}
-
-python_configure() {
- esetup.py configure \
- --default-graphics=spice
-}
-
-python_install() {
- esetup.py install
-}
-
-src_install() {
- local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas )
- distutils-r1_src_install
-
- python_fix_shebang "${ED}"/usr/share/virt-manager
-}
-
-pkg_preinst() {
- if use gtk; then
- gnome2_pkg_preinst
-
- cd "${ED}"
- export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null)
- else
- rm -rf "${ED}/usr/share/virt-manager/virtManager"
- rm -f "${ED}/usr/share/virt-manager/virt-manager"
- rm -rf "${ED}/usr/share/virt-manager/ui/"
- rm -rf "${ED}/usr/share/virt-manager/icons/"
- rm -rf "${ED}/usr/share/man/man1/virt-manager.1*"
- rm -rf "${ED}/usr/share/icons/"
- rm -rf "${ED}/usr/share/applications/virt-manager.desktop"
- rm -rf "${ED}/usr/bin/virt-manager"
- fi
-}
-
-pkg_postinst() {
- use gtk && gnome2_pkg_postinst
-}
diff --git a/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild b/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild
new file mode 100644
index 000000000000..7397409177e5
--- /dev/null
+++ b/app-emulation/virt-manager/virt-manager-4.1.0-r1.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_SETUPTOOLS=no
+inherit gnome2 distutils-r1 optfeature
+
+DESCRIPTION="A graphical tool for administering virtual machines"
+HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
+ EGIT_BRANCH="main"
+ SRC_URI=""
+ inherit git-r3
+else
+ SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm64 ppc64 x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gui policykit sasl"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ || ( dev-libs/libisoburn app-cdr/cdrtools )
+ >=app-emulation/libvirt-glib-1.0.0[introspection]
+ >=sys-libs/libosinfo-0.2.10[introspection]
+ $(python_gen_cond_dep '
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ >=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+ gui? (
+ gnome-base/dconf
+ >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
+ net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
+ sys-apps/dbus[X]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/gtksourceview:4[introspection]
+ x11-libs/vte:2.91[introspection]
+ policykit? ( sys-auth/polkit[introspection] )
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-python/docutils"
+
+DOCS=( README.md NEWS.md )
+
+DISTUTILS_ARGS=(
+ --no-update-icon-cache
+ --no-compile-schemas
+)
+
+EPYTEST_IGNORE=(
+ # Wants to use /tmp osinfo config?
+ tests/test_cli.py
+
+ # These seem to be essentially coverage tests
+ tests/test_checkprops.py
+)
+
+distutils_enable_tests pytest
+
+python_configure() {
+ esetup.py configure --default-graphics=spice
+}
+
+python_test() {
+ export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0
+
+ epytest
+}
+
+python_install() {
+ esetup.py install
+}
+
+pkg_preinst() {
+ if use gui ; then
+ gnome2_pkg_preinst
+
+ cd "${ED}" || die
+ export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null || die)
+ else
+ rm -r "${ED}/usr/share/virt-manager/ui/" || die
+ rm -r "${ED}/usr/share/virt-manager/icons/" || die
+ rm -r "${ED}/usr/share/icons/" || die
+ rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die
+ rm -r "${ED}/usr/bin/virt-manager" || die
+ fi
+}
+
+pkg_postinst() {
+ use gui && gnome2_pkg_postinst
+
+ optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass
+ optfeature "QEMU host support" app-emulation/qemu[usbredir,spice]
+ optfeature "virt-install --location ISO support" dev-libs/libisoburn
+}
diff --git a/app-emulation/virt-manager/virt-manager-4.1.0.ebuild b/app-emulation/virt-manager/virt-manager-4.1.0.ebuild
new file mode 100644
index 000000000000..3614d2d36381
--- /dev/null
+++ b/app-emulation/virt-manager/virt-manager-4.1.0.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_SETUPTOOLS=no
+inherit gnome2 distutils-r1 optfeature
+
+DESCRIPTION="A graphical tool for administering virtual machines"
+HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager"
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
+ EGIT_BRANCH="main"
+ SRC_URI=""
+ inherit git-r3
+else
+ SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
+ KEYWORDS="amd64 arm64 ppc64 x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gui policykit sasl"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ app-cdr/cdrtools
+ >=app-emulation/libvirt-glib-1.0.0[introspection]
+ >=sys-libs/libosinfo-0.2.10[introspection]
+ $(python_gen_cond_dep '
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ >=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+ gui? (
+ gnome-base/dconf
+ >=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
+ net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
+ sys-apps/dbus[X]
+ x11-libs/gtk+:3[introspection]
+ x11-libs/gtksourceview:4[introspection]
+ x11-libs/vte:2.91[introspection]
+ policykit? ( sys-auth/polkit[introspection] )
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-python/docutils"
+
+DOCS=( README.md NEWS.md )
+
+DISTUTILS_ARGS=(
+ --no-update-icon-cache
+ --no-compile-schemas
+)
+
+EPYTEST_IGNORE=(
+ # Wants to use /tmp osinfo config?
+ tests/test_cli.py
+
+ # These seem to be essentially coverage tests
+ tests/test_checkprops.py
+)
+
+distutils_enable_tests pytest
+
+python_configure() {
+ esetup.py configure --default-graphics=spice
+}
+
+python_test() {
+ export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0
+
+ epytest
+}
+
+python_install() {
+ esetup.py install
+}
+
+pkg_preinst() {
+ if use gui ; then
+ gnome2_pkg_preinst
+
+ cd "${ED}" || die
+ export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null || die)
+ else
+ rm -r "${ED}/usr/share/virt-manager/ui/" || die
+ rm -r "${ED}/usr/share/virt-manager/icons/" || die
+ rm -r "${ED}/usr/share/icons/" || die
+ rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die
+ rm -r "${ED}/usr/bin/virt-manager" || die
+ fi
+}
+
+pkg_postinst() {
+ use gui && gnome2_pkg_postinst
+
+ optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass
+ optfeature "QEMU host support" app-emulation/qemu[usbredir,spice]
+ optfeature "virt-install --location ISO support" dev-libs/libisoburn
+}
diff --git a/app-emulation/virt-manager/virt-manager-9999.ebuild b/app-emulation/virt-manager/virt-manager-9999.ebuild
index a3390883c4d3..a7e83d3bf708 100644
--- a/app-emulation/virt-manager/virt-manager-9999.ebuild
+++ b/app-emulation/virt-manager/virt-manager-9999.ebuild
@@ -1,99 +1,105 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-PYTHON_COMPAT=( python3_{7,8,9} )
+PYTHON_COMPAT=( python3_{9..11} )
DISTUTILS_SINGLE_IMPL=1
-
DISTUTILS_USE_SETUPTOOLS=no
-inherit gnome2 distutils-r1
+inherit gnome2 distutils-r1 optfeature
DESCRIPTION="A graphical tool for administering virtual machines"
-HOMEPAGE="http://virt-manager.org"
+HOMEPAGE="https://virt-manager.org https://github.com/virt-manager/virt-manager"
-if [[ ${PV} = *9999* ]]; then
- inherit git-r3
- SRC_URI=""
- KEYWORDS=""
+if [[ ${PV} == *9999* ]]; then
EGIT_REPO_URI="https://github.com/virt-manager/virt-manager.git"
+ EGIT_BRANCH="main"
+ SRC_URI=""
+ inherit git-r3
else
- SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
- KEYWORDS="~amd64 ~ppc64 ~x86"
+ SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
fi
LICENSE="GPL-2"
SLOT="0"
-IUSE="gtk policykit sasl"
+IUSE="gui policykit sasl"
-RDEPEND="!app-emulation/virtinst
+RDEPEND="
${PYTHON_DEPS}
- app-cdr/cdrtools
+ || ( dev-libs/libisoburn app-cdr/cdrtools )
>=app-emulation/libvirt-glib-1.0.0[introspection]
+ >=sys-libs/libosinfo-0.2.10[introspection]
$(python_gen_cond_dep '
- dev-libs/libxml2[python,${PYTHON_MULTI_USEDEP}]
- dev-python/argcomplete[${PYTHON_MULTI_USEDEP}]
- dev-python/libvirt-python[${PYTHON_MULTI_USEDEP}]
- dev-python/pygobject:3[${PYTHON_MULTI_USEDEP}]
- dev-python/requests[${PYTHON_MULTI_USEDEP}]
+ dev-libs/libxml2[python,${PYTHON_USEDEP}]
+ dev-python/argcomplete[${PYTHON_USEDEP}]
+ >=dev-python/libvirt-python-6.10.0[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
')
- >=sys-libs/libosinfo-0.2.10[introspection]
- gtk? (
+ gui? (
gnome-base/dconf
>=net-libs/gtk-vnc-0.3.8[gtk3(+),introspection]
net-misc/spice-gtk[usbredir,gtk3,introspection,sasl?]
- net-misc/x11-ssh-askpass
+ sys-apps/dbus[X]
x11-libs/gtk+:3[introspection]
x11-libs/gtksourceview:4[introspection]
x11-libs/vte:2.91[introspection]
policykit? ( sys-auth/polkit[introspection] )
)
"
-DEPEND="${RDEPEND}
- dev-python/docutils
- dev-util/intltool
-"
+DEPEND="${RDEPEND}"
+BDEPEND="dev-python/docutils"
DOCS=( README.md NEWS.md )
-src_prepare() {
- distutils-r1_src_prepare
-}
+DISTUTILS_ARGS=(
+ --no-update-icon-cache
+ --no-compile-schemas
+)
+
+EPYTEST_IGNORE=(
+ # Wants to use /tmp osinfo config?
+ tests/test_cli.py
+
+ # These seem to be essentially coverage tests
+ tests/test_checkprops.py
+)
+
+distutils_enable_tests pytest
python_configure() {
- esetup.py configure \
- --default-graphics=spice
+ esetup.py configure --default-graphics=spice
}
-python_install() {
- esetup.py install
-}
+python_test() {
+ export VIRTINST_TEST_SUITE_FORCE_LIBOSINFO=0
-src_install() {
- local mydistutilsargs=( --no-update-icon-cache --no-compile-schemas )
- distutils-r1_src_install
+ epytest
+}
- python_fix_shebang "${ED}"/usr/share/virt-manager
+python_install() {
+ esetup.py install
}
pkg_preinst() {
- if use gtk; then
+ if use gui ; then
gnome2_pkg_preinst
- cd "${ED}"
- export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null)
+ cd "${ED}" || die
+ export GNOME2_ECLASS_ICONS=$(find 'usr/share/virt-manager/icons' -maxdepth 1 -mindepth 1 -type d 2> /dev/null || die)
else
- rm -rf "${ED}/usr/share/virt-manager/virtManager"
- rm -f "${ED}/usr/share/virt-manager/virt-manager"
- rm -rf "${ED}/usr/share/virt-manager/ui/"
- rm -rf "${ED}/usr/share/virt-manager/icons/"
- rm -rf "${ED}/usr/share/man/man1/virt-manager.1*"
- rm -rf "${ED}/usr/share/icons/"
- rm -rf "${ED}/usr/share/applications/virt-manager.desktop"
- rm -rf "${ED}/usr/bin/virt-manager"
+ rm -r "${ED}/usr/share/virt-manager/ui/" || die
+ rm -r "${ED}/usr/share/virt-manager/icons/" || die
+ rm -r "${ED}/usr/share/icons/" || die
+ rm -r "${ED}/usr/share/applications/virt-manager.desktop" || die
+ rm -r "${ED}/usr/bin/virt-manager" || die
fi
}
pkg_postinst() {
- use gtk && gnome2_pkg_postinst
+ use gui && gnome2_pkg_postinst
+
+ optfeature "SSH_ASKPASS program implementation" lxqt-base/lxqt-openssh-askpass net-misc/ssh-askpass-fullscreen net-misc/x11-ssh-askpass
+ optfeature "QEMU host support" app-emulation/qemu[usbredir,spice]
}
diff --git a/app-emulation/virt-viewer/Manifest b/app-emulation/virt-viewer/Manifest
index ef6781ba6874..4bf036f22561 100644
--- a/app-emulation/virt-viewer/Manifest
+++ b/app-emulation/virt-viewer/Manifest
@@ -1,3 +1 @@
-DIST virt-viewer-7.0.tar.gz 924475 BLAKE2B 003efaf88445ec6f523e678459ed1e11562d0cd87fb4811105df9ac1e3129f4a97170c5b783f1d504d157055ae51ac8dc23ffa8f3f79dd6cd55707d962e1d9ad SHA512 e0558c9138877f546add6a3df9721e100cadb6953815be82b2376b0521b82cf14052bdc29c42bb03b198b6e9d129a55d33531a153207d7f29b5c1c3402ebc904
-DIST virt-viewer-8.0.tar.gz 937457 BLAKE2B 107a5f77d0e272665561e22c950416275c939d000fbb522401a954e6836bbd9e9399e768bc4363a1ea3110dd3229fe33738560563271774c3054278b2399cab8 SHA512 73317048949b6c49c28aab4685e3fb6533945b12c47078b522429b3e178423fcec5758c970d5048c8f65fee2b92a629b7e067cffa79c968292c73fd36133b918
-DIST virt-viewer-9.0.tar.gz 1176991 BLAKE2B bc4df73575195888b769dddd8de5c0eda9daa257902f3f3ce8099f9096d0cd9be28547c8671decb70e83e5f0de71633793886bfe78bd9ab5f360dc9759afcc5b SHA512 a5901d76c3e144fa3d6e640de93ed7f1e7cbeb075c04cdbe4a8c9c09bce96104ea552484df5e84c7a69af8dddd1177123ddb81b2dac775a98ac312f3102daae2
+DIST virt-viewer-11.0.tar.xz 259772 BLAKE2B 41914a60361f0a47a0b0b54962d228ffaec67c6b69c664bb6fe683b7074dd5e2136d2bf3528b6e1b6b785cc4e337125fe16fdd94dd603dd42e8fde543931241a SHA512 738034e15e40a7aaadd2646bf289c12409cbf2d06925d43baa50fa7bc8438188480d6b97687e9816427ac0a9dae84d205351715cb2f38afdbefa2dd1d134904a
diff --git a/app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch b/app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch
new file mode 100644
index 000000000000..46c708b9d342
--- /dev/null
+++ b/app-emulation/virt-viewer/files/virt-viewer-10.0_p20210730-meson-0.61.patch
@@ -0,0 +1,36 @@
+https://gitlab.com/virt-viewer/virt-viewer/-/merge_requests/117.patch
+https://bugs.gentoo.org/831963
+
+From 41cc016278e713d3db156761fce6437dff81a53a Mon Sep 17 00:00:00 2001
+From: Michal Vasilek <michal@vasilek.cz>
+Date: Sat, 22 Jan 2022 23:28:20 +0100
+Subject: [PATCH] meson: fix build with meson 0.61
+
+i18n.merge_file doesn't accept positional arguments
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -2,7 +2,6 @@ if host_machine.system() != 'windows'
+ desktop = 'remote-viewer.desktop'
+
+ i18n.merge_file (
+- desktop,
+ type: 'desktop',
+ input: desktop + '.in',
+ output: desktop,
+@@ -14,7 +13,6 @@ if host_machine.system() != 'windows'
+ mimetypes = 'virt-viewer-mime.xml'
+
+ i18n.merge_file (
+- mimetypes,
+ type: 'xml',
+ input: mimetypes + '.in',
+ output: mimetypes,
+@@ -27,7 +25,6 @@ if host_machine.system() != 'windows'
+ metainfo = 'remote-viewer.appdata.xml'
+
+ i18n.merge_file (
+- metainfo,
+ type: 'xml',
+ input: metainfo + '.in',
+ output: metainfo,
+GitLab
diff --git a/app-emulation/virt-viewer/metadata.xml b/app-emulation/virt-viewer/metadata.xml
index 3311e82897cd..bed4bdbaeac4 100644
--- a/app-emulation/virt-viewer/metadata.xml
+++ b/app-emulation/virt-viewer/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>virtualization@gentoo.org</email>
@@ -10,7 +10,12 @@
managed by libvirt.</flag>
<flag name="spice">Support connecting to SPICE-enabled virtual
machines.</flag>
+ <flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>)
+ in the GTK+ interface</flag>
<flag name="vnc">Support connecting to VNC-enabled virtual
machines.</flag>
</use>
+ <upstream>
+ <remote-id type="gitlab">virt-viewer/virt-viewer</remote-id>
+ </upstream>
</pkgmetadata>
diff --git a/app-emulation/virt-viewer/virt-viewer-11.0.ebuild b/app-emulation/virt-viewer/virt-viewer-11.0.ebuild
new file mode 100644
index 000000000000..e018a5a1b62a
--- /dev/null
+++ b/app-emulation/virt-viewer/virt-viewer-11.0.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit meson python-any-r1 xdg
+
+DESCRIPTION="Graphical console client for connecting to virtual machines"
+HOMEPAGE="https://virt-manager.org/ https://gitlab.com/virt-viewer/virt-viewer"
+if [[ ${PV} == *_p* ]] ; then
+ GIT_HASH="f0cc7103becccbce95bdf0c80151178af2bace5a"
+ SRC_URI="https://gitlab.com/${PN}/${PN}/-/archive/${GIT_HASH}/${PN}-${GIT_HASH}.tar.bz2 -> ${P}.tar.bz2"
+ S="${WORKDIR}/${PN}-${GIT_HASH}"
+else
+ SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.xz"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="+libvirt sasl +spice +vnc vte"
+
+RDEPEND="dev-libs/glib:2
+ >=dev-libs/libxml2-2.6
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/pango
+ libvirt? (
+ >=app-emulation/libvirt-0.10.0:=[sasl?]
+ app-emulation/libvirt-glib
+ )
+ spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] )
+ vte? ( x11-libs/vte:2.91 )
+ vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )"
+DEPEND="${RDEPEND}
+ spice? ( >=app-emulation/spice-protocol-0.12.10 )"
+BDEPEND="${PYTHON_DEPS}
+ dev-lang/perl
+ virtual/pkgconfig"
+
+REQUIRED_USE="|| ( spice vnc )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-10.0_p20210730-meson-0.61.patch
+)
+
+src_prepare() {
+ default
+
+ # Fix python shebangs for python-exec[-native-symlinks], #811408
+ local shebangs=($(grep -rl "#!/usr/bin/env python3" || die))
+ python_fix_shebang -q ${shebangs[*]}
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature libvirt)
+ $(meson_feature vte)
+ $(meson_feature vnc)
+ $(meson_feature spice)
+
+ -Dgit_werror=disabled
+ )
+
+ meson_src_configure
+}
diff --git a/app-emulation/virt-viewer/virt-viewer-7.0.ebuild b/app-emulation/virt-viewer/virt-viewer-7.0.ebuild
deleted file mode 100644
index 62a5fc06143a..000000000000
--- a/app-emulation/virt-viewer/virt-viewer-7.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit gnome2
-
-DESCRIPTION="Graphical console client for connecting to virtual machines"
-HOMEPAGE="http://virt-manager.org/"
-SRC_URI="http://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="sasl +spice +vnc"
-
-RDEPEND=">=app-emulation/libvirt-0.10.0[sasl?]
- app-emulation/libvirt-glib
- >=dev-libs/libxml2-2.6
- x11-libs/gtk+:3
- spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] )
- vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )"
-DEPEND="${RDEPEND}
- dev-lang/perl
- >=dev-util/intltool-0.35.0
- virtual/pkgconfig
- spice? ( >=app-emulation/spice-protocol-0.12.10 )"
-
-REQUIRED_USE="|| ( spice vnc )"
-
-src_configure() {
- gnome2_src_configure \
- --disable-update-mimedb \
- --without-ovirt \
- $(use_with vnc gtk-vnc) \
- $(use_with spice spice-gtk)
-}
diff --git a/app-emulation/virt-viewer/virt-viewer-8.0.ebuild b/app-emulation/virt-viewer/virt-viewer-8.0.ebuild
deleted file mode 100644
index 5bb016169c9d..000000000000
--- a/app-emulation/virt-viewer/virt-viewer-8.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit gnome2
-
-DESCRIPTION="Graphical console client for connecting to virtual machines"
-HOMEPAGE="https://virt-manager.org/"
-SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE="+libvirt sasl +spice +vnc"
-
-RDEPEND=">=dev-libs/libxml2-2.6
- x11-libs/gtk+:3
- libvirt? (
- >=app-emulation/libvirt-0.10.0[sasl?]
- app-emulation/libvirt-glib
- )
- spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] )
- vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )"
-DEPEND="${RDEPEND}
- dev-lang/perl
- >=dev-util/intltool-0.35.0
- virtual/pkgconfig
- spice? ( >=app-emulation/spice-protocol-0.12.10 )"
-
-REQUIRED_USE="|| ( spice vnc )"
-
-src_configure() {
- gnome2_src_configure \
- --disable-update-mimedb \
- --without-ovirt \
- $(use_with libvirt) \
- $(use_with vnc gtk-vnc) \
- $(use_with spice spice-gtk)
-}
diff --git a/app-emulation/virt-viewer/virt-viewer-9.0.ebuild b/app-emulation/virt-viewer/virt-viewer-9.0.ebuild
deleted file mode 100644
index 098fc095c389..000000000000
--- a/app-emulation/virt-viewer/virt-viewer-9.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-inherit gnome2
-
-DESCRIPTION="Graphical console client for connecting to virtual machines"
-HOMEPAGE="https://virt-manager.org/"
-SRC_URI="https://virt-manager.org/download/sources/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="+libvirt sasl +spice +vnc"
-
-RDEPEND=">=dev-libs/libxml2-2.6
- x11-libs/gtk+:3
- libvirt? (
- >=app-emulation/libvirt-0.10.0[sasl?]
- app-emulation/libvirt-glib
- )
- spice? ( >=net-misc/spice-gtk-0.35[sasl?,gtk3] )
- vnc? ( >=net-libs/gtk-vnc-0.5.0[sasl?,gtk3(+)] )"
-DEPEND="${RDEPEND}
- dev-lang/perl
- >=dev-util/intltool-0.35.0
- virtual/pkgconfig
- spice? ( >=app-emulation/spice-protocol-0.12.10 )"
-
-REQUIRED_USE="|| ( spice vnc )"
-
-src_configure() {
- gnome2_src_configure \
- --disable-update-mimedb \
- --without-ovirt \
- $(use_with libvirt) \
- $(use_with vnc gtk-vnc) \
- $(use_with spice spice-gtk)
-}
diff --git a/app-emulation/virt-what/Manifest b/app-emulation/virt-what/Manifest
index 5bdbd3695f38..266b97d053ce 100644
--- a/app-emulation/virt-what/Manifest
+++ b/app-emulation/virt-what/Manifest
@@ -1,3 +1,2 @@
-DIST virt-what-1.18.tar.gz 173703 BLAKE2B c1ab6f331ca370572cedef06fd3eb9177ca8ef4302446eb46c737446a001e77a0825ec8771aade903e6194af3f4f745c3f35f1d9dbbb8a0550b493296878ade3 SHA512 8085a38111d5664f411f5bb9d2ee221bc22e5b0f2d993e8d518718b3f63b16ba73e052b1623c090493cf8fef52fd237ba823377503a32b4b7d03cc5380d5c613
-DIST virt-what-1.19.tar.gz 183594 BLAKE2B 36b58cbe41f195cf81e0b0cf35ab881c3746ac352c57f470e1fe0005d65534f38886d7688ee9393837e667fd1c8bf41af013f3a12748db5f8615b9b5c944f7a9 SHA512 7b6e6c00e3f35cea236cc5f5fdf28d13e9e38143f280dfcbf083ebf0dca2cb677752b8daec5b2956a08405d1fe5368f9f633ce11a854928c31121a35ee4c6820
-DIST virt-what-1.20.tar.gz 459243 BLAKE2B c51bfc4366ba90e32548a5d1e0779fcc1835dae7a6bb2b6f67b4371c2d2e949339aa0ff67d64485cdb03592713a3ae04a6779e4dac0babf08bb268ce6403066f SHA512 edf74903122bfb422c7a5ecba711bb64d6ef668828f208dfc0571ef14f2643456c14bc9a77dfea209df3d93869ac0a2c9fd039779922eddc6ebd9d988585dea4
+DIST virt-what-1.21.tar.gz 478767 BLAKE2B 7c48b84d9f1fe5f734921f68848b84beee2e5687a6ebfbc422a1349063e6a83c932a89cb2936239da6be033b72e6010694314cf106486cd6c54cd02652bc61a6 SHA512 14ace184c4aee5a09b855c1f5acaa619057aed1b9bf03c91ed1003e6a39ea69162c9fe452ea8162c7fe29825e0e2202cfc7d76e82f0cecea3e32405e5eb9f717
+DIST virt-what-1.25.tar.gz 516445 BLAKE2B 3f3403a3954e359005754e1ad2aba545a824ff9eb77e787615235c1042735f99a58d89f755c265324c16a9d0467e8332a67dff88b3ac15ae21a4f4f7a6dd3136 SHA512 0147b4b44ae0ee685977aa34dfa9bf30ae8e0eb31b7a6d5c0097d16f830fa6fb6afd7156964fc79f3fd5e82b2f68d921fd5306245cc63a2140f6dddc7fdd0e98
diff --git a/app-emulation/virt-what/metadata.xml b/app-emulation/virt-what/metadata.xml
index 5bdec46056c4..d25679ed78c7 100644
--- a/app-emulation/virt-what/metadata.xml
+++ b/app-emulation/virt-what/metadata.xml
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>eva@gentoo.org</email>
- <name>Gilles Dartiguelongue</name>
- </maintainer>
- <maintainer type="person">
<email>prometheanfire@gentoo.org</email>
<name>Matthew Thode</name>
</maintainer>
diff --git a/app-emulation/virt-what/virt-what-1.19.ebuild b/app-emulation/virt-what/virt-what-1.19.ebuild
deleted file mode 100644
index bbc7f8023ffc..000000000000
--- a/app-emulation/virt-what/virt-what-1.19.ebuild
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Detects if the current machine is running in a virtual machine"
-HOMEPAGE="https://people.redhat.com/~rjones/virt-what/"
-SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
-IUSE="dmi"
-
-DEPEND="dev-lang/perl"
-RDEPEND="app-shells/bash
- dmi? ( sys-apps/dmidecode )"
-
-src_prepare() {
- default
-
- # Pretends to be POSIX sh while it is not
- sed -e 's:/bin/sh:/bin/bash:' -i virt-what.in || die
-}
diff --git a/app-emulation/virt-what/virt-what-1.20.ebuild b/app-emulation/virt-what/virt-what-1.21.ebuild
index 9c1c37709d81..7b5da45a3537 100644
--- a/app-emulation/virt-what/virt-what-1.20.ebuild
+++ b/app-emulation/virt-what/virt-what-1.21.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -9,7 +9,7 @@ SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86"
IUSE="dmi"
DEPEND="dev-lang/perl"
diff --git a/app-emulation/virt-what/virt-what-1.18.ebuild b/app-emulation/virt-what/virt-what-1.25.ebuild
index 59adce2a2542..a6226954adcb 100644
--- a/app-emulation/virt-what/virt-what-1.18.ebuild
+++ b/app-emulation/virt-what/virt-what-1.25.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
DESCRIPTION="Detects if the current machine is running in a virtual machine"
HOMEPAGE="https://people.redhat.com/~rjones/virt-what/"
@@ -9,7 +9,7 @@ SRC_URI="https://people.redhat.com/~rjones/virt-what/files/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="amd64 arm hppa ppc ppc64 sparc x86"
+KEYWORDS="amd64 arm arm64 ~hppa ppc ppc64 ~riscv sparc x86"
IUSE="dmi"
DEPEND="dev-lang/perl"
diff --git a/app-emulation/virtio-win/Manifest b/app-emulation/virtio-win/Manifest
index f3ffb3babcc6..51d9ac1c93a3 100644
--- a/app-emulation/virtio-win/Manifest
+++ b/app-emulation/virtio-win/Manifest
@@ -1,3 +1,3 @@
-DIST virtio-win-0.1.173.iso 393902080 BLAKE2B a90da9d4e23a95c4cf9f02cc010664d87c987d7a9b82a90b534ec69041f763d73d7b37b1378078a162e7ef4f06b9d4cd6c5b7c4b98d77ff75bcd0d06a8ede8a2 SHA512 49cba35d74a3f480f6d23a57b68217f5732e8bcfb7657a4a87f16b286ad2c6ffd2509f034d0b4f363a389ce50d4d0e80e241f7ddff3e93b5dc315dad1713f08a
-DIST virtio-win-0.1.185.iso 413564928 BLAKE2B 84aa2d0ce16292b95431044618538f6dc176ff834f5e01b245414e27a74775a0e202c7b9262495de9d5f54476fe4dfa5e853f30b994e301080fee1a1c840f823 SHA512 62992baafce1f2eb52c23ba62291765c535c513e2598910083a8519eff58e8c57366d46add702e791fb07ec96c0fb65c9cff03b57e8f32b4357799c86b46c198
-DIST virtio-win-0.1.187.iso 433235968 BLAKE2B 0df10aa5f46cd70f7530f6d677b882df364a0b1a859d7e9fe777817136213d4f856116cf73b8521e8720c203bca3321b9a7bdae057f867e655764a8b7d5dc0b2 SHA512 db9938f1f17b723a994d1bd5bb0e0ffce47ae2bbfa96f9bdf1d895750502600f9a71f0486a97af9301659e05ebd5365d1f08dc0e062d1f9e4c3acaac8b7f0bf5
+DIST virtio-win-0.1.229.iso 534818816 BLAKE2B 29442b70e5809fc935940497b4bc021f6fe890beba97605b048e0c5236764d08bc164974be25bf8331136ebbdf664ea440efe1f219129a30a171134bfe369942 SHA512 e9ccb513b07cb28ab490f5d4e299d0d52ade956f82e1a708e91c1ee3af9b142fa144af0fe5287d3bbb369f586857791952de45d1241058073f5a59c1f2f913ca
+DIST virtio-win-0.1.240.iso 627519488 BLAKE2B e5bbf3be166508c437cfc9b7922e93f4229a63cf9cf5dffd0c8ee2836c084b92cb30c76e1cc60432508504df2874ca461481db6664823b11a76cec5186743c97 SHA512 24e0f3d9c25835f2633d2823dade95aae4884aed95a5142d87efeb4aaed48dbc04a82a34ac5310676853008e0de271dfa0747b4c619ed20fa72ffe2e93fadcf3
+DIST virtio-win-0.1.248.iso 732352512 BLAKE2B b3161f020f59eadabc685155ac3a7c402762adf84fa85bc2e4f468df31adf0204b248963a11b84b18520aa815e6907cfb1618a527875a4fd72b2c2e09fc1ce5a SHA512 16cc0c58b5df6c7040893089f3eb29c074aed61d76dae6cd628d8a89a05f6223ac5d7f3f709a12417c147594a87a94cc808d1e04a6f1e407cc41f7c9f47790d1
diff --git a/app-emulation/virtio-win/files/README.gentoo b/app-emulation/virtio-win/files/README.gentoo
new file mode 100644
index 000000000000..9c50feb9a1e8
--- /dev/null
+++ b/app-emulation/virtio-win/files/README.gentoo
@@ -0,0 +1,15 @@
+VirtIO drivers have been installed as a CD-ROM image to
+
+ /usr/share/drivers/windows/virtio-win.iso
+
+To install the drivers on a Windows guest machine, either during or after the
+installation of Windows, pass the iso file to the guest machine and mount it as
+a CD-ROM image. Then, in the Windows guest, open the Device Manager and start
+the driver update wizard. Locate the appropriate device and click to update its
+driver. In the pop-up window, click to browse in the guest machine to locate
+the iso image, and select the driver(s) from it to install.
+
+For an example, see: https://wiki.gentoo.org/wiki/QEMU/Windows_guest
+
+For information on using the Device Manager, refer to the Windows
+documentation.
diff --git a/app-emulation/virtio-win/metadata.xml b/app-emulation/virtio-win/metadata.xml
index d155fdbc0406..bc997df6766f 100644
--- a/app-emulation/virtio-win/metadata.xml
+++ b/app-emulation/virtio-win/metadata.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>gentoo@aisha.cc</email>
- <name>Aisha Tammy</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
+ <maintainer type="person" proxied="yes">
+ <email>kaichun.ning@gmail.com</email>
+ <name>Kai-Chun Ning</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
</pkgmetadata>
diff --git a/app-emulation/virtio-win/virtio-win-0.1.173.9.ebuild b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild
index 8f43008b5179..1bb20ab6f1e2 100644
--- a/app-emulation/virtio-win/virtio-win-0.1.173.9.ebuild
+++ b/app-emulation/virtio-win/virtio-win-0.1.229.1.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
+
+inherit readme.gentoo-r1
MY_PV=$(ver_cut 1-3)
MY_DW=$(ver_rs 3 -)
@@ -10,12 +12,19 @@ DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html"
SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso"
-LICENSE="GPL-2"
+LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="amd64"
S="${WORKDIR}"
+INSTALL_PATH=/usr/share/drivers/windows
src_install() {
- insinto /usr/share/drivers/windows
+ insinto "${INSTALL_PATH}"
doins "${DISTDIR}/${PN}-${MY_PV}.iso"
+ dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
}
diff --git a/app-emulation/virtio-win/virtio-win-0.1.185.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild
index 317b5b926c06..057b187a0c4b 100644
--- a/app-emulation/virtio-win/virtio-win-0.1.185.1.ebuild
+++ b/app-emulation/virtio-win/virtio-win-0.1.240.1.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
+
+inherit readme.gentoo-r1
MY_PV=$(ver_cut 1-3)
MY_DW=$(ver_rs 3 -)
@@ -10,13 +12,19 @@ DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html"
SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso"
-LICENSE="GPL-2"
+LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL"
SLOT="0"
KEYWORDS="~amd64"
S="${WORKDIR}"
+INSTALL_PATH=/usr/share/drivers/windows
src_install() {
- insinto /usr/share/drivers/windows
+ insinto "${INSTALL_PATH}"
doins "${DISTDIR}/${PN}-${MY_PV}.iso"
- dosym "${PN}-${MY_PV}.iso" "/usr/share/drivers/windows/${PN}.iso"
+ dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
}
diff --git a/app-emulation/virtio-win/virtio-win-0.1.187.1.ebuild b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild
index 317b5b926c06..bc890c11f60a 100644
--- a/app-emulation/virtio-win/virtio-win-0.1.187.1.ebuild
+++ b/app-emulation/virtio-win/virtio-win-0.1.248.1.ebuild
@@ -1,7 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
+
+inherit readme.gentoo-r1
MY_PV=$(ver_cut 1-3)
MY_DW=$(ver_rs 3 -)
@@ -10,13 +12,19 @@ DESCRIPTION="VirtIO drivers for Windows virtual machines running on KVM"
HOMEPAGE="https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html"
SRC_URI="https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/${PN}-${MY_DW}/${PN}-${MY_PV}.iso"
-LICENSE="GPL-2"
+LICENSE="BSD Apache-2.0 GPL-2 GPL-2+ GPL-3+ LGPL-2+ Ms-RL"
SLOT="0"
KEYWORDS="~amd64"
S="${WORKDIR}"
+INSTALL_PATH=/usr/share/drivers/windows
src_install() {
- insinto /usr/share/drivers/windows
+ insinto "${INSTALL_PATH}"
doins "${DISTDIR}/${PN}-${MY_PV}.iso"
- dosym "${PN}-${MY_PV}.iso" "/usr/share/drivers/windows/${PN}.iso"
+ dosym "${PN}-${MY_PV}.iso" "${INSTALL_PATH}/${PN}.iso"
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
}
diff --git a/app-emulation/virtiofsd/Manifest b/app-emulation/virtiofsd/Manifest
new file mode 100644
index 000000000000..7fc7bbeb47fc
--- /dev/null
+++ b/app-emulation/virtiofsd/Manifest
@@ -0,0 +1,87 @@
+DIST aho-corasick-0.7.18.crate 112923 BLAKE2B 4f6947d1aacf89ccfab0592cdc55fa61ef09cea38231d3f758765dbce328a810c0b588be4ba96e81d64955379ee005722d22a7aec39caea6e72342245d7ca34f SHA512 7a23b16231a90d23ee60ad4c81bc225410599a4560d33d3a203138fc540c39cf1000100fed3aed40dcc371c3635656a3792545dca5dd1aefbde00d8774eebd00
+DIST anstream-0.3.2.crate 19504 BLAKE2B 617b846c244ea4ccd6c7835a382afe85e14c245ea56b678f57ee12e9c7bcc1c0c3db9620eb4d16bf35e17eca38968bf04420b758f482ac5594670e6292c1fbb9 SHA512 b896e5208a2ee6a3c98bf3bb9ac1c52792de114dfa5709dadcac6183ea19ea63230dffd3217e571354a71d69b8eafbb0189e05f8f77f50922020de54e3aeecc8
+DIST anstyle-1.0.1.crate 13977 BLAKE2B 35be03a7de78737592528967e8ad4851436a74c7863cae9cf5cf7366d3cce9bbbd255b1a89401051f82fe8569a0ff029dcfe427c14a2e0677890453c6119d241 SHA512 2bf9b83ad9772c6a3ef28239cbb98bd667dc631fd1ef76ec5029825c128f6cb22756bb1548dd991e482f86eb9fd94fae5c648f91de2c0d71754b6dca4ec2362c
+DIST anstyle-parse-0.2.1.crate 24802 BLAKE2B 6304a56c6a9fbaf1bb4d1d177b2315684345dc9d71c35836f9544145364f8d6eb56e25c03076690c594ab7db5914501acb569f6c136952e59c93179ced527fb2 SHA512 5c8fc7d88ffc3a6e78340ffe0f3c2d72e865512030ade4509de9c673eba955c536bb1873dac11f6ba11cc8367fb30c67451ed65d19f81507c9e917c702bfd176
+DIST anstyle-query-1.0.0.crate 8620 BLAKE2B 2d296b5066fd6284a2410923215571e6df650c5ef892d6de7a7088a0996ca30608797feabc84f3c325ff4d07001dac80ac5067d2a9c9d15d9ba59a276b399f53 SHA512 2781be5c82293b7ae338ec5046fbeb130de9eb2dbf2e4dfaa73ca5233032e1e52c133e141b02f33d4bc36d996a0a3f680ac82d42d614a5305005f60547133c7a
+DIST anstyle-wincon-1.0.1.crate 11718 BLAKE2B 2500845a23edfb47ecd156424a89789c713a7c367c3fef98d26e4e7b2acb3c6433d39a1c2a59813a98266b0993d4b750e9b6b68b7ced7ec5a04a8b13bad174e7 SHA512 00c380fc0198c49776c40aeef419be2fd2d6809bd2e5d86457f1658c6f4b2e83ebe8feee95855c3bbedd4200a917f582bd41b0ee0cf5d7d1d5017228885a58e6
+DIST arc-swap-1.5.0.crate 65351 BLAKE2B c6b278134f6e29551302e27131639f3bc5bfb05042701cf6c12aab1697f211be0942c44919d374e196ef03605fb137334b42decb9623a137b6ead346586c2105 SHA512 b668a75b2ac77a9d2df3f29b70c8c22e5a961cd2478cd76b6d313e0e1ff809508887451b895f057d160860daa4b02cb74616ab8daa34d163ef3f42a009842031
+DIST atty-0.2.14.crate 5470 BLAKE2B 2db856a9e898a430258f059aeaf7c844a153293e8856d90ac81f7d91a888c89198768ad5cb09303c23241fe85c560a55148fa56a303651a82b0edb895616bfab SHA512 d7b6c4b9a0f898d91ddbc41a5ee45bbf45d1d269508c8cc87ee3e3990500e41e0ec387afb1f3bc7db55bedac396dd86c6509f4bf9e5148d809c3802edcc5e1d9
+DIST autocfg-1.1.0.crate 13272 BLAKE2B 7724055c337d562103f191f4e36cab469e578f0c51cc24d33624dea155d108a07578703766341fd6a4cc1ef52acda406e7dba1650d59115f18261281e5b40203 SHA512 df972c09abbdc0b6cb6bb55b1e29c7fed706ece38a62613d9e275bac46a19574a7f96f0152cccb0239efea04ee90083a146b58b15307696c4c81878cd12de28f
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.4.1.crate 37043 BLAKE2B f61c45b142265e9c2944c7054e01704de47510735e9ee5351cd02b98676cc4eb42d68b1fc4849ad5f54654617a74f20cb533b4207c2fe76516b724ba9318b414 SHA512 d3fd7abc95acc1cb5bf16d6acc12dbb8eadd250f069268df13c2e8dc3d5f5c15a929cd17ca931c77393b64dce0516ef8674c469789ed32d78e315b5faada062b
+DIST capng-0.2.2.crate 24372 BLAKE2B 85cf114065f0f103a9e1583b11316c5a95d5fa9f5d70448d6749b500e956e4e0c6fb4f5e548a7490d191ecae878624cf4ea1e5026a6a0796c8269e68de70af0e SHA512 132c446c36eea932a39190b284d0f2f29b50334dc8c12043e43a1eca90366a56b2034c649740ac20ded4c4e91147226237cbbcee18750dfc281154644d6fa0db
+DIST cc-1.0.79.crate 62624 BLAKE2B b3cbed3bd6fcac1c6ea258ec96cd107f859947a35dc89c3dc8f314741b0f668e61518f896ec32ce10c9a7eb20dd350bc177a71810d53ebea59fda062ed9d27db SHA512 cbf0a25f3a23fc540e9d638fabc23f761f1c240ebb4814e761e90437d71fc559cd155768ab9e78fc192220d8a605c66c3af342ed736b719181656170b98d7bf5
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST clap-4.3.11.crate 54864 BLAKE2B c1b0567950d6df6c6f40d0f0c2fcb4c485a65a3d5abe49ca04ba8c3ff24ffa52eb08a7d17395c20fc0ff09fee06852ff854369dbe033bc049d322b0a61b13142 SHA512 d00a142055671b4986f95e394f01d05cc41e9bb2fed23b2b1f6cc3366fc24204d877bc5220572f2a7a9424136b24d2596cd7ec7d1604c13b1384c0f0d9d1012a
+DIST clap_builder-4.3.11.crate 160795 BLAKE2B ec650dd28d65412f594ad7cb578afb36412840bd7e04734f8c4bd8a40b453cd2c926ad7164dbdd0e33d357a8c3830560ad03d6f8e105463b7ba592ab68ba897c SHA512 9b0dfe5bfa838d6f5fd9388f574a6a880d724dd49eb987955609bc1e754fdade6db9fd9fc6672d42458d9e621e638aa7702205d894d2318a12711791168bb741
+DIST clap_derive-4.3.2.crate 29053 BLAKE2B 9e578a78e92fcb90689c1327a41f446fac64506ac77c4721f5a87094b18beb540704846485585525695de333c301bd6f6da2805bad4d00888664da01e5a1a8c8 SHA512 2d7214eb91517067d6701443440f514648ae1345a326e6d00c1fec9d387e7781d5ce429d340277eb85fd436fec69154ba51d6a10a0e117276656f0187ddc19fe
+DIST clap_lex-0.5.0.crate 11792 BLAKE2B 0409c9d957ea6a566eb8b50f4212702df038d04c4c38f7440d91cb4c58ec887940f0cf500c4c3949c2191399aac3f5cb1ce44868eac587cde90211d3e467b9a2 SHA512 0149ed7c2438a19b4857f895767550d783711078f07bfa9ac8ca531e06f51c7388110f4d558e30bf503536367cc370cb581e8deb6fe51f9b5460a334963daacd
+DIST colorchoice-1.0.0.crate 6857 BLAKE2B a0818be1299717461ffc1bcfb6fc53a0b3b645aa8c45fb72e045cf2d876fa207948610e58d6a837aad24838ea9616e80b0558ca3eae03fdf9bc4c03a8e5ba52f SHA512 53363f2889cd8e8a3b3ed10c48356896c0daa72f3c12c9c7804707ab0dbc07c0e34ef52fa4f0fb1647311ce5913168c1bf62c2407ff86a33f765a9e6fccad551
+DIST env_logger-0.8.4.crate 33342 BLAKE2B b1bb359be2f34ca6f93f72154c86920b8254f574b48f693b2ae7296cd1ff25d34dea61e95fb2954569fdebb6c522c851ef7499c107005528aa2226df13b0de33 SHA512 9e4478ff609a2e1e1a902a55b221af43a52622fdb5668dc33fb0be354b964708b7b6d13b7f1ef11982f45fa7e71f0712a2ab3fd4ea98155a5115e5a7c3d33049
+DIST errno-0.3.1.crate 10348 BLAKE2B 72831d0b69f95884a69918249cc0e814eb5eade3205331bec6d2021f8b01a42c4c9b494f2717033d65a4c5230c8490b6ce250d349c1e8e177b20e7e84a860020 SHA512 00d64157d066f1e7601c522c0f4e777eb662ca5cce64682f616de0734857765c343396f7161ac2908c3db0c474995ae157bfe9d8a9880743724d9bd428dfdf54
+DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916
+DIST error-chain-0.12.4.crate 29274 BLAKE2B d082bcbce47411477e8b597cfcb76985cc7d6f1696926cb5314f4e84d2c8642939f5263e110aaef56353ec086a21874a8093bcea1d018be81c86ca42c2c30d71 SHA512 c0ee19a0ba2d79ff1843148d0a582045e68466a9dc429e5f3c8a3a75bc1b6e0d6de03ad69fce851bc0297e7db77b2c6817a13c37e1c3d4501ed41db8a454bf79
+DIST futures-0.3.21.crate 49935 BLAKE2B 290dee4f7662a473d82350092c0b12a8270f6d6f5eae9e4f7e06a6abf59e2d9f2d33e5e62e2682fcf6e109d62f651cb37cc467cff2b20f909c72b5fee2cb7683 SHA512 723fc190e4480fd812a852656fa6509a188f0d06adaa1c22ef24ec4afa7688a1c5d3961e5747f0812d073fc672b0e084af6ad5e5c3fac3ea5829466f993ad865
+DIST futures-channel-0.3.21.crate 31961 BLAKE2B e99f37cdeac080c8bad2203fd24b48eb62918166104ad6cc531c8f69d3e0c3a5898ca27f19693e2c143c9049a7d244f9af49c16fecba12233f9ff3f1d01e35b0 SHA512 1c10398657949b53b6df196cc44d8e4b3acf53b4d216be6f5f631d8d4b500f5c344e2cc7d5a5642ced6c5480511884611be6d429f56a0ede4a716b9c5770cb76
+DIST futures-core-0.3.21.crate 14601 BLAKE2B 73cf4c422202a34cc9916509939fab35c79093a6c1aeb99e35763727ebf7d3a06ae203684d75cc74183126f0cd95dec1530f136ffa2a0e69354c554883e3af1f SHA512 b60e7892436ae28fd2240f17816f934f6caeac663d67b8efc7d519ebb4b0bd921f0b732b6176bd4b472d2fbe346d39a37ba394401e15afa93af8294ceea90976
+DIST futures-executor-0.3.21.crate 17306 BLAKE2B fd20c7f0b4996cc10e3b3d30c33630a42eb363ac7893af4ae5c476775f8e4f3724ac110648252b6cfb3d652d352fbb5833f2647d262a4c9ae999de1fa69340a3 SHA512 597732f96b45ce21f7a0b149f62cbdc54a80010bfa5421ab0ef7345c501c197e1c8fe109fa2d1c813d5c2e872b4670e0fbd96e2572cc3e9d2646b68f41c78147
+DIST futures-io-0.3.21.crate 8902 BLAKE2B e673342d3fae38e5a6a20c426cb1127353b4f15459b4c27965566f7f2f13f0773ac6ec850b0d679bea37d68219edf6cdf9d1d0eed37665f4ff51c6060b81466c SHA512 dde0b79c4ba208b4c92c699457efbd515d331ab612e7b7df735b3b8f2ab79c012b1ba329ddaf488d68c69dbd119aa231b833b81cbcc0cc2f55c656f68dc22bd8
+DIST futures-macro-0.3.21.crate 11250 BLAKE2B c981e6d56971871102591b6f14b13f0ed75499627036a90cb71a3e11336db408d11ea0feced484d9ea454f47db74951cdfc61377af267359f46cb6462cc3fc0c SHA512 a79d4d3e487d05554e05e04f3a631fc9f0b5c525126eed550ee30eed16d4c457dc39274efac53558a3e33a119b8ff9d3552ce367359eec9d05105b278f7677c0
+DIST futures-sink-0.3.21.crate 7843 BLAKE2B e4b2ac98e89063b23f5e278cad1df6b1b8f96d4f0df0cb035ce964b91e97f88c7a1a4942ec4010cb4da5f4a3552487eac048a6bfcef637bf1f83398d7f38758e SHA512 9bc0198495b5a1b3ed25fcf7b053a235bba0a43a4226bf085d9027537a57add1686ef61179bf2a2d4189945cb5a05a8d64ba6e6e647c56245666d51e138d113f
+DIST futures-task-0.3.21.crate 11815 BLAKE2B ec3f2e2c025e9a482d86912099e68722099c22c0024669906036504d0e70998cb9cb5fd4074928d21847334611ccfcbe6d3e2f686c4d4d7d4436f1e7f501b8fb SHA512 8f3b27865d8c7a290471903297e3c0b52caebfaa55550a4738d7915008b893fce67c7d9ae5c5bd03f2a42ee72a96aa0245c4bee70fc06977b3493eb81bca2033
+DIST futures-util-0.3.21.crate 153768 BLAKE2B b3bc5632bbc7616d33f74361d68f83e0cb051125475101c84212ea2bd03307e927cd125e2f93eeb0f84946cc45d3964a590dcbfcfff88d3ce1970f127e71aed3 SHA512 ff952fb74a54e793de943e3aee2ac771357bf9f1aa5de89af128868c46a6b44e414fc4ea97f2d9b201ff7ff41023e119f1adf90d314343ff53ab987c3e07f5d4
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST hermit-abi-0.1.19.crate 9979 BLAKE2B 801e8052b85341cca388ada9db4b06bb1bd7b64474185b2ad06c0256b9e597639bd3dd4ba0053ea010f922e53969a4ab47b90d451fd9b94c8f2324055d151ea1 SHA512 1c877fcd562b15d2de9c151fd6c5f3ea4bf48abcb799e6139a180ffad5d64b632f0000d5707bbd92ff23a0e5f349157b9e0f5be8b50f03680b0fa47315dbb78a
+DIST hermit-abi-0.3.2.crate 13783 BLAKE2B 43089507a5ca0731a9e9a54fdc8f4dd5f807244797eba5bdcc072c2c2b3761481df65b8cc65900769777d9d21f8345b502cb1915ec36747160e87f179469a661 SHA512 22901ec8976a7c96e93c9e07a2c5d3db49d7af60ce60c7ee6f61c3cbe93190d1f285e737c1c8b2236d540ab14e5d92e42828ec05f1b212332a862baf2b1b57f6
+DIST hostname-0.3.1.crate 9272 BLAKE2B cafcae4bbfadd51d058e3daba3e63d897bc3418723d8e843fd941d9663dbc89dba131c77d14ce7a5da552650ea3c40c4e418c88d465f1bab2fa20c178596852d SHA512 a90407996353c9bcf5b76be03713e3a0455ac80a50892e77a508744cf436a938ddb87ef97d8cc91ec7dc4353cfb7bca0fd28c90a72f8a9ecd4f29220d174edf2
+DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST is-terminal-0.4.9.crate 8109 BLAKE2B 0fa495da123f6fe5e3ba5f643f1ee097fc4f8e8aa54d9525b6108855a6a2e58556534a5e8dbfe7b5f8e2f1932003ac63f6aa3384317de7b385cf724bee294468 SHA512 0803ea53945715333d9b5fb18feec7230a49cb1a5f7308e2ea8d06a650e376794dd372be111e85622fd21320228706dd589423510dd010cd6ea112f185c46966
+DIST itoa-1.0.2.crate 11112 BLAKE2B e277db8e2f506d4d20b6888b609d9726d594e1cb2c9f21df60a8cf8dcbad1808d8c1bdb0b7857ce7734b92c0f23fb1ec56f8564e779f27eea953d0ffbfcd3f84 SHA512 44a732a102d60b58e72fe76c43a1d185fa12ff08d04eeacf03234368552f84d3de87a2ea0a6e7a56b8cfa74cb6f6697005afcee26f45afe0c2fc7dce5da3b593
+DIST libc-0.2.147.crate 686772 BLAKE2B ab2f0c65d071d46b8b88149add1c8429237ef6d9e0563d56ee1adbf23e6147dbb57fb68fbd02498f8ec75327693237a47e5e5259615ce8b0d5ed7a03bbf4fffb SHA512 bfb3c230b59d623b98726f92b7c3f897b47ba3d22fe9834c15f5b4c1b662289aba35a0ae3acfc704ad74696db8c691ee007b9cc6fa03ae65a18eb6bedc81931e
+DIST libseccomp-sys-0.2.1.crate 11601 BLAKE2B 77a77d6d1f8ef6f5d25b35c299032738aed0a404c855cb84223a7334caaf57392fbd8f0915f4f7be875778176cbfdb8062eabbf7b414d3c198a5d41cd8a466ef SHA512 b53b13f95ac487d802ff051b4cee32be2dfa496846f3104a61399a53a07a7d6fb6b4543088765858e26e060e22e0bf93f8cb3a175c06dae4719f918844c7fe0f
+DIST linux-raw-sys-0.4.5.crate 1274380 BLAKE2B e15ca5b63cb994e86a8161e3b6e4bd20da8f574d1a470128f9a209a729ff22c86470f4c2b2a8ccbc1e37d6284b026e0805902645ea4b742425fe34491e519638 SHA512 13c36e03cb5bdb2e9f17622e21eda608057fc9d908bc55a829fdeeb77785094769d4f4b4daf376c5509ceb3abfdb3936f668bd6d5b2fd48e21c5c28b6e597e78
+DIST log-0.4.17.crate 38028 BLAKE2B b46be3719fc0a53e50b1f342762e188587e9f1ceb692c72473ce2663edfb8253742d30024e68c1444780ab7fc0e2d5b0601b8ea7228dc3405a9342a57548e605 SHA512 2477d88db42b1d92c30708d88823212e236f613b3465e85eb425f83f8d16fadfaf0352f06c2999a1852102edd2f6ffb10ecb539d8a3b6c48f552a25622ccffa2
+DIST match_cfg-0.1.0.crate 7153 BLAKE2B d3f40e5b16761fed337ed18dfa9db9e46aa2ad84ca8cfdc7cf7c72bea7cff8d084d95214ce013b3515bbe5b1ad4b8527bfce692569551e4588fe6f396a8a96ee SHA512 fd36f2b128d70a0f278e708bcb3274d90380229f754aed7ce9b808138b0189d5e1a07e0ba732216f788a530cecddcdd980559b3f71efa371d8805a213ff8f2d6
+DIST memchr-2.5.0.crate 65812 BLAKE2B 57966413a1f933dcb2d2d4ccb29c247070f65a83299b2a9f5aa83f5a48a5c5f1c4c7c632fa63bd19f9508e9291e7258db2f16e2813a56fd84e0856f70f1e67ab SHA512 444a163b484c233e78c0e2e4d51f01ce2da93d7d29f516a95e4b0866b20bdfd3f34137653abed53eb70387991ee3e2b5937d8d4360a85bbcb50a93005a75defa
+DIST num_cpus-1.13.1.crate 14752 BLAKE2B 27490aeee349d944c29e50b44e9a84371030459353a9316ffaa0245ce499df4424e39c25a81be59cd0f9a19c3214c78bdc7a84b632059282be476d8f918c44d6 SHA512 91ffe0ec792228621d6c2d5cc544ef4744203d19fc9c86e0aad2610038c43aca0448b6c27d82979417a0f6c939ea73523303a44c28df0d1c1b8d09814d5306d9
+DIST num_threads-0.1.6.crate 7334 BLAKE2B 416efdf395b0299b6b01e1508823afdda08cf67ca54e1d644fc5accbb0490945a492a34bc5ba70c3e838e6405d17ddce164ef87468bd9da27097de8994ad9577 SHA512 b2d9897e29e59353379b6372a629fc7f9afc89f777b4410eaeac7b4729527948a8dbecb175f056899f9076693ef855cc0d40e725cc54f28af588fbac5f7ce3b6
+DIST once_cell-1.18.0.crate 32969 BLAKE2B a08d5beee50a7add28bd9e50b18709e7b34574f0f55f80909d5efb7ac5917e5f30bdcf3fb43ddd0a4f420a427390c7ffe1cc1c7191a3a1d939bc6e3139e6eef7 SHA512 9328968afdf3535b2d9e0113d75afa725259d76994ef2e1948ad7efa4ec8a65bac7cfdc31b749d5cd55ad4e28d2e28ac57b871e3067b89182453c7e2413a13b8
+DIST pin-project-lite-0.2.9.crate 27713 BLAKE2B d6985b5add432fb6287d1b0c9fb0cc91a195f82c5a748a9ea430e4ba884717ec7b16d730b5ea62de5b2bfead1771da2d115b3776e12e605f70f2538f374a28fa SHA512 cef0b77233adca712db1183f780732ea577cf1b27c2643de221d54c837c75ce749f907e24a967be7474812c7682cba613a3fc5d553a9578a1b80569da0e562e4
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST proc-macro2-1.0.63.crate 44867 BLAKE2B 54fc0f4f4e328c78609f5c0e26a8e6b1e5f1ad989d68e63d21e094bc20e1be6950d5df98ffb601c89bd3d137f6c05a3d1de74070e493002e793bf159b96f29de SHA512 3855011d0d42e8fe591e7552d224b692d79b194c4452fe9d8f92ed85e5437c0a3524a38e66301412be482cfcfbd468b071a03cf584a1618284dfcdcac9713102
+DIST quote-1.0.29.crate 28345 BLAKE2B 3aeb637a4139730348775caab4d48173650d8bdce08247263d741ccc657dfff7f2facff05725bcaa73486818d394c392c64ecbc61bae3f5b612104aec16ff289 SHA512 d686a3943dca059a8e79689c77e6e8f6dbfa9b16a1a7ecdd27099339b77a55334252eaa8b4340e79c35ebb1f6e4deeb3f6356dfd02484f9c724e66a74387e30b
+DIST regex-1.6.0.crate 239329 BLAKE2B 646405e681ce572ebe2dc51a3339f0f8204143f9b2b8f8e74a4c80379c43c3581363ad347610a384d5ee831cf1425f74ddd944a658b1da2461e8068c5521af69 SHA512 b4861c9cc13d6fb224f67057fd3522f04576591b3d7ae0d3581dce42ca2b2bff96860cf2a7f4dfab00e46a1d29e6473f6723c4aeb02e34ed6d5f205b66f07876
+DIST regex-syntax-0.6.27.crate 297300 BLAKE2B 4ca1a2e23d04e29c5925085ea4ab7ebcc398dfe135eacaab1e686aa8be43a110a28e8bec05a6910183f9a6bb1fd0d635fcb1a60b5a6a03fed4d2cf937a542a5a SHA512 5cc705a5dda08cbdb4dbcf3fa98763cadcda13d9c3ba407b35f3e88d77935efc2704bb40b3fb5aad7dfbad0df43bcb4c4cad9732defb954e2228a0739f7c37c6
+DIST rustix-0.38.7.crate 332031 BLAKE2B c7261d4ef5308a8aca32a919d1ce70980b939333b75fd575978261064789bf673466c892fbee1e0b51cab13b80f21a0355e8a4eddf2375ed2f4c5d6ed7ae7668 SHA512 798a84fb6561ccf6902ce7177b2a555cef4d46a2faa265fe7121c600b543782e2e0970346fab52b1075ea40054f6c8f7b830b45f4b0c9bec3aea824645d3ec89
+DIST slab-0.4.7.crate 16647 BLAKE2B f567cc822e7b84f64a0b0372c22a0463d260871455a33df025808a0476dcbbd4e051a117d8896d96d6d3d0655b7c296cd691ca22edc54486440f4e2e0f5d1e1b SHA512 659a9ca3323fc2cd236f6cb9eb6feeae8a1f5fa046fa239a34cd7a5ab8a7eadb9e5977e8d5cc41e9138900dd7c75ebc0601480771c5fdd2e084ee76619b82521
+DIST strsim-0.10.0.crate 11355 BLAKE2B bcb25ad0a7284e24e4f17ebe0ccb621bdc4118e499b50b094d98aa7e8fcc0b96716c9953c3516ce7ea78309d41d424892ded595259696a5bbffdcb07802b5c2f SHA512 78b318532addfcf5c1ccc1e14539e258aab9d3cd893cc45d82342549bde838c177d90f13c560671f8f32929af47d0b467db35e6876bd7697d8b3f9e055aeeac1
+DIST syn-1.0.98.crate 235451 BLAKE2B 0667c24d7f6b9bf4c0a5f45fb51c903303a87c72d445ad824e05ab98a158f9beda0d00721144c486335b6a830db47fe57a34831cff6995f478c969c4d0a039dc SHA512 fe5dda742e085e14b6aea5617d3f9dd19ffd46009f34b119c0d74ec693042f641e594f75ff027dbfa38f3d5149a94eb6187248ee9d09d41dab9cc2cfc18fab18
+DIST syn-2.0.23.crate 241166 BLAKE2B de55798634899162388667e4a68a6525904057a480a6bcd741d0bd0f83ba0d0feed3f9a1bd768ca591602ece1e79866a076b6ca218f86b2cf4827d81224d6ad6 SHA512 3f46b2ae62b2e3378024d057130e48b7ae03316ea38ce1d7d4e6dac9337befd84c9eb20518562917643304de43bbd716c34f508a86dbe21081cccb934b4072a0
+DIST syslog-6.0.1.crate 9552 BLAKE2B eb4414c675842fd8cbde4e0c9ecec5dd0f43ca2877a082d634e145202df6817cee86e2edb11f1b78cfa5b0e5df98a42b6cdb2bf1b70c562661dfa9c03da142ba SHA512 fc3e0ef078d2414420e717b66517e9fc668a03b5d0cd0001aed6e477a92f2873877b873159bdf964e4cd670519e5a308bc7357674bd67ac320754221415aa36c
+DIST termcolor-1.1.3.crate 17242 BLAKE2B 5aef69c0004081bd3cc4d531d13d63627cc02313868c0faab62358d13abfa7b4ba82f142c2801d25a6ae46ecbc8b7bdbeaa21c9105ea3b8950ab6a38cdb88513 SHA512 5838fcbfd70f300cb4b62aab50565db52074c56b152ccc8ac1173e4676c0d5a636271bf5a645a77da6e1d4edbf0091af2cd4dd6d73b85c3d198c760898c06f3a
+DIST thiserror-1.0.41.crate 18734 BLAKE2B 4b2fb42333441ce6a93e74c08615293b58c1d614783a328591a6852144c164311c4e660f6f41c99b1279475066f854fe2c764f857fb69cf16ecd18a5770f7b89 SHA512 3f185746f2783f7f25b986e0aa1d8c3137f6aa2997a40531f04b2fbc00cb380226b0916bb266c8697a10d20d042c7dfa0fe7e767e6ca37346169c67ecfdf4a82
+DIST thiserror-impl-1.0.41.crate 15078 BLAKE2B 53d95c0ecfd2c9d50f618e572eac0a6faa7735fd9afdc8e2a9a7d730ceda83a7222be979d592811fe4a25fe4d992a261d6479df9bcc11abffa4a88571f7647ca SHA512 bf30f7391757f6424d585b28cc2501d962d0d85b6a903baa7d9ef9d4cb96c3b71db67719777aace08fe91fdeedd241905a4d9dc5de5fc97d099968e902191c9b
+DIST time-0.3.11.crate 91807 BLAKE2B d5b80416590bf48c8f403cc0e2ad735b95d98048dc335737fe509c44f805cc911fa55d6af611d3a05150b2a9ebedf005e8903a4daf66e245a5d5f290ed661c46 SHA512 214bb8c5573d3ee405a923f55e22ac3d659c30ba413f5e960e17d8f226d094133e2b52084e34efc6ece2311e13a862f2fcded9783937d69709d11144a8d6b48d
+DIST unicode-ident-1.0.2.crate 34951 BLAKE2B f03f7a040142785675a800672bb363dcf7aae266eebf50425436100249442f27b18837f9e297d93b59a9254c349e13222f8af892a9c0fbf2bac676df8a1b0e1e SHA512 60d78668b762eb842c15ee554c0c1175393702c805f1a874957d49104e9152ad2d0316966553fb14cb520aa858a84da223bf426d55e4ac23de3324a3bebc301c
+DIST utf8parse-0.2.1.crate 13435 BLAKE2B a1c111d7ffc60690f2aaa86f034c66ba1abe4e126f1774a4377d41eba3269369862f57515af387ea785d69a8adf46338b5e53761b5ee6f4f4380473f4d9cab0a SHA512 51fba8f1e7eb74b7020fd831e30a67fc8353ac2ee07335c8c3374a5570ac8117f165f6905d4b7f0360095b7b5ed3e739001d02a8cc3c89195baf2cd679136050
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST vhost-0.10.0.crate 200688 BLAKE2B b541584270497997e3fb133c0ca27b42fafb4d5083d90eb57221e01cfb1e8534d9adc424dd106d52fbb0f4868958c10c0ec4778c3b19617601af1990089af886 SHA512 da970cf6c7df5a432b3a8c6024518e994fd029cf9ddfaae869519b892fcc4d590641acab76a03d6cbe8139d7f35467d6d359bde13bfb2b6bb33a5ecabda206d1
+DIST vhost-user-backend-0.13.1.crate 20534 BLAKE2B 5c06c2aa1009482c1c0ef838e78feb89c864861a4c3300f58725bb3dd673dd85b68d9baeafafb86130a12ce97d722d111cde84f16c6861e2390a598b980e4a87 SHA512 90bcc1c82702e32d7642e479f686a3faa5db6e6d41f9f158dc7f75ef2720c1ffe4b8705683d77248bf0cb2b0408b1e45a1ce7d5bfcd839a93b9c48dcc31d99e6
+DIST virtio-bindings-0.2.2.crate 17617 BLAKE2B 0c4013b8b91be27b242c1bb3f70bef843702d674ed2922cf666009e6dc6b3fceb5febfddf1994cb3c551ff6b3c64296d9171535b1fdb566a41dc3c0bc0428b61 SHA512 bfc99801eb785190d0796045d72589e4ef037ffea91f93fdc8232c8873bfec133b16cfdcca1969347f435983603fc69235d587a0e92517bab06edc1027b4f2cd
+DIST virtio-queue-0.11.0.crate 147937 BLAKE2B 184b191106139ec12d363b389e27144b252612c7ad94eef3cb6c6547d10f720fdc06117b5bf05b0bcfc03c4d232ccade7b4f257b3de705cd0269c17db58ced99 SHA512 e38c9173e26963b552729b0651f7d38d56a4b98995da2eb48f78a53e3ab61c67002c07428d5f1fab7e1450d358601b74afa41e893f660a19812cb67eafada11b
+DIST virtiofsd-v1.10.0.tar.bz2 94982 BLAKE2B 32ce893cc44b99abedd136173b380141fb873cef65c0bd400b15c2ae9957d1b379cfc390d1dd7f2591f4d2930f120dc9bdfc7de087ea50f323db6a70bee36967 SHA512 cde56b446c0baa73a29dea6378f60f0a816fe72d97585acc39d60f3bb19fcd016d094405c2ba2327666d84c1618d1b0164ccb03c8871fa6c76e16a3251acecde
+DIST vm-memory-0.14.0.crate 85354 BLAKE2B f2716e17e4272e0baacc38e9783d6abf337a80a18a63119bb1b644ab2c65a7064c4fa2c229309e5d06ebbfadd25bd566e2c96bbc7d281bbe5b29b163718378f2 SHA512 fa7341be2393a42af6ea6c803c1f9657a5e152abd79af83b41918abb01f2f3a6e33431e39e40297164dfca2f7ef14dfc20d80c0278f27bc7abd4d7a4a7ef7710
+DIST vmm-sys-util-0.12.1.crate 58520 BLAKE2B 6b1d176169caa32fb6cbe77d4058dd1df37fc23e5a92d76b8f0eb5f7e2282c2a120f5ad3fdf7710bb1d0b0a24a34770a34310e5da6bcde4c230b485a81eaf2d7 SHA512 dbaf9e2cd002baa97f43ee7659e2bd259df9aeb029fdd5a7e7473c1d38cf82a8208ba5849c12ecc02571da1702082c3491673c68f8029f43c1234ed8e834f960
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-targets-0.48.1.crate 6902 BLAKE2B 8e6cd47dea52131c66983cbf4982e88f7bd30416dfae4e380f7afb39f67ee0ac88d40769668dd5aba40d4415f9f00cbc2ac98d598506fed26029f5ec4df3a2c5 SHA512 e48179620cce528292167f1d5ee2deea0659569c996dc90eb4ab62b9ea8baee6c0bea3ab739e06d8793c9690bfc895545ed0039cb633ca39293de79c42ea9de2
+DIST windows_aarch64_gnullvm-0.48.0.crate 366543 BLAKE2B 9b10f65089fe6da3ff38a1061783f635644ae84f567f891eaced280af68f7ff3919b34289e8850aa34554bb0346903273ff0a7fa743ca8794c2d23a9f1b0185f SHA512 80c5aa74c5669f7acff3882a8e7575f15e8d7cc58c11a1cb731ff423eb9cc9ba43cc6b80e52803c0d44e6a9001655ba87de6f43a9fe858da6d6e3a5c983a2711
+DIST windows_aarch64_msvc-0.48.0.crate 671479 BLAKE2B 0c80f210437628e1d878d1d14e884fea532c7539b3030aa76d46f27d02372c715c6e33d7efdbbd770666472b44a66c30711a33d819ede9cdcd51c96355802d45 SHA512 617e47a7202f1db4dbd3ecea509682135ccd85e3a458c0331b9bc7aa1d84e5756b59c881cb098d5c6d4c951248d13c8253a8e8a50938e1997bd19ceba77262df
+DIST windows_i686_gnu-0.48.0.crate 741490 BLAKE2B 5a4a584f8d8ee5bbd2d4c5b6749a66f2d43fc9e4ef90faab2227709b270f0d46fc26578c029edd96877c71309316ddb32d91c39f46d88f9a484c614f866e3dbe SHA512 15149fdd48b61b6d993acd392dbd353d0280d984ea88745217e4207937174bb90cdd9701f69ff0fe06a842f03607cbb57937d20d79ab577181e605a8a8fadc68
+DIST windows_i686_msvc-0.48.0.crate 730056 BLAKE2B 4e4ad6ed94948145199c2ed50fc65e4af08455a0fd058bb0f763d481f30b029f99a2b8dbac087b29e762500a19270f6683baf62ba99d141eb002a5b0b5c8ea05 SHA512 11a50800e709712dbea907275bc0faa46d2eb2969118445ed5b932d9c5957a09592a5b26a40e554c1f5fd56c6d074a07637e6f88eedd2224e1001e62df7b469b
+DIST windows_x86_64_gnu-0.48.0.crate 703595 BLAKE2B b227efb78a99c43d0538cceadada3fa1840df29adc665787fdcf845b73e77d782da8a9f9aa602e1da61401b550d0107176feb6c397c922a6240b38cc8f04a180 SHA512 38eff1164fb37dbd2bbe53404b20cba92de84cbbd5e4eb9ad60d51fb43d6fdb8b87a1488e2c88ebd4b3ff3b708f93fdc05df4b14a285d3ff11c33ff0d9828602
+DIST windows_x86_64_gnullvm-0.48.0.crate 366536 BLAKE2B 295dc3aef18c604d1579978045f4058b1a315083a8ab842bddf5800ec3460b1530ad88c3464acab712a229290aca235810de8a3b6a253859a354d9fa97277e58 SHA512 8d82fad4c8445030844708aa026a62f1ca43362b8e15f14b0d226c7e9cda04ffa0715087b6a025dbb738e8891de24fcc4a2df071a532917cf03c4a46f934f396
+DIST windows_x86_64_msvc-0.48.0.crate 671422 BLAKE2B abb063610dcc38581657133182b7d9efeed5553df67bd2bd6f30f1668a645186e4824f9ef556a5abc84ace10b1b437b6325bbda6df5a64ce880d7dcb743ac786 SHA512 6e598b8e3ac54912a8ebac01b0dd2c58fd282072527d7fedc7f6ebecdfb7dcb09ae46c22293bc0117849437f8b053db5e90406e7a38276f0f0afd06be3966795
diff --git a/app-emulation/virtiofsd/metadata.xml b/app-emulation/virtiofsd/metadata.xml
new file mode 100644
index 000000000000..1a78f9677df7
--- /dev/null
+++ b/app-emulation/virtiofsd/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>michal.privoznik@gmail.com</email>
+ <name>Michal Privoznik</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>virtualization@gentoo.org</email>
+ <name>Gentoo Virtualization Project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="gitlab">virtio-fs/virtiofsd</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild b/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild
new file mode 100644
index 000000000000..8eaeb54ded93
--- /dev/null
+++ b/app-emulation/virtiofsd/virtiofsd-1.10.0.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.18
+ anstream@0.3.2
+ anstyle@1.0.1
+ anstyle-parse@0.2.1
+ anstyle-query@1.0.0
+ anstyle-wincon@1.0.1
+ arc-swap@1.5.0
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.4.1
+ capng@0.2.2
+ cc@1.0.79
+ cfg-if@1.0.0
+ clap@4.3.11
+ clap_builder@4.3.11
+ clap_derive@4.3.2
+ clap_lex@0.5.0
+ colorchoice@1.0.0
+ env_logger@0.8.4
+ errno@0.3.1
+ errno-dragonfly@0.1.2
+ error-chain@0.12.4
+ futures@0.3.21
+ futures-channel@0.3.21
+ futures-core@0.3.21
+ futures-executor@0.3.21
+ futures-io@0.3.21
+ futures-macro@0.3.21
+ futures-sink@0.3.21
+ futures-task@0.3.21
+ futures-util@0.3.21
+ heck@0.4.1
+ hermit-abi@0.1.19
+ hermit-abi@0.3.2
+ hostname@0.3.1
+ humantime@2.1.0
+ is-terminal@0.4.9
+ itoa@1.0.2
+ libc@0.2.147
+ libseccomp-sys@0.2.1
+ linux-raw-sys@0.4.5
+ log@0.4.17
+ match_cfg@0.1.0
+ memchr@2.5.0
+ num_cpus@1.13.1
+ num_threads@0.1.6
+ once_cell@1.18.0
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ proc-macro2@1.0.63
+ quote@1.0.29
+ regex@1.6.0
+ regex-syntax@0.6.27
+ rustix@0.38.7
+ slab@0.4.7
+ strsim@0.10.0
+ syn@1.0.98
+ syn@2.0.23
+ syslog@6.0.1
+ termcolor@1.1.3
+ thiserror@1.0.41
+ thiserror-impl@1.0.41
+ time@0.3.11
+ unicode-ident@1.0.2
+ utf8parse@0.2.1
+ version_check@0.9.4
+ vhost@0.10.0
+ vhost-user-backend@0.13.1
+ virtio-bindings@0.2.2
+ virtio-queue@0.11.0
+ vm-memory@0.14.0
+ vmm-sys-util@0.12.1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.48.0
+ windows-targets@0.48.1
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.48.0
+"
+
+inherit cargo
+
+DESCRIPTION="Shared file system for virtual machines"
+HOMEPAGE="https://virtio-fs.gitlab.io/"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git"
+ EGIT_BRANCH="main"
+else
+ SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2"
+ SRC_URI+=" ${CARGO_CRATE_URIS}"
+ KEYWORDS="~amd64 ~ppc64"
+ S="${WORKDIR}/${PN}-v${PV}"
+fi
+
+LICENSE="Apache-2.0 BSD"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 Unlicense"
+SLOT="0"
+
+DEPEND="
+ sys-libs/libcap-ng
+ sys-libs/libseccomp
+"
+RDEPEND="${DEPEND}"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+# update with proper path to binaries this crate installs, omit leading /
+QA_FLAGS_IGNORED="usr/libexec/${PN}"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_install() {
+ cargo_src_install
+
+ mkdir "${ED}/usr/libexec" || die
+ mv "${ED}/usr/"{bin,libexec}/${PN} || die
+
+ # Install 50-virtiofsd.json but to avoid conflicts with
+ # <app-emulation/qemu-8.0.0 install it under different name. In this case,
+ # smaller number means higher priority, but that's probably what users want
+ # anyway if they install this package on top of app-emulation/qemu.
+ # TODO: remove once old QEMUs are removed from the portage.
+ insinto "/usr/share/qemu/vhost-user"
+ newins "50-virtiofsd.json" "40-virtiofsd.json"
+}
diff --git a/app-emulation/virtiofsd/virtiofsd-9999.ebuild b/app-emulation/virtiofsd/virtiofsd-9999.ebuild
new file mode 100644
index 000000000000..8eaeb54ded93
--- /dev/null
+++ b/app-emulation/virtiofsd/virtiofsd-9999.ebuild
@@ -0,0 +1,148 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ aho-corasick@0.7.18
+ anstream@0.3.2
+ anstyle@1.0.1
+ anstyle-parse@0.2.1
+ anstyle-query@1.0.0
+ anstyle-wincon@1.0.1
+ arc-swap@1.5.0
+ atty@0.2.14
+ autocfg@1.1.0
+ bitflags@1.3.2
+ bitflags@2.4.1
+ capng@0.2.2
+ cc@1.0.79
+ cfg-if@1.0.0
+ clap@4.3.11
+ clap_builder@4.3.11
+ clap_derive@4.3.2
+ clap_lex@0.5.0
+ colorchoice@1.0.0
+ env_logger@0.8.4
+ errno@0.3.1
+ errno-dragonfly@0.1.2
+ error-chain@0.12.4
+ futures@0.3.21
+ futures-channel@0.3.21
+ futures-core@0.3.21
+ futures-executor@0.3.21
+ futures-io@0.3.21
+ futures-macro@0.3.21
+ futures-sink@0.3.21
+ futures-task@0.3.21
+ futures-util@0.3.21
+ heck@0.4.1
+ hermit-abi@0.1.19
+ hermit-abi@0.3.2
+ hostname@0.3.1
+ humantime@2.1.0
+ is-terminal@0.4.9
+ itoa@1.0.2
+ libc@0.2.147
+ libseccomp-sys@0.2.1
+ linux-raw-sys@0.4.5
+ log@0.4.17
+ match_cfg@0.1.0
+ memchr@2.5.0
+ num_cpus@1.13.1
+ num_threads@0.1.6
+ once_cell@1.18.0
+ pin-project-lite@0.2.9
+ pin-utils@0.1.0
+ proc-macro2@1.0.63
+ quote@1.0.29
+ regex@1.6.0
+ regex-syntax@0.6.27
+ rustix@0.38.7
+ slab@0.4.7
+ strsim@0.10.0
+ syn@1.0.98
+ syn@2.0.23
+ syslog@6.0.1
+ termcolor@1.1.3
+ thiserror@1.0.41
+ thiserror-impl@1.0.41
+ time@0.3.11
+ unicode-ident@1.0.2
+ utf8parse@0.2.1
+ version_check@0.9.4
+ vhost@0.10.0
+ vhost-user-backend@0.13.1
+ virtio-bindings@0.2.2
+ virtio-queue@0.11.0
+ vm-memory@0.14.0
+ vmm-sys-util@0.12.1
+ winapi@0.3.9
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.5
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ windows-sys@0.48.0
+ windows-targets@0.48.1
+ windows_aarch64_gnullvm@0.48.0
+ windows_aarch64_msvc@0.48.0
+ windows_i686_gnu@0.48.0
+ windows_i686_msvc@0.48.0
+ windows_x86_64_gnu@0.48.0
+ windows_x86_64_gnullvm@0.48.0
+ windows_x86_64_msvc@0.48.0
+"
+
+inherit cargo
+
+DESCRIPTION="Shared file system for virtual machines"
+HOMEPAGE="https://virtio-fs.gitlab.io/"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.com/virtio-fs/virtiofsd.git"
+ EGIT_BRANCH="main"
+else
+ SRC_URI="https://gitlab.com/virtio-fs/virtiofsd/-/archive/v${PV}/virtiofsd-v${PV}.tar.bz2"
+ SRC_URI+=" ${CARGO_CRATE_URIS}"
+ KEYWORDS="~amd64 ~ppc64"
+ S="${WORKDIR}/${PN}-v${PV}"
+fi
+
+LICENSE="Apache-2.0 BSD"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0-with-LLVM-exceptions MIT Unicode-DFS-2016 Unlicense"
+SLOT="0"
+
+DEPEND="
+ sys-libs/libcap-ng
+ sys-libs/libseccomp
+"
+RDEPEND="${DEPEND}"
+
+# rust does not use *FLAGS from make.conf, silence portage warning
+# update with proper path to binaries this crate installs, omit leading /
+QA_FLAGS_IGNORED="usr/libexec/${PN}"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_install() {
+ cargo_src_install
+
+ mkdir "${ED}/usr/libexec" || die
+ mv "${ED}/usr/"{bin,libexec}/${PN} || die
+
+ # Install 50-virtiofsd.json but to avoid conflicts with
+ # <app-emulation/qemu-8.0.0 install it under different name. In this case,
+ # smaller number means higher priority, but that's probably what users want
+ # anyway if they install this package on top of app-emulation/qemu.
+ # TODO: remove once old QEMUs are removed from the portage.
+ insinto "/usr/share/qemu/vhost-user"
+ newins "50-virtiofsd.json" "40-virtiofsd.json"
+}
diff --git a/app-emulation/virtualbox-additions/Manifest b/app-emulation/virtualbox-additions/Manifest
index 29299736b4cf..51342efb7f18 100644
--- a/app-emulation/virtualbox-additions/Manifest
+++ b/app-emulation/virtualbox-additions/Manifest
@@ -1,4 +1,5 @@
-DIST VBoxGuestAdditions_6.0.24.iso 77355008 BLAKE2B 3bb611323ba41ad94a75d5d28198aaf732bd7c36965abc65755c0ffeec29bd378cf4351b838675667958086e499f5791b942a8e3877c1ed815a22c4d564147a1 SHA512 aea64aff216a0cfa3535d2215ec74dd46243f9aba0c1b95f476bb8f0b3d561994f4fc8cc7d454f03482e1cec9a227014f10045e75756767bd8006e8beb9aaade
-DIST VBoxGuestAdditions_6.1.12.iso 60626944 BLAKE2B cb16f72f9c010e7e97e6ae5d86d02c81bbae2593fd502a3e6d911e794fa15254b631e37587f7ba636686e8897fe27a05f8dee58870200cbb50e2fbbe57142cc3 SHA512 dd0a7705477620205529090e37965a09906e864d3d293405414ba09c951c33d9586ac6f5e1f35e35ece1e2bae0919cc7740b21e302f9c5e2160e5458168372c0
-DIST VBoxGuestAdditions_6.1.14.iso 60981248 BLAKE2B df4e6159e4f0f1b7bb1a92dfbfdadc30aaa6499f5cb4bf80c783e9ef26dfc2d07f9198c3b20677064d1533ecb9a58100da52975478396bbec918268a7ad14e5d SHA512 51c9e128626bf1a02b4467c85829fa694dc46a469852e4effb768fdb56d1a61e28488a887920c7a8e51128370664ca50c883c590297d8c5182980fc2c176c187
-DIST VBoxGuestAdditions_6.1.16.iso 60987392 BLAKE2B d4452f43c72ab8c49633f717f7a49257e14a8c6c7b60c6d61ee65ae5e4bcce00c30e19ba78d6f28fb85dfbc95ca6139aec2c7069e5afecae145dffc6ff38793a SHA512 e7606fba6e7490318b7dbadff52578040e4370bbe81fa67e6653e798176eb929ed37e363792647ab3c6626ee9e32af40f63167521997af7b446c25173ff60280
+DIST VBoxGuestAdditions_6.1.48.iso 63969280 BLAKE2B 7bba272d427a6a91cd4d63c5d494e50d9984badac47c75f5323b1b2ad25a4fbf7cf28a1eba30988288d6e308b8d62ab5043c445a651b8b767667a267d5dee1e9 SHA512 19b98be42d7c0148ada0342fbbe6e1803fa127aca14662b560624d2c582656af68b01152a9c8b14d238c493d171694e088091b924598cebbf1f8d2c7a949d0c3
+DIST VBoxGuestAdditions_6.1.50.iso 64051200 BLAKE2B 9eff4a3643579ee0426dbe2b62247b8c89321be495e61469628574445fedc06ff2fb9afa108705cbaf24a13db99b4e6e850c61e5c97343095549f444831fcf62 SHA512 d74ce912dbbcef7f644a9f3ba9917782336cbee8e0756727a8753ffc17486a75e833adaa869e205531bc3b81b9cb26aa9b50f44210e78dceece966687122f6c6
+DIST VBoxGuestAdditions_7.0.12.iso 53448704 BLAKE2B 1b738c648c902c1a98d83dc9525c7e091cd2234aa67f464a4beb3d6bd9bbb6893fe02eee4a37a05eae8e880efc6c834931a7ec7f08ae7b1615b1a622117767a2 SHA512 7f5db8f73bc2c89ad798fd2ec3543c460aa3fd3e44f02c04c334539172699af08c16312d96b6fdd5c561bc3d8133fc7a3662e51a86f82980d692f050286e0e7e
+DIST VBoxGuestAdditions_7.0.14.iso 53526528 BLAKE2B 2ec95d9261d3a7f762f333c1e3eb36f7b75cfd7cf722d1bdcd5c0b38a3a311db82b728fe800aed79b41b979ec345cd2586e3fd8c2d2c54f8b83516061d81d304 SHA512 5aa80b04c567d383793c560eb535babd1ebc4f472aaa51753867dbee00e1f5a3efeb5dd4c9eb1a48149ff0fa2e7598aa68792d3da9959709b619d234c2b57544
+DIST VBoxGuestAdditions_7.0.16.iso 53528576 BLAKE2B a57b056f540e949574f78cee476240b9bab8a151a32f90412d9dd8acfaa40407c45bee037eb14192a0304a30ff0938625df586c48be9997cf545809cb30fa300 SHA512 12aead8c363d7ca33c3cc52d84ee86cfbd2db98ab84942d24fd5aa841dd2aaa0fb3075aa9b7188db3df1cac11de475c4e56d270ea9dc9f6663c9e9e7236bf9fe
diff --git a/app-emulation/virtualbox-additions/metadata.xml b/app-emulation/virtualbox-additions/metadata.xml
index 8dafc466cde2..498143329fed 100644
--- a/app-emulation/virtualbox-additions/metadata.xml
+++ b/app-emulation/virtualbox-additions/metadata.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
</maintainer>
- </pkgmetadata>
-
+</pkgmetadata>
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild
deleted file mode 100644
index 97dc656fbe72..000000000000
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.0.24.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_PN=VBoxGuestAdditions
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}_${MY_PV}
-
-DESCRIPTION="CD image containing guest additions for VirtualBox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
-
-LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="amd64 x86"
-IUSE=""
-RESTRICT="mirror"
-
-RDEPEND="!app-emulation/virtualbox-bin
- !=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-src_unpack() {
- return 0
-}
-
-src_install() {
- insinto /usr/share/${PN/-additions}
- newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
-}
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild
deleted file mode 100644
index 97264897ea7d..000000000000
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.16.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_PN=VBoxGuestAdditions
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}_${MY_PV}
-
-DESCRIPTION="CD image containing guest additions for VirtualBox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
-
-LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="mirror"
-
-RDEPEND="!app-emulation/virtualbox-bin
- !=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-src_unpack() {
- return 0
-}
-
-src_install() {
- insinto /usr/share/${PN/-additions}
- newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
-}
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.14.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.48.ebuild
index 97264897ea7d..b99d3c3c719a 100644
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.14.ebuild
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.48.ebuild
@@ -1,28 +1,19 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
MY_PN=VBoxGuestAdditions
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}_${MY_PV}
+MY_P=${MY_PN}_${PV}
DESCRIPTION="CD image containing guest additions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
+S="${WORKDIR}"
LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="mirror"
-
-RDEPEND="!app-emulation/virtualbox-bin
- !=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
src_unpack() {
return 0
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.12.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild
index 97264897ea7d..eb846519c702 100644
--- a/app-emulation/virtualbox-additions/virtualbox-additions-6.1.12.ebuild
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-6.1.50.ebuild
@@ -1,28 +1,19 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
MY_PN=VBoxGuestAdditions
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}_${MY_PV}
+MY_P=${MY_PN}_${PV}
DESCRIPTION="CD image containing guest additions for VirtualBox"
HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.iso"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
+S="${WORKDIR}"
LICENSE="GPL-2+ LGPL-2.1+ MIT SGI-B-2.0 CDDL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="mirror"
-
-RDEPEND="!app-emulation/virtualbox-bin
- !=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
src_unpack() {
return 0
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild
new file mode 100644
index 000000000000..1cb70c695bbd
--- /dev/null
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.12.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=VBoxGuestAdditions
+MY_P=${MY_PN}_${PV}
+
+DESCRIPTION="CD image containing guest additions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
+S="${WORKDIR}"
+
+LICENSE="GPL-3 || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+
+src_unpack() {
+ return 0
+}
+
+src_install() {
+ insinto /usr/share/${PN/-additions}
+ newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
+}
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild
new file mode 100644
index 000000000000..92124a9f779e
--- /dev/null
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.14.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=VBoxGuestAdditions
+MY_P=${MY_PN}_${PV}
+
+DESCRIPTION="CD image containing guest additions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
+S="${WORKDIR}"
+
+LICENSE="GPL-3 || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+src_unpack() {
+ return 0
+}
+
+src_install() {
+ insinto /usr/share/${PN/-additions}
+ newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
+}
diff --git a/app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild
new file mode 100644
index 000000000000..92124a9f779e
--- /dev/null
+++ b/app-emulation/virtualbox-additions/virtualbox-additions-7.0.16.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN=VBoxGuestAdditions
+MY_P=${MY_PN}_${PV}
+
+DESCRIPTION="CD image containing guest additions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.iso"
+S="${WORKDIR}"
+
+LICENSE="GPL-3 || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+src_unpack() {
+ return 0
+}
+
+src_install() {
+ insinto /usr/share/${PN/-additions}
+ newins "${DISTDIR}"/${MY_P}.iso ${MY_PN}.iso
+}
diff --git a/app-emulation/virtualbox-extpack-oracle/Manifest b/app-emulation/virtualbox-extpack-oracle/Manifest
index 235626208580..a93f2331cba2 100644
--- a/app-emulation/virtualbox-extpack-oracle/Manifest
+++ b/app-emulation/virtualbox-extpack-oracle/Manifest
@@ -1,4 +1,5 @@
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.0.24-139119.tar.gz 23238486 BLAKE2B cad4e6822b51db05fb0b919f4c44ace1743a9d2b5ebcc0da6fe3c9ec43612ec6079614f5d3a9423c320e65b5438089aeef42f331946eb74093e3f8b1ef137300 SHA512 4be76fffb8508dda561e74daf68c71641a0903e554ecdf6b102f3fe35af03883bc88c2ac3cbdae2b3ddfb7ee5c9bdfa8df670662eef139f2a894dea4aa6f2e18
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.12-139181.tar.gz 11141691 BLAKE2B ac4cae428d15fa503b47337c5d2bab3e21197b82192fa2009216e438d06b867b17a62890c7525d232919751a5eec770f0ecd835c93aa3e67bcbf13b94d8d5344 SHA512 2abc9f6aaadfd6b0bb65df7eb9c45155ea2ec0d215aedd7589a76753b7323fef47c4799322ed973ef92baf1d64835dc813a235001be2cf4e166e474d5b6e2afc
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.14-140239.tar.gz 11145475 BLAKE2B fe64288068cfeb17da5b7583b5218de74dade2f3a994ef46e43bf7811cfeabae3d48f6bb200882892205d5a10294c38296e51e31c900af4cffd402030a85e3b3 SHA512 436ed94cec32365b9b19fe170323519543d18fcdad28eac09438c2238d68e452b25a415d69f244fd26b4c117fc5e2b33c8bd2fb63b31805f62ed9d59500eb304
-DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.16-140961.tar.gz 11145670 BLAKE2B 86e620ebaea9803b9bf633990a39d9e2828fbe70cdc98cbb6ba98accc374e0ea2300a7135cae0f0ec8d13184ccc8e0ff075ca1f81132ed97206f14c20adeb3bc SHA512 89b9c709da1c4b8268c4c1849e074f4d8dc76a36663b401c9ea63f02422bec50e2b77056289144bb161b1dd226b78687379d6ab86281112a71561c1777f525fb
+DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.48.tar.gz 11166368 BLAKE2B 5c1ced1742f44110490aee07e0323d418152b87c5c8c9dfbeffb05cc59fcc94bb88b8e932b59f5bd79e3d85b347525b939df2a60f52d46533bd2d877c1720439 SHA512 71ca826ac886fdb9389a09f6fc1b5b7e99e8bfda1fa64cecefebc60e3cd7c11f678bfe1fb853a7bd0de8ed2ffe00f5f9758a2b00e122bc678b71fa74ad366573
+DIST Oracle_VM_VirtualBox_Extension_Pack-6.1.50.tar.gz 11175855 BLAKE2B 898ef92a91dbfb39079f8dfa5f4c1e6d91df66e92deb00849ba1da8a2278e3adcfd5754bf70acc6d8b6d7d6273923999860b71c01de3eaabf4d487d718aa14ef SHA512 818f0564a8ee1266f2d03d6e0d5df44278746067ae86279f6e884f519ad3e923382c7b987b3a58fe95e2aa4f0a53b98d553106b0250923e88989e5fdaa9dc3ae
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.12.tar.gz 18245684 BLAKE2B 6a55307034da5510d47bbf57bf557308be5c0459bbb21d0c79cc769a0f1ebae1e26c3202e23da17cd900b0ca88dbc653d2be0297817b79b61f426c6c5880c43a SHA512 0d311ed94a52d02634050f309886d6c5b627151b7e85a50e81a602c02c9400f01c1dfc21a7f52f33e50c2e27df96213f5b97cb3edc82f784ef171796c3ae6d56
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.14.tar.gz 18331089 BLAKE2B 278341be074c7bb276b90034355da3a55e2ef5efd89ad9a26a8f53b6743890772e1486ed5552ec131a8c80a710405dac284789d71a6c3bbec2dd79cf0e7e0459 SHA512 9301300dd1c2a178c730045128574b99a4a6cd1c2dd3f6a5782a78fa08588a4c5fd9c9ff6b2dbeba04747de915e3342ebbd08a4b9ed4641ff60f90f6a5c7fc3d
+DIST Oracle_VM_VirtualBox_Extension_Pack-7.0.16.tar.gz 18331063 BLAKE2B efacd03316b4a71e98fe41509851fe00227d6a935dbf5f8834e6aa32d5b0added25bc9282fdeff9f046ffba7775dc49d8ebc3fef497f88dc6cdbcc720f92c077 SHA512 50ca8f0961fcb7a7db1864faad99b9e0b00e06f9f7e1e377897d92353029e3d7d4a9acf07a2f7abd304fed1fa38e2acdad67b4ca73d645196feddf81c54366eb
diff --git a/app-emulation/virtualbox-extpack-oracle/metadata.xml b/app-emulation/virtualbox-extpack-oracle/metadata.xml
index 8dafc466cde2..498143329fed 100644
--- a/app-emulation/virtualbox-extpack-oracle/metadata.xml
+++ b/app-emulation/virtualbox-extpack-oracle/metadata.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
</maintainer>
- </pkgmetadata>
-
+</pkgmetadata>
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild
deleted file mode 100644
index e963a7a5ca90..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.0.24.139119.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
- DEP_PV="${MY_PV}"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
- DEP_PV="${MAIN_PV}"
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
-MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
-
-DESCRIPTION="PUEL extensions for VirtualBox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
-
-LICENSE="PUEL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="amd64 x86"
-IUSE=""
-RESTRICT="bindist mirror strip"
-
-RDEPEND="~app-emulation/virtualbox-${DEP_PV}"
-
-S="${WORKDIR}"
-
-QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
-
-src_install() {
- insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
-}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild
deleted file mode 100644
index 292f61b0055b..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.12.139181.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
- DEP_PV="${MY_PV}"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
- DEP_PV="${MAIN_PV}"
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
-MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
-
-DESCRIPTION="PUEL extensions for VirtualBox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
-
-LICENSE="PUEL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="bindist mirror strip"
-
-RDEPEND="=app-emulation/virtualbox-${DEP_PV}*"
-
-S="${WORKDIR}"
-
-QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
-
-src_install() {
- insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
-}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild
deleted file mode 100644
index 292f61b0055b..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.14.140239.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
- DEP_PV="${MY_PV}"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
- DEP_PV="${MAIN_PV}"
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
-MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
-
-DESCRIPTION="PUEL extensions for VirtualBox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
-
-LICENSE="PUEL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="bindist mirror strip"
-
-RDEPEND="=app-emulation/virtualbox-${DEP_PV}*"
-
-S="${WORKDIR}"
-
-QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
-
-src_install() {
- insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
-}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild
deleted file mode 100644
index 292f61b0055b..000000000000
--- a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.16.140961.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit multilib
-
-MAIN_PV="$(ver_cut 1-3)"
-if [[ ${PV} = *_beta* ]] || [[ ${PV} = *_rc* ]] ; then
- MY_PV="${MAIN_PV}_$(ver_cut 5-6)"
- DEP_PV="${MY_PV}"
- MY_PV="${MY_PV/beta/BETA}"
- MY_PV="${MY_PV/rc/RC}"
-else
- MY_PV="${MAIN_PV}"
- DEP_PV="${MAIN_PV}"
-fi
-VBOX_BUILD_ID="$(ver_cut 4)"
-MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
-MY_P="${MY_PN}-${MY_PV}-${VBOX_BUILD_ID}"
-
-DESCRIPTION="PUEL extensions for VirtualBox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
-
-LICENSE="PUEL"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE=""
-RESTRICT="bindist mirror strip"
-
-RDEPEND="=app-emulation/virtualbox-${DEP_PV}*"
-
-S="${WORKDIR}"
-
-QA_PREBUILT="/usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/.*"
-
-src_install() {
- insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
- doins -r linux.${ARCH}
- doins ExtPack* PXE-Intel.rom
-}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild
new file mode 100644
index 000000000000..85967cb38352
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.48.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_cut 1-3)"
+MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="PUEL extensions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="PUEL-11"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+RESTRICT="bindist mirror strip"
+
+RDEPEND=">=app-emulation/virtualbox-${MY_PV}"
+
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
+
+src_install() {
+ insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
+ doins -r linux.${ARCH}
+ doins ExtPack* PXE-Intel.rom
+}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild
new file mode 100644
index 000000000000..31f570aafe44
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-6.1.50.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_cut 1-3)"
+MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="PUEL extensions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="PUEL-11"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+RESTRICT="bindist mirror strip"
+
+RDEPEND=">=app-emulation/virtualbox-${MY_PV}"
+
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
+
+src_install() {
+ insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
+ doins -r linux.${ARCH}
+ doins ExtPack* PXE-Intel.rom
+}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild
new file mode 100644
index 000000000000..b058831162a0
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.12.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_cut 1-3)"
+MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="PUEL extensions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="PUEL-11"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+RESTRICT="bindist mirror strip"
+
+RDEPEND="=app-emulation/virtualbox-${MY_PV}*"
+
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
+
+src_install() {
+ insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
+ doins -r linux.${ARCH}
+ doins ExtPack* PXE-Intel.rom
+}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..8c44669215ab
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.14-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_cut 1-3)"
+MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="PUEL extensions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="PUEL-11"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+RESTRICT="bindist mirror strip"
+
+RDEPEND="
+ || (
+ =app-emulation/virtualbox-${MY_PV}*
+ =app-emulation/virtualbox-kvm-${MY_PV}*
+ )
+"
+
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
+
+src_install() {
+ insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
+ doins -r linux.${ARCH}
+ doins ExtPack* PXE-Intel.rom
+}
diff --git a/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.16.ebuild b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.16.ebuild
new file mode 100644
index 000000000000..8c44669215ab
--- /dev/null
+++ b/app-emulation/virtualbox-extpack-oracle/virtualbox-extpack-oracle-7.0.16.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="$(ver_cut 1-3)"
+MY_PN="Oracle_VM_VirtualBox_Extension_Pack"
+MY_P="${MY_PN}-${MY_PV}"
+
+DESCRIPTION="PUEL extensions for VirtualBox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.vbox-extpack -> ${MY_P}.tar.gz"
+S="${WORKDIR}"
+
+LICENSE="PUEL-11"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+RESTRICT="bindist mirror strip"
+
+RDEPEND="
+ || (
+ =app-emulation/virtualbox-${MY_PV}*
+ =app-emulation/virtualbox-kvm-${MY_PV}*
+ )
+"
+
+QA_PREBUILT="usr/lib*/virtualbox/ExtensionPacks/${MY_PN}/*"
+
+src_install() {
+ insinto /usr/$(get_libdir)/virtualbox/ExtensionPacks/${MY_PN}
+ doins -r linux.${ARCH}
+ doins ExtPack* PXE-Intel.rom
+}
diff --git a/app-emulation/virtualbox-guest-additions/Manifest b/app-emulation/virtualbox-guest-additions/Manifest
index 319ed8af7cbc..94862e2eeed7 100644
--- a/app-emulation/virtualbox-guest-additions/Manifest
+++ b/app-emulation/virtualbox-guest-additions/Manifest
@@ -1,6 +1,9 @@
-DIST VirtualBox-6.0.24.tar.bz2 159833756 BLAKE2B 321f7988a5b55a794e2d51937a0752d96eaefb376c12e2fb23be08dff81b164153e19a7d5963a0404f630fb38d6047b9d954a67923f26b2aa16d861a0c6a1b63 SHA512 e6f98d0036cdebc52c78c5ddbce369d9ef0a036c366647b299060e1ccf6942f6b6f899201dfa08c410a039f353b767a41a0d14579c741dc5c034a035cb16c534
-DIST VirtualBox-6.1.12a.tar.bz2 165246721 BLAKE2B e9ee7c10d92b151ab10833c68d0c71a09419bba4dbf86f21401263a98273f5ad5cf628347215d641e80e11d8e77bafeda606822cdd4d02344490fca6b95814ef SHA512 27fe66daf7fa254d9fc4a2cca4a8bbcfbfe6c3387a9f4a740c8ac1297587b5083bccbeef97dcc4e482c4974c843450212e02415b4952eb38b82e179615741193
-DIST VirtualBox-6.1.14a.tar.bz2 165962245 BLAKE2B 7f064ea58f7e4f36a0cda9badc7d16d5e95246de923ab9d179688c7f2f020625efa89c592aceec59d54f1c48934b20674594cc6a63f3f42e9fef39cfd5803027 SHA512 7bdf248b53c517923afc46998e46f63271f71ee73fa6826f367828128944895b2d672d7fc4d05f222e6d45897269fe699f7360ee1534c96450e2cc7bc14c0f13
-DIST VirtualBox-6.1.16.tar.bz2 165470821 BLAKE2B 13376322d0ce2ea3ed826c61816ff19c8ce1f022f6cb1f1b0c291d72354cbe574a01589a6dcc39de10080ba32d5961ca980e75fe11c7401736bf8f7e5443d166 SHA512 4373eb35934f894e419e1441f6368e646e4a84b963a0ecf1e5c71bbf0231de0b0e52f4c4377b8cd2d956bc7a11346a9da2285988bf1e4c743971c413c6529421
-DIST virtualbox-6.0.24-patches-01.tar.xz 3640 BLAKE2B e55c30395978471edd0f291cd34ecb772cce2f27bea88c6fe348e83046777638be9bdd36bf3a2fd1967357ea7ff53936398cd94ee74d8e55d31c1896069404ff SHA512 b8d9395083769a641a5d7f78ac734a86220fec817e3e49461208f8e72ef7d11c19fe4507e6766fe7c8c815c9888f793fd66f3fae36d6e3a217e53620b5d95029
-DIST virtualbox-6.1.12-patches-01.tar.xz 2528 BLAKE2B a5d7cde0daea41bee2e40e46569c725769927a31865d99d13b8b13c4903e59b4097f85da15dc592b9c7e8baf8ff805397af827620f107ba09a468b4d1198ecab SHA512 f71d10a9fbce99c3f631ef30bcfa9d0e017e702ac509541b039e08ccbcd024beb93fde09c43d90af5d9d28f6842a7947f20e7950d3897da3e6d57859657e1123
+DIST VirtualBox-6.1.48.tar.bz2 165960987 BLAKE2B c981e390ae518b829970827f6032fb19a93685fb58835a9d489c6e14cc60a5c14c65b0a3da5adae7818e73e1b0e558e8fa803160cb67847f18565bb78d656e97 SHA512 fff759f3871e4e8962536002f2bc13e5150a927e280493f5cb0abf06466ce66e45f4c6ef43489b5b3ed8682d8a3ac0eb6fb3dd7c4144924c81612553ec71a95f
+DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
+DIST VirtualBox-7.0.12.tar.bz2 175644088 BLAKE2B 507cbf7b1a8a807bd2602e74bc19a59cb177b9b2bdefa1be582e520666360a42510ca501f20c354746a0f1dadf61fe29135e3edc867e611bfe60a9405cb2bbce SHA512 9fe4511442eba788d02f932f5e98cfcc5aa4ebed41c00bd7333cf7e3f5de787e458f1f56930978283f041f403652c803143335fe9120ab63a2c113ca7b3f588f
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5
+DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
+DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
+DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
+DIST virtualbox-patches-7.0.8.tar.bz2 2733 BLAKE2B 044dfe02a5bd5e757091318b394b0e5918677b5bbce9caef4a18d4d8df54821559f0df6ffbdd6f52d4934bc4018e9c9d908571c5d3d8804fd3b0f22a7a1aed84 SHA512 93a06aa3f9508d3a8743ca8494a958159b5bc3fd7a0a08ff23414d05c4f31084cf0f1c82a3866e222c83e6996ba004546f0bd33c6eb9a90eec8e548b8b3f2fbf
diff --git a/app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch b/app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch
index baae66fb081f..41641f2336a5 100644
--- a/app-emulation/virtualbox-guest-additions/files/vboxguest-6.0.6-log-use-c99.patch
+++ b/app-emulation/virtualbox-guest-additions/files/vboxguest-6.1.36-log-use-c99.patch
@@ -2,12 +2,12 @@ https://bugs.gentoo.org/298988
--- a/vboxguest/Makefile
+++ b/vboxguest/Makefile
-@@ -136,7 +136,7 @@
+@@ -149,7 +149,7 @@
IN_MODULE \
RT_WITH_VBOX \
VBGL_VBOXGUEST \
- VBOX_WITH_HGCM
+ VBOX_WITH_HGCM LOG_USE_C99
- ifeq ($(BUILD_TARGET_ARCH),amd64)
+ ifeq ($(VBOX_KBUILD_TARGET_ARCH),amd64)
VBOXMOD_DEFS += VBOX_WITH_64_BITS_GUESTS
endif
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch
new file mode 100644
index 000000000000..459dbef713e9
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.14-kernel-6.8.patch
@@ -0,0 +1,242 @@
+Support for kernel 6.8.x.
+
+https://www.virtualbox.org/changeset/102989/vbox
+https://www.virtualbox.org/changeset/102990/vbox
+https://www.virtualbox.org/changeset/102992/vbox
+https://www.virtualbox.org/changeset/102993/vbox
+https://www.virtualbox.org/changeset/102994/vbox
+
+------------------------------------------------------------------------
+r102989 | vboxsync | 2024-01-22 19:12:25 +0200 (Lu, 22 ian 2024) | 2 lines
+
+iprt: Add wrapper for strlcpy/strscpy functions, bugref:10584.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -245,7 +245,29 @@
+ # define RT_BCOPY_UNFORTIFIED(a_pDst, a_pSrc, a_cbToCopy) memcpy((a_pDst), (a_pSrc), (a_cbToCopy))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
+
++/** @def RT_STRSCPY
++ * Copy string and NULL-terminate output buffer.
++ *
++ * This macro should mostly be used in Linux kernel code. This is
++ * the replacement for deprecated strlcpy. It was deprecated since 3.16.60
++ * when strscpy was introduced as an alternative. Finally, strlcpy was
++ * completely removed from kernel code in 6.8.0.
++ *
++ * @param a_pDst Pointer to the destination string buffer.
++ * @param a_pSrc Pointer to the source NULL-terminated string buffer.
++ * @param a_cbToCopy Size of destination buffer..
++ */
++#if defined(RT_OS_LINUX) && defined(__KERNEL__)
++# if (RTLNX_VER_MIN(3,16,60))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# else /* < 3.16.60 */
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# endif
++#else /* !RT_OS_LINUX && !__KERNEL__ */
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++#endif /* !RT_OS_LINUX && !__KERNEL__ */
+
++
+ #ifdef IN_RING3
+
+ /**
+
+------------------------------------------------------------------------
+------------------------------------------------------------------------
+r102990 | vboxsync | 2024-01-22 19:13:50 +0200 (Lu, 22 ian 2024) | 2 lines
+
+Additions: Linux: Introduce initial support for kernel 6.8, bugref:10584.
+
+
+--- a/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
++++ b/src/VBox/Additions/common/VBoxGuest/VBoxGuest-linux.c
+@@ -1410,7 +1410,7 @@
+ RTLogGroupSettings(pLogger, pszValue);
+ }
+ else if (pParam->name[0] != 'd')
+- strlcpy(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
++ RT_STRSCPY(&g_szLogGrp[0], pszValue, sizeof(g_szLogGrp));
+
+ return 0;
+ }
+@@ -1436,7 +1436,7 @@
+ RTLogFlags(pLogger, pszValue);
+ }
+ else if (pParam->name[0] != 'd')
+- strlcpy(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
++ RT_STRSCPY(&g_szLogFlags[0], pszValue, sizeof(g_szLogFlags));
+ return 0;
+ }
+
+@@ -1461,7 +1461,7 @@
+ RTLogDestinations(pLogger, pszValue);
+ }
+ else if (pParam->name[0] != 'd')
+- strlcpy(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
++ RT_STRSCPY(&g_szLogDst[0], pszValue, sizeof(g_szLogDst));
+ return 0;
+ }
+
+--- a/src/VBox/Additions/linux/drm/vbox_drv.h
++++ b/src/VBox/Additions/linux/drm/vbox_drv.h
+@@ -538,9 +538,7 @@
+ int vbox_irq_init(struct vbox_private *vbox);
+ void vbox_irq_fini(struct vbox_private *vbox);
+ void vbox_report_hotplug(struct vbox_private *vbox);
+-#if RTLNX_VER_MAX(5,15,0) && !RTLNX_RHEL_MAJ_PREREQ(9,1) && !RTLNX_SUSE_MAJ_PREREQ(15,5)
+ irqreturn_t vbox_irq_handler(int irq, void *arg);
+-#endif
+
+ /* vbox_hgsmi.c */
+ void *hgsmi_buffer_alloc(struct gen_pool *guest_pool, size_t size,
+--- a/src/VBox/Additions/linux/sharedfolders/vfsmod.c
++++ b/src/VBox/Additions/linux/sharedfolders/vfsmod.c
+@@ -1408,7 +1408,7 @@
+ switch (opt) {
+ case Opt_iocharset:
+ case Opt_nls:
+- strlcpy(info->nls_name, param->string, sizeof(info->nls_name));
++ RT_STRSCPY(info->nls_name, param->string, sizeof(info->nls_name));
+ break;
+ case Opt_uid:
+ info->uid = result.uint_32;
+@@ -1469,7 +1469,7 @@
+ printk(KERN_WARNING "vboxsf: cache mode (%u) is out of range, using default instead.\n", result.uint_32);
+ break;
+ case Opt_tag:
+- strlcpy(info->szTag, param->string, sizeof(info->szTag));
++ RT_STRSCPY(info->szTag, param->string, sizeof(info->szTag));
+ break;
+ default:
+ return invalf(fc, "Invalid mount option: '%s'", param->key);
+@@ -1528,7 +1528,7 @@
+ }
+
+ /* fc->source (the shared folder name) is set after vbsf_init_fs_ctx() */
+- strlcpy(info->name, fc->source, sizeof(info->name));
++ RT_STRSCPY(info->name, fc->source, sizeof(info->name));
+
+ # if RTLNX_VER_MAX(5,3,0)
+ return vfs_get_super(fc, vfs_get_independent_super, vbsf_read_super_aux);
+--- a/src/VBox/Additions/linux/sharedfolders/regops.c
++++ b/src/VBox/Additions/linux/sharedfolders/regops.c
+@@ -3505,7 +3505,7 @@
+ };
+
+ /** file_operations::mmap wrapper for logging purposes. */
+-extern int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
++static int vbsf_reg_mmap(struct file *file, struct vm_area_struct *vma)
+ {
+ int rc;
+ SFLOGFLOW(("vbsf_reg_mmap: file=%p vma=%p\n", file, vma));
+@@ -3786,7 +3786,7 @@
+ }
+
+ # if RTLNX_VER_MIN(5,19,0) || RTLNX_RHEL_RANGE(9,3, 9,99)
+-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
+ unsigned len, struct page **pagep, void **fsdata)
+ {
+ vbsf_write_begin_warn(pos, len, 0);
+@@ -3793,7 +3793,7 @@
+ return simple_write_begin(file, mapping, pos, len, pagep, fsdata);
+ }
+ # else
+-int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
++static int vbsf_write_begin(struct file *file, struct address_space *mapping, loff_t pos,
+ unsigned len, unsigned flags, struct page **pagep, void **fsdata)
+ {
+ vbsf_write_begin_warn(pos, len, flags);
+
+------------------------------------------------------------------------
+------------------------------------------------------------------------
+r102992 | vboxsync | 2024-01-22 19:33:49 +0200 (Lu, 22 ian 2024) | 5 lines
+
+iprt: Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584.
+
+Ignore return code of strscpy() in RT_STRSCPY macro sinse we have no caller
+who is using it. Also rename macro parameter, so it makes more sense.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -255,16 +255,16 @@
+ *
+ * @param a_pDst Pointer to the destination string buffer.
+ * @param a_pSrc Pointer to the source NULL-terminated string buffer.
+- * @param a_cbToCopy Size of destination buffer..
++ * @param a_cbDst Size of destination buffer.
+ */
+ #if defined(RT_OS_LINUX) && defined(__KERNEL__)
+ # if (RTLNX_VER_MIN(3,16,60))
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
+ # else /* < 3.16.60 */
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strlcpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+ # endif
+ #else /* !RT_OS_LINUX && !__KERNEL__ */
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbToCopy) strscpy((a_pDst), (a_pSrc), (a_cbToCopy))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
+
+
+
+------------------------------------------------------------------------
+r102993 | vboxsync | 2024-01-22 19:41:44 +0200 (Lu, 22 ian 2024) | 5 lines
+
+Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584.
+
+It seem, strscpy was added around 4.3.0. Older kernels probably
+have it as a backport. So, stick to 4.3.0.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -258,7 +258,7 @@
+ * @param a_cbDst Size of destination buffer.
+ */
+ #if defined(RT_OS_LINUX) && defined(__KERNEL__)
+-# if (RTLNX_VER_MIN(3,16,60))
++# if (RTLNX_VER_MIN(4,3,0))
+ # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
+ # else /* < 3.16.60 */
+ # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+
+------------------------------------------------------------------------
+r102994 | vboxsync | 2024-01-22 20:06:29 +0200 (Lu, 22 ian 2024) | 6 lines
+
+iprt: Add wrapper for strlcpy/strscpy functions, build fix, bugref:10584.
+
+Another way around to suppress build error when strscpy return status
+is not used. Also, turn macro into strlcpy for non-Linux systems,
+so for them it will be no change.
+
+
+--- a/include/iprt/string.h
++++ b/include/iprt/string.h
+@@ -259,12 +259,16 @@
+ */
+ #if defined(RT_OS_LINUX) && defined(__KERNEL__)
+ # if (RTLNX_VER_MIN(4,3,0))
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) \
++ { \
++ ssize_t _ret; \
++ _ret = strscpy((a_pDst), (a_pSrc), (a_cbDst)); \
++ }
+ # else /* < 3.16.60 */
+ # define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+ # endif
+ #else /* !RT_OS_LINUX && !__KERNEL__ */
+-# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) (void)strscpy((a_pDst), (a_pSrc), (a_cbDst))
++# define RT_STRSCPY(a_pDst, a_pSrc, a_cbDst) strlcpy((a_pDst), (a_pSrc), (a_cbDst))
+ #endif /* !RT_OS_LINUX && !__KERNEL__ */
+
+
+
+------------------------------------------------------------------------
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
new file mode 100644
index 000000000000..8e53107aedbc
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
@@ -0,0 +1,24 @@
+This file ends up included in
+src/VBox/Additions/common/VBoxGuest/lib/VBoxGuestR3LibRuntimeXF86.cpp which
+is compiled with -ffreestanding, so it shouldn't include math.h
+
+See also: https://bugs.gentoo.org/907597
+
+--- a/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
++++ b/src/VBox/Additions/x11/x11include/XFree86-4.3/Xserver/misc.h
+@@ -169,6 +169,7 @@
+ #ifndef IN_MODULE
+ /* XXX Not for modules */
+ #include <limits.h>
++#if defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1
+ #if !defined(MAXSHORT) || !defined(MINSHORT) || \
+ !defined(MAXINT) || !defined(MININT)
+ /*
+@@ -178,6 +179,7 @@
+
+ #include <math.h>
+ #endif
++#endif // defined __STDC_HOSTED__ && __STDC_HOSTED__ == 1
+ #undef MAXSHORT
+ #define MAXSHORT SHRT_MAX
+ #undef MINSHORT
diff --git a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1
index 3af22dbfa49e..17c90bb9d819 100644
--- a/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd
+++ b/app-emulation/virtualbox-guest-additions/files/virtualbox-guest-additions-8.initd-r1
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
pidfile="/var/run/vboxguest-service.pid"
@@ -9,7 +9,7 @@ command_background="true"
depend() {
need dbus localmount
- before xdm
+ before display-manager
}
start_pre() {
diff --git a/app-emulation/virtualbox-guest-additions/metadata.xml b/app-emulation/virtualbox-guest-additions/metadata.xml
index 8dafc466cde2..498143329fed 100644
--- a/app-emulation/virtualbox-guest-additions/metadata.xml
+++ b/app-emulation/virtualbox-guest-additions/metadata.xml
@@ -1,9 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
</maintainer>
- </pkgmetadata>
-
+</pkgmetadata>
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild
deleted file mode 100644
index 24c3f7e1b184..000000000000
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.12a-r1.ebuild
+++ /dev/null
@@ -1,221 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit linux-mod systemd toolchain-funcs
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P="${MY_PN}-${MY_PV}"
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
-
-# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
-RDEPEND="
- acct-group/vboxguest
- acct-group/vboxsf
- acct-user/vboxguest
- X? ( x11-apps/xrandr
- x11-apps/xrefresh
- x11-libs/libXmu
- x11-libs/libX11
- x11-libs/libXt
- x11-libs/libXext
- x11-libs/libXau
- x11-libs/libXdmcp
- x11-libs/libSM
- x11-libs/libICE )
- sys-apps/dbus
-"
-DEPEND="
- ${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/pam
- sys-power/iasl
- x11-base/xorg-proto
-"
-PDEPEND="
- X? ( x11-drivers/xf86-video-vboxvideo )
-"
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${PV}}"
-VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src"
-
-pkg_setup() {
- export DISTCC_DISABLE=1 #674256
- MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest)
- vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)"
- use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)"
-
- linux-mod_pkg_setup
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
-}
-
-src_prepare() {
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- rm -r kBuild/bin tools || die
-
- # Provide kernel sources
- pushd src/VBox/Additions &>/dev/null || die
- ebegin "Extracting guest kernel module sources"
- kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die
- eend
- popd &>/dev/null || die
-
- # PaX fixes (see bug #298988)
- pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch
- popd &>/dev/null || die
-
- # Disable things unused or splitted into separate ebuilds
- cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
- use X || echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk
-
- # Remove pointless GCC version check
- sed -e '/^check_gcc$/d' -i configure || die
-
- eapply "${WORKDIR}/patches"
-
- eapply_user
-}
-
-src_configure() {
- # build the user-space tools, warnings are harmless
- local cmd=(
- ./configure
- --nofatal
- --disable-xpcom
- --disable-sdl-ttf
- --disable-pulse
- --disable-alsa
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
- --target-arch=${ARCH}
- --with-linux="${KV_OUT_DIR}"
- --build-headless
- )
- echo "${cmd[@]}"
- "${cmd[@]}" || die "configure failed"
- source ./env.sh
- export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
-}
-
-src_compile() {
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm \
- VBOX_ONLY_ADDITIONS=1 \
- KBUILD_VERBOSE=2
-
- # Now creating the kernel modules. We must do this _after_
- # we compiled the user-space tools as we need two of the
- # automatically generated header files. (>=3.2.0)
- linux-mod_src_compile
-}
-
-src_install() {
- linux-mod_src_install
-
- cd "${S}"/out/linux.${ARCH}/release/bin/additions || die
-
- insinto /sbin
- newins mount.vboxsf mount.vboxsf
- fperms 4755 /sbin/mount.vboxsf
-
- newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
-
- insinto /usr/sbin/
- newins VBoxService vboxguest-service
- fperms 0755 /usr/sbin/vboxguest-service
-
- insinto /usr/bin
- doins VBoxControl
- fperms 0755 /usr/bin/VBoxControl
-
- # VBoxClient user service and xrandr wrapper
- if use X ; then
- doins VBoxClient
- fperms 0755 /usr/bin/VBoxClient
-
- pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \
- || die
- newins 98vboxadd-xclient VBoxClient-all
- fperms 0755 /usr/bin/VBoxClient-all
- popd &>/dev/null || die
- fi
-
- # udev rule for vboxdrv
- local udev_rules_dir="/lib/udev/rules.d"
- dodir ${udev_rules_dir}
- echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
- >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
- || die
- echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
- >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
- || die
-
- # VBoxClient autostart file
- insinto /etc/xdg/autostart
- doins "${FILESDIR}"/vboxclient.desktop
-
- # sample xorg.conf
- dodoc "${FILESDIR}"/xorg.conf.vbox
- docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
- if ! use X ; then
- elog "use flag X is off, enable it to install the"
- elog "X Window System video driver."
- fi
- elog ""
- elog "Please add users to the \"vboxguest\" group so they can"
- elog "benefit from seamless mode, auto-resize and clipboard."
- elog ""
- elog "The vboxsf group has been added to make automount services work."
- elog "These services are part of the shared folders support."
- elog ""
- elog "Please add:"
- elog "/etc/init.d/${PN}"
- elog "to the default runlevel in order to start"
- elog "needed services."
- elog "To use the VirtualBox X driver, use the following"
- elog "file as your /etc/X11/xorg.conf:"
- elog " /usr/share/doc/${PF}/xorg.conf.vbox"
- elog ""
- elog "Also make sure you use the Mesa library for OpenGL:"
- elog " eselect opengl set xorg-x11"
- elog ""
- elog "An autostart .desktop file has been installed to start"
- elog "VBoxClient in desktop sessions."
- elog ""
- elog "You can mount shared folders with:"
- elog " mount -t vboxsf <shared_folder_name> <mount_point>"
- elog ""
- elog "Warning:"
- elog "this ebuild is only needed if you are running gentoo"
- elog "inside a VirtualBox Virtual Machine, you don't need"
- elog "it to run VirtualBox itself."
- elog ""
-}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild
deleted file mode 100644
index 24c3f7e1b184..000000000000
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.14a.ebuild
+++ /dev/null
@@ -1,221 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit linux-mod systemd toolchain-funcs
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P="${MY_PN}-${MY_PV}"
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64 ~x86"
-IUSE="X"
-
-# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
-RDEPEND="
- acct-group/vboxguest
- acct-group/vboxsf
- acct-user/vboxguest
- X? ( x11-apps/xrandr
- x11-apps/xrefresh
- x11-libs/libXmu
- x11-libs/libX11
- x11-libs/libXt
- x11-libs/libXext
- x11-libs/libXau
- x11-libs/libXdmcp
- x11-libs/libSM
- x11-libs/libICE )
- sys-apps/dbus
-"
-DEPEND="
- ${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/pam
- sys-power/iasl
- x11-base/xorg-proto
-"
-PDEPEND="
- X? ( x11-drivers/xf86-video-vboxvideo )
-"
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${PV}}"
-VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src"
-
-pkg_setup() {
- export DISTCC_DISABLE=1 #674256
- MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest)
- vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)"
- use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)"
-
- linux-mod_pkg_setup
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
-}
-
-src_prepare() {
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- rm -r kBuild/bin tools || die
-
- # Provide kernel sources
- pushd src/VBox/Additions &>/dev/null || die
- ebegin "Extracting guest kernel module sources"
- kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die
- eend
- popd &>/dev/null || die
-
- # PaX fixes (see bug #298988)
- pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch
- popd &>/dev/null || die
-
- # Disable things unused or splitted into separate ebuilds
- cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
- use X || echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk
-
- # Remove pointless GCC version check
- sed -e '/^check_gcc$/d' -i configure || die
-
- eapply "${WORKDIR}/patches"
-
- eapply_user
-}
-
-src_configure() {
- # build the user-space tools, warnings are harmless
- local cmd=(
- ./configure
- --nofatal
- --disable-xpcom
- --disable-sdl-ttf
- --disable-pulse
- --disable-alsa
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
- --target-arch=${ARCH}
- --with-linux="${KV_OUT_DIR}"
- --build-headless
- )
- echo "${cmd[@]}"
- "${cmd[@]}" || die "configure failed"
- source ./env.sh
- export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
-}
-
-src_compile() {
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm \
- VBOX_ONLY_ADDITIONS=1 \
- KBUILD_VERBOSE=2
-
- # Now creating the kernel modules. We must do this _after_
- # we compiled the user-space tools as we need two of the
- # automatically generated header files. (>=3.2.0)
- linux-mod_src_compile
-}
-
-src_install() {
- linux-mod_src_install
-
- cd "${S}"/out/linux.${ARCH}/release/bin/additions || die
-
- insinto /sbin
- newins mount.vboxsf mount.vboxsf
- fperms 4755 /sbin/mount.vboxsf
-
- newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
-
- insinto /usr/sbin/
- newins VBoxService vboxguest-service
- fperms 0755 /usr/sbin/vboxguest-service
-
- insinto /usr/bin
- doins VBoxControl
- fperms 0755 /usr/bin/VBoxControl
-
- # VBoxClient user service and xrandr wrapper
- if use X ; then
- doins VBoxClient
- fperms 0755 /usr/bin/VBoxClient
-
- pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \
- || die
- newins 98vboxadd-xclient VBoxClient-all
- fperms 0755 /usr/bin/VBoxClient-all
- popd &>/dev/null || die
- fi
-
- # udev rule for vboxdrv
- local udev_rules_dir="/lib/udev/rules.d"
- dodir ${udev_rules_dir}
- echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
- >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
- || die
- echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
- >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
- || die
-
- # VBoxClient autostart file
- insinto /etc/xdg/autostart
- doins "${FILESDIR}"/vboxclient.desktop
-
- # sample xorg.conf
- dodoc "${FILESDIR}"/xorg.conf.vbox
- docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
-
- systemd_dounit "${FILESDIR}/${PN}.service"
-}
-
-pkg_postinst() {
- linux-mod_pkg_postinst
- if ! use X ; then
- elog "use flag X is off, enable it to install the"
- elog "X Window System video driver."
- fi
- elog ""
- elog "Please add users to the \"vboxguest\" group so they can"
- elog "benefit from seamless mode, auto-resize and clipboard."
- elog ""
- elog "The vboxsf group has been added to make automount services work."
- elog "These services are part of the shared folders support."
- elog ""
- elog "Please add:"
- elog "/etc/init.d/${PN}"
- elog "to the default runlevel in order to start"
- elog "needed services."
- elog "To use the VirtualBox X driver, use the following"
- elog "file as your /etc/X11/xorg.conf:"
- elog " /usr/share/doc/${PF}/xorg.conf.vbox"
- elog ""
- elog "Also make sure you use the Mesa library for OpenGL:"
- elog " eselect opengl set xorg-x11"
- elog ""
- elog "An autostart .desktop file has been installed to start"
- elog "VBoxClient in desktop sessions."
- elog ""
- elog "You can mount shared folders with:"
- elog " mount -t vboxsf <shared_folder_name> <mount_point>"
- elog ""
- elog "Warning:"
- elog "this ebuild is only needed if you are running gentoo"
- elog "inside a VirtualBox Virtual Machine, you don't need"
- elog "it to run VirtualBox itself."
- elog ""
-}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.24-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.48.ebuild
index 43d5a64becc6..fe43f7ac3ca9 100644
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.0.24-r1.ebuild
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.48.ebuild
@@ -1,84 +1,86 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit linux-mod systemd toolchain-funcs
+inherit edo linux-mod-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P="VirtualBox-${MY_PV}"
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.0.24-patches-01.tar.xz"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="amd64 x86"
-IUSE="X"
+IUSE="X +dbus"
# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
RDEPEND="
acct-group/vboxguest
acct-group/vboxsf
acct-user/vboxguest
- X? ( x11-apps/xrandr
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ X? (
+ x11-apps/xrandr
x11-apps/xrefresh
- x11-libs/libXmu
x11-libs/libX11
- x11-libs/libXt
x11-libs/libXext
- x11-libs/libXau
- x11-libs/libXdmcp
- x11-libs/libSM
- x11-libs/libICE )
- sys-apps/dbus
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
"
DEPEND="
${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ )
+"
+BDEPEND="
+ >=dev-build/kbuild-0.1.9998.3127
+ <=dev-build/kbuild-0.1.9998.3500
>=dev-lang/yasm-0.6.2
sys-devel/bin86
- sys-libs/pam
sys-power/iasl
- x11-base/xorg-proto
"
PDEPEND="
X? ( x11-drivers/xf86-video-vboxvideo )
"
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-S="${WORKDIR}/${MY_P}"
-VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src"
+PATCHES=(
+ "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
+)
-pkg_setup() {
- export DISTCC_DISABLE=1 #674256
- MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest)
- vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)"
- use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)"
+DOCS=() # Don't install the default README file during einstalldocs
- linux-mod_pkg_setup
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
-}
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="DRM_TTM"
src_prepare() {
+ eapply "${PATCHES[@]}"
+
# Remove shipped binaries (kBuild,yasm), see bug #232775
rm -r kBuild/bin tools || die
# Provide kernel sources
pushd src/VBox/Additions &>/dev/null || die
ebegin "Extracting guest kernel module sources"
- kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die
- eend
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
popd &>/dev/null || die
# PaX fixes (see bug #298988)
- pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch
- popd &>/dev/null || die
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
# Disable things unused or splitted into separate ebuilds
cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
@@ -87,57 +89,122 @@ src_prepare() {
# Remove pointless GCC version check
sed -e '/^check_gcc$/d' -i configure || die
- eapply "${WORKDIR}/patches"
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk
+ eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches"
eapply_user
}
src_configure() {
- # build the user-space tools, warnings are harmless
- local cmd=(
- ./configure
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
--nofatal
--disable-xpcom
--disable-sdl-ttf
--disable-pulse
--disable-alsa
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
+ $(usev !dbus --disable-dbus)
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
)
- echo "${cmd[@]}"
- "${cmd[@]}" || die "configure failed"
- source ./env.sh
- export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
}
src_compile() {
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm \
- VBOX_ONLY_ADDITIONS=1 \
- KBUILD_VERBOSE=2
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
# Now creating the kernel modules. We must do this _after_
# we compiled the user-space tools as we need two of the
# automatically generated header files. (>=3.2.0)
- linux-mod_src_compile
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use X && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
}
src_install() {
- linux-mod_src_install
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
- cd "${S}"/out/linux.${ARCH}/release/bin/additions || die
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
insinto /sbin
newins mount.vboxsf mount.vboxsf
fperms 4755 /sbin/mount.vboxsf
- newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
insinto /usr/sbin/
newins VBoxService vboxguest-service
@@ -151,9 +218,10 @@ src_install() {
if use X ; then
doins VBoxClient
fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
- pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \
- || die
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
newins 98vboxadd-xclient VBoxClient-all
fperms 0755 /usr/bin/VBoxClient-all
popd &>/dev/null || die
@@ -181,7 +249,8 @@ src_install() {
}
pkg_postinst() {
- linux-mod_pkg_postinst
+ linux-mod-r1_pkg_postinst
+ udev_reload
if ! use X ; then
elog "use flag X is off, enable it to install the"
elog "X Window System video driver."
@@ -201,9 +270,6 @@ pkg_postinst() {
elog "file as your /etc/X11/xorg.conf:"
elog " /usr/share/doc/${PF}/xorg.conf.vbox"
elog ""
- elog "Also make sure you use the Mesa library for OpenGL:"
- elog " eselect opengl set xorg-x11"
- elog ""
elog "An autostart .desktop file has been installed to start"
elog "VBoxClient in desktop sessions."
elog ""
@@ -216,3 +282,7 @@ pkg_postinst() {
elog "it to run VirtualBox itself."
elog ""
}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild
new file mode 100644
index 000000000000..60c236597e5a
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50-r1.ebuild
@@ -0,0 +1,292 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="X +dbus"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ X? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ )
+"
+BDEPEND="
+ >=dev-build/kbuild-0.1.9998.3127
+ <=dev-build/kbuild-0.1.9998.3500
+ >=dev-lang/yasm-0.6.2
+ sys-devel/bin86
+ sys-power/iasl
+"
+
+PATCHES=(
+ "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
+)
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
+WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
+WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
+
+DOC_CONTENTS="\n
+Please add users to the \"vboxguest\" group so they can\n
+benefit from seamless mode, auto-resize and clipboard.\n
+\n
+The vboxsf group has been added to make automount services work.\n
+These services are part of the shared folders support.\n
+\n
+Please add:\n
+ /etc/init.d/virtualbox-guest-additions\n
+to the default runlevel in order to start\n
+needed services.\n
+\n
+An autostart .desktop file has been installed to start\n
+VBoxClient in desktop sessions.\n
+\n
+You can mount shared folders with:\n
+ mount -t vboxsf <shared_folder_name> <mount_point>\n
+\n
+Warning:\n
+ this ebuild is only needed if you are running gentoo\n
+ inside a VirtualBox Virtual Machine, you don't need\n
+ it to run VirtualBox itself.\n
+\n"
+
+src_prepare() {
+ eapply "${PATCHES[@]}"
+
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use X; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/^check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use X && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use X ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+
+ if ! use X ; then
+ elog "The use flag \"X\" is off, enable it to install the"
+ elog "X Window System drivers and integration."
+ fi
+
+ readme.gentoo_print_elog
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.16.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild
index 24c3f7e1b184..346c45fc35e9 100644
--- a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.16.ebuild
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-6.1.50.ebuild
@@ -1,87 +1,86 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit linux-mod systemd toolchain-funcs
+inherit edo linux-mod-r1 systemd toolchain-funcs udev
MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P="${MY_PN}-${MY_PV}"
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
+MY_P="${MY_PN}-${PV}"
DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/virtualbox/patchsets/virtualbox-6.1.12-patches-01.tar.xz"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
+SLOT="0/$(ver_cut 1-2)"
KEYWORDS="~amd64 ~x86"
-IUSE="X"
+IUSE="X +dbus"
# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
RDEPEND="
acct-group/vboxguest
acct-group/vboxsf
acct-user/vboxguest
- X? ( x11-apps/xrandr
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ X? (
+ x11-apps/xrandr
x11-apps/xrefresh
- x11-libs/libXmu
x11-libs/libX11
- x11-libs/libXt
x11-libs/libXext
- x11-libs/libXau
- x11-libs/libXdmcp
- x11-libs/libSM
- x11-libs/libICE )
- sys-apps/dbus
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
"
DEPEND="
${RDEPEND}
- >=dev-util/kbuild-0.1.9998.3127
+ X? (
+ x11-base/xorg-proto
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ )
+"
+BDEPEND="
+ >=dev-build/kbuild-0.1.9998.3127
+ <=dev-build/kbuild-0.1.9998.3500
>=dev-lang/yasm-0.6.2
sys-devel/bin86
- sys-libs/pam
sys-power/iasl
- x11-base/xorg-proto
"
PDEPEND="
X? ( x11-drivers/xf86-video-vboxvideo )
"
-BUILD_TARGETS="all"
-BUILD_TARGET_ARCH="${ARCH}"
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${PV}}"
-VBOX_MOD_SRC_DIR="${S}/out/linux.${ARCH}/release/bin/additions/src"
+PATCHES=(
+ "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
+)
-pkg_setup() {
- export DISTCC_DISABLE=1 #674256
- MODULE_NAMES="vboxguest(misc:${VBOX_MOD_SRC_DIR}/vboxguest:${VBOX_MOD_SRC_DIR}/vboxguest)
- vboxsf(misc:${VBOX_MOD_SRC_DIR}/vboxsf:${VBOX_MOD_SRC_DIR}/vboxsf)"
- use X && MODULE_NAMES+=" vboxvideo(misc:${VBOX_MOD_SRC_DIR}/vboxvideo::${VBOX_MOD_SRC_DIR}/vboxvideo)"
+DOCS=() # Don't install the default README file during einstalldocs
- linux-mod_pkg_setup
- BUILD_PARAMS="KERN_DIR=/lib/modules/${KV_FULL}/build KERNOUT=${KV_OUT_DIR} KBUILD_EXTRA_SYMBOLS=${S}/Module.symvers"
-}
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="DRM_TTM"
src_prepare() {
+ eapply "${PATCHES[@]}"
+
# Remove shipped binaries (kBuild,yasm), see bug #232775
rm -r kBuild/bin tools || die
# Provide kernel sources
pushd src/VBox/Additions &>/dev/null || die
ebegin "Extracting guest kernel module sources"
- kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null || die
- eend
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
popd &>/dev/null || die
# PaX fixes (see bug #298988)
- pushd "${VBOX_MOD_SRC_DIR}" &>/dev/null || die
- eapply "${FILESDIR}"/vboxguest-6.0.6-log-use-c99.patch
- popd &>/dev/null || die
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
# Disable things unused or splitted into separate ebuilds
cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
@@ -90,57 +89,122 @@ src_prepare() {
# Remove pointless GCC version check
sed -e '/^check_gcc$/d' -i configure || die
- eapply "${WORKDIR}/patches"
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBOXR3EXE_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk
+ eapply "${WORKDIR}/virtualbox-patches-6.1.36/patches"
eapply_user
}
src_configure() {
- # build the user-space tools, warnings are harmless
- local cmd=(
- ./configure
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
--nofatal
--disable-xpcom
--disable-sdl-ttf
--disable-pulse
--disable-alsa
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
+ $(usev !dbus --disable-dbus)
--target-arch=${ARCH}
--with-linux="${KV_OUT_DIR}"
--build-headless
)
- echo "${cmd[@]}"
- "${cmd[@]}" || die "configure failed"
- source ./env.sh
- export VBOX_GCC_OPT="${CFLAGS} ${CPPFLAGS}"
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
}
src_compile() {
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm \
- VBOX_ONLY_ADDITIONS=1 \
- KBUILD_VERBOSE=2
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
# Now creating the kernel modules. We must do this _after_
# we compiled the user-space tools as we need two of the
# automatically generated header files. (>=3.2.0)
- linux-mod_src_compile
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use X && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
}
src_install() {
- linux-mod_src_install
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
- cd "${S}"/out/linux.${ARCH}/release/bin/additions || die
+ cd out/linux.${ARCH}/release/bin/additions || die
insinto /sbin
newins mount.vboxsf mount.vboxsf
fperms 4755 /sbin/mount.vboxsf
- newinitd "${FILESDIR}"/${PN}-8.initd ${PN}
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
insinto /usr/sbin/
newins VBoxService vboxguest-service
@@ -154,9 +218,10 @@ src_install() {
if use X ; then
doins VBoxClient
fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
- pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null \
- || die
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
newins 98vboxadd-xclient VBoxClient-all
fperms 0755 /usr/bin/VBoxClient-all
popd &>/dev/null || die
@@ -184,7 +249,8 @@ src_install() {
}
pkg_postinst() {
- linux-mod_pkg_postinst
+ linux-mod-r1_pkg_postinst
+ udev_reload
if ! use X ; then
elog "use flag X is off, enable it to install the"
elog "X Window System video driver."
@@ -204,9 +270,6 @@ pkg_postinst() {
elog "file as your /etc/X11/xorg.conf:"
elog " /usr/share/doc/${PF}/xorg.conf.vbox"
elog ""
- elog "Also make sure you use the Mesa library for OpenGL:"
- elog " eselect opengl set xorg-x11"
- elog ""
elog "An autostart .desktop file has been installed to start"
elog "VBoxClient in desktop sessions."
elog ""
@@ -219,3 +282,7 @@ pkg_postinst() {
elog "it to run VirtualBox itself."
elog ""
}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild
new file mode 100644
index 000000000000..52388f674103
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.12.ebuild
@@ -0,0 +1,294 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.8.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64 x86"
+IUSE="+dbus gui"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+# TODO: find out what this is, remove comment if obsolete
+
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+PDEPEND="
+ gui? ( x11-drivers/xf86-video-vboxvideo )
+"
+
+PATCHES=(
+ "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
+)
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="DRM_TTM"
+
+src_prepare() {
+ eapply "${PATCHES[@]}"
+
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use gui; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-7.0.8/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use gui && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+ if ! use gui ; then
+ elog "use flag gui is off, enable it to install the"
+ elog "X Window System video driver."
+ fi
+ elog ""
+ elog "Please add users to the \"vboxguest\" group so they can"
+ elog "benefit from seamless mode, auto-resize and clipboard."
+ elog ""
+ elog "The vboxsf group has been added to make automount services work."
+ elog "These services are part of the shared folders support."
+ elog ""
+ elog "Please add:"
+ elog "/etc/init.d/${PN}"
+ elog "to the default runlevel in order to start"
+ elog "needed services."
+ elog "To use the VirtualBox X driver, use the following"
+ elog "file as your /etc/X11/xorg.conf:"
+ elog " /usr/share/doc/${PF}/xorg.conf.vbox"
+ elog ""
+ elog "An autostart .desktop file has been installed to start"
+ elog "VBoxClient in desktop sessions."
+ elog ""
+ elog "You can mount shared folders with:"
+ elog " mount -t vboxsf <shared_folder_name> <mount_point>"
+ elog ""
+ elog "Warning:"
+ elog "this ebuild is only needed if you are running gentoo"
+ elog "inside a VirtualBox Virtual Machine, you don't need"
+ elog "it to run VirtualBox itself."
+ elog ""
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..ca8e8a155d26
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r1.ebuild
@@ -0,0 +1,294 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dbus gui"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+# TODO: find out what this is, remove comment if obsolete
+
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+PDEPEND="
+ gui? ( x11-drivers/xf86-video-vboxvideo )
+"
+
+PATCHES=(
+ "${FILESDIR}"/virtualbox-guest-additions-7.0.8-fix-gcc13.patch
+)
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="DRM_TTM"
+
+src_prepare() {
+ eapply "${PATCHES[@]}"
+
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use gui; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use gui && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+ if ! use gui ; then
+ elog "use flag gui is off, enable it to install the"
+ elog "X Window System video driver."
+ fi
+ elog ""
+ elog "Please add users to the \"vboxguest\" group so they can"
+ elog "benefit from seamless mode, auto-resize and clipboard."
+ elog ""
+ elog "The vboxsf group has been added to make automount services work."
+ elog "These services are part of the shared folders support."
+ elog ""
+ elog "Please add:"
+ elog "/etc/init.d/${PN}"
+ elog "to the default runlevel in order to start"
+ elog "needed services."
+ elog "To use the VirtualBox X driver, use the following"
+ elog "file as your /etc/X11/xorg.conf:"
+ elog " /usr/share/doc/${PF}/xorg.conf.vbox"
+ elog ""
+ elog "An autostart .desktop file has been installed to start"
+ elog "VBoxClient in desktop sessions."
+ elog ""
+ elog "You can mount shared folders with:"
+ elog " mount -t vboxsf <shared_folder_name> <mount_point>"
+ elog ""
+ elog "Warning:"
+ elog "this ebuild is only needed if you are running gentoo"
+ elog "inside a VirtualBox Virtual Machine, you don't need"
+ elog "it to run VirtualBox itself."
+ elog ""
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild
new file mode 100644
index 000000000000..80b4916cfe74
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r2.ebuild
@@ -0,0 +1,295 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dbus gui"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+# TODO: find out what this is, remove comment if obsolete
+
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+PDEPEND="
+ gui? ( x11-drivers/xf86-video-vboxvideo )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.8-fix-gcc13.patch
+ "${FILESDIR}"/${PN}-7.0.14-kernel-6.8.patch
+)
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="DRM_TTM"
+
+src_prepare() {
+ eapply "${PATCHES[@]}"
+
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use gui; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use gui && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+ if ! use gui ; then
+ elog "use flag gui is off, enable it to install the"
+ elog "X Window System video driver."
+ fi
+ elog ""
+ elog "Please add users to the \"vboxguest\" group so they can"
+ elog "benefit from seamless mode, auto-resize and clipboard."
+ elog ""
+ elog "The vboxsf group has been added to make automount services work."
+ elog "These services are part of the shared folders support."
+ elog ""
+ elog "Please add:"
+ elog "/etc/init.d/${PN}"
+ elog "to the default runlevel in order to start"
+ elog "needed services."
+ elog "To use the VirtualBox X driver, use the following"
+ elog "file as your /etc/X11/xorg.conf:"
+ elog " /usr/share/doc/${PF}/xorg.conf.vbox"
+ elog ""
+ elog "An autostart .desktop file has been installed to start"
+ elog "VBoxClient in desktop sessions."
+ elog ""
+ elog "You can mount shared folders with:"
+ elog " mount -t vboxsf <shared_folder_name> <mount_point>"
+ elog ""
+ elog "Warning:"
+ elog "this ebuild is only needed if you are running gentoo"
+ elog "inside a VirtualBox Virtual Machine, you don't need"
+ elog "it to run VirtualBox itself."
+ elog ""
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild
new file mode 100644
index 000000000000..92c9fb95c5c6
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.14-r3.ebuild
@@ -0,0 +1,297 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dbus gui"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+# TODO: find out what this is, remove comment if obsolete
+
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.8-fix-gcc13.patch
+ "${FILESDIR}"/${PN}-7.0.14-kernel-6.8.patch
+)
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
+WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
+WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
+
+DOC_CONTENTS="\n
+Please add users to the \"vboxguest\" group so they can\n
+benefit from seamless mode, auto-resize and clipboard.\n
+\n
+The vboxsf group has been added to make automount services work.\n
+These services are part of the shared folders support.\n
+\n
+Please add:\n
+ /etc/init.d/virtualbox-guest-additions\n
+to the default runlevel in order to start\n
+needed services.\n
+\n
+An autostart .desktop file has been installed to start\n
+VBoxClient in desktop sessions.\n
+\n
+You can mount shared folders with:\n
+ mount -t vboxsf <shared_folder_name> <mount_point>\n
+\n
+Warning:\n
+ this ebuild is only needed if you are running gentoo\n
+ inside a VirtualBox Virtual Machine, you don't need\n
+ it to run VirtualBox itself.\n
+\n"
+
+src_prepare() {
+ eapply "${PATCHES[@]}"
+
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use gui; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-7.0.14/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use gui && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+
+ if ! use gui ; then
+ elog "The use flag \"gui\" is off, enable it to install the"
+ elog "X Window System drivers and integration."
+ fi
+
+ readme.gentoo_print_elog
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.16.ebuild b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.16.ebuild
new file mode 100644
index 000000000000..f704b0857188
--- /dev/null
+++ b/app-emulation/virtualbox-guest-additions/virtualbox-guest-additions-7.0.16.ebuild
@@ -0,0 +1,290 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo linux-mod-r1 readme.gentoo-r1 systemd toolchain-funcs udev
+
+MY_PN="VirtualBox"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="VirtualBox kernel modules and user-space tools for Gentoo guests"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+# Reminder: see the LICENSE related comment in app-emulation/virtualbox-additions ebuild
+LICENSE="GPL-3 LGPL-2.1+ MIT || ( GPL-3 CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64 ~x86"
+IUSE="+dbus gui"
+
+# automount Error: VBoxServiceAutoMountWorker: Group "vboxsf" does not exist
+# TODO: find out what this is, remove comment if obsolete
+
+RDEPEND="
+ acct-group/vboxguest
+ acct-group/vboxsf
+ acct-user/vboxguest
+ sys-libs/pam
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ x11-apps/xrandr
+ x11-apps/xrefresh
+ x11-libs/libX11
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ )
+"
+# some libs here are indirect dependencies, and also needed at compile time.
+# keeping them in DEPEND to avoid warnings from qa-vdb.
+DEPEND="
+ ${RDEPEND}
+ gui? (
+ x11-libs/libICE
+ x11-libs/libSM
+ x11-libs/libXau
+ x11-libs/libXdmcp
+ x11-base/xorg-proto
+ )
+"
+BDEPEND="
+ >=dev-lang/yasm-0.6.2
+ >=dev-build/kbuild-0.1.9998.3127
+ sys-devel/bin86
+ sys-power/iasl
+"
+
+DOCS=() # Don't install the default README file during einstalldocs
+
+VBOX_MOD_SRC_DIR="out/linux.${ARCH}/release/bin/additions/src"
+CONFIG_CHECK="~DRM_TTM ~DRM_VMWGFX"
+WARNING_DRM_TTM="DRM_TTM is needed for running the vboxvideo driver."
+WARNING_DRM_VMWGFX="DRM_VMWGFX is the recommended driver for VMSVGA."
+
+DOC_CONTENTS="\n
+Please add users to the \"vboxguest\" group so they can\n
+benefit from seamless mode, auto-resize and clipboard.\n
+\n
+The vboxsf group has been added to make automount services work.\n
+These services are part of the shared folders support.\n
+\n
+Please add:\n
+ /etc/init.d/virtualbox-guest-additions\n
+to the default runlevel in order to start\n
+needed services.\n
+\n
+An autostart .desktop file has been installed to start\n
+VBoxClient in desktop sessions.\n
+\n
+You can mount shared folders with:\n
+ mount -t vboxsf <shared_folder_name> <mount_point>\n
+\n
+Warning:\n
+ this ebuild is only needed if you are running gentoo\n
+ inside a VirtualBox Virtual Machine, you don't need\n
+ it to run VirtualBox itself.\n
+\n"
+
+src_prepare() {
+ # Remove shipped binaries (kBuild,yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Provide kernel sources
+ pushd src/VBox/Additions &>/dev/null || die
+ ebegin "Extracting guest kernel module sources"
+ kmk GuestDrivers-src vboxguest-src vboxsf-src vboxvideo-src &>/dev/null
+ eend $? || die
+ popd &>/dev/null || die
+
+ # PaX fixes (see bug #298988)
+ eapply -d "${VBOX_MOD_SRC_DIR}" -- "${FILESDIR}"/vboxguest-6.1.36-log-use-c99.patch
+
+ # Disable things unused or splitted into separate ebuilds
+ cp "${FILESDIR}/${PN}-5-localconfig" LocalConfig.kmk || die
+ if ! use gui; then
+ echo "VBOX_WITH_X11_ADDITIONS :=" >> LocalConfig.kmk || die
+ fi
+
+ # Remove pointless GCC version check
+ sed -e '/ check_gcc$/d' -i configure || die
+
+ # Respect LDFLAGS (bug #759100)
+ sed -i -e '/TEMPLATE_VBoxR3Exe_LDFLAGS.linux[ ]*=/ s/$/ $(CCLDFLAGS)/' Config.kmk || die
+
+ eapply "${WORKDIR}/virtualbox-patches-7.0.16/patches"
+ eapply_user
+}
+
+src_configure() {
+ tc-export AR CC CXX LD RANLIB
+
+ # Build the user-space tools, warnings are harmless
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --nofatal
+ --disable-xpcom
+ --disable-sdl-ttf
+ --disable-pulse
+ --disable-alsa
+ $(usev !dbus --disable-dbus)
+ --target-arch=${ARCH}
+ --with-linux="${KV_OUT_DIR}"
+ --build-headless
+ )
+
+ # bug #843437
+ # Respect LDFLAGS (bug #759100)
+ # Cannot use LDFLAGS here because they also get passed to $(LD)
+ cat >> LocalConfig.kmk <<-EOF || die
+ CFLAGS=${CFLAGS}
+ CXXFLAGS=${CXXFLAGS}
+ CCLDFLAGS=${LDFLAGS}
+ EOF
+
+ edo ./configure "${myconf[@]}"
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_ONLY_ADDITIONS=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LD="$(tc-getCC)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_CXX="$(tc-getCXX)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GCC3_LD_SYSMOD="$(tc-getCC)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+ #TOOL_GXX3_LD_SYSMOD="$(tc-getCXX)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+ TOOL_YASM_AS=yasm
+ )
+
+ MAKE="kmk" emake "${myemakeargs[@]}"
+
+ # Now creating the kernel modules. We must do this _after_
+ # we compiled the user-space tools as we need two of the
+ # automatically generated header files. (>=3.2.0)
+ # Move this here for bug 836037
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ local modlist=( vboxguest vboxsf )
+ use gui && modlist+=( vboxvideo )
+ modlist=( "${modlist[@]/%/=misc:${VBOX_MOD_SRC_DIR}}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+
+ insinto /etc/modprobe.d # 485996
+ newins - vboxsf.conf <<-EOF
+ # modprobe.d configuration file for VBOXSF
+
+ # Internal Aliases - Do not edit
+ # ------------------------------
+ alias fs-vboxsf vboxsf
+ EOF
+
+ cd out/linux.${ARCH}/release/bin/additions || die
+
+ insinto /sbin
+ newins mount.vboxsf mount.vboxsf
+ fperms 4755 /sbin/mount.vboxsf
+
+ if use dbus; then
+ newinitd "${FILESDIR}"/${PN}-8.initd-r1 ${PN}
+ else
+ newinitd <(sed 's/ dbus\>//' "${FILESDIR}"/${PN}-8.initd-r1) ${PN}
+ fi
+
+ insinto /usr/sbin/
+ newins VBoxService vboxguest-service
+ fperms 0755 /usr/sbin/vboxguest-service
+
+ insinto /usr/bin
+ doins VBoxControl
+ fperms 0755 /usr/bin/VBoxControl
+
+ # VBoxClient user service and xrandr wrapper
+ if use gui ; then
+ doins VBoxClient
+ fperms 0755 /usr/bin/VBoxClient
+ doins VBoxDRMClient
+ fperms 4755 /usr/bin/VBoxDRMClient
+
+ pushd "${S}"/src/VBox/Additions/x11/Installer &>/dev/null || die
+ newins 98vboxadd-xclient VBoxClient-all
+ fperms 0755 /usr/bin/VBoxClient-all
+ popd &>/dev/null || die
+ fi
+
+ # udev rule for vboxdrv
+ local udev_rules_dir="/lib/udev/rules.d"
+ dodir ${udev_rules_dir}
+ echo 'KERNEL=="vboxguest", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+ echo 'KERNEL=="vboxuser", OWNER="vboxguest", GROUP="vboxguest", MODE="0660"' \
+ >> "${ED}/${udev_rules_dir}/60-virtualbox-guest-additions.rules" \
+ || die
+
+ # VBoxClient autostart file
+ insinto /etc/xdg/autostart
+ doins "${FILESDIR}"/vboxclient.desktop
+
+ # sample xorg.conf
+ dodoc "${FILESDIR}"/xorg.conf.vbox
+ docompress -x "${ED}"/usr/share/doc/${PF}/xorg.conf.vbox
+
+ systemd_dounit "${FILESDIR}/${PN}.service"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ linux-mod-r1_pkg_postinst
+ udev_reload
+
+ if ! use gui ; then
+ elog "The use flag \"gui\" is off, enable it to install the"
+ elog "X Window System drivers and integration."
+ fi
+
+ readme.gentoo_print_elog
+}
+
+pkg_postrm() {
+ udev_reload
+}
diff --git a/app-emulation/virtualbox-kvm/Manifest b/app-emulation/virtualbox-kvm/Manifest
new file mode 100644
index 000000000000..d5721453e7b7
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/Manifest
@@ -0,0 +1,8 @@
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5
+DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
+DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
+DIST virtualbox-kvm-7.0.14_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494
+DIST virtualbox-kvm-7.0.16_pre20240325.tar.gz 134926 BLAKE2B 3e707b272219b2c5703d91d1f6a2f0a6c54fe29eeb6e91e5830949f7260e5b409e3425c38daea568725cb7fd10ddee234af6b72d747206e0a98ac1e33a10028c SHA512 e30291e1d7e2649057a9b38ea907f22f62b0367f33d88af10fdaaa49333890be2b719626103f9800836a3833368a018f5fc63a46577dd1d83178d7406bf8c494
+DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
+DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
diff --git a/app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch b/app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch
new file mode 100644
index 000000000000..35bd8e0a705e
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/050_virtualbox-5.2.8-nopie.patch
@@ -0,0 +1,147 @@
+diff -Naur VirtualBox-5.1.24/Config.kmk VirtualBox-5.1.24/Config.kmk
+--- VirtualBox-5.1.24/Config.kmk 2017-07-26 13:55:27.803972185 -0400
++++ VirtualBox-5.1.24/Config.kmk 2017-07-26 13:53:10.700974328 -0400
+@@ -2601,6 +2601,7 @@
+ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-overlength-strings?= $(call VBOX_GCC_CHECK_CC,-Wno-overlength-strings,)'
+ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_Wno-overloaded-virtual?= $(call VBOX_GCC_CHECK_CXX,-Wno-overloaded-virtual,)'
+ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-stack-protector ?= $(call VBOX_GCC_CHECK_CC,-fno-stack-protector,)'
++ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_nopie ?= $(call VBOX_GCC_CHECK_CC,-nopie,)'
+ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_fno-dwarf2-cfi-asm ?= $(call VBOX_GCC_CHECK_CC,-fno-dwarf2-cfi-asm,)'
+ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_m64 ?= $(call VBOX_GCC_CHECK_CC,-m64,)'
+ $(QUIET)$(APPEND) '$@' 'VBOX_GCC_no-pie ?= $(call VBOX_GCC_CHECK_CC,-no-pie,)'
+@@ -3843,8 +3844,8 @@
+
+ ifeq ($(VBOX_LDR_FMT32),elf)
+ TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC32_TOOL)
+- TEMPLATE_VBoxRc_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
+- TEMPLATE_VBoxRc_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
++ TEMPLATE_VBoxRc_CXXFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_fvisibility-inlines-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
++ TEMPLATE_VBoxRc_CFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-strict-aliasing $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_fvisibility-hidden) $(VBOX_GCC_IPRT_FMT_CHECK)
+ ifeq ($(KBUILD_TARGET),solaris)
+ TEMPLATE_VBoxRc_LDFLAGS = -r
+ else
+@@ -3864,8 +3865,8 @@
+ ifeq ($(VBOX_LDR_FMT32),macho)
+ TEMPLATE_VBoxRc_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxRc_DEFS += $(VBOX_DARWIN_DEF_SDK_DEFS)
+- TEMPLATE_VBoxRc_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti
+- TEMPLATE_VBoxRc_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing
++ TEMPLATE_VBoxRc_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing -fno-rtti
++ TEMPLATE_VBoxRc_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -m32 -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC32_Wno-variadic-macros) -fno-common -msoft-float -static $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-exceptions $(VBOX_GCC_GC_OPT) $(VBOX_GCC_GC_FP) -fno-strict-aliasing
+ TEMPLATE_VBoxRc_LDFLAGS = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -m32 -nostdlib
+ #TEMPLATE_VBoxRc_LDFLAGS.release = -Wl,-S ???
+ endif
+@@ -3903,9 +3904,9 @@
+ endif
+
+ ifeq ($(VBOX_LDR_FMT32),elf)
+- TEMPLATE_VBoxRcExe_CFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS)) -O0
+- TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS)) -O0
+- TEMPLATE_VBoxRcExe_LDFLAGS = -g
++ TEMPLATE_VBoxRcExe_CFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CFLAGS)) -O0 $(VBOX_GCC_nopie)
++ TEMPLATE_VBoxRcExe_CXXFLAGS = $(filter-out -nostdinc,$(TEMPLATE_VBoxRc_CXXFLAGS)) -O0 $(VBOX_GCC_nopie)
++ TEMPLATE_VBoxRcExe_LDFLAGS = -g $(VBOX_GCC_nopie)
+ TEMPLATE_VBoxRcExe_LDFLAGS.dbgopt = -g
+ TEMPLATE_VBoxRcExe_LDFLAGS.strict = -g
+ TEMPLATE_VBoxRcExe_LDFLAGS.release = -g
+@@ -3984,8 +3985,8 @@
+
+ ifeq ($(VBOX_LDR_FMT),elf)
+ TEMPLATE_VBoxR0_TOOL = $(VBOX_GCC_TOOL)
+-TEMPLATE_VBoxR0_CFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
+-TEMPLATE_VBoxR0_CXXFLAGS = -fno-pie -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
++TEMPLATE_VBoxR0_CFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-common $(VBOX_GCC_fvisibility-hidden) -std=gnu99 $(VBOX_GCC_IPRT_FMT_CHECK)
++TEMPLATE_VBoxR0_CXXFLAGS = -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-exceptions $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) -fno-common $(VBOX_GCC_fvisibility-inlines-hidden) $(VBOX_GCC_fvisibility-hidden) -fno-rtti $(VBOX_GCC_IPRT_FMT_CHECK)
+ TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables -ffreestanding
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mcmodel=kernel -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-asynchronous-unwind-tables
+ ifeq ($(KBUILD_TARGET),solaris)
+@@ -4018,12 +4019,12 @@
+ TEMPLATE_VBoxR0_DEFS += $(VBOX_DARWIN_DEF_SDK_DEFS)
+ TEMPLATE_VBoxR0_CXXFLAGS = $(VBOX_DARWIN_DEF_SDK_CXXFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_CXX) $(VBOX_GCC_Wno-variadic-macros) \
+ -fno-common -msoft-float -static -fno-rtti -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
+- -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector)
++ -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+ TEMPLATE_VBoxR0_CXXFLAGS.amd64 = -m64 -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -fno-unwind-tables
+ TEMPLATE_VBoxR0_CXXFLAGS.x86 = -m32
+ TEMPLATE_VBoxR0_CFLAGS = $(VBOX_DARWIN_DEF_SDK_CFLAGS) -nostdinc -g $(VBOX_GCC_pipe) $(VBOX_GCC_WERR) $(VBOX_GCC_PEDANTIC_C) $(VBOX_GCC_Wno-variadic-macros) \
+ -fno-common -msoft-float -static -fno-exceptions $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing \
+- -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector)
++ -mno-sse -mno-mmx -mno-sse2 -mno-3dnow $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+ TEMPLATE_VBoxR0_CFLAGS.amd64 = -m64 -mno-red-zone -mno-sse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 -mno-sse4a -fno-unwind-tables
+ TEMPLATE_VBoxR0_CFLAGS.x86 = -m32
+ TEMPLATE_VBoxR0_LDFLAGS = $(VBOX_DARWIN_DEF_SDK_LDFLAGS) -nostdlib
+@@ -4259,7 +4260,7 @@
+ -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
+ -Wimplicit-function-declaration -Werror-implicit-function-declaration \
+ -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
+- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -std=c99
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2
+ TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 --param inline-unit-growth=100 --param large-function-growth=1000 \
+@@ -4268,7 +4269,7 @@
+ TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-exceptions -fno-rtti \
+ $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
+ -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
+- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86)
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64 = $(TEMPLATE_VBOXR0DRV_CFLAGS.amd64)
+@@ -4341,7 +4342,7 @@
+ -Wstrict-prototypes -Wmissing-prototypes -Wstrict-prototypes \
+ -Wimplicit-function-declaration -Werror-implicit-function-declaration \
+ -O2 -ffreestanding -fno-strict-aliasing -fno-common -finline-limit=8000 \
+- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -std=c99 -msoft-float
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 \
+ -mpreferred-stack-boundary=2 -mno-mmx -mno-sse -mno-avx \
+@@ -4353,7 +4354,7 @@
+ TEMPLATE_VBOXR0DRV_CXXFLAGS = -fno-exceptions -fno-rtti \
+ $(VBOX_GCC_WARN) -Wpointer-arith -Winline \
+ -O2 -fno-strict-aliasing -fno-common -finline-limit=8000 \
+- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) \
+ -nostdinc -msoft-float
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.x86 = $(TEMPLATE_VBOXR0DRV_CFLAGS.x86)
+ TEMPLATE_VBOXR0DRV_CXXFLAGS.amd64 = $(TEMPLATE_VBOXR0DRV_CFLAGS.amd64)
+@@ -4394,7 +4395,7 @@
+ TEMPLATE_VBOXR0DRV_LDFLAGS = -shared -no-undefined -dc -dy -lroot -rpath-link /boot/system/develop/lib/x86 --no-add-needed /boot/system/develop/lib/_KERNEL_ --no-add-needed /boot/system/develop/lib/haiku_version_glue.o
+ TEMPLATE_VBOXR0DRV_CFLAGS = -fno-PIC \
+ $(VBOX_GCC_WARN) -Wstrict-prototypes $(VBOX_GCC_Wno-pointer-sign) -Wno-sign-compare \
+- $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
++ $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie) $(VBOX_GCC_R0_OPT) $(VBOX_GCC_R0_FP) -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
+ TEMPLATE_VBOXR0DRV_CFLAGS.x86 = -m32 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
+ TEMPLATE_VBOXR0DRV_CFLAGS.amd64 = -m64 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow \
+@@ -5210,8 +5211,8 @@
+ TEMPLATE_VBoxNoCrtGccLib_TOOL = $(VBOX_GCC_TOOL)
+ TEMPLATE_VBoxNoCrtGccLib_ASTOOL = $(VBOX_ASTOOL)
+ TEMPLATE_VBoxNoCrtGccLib_ASFLAGS = $(VBOX_ASFLAGS)
+- TEMPLATE_VBoxNoCrtGccLib_CFLAGS += $(VBOX_GCC_fno-stack-protector)
+- TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS += $(VBOX_GCC_fno-stack-protector)
++ TEMPLATE_VBoxNoCrtGccLib_CFLAGS += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
++ TEMPLATE_VBoxNoCrtGccLib_CXXFLAGS += $(VBOX_GCC_fno-stack-protector) $(VBOX_GCC_nopie)
+ ifeq ($(KBUILD_TARGET_ARCH),amd64)
+ # in 64-bit mode we'll build a sys-module (VBoxREM2).
+ if1of ($(KBUILD_TARGET), darwin solaris)
+diff -Naur VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk
+--- VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk 2017-07-26 13:55:27.746972186 -0400
++++ VirtualBox-5.1.24/src/VBox/Devices/PC/ipxe/Makefile.kmk 2017-07-26 13:53:10.641974329 -0400
+@@ -132,6 +132,7 @@
+ -W \
+ -Wformat-nonliteral \
+ $(VBOX_GCC_fno-stack-protector) \
++ $(VBOX_GCC_nopie) \
+ $(VBOX_GCC_fno-dwarf2-cfi-asm) \
+ $(VBOX_GCC_Wno-address)
+ TEMPLATE_iPxe_ASFLAGS = \
+@@ -155,6 +156,7 @@
+ -W \
+ -Wformat-nonliteral \
+ $(VBOX_GCC_fno-stack-protector) \
++ $(VBOX_GCC_nopie) \
+ $(VBOX_GCC_fno-dwarf2-cfi-asm) \
+ $(VBOX_GCC_Wno-address) \
+ -DASSEMBLY
diff --git a/app-emulation/virtualbox-kvm/files/10-virtualbox.rules b/app-emulation/virtualbox-kvm/files/10-virtualbox.rules
new file mode 100644
index 000000000000..014c164a37f5
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/10-virtualbox.rules
@@ -0,0 +1,7 @@
+# create second tree of USB devices according to
+# http://www.virtualbox.org/ticket/7759#comment:5
+
+SUBSYSTEM=="usb_device", ACTION!="remove", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
+SUBSYSTEM=="usb", ACTION!="remove", ENV{DEVTYPE}=="usb_device", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
+SUBSYSTEM=="usb_device", ACTION=="remove", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh --remove $major $minor"
+SUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="%UDEVDIR%/VBoxCreateUSBNode.sh --remove $major $minor"
diff --git a/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd b/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd
new file mode 100644
index 000000000000..fdcd17e9ba0c
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/vboxwebsrv-confd
@@ -0,0 +1,19 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# The host to bind to (defaults to "localhost").
+VBOXWEBSRV_HOST="localhost"
+
+# Which port to on the host (defaults to 18083).
+VBOXWEBSRV_PORT="18083"
+
+# Session timeout, in seconds. (defaults to 20).
+VBOXWEBSRV_TIMEOUT=20
+
+# The interval in which the webservice checks for
+# timed-out clients, in seconds. Normally does not
+# need to be changed (defaults to 5).
+VBOXWEBSRV_INTERVAL=5
+
+# User under which vboxwebsrv is running
+VBOXWEBSRV_USER="root"
diff --git a/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd b/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd
new file mode 100644
index 000000000000..f50c3ec099d6
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/vboxwebsrv-initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting VirtualBox WebService"
+ start-stop-daemon --start --quiet --user ${VBOXWEBSRV_USER} --pidfile /var/run/vboxwebsrv.pid \
+ --background --make-pidfile --exec /usr/bin/vboxwebsrv \
+ -- -H ${VBOXWEBSRV_HOST} -p ${VBOXWEBSRV_PORT} -t ${VBOXWEBSRV_TIMEOUT} -i ${VBOXWEBSRV_INTERVAL}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping VirtualBox WebService"
+ start-stop-daemon --stop --user ${VBOXWEBSRV_USER} --quiet --pidfile /var/run/vboxwebsrv.pid
+ eend $?
+}
diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-4-config b/app-emulation/virtualbox-kvm/files/virtualbox-4-config
new file mode 100644
index 000000000000..af7822146560
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/virtualbox-4-config
@@ -0,0 +1 @@
+INSTALL_DIR=/usr/MY_LIBDIR/virtualbox
diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig b/app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig
new file mode 100644
index 000000000000..0f9113825fb8
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/virtualbox-5-localconfig
@@ -0,0 +1,47 @@
+# -*- Makefile -*-
+#
+# Overwrite some default kBuild settings
+#
+
+#
+# Copyright (C) 2006-2008 Sun Microsystems, Inc.
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License as published by the Free Software Foundation,
+# in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
+# distribution. VirtualBox OSE is distributed in the hope that it will
+# be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+# shut up wine complaining about unknown locale
+EXEC_X86_WIN32 := wine
+
+# don't build testcases to save time, they are not needed for the package
+VBOX_WITH_TESTCASES :=
+VBOX_WITH_VALIDATIONKIT :=
+VBOX_DOCBOOK_WITH_LATEX := 1
+
+KBUILD_MSG_STYLE := brief
+
+## paths, origin, hardening
+#VBOX_WITH_HARDENING := 1
+VBOX_WITH_ORIGIN :=
+VBOX_PATH_APP_PRIVATE_ARCH := /usr/MY_LIBDIR/virtualbox
+VBOX_PATH_SHARED_LIBS := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_WITH_RUNPATH := $(VBOX_PATH_APP_PRIVATE_ARCH)
+VBOX_PATH_APP_PRIVATE := /usr/share/virtualbox
+VBOX_PATH_APP_DOCS = $(VBOX_PATH_PACKAGE_DOCS)
+
+## don't build unwanted/splitted stuff
+VBOX_WITHOUT_ADDITIONS := 1
+VBOX_WITH_VBOXDRV :=
+VBOX_WITH_VBOXBFE :=
+VBOX_WITH_KCHMVIEWER :=
+
+## don't build with -Werror
+VBOX_WITH_WARNINGS_AS_ERRORS :=
+
+## fix compilation with USE="doc" (Gentoo bug #554932)
+VBOX_PATH_DOCBOOK_DTD := /usr/share/sgml/docbook/sgml-dtd-4.4
diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch
new file mode 100644
index 000000000000..29ec3aee72c1
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch
@@ -0,0 +1,18 @@
+When compiling with clang we get:
+
+src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
+
+Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -45,7 +45,8 @@
+ iPxeBiosBin_CLEAN = \
+ $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \
+
+-if1of ($(KBUILD_TARGET), darwin os2 solaris win)
++# Disable building on Linux if using clang
++if1of ($(KBUILD_TARGET), darwin os2 solaris win linux)
+ $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@)
+ $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@)
+ $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@
diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper b/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper
new file mode 100644
index 000000000000..57b15cc93eba
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/virtualbox-ose-6-wrapper
@@ -0,0 +1,119 @@
+#!/bin/sh
+## @file
+# Oracle VM VirtualBox startup script, Linux hosts.
+#
+
+#
+# Copyright (C) 2006-2017 Oracle Corporation
+#
+# This file is part of VirtualBox Open Source Edition (OSE), as
+# available from http://www.virtualbox.org. This file is free software;
+# you can redistribute it and/or modify it under the terms of the GNU
+# General Public License (GPL) as published by the Free Software
+# Foundation, in version 2 as it comes in the "COPYING" file of the
+# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+#
+
+PATH="/usr/bin:/bin:/usr/sbin:/sbin"
+CONFIG="/etc/vbox/vbox.cfg"
+
+test -r "${CONFIG}" &&
+ . "${CONFIG}"
+test -z "${INSTALL_DIR}" &&
+ if test -f /usr/lib/virtualbox/VirtualBox &&
+ test -x /usr/lib/virtualbox/VirtualBox; then
+ INSTALL_DIR=/usr/lib/virtualbox
+ else
+ echo "Could not find VirtualBox installation. Please reinstall."
+ exit 1
+ fi
+
+# Note: This script must not fail if the module was not successfully installed
+# because the user might not want to run a VM but only change VM params!
+
+if [ "$1" = "shutdown" ]; then
+ SHUTDOWN="true"
+elif ! lsmod|grep -q vboxdrv; then
+ cat << EOF
+WARNING: The vboxdrv kernel module is not loaded. Either there is no module
+ available for the current kernel (`uname -r`) or it failed to
+ load. Please recompile the kernel module and install it by
+
+ for m in vbox{drv,netadp,netflt}; do modprobe \$m; done
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+elif [ ! -c /dev/vboxdrv ]; then
+ cat << EOF
+WARNING: The character device /dev/vboxdrv does not exist.
+ Please try to reload all the needed kernel modules by:
+
+ for m in vbox{netflt,netadp,drv}; do rmmod \$m; done
+ for m in vbox{drv,netadp,netflt}; do modprobe \$m; done
+
+ and if that is not successful, try to re-install the package by:
+
+ emerge -1av app-emulation/virtualbox-modules
+
+ You will not be able to start VMs until this problem is fixed.
+EOF
+fi
+
+SERVER_PID=$(ps -U ${LOGNAME:-$USER} | grep VBoxSVC | awk '{ print $1 }')
+if [ -z "$SERVER_PID" ]; then
+ # Server not running yet/anymore, cleanup socket path.
+ # See IPC_GetDefaultSocketPath()!
+ if [ -n "$LOGNAME" ]; then
+ rm -rf /tmp/.vbox-$LOGNAME-ipc > /dev/null 2>&1
+ else
+ rm -rf /tmp/.vbox-$USER-ipc > /dev/null 2>&1
+ fi
+fi
+
+if [ "$SHUTDOWN" = "true" ]; then
+ if [ -n "$SERVER_PID" ]; then
+ kill -TERM $SERVER_PID
+ sleep 2
+ fi
+ exit 0
+fi
+
+APP=`basename $0`
+case "$APP" in
+ VirtualBox|virtualbox)
+ exec "$INSTALL_DIR/VirtualBox" "$@"
+ ;;
+ VirtualBoxVM|virtualboxvm)
+ exec "$INSTALL_DIR/VirtualBoxVM" "$@"
+ ;;
+ VBoxManage|vboxmanage)
+ exec "$INSTALL_DIR/VBoxManage" "$@"
+ ;;
+ VBoxSDL|vboxsdl)
+ exec "$INSTALL_DIR/VBoxSDL" "$@"
+ ;;
+ VBoxVRDP|VBoxHeadless|vboxheadless)
+ exec "$INSTALL_DIR/VBoxHeadless" "$@"
+ ;;
+ VBoxAutostart|vboxautostart)
+ exec "$INSTALL_DIR/VBoxAutostart" "$@"
+ ;;
+ VBoxBalloonCtrl|vboxballoonctrl)
+ exec "$INSTALL_DIR/VBoxBalloonCtrl" "$@"
+ ;;
+ VBoxBugReport|vboxbugreport)
+ exec "$INSTALL_DIR/VBoxBugReport" "$@"
+ ;;
+ VBoxDTrace|vboxdtrace)
+ exec "$INSTALL_DIR/VBoxDTrace" "$@"
+ ;;
+ vboxwebsrv)
+ exec "$INSTALL_DIR/vboxwebsrv" "$@"
+ ;;
+ *)
+ echo "Unknown application - $APP"
+ exit 1
+ ;;
+esac
+exit 0
diff --git a/app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd b/app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd
new file mode 100644
index 000000000000..39378536a8b2
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/files/virtualbox-vboxusb_tmpfilesd
@@ -0,0 +1 @@
+d /dev/vboxusb 0750 root vboxusers
diff --git a/app-emulation/virtualbox-kvm/metadata.xml b/app-emulation/virtualbox-kvm/metadata.xml
new file mode 100644
index 000000000000..6f699287abd4
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
+ </maintainer>
+ <use>
+ <flag name="dtrace">Install dtrace Extension Pack</flag>
+ <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
+ <flag name="sdk">Enable building of SDK</flag>
+ <flag name="udev">Controls installation of special USB udev rules.</flag>
+ <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag>
+ <flag name="vde">Support for VDE networking via <pkg>net-misc/vde</pkg></flag>
+ </use>
+ <upstream>
+ <remote-id type="github">cyberus-technology/virtualbox-kvm</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild
new file mode 100644
index 000000000000..34dd04078029
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.14_pre20240325.ebuild
@@ -0,0 +1,768 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+PATCHES_PV="7.0.14"
+ORIGIN_PN="VirtualBox"
+ORIGIN_PV=${PATCHES_PV}
+
+MY_PN=virtualbox
+MY_PV=${PV#*_pre}
+
+PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
+SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+
+ ORIGIN_PV=${PATCHES_PV}
+ EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm"
+else
+ ORIGIN_PV=${PV%_pre*}
+ PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
+ SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz"
+fi
+MY_P=${ORIGIN_PN}-${ORIGIN_PV}
+SRC_URI+="
+ https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ !app-emulation/virtualbox
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches
+ "${PATCHES_DIR}"/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack
+ default
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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.16_pre20240325.ebuild b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.16_pre20240325.ebuild
new file mode 100644
index 000000000000..f501f05d7084
--- /dev/null
+++ b/app-emulation/virtualbox-kvm/virtualbox-kvm-7.0.16_pre20240325.ebuild
@@ -0,0 +1,768 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+PATCHES_PV="7.0.16"
+ORIGIN_PN="VirtualBox"
+ORIGIN_PV=${PATCHES_PV}
+
+MY_PN=virtualbox
+MY_PV=${PV#*_pre}
+
+PATCHES_DIR="${WORKDIR}"/${PN}-${MY_PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/ https://github.com/cyberus-technology/virtualbox-kvm"
+SRC_URI="https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-${PATCHES_PV}.tar.bz2"
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+
+ ORIGIN_PV=${PATCHES_PV}
+ EGIT_REPO_URI="https://github.com/cyberus-technology/virtualbox-kvm"
+else
+ ORIGIN_PV=${PV%_pre*}
+ PATCHES_DIR="${WORKDIR}"/${PN}-dev-${MY_PV}
+ SRC_URI+=" https://github.com/cyberus-technology/virtualbox-kvm/archive/dev-${MY_PV}.tar.gz -> ${P}.tar.gz"
+fi
+MY_P=${ORIGIN_PN}-${ORIGIN_PV}
+SRC_URI+="
+ https://download.virtualbox.org/virtualbox/${ORIGIN_PV}/${MY_P}.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${MY_PN}/${MY_PN}-help-${ORIGIN_PV}.tar.xz ) )
+"
+S="${WORKDIR}/${ORIGIN_PN}-${ORIGIN_PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ !app-emulation/virtualbox
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-${PATCHES_PV}/patches
+ "${PATCHES_DIR}"/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ [[ ${PV} == *9999* ]] && git-r3_src_unpack
+ default
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${MY_PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${MY_PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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-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 e7e5b285100f..6e8fa5a56f51 100644
--- a/app-emulation/virtualbox-modules/Manifest
+++ b/app-emulation/virtualbox-modules/Manifest
@@ -1,4 +1,5 @@
-DIST vbox-kernel-module-src-6.0.24.tar.xz 670960 BLAKE2B 26e4b1b6b9ab8c8fd0312b2162fe745dc11ef3f8a7e2f08f49df9d9ef346ec21b64e4a0a480bd726e9cca6ab2ce5d3cf2637aa8923c0843bf78a3ed160b98810 SHA512 9b1093307dffeb64f3ec22c4797268858e1fcc729403e89294c2e3cf0852662b7b0aad4416a593fd25b2107a1995d6bc17078f072b6f7718ed111ab61df8324e
-DIST vbox-kernel-module-src-6.1.12.tar.xz 667312 BLAKE2B 31b3f7cd60d00e26c3177c4956d493a243e39d6251aeb3f3d72331d2fa85f2c90e884aa3f27e994502d86a34b1683c7d7db54eb1cc233e220f147119f6e9ed5e SHA512 ec4903fdc74e4be28003e8b231a4c8feb6e807bc59789c2729a8ab4199c6decc878468b67bce3a17625f60a33bb1d7c611e7306815091607b1fade2be521ed44
-DIST vbox-kernel-module-src-6.1.14.tar.xz 670392 BLAKE2B e6f324e71088c71bf67791861c79a81665f2111664428ed1e8a834b8a435bd04c1da49b6755ce5f6b1d883c6de01a0821e8d5a7519e11cf30e8f01a8b4e5d8bb SHA512 ccf4896106a7c86b651ed698abee78387660b7daa0f15329fc4bf2c3a7df4715bf4cce7cace1c6f6931dd9e8d02022d1ca0d005ae12c5139e54d3fb40792cb1c
-DIST vbox-kernel-module-src-6.1.16.tar.xz 671736 BLAKE2B 8b2153874ee7a63f88679a5372215e89def49622caa7679a5c2410423eaf23ced18ece79d638fc96db40fac88857db7568dd72dd8e05371b14add3553d61d3a7 SHA512 c51dfad5f9578ad43e2fbdd35a70659640030108006f89d362bc25dead99eb3b39a78d403633b3813f62f5b510eff22d826a2750b9c88f5fcb1cde6531295bff
+DIST vbox-kernel-module-src-6.1.48.tar.xz 680552 BLAKE2B 243cd013a7e027634b7f6338056708cbbfb4ccf46b569c21e60b0e2450dd1ad1395c6881eb235f2cab68a65c0911322604e732fdde06eb389f83171f38ded5ae SHA512 e26e8e4dce70d0dd07a336a6681d49e0fd5991ed92997139311cefa9cb55d03066c6400d4bdb9dbf54fba683192cfc5a63a98076525f3b3066269dc8fc498598
+DIST vbox-kernel-module-src-6.1.50.tar.xz 680700 BLAKE2B c3a10ce8f3eb7e6c0c05f81cd3c072296557b9f9f6f501bb0aec3f04aabfe1fbb67b553510104139cef290c09ff9e67161085781b8d28c968dfafd15958a1b1a SHA512 7822e421b595263cbdaae08103255742360ca7ab0c385818ec895f10570c5b9ed5c7614742d8fa8bc2414cd426907cd1c49d735cde8caf9d2b7692898058f592
+DIST vbox-kernel-module-src-7.0.12.tar.xz 718284 BLAKE2B 8b427f9764ad7cb216d3b8dcfa05e8b564a8b67cf3beb7ec048b2529a31580eb59eb0e41a887bb85503542cae18d873d91108a522fc0ba106d119a73ce629f34 SHA512 0b64ad2ddc6eaf56759e636aa6c8e5dba998e232ec42a7bf0cf92dc00e7a6c0ebb11e9d7500a8a407e0c92a162ebb71cdb15cbfd4f570c1860641a7fdba21bd0
+DIST vbox-kernel-module-src-7.0.14.tar.xz 718532 BLAKE2B 64df92802ab5e9fa3fdf9ba3e3b13004dc687dd2d5f3d41d24354f116a79000fe6ea07bfa8877113ab263d4f75210b600e61d983616f66b6e96324b3ea6a4b2d SHA512 2a0b9a0bbcb0a21a580000309be3a71722ee3cb9a63a5e12cd0d8a391b3832a6cc92ff806f8ca4b5fcb80fed02a44aa4de6a2d49f4583d704cec0902572a68bb
+DIST vbox-kernel-module-src-7.0.16.tar.xz 719888 BLAKE2B df78a70f677384be47f9ca28c1d473680dfbc491f2c4dcdccf05e0d80f46177db808adf81bc2af4539aeca10046edbc67a561a62870d2233af5e8fbeccc3ee43 SHA512 c4858c20f557bec7893d3604a9a572068999e60bceeceb65b1ccc9dc92ad2531a8e5bded91b55caa1d55ddf06c0f72672bccf73f5e86546a804ff1ecee413164
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch
deleted file mode 100644
index 6251e33ce59e..000000000000
--- a/app-emulation/virtualbox-modules/files/virtualbox-modules-5.2.8-pax-const.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- vboxdrv/SUPDrvIDC.h
-+++ vboxdrv/SUPDrvIDC.h
-@@ -160,7 +160,7 @@ typedef struct SUPDRVIDCREQGETSYM
- {
- /** The symbol address. */
- PFNRT pfnSymbol;
-- } Out;
-+ } __no_const Out;
- } u;
- } SUPDRVIDCREQGETSYM;
- /** Pointer to a SUPDRV IDC get symbol request. */
---- vboxnetflt/include/VBox/intnet.h
-+++ vboxnetflt/include/VBox/intnet.h
-@@ -783,7 +783,7 @@ typedef struct INTNETTRUNKFACTORY
- DECLR0CALLBACKMEMBER(int, pfnCreateAndConnect,(struct INTNETTRUNKFACTORY *pIfFactory, const char *pszName,
- PINTNETTRUNKSWPORT pSwitchPort, uint32_t fFlags,
- PINTNETTRUNKIFPORT *ppIfPort));
--} INTNETTRUNKFACTORY;
-+} __no_const INTNETTRUNKFACTORY;
- /** Pointer to the trunk factory. */
- typedef INTNETTRUNKFACTORY *PINTNETTRUNKFACTORY;
-
---- vboxnetflt/linux/VBoxNetFlt-linux.c
-+++ vboxnetflt/linux/VBoxNetFlt-linux.c
-@@ -840,7 +840,7 @@ typedef struct ethtool_ops OVR_OPSTYPE;
-
- # else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29) */
-
--typedef struct net_device_ops OVR_OPSTYPE;
-+typedef net_device_ops_no_const OVR_OPSTYPE;
- # define OVR_OPS netdev_ops
- # define OVR_XMIT pOrgOps->ndo_start_xmit
-
---- vboxpci/include/VBox/rawpci.h
-+++ vboxpci/include/VBox/rawpci.h
-@@ -545,7 +545,7 @@ typedef struct RAWPCIFACTORY
- DECLR0CALLBACKMEMBER(void, pfnDeinitVm,(PRAWPCIFACTORY pFactory,
- PVM pVM,
- PRAWPCIPERVM pVmData));
--} RAWPCIFACTORY;
-+} __no_const RAWPCIFACTORY;
-
- #define RAWPCIFACTORY_UUID_STR "ea089839-4171-476f-adfb-9e7ab1cbd0fb"
-
diff --git a/app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch
new file mode 100644
index 000000000000..64bafa84e365
--- /dev/null
+++ b/app-emulation/virtualbox-modules/files/virtualbox-modules-7.0.14-kernel-6.6-warning.patch
@@ -0,0 +1,27 @@
+https://www.virtualbox.org/changeset/103168/vbox
+https://bugs.gentoo.org/923277
+
+--- a/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
++++ b/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
+@@ -244,9 +244,21 @@
+ #if defined(RT_ARCH_X86) || defined(RT_ARCH_AMD64)
+ if (fKernel)
+ {
++# if RTLNX_VER_MIN(6,6,0)
++ /* In kernel 6.6 mk_pte() macro was fortified with additional
++ * check which does not allow to use our custom mask anymore
++ * (see kernel commit ae1f05a617dcbc0a732fbeba0893786cd009536c).
++ * For this particular mapping case, an existing mask PAGE_KERNEL_ROX
++ * can be used instead. PAGE_KERNEL_ROX was introduced in
++ * kernel 5.8, however, lets apply it for kernels 6.6 and newer
++ * to be on a safe side.
++ */
++ return PAGE_KERNEL_ROX;
++# else
+ pgprot_t fPg = MY_PAGE_KERNEL_EXEC;
+ pgprot_val(fPg) &= ~_PAGE_RW;
+ return fPg;
++# endif
+ }
+ return PAGE_READONLY_EXEC;
+ #else
diff --git a/app-emulation/virtualbox-modules/files/virtualbox.conf b/app-emulation/virtualbox-modules/files/virtualbox.conf
deleted file mode 100644
index c8c79a249887..000000000000
--- a/app-emulation/virtualbox-modules/files/virtualbox.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-vboxdrv
-vboxnetflt
-vboxnetadp
-vboxpci
diff --git a/app-emulation/virtualbox-modules/metadata.xml b/app-emulation/virtualbox-modules/metadata.xml
index b55a81b4e004..498143329fed 100644
--- a/app-emulation/virtualbox-modules/metadata.xml
+++ b/app-emulation/virtualbox-modules/metadata.xml
@@ -1,12 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
</maintainer>
- <use>
- <flag name="pax_kernel">Apply patch needed for pax enabled kernels</flag>
- </use>
</pkgmetadata>
-
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild
deleted file mode 100644
index 80c67913b279..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.0.24-r1.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# XXX: the tarball here is just the kernel modules split out of the binary
-# package that comes from virtualbox-bin
-
-EAPI=7
-
-inherit linux-mod toolchain-funcs
-
-MY_P="vbox-kernel-module-src-${PV}"
-DESCRIPTION="Kernel Modules for Virtualbox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="amd64 x86"
-IUSE="pax_kernel"
-
-RDEPEND="!=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S}) vboxpci(misc:${S})"
-MODULESD_VBOXDRV_ENABLED="yes"
-MODULESD_VBOXNETADP_ENABLED="no"
-MODULESD_VBOXNETFLT_ENABLED="no"
-# The following is a security measure that comes directly from usptream.
-# Do NOT remove this!!!
-MODULESD_VBOXPCI_ADDITIONS=(
- "blacklist vboxpci"
- "install vboxpci /bin/true"
-)
-
-pkg_setup() {
- linux-mod_pkg_setup
- BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
-}
-
-src_prepare() {
- if use pax_kernel && kernel_is -ge 3 0 0 ; then
- eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
- fi
-
- default
-}
-
-src_install() {
- linux-mod_src_install
- insinto /usr/lib/modules-load.d/
- newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild
deleted file mode 100644
index 6ad5644e2ed2..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.12-r1.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# XXX: the tarball here is just the kernel modules split out of the binary
-# package that comes from virtualbox-bin
-
-EAPI=7
-
-inherit linux-mod toolchain-funcs
-
-MY_P="vbox-kernel-module-src-${PV}"
-DESCRIPTION="Kernel Modules for Virtualbox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="pax_kernel"
-
-RDEPEND="!=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})"
-MODULESD_VBOXDRV_ENABLED="yes"
-MODULESD_VBOXNETADP_ENABLED="no"
-MODULESD_VBOXNETFLT_ENABLED="no"
-
-pkg_setup() {
- linux-mod_pkg_setup
- BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
-}
-
-src_prepare() {
- if use pax_kernel && kernel_is -ge 3 0 0 ; then
- eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
- fi
-
- default
-}
-
-src_install() {
- linux-mod_src_install
- insinto /usr/lib/modules-load.d/
- newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
-}
-
-pkg_postinst() {
- # Remove vboxpci.ko from current running kernel
- find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild
deleted file mode 100644
index 6ad5644e2ed2..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.14.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# XXX: the tarball here is just the kernel modules split out of the binary
-# package that comes from virtualbox-bin
-
-EAPI=7
-
-inherit linux-mod toolchain-funcs
-
-MY_P="vbox-kernel-module-src-${PV}"
-DESCRIPTION="Kernel Modules for Virtualbox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="pax_kernel"
-
-RDEPEND="!=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})"
-MODULESD_VBOXDRV_ENABLED="yes"
-MODULESD_VBOXNETADP_ENABLED="no"
-MODULESD_VBOXNETFLT_ENABLED="no"
-
-pkg_setup() {
- linux-mod_pkg_setup
- BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
-}
-
-src_prepare() {
- if use pax_kernel && kernel_is -ge 3 0 0 ; then
- eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
- fi
-
- default
-}
-
-src_install() {
- linux-mod_src_install
- insinto /usr/lib/modules-load.d/
- newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
-}
-
-pkg_postinst() {
- # Remove vboxpci.ko from current running kernel
- find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild
deleted file mode 100644
index 6ad5644e2ed2..000000000000
--- a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.16.ebuild
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# XXX: the tarball here is just the kernel modules split out of the binary
-# package that comes from virtualbox-bin
-
-EAPI=7
-
-inherit linux-mod toolchain-funcs
-
-MY_P="vbox-kernel-module-src-${PV}"
-DESCRIPTION="Kernel Modules for Virtualbox"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://dev.gentoo.org/~polynomial-c/virtualbox/${MY_P}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="pax_kernel"
-
-RDEPEND="!=app-emulation/virtualbox-9999"
-
-S="${WORKDIR}"
-
-BUILD_TARGETS="all"
-MODULE_NAMES="vboxdrv(misc:${S}) vboxnetflt(misc:${S}) vboxnetadp(misc:${S})"
-MODULESD_VBOXDRV_ENABLED="yes"
-MODULESD_VBOXNETADP_ENABLED="no"
-MODULESD_VBOXNETFLT_ENABLED="no"
-
-pkg_setup() {
- linux-mod_pkg_setup
- BUILD_PARAMS="CC=$(tc-getBUILD_CC) KERN_DIR=${KV_DIR} KERN_VER=${KV_FULL} O=${KV_OUT_DIR} V=1 KBUILD_VERBOSE=1"
-}
-
-src_prepare() {
- if use pax_kernel && kernel_is -ge 3 0 0 ; then
- eapply -p0 "${FILESDIR}"/${PN}-5.2.8-pax-const.patch
- fi
-
- default
-}
-
-src_install() {
- linux-mod_src_install
- insinto /usr/lib/modules-load.d/
- newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
-}
-
-pkg_postinst() {
- # Remove vboxpci.ko from current running kernel
- find /lib/modules/${KV_FULL}/misc -type f -name "vboxpci.ko" -delete
- linux-mod_pkg_postinst
-}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild
new file mode 100644
index 000000000000..3b1165d18eb7
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch
+)
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild
new file mode 100644
index 000000000000..c57ce1902297
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.48.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild
new file mode 100644
index 000000000000..3b1165d18eb7
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-6.1.50-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch
+)
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12-r1.ebuild
new file mode 100644
index 000000000000..590b20110b46
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.14-kernel-6.6-warning.patch
+)
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild
new file mode 100644
index 000000000000..ba255fc783b5
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.12.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild
new file mode 100644
index 000000000000..5466947cbf9d
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.14-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-kernel-6.6-warning.patch
+)
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox-modules/virtualbox-modules-7.0.16.ebuild b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.16.ebuild
new file mode 100644
index 000000000000..08e22e5e0379
--- /dev/null
+++ b/app-emulation/virtualbox-modules/virtualbox-modules-7.0.16.ebuild
@@ -0,0 +1,34 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: the tarball here is just the kernel modules split out of the binary
+# package that comes from VirtualBox-*.run
+# XXX: update: now it is split from virtualbox-*-Debian~bullseye_amd64.deb
+
+EAPI=8
+
+inherit linux-mod-r1
+
+MY_P="vbox-kernel-module-src-${PV}"
+DESCRIPTION="Kernel Modules for Virtualbox"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${MY_P}.tar.xz"
+S="${WORKDIR}"
+
+LICENSE="GPL-3"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+
+CONFIG_CHECK="~!SPINLOCK JUMP_LABEL"
+
+src_compile() {
+ local modlist=( {vboxdrv,vboxnetflt,vboxnetadp}=misc )
+ local modargs=( KERN_DIR="${KV_OUT_DIR}" KERN_VER="${KV_FULL}" )
+ linux-mod-r1_src_compile
+}
+
+src_install() {
+ linux-mod-r1_src_install
+ insinto /usr/lib/modules-load.d/
+ newins "${FILESDIR}"/virtualbox.conf-r1 virtualbox.conf
+}
diff --git a/app-emulation/virtualbox/Manifest b/app-emulation/virtualbox/Manifest
index 319ed8af7cbc..ef90c918e514 100644
--- a/app-emulation/virtualbox/Manifest
+++ b/app-emulation/virtualbox/Manifest
@@ -1,6 +1,12 @@
-DIST VirtualBox-6.0.24.tar.bz2 159833756 BLAKE2B 321f7988a5b55a794e2d51937a0752d96eaefb376c12e2fb23be08dff81b164153e19a7d5963a0404f630fb38d6047b9d954a67923f26b2aa16d861a0c6a1b63 SHA512 e6f98d0036cdebc52c78c5ddbce369d9ef0a036c366647b299060e1ccf6942f6b6f899201dfa08c410a039f353b767a41a0d14579c741dc5c034a035cb16c534
-DIST VirtualBox-6.1.12a.tar.bz2 165246721 BLAKE2B e9ee7c10d92b151ab10833c68d0c71a09419bba4dbf86f21401263a98273f5ad5cf628347215d641e80e11d8e77bafeda606822cdd4d02344490fca6b95814ef SHA512 27fe66daf7fa254d9fc4a2cca4a8bbcfbfe6c3387a9f4a740c8ac1297587b5083bccbeef97dcc4e482c4974c843450212e02415b4952eb38b82e179615741193
-DIST VirtualBox-6.1.14a.tar.bz2 165962245 BLAKE2B 7f064ea58f7e4f36a0cda9badc7d16d5e95246de923ab9d179688c7f2f020625efa89c592aceec59d54f1c48934b20674594cc6a63f3f42e9fef39cfd5803027 SHA512 7bdf248b53c517923afc46998e46f63271f71ee73fa6826f367828128944895b2d672d7fc4d05f222e6d45897269fe699f7360ee1534c96450e2cc7bc14c0f13
-DIST VirtualBox-6.1.16.tar.bz2 165470821 BLAKE2B 13376322d0ce2ea3ed826c61816ff19c8ce1f022f6cb1f1b0c291d72354cbe574a01589a6dcc39de10080ba32d5961ca980e75fe11c7401736bf8f7e5443d166 SHA512 4373eb35934f894e419e1441f6368e646e4a84b963a0ecf1e5c71bbf0231de0b0e52f4c4377b8cd2d956bc7a11346a9da2285988bf1e4c743971c413c6529421
-DIST virtualbox-6.0.24-patches-01.tar.xz 3640 BLAKE2B e55c30395978471edd0f291cd34ecb772cce2f27bea88c6fe348e83046777638be9bdd36bf3a2fd1967357ea7ff53936398cd94ee74d8e55d31c1896069404ff SHA512 b8d9395083769a641a5d7f78ac734a86220fec817e3e49461208f8e72ef7d11c19fe4507e6766fe7c8c815c9888f793fd66f3fae36d6e3a217e53620b5d95029
-DIST virtualbox-6.1.12-patches-01.tar.xz 2528 BLAKE2B a5d7cde0daea41bee2e40e46569c725769927a31865d99d13b8b13c4903e59b4097f85da15dc592b9c7e8baf8ff805397af827620f107ba09a468b4d1198ecab SHA512 f71d10a9fbce99c3f631ef30bcfa9d0e017e702ac509541b039e08ccbcd024beb93fde09c43d90af5d9d28f6842a7947f20e7950d3897da3e6d57859657e1123
+DIST VirtualBox-6.1.48.tar.bz2 165960987 BLAKE2B c981e390ae518b829970827f6032fb19a93685fb58835a9d489c6e14cc60a5c14c65b0a3da5adae7818e73e1b0e558e8fa803160cb67847f18565bb78d656e97 SHA512 fff759f3871e4e8962536002f2bc13e5150a927e280493f5cb0abf06466ce66e45f4c6ef43489b5b3ed8682d8a3ac0eb6fb3dd7c4144924c81612553ec71a95f
+DIST VirtualBox-6.1.50.tar.bz2 165959648 BLAKE2B e244c4fa2ffe86216664104473e27e8ddbad86aae3bc26612d18204a4e67cece91d1fa3aa9e70f1c39f915bf5e4a1e6a14bbb19162c3ae2ff554373df95bce51 SHA512 ee2ec352e020f07262bf2120278d0d9807c501cd7c4d621d4e12ce18a821b134d48eb852bc7136008cfa77ed709703d3c2835b7a7177c325d989e8f433aff73f
+DIST VirtualBox-7.0.12.tar.bz2 175644088 BLAKE2B 507cbf7b1a8a807bd2602e74bc19a59cb177b9b2bdefa1be582e520666360a42510ca501f20c354746a0f1dadf61fe29135e3edc867e611bfe60a9405cb2bbce SHA512 9fe4511442eba788d02f932f5e98cfcc5aa4ebed41c00bd7333cf7e3f5de787e458f1f56930978283f041f403652c803143335fe9120ab63a2c113ca7b3f588f
+DIST VirtualBox-7.0.14.tar.bz2 175654864 BLAKE2B 99f4942b864ce481d69983af31393d763452c5b55697ab642b43c155f5fbc2a9963fbe1b7744baef620d0b351e1ac73c1ef978698b9a7e77897bb9cbc18dc17c SHA512 6a82933bbf51ff255d17cb61ae6ddfb791a2200e3dff705f181cd06c6031b48cf15faa5e8202a65daef0fb20b7fd9e33d40dbd0f9cc3f49af49fff04a1cb0a73
+DIST VirtualBox-7.0.16.tar.bz2 170897951 BLAKE2B 6b436c38df632222621723db94677a0efef5de2ac1eacec73571bc658955f23fff347fa60c37ec78c58bf94b82b8f9a95fb26c07ef4becc7e9f535af069151f5 SHA512 1b8ba08bec144cbd1f2e9aa0929cdf60a0b99930f1dd80567094fba75097d87661aef3da2cc24f4abff6b6db8f186e251c5f693a2a93943cc39909d5f1e1bce5
+DIST virtualbox-help-7.0.12.tar.xz 3945920 BLAKE2B 7f2201f3baf6d27d95dc9f878426e34a27c9f9e113d55348f57703b1bd4878df8c6f02492412b779896c48224fb2df224c953b425dde9c99d2b4dbfda1d80d4f SHA512 ddf429a984fe433c4bcbdf87930b3cc16075d4f4725d2e571e9bf05d820d26eb6f88dd6f2bd3992927b261377c84ac4e35a929113b3294e3b2887760fe7a0b52
+DIST virtualbox-help-7.0.14.tar.xz 3944832 BLAKE2B 95079e4da8c960c41cee799142779a6c2587e0e8af7956ca551cb5a4c0f36f313189dfe08afba83a0c32886866a7f9903b5e370008d6b3ce6283fb2288866b06 SHA512 e2f1acdd7577a93047e220300b1996d2855ddef20053c01294f8295fde0840645c41b75632d71dd2fc276219084fe4105fd057623f39375542358796425a2d03
+DIST virtualbox-help-7.0.16.tar.xz 3948696 BLAKE2B 5c5937313ea0e5cb4764b8a61fd1587e88a4afc965ef00862c5a265a15253929d35e0635231b6be5656f26f600bc4b70a2fa2ebc0f33b35d35c184b57e5acef8 SHA512 b9baca57118a82e3489c8445f0988671f16f75de60cc2d929d5e3b0c4c9e3ceacd796a72a81bba88d69eb4b4559835a13775c18d7782ae7dbe8ad202e247db0c
+DIST virtualbox-patches-6.1.36.tar.bz2 2733 BLAKE2B dcfebfeca4873d382441515d48b4dfee9343bc7c83ea3cbb5002dbf7975143a79fae9a701b67dc35505e9ca03ff1b6293cb7c3279c4fdfda8ad21ba5fb9b7e87 SHA512 1bed5cdefbf8e7c4b0d9092ba4961ecf2262f27f35c71a91ef6f2e8fe8a1d92ed74f06bafbf58d70ba7165d933997f58073f4d4f4051e3ba5c0339b729066f57
+DIST virtualbox-patches-7.0.14.tar.bz2 6937 BLAKE2B da5f18efbba2a8f4701b3d29dc00784e4e80e18a18b029e5dce8c142eb4dc97637069bfc5081422064a7dc59dfacf503ebbdc3421caa96430dc53fa72988aa20 SHA512 57cc34b92e4626de5c445e34ae025da7ec0d752a60618c619a55c28bf7d6b1cc9dc81ea059b949b0f3e625568207e8084f9462faf487ca0daf2794e7f1feac36
+DIST virtualbox-patches-7.0.16.tar.bz2 6808 BLAKE2B d15fa2ca306375142c3e25d4759d2790b2bb9eb69e333a8773ad500b29dd127b401943abf59ca59d01858a3ed5551fb3a6c93c4c893c8de971a714ce5306d577 SHA512 a488cbc6660fe8637c44cd79d87156609af089988239a7e76fea8a3c7e6319512c574bef2e942b354b14ce671a8e75ab8b2160abf7c40963795ee8a545ecd992
+DIST virtualbox-patches-7.1.0_pre20240419.tar.bz2 5316 BLAKE2B 1a890b7d19cb252c7801b68c299676e2cd7a209a57a03cb39025e1a969a1c73142eb96154dae8469405f93d61969154428ea0fe3950a00d8a0a69dc8aefb4fc9 SHA512 ce4f850ce87652ef4eab039332048333949c94f0627bec8eb00d9689d7f8edcce372e2185ef8bbda9aef97781a2008b7c6464468cc38f3454dee862efc0ecdc9
diff --git a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch b/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch
deleted file mode 100644
index 7eb1e1793a7f..000000000000
--- a/app-emulation/virtualbox/files/virtualbox-5.2.8-paxmark-bldprogs.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-2017-02-20 Quentin Minster <quentin@minster.io>
-
- #https://bugs.gentoo.org/show_bug.cgi?id=591582
- * Config.kmk: add paxmark befor VBOX_VBOXTPG get run.
- * src/VBox/VMM/Makefile.kmk: add paxmark befor VBOX_VBOXCPP get run.
- * src/VBox/Main/Makefile.kmk: add paxmark befor USBIdDatabaseGenerator_1_TARGET get run.
-
---- a/Config.kmk
-+++ b/Config.kmk 2016-09-21 02:22:28
-@@ -3719,11 +3719,13 @@
- $(if-expr $(intersects $(KBUILD_TARGET_ARCH),$(KBUILD_ARCHES_64)),-64,-32) \
- -h --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
- define TOOL_VBoxTpG_DTRACE_HDR_CMDS
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
- endef
- TOOL_VBoxTpG_DTRACE_OBJ_NOT_NEEDED :=
- TOOL_VBoxTpG_DTRACE_OBJ_FLAGS := -G --host-$(VBOX_HC_ARCH_BITS)-bit #-vvv
- define TOOL_VBoxTpG_DTRACE_OBJ_CMDS
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) \
- $(if-expr $(intersects $(bld_trg_arch),$(KBUILD_ARCHES_64)),-64,-32) \
- $(flags) \
-@@ -3738,6 +3740,7 @@
- TOOL_VBoxTpG-Disabled_DTRACE_DEPORD = $(VBOX_VBOXTPG)
- TOOL_VBoxTpG-Disabled_DTRACE_HDR_FLAGS := -h
- define TOOL_VBoxTpG-Disabled_DTRACE_HDR_CMDS
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) $(flags) -o "$(out)" -s "$(source)"
- endef
- TOOL_VBoxTpG-Disabled_DTRACE_OBJ_NOT_NEEDED := $(KBUILD_OSES)
-@@ -3752,6 +3755,7 @@
- TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS =
- define TOOL_DTraceAndVBoxTpG_DTRACE_HDR_CMDS
- $(TOOL_StandardDTrace_DTRACE_HDR_CMDS)
-+ $(QUIET)paxmark.sh -m "$(VBOX_VBOXTPG)"
- $(QUIET)$(VBOX_VBOXTPG) --generate-wrapper-header --host-$(VBOX_HC_ARCH_BITS)-bit --ring-3-context \
- $(filter-out -C, $(filter-out -h,$(flags))) \
- -o "$(out).tmp" -s "$(source)"
---- a/src/VBox/VMM/Makefile.kmk 2018-04-10 15:26:24.622867735 +0300
-+++ b/src/VBox/VMM/Makefile.kmk 2018-04-10 15:24:35.901998796 +0300
-@@ -896,6 +896,7 @@
- $$(VMMLibDTrace_0_OUTDIR)/$1: $2 $$(VBOX_VBOXCPP) | $$$$(dir $$$$@)
- $$(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
- $$(QUIET)$$(call MSG_GENERATE,VMMLibDTrace,$$@,$2)
-+ $$(QUIET)paxmark.sh -m "$(VBOX_VBOXCPP)"
- $$(QUIET)$(VBOX_VBOXCPP) -d \
- -D VBOX_FOR_DTRACE_LIB \
- -D VBOX_FOR_DTRACE_LIB_$(toupper $(KBUILD_TARGET_ARCH)) \
---- a/src/VBox/Main/Makefile.kmk 2018-04-10 15:26:15.292793067 +0300
-+++ b/src/VBox/Main/Makefile.kmk 2018-04-10 15:25:14.042303341 +0300
-@@ -607,6 +607,7 @@
- $(PATH_SUB_CURRENT)/src-server/usb.ids $(PATH_SUB_CURRENT)/src-server/custom.ids | $$(dir $$@)
- $(call KB_FN_AUTO_CMD_DEPS_COMMANDS)
- $(call MSG_GENERATE,USBIdDatabase,$@,$(USBIdDatabaseGenerator_1_TARGET))
-+ $(QUIET)paxmark.sh -m "$(USBIdDatabaseGenerator_1_TARGET)"
- $(QUIET)$(USBIdDatabaseGenerator_1_TARGET) -o "$@" $(filter %.ids,$^)
-
- BLDPROGS += USBIdDatabaseGenerator
diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch b/app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch
new file mode 100644
index 000000000000..57752c4bbd85
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.26-configure-include-qt5-path.patch
@@ -0,0 +1,15 @@
+https://www.virtualbox.org/changeset/90377/vbox
+https://bugs.gentoo.org/805350
+https://bugs.gentoo.org/805365
+
+--- VirtualBox-6.1.26/configure
++++ VirtualBox-6.1.26/configure
+@@ -1624,6 +1624,8 @@ EOF
+ else
+ # Strip .../QtCore as we add components ourself:
+ INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'`
++ # Strip .../QtGui as we add components ourself:
++ INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\)/QtGui|\1|g; s| $||g'`
+ # store only the first path, remove all other paths
+ # most likely pkg-config gave us -I/usr/include/qt5 -I/usr/include/qt5/QtCore
+ INCQT5=`echo "$INCQT5"|$KBUILD_SED 's|\([^ ]*\) .*|\1|'`
diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch
new file mode 100644
index 000000000000..3a6da1f681c1
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.34-r3-python.patch
@@ -0,0 +1,14 @@
+diff --git a/configure b/configure
+index fd2e296..695f6a7 100755
+--- a/configure
++++ b/configure
+@@ -1987,6 +1987,9 @@ check_python()
+ {
+ test_header "Python support"
+
++ # We force the right implementation in the ebuild instead
++ return
++
+ # On darwin this is a on/off decision only
+ if [ "$OS" = "darwin" ]; then
+ echo "enabled"
diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch b/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch
new file mode 100644
index 000000000000..14b11f734c71
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.36-fcf-protection.patch
@@ -0,0 +1,16 @@
+Bug https://bugs.gentoo.org/865361
+
+gcc does not support -fcf-protection for i386 (needs i686+),
+so disable it when building iPxeBaseBin.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -176,6 +177,8 @@
+
+ iPxeBaseBin_TEMPLATE = iPxe
+
++ iPxeBaseBin_CFLAGS = -fcf-protection=none
++
+ iPxeBaseBin_INCS = \
+ src \
+ src/include \
diff --git a/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch b/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch
new file mode 100644
index 000000000000..c3e76e58c3f2
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-6.1.44-fix-libxml2.patch
@@ -0,0 +1,25 @@
+With dev-libs/libxml2-2.11, xi:include errors out if it can't find a file, so add an empty fallback.
+Used to work with dev-libs/libxml2-2.10.
+
+See also: https://bugs.gentoo.org/906309
+
+--- a/doc/manual/en_US/user_Frontends.xml
++++ b/doc/manual/en_US/user_Frontends.xml
+@@ -1205,6 +1205,6 @@
+
+ </sect1>
+
+- <xi:include href="user_man_VBoxHeadless.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++ <xi:include href="user_man_VBoxHeadless.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+
+ </chapter>
+--- b/doc/manual/en_US/user_VBoxManage.xml
++++ a/doc/manual/en_US/user_VBoxManage.xml
+@@ -8975,6 +8975,6 @@
+ <!-- TODO: Figure out how we can handle other manpages. The xml is bolted to
+ sect1, so it's not possible to have them "in place" -->
+
+- <xi:include href="user_man_vboximg-mount.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />
++ <xi:include href="user_man_vboximg-mount.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" ><xi:fallback/></xi:include>
+
+ </chapter>
diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch b/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch
new file mode 100644
index 000000000000..a523bad41a30
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.14-libxml2-2.12.patch
@@ -0,0 +1,43 @@
+Bug: https://bugs.gentoo.org/922445
+
+The change in libxml2 is not backwards compatibe.
+A patch like the one in arch does not work with 2.11, so just cast the argument to maintain compatibility with both.
+
+The upstream change is in include/libxml/xmlerror.h:
+
+ typedef xmlError *xmlErrorPtr;
+
+-typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
++typedef void (*xmlStructuredErrorFunc) (void *userData, const xmlError *error);
+
+See also: https://gitlab.archlinux.org/archlinux/packaging/packages/virtualbox/-/blob/main/019-libxml-2-12.patch?ref_type=heads
+
+--- a/src/VBox/Runtime/r3/xml.cpp
++++ b/src/VBox/Runtime/r3/xml.cpp
+@@ -1870,7 +1870,7 @@
+ throw std::bad_alloc();
+ /* per-thread so it must be here */
+ xmlSetGenericErrorFunc(NULL, xmlParserBaseGenericError);
+- xmlSetStructuredErrorFunc(NULL, xmlParserBaseStructuredError);
++ xmlSetStructuredErrorFunc(NULL, (xmlStructuredErrorFunc)xmlParserBaseStructuredError);
+ }
+
+ XmlParserBase::~XmlParserBase()
+@@ -1931,7 +1931,7 @@
+ pcszFilename,
+ NULL, // encoding = auto
+ options)))
+- throw XmlError(xmlCtxtGetLastError(m_ctxt));
++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+
+ doc.refreshInternals();
+ }
+@@ -2191,7 +2191,7 @@
+ pcszFilename,
+ NULL, // encoding = auto
+ options)))
+- throw XmlError(xmlCtxtGetLastError(m_ctxt));
++ throw XmlError((xmlErrorPtr)xmlCtxtGetLastError(m_ctxt));
+
+ doc.refreshInternals();
+ }
diff --git a/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch b/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch
new file mode 100644
index 000000000000..29ec3aee72c1
--- /dev/null
+++ b/app-emulation/virtualbox/files/virtualbox-7.0.8-disable-rebuild-iPxeBiosBin.patch
@@ -0,0 +1,18 @@
+When compiling with clang we get:
+
+src/VBox/Devices/PC/ipxe/src/core/settings.c:310:8: error: fields must have a constant size: 'variable length array in structure' extension will never be supported
+
+Apply this patch conditionally to disable rebuilding iPxeBiosBin.rom when using clang.
+
+--- a/src/VBox/Devices/PC/ipxe/Makefile.kmk
++++ b/src/VBox/Devices/PC/ipxe/Makefile.kmk
+@@ -45,7 +45,8 @@
+ iPxeBiosBin_CLEAN = \
+ $(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c \
+
+-if1of ($(KBUILD_TARGET), darwin os2 solaris win)
++# Disable building on Linux if using clang
++if1of ($(KBUILD_TARGET), darwin os2 solaris win linux)
+ $$(iPxeBiosBin_0_OUTDIR)/iPxeBiosBin.c: $(PATH_SUB_CURRENT)/iPxeBiosBin.rom $(VBOX_BIN2C) | $$(dir $$@)
+ $(call MSG_TOOL,bin2c,iPxeBiosBin,$<,$@)
+ $(QUIET)$(VBOX_BIN2C) -min 32 -max 56 -mask 0x1ff -export NetBiosBinary $< $@
diff --git a/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper b/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper
index af8090dd09af..57b15cc93eba 100644
--- a/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper
+++ b/app-emulation/virtualbox/files/virtualbox-ose-6-wrapper
@@ -60,7 +60,7 @@ WARNING: The character device /dev/vboxdrv does not exist.
EOF
fi
-SERVER_PID=`ps -U \`whoami\` | grep VBoxSVC | awk '{ print $1 }'`
+SERVER_PID=$(ps -U ${LOGNAME:-$USER} | grep VBoxSVC | awk '{ print $1 }')
if [ -z "$SERVER_PID" ]; then
# Server not running yet/anymore, cleanup socket path.
# See IPC_GetDefaultSocketPath()!
diff --git a/app-emulation/virtualbox/metadata.xml b/app-emulation/virtualbox/metadata.xml
index 3a2ea79813a6..0a281e0f998b 100644
--- a/app-emulation/virtualbox/metadata.xml
+++ b/app-emulation/virtualbox/metadata.xml
@@ -1,18 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>polynomial-c@gentoo.org</email>
- <name>Lars Wendler</name>
+ <email>ceamac@gentoo.org</email>
+ <name>Viorel Munteanu</name>
</maintainer>
<use>
- <flag name="dtrace">Install dtrace Extension Pack</flag>
- <flag name="headless">Build without any graphic frontend</flag>
- <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
- <flag name="pax_kernel">Apply patch needed for pax enabled kernels.</flag>
- <flag name="sdk">Enable building of SDK</flag>
- <flag name="udev">Controls installation of special USB udev rules.</flag>
- <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag>
-</use>
+ <flag name="dtrace">Install dtrace Extension Pack</flag>
+ <flag name="headless">Build without any graphic frontend</flag>
+ <flag name="lvm">Build VBoxVolInfo that needs devicemapper from <pkg>sys-fs/lvm2</pkg>.</flag>
+ <flag name="pax-kernel">Apply patch needed for pax enabled kernels.</flag>
+ <flag name="sdk">Enable building of SDK</flag>
+ <flag name="udev">Controls installation of special USB udev rules.</flag>
+ <flag name="vboxwebsrv">Build and install the VirtualBox webservice</flag>
+ <flag name="vde">Support for VDE networking via <pkg>net-misc/vde</pkg></flag>
+ </use>
</pkgmetadata>
-
diff --git a/app-emulation/virtualbox/virtualbox-6.0.24.ebuild b/app-emulation/virtualbox/virtualbox-6.0.24.ebuild
deleted file mode 100644
index fe47c9329874..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.0.24.ebuild
+++ /dev/null
@@ -1,510 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=VirtualBox-${MY_PV}
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${MY_PV}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.0.24-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="amd64 x86"
-IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-CDEPEND="
- ${PYTHON_DEPS}
- !app-emulation/virtualbox-bin
- acct-group/vboxusers
- ~app-emulation/virtualbox-modules-${PV}
- dev-libs/libIDL
- >=dev-libs/libxslt-1.1.19
- net-misc/curl
- dev-libs/libxml2
- media-libs/libpng:0=
- media-libs/libvpx:0=
- sys-libs/zlib:=
- !headless? (
- media-libs/libsdl:0[X,video]
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXmu
- x11-libs/libXt
- opengl? ( media-libs/libglvnd[X] )
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtprintsupport:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- opengl? ( dev-qt/qtopengl:5 )
- x11-libs/libXinerama
- )
- )
- libressl? ( dev-libs/libressl:= )
- !libressl? ( dev-libs/openssl:0= )
- lvm? ( sys-fs/lvm2 )
- opus? ( media-libs/opus )
- udev? ( >=virtual/udev-171 )
- vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-DEPEND="
- ${CDEPEND}
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- !headless? (
- x11-libs/libXinerama
- opengl? ( virtual/opengl )
- )
- pam? ( sys-libs/pam )
- pax_kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- qt5? ( dev-qt/linguist-tools:5 )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
- ${PYTHON_DEPS}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/libcap
- sys-power/iasl
- virtual/pkgconfig
- doc? (
- app-text/docbook-sgml-dtd:4.4
- dev-texlive/texlive-basic
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-fontsextra
- )
- java? ( >=virtual/jdk-1.6 )
-"
-RDEPEND="
- ${CDEPEND}
- java? ( >=virtual/jre-1.6 )
-"
-
-QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
- usr/lib/virtualbox/VBoxSDL.so
- usr/lib/virtualbox/VBoxSharedFolders.so
- usr/lib/virtualbox/VBoxDD2.so
- usr/lib/virtualbox/VBoxOGLrenderspu.so
- usr/lib/virtualbox/VBoxPython.so
- usr/lib/virtualbox/VBoxDD.so
- usr/lib/virtualbox/VBoxDDU.so
- usr/lib/virtualbox/VBoxREM64.so
- usr/lib/virtualbox/VBoxSharedClipboard.so
- usr/lib/virtualbox/VBoxHeadless.so
- usr/lib/virtualbox/VBoxRT.so
- usr/lib/virtualbox/VBoxREM.so
- usr/lib/virtualbox/VBoxSettings.so
- usr/lib/virtualbox/VBoxKeyboard.so
- usr/lib/virtualbox/VBoxSharedCrOpenGL.so
- usr/lib/virtualbox/VBoxVMM.so
- usr/lib/virtualbox/VirtualBox.so
- usr/lib/virtualbox/VBoxOGLhosterrorspu.so
- usr/lib/virtualbox/components/VBoxC.so
- usr/lib/virtualbox/components/VBoxSVCM.so
- usr/lib/virtualbox/components/VBoxDDU.so
- usr/lib/virtualbox/components/VBoxRT.so
- usr/lib/virtualbox/components/VBoxREM.so
- usr/lib/virtualbox/components/VBoxVMM.so
- usr/lib/virtualbox/VBoxREM32.so
- usr/lib/virtualbox/VBoxPython2_7.so
- usr/lib/virtualbox/VBoxXPCOMC.so
- usr/lib/virtualbox/VBoxOGLhostcrutil.so
- usr/lib/virtualbox/VBoxNetDHCP.so
- usr/lib/virtualbox/VBoxNetNAT.so"
-
-S="${WORKDIR}/${MY_P}"
-
-REQUIRED_USE="
- java? ( sdk )
- python? ( sdk )
- vboxwebsrv? ( java )
- ${PYTHON_REQUIRED_USE}
-"
-
-pkg_pretend() {
- if ! use headless && ! use qt5 ; then
- einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
- elif use headless && use qt5 ; then
- einfo "You selected USE=\"headless qt5\", defaulting to"
- einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
- fi
-
- if ! use opengl ; then
- einfo "No USE=\"opengl\" selected, this build will lack"
- einfo "the OpenGL feature."
- fi
- if ! use python ; then
- einfo "You have disabled the \"python\" USE flag. This will only"
- einfo "disable the python bindings being installed."
- fi
-}
-
-pkg_setup() {
- java-pkg-opt-2_pkg_setup
- python-single-r1_pkg_setup
-
- tc-ld-disable-gold #bug 488176
- tc-export CC CXX LD AR RANLIB
- export HOST_CC="$(tc-getBUILD_CC)"
-}
-
-src_prepare() {
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- rm -r kBuild/bin tools || die
-
- # Replace pointless GCC version check with something less stupid.
- # This is needed for the qt5 version check.
- sed -e 's@^check_gcc$@cc_maj="$(gcc -dumpversion | cut -d. -f1)" ; cc_min="$(gcc -dumpversion | cut -d. -f2)"@' \
- -i configure || die
-
- # Disable things unused or split into separate ebuilds
- sed -e "s@MY_LIBDIR@$(get_libdir)@" \
- "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
- # Respect LDFLAGS
- sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
- -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
- # Do not use hard-coded ld (related to bug #488176)
- sed -e '/QUIET)ld /s@ld @$(LD) @' \
- -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
- # Use PAM only when pam USE flag is enbaled (bug #376531)
- if ! use pam ; then
- elog "Disabling PAM removes the possibility to use the VRDP features."
- sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
- sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
- src/VBox/HostServices/Makefile.kmk || die
- fi
-
- # add correct java path
- if use java ; then
- sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
- -i "${S}"/Config.kmk || die
- java-pkg-opt-2_src_prepare
- fi
-
- # Only add nopie patch when we're on hardened
- if gcc-specs-pie ; then
- eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
- fi
-
- # Only add paxmark patch when we're on pax_kernel
- if use pax_kernel ; then
- eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
- fi
-
- eapply "${WORKDIR}/patches"
-
- eapply_user
-}
-
-doecho() {
- echo "$@"
- "$@" || die
-}
-
-src_configure() {
- local myconf=(
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
- --disable-dbus
- --disable-kmods
- $(usex alsa '' --disable-alsa)
- $(usex debug --build-debug '')
- $(usex doc '' --disable-docs)
- $(usex java '' --disable-java)
- $(usex lvm '' --disable-devmapper)
- $(usex opus '' --disable-libopus)
- $(usex pulseaudio '' --disable-pulse)
- $(usex python '' --disable-python)
- $(usex vboxwebsrv --enable-webservice '')
- $(usex vnc --enable-vnc '')
- )
- if ! use headless ; then
- myconf+=(
- $(usex opengl '' --disable-opengl)
- $(usex qt5 '' --disable-qt)
- )
- else
- myconf+=(
- --build-headless
- --disable-opengl
- )
- fi
- if use amd64 && ! has_multilib_profile ; then
- myconf+=( --disable-vmmraw )
- fi
- # not an autoconf script
- doecho ./configure ${myconf[@]}
-}
-
-src_compile() {
- source ./env.sh || die
-
- # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
- MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
- all
-}
-
-src_install() {
- cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
- local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
- vbox_inst() {
- local binary="${1}"
- local perms="${2:-0750}"
- local path="${3:-${vbox_inst_path}}"
-
- [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
- [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
- insinto ${path}
- doins ${binary}
- fowners root:vboxusers ${path}/${binary}
- fperms ${perms} ${path}/${binary}
- }
-
- # Create configuration files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
- # Set the correct libdir
- sed \
- -e "s@MY_LIBDIR@$(get_libdir)@" \
- -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
- # Install the wrapper script
- exeinto ${vbox_inst_path}
- newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
- fowners root:vboxusers ${vbox_inst_path}/VBox
- fperms 0750 ${vbox_inst_path}/VBox
-
- # Install binaries and libraries
- insinto ${vbox_inst_path}
- doins -r components
-
- # *.rc files for x86_64 are only available on multilib systems
- local rcfiles="*.rc"
- if use amd64 && ! has_multilib_profile ; then
- rcfiles=""
- fi
- for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} *so *r0 ${rcfiles} iPxeBaseBin ; do
- vbox_inst ${each}
- done
-
- # These binaries need to be suid root.
- for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
- vbox_inst ${each} 4750
- done
-
- # Install EFI Firmware files (bug #320757)
- for each in VBoxEFI{32,64}.fd ; do
- vbox_inst ${each} 0644
- done
-
- # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
- # VBoxXPCOMIPCD (bug #524202)
- for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- # Symlink binaries to the shipped wrapper
- for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
- dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
-
- if use pam ; then
- # VRDPAuth only works with this (bug #351949)
- dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
- fi
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- if ! use headless ; then
- vbox_inst rdesktop-vrdp
- vbox_inst VBoxSDL 4750
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
- for each in vboxsdl VBoxSDL ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- if use qt5 ; then
- vbox_inst VirtualBox
- vbox_inst VirtualBoxVM 4750
- for each in VirtualBox{,VM} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- if use opengl ; then
- vbox_inst VBoxTestOGL
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
- fi
-
- for each in virtualbox{,vm} VirtualBox{,VM} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- insinto /usr/share/${PN}
- doins -r nls
- doins -r UnattendedTemplates
-
- domenu ${PN}.desktop
- fi
-
- pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
- for size in 16 32 48 64 128 ; do
- newicon -s ${size} ${PN}-${size}px.png ${PN}.png
- done
- newicon ${PN}-48px.png ${PN}.png
- doicon -s scalable ${PN}.svg
- popd &>/dev/null || die
- pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
- for size in 16 24 32 48 64 72 96 128 256 512 ; do
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="${PN}-${ico}-${size}px.png"
- if [[ -f "${icofile}" ]] ; then
- newicon -s ${size} ${icofile} ${PN}-${ico}.png
- fi
- done
- done
- popd &>/dev/null || die
- fi
-
- if use lvm ; then
- vbox_inst VBoxVolInfo 4750
- dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
- fi
-
- if use sdk ; then
- insinto ${vbox_inst_path}
- doins -r sdk
-
- if use java ; then
- java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
- java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
- fi
- fi
-
- if use udev ; then
- # New way of handling USB device nodes for VBox (bug #356215)
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}
- doins VBoxCreateUSBNode.sh
- fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
- insinto ${udevdir}/rules.d
- sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
- > "${T}"/10-virtualbox.rules || die
- doins "${T}"/10-virtualbox.rules
- fi
-
- if use vboxwebsrv ; then
- vbox_inst vboxwebsrv
- dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- # Fix version string in extensions or else they don't get accepted
- # by the virtualbox host process (see bug #438930)
- find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
- | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
- || die
-
- local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
- if use vnc ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/VNC
- fi
-
- if use dtrace ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
- fi
-
- if use doc ; then
- dodoc UserManual.pdf
- fi
-
- newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_preinst() {
- xdg_pkg_preinst
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if use udev ; then
- udevadm control --reload-rules \
- && udevadm trigger --subsystem-match=usb
- fi
-
- tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf
-
- if ! use headless && use qt5 ; then
- elog "To launch VirtualBox just type: \"virtualbox\"."
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "The latest user manual is available for download at:"
- elog "http://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Starting with version 4.0.0, ${PN} has USB-1 support."
- elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- elog "package."
- elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
- elog "the \"extension\" USE flag. For installation of the guest additions ISO"
- elog "image, please emerge"
- elog " app-emulation/virtualbox-additions"
- elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- if ! use udev ; then
- elog ""
- elog "WARNING!"
- elog "Without USE=udev, USB devices will likely not work in ${PN}."
- elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then
- elog ""
- elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
- elog "or else USB in ${PN} won't work."
- fi
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
-}
diff --git a/app-emulation/virtualbox/virtualbox-6.1.12a.ebuild b/app-emulation/virtualbox/virtualbox-6.1.12a.ebuild
deleted file mode 100644
index f207651526b6..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.12a.ebuild
+++ /dev/null
@@ -1,512 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-CDEPEND="
- ${PYTHON_DEPS}
- !app-emulation/virtualbox-bin
- acct-group/vboxusers
- ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
- dev-libs/libIDL
- >=dev-libs/libxslt-1.1.19
- net-misc/curl
- dev-libs/libxml2
- media-libs/libpng:0=
- media-libs/libvpx:0=
- sys-libs/zlib:=
- !headless? (
- media-libs/libsdl:0[X,video]
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXmu
- x11-libs/libXt
- opengl? ( media-libs/libglvnd[X] )
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtprintsupport:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- opengl? ( dev-qt/qtopengl:5 )
- x11-libs/libXinerama
- )
- )
- libressl? ( dev-libs/libressl:= )
- !libressl? ( dev-libs/openssl:0= )
- lvm? ( sys-fs/lvm2 )
- opus? ( media-libs/opus )
- udev? ( >=virtual/udev-171 )
- vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-DEPEND="
- ${CDEPEND}
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- !headless? (
- x11-libs/libXinerama
- opengl? ( virtual/opengl )
- )
- pam? ( sys-libs/pam )
- pax_kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- qt5? ( dev-qt/linguist-tools:5 )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
- ${PYTHON_DEPS}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/libcap
- sys-power/iasl
- virtual/pkgconfig
- doc? (
- app-text/docbook-sgml-dtd:4.4
- dev-texlive/texlive-basic
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-fontsextra
- )
- java? ( >=virtual/jdk-1.6 )
-"
-RDEPEND="
- ${CDEPEND}
- java? ( >=virtual/jre-1.6 )
-"
-
-QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
- usr/lib/virtualbox/VBoxSDL.so
- usr/lib/virtualbox/VBoxSharedFolders.so
- usr/lib/virtualbox/VBoxDD2.so
- usr/lib/virtualbox/VBoxOGLrenderspu.so
- usr/lib/virtualbox/VBoxPython.so
- usr/lib/virtualbox/VBoxDD.so
- usr/lib/virtualbox/VBoxDDU.so
- usr/lib/virtualbox/VBoxREM64.so
- usr/lib/virtualbox/VBoxSharedClipboard.so
- usr/lib/virtualbox/VBoxHeadless.so
- usr/lib/virtualbox/VBoxRT.so
- usr/lib/virtualbox/VBoxREM.so
- usr/lib/virtualbox/VBoxSettings.so
- usr/lib/virtualbox/VBoxKeyboard.so
- usr/lib/virtualbox/VBoxSharedCrOpenGL.so
- usr/lib/virtualbox/VBoxVMM.so
- usr/lib/virtualbox/VirtualBox.so
- usr/lib/virtualbox/VBoxOGLhosterrorspu.so
- usr/lib/virtualbox/components/VBoxC.so
- usr/lib/virtualbox/components/VBoxSVCM.so
- usr/lib/virtualbox/components/VBoxDDU.so
- usr/lib/virtualbox/components/VBoxRT.so
- usr/lib/virtualbox/components/VBoxREM.so
- usr/lib/virtualbox/components/VBoxVMM.so
- usr/lib/virtualbox/VBoxREM32.so
- usr/lib/virtualbox/VBoxPython2_7.so
- usr/lib/virtualbox/VBoxXPCOMC.so
- usr/lib/virtualbox/VBoxOGLhostcrutil.so
- usr/lib/virtualbox/VBoxNetDHCP.so
- usr/lib/virtualbox/VBoxNetNAT.so"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-REQUIRED_USE="
- java? ( sdk )
- python? ( sdk )
- vboxwebsrv? ( java )
- ${PYTHON_REQUIRED_USE}
-"
-
-pkg_pretend() {
- if ! use headless && ! use qt5 ; then
- einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
- elif use headless && use qt5 ; then
- einfo "You selected USE=\"headless qt5\", defaulting to"
- einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
- fi
-
- if ! use opengl ; then
- einfo "No USE=\"opengl\" selected, this build will lack"
- einfo "the OpenGL feature."
- fi
- if ! use python ; then
- einfo "You have disabled the \"python\" USE flag. This will only"
- einfo "disable the python bindings being installed."
- fi
-}
-
-pkg_setup() {
- java-pkg-opt-2_pkg_setup
- python-single-r1_pkg_setup
-
- tc-ld-disable-gold #bug 488176
- tc-export CC CXX LD AR RANLIB
- export HOST_CC="$(tc-getBUILD_CC)"
-}
-
-src_prepare() {
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- rm -r kBuild/bin tools || die
-
- # Replace pointless GCC version check with something less stupid.
- # This is needed for the qt5 version check.
- sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
- -i configure || die
-
- # Disable things unused or split into separate ebuilds
- sed -e "s@MY_LIBDIR@$(get_libdir)@" \
- "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
- # Respect LDFLAGS
- sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
- -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
- # Do not use hard-coded ld (related to bug #488176)
- sed -e '/QUIET)ld /s@ld @$(LD) @' \
- -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
- # Use PAM only when pam USE flag is enbaled (bug #376531)
- if ! use pam ; then
- elog "Disabling PAM removes the possibility to use the VRDP features."
- sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
- sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
- src/VBox/HostServices/Makefile.kmk || die
- fi
-
- # add correct java path
- if use java ; then
- sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
- -i "${S}"/Config.kmk || die
- java-pkg-opt-2_src_prepare
- fi
-
- # Only add nopie patch when we're on hardened
- if gcc-specs-pie ; then
- eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
- fi
-
- # Only add paxmark patch when we're on pax_kernel
- if use pax_kernel ; then
- eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
- fi
-
- eapply "${WORKDIR}/patches"
-
- eapply_user
-}
-
-doecho() {
- echo "$@"
- "$@" || die
-}
-
-src_configure() {
- local myconf=(
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
- --disable-dbus
- --disable-kmods
- $(usex alsa '' --disable-alsa)
- $(usex debug --build-debug '')
- $(usex doc '' --disable-docs)
- $(usex java '' --disable-java)
- $(usex lvm '' --disable-devmapper)
- $(usex opus '' --disable-libopus)
- $(usex pulseaudio '' --disable-pulse)
- $(usex python '' --disable-python)
- $(usex vboxwebsrv --enable-webservice '')
- $(usex vnc --enable-vnc '')
- )
- if ! use headless ; then
- myconf+=(
- $(usex opengl '' --disable-opengl)
- $(usex qt5 '' --disable-qt)
- )
- else
- myconf+=(
- --build-headless
- --disable-opengl
- )
- fi
- if use amd64 && ! has_multilib_profile ; then
- myconf+=( --disable-vmmraw )
- fi
- # not an autoconf script
- doecho ./configure ${myconf[@]}
-}
-
-src_compile() {
- source ./env.sh || die
-
- # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
- MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
- VBOX_WITH_VBOXIMGMOUNT=1 \
- all
-}
-
-src_install() {
- cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
- local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
- vbox_inst() {
- local binary="${1}"
- local perms="${2:-0750}"
- local path="${3:-${vbox_inst_path}}"
-
- [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
- [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
- insinto ${path}
- doins ${binary}
- fowners root:vboxusers ${path}/${binary}
- fperms ${perms} ${path}/${binary}
- }
-
- # Create configuration files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
- # Set the correct libdir
- sed \
- -e "s@MY_LIBDIR@$(get_libdir)@" \
- -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
- # Install the wrapper script
- exeinto ${vbox_inst_path}
- newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
- fowners root:vboxusers ${vbox_inst_path}/VBox
- fperms 0750 ${vbox_inst_path}/VBox
-
- # Install binaries and libraries
- insinto ${vbox_inst_path}
- doins -r components
-
- for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
- vbox_inst ${each}
- done
-
- # These binaries need to be suid root.
- for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
- vbox_inst ${each} 4750
- done
-
- # Install EFI Firmware files (bug #320757)
- for each in VBoxEFI{32,64}.fd ; do
- vbox_inst ${each} 0644
- done
-
- # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
- # VBoxXPCOMIPCD (bug #524202)
- for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- # Symlink binaries to the shipped wrapper
- for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
- dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
- dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
- if use pam ; then
- # VRDPAuth only works with this (bug #351949)
- dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
- fi
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- if ! use headless ; then
- vbox_inst rdesktop-vrdp
- vbox_inst VBoxSDL 4750
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
- for each in vboxsdl VBoxSDL ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- if use qt5 ; then
- vbox_inst VirtualBox
- vbox_inst VirtualBoxVM 4750
- for each in VirtualBox{,VM} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- if use opengl ; then
- vbox_inst VBoxTestOGL
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
- fi
-
- for each in virtualbox{,vm} VirtualBox{,VM} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- insinto /usr/share/${PN}
- doins -r nls
- doins -r UnattendedTemplates
-
- domenu ${PN}.desktop
- fi
-
- pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
- for size in 16 32 48 64 128 ; do
- newicon -s ${size} ${PN}-${size}px.png ${PN}.png
- done
- newicon ${PN}-48px.png ${PN}.png
- doicon -s scalable ${PN}.svg
- popd &>/dev/null || die
- pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
- for size in 16 24 32 48 64 72 96 128 256 512 ; do
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="${PN}-${ico}-${size}px.png"
- if [[ -f "${icofile}" ]] ; then
- newicon -s ${size} ${icofile} ${PN}-${ico}.png
- fi
- done
- done
- popd &>/dev/null || die
- fi
-
- if use lvm ; then
- vbox_inst VBoxVolInfo 4750
- dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
- fi
-
- if use sdk ; then
- insinto ${vbox_inst_path}
- doins -r sdk
-
- if use java ; then
- java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
- java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
- fi
- fi
-
- if use udev ; then
- # New way of handling USB device nodes for VBox (bug #356215)
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}
- doins VBoxCreateUSBNode.sh
- fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
- insinto ${udevdir}/rules.d
- sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
- > "${T}"/10-virtualbox.rules || die
- doins "${T}"/10-virtualbox.rules
- fi
-
- if use vboxwebsrv ; then
- vbox_inst vboxwebsrv
- dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- # Remove dead symlinks (bug #715338)
- find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
- # Fix version string in extensions or else they don't get accepted
- # by the virtualbox host process (see bug #438930)
- find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
- | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
- || die
-
- local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
- if use vnc ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/VNC
- fi
-
- if use dtrace ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
- fi
-
- if use doc ; then
- dodoc UserManual.pdf
- fi
-
- newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_preinst() {
- xdg_pkg_preinst
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if use udev ; then
- udevadm control --reload-rules \
- && udevadm trigger --subsystem-match=usb
- fi
-
- tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf
-
- if ! use headless && use qt5 ; then
- elog "To launch VirtualBox just type: \"virtualbox\"."
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "The latest user manual is available for download at:"
- elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Starting with version 4.0.0, ${PN} has USB-1 support."
- elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- elog "package."
- elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
- elog "the \"extension\" USE flag. For installation of the guest additions ISO"
- elog "image, please emerge"
- elog " app-emulation/virtualbox-additions"
- elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- if ! use udev ; then
- elog ""
- elog "WARNING!"
- elog "Without USE=udev, USB devices will likely not work in ${PN}."
- elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then
- elog ""
- elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
- elog "or else USB in ${PN} won't work."
- fi
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
-}
diff --git a/app-emulation/virtualbox/virtualbox-6.1.14a.ebuild b/app-emulation/virtualbox/virtualbox-6.1.14a.ebuild
deleted file mode 100644
index f207651526b6..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.14a.ebuild
+++ /dev/null
@@ -1,512 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-CDEPEND="
- ${PYTHON_DEPS}
- !app-emulation/virtualbox-bin
- acct-group/vboxusers
- ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
- dev-libs/libIDL
- >=dev-libs/libxslt-1.1.19
- net-misc/curl
- dev-libs/libxml2
- media-libs/libpng:0=
- media-libs/libvpx:0=
- sys-libs/zlib:=
- !headless? (
- media-libs/libsdl:0[X,video]
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXmu
- x11-libs/libXt
- opengl? ( media-libs/libglvnd[X] )
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtprintsupport:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- opengl? ( dev-qt/qtopengl:5 )
- x11-libs/libXinerama
- )
- )
- libressl? ( dev-libs/libressl:= )
- !libressl? ( dev-libs/openssl:0= )
- lvm? ( sys-fs/lvm2 )
- opus? ( media-libs/opus )
- udev? ( >=virtual/udev-171 )
- vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-DEPEND="
- ${CDEPEND}
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- !headless? (
- x11-libs/libXinerama
- opengl? ( virtual/opengl )
- )
- pam? ( sys-libs/pam )
- pax_kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- qt5? ( dev-qt/linguist-tools:5 )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
- ${PYTHON_DEPS}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/libcap
- sys-power/iasl
- virtual/pkgconfig
- doc? (
- app-text/docbook-sgml-dtd:4.4
- dev-texlive/texlive-basic
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-fontsextra
- )
- java? ( >=virtual/jdk-1.6 )
-"
-RDEPEND="
- ${CDEPEND}
- java? ( >=virtual/jre-1.6 )
-"
-
-QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
- usr/lib/virtualbox/VBoxSDL.so
- usr/lib/virtualbox/VBoxSharedFolders.so
- usr/lib/virtualbox/VBoxDD2.so
- usr/lib/virtualbox/VBoxOGLrenderspu.so
- usr/lib/virtualbox/VBoxPython.so
- usr/lib/virtualbox/VBoxDD.so
- usr/lib/virtualbox/VBoxDDU.so
- usr/lib/virtualbox/VBoxREM64.so
- usr/lib/virtualbox/VBoxSharedClipboard.so
- usr/lib/virtualbox/VBoxHeadless.so
- usr/lib/virtualbox/VBoxRT.so
- usr/lib/virtualbox/VBoxREM.so
- usr/lib/virtualbox/VBoxSettings.so
- usr/lib/virtualbox/VBoxKeyboard.so
- usr/lib/virtualbox/VBoxSharedCrOpenGL.so
- usr/lib/virtualbox/VBoxVMM.so
- usr/lib/virtualbox/VirtualBox.so
- usr/lib/virtualbox/VBoxOGLhosterrorspu.so
- usr/lib/virtualbox/components/VBoxC.so
- usr/lib/virtualbox/components/VBoxSVCM.so
- usr/lib/virtualbox/components/VBoxDDU.so
- usr/lib/virtualbox/components/VBoxRT.so
- usr/lib/virtualbox/components/VBoxREM.so
- usr/lib/virtualbox/components/VBoxVMM.so
- usr/lib/virtualbox/VBoxREM32.so
- usr/lib/virtualbox/VBoxPython2_7.so
- usr/lib/virtualbox/VBoxXPCOMC.so
- usr/lib/virtualbox/VBoxOGLhostcrutil.so
- usr/lib/virtualbox/VBoxNetDHCP.so
- usr/lib/virtualbox/VBoxNetNAT.so"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-REQUIRED_USE="
- java? ( sdk )
- python? ( sdk )
- vboxwebsrv? ( java )
- ${PYTHON_REQUIRED_USE}
-"
-
-pkg_pretend() {
- if ! use headless && ! use qt5 ; then
- einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
- elif use headless && use qt5 ; then
- einfo "You selected USE=\"headless qt5\", defaulting to"
- einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
- fi
-
- if ! use opengl ; then
- einfo "No USE=\"opengl\" selected, this build will lack"
- einfo "the OpenGL feature."
- fi
- if ! use python ; then
- einfo "You have disabled the \"python\" USE flag. This will only"
- einfo "disable the python bindings being installed."
- fi
-}
-
-pkg_setup() {
- java-pkg-opt-2_pkg_setup
- python-single-r1_pkg_setup
-
- tc-ld-disable-gold #bug 488176
- tc-export CC CXX LD AR RANLIB
- export HOST_CC="$(tc-getBUILD_CC)"
-}
-
-src_prepare() {
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- rm -r kBuild/bin tools || die
-
- # Replace pointless GCC version check with something less stupid.
- # This is needed for the qt5 version check.
- sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
- -i configure || die
-
- # Disable things unused or split into separate ebuilds
- sed -e "s@MY_LIBDIR@$(get_libdir)@" \
- "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
- # Respect LDFLAGS
- sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
- -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
- # Do not use hard-coded ld (related to bug #488176)
- sed -e '/QUIET)ld /s@ld @$(LD) @' \
- -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
- # Use PAM only when pam USE flag is enbaled (bug #376531)
- if ! use pam ; then
- elog "Disabling PAM removes the possibility to use the VRDP features."
- sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
- sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
- src/VBox/HostServices/Makefile.kmk || die
- fi
-
- # add correct java path
- if use java ; then
- sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
- -i "${S}"/Config.kmk || die
- java-pkg-opt-2_src_prepare
- fi
-
- # Only add nopie patch when we're on hardened
- if gcc-specs-pie ; then
- eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
- fi
-
- # Only add paxmark patch when we're on pax_kernel
- if use pax_kernel ; then
- eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
- fi
-
- eapply "${WORKDIR}/patches"
-
- eapply_user
-}
-
-doecho() {
- echo "$@"
- "$@" || die
-}
-
-src_configure() {
- local myconf=(
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
- --disable-dbus
- --disable-kmods
- $(usex alsa '' --disable-alsa)
- $(usex debug --build-debug '')
- $(usex doc '' --disable-docs)
- $(usex java '' --disable-java)
- $(usex lvm '' --disable-devmapper)
- $(usex opus '' --disable-libopus)
- $(usex pulseaudio '' --disable-pulse)
- $(usex python '' --disable-python)
- $(usex vboxwebsrv --enable-webservice '')
- $(usex vnc --enable-vnc '')
- )
- if ! use headless ; then
- myconf+=(
- $(usex opengl '' --disable-opengl)
- $(usex qt5 '' --disable-qt)
- )
- else
- myconf+=(
- --build-headless
- --disable-opengl
- )
- fi
- if use amd64 && ! has_multilib_profile ; then
- myconf+=( --disable-vmmraw )
- fi
- # not an autoconf script
- doecho ./configure ${myconf[@]}
-}
-
-src_compile() {
- source ./env.sh || die
-
- # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
- MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
- VBOX_WITH_VBOXIMGMOUNT=1 \
- all
-}
-
-src_install() {
- cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
- local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
- vbox_inst() {
- local binary="${1}"
- local perms="${2:-0750}"
- local path="${3:-${vbox_inst_path}}"
-
- [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
- [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
- insinto ${path}
- doins ${binary}
- fowners root:vboxusers ${path}/${binary}
- fperms ${perms} ${path}/${binary}
- }
-
- # Create configuration files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
- # Set the correct libdir
- sed \
- -e "s@MY_LIBDIR@$(get_libdir)@" \
- -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
- # Install the wrapper script
- exeinto ${vbox_inst_path}
- newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
- fowners root:vboxusers ${vbox_inst_path}/VBox
- fperms 0750 ${vbox_inst_path}/VBox
-
- # Install binaries and libraries
- insinto ${vbox_inst_path}
- doins -r components
-
- for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
- vbox_inst ${each}
- done
-
- # These binaries need to be suid root.
- for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
- vbox_inst ${each} 4750
- done
-
- # Install EFI Firmware files (bug #320757)
- for each in VBoxEFI{32,64}.fd ; do
- vbox_inst ${each} 0644
- done
-
- # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
- # VBoxXPCOMIPCD (bug #524202)
- for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- # Symlink binaries to the shipped wrapper
- for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
- dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
- dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
- if use pam ; then
- # VRDPAuth only works with this (bug #351949)
- dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
- fi
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- if ! use headless ; then
- vbox_inst rdesktop-vrdp
- vbox_inst VBoxSDL 4750
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
- for each in vboxsdl VBoxSDL ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- if use qt5 ; then
- vbox_inst VirtualBox
- vbox_inst VirtualBoxVM 4750
- for each in VirtualBox{,VM} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- if use opengl ; then
- vbox_inst VBoxTestOGL
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
- fi
-
- for each in virtualbox{,vm} VirtualBox{,VM} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- insinto /usr/share/${PN}
- doins -r nls
- doins -r UnattendedTemplates
-
- domenu ${PN}.desktop
- fi
-
- pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
- for size in 16 32 48 64 128 ; do
- newicon -s ${size} ${PN}-${size}px.png ${PN}.png
- done
- newicon ${PN}-48px.png ${PN}.png
- doicon -s scalable ${PN}.svg
- popd &>/dev/null || die
- pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
- for size in 16 24 32 48 64 72 96 128 256 512 ; do
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="${PN}-${ico}-${size}px.png"
- if [[ -f "${icofile}" ]] ; then
- newicon -s ${size} ${icofile} ${PN}-${ico}.png
- fi
- done
- done
- popd &>/dev/null || die
- fi
-
- if use lvm ; then
- vbox_inst VBoxVolInfo 4750
- dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
- fi
-
- if use sdk ; then
- insinto ${vbox_inst_path}
- doins -r sdk
-
- if use java ; then
- java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
- java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
- fi
- fi
-
- if use udev ; then
- # New way of handling USB device nodes for VBox (bug #356215)
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}
- doins VBoxCreateUSBNode.sh
- fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
- insinto ${udevdir}/rules.d
- sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
- > "${T}"/10-virtualbox.rules || die
- doins "${T}"/10-virtualbox.rules
- fi
-
- if use vboxwebsrv ; then
- vbox_inst vboxwebsrv
- dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- # Remove dead symlinks (bug #715338)
- find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
- # Fix version string in extensions or else they don't get accepted
- # by the virtualbox host process (see bug #438930)
- find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
- | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
- || die
-
- local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
- if use vnc ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/VNC
- fi
-
- if use dtrace ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
- fi
-
- if use doc ; then
- dodoc UserManual.pdf
- fi
-
- newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_preinst() {
- xdg_pkg_preinst
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if use udev ; then
- udevadm control --reload-rules \
- && udevadm trigger --subsystem-match=usb
- fi
-
- tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf
-
- if ! use headless && use qt5 ; then
- elog "To launch VirtualBox just type: \"virtualbox\"."
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "The latest user manual is available for download at:"
- elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Starting with version 4.0.0, ${PN} has USB-1 support."
- elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- elog "package."
- elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
- elog "the \"extension\" USE flag. For installation of the guest additions ISO"
- elog "image, please emerge"
- elog " app-emulation/virtualbox-additions"
- elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- if ! use udev ; then
- elog ""
- elog "WARNING!"
- elog "Without USE=udev, USB devices will likely not work in ${PN}."
- elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then
- elog ""
- elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
- elog "or else USB in ${PN} won't work."
- fi
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
-}
diff --git a/app-emulation/virtualbox/virtualbox-6.1.16.ebuild b/app-emulation/virtualbox/virtualbox-6.1.16.ebuild
deleted file mode 100644
index f207651526b6..000000000000
--- a/app-emulation/virtualbox/virtualbox-6.1.16.ebuild
+++ /dev/null
@@ -1,512 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-inherit desktop flag-o-matic java-pkg-opt-2 linux-info pax-utils python-single-r1 tmpfiles toolchain-funcs udev xdg
-
-MY_PN="VirtualBox"
-MY_PV="${PV/beta/BETA}"
-MY_PV="${MY_PV/rc/RC}"
-MY_P=${MY_PN}-${MY_PV}
-[[ "${PV}" == *a ]] && DIR_PV="$(ver_cut 1-3)"
-
-DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
-HOMEPAGE="https://www.virtualbox.org/"
-SRC_URI="https://download.virtualbox.org/virtualbox/${DIR_PV:-${MY_PV}}/${MY_P}.tar.bz2
- https://dev.gentoo.org/~polynomial-c/${PN}/patchsets/${PN}-6.1.12-patches-01.tar.xz"
-
-LICENSE="GPL-2 dtrace? ( CDDL )"
-SLOT="0"
-[[ "${PV}" == *_beta* ]] || [[ "${PV}" == *_rc* ]] || \
-KEYWORDS="~amd64"
-IUSE="alsa debug doc dtrace headless java libressl lvm +opus pam pax_kernel pulseaudio +opengl python +qt5 +sdk +udev vboxwebsrv vnc"
-
-CDEPEND="
- ${PYTHON_DEPS}
- !app-emulation/virtualbox-bin
- acct-group/vboxusers
- ~app-emulation/virtualbox-modules-${DIR_PV:-${PV}}
- dev-libs/libIDL
- >=dev-libs/libxslt-1.1.19
- net-misc/curl
- dev-libs/libxml2
- media-libs/libpng:0=
- media-libs/libvpx:0=
- sys-libs/zlib:=
- !headless? (
- media-libs/libsdl:0[X,video]
- x11-libs/libX11
- x11-libs/libxcb:=
- x11-libs/libXcursor
- x11-libs/libXext
- x11-libs/libXmu
- x11-libs/libXt
- opengl? ( media-libs/libglvnd[X] )
- qt5? (
- dev-qt/qtcore:5
- dev-qt/qtgui:5
- dev-qt/qtprintsupport:5
- dev-qt/qtwidgets:5
- dev-qt/qtx11extras:5
- opengl? ( dev-qt/qtopengl:5 )
- x11-libs/libXinerama
- )
- )
- libressl? ( dev-libs/libressl:= )
- !libressl? ( dev-libs/openssl:0= )
- lvm? ( sys-fs/lvm2 )
- opus? ( media-libs/opus )
- udev? ( >=virtual/udev-171 )
- vnc? ( >=net-libs/libvncserver-0.9.9 )
-"
-DEPEND="
- ${CDEPEND}
- alsa? ( >=media-libs/alsa-lib-1.0.13 )
- !headless? (
- x11-libs/libXinerama
- opengl? ( virtual/opengl )
- )
- pam? ( sys-libs/pam )
- pax_kernel? ( sys-apps/elfix )
- pulseaudio? ( media-sound/pulseaudio )
- qt5? ( dev-qt/linguist-tools:5 )
- vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
-"
-BDEPEND="
- ${PYTHON_DEPS}
- >=dev-util/kbuild-0.1.9998.3127
- >=dev-lang/yasm-0.6.2
- sys-devel/bin86
- sys-libs/libcap
- sys-power/iasl
- virtual/pkgconfig
- doc? (
- app-text/docbook-sgml-dtd:4.4
- dev-texlive/texlive-basic
- dev-texlive/texlive-latex
- dev-texlive/texlive-latexrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-fontsextra
- )
- java? ( >=virtual/jdk-1.6 )
-"
-RDEPEND="
- ${CDEPEND}
- java? ( >=virtual/jre-1.6 )
-"
-
-QA_TEXTRELS_x86="usr/lib/virtualbox-ose/VBoxGuestPropSvc.so
- usr/lib/virtualbox/VBoxSDL.so
- usr/lib/virtualbox/VBoxSharedFolders.so
- usr/lib/virtualbox/VBoxDD2.so
- usr/lib/virtualbox/VBoxOGLrenderspu.so
- usr/lib/virtualbox/VBoxPython.so
- usr/lib/virtualbox/VBoxDD.so
- usr/lib/virtualbox/VBoxDDU.so
- usr/lib/virtualbox/VBoxREM64.so
- usr/lib/virtualbox/VBoxSharedClipboard.so
- usr/lib/virtualbox/VBoxHeadless.so
- usr/lib/virtualbox/VBoxRT.so
- usr/lib/virtualbox/VBoxREM.so
- usr/lib/virtualbox/VBoxSettings.so
- usr/lib/virtualbox/VBoxKeyboard.so
- usr/lib/virtualbox/VBoxSharedCrOpenGL.so
- usr/lib/virtualbox/VBoxVMM.so
- usr/lib/virtualbox/VirtualBox.so
- usr/lib/virtualbox/VBoxOGLhosterrorspu.so
- usr/lib/virtualbox/components/VBoxC.so
- usr/lib/virtualbox/components/VBoxSVCM.so
- usr/lib/virtualbox/components/VBoxDDU.so
- usr/lib/virtualbox/components/VBoxRT.so
- usr/lib/virtualbox/components/VBoxREM.so
- usr/lib/virtualbox/components/VBoxVMM.so
- usr/lib/virtualbox/VBoxREM32.so
- usr/lib/virtualbox/VBoxPython2_7.so
- usr/lib/virtualbox/VBoxXPCOMC.so
- usr/lib/virtualbox/VBoxOGLhostcrutil.so
- usr/lib/virtualbox/VBoxNetDHCP.so
- usr/lib/virtualbox/VBoxNetNAT.so"
-
-S="${WORKDIR}/${MY_PN}-${DIR_PV:-${MY_PV}}"
-
-REQUIRED_USE="
- java? ( sdk )
- python? ( sdk )
- vboxwebsrv? ( java )
- ${PYTHON_REQUIRED_USE}
-"
-
-pkg_pretend() {
- if ! use headless && ! use qt5 ; then
- einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
- elif use headless && use qt5 ; then
- einfo "You selected USE=\"headless qt5\", defaulting to"
- einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
- fi
-
- if ! use opengl ; then
- einfo "No USE=\"opengl\" selected, this build will lack"
- einfo "the OpenGL feature."
- fi
- if ! use python ; then
- einfo "You have disabled the \"python\" USE flag. This will only"
- einfo "disable the python bindings being installed."
- fi
-}
-
-pkg_setup() {
- java-pkg-opt-2_pkg_setup
- python-single-r1_pkg_setup
-
- tc-ld-disable-gold #bug 488176
- tc-export CC CXX LD AR RANLIB
- export HOST_CC="$(tc-getBUILD_CC)"
-}
-
-src_prepare() {
- # Remove shipped binaries (kBuild,yasm), see bug #232775
- rm -r kBuild/bin tools || die
-
- # Replace pointless GCC version check with something less stupid.
- # This is needed for the qt5 version check.
- sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
- -i configure || die
-
- # Disable things unused or split into separate ebuilds
- sed -e "s@MY_LIBDIR@$(get_libdir)@" \
- "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
-
- # Respect LDFLAGS
- sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
- -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
-
- # Do not use hard-coded ld (related to bug #488176)
- sed -e '/QUIET)ld /s@ld @$(LD) @' \
- -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
-
- # Use PAM only when pam USE flag is enbaled (bug #376531)
- if ! use pam ; then
- elog "Disabling PAM removes the possibility to use the VRDP features."
- sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
- sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
- src/VBox/HostServices/Makefile.kmk || die
- fi
-
- # add correct java path
- if use java ; then
- sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
- -i "${S}"/Config.kmk || die
- java-pkg-opt-2_src_prepare
- fi
-
- # Only add nopie patch when we're on hardened
- if gcc-specs-pie ; then
- eapply "${FILESDIR}/050_virtualbox-5.2.8-nopie.patch"
- fi
-
- # Only add paxmark patch when we're on pax_kernel
- if use pax_kernel ; then
- eapply "${FILESDIR}"/virtualbox-5.2.8-paxmark-bldprogs.patch
- fi
-
- eapply "${WORKDIR}/patches"
-
- eapply_user
-}
-
-doecho() {
- echo "$@"
- "$@" || die
-}
-
-src_configure() {
- local myconf=(
- --with-gcc="$(tc-getCC)"
- --with-g++="$(tc-getCXX)"
- --disable-dbus
- --disable-kmods
- $(usex alsa '' --disable-alsa)
- $(usex debug --build-debug '')
- $(usex doc '' --disable-docs)
- $(usex java '' --disable-java)
- $(usex lvm '' --disable-devmapper)
- $(usex opus '' --disable-libopus)
- $(usex pulseaudio '' --disable-pulse)
- $(usex python '' --disable-python)
- $(usex vboxwebsrv --enable-webservice '')
- $(usex vnc --enable-vnc '')
- )
- if ! use headless ; then
- myconf+=(
- $(usex opengl '' --disable-opengl)
- $(usex qt5 '' --disable-qt)
- )
- else
- myconf+=(
- --build-headless
- --disable-opengl
- )
- fi
- if use amd64 && ! has_multilib_profile ; then
- myconf+=( --disable-vmmraw )
- fi
- # not an autoconf script
- doecho ./configure ${myconf[@]}
-}
-
-src_compile() {
- source ./env.sh || die
-
- # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
- MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS}) #'
- MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
- MAKE="kmk" emake \
- VBOX_BUILD_PUBLISHER=_Gentoo \
- TOOL_GXX3_CC="$(tc-getCC)" TOOL_GXX3_CXX="$(tc-getCXX)" \
- TOOL_GXX3_LD="$(tc-getCXX)" VBOX_GCC_OPT="${CXXFLAGS}" \
- TOOL_YASM_AS=yasm KBUILD_VERBOSE=2 \
- VBOX_WITH_VBOXIMGMOUNT=1 \
- all
-}
-
-src_install() {
- cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
-
- local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
-
- vbox_inst() {
- local binary="${1}"
- local perms="${2:-0750}"
- local path="${3:-${vbox_inst_path}}"
-
- [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
- [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
-
- insinto ${path}
- doins ${binary}
- fowners root:vboxusers ${path}/${binary}
- fperms ${perms} ${path}/${binary}
- }
-
- # Create configuration files
- insinto /etc/vbox
- newins "${FILESDIR}/${PN}-4-config" vbox.cfg
-
- # Set the correct libdir
- sed \
- -e "s@MY_LIBDIR@$(get_libdir)@" \
- -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
-
- # Install the wrapper script
- exeinto ${vbox_inst_path}
- newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
- fowners root:vboxusers ${vbox_inst_path}/VBox
- fperms 0750 ${vbox_inst_path}/VBox
-
- # Install binaries and libraries
- insinto ${vbox_inst_path}
- doins -r components
-
- for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} vboximg-mount *so *r0 iPxeBaseBin ; do
- vbox_inst ${each}
- done
-
- # These binaries need to be suid root.
- for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
- vbox_inst ${each} 4750
- done
-
- # Install EFI Firmware files (bug #320757)
- for each in VBoxEFI{32,64}.fd ; do
- vbox_inst ${each} 0644
- done
-
- # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
- # VBoxXPCOMIPCD (bug #524202)
- for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- # Symlink binaries to the shipped wrapper
- for each in vbox{autostart,balloonctrl,bugreport,headless,manage} VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
- dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
- dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
-
- if use pam ; then
- # VRDPAuth only works with this (bug #351949)
- dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
- fi
-
- # set an env-variable for 3rd party tools
- echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
- doenvd "${T}/90virtualbox"
-
- if ! use headless ; then
- vbox_inst rdesktop-vrdp
- vbox_inst VBoxSDL 4750
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
-
- for each in vboxsdl VBoxSDL ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- if use qt5 ; then
- vbox_inst VirtualBox
- vbox_inst VirtualBoxVM 4750
- for each in VirtualBox{,VM} ; do
- pax-mark -m "${ED}"${vbox_inst_path}/${each}
- done
-
- if use opengl ; then
- vbox_inst VBoxTestOGL
- pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
- fi
-
- for each in virtualbox{,vm} VirtualBox{,VM} ; do
- dosym ${vbox_inst_path}/VBox /usr/bin/${each}
- done
-
- insinto /usr/share/${PN}
- doins -r nls
- doins -r UnattendedTemplates
-
- domenu ${PN}.desktop
- fi
-
- pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
- for size in 16 32 48 64 128 ; do
- newicon -s ${size} ${PN}-${size}px.png ${PN}.png
- done
- newicon ${PN}-48px.png ${PN}.png
- doicon -s scalable ${PN}.svg
- popd &>/dev/null || die
- pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
- for size in 16 24 32 48 64 72 96 128 256 512 ; do
- for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
- icofile="${PN}-${ico}-${size}px.png"
- if [[ -f "${icofile}" ]] ; then
- newicon -s ${size} ${icofile} ${PN}-${ico}.png
- fi
- done
- done
- popd &>/dev/null || die
- fi
-
- if use lvm ; then
- vbox_inst VBoxVolInfo 4750
- dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
- fi
-
- if use sdk ; then
- insinto ${vbox_inst_path}
- doins -r sdk
-
- if use java ; then
- java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
- java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
- fi
- fi
-
- if use udev ; then
- # New way of handling USB device nodes for VBox (bug #356215)
- local udevdir="$(get_udevdir)"
- insinto ${udevdir}
- doins VBoxCreateUSBNode.sh
- fowners root:vboxusers ${udevdir}/VBoxCreateUSBNode.sh
- fperms 0750 ${udevdir}/VBoxCreateUSBNode.sh
- insinto ${udevdir}/rules.d
- sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/10-virtualbox.rules \
- > "${T}"/10-virtualbox.rules || die
- doins "${T}"/10-virtualbox.rules
- fi
-
- if use vboxwebsrv ; then
- vbox_inst vboxwebsrv
- dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
- newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
- newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
- fi
-
- # Remove dead symlinks (bug #715338)
- find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
-
- # Fix version string in extensions or else they don't get accepted
- # by the virtualbox host process (see bug #438930)
- find ExtensionPacks -type f -name "ExtPack.xml" -print0 \
- | xargs --no-run-if-empty --null sed -i '/Version/s@_Gentoo@@' \
- || die
-
- local extensions_dir="${vbox_inst_path}/ExtensionPacks"
-
- if use vnc ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/VNC
- fi
-
- if use dtrace ; then
- insinto ${extensions_dir}
- doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
- fi
-
- if use doc ; then
- dodoc UserManual.pdf
- fi
-
- newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
-}
-
-pkg_preinst() {
- xdg_pkg_preinst
-}
-
-pkg_postinst() {
- xdg_pkg_postinst
-
- if use udev ; then
- udevadm control --reload-rules \
- && udevadm trigger --subsystem-match=usb
- fi
-
- tmpfiles_process /usr/lib/tmpfiles.d/virtualbox-vboxusb.conf
-
- if ! use headless && use qt5 ; then
- elog "To launch VirtualBox just type: \"virtualbox\"."
- fi
- elog "You must be in the vboxusers group to use VirtualBox."
- elog ""
- elog "The latest user manual is available for download at:"
- elog "http://download.virtualbox.org/virtualbox/${DIR_PV:-${PV}}/UserManual.pdf"
- elog ""
- elog "For advanced networking setups you should emerge:"
- elog "net-misc/bridge-utils and sys-apps/usermode-utilities"
- elog ""
- elog "Starting with version 4.0.0, ${PN} has USB-1 support."
- elog "For USB-2 support, PXE-boot ability and VRDP support please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- elog "package."
- elog "Starting with version 5.0.0, ${PN} no longer has the \"additions\" and"
- elog "the \"extension\" USE flag. For installation of the guest additions ISO"
- elog "image, please emerge"
- elog " app-emulation/virtualbox-additions"
- elog "and for the USB2, USB3, VRDP and PXE boot ROM modules, please emerge"
- elog " app-emulation/virtualbox-extpack-oracle"
- if ! use udev ; then
- elog ""
- elog "WARNING!"
- elog "Without USE=udev, USB devices will likely not work in ${PN}."
- elif [[ -e "${ROOT}/etc/udev/rules.d/10-virtualbox.rules" ]] ; then
- elog ""
- elog "Please remove \"${ROOT}/etc/udev/rules.d/10-virtualbox.rules\""
- elog "or else USB in ${PN} won't work."
- fi
-}
-
-pkg_postrm() {
- xdg_pkg_postrm
-}
diff --git a/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild b/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild
new file mode 100644
index 000000000000..73aee19fe61f
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-6.1.48-r2.ebuild
@@ -0,0 +1,677 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2 dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ ~app-emulation/virtualbox-modules-${PV}
+ >=dev-libs/libxslt-1.1.19
+ net-misc/curl
+ dev-libs/libxml2
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ sys-libs/zlib:=
+ !headless? (
+ sdl? ( media-libs/libsdl:0[X,video] )
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ opengl? (
+ media-libs/libglvnd[X]
+ virtual/glu
+ )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ opengl? ( dev-qt/qtopengl:5 )
+ x11-libs/libXinerama
+ )
+ )
+ dev-libs/openssl:0=
+ virtual/libcrypt:=
+ lvm? ( sys-fs/lvm2 )
+ opus? ( media-libs/opus )
+ udev? ( >=virtual/udev-171 )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ !headless? (
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ opengl? ( virtual/opengl )
+ )
+ java? ( virtual/jdk:1.8 )
+ pam? ( sys-libs/pam )
+ pax-kernel? ( sys-apps/elfix )
+ pulseaudio? ( media-libs/libpulse )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-build/kbuild-0.1.9998.3127
+ <=dev-build/kbuild-0.1.9998.3500
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ )
+ java? ( virtual/jdk:1.8 )
+ qt5? ( dev-qt/linguist-tools:5 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ java? ( virtual/jre:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+ # This patch is needed to avoid automagic detection based on a hardcoded
+ # list of Pythons in configure. It's necessary but not sufficient
+ # (see the rest of the ebuild's logic for the remainder) to handle
+ # proper Python selection.
+ "${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+ # 865361
+ "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+ # 906309
+ "${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch
+ # 922445
+ "${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
+
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-6.1.36/patches
+)
+
+pkg_pretend() {
+ if ! use headless && ! use qt5 ; then
+ einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
+ elif use headless && use qt5 ; then
+ einfo "You selected USE=\"headless qt5\", defaulting to"
+ einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
+ fi
+
+ if ! use opengl ; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python ; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie ; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Replace pointless GCC version check with something more sensible.
+ # This is needed for the qt5 version check.
+ sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
+ -i configure || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch ; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam ; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ fi
+
+ # add correct java path
+ if use java ; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+}
+
+src_configure() {
+ tc-ld-disable-gold # bug #488176
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-dbus
+ --disable-kmods
+
+ $(usev !alsa --disable-alsa)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !opus --disable-libopus)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vnc --enable-vnc)
+ )
+
+ if ! use headless ; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !qt5 --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ --disable-opengl
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile ; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python ; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile ; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \
+ vboximg-mount *so *r0 iPxeBaseBin ; do
+ vbox_inst ${each}
+ done
+
+ # These binaries need to be suid root.
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 4750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+
+ if use pam ; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if ! use headless ; then
+ vbox_inst rdesktop-vrdp
+ if use sdl ; then
+ vbox_inst VBoxSDL 4750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use qt5 ; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 4750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl ; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ domenu ${PN}.desktop
+ fi
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+ done
+ newicon ${PN}-48px.png ${PN}.png
+ doicon -s scalable ${PN}.svg
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]] ; then
+ newicon -s ${size} ${icofile} ${PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm ; then
+ vbox_inst VBoxVolInfo 4750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk ; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java ; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev ; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv ; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc ; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace ; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc ; then
+ dodoc UserManual.pdf
+ fi
+
+ if use python ; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/./_}"
+
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
+ if [[ ! -x "${python_path_ext}" ]] ; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+ fi
+
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev ; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if ! use headless && use qt5 ; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev ; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
new file mode 100644
index 000000000000..61d748604580
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-6.1.50-r2.ebuild
@@ -0,0 +1,681 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-6.1.36.tar.bz2"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2 dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa debug doc dtrace headless java lvm +opus pam pax-kernel pch pulseaudio +opengl python +qt5 +sdk +sdl +udev vboxwebsrv vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ ~app-emulation/virtualbox-modules-${PV}
+ >=dev-libs/libxslt-1.1.19
+ net-misc/curl
+ dev-libs/libxml2
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ sys-libs/zlib:=
+ !headless? (
+ sdl? ( media-libs/libsdl:0[X,video] )
+ x11-base/xorg-proto
+ x11-libs/libX11
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXmu
+ x11-libs/libXt
+ opengl? (
+ media-libs/libglvnd[X]
+ virtual/glu
+ )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ opengl? ( dev-qt/qtopengl:5 )
+ x11-libs/libXinerama
+ )
+ )
+ dev-libs/openssl:0=
+ virtual/libcrypt:=
+ lvm? ( sys-fs/lvm2 )
+ opus? ( media-libs/opus )
+ udev? ( >=virtual/udev-171 )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-)] )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ !headless? (
+ x11-libs/libXinerama
+ x11-libs/libXrandr
+ opengl? ( virtual/opengl )
+ )
+ java? ( virtual/jdk:1.8 )
+ pam? ( sys-libs/pam )
+ pax-kernel? ( sys-apps/elfix )
+ pulseaudio? ( media-libs/libpulse )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-build/kbuild-0.1.9998.3127
+ <=dev-build/kbuild-0.1.9998.3500
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ )
+ java? ( virtual/jdk:1.8 )
+ qt5? ( dev-qt/linguist-tools:5 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ java? ( virtual/jre:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.1.26-configure-include-qt5-path.patch # bug #805365
+
+ # This patch is needed to avoid automagic detection based on a hardcoded
+ # list of Pythons in configure. It's necessary but not sufficient
+ # (see the rest of the ebuild's logic for the remainder) to handle
+ # proper Python selection.
+ "${FILESDIR}"/${PN}-6.1.34-r3-python.patch
+
+ # 865361
+ "${FILESDIR}"/${PN}-6.1.36-fcf-protection.patch
+
+ # 906309
+ "${FILESDIR}"/${PN}-6.1.44-fix-libxml2.patch
+ # 922445
+ "${FILESDIR}"/${PN}-7.0.14-libxml2-2.12.patch
+
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-6.1.36/patches
+)
+
+pkg_pretend() {
+ if ! use headless && ! use qt5 ; then
+ einfo "No USE=\"qt5\" selected, this build will not include any Qt frontend."
+ elif use headless && use qt5 ; then
+ einfo "You selected USE=\"headless qt5\", defaulting to"
+ einfo "USE=\"headless\", this build will not include any X11/Qt frontend."
+ fi
+
+ if ! use opengl ; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python ; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie ; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm), see bug #232775
+ rm -r kBuild/bin tools || die
+
+ # Replace pointless GCC version check with something more sensible.
+ # This is needed for the qt5 version check.
+ sed -e 's@^check_gcc$@cc_maj="$(${CC} -dumpversion | cut -d. -f1)" ; cc_min="$(${CC} -dumpversion | cut -d. -f2)"@' \
+ -i configure || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch ; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam ; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ fi
+
+ # add correct java path
+ if use java ; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ # 890561
+ echo -e "\nVBOX_GTAR=gtar" >> LocalConfig.kmk || die
+}
+
+src_configure() {
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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)"
+
+ local myconf=(
+ --with-gcc="$(tc-getCC)"
+ --with-g++="$(tc-getCXX)"
+
+ --disable-dbus
+ --disable-kmods
+
+ $(usev !alsa --disable-alsa)
+ $(usev debug --build-debug)
+ $(usev !doc --disable-docs)
+ $(usev !java --disable-java)
+ $(usev !lvm --disable-devmapper)
+ $(usev !opus --disable-libopus)
+ $(usev !pulseaudio --disable-pulse)
+ $(usev !python --disable-python)
+ $(usev vboxwebsrv --enable-webservice)
+ $(usev vnc --enable-vnc)
+ )
+
+ if ! use headless ; then
+ myconf+=(
+ $(usev !opengl --disable-opengl)
+ $(usev !qt5 --disable-qt)
+ $(usev !sdl --disable-sdl)
+ )
+ else
+ myconf+=(
+ --build-headless
+ --disable-opengl
+ )
+ fi
+
+ if use amd64 && ! has_multilib_profile ; then
+ myconf+=( --disable-vmmraw )
+ fi
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ # not an autoconf script
+ edo ./configure "${myconf[@]}"
+
+ # Force usage of chosen Python implementation
+ # bug #856121, bug #785835
+ sed -i \
+ -e '/VBOX_WITH_PYTHON.*=/d' \
+ -e '/VBOX_PATH_PYTHON_INC.*=/d' \
+ -e '/VBOX_LIB_PYTHON.*=/d' \
+ AutoConfig.kmk || die
+
+ cat >> AutoConfig.kmk <<-EOF || die
+ VBOX_WITH_PYTHON=$(usev python 1)
+ VBOX_PATH_PYTHON_INC=$(python_get_includedir)
+ VBOX_LIB_PYTHON=$(python_get_library_path)
+ EOF
+
+ if use python ; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/.}"
+
+ # Stub out the script which defines what the Makefile ends up
+ # building for. gen_python_deps.py gets called by the Makefile
+ # with some args and it spits out a bunch of paths for a hardcoded
+ # list of Pythons. We just override it with what we're actually using.
+ # This minimises the amount of patching we have to do for new Pythons.
+ cat > src/libs/xpcom18a4/python/gen_python_deps.py <<-EOF || die
+ print("VBOX_PYTHON${mangled_python}_INC=$(python_get_includedir)")
+ print("VBOX_PYTHON${mangled_python}_LIB=$(python_get_library_path)")
+ print("VBOX_PYTHONDEF_INC=$(python_get_includedir)")
+ print("VBOX_PYTHONDEF_LIB=$(python_get_library_path)")
+ EOF
+
+ chmod +x src/libs/xpcom18a4/python/gen_python_deps.py || die
+ fi
+}
+
+src_compile() {
+ source ./env.sh || die
+
+ # Force kBuild to respect C[XX]FLAGS and MAKEOPTS (bug #178529)
+ MAKEJOBS=$(grep -Eo '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKELOAD=$(grep -Eo '(\-l|\-\-load-average)(=?|[[:space:]]*)[[:digit:]]+' <<< ${MAKEOPTS})
+ MAKEOPTS="${MAKEJOBS} ${MAKELOAD}"
+
+ local myemakeargs=(
+ VBOX_BUILD_PUBLISHER=_Gentoo
+ VBOX_WITH_VBOXIMGMOUNT=1
+
+ KBUILD_VERBOSE=2
+
+ AS="$(tc-getCC)"
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+
+ TOOL_GCC3_CC="$(tc-getCC)"
+ TOOL_GCC3_LD="$(tc-getCC)"
+ TOOL_GCC3_AS="$(tc-getCC)"
+ TOOL_GCC3_AR="$(tc-getAR)"
+ TOOL_GCC3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX3_CC="$(tc-getCC)"
+ TOOL_GXX3_CXX="$(tc-getCXX)"
+ TOOL_GXX3_LD="$(tc-getCXX)"
+ TOOL_GXX3_AS="$(tc-getCXX)"
+ TOOL_GXX3_AR="$(tc-getAR)"
+ TOOL_GXX3_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GCC3_CFLAGS="${CFLAGS}"
+ TOOL_GCC3_CXXFLAGS="${CXXFLAGS}"
+ VBOX_GCC_OPT="${CXXFLAGS}"
+ VBOX_NM="$(tc-getNM)"
+
+ TOOL_YASM_AS=yasm
+ )
+
+ if use amd64 && has_multilib_profile ; then
+ myemakeargs+=(
+ CC32="$(tc-getCC) -m32"
+ CXX32="$(tc-getCXX) -m32"
+
+ TOOL_GCC32_CC="$(tc-getCC) -m32"
+ TOOL_GCC32_CXX="$(tc-getCXX) -m32"
+ TOOL_GCC32_LD="$(tc-getCC) -m32"
+ TOOL_GCC32_AS="$(tc-getCC) -m32"
+ TOOL_GCC32_AR="$(tc-getAR)"
+ TOOL_GCC32_OBJCOPY="$(tc-getOBJCOPY)"
+
+ TOOL_GXX32_CC="$(tc-getCC) -m32"
+ TOOL_GXX32_CXX="$(tc-getCXX) -m32"
+ TOOL_GXX32_LD="$(tc-getCXX) -m32"
+ TOOL_GXX32_AS="$(tc-getCXX) -m32"
+ TOOL_GXX32_AR="$(tc-getAR)"
+ TOOL_GXX32_OBJCOPY="$(tc-getOBJCOPY)"
+ )
+ fi
+
+ MAKE="kmk" emake "${myemakeargs[@]}" all
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,Tunctl,VMMPreload,XPCOMIPCD} \
+ vboximg-mount *so *r0 iPxeBaseBin ; do
+ vbox_inst ${each}
+ done
+
+ # These binaries need to be suid root.
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 4750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/VBoxTunctl /usr/bin/VBoxTunctl
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+
+ if use pam ; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo -n "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if ! use headless ; then
+ vbox_inst rdesktop-vrdp
+ if use sdl ; then
+ vbox_inst VBoxSDL 4750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use qt5 ; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 4750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl ; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ domenu ${PN}.desktop
+ fi
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+ done
+ newicon ${PN}-48px.png ${PN}.png
+ doicon -s scalable ${PN}.svg
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]] ; then
+ newicon -s ${size} ${icofile} ${PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm ; then
+ vbox_inst VBoxVolInfo 4750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk ; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java ; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev ; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv ; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc ; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace ; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc ; then
+ dodoc UserManual.pdf
+ fi
+
+ if use python ; then
+ local mangled_python="${EPYTHON#python}"
+ mangled_python="${mangled_python/./_}"
+
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython${mangled_python}.so"
+ if [[ ! -x "${python_path_ext}" ]] ; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+ fi
+
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev ; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if ! use headless && use qt5 ; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev ; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
new file mode 100644
index 000000000000..a45c4f947cb0
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.12-r2.ebuild
@@ -0,0 +1,739 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="
+ https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ ~app-emulation/virtualbox-modules-${PV}
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-7.0.14/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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
+}
+
+src_install() {
+ cd "${S}"/out/linux.${ARCH}/$(usex debug debug release)/bin || die
+
+ local vbox_inst_path="/usr/$(get_libdir)/${PN}" each size ico icofile
+
+ vbox_inst() {
+ local binary="${1}"
+ local perms="${2:-0750}"
+ local path="${3:-${vbox_inst_path}}"
+
+ [[ -n "${binary}" ]] || die "vbox_inst: No binary given!"
+ [[ ${perms} =~ ^[[:digit:]]+{4}$ ]] || die "vbox_inst: perms must consist of four digits."
+
+ insinto ${path}
+ doins ${binary}
+ fowners root:vboxusers ${path}/${binary}
+ fperms ${perms} ${path}/${binary}
+ }
+
+ # Create configuration files
+ insinto /etc/vbox
+ newins "${FILESDIR}/${PN}-4-config" vbox.cfg
+
+ # Set the correct libdir
+ sed \
+ -e "s@MY_LIBDIR@$(get_libdir)@" \
+ -i "${ED}"/etc/vbox/vbox.cfg || die "vbox.cfg sed failed"
+
+ # Install the wrapper script
+ exeinto ${vbox_inst_path}
+ newexe "${FILESDIR}/${PN}-ose-6-wrapper" "VBox"
+ fowners root:vboxusers ${vbox_inst_path}/VBox
+ fperms 0750 ${vbox_inst_path}/VBox
+
+ # Install binaries and libraries
+ insinto ${vbox_inst_path}
+ doins -r components
+
+ for each in VBox{Autostart,BalloonCtrl,BugReport,CpuReport,ExtPackHelperApp,Manage,SVC,VMMPreload,XPCOMIPCD} \
+ vboximg-mount vbox-img *so *r0; do
+ vbox_inst ${each}
+ done
+
+ # These binaries need to be suid root.
+ for each in VBox{Headless,Net{AdpCtl,DHCP,NAT}} ; do
+ vbox_inst ${each} 4750
+ done
+
+ # Install EFI Firmware files (bug #320757)
+ for each in VBoxEFI{32,64}.fd ; do
+ vbox_inst ${each} 0644
+ done
+
+ # VBoxSVC and VBoxManage need to be pax-marked (bug #403453)
+ # VBoxXPCOMIPCD (bug #524202)
+ for each in VBox{Headless,Manage,SVC,XPCOMIPCD} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ # Symlink binaries to the shipped wrapper
+ for each in vbox{autostart,balloonctrl,bugreport,headless,manage} \
+ VBox{Autostart,BalloonCtrl,BugReport,Headless,Manage,VRDP} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ dosym ${vbox_inst_path}/vboximg-mount /usr/bin/vboximg-mount
+ dosym ${vbox_inst_path}/vbox-img /usr/bin/vbox-img
+
+ if use pam; then
+ # VRDPAuth only works with this (bug #351949)
+ dosym VBoxAuth.so ${vbox_inst_path}/VRDPAuth.so
+ fi
+
+ # set an env-variable for 3rd party tools
+ echo "VBOX_APP_HOME=${vbox_inst_path}" > "${T}/90virtualbox"
+ # environment variables used during SDK binding installation
+ echo "VBOX_SDK_PATH=${vbox_inst_path}/sdk" >> "${T}/90virtualbox"
+ echo "VBOX_INSTALL_PATH=${vbox_inst_path}" >> "${T}/90virtualbox"
+ doenvd "${T}/90virtualbox"
+
+ if use sdl; then
+ vbox_inst VBoxSDL 4750
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxSDL
+
+ for each in vboxsdl VBoxSDL ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+ fi
+
+ if use gui; then
+ vbox_inst VirtualBox
+ vbox_inst VirtualBoxVM 4750
+ for each in VirtualBox{,VM} ; do
+ pax-mark -m "${ED}"${vbox_inst_path}/${each}
+ done
+
+ if use opengl; then
+ vbox_inst VBoxTestOGL
+ pax-mark -m "${ED}"${vbox_inst_path}/VBoxTestOGL
+ fi
+
+ for each in virtualbox{,vm} VirtualBox{,VM} ; do
+ dosym ${vbox_inst_path}/VBox /usr/bin/${each}
+ done
+
+ insinto /usr/share/${PN}
+ doins -r nls
+ doins -r UnattendedTemplates
+
+ domenu ${PN}.desktop
+
+ pushd "${S}"/src/VBox/Artwork/OSE &>/dev/null || die
+ for size in 16 32 48 64 128 ; do
+ newicon -s ${size} ${PN}-${size}px.png ${PN}.png
+ done
+ newicon ${PN}-48px.png ${PN}.png
+ doicon -s scalable ${PN}.svg
+ popd &>/dev/null || die
+ pushd "${S}"/src/VBox/Artwork/other &>/dev/null || die
+ for size in 16 24 32 48 64 72 96 128 256 512 ; do
+ for ico in hdd ova ovf vbox{,-extpack} vdi vdh vmdk ; do
+ icofile="${PN}-${ico}-${size}px.png"
+ if [[ -f "${icofile}" ]]; then
+ newicon -s ${size} ${icofile} ${PN}-${ico}.png
+ fi
+ done
+ done
+ popd &>/dev/null || die
+ fi
+
+ if use lvm; then
+ vbox_inst VBoxVolInfo 4750
+ dosym ${vbox_inst_path}/VBoxVolInfo /usr/bin/VBoxVolInfo
+ fi
+
+ if use sdk; then
+ insinto ${vbox_inst_path}
+ doins -r sdk
+
+ if use java; then
+ java-pkg_regjar "${ED}/${vbox_inst_path}/sdk/bindings/xpcom/java/vboxjxpcom.jar"
+ java-pkg_regso "${ED}/${vbox_inst_path}/libvboxjxpcom.so"
+ fi
+ fi
+
+ if use udev; then
+ local udevdir="$(get_udevdir)"
+ local udev_file="VBoxCreateUSBNode.sh"
+ local rules_file="10-virtualbox.rules"
+
+ insinto ${udevdir}
+ doins ${udev_file}
+ fowners root:vboxusers ${udevdir}/${udev_file}
+ fperms 0750 ${udevdir}/${udev_file}
+
+ insinto ${udevdir}/rules.d
+ sed "s@%UDEVDIR%@${udevdir}@" "${FILESDIR}"/${rules_file} \
+ > "${T}"/${rules_file} || die
+ doins "${T}"/${rules_file}
+ fi
+
+ if use vboxwebsrv; then
+ vbox_inst vboxwebsrv
+ dosym ${vbox_inst_path}/VBox /usr/bin/vboxwebsrv
+ newinitd "${FILESDIR}"/vboxwebsrv-initd vboxwebsrv
+ newconfd "${FILESDIR}"/vboxwebsrv-confd vboxwebsrv
+ fi
+
+ # Remove dead symlinks (bug #715338)
+ find "${ED}"/usr/$(get_libdir)/${PN} -xtype l -delete || die
+
+ # Fix version string in extensions or else they don't get accepted
+ # by the virtualbox host process (see bug #438930)
+ find ExtensionPacks -type f -name "ExtPack.xml" -exec sed -i '/Version/s@_Gentoo@@' {} \+ || die
+
+ local extensions_dir="${vbox_inst_path}/ExtensionPacks"
+
+ if use vnc; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/VNC
+ fi
+
+ if use dtrace; then
+ insinto ${extensions_dir}
+ doins -r ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack
+ fi
+
+ if use doc; then
+ dodoc UserManual.pdf UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}
+ elif use gui; then
+ dodoc "${WORKDIR}"/${PN}-help-${PV}/UserManual.q{ch,hc}
+ docompress -x /usr/share/doc/${PF}
+ fi
+
+ if use python; then
+ local python_path_ext="${ED}/usr/$(get_libdir)/virtualbox/VBoxPython3.so"
+ if [[ ! -x "${python_path_ext}" ]]; then
+ eerror "Couldn't find ${python_path_ext}! Bindings were requested with USE=python"
+ eerror "but none were installed. This may happen if support for a Python target"
+ eerror "(listed in PYTHON_COMPAT in the ebuild) is incomplete within the Makefiles."
+ die "Incomplete installation of Python bindings! File a bug with Gentoo!"
+ fi
+
+ # 378871
+ local installer_dir="${ED}/usr/$(get_libdir)/virtualbox/sdk/installer"
+ pushd "${installer_dir}" &> /dev/null || die
+ sed -e "s;%VBOX_INSTALL_PATH%;${vbox_inst_path};" \
+ -e "s;%VBOX_SDK_PATH%;${vbox_inst_path}/sdk;" \
+ -i vboxapi/__init__.py || die
+ # insert shebang, the files come without one
+ find vboxapi -name \*.py -exec sed -e "1 i\#! ${PYTHON}" -i {} \+ || die
+ python_domodule vboxapi
+ popd &> /dev/null || die
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
new file mode 100644
index 000000000000..6451ab1c7097
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.14-r2.ebuild
@@ -0,0 +1,740 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="
+ https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.14.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ ~app-emulation/virtualbox-modules-${PV}
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-7.0.14/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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
+ python_doscript vboxshell.py
+
+ # do not install the installer
+ rm -r "${installer_dir}" || die
+ fi
+
+ newtmpfiles "${FILESDIR}"/${PN}-vboxusb_tmpfilesd ${PN}-vboxusb.conf
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ if use udev; then
+ udev_reload
+ udevadm trigger --subsystem-match=usb
+ fi
+
+ tmpfiles_process virtualbox-vboxusb.conf
+
+ if use gui; then
+ elog "To launch VirtualBox just type: \"virtualbox\"."
+ fi
+
+ elog "You must be in the vboxusers group to use VirtualBox."
+ elog ""
+ elog "The latest user manual is available for download at:"
+ elog "https://download.virtualbox.org/virtualbox/${PV}/UserManual.pdf"
+ elog ""
+
+ optfeature "Advanced networking setups" net-misc/bridge-utils sys-apps/usermode-utilities
+ optfeature "USB2, USB3, PXE boot, and VRDP support" app-emulation/virtualbox-extpack-oracle
+ optfeature "Guest additions ISO" app-emulation/virtualbox-additions
+
+ if ! use udev; then
+ ewarn "Without USE=udev, USB devices will likely not work in ${PN}."
+ fi
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+
+ use udev && udev_reload
+}
diff --git a/app-emulation/virtualbox/virtualbox-7.0.16.ebuild b/app-emulation/virtualbox/virtualbox-7.0.16.ebuild
new file mode 100644
index 000000000000..eb51ad77cc44
--- /dev/null
+++ b/app-emulation/virtualbox/virtualbox-7.0.16.ebuild
@@ -0,0 +1,740 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# To add a new Python here:
+# 1. Patch src/libs/xpcom18a4/python/Makefile.kmk (copy the previous impl's logic)
+# Do NOT skip this part. It'll end up silently not-building the Python extension
+# or otherwise misbehaving if you do.
+#
+# 2. Then update PYTHON_COMPAT & set PYTHON_SINGLE_TARGET for testing w/ USE=python.
+#
+# May need to look at other distros (e.g. Arch Linux) to find patches for newer
+# Python versions as upstream tends to lag. Upstream may have patches on their
+# trunk branch but not release branch.
+#
+# See bug #785835, bug #856121.
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit desktop edo flag-o-matic java-pkg-opt-2 linux-info multilib optfeature pax-utils \
+ python-single-r1 tmpfiles toolchain-funcs udev xdg
+
+MY_PN="VirtualBox"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Family of powerful x86 virtualization products for enterprise and home use"
+HOMEPAGE="https://www.virtualbox.org/"
+SRC_URI="
+ https://download.virtualbox.org/virtualbox/${PV}/${MY_P}.tar.bz2
+ https://gitweb.gentoo.org/proj/virtualbox-patches.git/snapshot/virtualbox-patches-7.0.16.tar.bz2
+ gui? ( !doc? ( https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${PN}-help-${PV}.tar.xz ) )
+"
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="GPL-2+ GPL-3 LGPL-2.1 MIT dtrace? ( CDDL )"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="alsa dbus debug doc dtrace +gui java lvm nls pam pch pulseaudio +opengl python +sdk +sdl +udev vboxwebsrv vde vnc"
+
+unset WATCOM #856769
+
+COMMON_DEPEND="
+ ${PYTHON_DEPS}
+ acct-group/vboxusers
+ ~app-emulation/virtualbox-modules-${PV}
+ dev-libs/libtpms
+ dev-libs/libxml2
+ dev-libs/openssl:0=
+ media-libs/libpng:0=
+ media-libs/libvpx:0=
+ net-misc/curl
+ sys-libs/zlib
+ dbus? ( sys-apps/dbus )
+ gui? (
+ dev-qt/qtcore:5
+ dev-qt/qtdbus:5
+ dev-qt/qtgui:5
+ dev-qt/qthelp:5
+ dev-qt/qtprintsupport:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtx11extras:5
+ dev-qt/qtxml:5
+ x11-libs/libX11
+ x11-libs/libXt
+ opengl? ( dev-qt/qtopengl:5 )
+ )
+ lvm? ( sys-fs/lvm2 )
+ opengl? (
+ media-libs/libglvnd[X]
+ media-libs/vulkan-loader
+ x11-libs/libX11
+ x11-libs/libXt
+ )
+ pam? ( sys-libs/pam )
+ sdl? (
+ media-libs/libsdl2[X,video]
+ x11-libs/libX11
+ x11-libs/libXcursor
+ x11-libs/libXt
+ )
+ vboxwebsrv? ( net-libs/gsoap[-gnutls(-),debug?] )
+ vde? ( net-misc/vde )
+ vnc? ( >=net-libs/libvncserver-0.9.9 )
+"
+# We're stuck on JDK (and JRE, I guess?) 1.8 because of need for wsimport
+# with USE="vboxwebsrv java". Note that we have to put things in DEPEND,
+# not (only, anyway) BDEPEND, as the eclass magic to set the environment variables
+# based on *DEPEND doesn't work for BDEPEND at least right now.
+#
+# There's a comment in Config.kmk about it
+# ("With Java 11 wsimport was removed, usually part of a separate install now.")
+# but it needs more investigation.
+#
+# See bug #878299 to track this issue.
+DEPEND="
+ ${COMMON_DEPEND}
+ >=dev-libs/libxslt-1.1.19
+ virtual/libcrypt:=
+ alsa? ( >=media-libs/alsa-lib-1.0.13 )
+ gui? (
+ x11-base/xorg-proto
+ x11-libs/libxcb:=
+ x11-libs/libXcursor
+ x11-libs/libXext
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ )
+ java? ( virtual/jdk:1.8 )
+ opengl? (
+ x11-base/xorg-proto
+ x11-libs/libXcursor
+ x11-libs/libXinerama
+ x11-libs/libXmu
+ x11-libs/libXrandr
+ virtual/glu
+ )
+ sdl? ( x11-libs/libXinerama )
+ pulseaudio? ( media-libs/libpulse )
+ udev? ( >=virtual/udev-171 )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ gui? ( x11-libs/libxcb:= )
+ java? ( virtual/jre:1.8 )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ >=app-arch/tar-1.34-r2
+ >=dev-lang/yasm-0.6.2
+ dev-libs/libIDL
+ dev-util/glslang
+ >=dev-build/kbuild-0.1.9998.3592
+ sys-apps/which
+ sys-devel/bin86
+ sys-libs/libcap
+ sys-power/iasl
+ virtual/pkgconfig
+ doc? (
+ app-text/docbook-sgml-dtd:4.4
+ app-text/docbook-xsl-ns-stylesheets
+ dev-texlive/texlive-basic
+ dev-texlive/texlive-latex
+ dev-texlive/texlive-latexrecommended
+ dev-texlive/texlive-latexextra
+ dev-texlive/texlive-fontsrecommended
+ dev-texlive/texlive-fontsextra
+ dev-qt/qthelp:5
+ )
+ gui? ( dev-qt/linguist-tools:5 )
+ nls? ( dev-qt/linguist-tools:5 )
+ java? ( virtual/jdk:1.8 )
+"
+
+QA_FLAGS_IGNORED="
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_TEXTRELS="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+QA_EXECSTACK="
+ usr/lib64/virtualbox/iPxeBaseBin
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.debug
+"
+
+QA_WX_LOAD="
+ usr/lib64/virtualbox/iPxeBaseBin
+"
+
+QA_PRESTRIPPED="
+ usr/lib64/virtualbox/VMMR0.r0
+ usr/lib64/virtualbox/VBoxDDR0.r0
+ usr/lib64/virtualbox/ExtensionPacks/Oracle_VBoxDTrace_Extension_Pack/linux.amd64/VBoxDTraceR0.r0
+"
+
+REQUIRED_USE="
+ java? ( sdk )
+ python? ( sdk )
+ vboxwebsrv? ( java )
+ ${PYTHON_REQUIRED_USE}
+"
+
+PATCHES=(
+ # Downloaded patchset
+ "${WORKDIR}"/virtualbox-patches-7.0.16/patches
+)
+
+pkg_pretend() {
+ if ! use gui; then
+ einfo "No USE=\"gui\" selected, this build will not include any Qt frontend."
+ fi
+
+ if ! use opengl; then
+ einfo "No USE=\"opengl\" selected, this build will lack"
+ einfo "the OpenGL feature."
+ fi
+ if ! use python; then
+ einfo "You have disabled the \"python\" USE flag. This will only"
+ einfo "disable the python bindings being installed."
+ fi
+ if ! use nls && use gui; then
+ einfo "USE=\"gui\" also selects USE=\"nls\". This build"
+ einfo "will have NLS support."
+ fi
+
+ # 749273
+ local d=${ROOT}
+ for i in usr "$(get_libdir)"; do
+ d="${d}/$i"
+ if [[ "$(stat -L -c "%g %u" "${d}")" != "0 0" ]]; then
+ die "${d} should be owned by root, VirtualBox will not start otherwise"
+ fi
+ done
+}
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+ python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Only add nopie patch when we're on hardened
+ if gcc-specs-pie; then
+ eapply "${FILESDIR}"/050_virtualbox-5.2.8-nopie.patch
+ fi
+
+ # Remove shipped binaries (kBuild, yasm) and tools, see bug #232775
+ rm -r kBuild/bin || die
+ # Remove everything in tools except kBuildUnits
+ find tools -mindepth 1 -maxdepth 1 -name kBuildUnits -prune -o -exec rm -r {} \+ || die
+
+ # Disable things unused or split into separate ebuilds
+ sed -e "s@MY_LIBDIR@$(get_libdir)@" \
+ "${FILESDIR}"/${PN}-5-localconfig > LocalConfig.kmk || die
+
+ if ! use pch; then
+ # bug #753323
+ printf '\n%s\n' "VBOX_WITHOUT_PRECOMPILED_HEADERS=1" \
+ >> LocalConfig.kmk || die
+ fi
+
+ # bug #916002, #488176
+ tc-ld-force-bfd
+
+ # Respect LDFLAGS
+ sed -e "s@_LDFLAGS\.${ARCH}*.*=@& ${LDFLAGS}@g" \
+ -i Config.kmk src/libs/xpcom18a4/Config.kmk || die
+
+ # Do not use hard-coded ld (related to bug #488176)
+ sed -e '/QUIET)ld /s@ld @$(LD) @' \
+ -i src/VBox/Devices/PC/ipxe/Makefile.kmk || die
+
+ # Use PAM only when pam USE flag is enbaled (bug #376531)
+ if ! use pam; then
+ einfo "Disabling PAM removes the possibility to use the VRDP features."
+ sed -i 's@^.*VBOX_WITH_PAM@#VBOX_WITH_PAM@' Config.kmk || die
+ sed -i 's@\(.*/auth/Makefile.kmk.*\)@#\1@' \
+ src/VBox/HostServices/Makefile.kmk || die
+ echo -e "\nIPRT_WITHOUT_PAM=1" >> LocalConfig.kmk || die
+ fi
+
+ # add correct java path
+ if use java; then
+ sed "s@/usr/lib/jvm/java-6-sun@$(java-config -O)@" \
+ -i "${S}"/Config.kmk || die
+ java-pkg-opt-2_src_prepare
+ fi
+
+ #856811 #864274
+ # cannot filter out only one flag, some combinations of these flags produce buggy executables
+ for i in abm avx avx2 bmi bmi2 fma fma4 popcnt; do
+ append-cflags $(test-flags-CC -mno-$i)
+ append-cxxflags $(test-flags-CXX -mno-$i)
+ done
+
+ # bug #908814
+ filter-lto
+
+ # bug #843437
+ cat >> LocalConfig.kmk <<-EOF || die
+ CXXFLAGS=${CXXFLAGS}
+ CFLAGS=${CFLAGS}
+ EOF
+
+ if use sdl; then
+ sed -i 's/sdl-config/sdl2-config/' configure || die
+ echo -e "\nVBOX_WITH_VBOXSDL=1" >> LocalConfig.kmk || die
+ fi
+
+ #443830
+ echo -e "\nVBOX_WITH_VBOX_IMG=1" >> LocalConfig.kmk || die
+
+ if tc-is-clang; then
+ # clang assembler chokes on comments starting with /
+ sed -i -e '/^\//d' src/libs/xpcom18a4/nsprpub/pr/src/md/unix/os_Linux_x86_64.s || die
+
+ # clang does not support this extension
+ eapply "${FILESDIR}"/${PN}-7.0.8-disable-rebuild-iPxeBiosBin.patch
+ fi
+
+ # fix doc generation
+ echo -e "\nVBOX_PATH_DOCBOOK=/usr/share/sgml/docbook/xsl-ns-stylesheets" >> LocalConfig.kmk || die
+ # replace xhtml names with numeric equivalents
+ find doc/manual -name \*.xml -exec sed -i \
+ -e 's/&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
+ 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
new file mode 100644
index 000000000000..d78dcf075d92
--- /dev/null
+++ b/app-emulation/vkd3d-proton/Manifest
@@ -0,0 +1,15 @@
+DIST dxil-spirv-b03d68d6ed30e87a3bcef9a861fa3c6b4429e5cc.tar.gz 915224 BLAKE2B 137f4b187300261d922ecc66542c5b38e6fa825cbb4e9adb43a7ca15ea9b968e24111bcaf9142782a44a6a7abb342a4ccfbd863af3c01287936e47b6162b7139 SHA512 890c0a0e638b9bffc9ce2cee871c60a2a552d691e60ad6ffa087dfae988e559151b7025e025e4346d1389b7d8f39f8b9bf93e43c7427c883662c1d6c86ff9b1a
+DIST spirv-headers-8b246ff75c6615ba4532fe4fde20f1be090c3764.tar.gz 472513 BLAKE2B f1ad7e11c306c62509655eb41d74efc5fb88688780d006c6944844e964b339baa000f70e115c4df2947e882c9ac33186e301b31138c38fe5f997f7af7260f521 SHA512 fe1d9d70b217b194c92dd397bca386ce8452bc5ec3967d64a257b3a531386fe6a6ecb5e9ed8ab5bc5a2707c5378f02f05809d6d197dcfb3f87cd33304c3b1959
+DIST vkd3d-proton-2.10.tar.gz 1839493 BLAKE2B 0dd3716bd986a78d8616fdfbe80833379bc93778a8cd599b8874b4bd620a3d5fa2d7ac342305db6acf3bb6025ac7b4ff138b49a30f34fa86f7af3ebb09903100 SHA512 84e9ebf84ac5294baf6d03e1291d7f3c4a004d6dd9da0450319e785827a635b70377855092d750b6c26492d369018585d7ec3cf46ebefc603751e13578bfe333
+DIST vkd3d-proton-2.11.1.tar.gz 1978301 BLAKE2B ede48d1895d2e8bc7f6e5971e6f7c95cc0403a3dad0dc3bdc6e19ecf6f282cd02c8c81371af8499e40d6ef9c055acabd90c8e65cd8b1360bded223864ccc0502 SHA512 91abd9bb854fe701db6e0d8c0a28e630ca23829676e2f74fa1bcd52801c1afef91456355e30a1c8fe27ee282ddf45dab40f28134be1e07f2cb07557112d3fee6
+DIST vkd3d-proton-2.12.tar.gz 2109289 BLAKE2B 805298efa2f49a82dcc4b989856fb24469a1de9a1d175d5844be3e72187d14f3454ced52bcd65f557ec6776fda00112f4b9849dd48679e10aadf277d82b928ca SHA512 fbd4102fc9917a8e7c28edcaa500c26352a0652a008da453108cd21325ef2c757b5c0842a50e2e5ea6efcacdabe86b2ce570647313d0036967a135b01850fbe8
+DIST vkd3d-proton-2.6.tar.gz 1271948 BLAKE2B 02d2574a66614613748fe3471a6fd5aac2650fdae15a17b17ea2ed028fa53a0579b866e7240036a26108afc343395826474bb99e015b9299c2abec811bb872ab SHA512 6f27d213652e2380a9ba4534ac9ffe4b752b4608fbc2e8acd273fa151ab19ad0b132e3436384d2b8591cd1a59f0b69d342c893dc3a64be85188b5e3274bcf3f1
+DIST vkd3d-proton-dxil-spirv-9044a31d22.tar.gz 876292 BLAKE2B dd55bc2b8125c3ec4639dcb4daa1b17e64824e6abb1e7ca102b2332535a9e5ad5a5af8959cc89cfd11f839ba90ded4614eb22dd5bdbd9b60abd7340d633c1287 SHA512 26a51c9bf7d55e77191d72642d20e98ceee0ffcf359646771cd20de093c670eeff082b80dc868a3e60de0ffb2ec0e0cd1276a39c13238a18282d5cb5a2059602
+DIST vkd3d-proton-dxil-spirv-b537bbb91b.tar.gz 631130 BLAKE2B 99f40c5efde87d0af86542b427e5b0429be68ca69ba0c2b6d10a821811756d8dadff4449f268ae404f8ace09a91b3e8aaa135e534a77c0239e58c1a970a044cc SHA512 3c20090b7a1b53c30fd4967622fc7384e1bcc504c30d8075068b87dad1bd2c6f4a12459bf42e61bf76b9dd454ec17a9d529f74ab0d5583627e966d94bb341dc3
+DIST vkd3d-proton-dxil-spirv-d6ffa30abf.tar.gz 783875 BLAKE2B 971a183c84142a4a00858d85c88f48d0c2dd6c4cc7576811c958c03d7f2e8cacb54cf518fa5f3dc0d2e0da681f3a15ab8e7d35ef7bb6df0e5b429e99ccdc9b75 SHA512 68452e28a88b8437ac81479ff2562322de759aafb1e6ac253f84fd43f1d4eb3c677e54da320e5cfc2f569fe15ca7578c0c4af8dc699f51baf597b4796fdd0167
+DIST vkd3d-proton-spirv-headers-1d31a10040.tar.gz 445679 BLAKE2B 3dac88269df92428fd93ca187eb417ec0156ff0b24200daf85526aaa92c30ba8743102764e20c47d783ed0704fa690c1bf60944ef81bbdd296890dde5fb9fcaa SHA512 2536619cd7854954892dbb5ab5cd97e4e95fe3f5c121c4b2022426ae734fc20c1ebadbae1da7689f5ca18397075c54e4f16ad525b8ee873c4b0ffdc07aaacc03
+DIST vkd3d-proton-spirv-headers-aa331ab0ff.tar.gz 448200 BLAKE2B 435e3ce169f44a00181a664a6cb2f3e45e22b3d4ec033d27fb2b54564b4fcc4274ac170f373daddf9ba0bd421b3d50fc87442c15345dae24ec131f4257b33f30 SHA512 1cd6043974daa4cd71138be629544d10944064af8e5b1a5a64e746922edd0d583050ec3b036ef304dd67a689c65541b5cb375d80f26ab3c9314653169cc5aac8
+DIST vkd3d-proton-spirv-headers-ae217c1780.tar.gz 415130 BLAKE2B 0c6444c4c1cb43b9c69757d7c2257ce2fe1bc6be308341f3189766f120994e4920bc738b737d9eefc299359dab568fb8809782e3663dd589c0e4d13aecb8873a SHA512 02cf1d63b29e48ef0efe489eb32237ba2f9f4bf58a182b00dc96aab18faba94de79283398e9e945cd81130f83fff228c59b04e496716ea9ccc148a5f4465282c
+DIST vkd3d-proton-vulkan-headers-83e1a9ed8c.tar.gz 1299014 BLAKE2B 0b1e635aaa6eebec3525b13698a064e0e5b8a78829a772cbe9e1890148059bf396bc5c830e8d6ee3070a3343775991642565283994c65acfa0d82a91590b7d84 SHA512 ecb2158cad55edb4ba069383668f3b311a2f6aa6777b5b7ed94795d454622426ee34fee52b13c97d2f07b5b2f965815ee61a0203b76a0b0d2c708a4786d06b96
+DIST vkd3d-proton-vulkan-headers-a0c76b4ef7.tar.gz 2072604 BLAKE2B 324fe6cc9b803ba5dfa38a3c97d7573cb138f8e0619c0748a096f1a13eb8b608d5a780cb071f3727b0912005a0ab1bc5fd4f1a335ee74d00b44876dfe422f433 SHA512 6f447fef01946849c925634a7caf793e69f3aec52d8de2fa77fe8f5f7675c831fb54a1852cf3326e3909ce43a6f2970dd60c6976ac5d9459ef7bac62583b7ba9
+DIST vulkan-headers-f030d9dd8ca297b84b10330cee87f72acc3b0aab.tar.gz 2255357 BLAKE2B 07cfa8ccdd26966116e7c35e0d350be94936469f2b9af77c84b8c61495b6ba76813047b5d26bba1fabd44a8f35396b32b6ad32c3b93b0b1a818ce9ed45f93db2 SHA512 6adf81d16d07710322b7c92a0e0436ee33be94d55116e3c460eabb4196a180f8c7b481c19a84a8bbea4e98dda6cf63ff2876f196348921a0c1d9c8c1005cd521
diff --git a/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch b/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch
new file mode 100644
index 000000000000..413852460d54
--- /dev/null
+++ b/app-emulation/vkd3d-proton/files/vkd3d-proton-2.6-wow64-setup.patch
@@ -0,0 +1,14 @@
+Dirty workaround to try syswow64 if paths are the same. This can happen
+with USE=wow64 on wine where wine64 is a symlink to wine.
+
+TODO: dxvk's and vkd3d-proton's setup script should be rewritten and packaged
+separately (shared) as upstream hardly support these (dxvk dropped altogether).
+--- a/setup_vkd3d_proton.sh
++++ b/setup_vkd3d_proton.sh
+@@ -81,2 +81,6 @@
+ win32_sys_path="${win32_sys_path/$'\r'/}"
++ if [ "$win32_sys_path" = "$win64_sys_path" ]; then
++ win32_sys_path=$($wine winepath -u 'C:\windows\syswow64' 2> /dev/null)
++ win32_sys_path="${win32_sys_path/$'\r'/}"
++ fi
+ fi
diff --git a/app-emulation/vkd3d-proton/metadata.xml b/app-emulation/vkd3d-proton/metadata.xml
new file mode 100644
index 000000000000..65a03f88f50d
--- /dev/null
+++ b/app-emulation/vkd3d-proton/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ionen@gentoo.org</email>
+ <name>Ionen Wolkens</name>
+ </maintainer>
+ <use>
+ <flag name="crossdev-mingw">
+ Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than
+ <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up)
+ </flag>
+ <flag name="extras">Install extra tools and demos in /usr/lib/vkd3d-proton</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">HansKristian-Work/vkd3d-proton</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild
new file mode 100644
index 000000000000..a8a7ca34700f
--- /dev/null
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.10.ebuild
@@ -0,0 +1,207 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git"
+ EGIT_SUBMODULES=(
+ # uses hacks / recent features and easily breaks, keep bundled headers
+ # (also cross-compiled and -I/usr/include is troublesome)
+ subprojects/{SPIRV,Vulkan}-Headers
+ subprojects/dxil-spirv
+ subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
+ )
+else
+ HASH_VKD3D=88e4f300cc0b5b6f0880c1233d562cf506b546fb # match tag on bumps
+ HASH_DXIL=d6ffa30abfc0fd3dd569af4a4efc9bc9df918d2a
+ HASH_SPIRV=1d31a100405cf8783ca7a31e31cdd727c9fc54c3
+ HASH_SPIRV_DXIL=aa331ab0ffcb3a67021caa1a0c1c9017712f2f31
+ HASH_VULKAN=a0c76b4ef76e219483755ff61dce6b67ff79f24b
+ SRC_URI="
+ https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz
+ -> ${PN}-dxil-spirv-${HASH_DXIL::10}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV_DXIL::10}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation"
+HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/"
+
+LICENSE="LGPL-2.1+ Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw debug extras +strip"
+
+BDEPEND="
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is enabled, but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
+ fi
+ done
+ tool=-w64-mingw32-widl
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either"
+ eerror "building crossdev mingw64-runtime with USE=tools or installing wine."
+ die "USE=crossdev-mingw is set but neither widl nor ${tool} were found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir subprojects/{{SPIRV,Vulkan}-Headers,dxil-spirv} || die
+ mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} subprojects/SPIRV-Headers || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} subprojects/Vulkan-Headers || die
+
+ # dxil and vkd3d's spirv headers currently mismatch and incompatible
+ rmdir subprojects/dxil-spirv/third_party/spirv-headers || die
+ mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+# ln -s ../../../SPIRV-Headers/include \
+# subprojects/dxil-spirv/third_party/spirv-headers || die
+ fi
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die
+
+ if [[ ${PV} != 9999 ]]; then
+ # without .git, meson sets vkd3d_build as 0x${PV} leading to failure
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die
+ fi
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP WIDL
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ # preferring meson eclass' cross file over upstream's but, unlike
+ # dxvk, we lose static options in the process (from build-win*.txt)
+ append-ldflags -static -static-libgcc -static-libstdc++
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL
+
+ # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if
+ # possible, but eclasses don't handle that so setup machine files
+ local widl=$(tc-getPROG WIDL widl)
+ use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32"
+ printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${ABI: -2}
+ --{cross,native}-file="${T}"/widl.${ABI}.ini
+ $(meson_use {,enable_}extras)
+ $(meson_use debug enable_trace)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ -Denable_tests=false # needs wine/vulkan and is intended for manual use
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_vkd3d_proton.sh
+ einstalldocs
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink"
+ elog
+ elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available"
+ elog "on it, not meant to function independently even if only using d3d12."
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elif [[ ${REPLACING_VERSIONS##* } ]]; then
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then
+ elog
+ elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ fi
+
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then
+ elog
+ elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that"
+ elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh."
+ elog
+ elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's"
+ elog "dxgi.dll is not available on that prefix (even if only using d3d12)."
+ fi
+ fi
+}
diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild
new file mode 100644
index 000000000000..9665ed5de725
--- /dev/null
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.11.1.ebuild
@@ -0,0 +1,201 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git"
+ EGIT_SUBMODULES=(
+ # uses hacks / recent features and easily breaks, keep bundled headers
+ # (also cross-compiled and -I/usr/include is troublesome)
+ khronos/{SPIRV,Vulkan}-Headers
+ subprojects/dxil-spirv
+ subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
+ )
+else
+ HASH_VKD3D=105b5b77c9a34fd336b5c604e3c7a6cc48f39c3a # match tag on bumps
+ HASH_DXIL=9044a31d22afff1d75d07886e5096daf5f1ebed8
+ HASH_SPIRV=1d31a100405cf8783ca7a31e31cdd727c9fc54c3
+ HASH_SPIRV_DXIL=aa331ab0ffcb3a67021caa1a0c1c9017712f2f31
+ HASH_VULKAN=a0c76b4ef76e219483755ff61dce6b67ff79f24b
+ SRC_URI="
+ https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz
+ -> ${PN}-dxil-spirv-${HASH_DXIL::10}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV_DXIL::10}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation"
+HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/"
+
+LICENSE="LGPL-2.1+ Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw debug extras +strip"
+
+BDEPEND="
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is enabled, but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
+ fi
+ done
+ tool=-w64-mingw32-widl
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either"
+ eerror "building crossdev mingw64-runtime with USE=tools or installing wine."
+ die "USE=crossdev-mingw is set but neither widl nor ${tool} were found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir khronos/{SPIRV,Vulkan}-Headers subprojects/dxil-spirv || die
+ mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} khronos/SPIRV-Headers || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} khronos/Vulkan-Headers || die
+
+ # dxil and vkd3d's spirv headers currently mismatch and incompatible
+ rmdir subprojects/dxil-spirv/third_party/spirv-headers || die
+ mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+ fi
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die
+
+ if [[ ${PV} != 9999 ]]; then
+ # without .git, meson sets vkd3d_build as 0x${PV} leading to failure
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die
+ fi
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP WIDL
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL
+
+ # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if
+ # possible, but eclasses don't handle that so setup machine files
+ local widl=$(tc-getPROG WIDL widl)
+ use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32"
+ printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${ABI: -2}
+ --{cross,native}-file="${T}"/widl.${ABI}.ini
+ $(meson_use {,enable_}extras)
+ $(meson_use debug enable_trace)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ -Denable_tests=false # needs wine/vulkan and is intended for manual use
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_vkd3d_proton.sh
+ einstalldocs
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink"
+ elog
+ elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available"
+ elog "on it, not meant to function independently even if only using d3d12."
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elif [[ ${REPLACING_VERSIONS##* } ]]; then
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then
+ elog
+ elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ fi
+
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then
+ elog
+ elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that"
+ elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh."
+ elog
+ elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's"
+ elog "dxgi.dll is not available on that prefix (even if only using d3d12)."
+ fi
+ fi
+}
diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild
new file mode 100644
index 000000000000..b2632b34036a
--- /dev/null
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.12.ebuild
@@ -0,0 +1,207 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git"
+ EGIT_SUBMODULES=(
+ # uses hacks / recent features and easily breaks, keep bundled headers
+ # (also cross-compiled and -I/usr/include is troublesome)
+ khronos/{SPIRV,Vulkan}-Headers
+ subprojects/dxil-spirv
+ subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
+ )
+else
+ HASH_VKD3D=7460c70de0dff08de2f4a78a7ac7c71fd7f0ea6e # match tag on bumps
+ HASH_DXIL=b03d68d6ed30e87a3bcef9a861fa3c6b4429e5cc
+ HASH_SPIRV=8b246ff75c6615ba4532fe4fde20f1be090c3764
+ HASH_SPIRV_DXIL=8b246ff75c6615ba4532fe4fde20f1be090c3764
+ HASH_VULKAN=f030d9dd8ca297b84b10330cee87f72acc3b0aab
+ SRC_URI="
+ https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz
+ -> dxil-spirv-${HASH_DXIL}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> spirv-headers-${HASH_SPIRV}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz
+ -> spirv-headers-${HASH_SPIRV_DXIL}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> vulkan-headers-${HASH_VULKAN}.tar.gz
+ "
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation"
+HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/"
+
+LICENSE="LGPL-2.1+ Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw debug extras +strip"
+
+BDEPEND="
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is enabled, but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
+ fi
+ done
+ tool=-w64-mingw32-widl
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either"
+ eerror "building crossdev mingw64-runtime with USE=tools or installing wine."
+ die "USE=crossdev-mingw is set but neither widl nor ${tool} were found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir khronos/{SPIRV,Vulkan}-Headers subprojects/dxil-spirv || die
+ mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} khronos/SPIRV-Headers || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} khronos/Vulkan-Headers || die
+
+ rmdir subprojects/dxil-spirv/third_party/spirv-headers || die
+ # dxil and vkd3d's spirv headers sometime mismatch and are incompatible
+ if [[ ${HASH_SPIRV} == "${HASH_SPIRV_DXIL}" ]]; then
+ ln -s ../../../khronos/SPIRV-Headers \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+ else
+ mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+ fi
+ fi
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die
+
+ if [[ ${PV} != 9999 ]]; then
+ # without .git, meson sets vkd3d_build as 0x${PV} leading to failure
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die
+ fi
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP WIDL
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL
+
+ # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if
+ # possible, but eclasses don't handle that so setup machine files
+ local widl=$(tc-getPROG WIDL widl)
+ use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32"
+ printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${ABI: -2}
+ --{cross,native}-file="${T}"/widl.${ABI}.ini
+ $(meson_use {,enable_}extras)
+ $(meson_use debug enable_trace)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ -Denable_tests=false # needs wine/vulkan and is intended for manual use
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_vkd3d_proton.sh
+ einstalldocs
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink"
+ elog
+ elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available"
+ elog "on it, not meant to function independently even if only using d3d12."
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elif [[ ${REPLACING_VERSIONS##* } ]]; then
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then
+ elog
+ elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ fi
+
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then
+ elog
+ elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that"
+ elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh."
+ elog
+ elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's"
+ elog "dxgi.dll is not available on that prefix (even if only using d3d12)."
+ fi
+ fi
+}
diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild
new file mode 100644
index 000000000000..9a41d28143b1
--- /dev/null
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-2.6-r1.ebuild
@@ -0,0 +1,186 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# note: version 2.6 should be kept for longer given it's the
+# last version to support <wine-7.1 and <nvidia-drivers-510
+
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git"
+ EGIT_SUBMODULES=(
+ # uses hacks / recent features and easily breaks, keep bundled headers
+ # (also cross-compiled and -I/usr/include is troublesome)
+ subprojects/{SPIRV,Vulkan}-Headers
+ subprojects/dxil-spirv
+ subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
+ )
+else
+ HASH_VKD3D=3e5aab6fb3e18f81a71b339be4cb5cdf55140980 # match tag on bumps
+ HASH_DXIL=b537bbb91bccdbc695cb7e5211d608f8d1c205bd
+ HASH_SPIRV=ae217c17809fadb232ec94b29304b4afcd417bb4
+ HASH_VULKAN=83e1a9ed8ce289cebb1c02c8167d663dc1befb24
+ SRC_URI="
+ https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz
+ -> ${PN}-dxil-spirv-${HASH_DXIL::10}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> ${PN}-spirv-headers-${HASH_SPIRV::10}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> ${PN}-vulkan-headers-${HASH_VULKAN::10}.tar.gz"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation"
+HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/"
+
+LICENSE="LGPL-2.1+ Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw debug extras"
+
+BDEPEND="
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is enabled, but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
+ fi
+ done
+ tool=-w64-mingw32-widl
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either"
+ eerror "building crossdev mingw64-runtime with USE=tools or installing wine."
+ die "USE=crossdev-mingw is set but neither widl nor ${tool} were found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir subprojects/{{SPIRV,Vulkan}-Headers,dxil-spirv} || die
+ mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} subprojects/SPIRV-Headers || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} subprojects/Vulkan-Headers || die
+ ln -s ../../../SPIRV-Headers/include \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+ fi
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die
+
+ if [[ ${PV} != 9999 ]]; then
+ # without .git, meson sets vkd3d_build as 0x${PV} leading to failure
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die
+ fi
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP WIDL
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ # preferring meson eclass' cross file over upstream's but, unlike
+ # dxvk, we lose static options in the process (from build-win*.txt)
+ append-ldflags -static -static-libgcc -static-libstdc++
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL
+
+ # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if
+ # possible, but eclasses don't handle that so setup machine files
+ local widl=$(tc-getPROG WIDL widl)
+ use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32"
+ printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${ABI: -2}
+ --{cross,native}-file="${T}"/widl.${ABI}.ini
+ $(meson_use {,enable_}extras)
+ $(meson_use debug enable_trace)
+ $(usev !debug --strip) # portage won't strip .dll, so allow it here
+ -Denable_tests=false # needs wine/vulkan and is intended for manual use
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_vkd3d_proton.sh
+ einstalldocs
+
+ # unnecesasry files, see package-release.sh
+ rm "${ED}"/usr/lib/${PN}/x*/libvkd3d-proton-utils-3.dll || die
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink"
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ fi
+}
diff --git a/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild b/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild
new file mode 100644
index 000000000000..12ec38649be1
--- /dev/null
+++ b/app-emulation/vkd3d-proton/vkd3d-proton-9999.ebuild
@@ -0,0 +1,207 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_ABIS="amd64 x86" # allow usage on /no-multilib/
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/HansKristian-Work/vkd3d-proton.git"
+ EGIT_SUBMODULES=(
+ # uses hacks / recent features and easily breaks, keep bundled headers
+ # (also cross-compiled and -I/usr/include is troublesome)
+ khronos/{SPIRV,Vulkan}-Headers
+ subprojects/dxil-spirv
+ subprojects/dxil-spirv/third_party/spirv-headers # skip cross/tools
+ )
+else
+ HASH_VKD3D= # match tag on bumps
+ HASH_DXIL=
+ HASH_SPIRV=
+ HASH_SPIRV_DXIL=
+ HASH_VULKAN=
+ SRC_URI="
+ https://github.com/HansKristian-Work/vkd3d-proton/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.tar.gz
+ https://github.com/HansKristian-Work/dxil-spirv/archive/${HASH_DXIL}.tar.gz
+ -> dxil-spirv-${HASH_DXIL}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV}.tar.gz
+ -> spirv-headers-${HASH_SPIRV}.tar.gz
+ https://github.com/KhronosGroup/SPIRV-Headers/archive/${HASH_SPIRV_DXIL}.tar.gz
+ -> spirv-headers-${HASH_SPIRV_DXIL}.tar.gz
+ https://github.com/KhronosGroup/Vulkan-Headers/archive/${HASH_VULKAN}.tar.gz
+ -> vulkan-headers-${HASH_VULKAN}.tar.gz
+ "
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Fork of VKD3D, development branches for Proton's Direct3D 12 implementation"
+HOMEPAGE="https://github.com/HansKristian-Work/vkd3d-proton/"
+
+LICENSE="LGPL-2.1+ Apache-2.0 MIT"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw debug extras +strip"
+
+BDEPEND="
+ dev-util/glslang
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6-wow64-setup.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local tool=-w64-mingw32-g++
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+ eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+ use abi_x86_32 && use abi_x86_64 &&
+ eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+ die "USE=crossdev-mingw is enabled, but ${tool} was not found"
+ elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+ eerror "${PN} requires GCC to be built with --enable-threads=posix"
+ eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+ die "USE=crossdev-mingw is enabled, but ${tool} does not use POSIX threads"
+ fi
+ done
+ tool=-w64-mingw32-widl
+ for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+ if ! type -P widl >/dev/null && ! type -P ${tool} >/dev/null; then
+ eerror "With USE=crossdev-mingw, you need to provide the widl compiler by either"
+ eerror "building crossdev mingw64-runtime with USE=tools or installing wine."
+ die "USE=crossdev-mingw is set but neither widl nor ${tool} were found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ if [[ ${PV} != 9999 ]]; then
+ rmdir khronos/{SPIRV,Vulkan}-Headers subprojects/dxil-spirv || die
+ mv ../dxil-spirv-${HASH_DXIL} subprojects/dxil-spirv || die
+ mv ../SPIRV-Headers-${HASH_SPIRV} khronos/SPIRV-Headers || die
+ mv ../Vulkan-Headers-${HASH_VULKAN} khronos/Vulkan-Headers || die
+
+ rmdir subprojects/dxil-spirv/third_party/spirv-headers || die
+ # dxil and vkd3d's spirv headers sometime mismatch and are incompatible
+ if [[ ${HASH_SPIRV} == "${HASH_SPIRV_DXIL}" ]]; then
+ ln -s ../../../khronos/SPIRV-Headers \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+ else
+ mv ../SPIRV-Headers-${HASH_SPIRV_DXIL} \
+ subprojects/dxil-spirv/third_party/spirv-headers || die
+ fi
+ fi
+
+ default
+
+ sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_vkd3d_proton.sh || die
+
+ if [[ ${PV} != 9999 ]]; then
+ # without .git, meson sets vkd3d_build as 0x${PV} leading to failure
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::15}/" vkd3d_build.h.in || die
+ sed -i "s/@VCS_TAG@/${HASH_VKD3D::7}/" vkd3d_version.h.in || die
+ fi
+}
+
+src_configure() {
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # random segfaults been reported with LTO in some games, filter as
+ # a safety (note that optimizing this further won't really help
+ # performance, GPU does the actual work)
+ filter-lto
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-flags -mno-avx
+
+ if [[ ${CHOST} != *-mingw* ]]; then
+ if [[ ! -v MINGW_BYPASS ]]; then
+ unset AR CC CXX RC STRIP WIDL
+ filter-flags '-fuse-ld=*'
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*' #928038
+ fi
+
+ CHOST_amd64=x86_64-w64-mingw32
+ CHOST_x86=i686-w64-mingw32
+ CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+ strip-unsupported-flags
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+ # multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+ # unset again so meson eclass will set ${CHOST}-gcc + others
+ use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX STRIP WIDL
+
+ # prefer ${CHOST}'s widl (mingw) over wine's as used by upstream if
+ # possible, but eclasses don't handle that so setup machine files
+ local widl=$(tc-getPROG WIDL widl)
+ use amd64 && [[ ${widl} == widl && ${ABI} == x86 ]] && widl="widl','-m32"
+ printf "[binaries]\nwidl = ['${widl}']\n" > "${T}"/widl.${ABI}.ini || die
+
+ local emesonargs=(
+ --prefix="${EPREFIX}"/usr/lib/${PN}
+ --{bin,lib}dir=x${ABI: -2}
+ --{cross,native}-file="${T}"/widl.${ABI}.ini
+ $(meson_use {,enable_}extras)
+ $(meson_use debug enable_trace)
+ $(usev strip --strip) # portage won't strip .dll, so allow it here
+ -Denable_tests=false # needs wine/vulkan and is intended for manual use
+ )
+
+ meson_src_configure
+}
+
+multilib_src_install_all() {
+ dobin setup_vkd3d_proton.sh
+ einstalldocs
+
+ find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_postinst() {
+ if [[ ! ${REPLACING_VERSIONS} ]]; then
+ elog "To enable ${PN} on a wine prefix, you can run the following command:"
+ elog
+ elog " WINEPREFIX=/path/to/prefix setup_vkd3d_proton.sh install --symlink"
+ elog
+ elog "Should also ensure that >=app-emulation/dxvk-2.1's dxgi.dll is available"
+ elog "on it, not meant to function independently even if only using d3d12."
+ elog
+ elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+ elif [[ ${REPLACING_VERSIONS##* } ]]; then
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.7; then
+ elog
+ elog ">=${PN}-2.7 requires drivers and Wine to support vulkan-1.3, meaning:"
+ elog ">=wine-*-7.1 (or >=wine-proton-7.0), and >=mesa-22.0 (or >=nvidia-drivers-510)"
+ fi
+
+ if ver_test ${REPLACING_VERSIONS##* } -lt 2.9; then
+ elog
+ elog ">=${PN}-2.9 has a new file to install (d3d12core.dll), old Wine prefixes that"
+ elog "relied on '--symlink' may need updates by using the setup_vkd3d_proton.sh."
+ elog
+ elog "Furthermore, it may not function properly if >=app-emulation/dxvk-2.1's"
+ elog "dxgi.dll is not available on that prefix (even if only using d3d12)."
+ fi
+ fi
+}
diff --git a/app-emulation/vkd3d/Manifest b/app-emulation/vkd3d/Manifest
index 99a8cd7b5807..e46132d73bb4 100644
--- a/app-emulation/vkd3d/Manifest
+++ b/app-emulation/vkd3d/Manifest
@@ -1,3 +1 @@
-DIST vkd3d-1.0.tar.xz 461884 BLAKE2B 4dbd729f9e795d3d81178abc1a8774c0bbe6a5257c96c97acf1e4b4cdb5b7e30c77235e8b8fa57f7db3196caf30c55c3b0c07e2981629dd6177436a3cd117d33 SHA512 55712528688cdedc63049e168b371b470dbb8e31ddc36d8b23b0655f4a061726eb8556b9abf3cb887f6bd21379959aed9fab93ba0fd53813aec413ebec71d615
-DIST vkd3d-1.1.tar.xz 487452 BLAKE2B 834ca06d2159a5857dde457f27e541f06624e87633af6aca7445867abc38c56a1da1fe34b6795ffbd6aa73e983ac0e4301402ae35ef8358fa8cc79c12972b11d SHA512 e107612bdca95e998f9d819bdf74e4ffe1b4d400d250ab855c4ebf94b7d3f088b3221591fef03b1c6b8ecb030feb1673f74831bd8bd8edda2989d09a8846b0f7
-DIST vkd3d-1.2.tar.xz 611240 BLAKE2B e7ea3f7120ad1092be0239bdc2e6d0dfdfecc3b1c2e7c359c4bfbd8c259f092e041a75a0e896da9a1c6370d5716590711128d31c9e552897b177b300b9a15107 SHA512 ca9d5b11e7770747b78b61f43196b45b7bda8d2dd4f1d76da915f895a04dc28c20499e1e433f5ce17416964fe0f37cdc907e7aa540ec9105afbc8a100094f3e7
+DIST vkd3d-1.11.tar.xz 1016132 BLAKE2B 634f5f99f7605814d36a90270ddb82a6a11e2b6bfc2cdc6a6d4d31b730b9d5739479770fe00704f27a726c39aa115272c0a79dbcff8baf251188a4b3ead8faeb SHA512 2b14f7f8d4d58c2bfc6c30aa0d24b6789c0887b2869cfb6be98d03b7b001a74a1fbe24439229fa4d3a618a69fe8eeb77d7a520a16276ae494fe6ee2357dd31d0
diff --git a/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch b/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch
deleted file mode 100644
index 048c6c843f55..000000000000
--- a/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/libs/vkd3d/vkd3d_private.h b/libs/vkd3d/vkd3d_private.h
-index df44447..53a081a 100644
---- a/libs/vkd3d/vkd3d_private.h
-+++ b/libs/vkd3d/vkd3d_private.h
-@@ -47,6 +47,8 @@
-
- #define VKD3D_MAX_SHADER_STAGES 5u
-
-+#define VKD3D_PIPELINE_BIND_POINT_COUNT 2u
-+
- struct d3d12_command_list;
- struct d3d12_device;
-
-@@ -625,7 +627,7 @@ struct d3d12_command_list
- VkFramebuffer current_framebuffer;
- VkPipeline current_pipeline;
- VkRenderPass current_render_pass;
-- struct vkd3d_pipeline_bindings pipeline_bindings[VK_PIPELINE_BIND_POINT_RANGE_SIZE];
-+ struct vkd3d_pipeline_bindings pipeline_bindings[VKD3D_PIPELINE_BIND_POINT_COUNT];
-
- struct d3d12_pipeline_state *state;
-
diff --git a/app-emulation/vkd3d/metadata.xml b/app-emulation/vkd3d/metadata.xml
index cad91c2cdfde..b0dd7bc28e6e 100644
--- a/app-emulation/vkd3d/metadata.xml
+++ b/app-emulation/vkd3d/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>wine@gentoo.org</email>
diff --git a/app-emulation/vkd3d/vkd3d-1.0.ebuild b/app-emulation/vkd3d/vkd3d-1.0.ebuild
deleted file mode 100644
index adf1fb7481d8..000000000000
--- a/app-emulation/vkd3d/vkd3d-1.0.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git"
- inherit git-r3
-else
- KEYWORDS="~amd64"
- SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
-fi
-
-IUSE="spirv-tools"
-RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] )
- media-libs/vulkan-loader[${MULTILIB_USEDEP},X]
- x11-libs/xcb-util:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]"
-
-DEPEND="${RDEPEND}
- dev-util/spirv-headers
- dev-util/vulkan-headers"
-
-DESCRIPTION="D3D12 to Vulkan translation library"
-HOMEPAGE="https://source.winehq.org/git/vkd3d.git/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-
-multilib_src_configure() {
- local myconf=(
- $(use_with spirv-tools)
- )
-
- ECONF_SOURCE=${S} econf "${myconf[@]}"
-}
diff --git a/app-emulation/vkd3d/vkd3d-1.1-r1.ebuild b/app-emulation/vkd3d/vkd3d-1.1-r1.ebuild
deleted file mode 100644
index 681d44f11940..000000000000
--- a/app-emulation/vkd3d/vkd3d-1.1-r1.ebuild
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git"
- inherit git-r3
-else
- KEYWORDS="amd64 x86"
- SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
-fi
-
-IUSE="spirv-tools"
-RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] )
- media-libs/vulkan-loader[${MULTILIB_USEDEP},X]
- x11-libs/xcb-util:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]"
-
-DEPEND="${RDEPEND}
- dev-util/spirv-headers
- dev-util/vulkan-headers"
-
-DESCRIPTION="D3D12 to Vulkan translation library"
-HOMEPAGE="https://source.winehq.org/git/vkd3d.git/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-
-PATCHES=(
- "${FILESDIR}"/${P}-Fix-build.patch
-)
-
-multilib_src_configure() {
- local myconf=(
- $(use_with spirv-tools)
- )
-
- ECONF_SOURCE=${S} econf "${myconf[@]}"
-}
diff --git a/app-emulation/vkd3d/vkd3d-1.1.ebuild b/app-emulation/vkd3d/vkd3d-1.1.ebuild
deleted file mode 100644
index d3f9d96bc43b..000000000000
--- a/app-emulation/vkd3d/vkd3d-1.1.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git"
- inherit git-r3
-else
- KEYWORDS="amd64 x86"
- SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
-fi
-
-IUSE="spirv-tools"
-RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] )
- media-libs/vulkan-loader[${MULTILIB_USEDEP},X]
- x11-libs/xcb-util:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]"
-
-DEPEND="${RDEPEND}
- dev-util/spirv-headers
- dev-util/vulkan-headers"
-
-DESCRIPTION="D3D12 to Vulkan translation library"
-HOMEPAGE="https://source.winehq.org/git/vkd3d.git/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-
-multilib_src_configure() {
- local myconf=(
- $(use_with spirv-tools)
- )
-
- ECONF_SOURCE=${S} econf "${myconf[@]}"
-}
diff --git a/app-emulation/vkd3d/vkd3d-1.11.ebuild b/app-emulation/vkd3d/vkd3d-1.11.ebuild
new file mode 100644
index 000000000000..c05e18ff7123
--- /dev/null
+++ b/app-emulation/vkd3d/vkd3d-1.11.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-minimal
+
+DESCRIPTION="D3D12 to Vulkan translation library"
+HOMEPAGE="https://gitlab.winehq.org/wine/vkd3d/"
+SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="ncurses spirv-tools"
+RESTRICT="test" #838655
+
+RDEPEND="
+ media-libs/vulkan-loader[${MULTILIB_USEDEP}]
+ ncurses? ( sys-libs/ncurses:= )
+ spirv-tools? ( dev-util/spirv-tools[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-util/spirv-headers
+ dev-util/vulkan-headers
+"
+BDEPEND="
+ sys-devel/flex
+ sys-devel/bison
+ virtual/pkgconfig
+"
+
+multilib_src_configure() {
+ local conf=(
+ $(multilib_native_use_with ncurses)
+ $(use_with spirv-tools)
+ --disable-doxygen-pdf
+ --without-xcb
+ )
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ find "${ED}" -type f -name '*.la' -delete || die
+}
diff --git a/app-emulation/vkd3d/vkd3d-1.2.ebuild b/app-emulation/vkd3d/vkd3d-1.2.ebuild
deleted file mode 100644
index 90e8035e37ba..000000000000
--- a/app-emulation/vkd3d/vkd3d-1.2.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git"
- inherit git-r3
-else
- KEYWORDS="~amd64 ~x86"
- SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
-fi
-
-IUSE="spirv-tools"
-RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] )
- media-libs/vulkan-loader[${MULTILIB_USEDEP},X]
- x11-libs/xcb-util:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]"
-
-DEPEND="${RDEPEND}
- dev-util/spirv-headers
- dev-util/vulkan-headers"
-
-DESCRIPTION="D3D12 to Vulkan translation library"
-HOMEPAGE="https://source.winehq.org/git/vkd3d.git/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-
-multilib_src_configure() {
- local myconf=(
- $(use_with spirv-tools)
- --disable-doxygen-pdf
- )
-
- ECONF_SOURCE=${S} econf "${myconf[@]}"
-}
diff --git a/app-emulation/vkd3d/vkd3d-9999.ebuild b/app-emulation/vkd3d/vkd3d-9999.ebuild
deleted file mode 100644
index 0e542af46662..000000000000
--- a/app-emulation/vkd3d/vkd3d-9999.ebuild
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit multilib-minimal autotools
-
-AUTOTOOLS_AUTORECONF="1"
-
-if [[ "${PV}" == "9999" ]]; then
- EGIT_REPO_URI="https://source.winehq.org/git/vkd3d.git"
- inherit git-r3
-else
- KEYWORDS="~amd64"
- SRC_URI="https://dl.winehq.org/vkd3d/source/${P}.tar.xz"
-fi
-
-IUSE="spirv-tools"
-RDEPEND="spirv-tools? ( dev-util/spirv-tools:=[${MULTILIB_USEDEP}] )
- media-libs/vulkan-loader[${MULTILIB_USEDEP},X]
- x11-libs/xcb-util:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-keysyms:=[${MULTILIB_USEDEP}]
- x11-libs/xcb-util-wm:=[${MULTILIB_USEDEP}]"
-
-DEPEND="${RDEPEND}
- dev-util/spirv-headers
- >=dev-util/vulkan-headers-1.1.114"
-
-DESCRIPTION="D3D12 to Vulkan translation library"
-HOMEPAGE="https://source.winehq.org/git/vkd3d.git/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-
-src_prepare() {
- default
- eautoreconf
-}
-
-multilib_src_configure() {
- local myconf=(
- $(use_with spirv-tools)
- --disable-doxygen-pdf
- )
-
- ECONF_SOURCE=${S} econf "${myconf[@]}"
-}
diff --git a/app-emulation/wine-desktop-common/metadata.xml b/app-emulation/wine-desktop-common/metadata.xml
index 751c88a7bada..10c8098770bd 100644
--- a/app-emulation/wine-desktop-common/metadata.xml
+++ b/app-emulation/wine-desktop-common/metadata.xml
@@ -1,15 +1,11 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
- <email>NP-Hardass@gentoo.org</email>
- <name>NP-Hardass</name>
- </maintainer>
<maintainer type="project">
<email>wine@gentoo.org</email>
<name>Wine</name>
</maintainer>
<upstream>
- <remote-id type="github">NP-Hardass/wine-desktop-common</remote-id>
+ <remote-id type="github">np-hardass/wine-desktop-common</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/wine-gecko/Manifest b/app-emulation/wine-gecko/Manifest
index 7daaaf510bfd..0924bbaa755b 100644
--- a/app-emulation/wine-gecko/Manifest
+++ b/app-emulation/wine-gecko/Manifest
@@ -1,4 +1,12 @@
-DIST wine-gecko-2.47.1-x86.msi 50735104 BLAKE2B c082e22fdbf1681e0c38e8822bc1a8f99b47d91f7d32f22bfad716685553d3d10fd4004f90135d90f39f4ff05cba37665455679e08ce3a140ca8ded76cb7a9ea SHA512 ef13838bf7d5bdd74d06bbbdccc6b18cc75b4d0c2b3db8c978b9500cdfeb058bf5532d89b77c164eab52c1f93ae2e2540b37f6694a3e560aace3ebc7da2c7596
-DIST wine-gecko-2.47.1-x86_64.msi 52311040 BLAKE2B 2a9aa68461d2b9f69ada1e50925de7ba9804a4992c9d0a717c9c5d1340179e7f10e550c8db170bb33c79e24dcd068e00648c572c6b4e4d836a507ada6e7bbccd SHA512 f875d9a7c68a33abf6dd25d61ff6dd3e5ff246768880e3ee4984ab63b065a7b0ef55411b710e4cb9db48bd2114cbd3fbd97f24e819d7d71c2212dd612abaaf43
-DIST wine_gecko-2.47-x86.msi 49266176 BLAKE2B 6b1d4ebf53fac422c2da9ae7f5b6ab9064d2b6cc20d57fe13707395e71305ac1607a440624d3a545fe1e0391bc92bf5b594173549e519eda967bb833b69b2f52 SHA512 e0d06102dcb8ec2d24e8c8c3f5c2ee5cb47c18e203dfb43d85de008d682ff874fb664fef1df909a5a7857de39c7e8ce5175e734a11964ec4cd35f8fbacaea3a4
-DIST wine_gecko-2.47-x86_64.msi 50806272 BLAKE2B 6f91d4661a322eca41042cb7a246d5bff76ab72b4bda67183fc36735c923bd6d76624f21fd3e59f63fd872704edcf0116a6e7ab4fa6f074f5098c8fb5307534c SHA512 7c2496b15a06bc6906bc60afb3ac082e3f9931207fa624e60297020211d66aa9b420a61e95730a0dbdcefbe4b26c811d0c896ecd9c363b5107d08c3fa22fef41
+DIST wine-gecko-2.47.2-x86.msi 59162112 BLAKE2B 75197c5145dd047d637ea950ed1df918b79446bbb5aae642a90d95af96870cd1756b8469deca105d986ae2dc166ad1b2b89dd7e16c7d13baa4b215b30c3ba909 SHA512 4e6e688fada1edd3d7e0e131246dcae8c6db1a2fde946540b6f8c8b2deee8aa19f210368132f00789d4f49bf2b5e5ac671d4d3699f557e652ece50e55fbcbd43
+DIST wine-gecko-2.47.2-x86.tar.xz 45556880 BLAKE2B 43334edd68f22e21347a49bcd7321d90111652fe6143fcb94fa97cee950701f1891b41e8c4ea75854d5232a74c2007534d3fdb190c6abfb96290193f6a4546d2 SHA512 de39bacf9e8b45971e3e675ccbbac0731855b81e148619a98fb126c38ab385f10f1e68e0a52a663fa1a079192b378f4d4e4cdb0a11c5e9dd46221a9604214250
+DIST wine-gecko-2.47.2-x86_64.msi 55354880 BLAKE2B c234602e29a6597d26e7a78ec85ac66471ecd8fcea5360d6f32323e4cbee4aca2ccd5530706e8779346ff2d08f1c4900fef198763e431ce7cd232ef117933336 SHA512 9bbaf061d5d2035e6df0898a847697bbed071abaf95ccde08b5ace7a2c6fc871db16443596b23a889def82f98591973fe8ca88063021d8779f8faa48973f239c
+DIST wine-gecko-2.47.2-x86_64.tar.xz 43025348 BLAKE2B 0c956043d7a49cdd88a3af4b25191087fd638a68b958e13a46bbf4310ecf7cdeb973eb3ea5b254f2d4f90f2a715d35c25a67b1883159a60a0ff6eea70e0f1077 SHA512 cf7af1087823188c3be6665d7662bf1029c58b4b8db271e5f4bfed15df217b905653b034b62ed0fa961f528be40f0325b378669d27c9a18ef5b9d98ef8c63aeb
+DIST wine-gecko-2.47.3-x86.msi 55686144 BLAKE2B ce428b35ce70968c12141832aab6044a4e9ecb198b7ce0af69264de2ef16aa7045b154e8dbcb17ef068e5a30a19224014a07210583166394353c0b67ad3f119b SHA512 988390450e5e64bde903595e8cbed39b6e9c6ea928130f6f20cc3c6692c46db8c2a2e0c5dc49ea324e96ee65af3749414aad8b092a02bf7453499178e01c7527
+DIST wine-gecko-2.47.3-x86.tar.xz 43291212 BLAKE2B 441659dd002c14b7774b0c2dc4bbc8d29f16bda7b9d1b5ff7d75dca53a6b01366c62270fa617f8bcd7ac07871de72c016d66e557b4d4f734227c0c4ec0b74013 SHA512 c1530c4aec4743b5acb14cecac909ece6e140eec2171ad4b154513de9aead7a323789251e27f4f1c3ff0d6af9cd2590193db99380e2c91a1640dcff49f78b84e
+DIST wine-gecko-2.47.3-x86_64.msi 54623744 BLAKE2B 2783e060e2277925ca4b1193f4c13d7af88c7605d48d4bdd118826340e293547edc83fa185e2c64fddb629c632480062bedf995b6f65b07360cf9496bbd21f9a SHA512 c8d617695426c19bdb8a415fb0f00dc3ff9aa6c023599d24313f1c6ac50bbf36bc42dc0cdd58dee93c5ad4998468000d123080cbea09efe1bca3d8f7bfa2bd1d
+DIST wine-gecko-2.47.3-x86_64.tar.xz 42325312 BLAKE2B dd7b8516ce38c2baa5fc6c73d7292a78c03136a9bffe50ceb4bd32df0754e7f8d6adbc7689e2d00e0a5fb9806d6da736b5d15acc2fca3f2210015ac55892ed6b SHA512 3d4ff51e0dede5b52929b3babc91b16c06fdd89e75f0d6911e2262142c7422405676238d0d6cb90b6705a18b975de21dd58036a78f856523bab28c5bf52879f9
+DIST wine-gecko-2.47.4-x86.msi 55187968 BLAKE2B f0ecd9cf41290082918be54eb9646aa31973db01993b778d06f6fd82e9f948751e54199a4a8db138870641dfb052fec77af0836613eb95018f603b23bf214d36 SHA512 7adb6c9b59444245d3a0ceb372e5054297723f517ea62d37e7bf02db76f2c0e9a4a64777ea7300ad051ea2281668df2d8680f3889e53f295b40aa1919fe453e5
+DIST wine-gecko-2.47.4-x86.tar.xz 43025064 BLAKE2B 2a73c12585b502ae11188482cbc9fb1f45f95bfe4383a7615011104b132f4845f9813d01fb40277e1934fab5f1b35ab40b4f4a66a9967463dd1d666a666904e9 SHA512 1279456eca4439e9adc3c97678fabeca42cc89f683246805ca14f85fc104bf4ba970fb6490f4ebd0938fc8e0a0ca372b000fdd5165f900070eeee30a1aeec117
+DIST wine-gecko-2.47.4-x86_64.msi 53898752 BLAKE2B dabc9957670d388b3c24fb850c444f28561b200f608f8cb6434d661198dc09786d8c61d5ad007fa9f3a1820425b5b9b46253a6b825d5461539a76c0c4d8e8315 SHA512 075f95ff7a33ad0af6ad53fe8f0f6e2ab233ceb950957d2fbf7d4955543dfe143d14fade283061df14562e6345a7cbaf754fc92d591ea03a5573accb290ae530
+DIST wine-gecko-2.47.4-x86_64.tar.xz 41935496 BLAKE2B 62856a88266b4757602c0646e024f832974a93f03b9df253fd4895d4f11a41b435840ad8f7003ec85a0d8087dec15f2e096dbfb4b01ebe4d365521e48fd0c5c0 SHA512 1defbbc1fb5029bf43872a4e1c49995b61e0f106b1fcc4c99159bf4788226981b9ba8a25a2296d3a9312dbfa7e27b469ca27c0867afb218990d45f68705dbfbe
diff --git a/app-emulation/wine-gecko/metadata.xml b/app-emulation/wine-gecko/metadata.xml
index 921f5a737f83..8b46426a7860 100644
--- a/app-emulation/wine-gecko/metadata.xml
+++ b/app-emulation/wine-gecko/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>wine@gentoo.org</email>
<name>Wine</name>
</maintainer>
- <upstream>
- <remote-id type="sourceforge">wine/wine-gecko</remote-id>
- </upstream>
+ <use>
+ <flag name="shared">Install pre-unpacked files which do not need to be copied into the Wine prefix</flag>
+ </use>
</pkgmetadata>
diff --git a/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild
deleted file mode 100644
index 6a66a478caf1..000000000000
--- a/app-emulation/wine-gecko/wine-gecko-2.47-r1.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-MY_PN=${PN/-/_}
-
-DESCRIPTION="A Mozilla Gecko based version of Internet Explorer for Wine"
-HOMEPAGE="https://winehq.org"
-SRC_URI="
- abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${MY_PN}-${PV}-x86.msi )
- abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${MY_PN}-${PV}-x86_64.msi )
-"
-
-LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
-SLOT="${PV}"
-KEYWORDS="amd64 x86"
-IUSE="abi_x86_32 abi_x86_64"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/gecko
- use abi_x86_32 && doins "${DISTDIR}/${MY_PN}-${PV}-x86.msi"
- use abi_x86_64 && doins "${DISTDIR}/${MY_PN}-${PV}-x86_64.msi"
-}
diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild
deleted file mode 100644
index b71c2e539912..000000000000
--- a/app-emulation/wine-gecko/wine-gecko-2.47.1.ebuild
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="A Mozilla Gecko based version of Internet Explorer for Wine"
-HOMEPAGE="https://winehq.org"
-SRC_URI="
- abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86.msi )
- abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${PN}-${PV}-x86_64.msi )
-"
-
-LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
-SLOT="${PV}"
-KEYWORDS="amd64 x86"
-IUSE="abi_x86_32 abi_x86_64"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/gecko
- use abi_x86_32 && doins "${DISTDIR}/${PN}-${PV}-x86.msi"
- use abi_x86_64 && doins "${DISTDIR}/${PN}-${PV}-x86_64.msi"
-}
diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild
new file mode 100644
index 000000000000..fd2e621718a3
--- /dev/null
+++ b/app-emulation/wine-gecko/wine-gecko-2.47.2.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Mozilla Gecko based version of Internet Explorer for Wine"
+HOMEPAGE="
+ https://wiki.winehq.org/Gecko
+ https://gitlab.winehq.org/wine/wine-gecko/"
+SRC_URI="
+ shared? (
+ abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz )
+ abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.tar.xz )
+ )
+ !shared? (
+ abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi )
+ abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.msi )
+ )"
+S="${WORKDIR}"
+
+LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
+SLOT="${PV}"
+KEYWORDS="amd64 x86"
+IUSE="+abi_x86_32 abi_x86_64 +shared"
+REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
+
+src_install() {
+ insinto /usr/share/wine/gecko
+
+ if use shared; then
+ use abi_x86_32 && doins -r ${P}-x86
+ use abi_x86_64 && doins -r ${P}-x86_64
+ else
+ use abi_x86_32 && doins "${DISTDIR}"/${P}-x86.msi
+ use abi_x86_64 && doins "${DISTDIR}"/${P}-x86_64.msi
+ fi
+}
diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild
new file mode 100644
index 000000000000..fd2e621718a3
--- /dev/null
+++ b/app-emulation/wine-gecko/wine-gecko-2.47.3.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Mozilla Gecko based version of Internet Explorer for Wine"
+HOMEPAGE="
+ https://wiki.winehq.org/Gecko
+ https://gitlab.winehq.org/wine/wine-gecko/"
+SRC_URI="
+ shared? (
+ abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz )
+ abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.tar.xz )
+ )
+ !shared? (
+ abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi )
+ abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.msi )
+ )"
+S="${WORKDIR}"
+
+LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
+SLOT="${PV}"
+KEYWORDS="amd64 x86"
+IUSE="+abi_x86_32 abi_x86_64 +shared"
+REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
+
+src_install() {
+ insinto /usr/share/wine/gecko
+
+ if use shared; then
+ use abi_x86_32 && doins -r ${P}-x86
+ use abi_x86_64 && doins -r ${P}-x86_64
+ else
+ use abi_x86_32 && doins "${DISTDIR}"/${P}-x86.msi
+ use abi_x86_64 && doins "${DISTDIR}"/${P}-x86_64.msi
+ fi
+}
diff --git a/app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild b/app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild
new file mode 100644
index 000000000000..ae25f7f2f8eb
--- /dev/null
+++ b/app-emulation/wine-gecko/wine-gecko-2.47.4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Mozilla Gecko based version of Internet Explorer for Wine"
+HOMEPAGE="
+ https://wiki.winehq.org/Gecko
+ https://gitlab.winehq.org/wine/wine-gecko/"
+SRC_URI="
+ shared? (
+ abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz )
+ abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.tar.xz )
+ )
+ !shared? (
+ abi_x86_32? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi )
+ abi_x86_64? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86_64.msi )
+ )"
+S="${WORKDIR}"
+
+LICENSE="Apache-2.0 BSD BSD-2 MIT MPL-2.0"
+SLOT="${PV}"
+KEYWORDS="amd64 x86"
+IUSE="+abi_x86_32 abi_x86_64 +shared"
+REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )"
+
+src_install() {
+ insinto /usr/share/wine/gecko
+
+ if use shared; then
+ use abi_x86_32 && doins -r ${P}-x86
+ use abi_x86_64 && doins -r ${P}-x86_64
+ else
+ use abi_x86_32 && doins "${DISTDIR}"/${P}-x86.msi
+ use abi_x86_64 && doins "${DISTDIR}"/${P}-x86_64.msi
+ fi
+}
diff --git a/app-emulation/wine-mono/Manifest b/app-emulation/wine-mono/Manifest
index 89c21b04c9df..dd0016c86352 100644
--- a/app-emulation/wine-mono/Manifest
+++ b/app-emulation/wine-mono/Manifest
@@ -1,15 +1,10 @@
-DIST wine-mono-4.6.4.msi 45592064 BLAKE2B 30099b7f02276e47e350a96af07bf64b43c857b3b3323d0cab85864b753e9810c0d7b5d496e2f53f5b2c3a434eb440a19f9928707c4127303aa0335928e39097 SHA512 1d50df5d4d000998c74fbee79b8ffc691d88ee3b34db9fd7124e0df68d6f84768ece489ac8c3f5f3141c2073c8666b93ae23ca6cd652a6542a821df3d1b66b6d
-DIST wine-mono-4.7.0.msi 64625152 BLAKE2B 9c533d9f9a5cec6aefa66ed916e88f0a03ab76e8292f112a669208c5b26855a314657c9950993a205941cd314f0c93a55f621ed71ebb4846a66d30fa9af3c855 SHA512 07cd2b26f3bfe6fc796a126b83e9c0aa655d3e8152af536ae2e8ae419013742706ddae6f93cc2341c94a2f3b8ae7d1b27d12f891d371928189291428f9ed877c
-DIST wine-mono-4.7.1.msi 56470528 BLAKE2B b1b9dd832f725cb70b80889c08db524540c389c4eb8c990415f0c1b4a17274fc96390808c943bd0ff42c79f4bbb376b3d599d31ed42b5ebcb4be79dbc273eeec SHA512 d47f21fa3ddb31522366056a2062cf7b77eec0a12f96dc05326561c9d2604405128441ff40d1b9567a6e6cd1c19ee03444d2ba02dd3b8dd2d150030dfb52f765
-DIST wine-mono-4.7.3.msi 56470528 BLAKE2B 59397f851bd0883f060fd359228fcdedea5a32ce06349fd563411dfa603a6c8700496111821fd9e571cfd4586e829acb12321528a4a8330d1fb6f92855482225 SHA512 d51c0e21c8448a4d11c3e4fd530bda340cc93cd420080e08aadd7b704183dcadf8553b0937e02c7a54a8a2fb46a395718a3e807b85f19936b0e4ee7b92052dfe
-DIST wine-mono-4.7.5.msi 56470528 BLAKE2B a662249fe85dbcc6de273cc8f8384fee9fe789a272c7dfec28e406ac2b512cd0e9ef07716004c694f66a69d2dd0a62e14691123db7b9845d7ad86762619da100 SHA512 25e4188e42362aa9050e4d78a5748697d63181fa91a0c0d2e43ad4c26996f9fb82053a5e6942621aaff01c832be88ea13ac7b472be8841a828eed4e5e87c9ee7
-DIST wine-mono-4.8.0.msi 86536704 BLAKE2B 24120b57a6b51b47d66b4dcf9765492ad2dce8ece7d186b7bd78172598308be43336944ae804be5181e2c3d7ae7cace08c75e2b66fbfad097c9c16fd6fcfc3a9 SHA512 ab0a9795ccbd3acf42d0e904585a16c62b28a2753771b5dccfd4013b77a118eff6fd92c4a8711be43df2b09c993884cc9bb48e025b60059b2a7d3a832ecbbf43
-DIST wine-mono-4.8.1.msi 115878912 BLAKE2B 88bd9b35efd89aece2dd0cd9529bc081fcd2a97f3af81806e9901158cbe48e920e5e6ac276da16c9c2d369dd307a7be05d7b8b67acf2733279a5df17696dd154 SHA512 06cbfc66ad82c40975f9d41698c49ba19c7eadf56b5ea87037b7cf0dbe2053de0d5587573798af294eb5ef8c7f2f5ffb7b3c45da83493c71d1923c1abee1bf9b
-DIST wine-mono-4.8.3.msi 116183552 BLAKE2B 5e82c2e6e456311de817b7870e02d60abc3e359a9b5989257cae4a31e24206e7c8289f417dbb5fa2e315537b4e8352f9f1237f576b3c06cb2dbaaa7a5443a4f0 SHA512 5b5c1c147453cc691ceb17c850be66e3701e784d2ed4bd27abd92a815f7070850b5e0fc1778c3a3aa2b84516b4c5e01abe350d6ccc5578037e75cb1afe1dfb6a
-DIST wine-mono-4.9.0.msi 94960640 BLAKE2B b60debd41ea33eee15ab1a546c526858b97cf4d5d896c856cce21f09210e3e10f1abf98dfb723abbe75657dd44011c1c793a08a329e037144d3266001739467c SHA512 76142fa7233aa3f8111df9112927e699cfc39f8bd0f02f0fc4d065eaeb37964f9e2b49bf53c406fa6ec72c247ab85ddba244ac97b4d6a377adeb63d9ae339e24
-DIST wine-mono-4.9.2.msi 94981632 BLAKE2B b70a5177fad3c6ee2b04ef40105c7700a08339786a23d7378ba72005da5b3cb6b3a797f0173ba32224bcfd25a4bb0fa01c92a83b88e005973b33320717f5b31a SHA512 73e46ec57c7a78d8c32ead4698c299fa557bb97739ce22c9405f95f48f55d604743aa01cc64183c9f89f99aec6f04b664bac0ef96e6a436d38ebcd9d7cf3b329
-DIST wine-mono-4.9.3.msi 95017472 BLAKE2B bf054bcff51e986ddb95788fdd1925ee13efe6e881089a23192d4ccb2527ccb2a2969917b9c3bb16a2161a2bd1d60c24605fd07e6c432f8f77c7c506222045f9 SHA512 4631d4e3b5118eb726f614e2f58f9e95f44bb97a1285fa726d3542d44e2a77ce818997ecb4de42e0d318d364d7c929f10d7c5176b59732e8b468e7695633706c
-DIST wine-mono-4.9.4.msi 95266304 BLAKE2B fb9c81f8ac8fca104f766d62b02c8751b5b7b91740cb43942477c7bdcac382eafeb5fc9c3fe78191b19d81bc5f06dd5c33db7ecfbdaba5e6be69ed39a6827706 SHA512 d52a2cc1137eac87acdaecbb7a81b3d618cad9ad3d7bca5b29940b7432923bfc1497ec21501a05797ef52c6588bb9c5e312df5c02ede8448d1fe1f2880557fc9
-DIST wine-mono-5.0.0-x86.msi 79537664 BLAKE2B f5a4185a7a63a1c1966d871d4c8d5bae07d3bbbc3153f20847c3919ac87be5644e15b45764286483641d9ce19176f79c7c7544e543fad62032ef5302a66ea8ea SHA512 8f83122d4b552b3a3d8b000abbd19b7a72edf45e52fa63a9220228240d8e4c014531bb265d062a38f6924fae07dd45420a5c7566f99e0c471e116fb80906c08c
-DIST wine-mono-5.1.0-x86.msi 84094976 BLAKE2B 25b044696f46810a843c17117f61532de3d4922f202e5acc2106b67f99eda6d359a799dd53ac4801380e81fdb5929c29e09a4923df99bf104b462ac77c682f29 SHA512 c4013307ba43121346f11881a30ff83d4921e0563a1ad3ff1adc34373f7bda5d5f6ad8c46bafe11c13ca372075333562864e073fe944428225b01fb885f9532f
-DIST wine-mono-5.1.1-x86.msi 84130304 BLAKE2B 05a5344b59249a758443cf91670eaef71d9ad3a3024b11442a8d3512ba54356439d503629fa799e2454975f47c0eaf6ff9e25ed61b020f29efceacc78347d578 SHA512 c518b93a470cc897abaf1dba18cc773dca0df62a28d35f32f2ddbe39b4de616c0307545bea5dc3ca87a01fd96b47feb3e1d8c3778106304b9cc08ebb3d1d665f
+DIST wine-mono-7.0.0-x86.msi 86433280 BLAKE2B 9d164bf10f9c790a1f518624321a77965800742c84677a6372cd57b1f51bdd16a2d61ee85f868e84be9b07d4c3f5a7afa770e98637f698c2337c42d42890cf58 SHA512 d7af2a68c3b48cab93ddd489f674ab9064d69d5ca0b6c91e58713dd0408af9fb1ff82ef8847d91645d96df40cd5526c6735d621064a3598166ab5f51d1e0d076
+DIST wine-mono-7.0.0-x86.tar.xz 45085800 BLAKE2B 504c57acce486c19a54bf33cdb4b9444c07a58a7f56ced0c93178886a91fa5d94a61f6e26aa885f3e3a2cceb2ff792f01006a4b16fa5bb88c3d25ddff02fefd7 SHA512 a3977563c5eb6418eaeda25e5b39bd2ef1faf305d514979211e049280c4577718ca48c8566e527b97a58fc465b310dd600093a616102573e12e8985794d828a6
+DIST wine-mono-7.4.0-x86.msi 87334912 BLAKE2B c0b778f9db59d1a2917631f1d6ca1a1798972a6a42e27975da78f3a35b77018a99228d7d95e5640c57618533a6b01bf2252859e3e978e2aa8dbdc8cd62afcc28 SHA512 cf35513b368324487c387d4339e5b05a90c4825b25ea603140524b79e69786ccc20dfb898213a9548c0313c0b0e4b160acb88364e4b280dd6712d185d9e5ae57
+DIST wine-mono-7.4.0-x86.tar.xz 45404344 BLAKE2B 3a74106b9b3f21a88c2435f7988d66a54e08beea931a0ce0df6431c21add4ee2685bf9c9cb2404ee1a685736d61b1aee3cdd507130e5c5dddba7e506a2ff18bb SHA512 108cb5d969e84deeda3d2b11dba7cd73853fc3b088ecf2bcdb9bc5c5bbaaff03e72cd4f485d1935eda43cdd95b927886441be1d2204edeaee1ff1fea75735d22
+DIST wine-mono-8.1.0-x86.msi 84905984 BLAKE2B 948b014fc6fba94bc97642b8aae266b8179b119ea3d8a0fdf47daee33eac65b8cc5dd1bc483ae4c66bdd1bdc10f4b73258bb6c83bca0911a30e86e358faafd20 SHA512 5c788dfa0c9b664242f3ce0ab24f3f9256dabf1e9fadc516140f267c763da1865b4536c707660acaf66e4a37d93198f5499971b4261e63d91252f6a7fc3eae4e
+DIST wine-mono-8.1.0-x86.tar.xz 40854944 BLAKE2B 0e0dd83b92016da328547173d25dc396a895a7a161cd54796c9bda34ae958856f1bee342c1bb5fcffcf695b35adf66b2bf83cfa61e01790bf4b0f2d198f84feb SHA512 ba87105a6527b9c392e9ad406e92fd90164e0abb3a348a1e343e63eff0ee8632399badb98f7fbc3581ce697ba09d98aafbf5033bf52fb14b7c7c280c64f25a84
+DIST wine-mono-9.0.0-x86.msi 84583424 BLAKE2B 38f16049909f6464624c1c8f990a7873a3211bf02bef7593cae9da0201e8de0f535c841375eadf47bf0a4b10b08bc9d4c89d22d723e51f3f767c6e986ef01c7d SHA512 fcbde718c237f102aab2e234a2f1c03aedd45ad9f97152112562b2119e542efd2f2979899afd3e9e03b1a06caec135d0f2cfcde084e372d1f74d594d52e6c833
+DIST wine-mono-9.0.0-x86.tar.xz 40970928 BLAKE2B 253533706845cf8e4aa958cca61928e6ce3be7482bfcbba45a5dd6381ab144263ddf40df009121508288710ee0872382a6ce7cde06cf8dd6c75e932916de907e SHA512 0117619a2b3f6e92ee513aeea79db977055098e6f629063fbd5d1a1b7d47e9d14451369b1d0a6a30e468ed051e60bba59aec75b90ea34fa9b4956d3ebdb32c06
+DIST wine-mono-9.1.0-x86.msi 84623872 BLAKE2B 63e86a4f99a5300782017f0b1a2168ad49516e2b2a7e825d7f59b8e842874c7f84752058908e8f57ad1e650a68675c5ff81ad8ba973962ea075db590be0fa51b SHA512 e51744eb0b07a58516fe3f5115fe45b4924e285fe4688649d04dec522203af6b3aa066e5db9b37cbbfe6ce4b5d8e871e9881842227cbb20c0613b911b5bfc383
+DIST wine-mono-9.1.0-x86.tar.xz 43820028 BLAKE2B 6249e661239b71ca2607cf5fb3285bbef3e4c056c87e15352e40d2875028dbaa7f1c1a8b4d908f74de8447b4166c61c708314dc6422e9f69a6eea5f588e7c73b SHA512 cede2b910e95fc43e658e6d4d8086ec5324407a32fff4852341178e1e56df240356c02f270e3be174f3ab82aa076e50d70be4da8e8c5f77e877fce8fe3217374
diff --git a/app-emulation/wine-mono/metadata.xml b/app-emulation/wine-mono/metadata.xml
index a64284bc1ee9..83c506abfee8 100644
--- a/app-emulation/wine-mono/metadata.xml
+++ b/app-emulation/wine-mono/metadata.xml
@@ -1,13 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>wine@gentoo.org</email>
<name>Wine</name>
</maintainer>
<longdescription>
- Wine Mono is a package containing Mono and other projects, intended as a replacement for the .NET runtime and class libraries in Wine. It works in conjunction with Wine's builtin mscoree.dll, and it is not intended to be useful for any other purpose.
+ Wine Mono is a package containing Mono and other projects,
+ intended as a replacement for the .NET runtime and class
+ libraries in Wine. It works in conjunction with Wine's builtin
+ mscoree.dll, and it is not intended to be useful for any other
+ purpose.
</longdescription>
+ <use>
+ <flag name="shared">Install pre-unpacked files which do not need to be copied into the Wine prefix</flag>
+ </use>
<upstream>
<remote-id type="github">madewokherd/wine-mono</remote-id>
</upstream>
diff --git a/app-emulation/wine-mono/wine-mono-4.6.4.ebuild b/app-emulation/wine-mono/wine-mono-4.6.4.ebuild
deleted file mode 100644
index 4a5144adb837..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.6.4.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="amd64 x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.7.0.ebuild b/app-emulation/wine-mono/wine-mono-4.7.0.ebuild
deleted file mode 100644
index 54ef87ce73c8..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.7.0.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.7.1.ebuild b/app-emulation/wine-mono/wine-mono-4.7.1.ebuild
deleted file mode 100644
index 4a5144adb837..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.7.1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="amd64 x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.7.3.ebuild b/app-emulation/wine-mono/wine-mono-4.7.3.ebuild
deleted file mode 100644
index 54ef87ce73c8..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.7.3.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="A replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.7.5.ebuild b/app-emulation/wine-mono/wine-mono-4.7.5.ebuild
deleted file mode 100644
index d45f506606cc..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.7.5.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="amd64 x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.8.0.ebuild b/app-emulation/wine-mono/wine-mono-4.8.0.ebuild
deleted file mode 100644
index 15aab248909e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.8.0.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.8.1.ebuild b/app-emulation/wine-mono/wine-mono-4.8.1.ebuild
deleted file mode 100644
index 15aab248909e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.8.1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.8.3.ebuild b/app-emulation/wine-mono/wine-mono-4.8.3.ebuild
deleted file mode 100644
index 15aab248909e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.8.3.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.9.0.ebuild b/app-emulation/wine-mono/wine-mono-4.9.0.ebuild
deleted file mode 100644
index 15aab248909e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.9.0.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.9.2.ebuild b/app-emulation/wine-mono/wine-mono-4.9.2.ebuild
deleted file mode 100644
index 15aab248909e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.9.2.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.9.3.ebuild b/app-emulation/wine-mono/wine-mono-4.9.3.ebuild
deleted file mode 100644
index 15aab248909e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.9.3.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-4.9.4.ebuild b/app-emulation/wine-mono/wine-mono-4.9.4.ebuild
deleted file mode 100644
index 063347ed1e0e..000000000000
--- a/app-emulation/wine-mono/wine-mono-4.9.4.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="amd64 x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-5.0.0.ebuild b/app-emulation/wine-mono/wine-mono-5.0.0.ebuild
deleted file mode 100644
index 30b33158592b..000000000000
--- a/app-emulation/wine-mono/wine-mono-5.0.0.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}-x86.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-5.1.0.ebuild b/app-emulation/wine-mono/wine-mono-5.1.0.ebuild
deleted file mode 100644
index 30b33158592b..000000000000
--- a/app-emulation/wine-mono/wine-mono-5.1.0.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}-x86.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-5.1.1.ebuild b/app-emulation/wine-mono/wine-mono-5.1.1.ebuild
deleted file mode 100644
index 30b33158592b..000000000000
--- a/app-emulation/wine-mono/wine-mono-5.1.1.ebuild
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-DESCRIPTION="Wine Mono is a replacement for the .NET runtime and class libraries in Wine"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi"
-
-LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
-SLOT="${PV}"
-KEYWORDS="~amd64 ~x86"
-
-DEPEND="!!app-emulation/wine:0"
-
-S="${WORKDIR}"
-
-src_install() {
- insinto /usr/share/wine/mono
- doins "${DISTDIR}/${P}-x86.msi"
-}
diff --git a/app-emulation/wine-mono/wine-mono-7.0.0.ebuild b/app-emulation/wine-mono/wine-mono-7.0.0.ebuild
new file mode 100644
index 000000000000..f943df20d059
--- /dev/null
+++ b/app-emulation/wine-mono/wine-mono-7.0.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine"
+HOMEPAGE="https://wiki.winehq.org/Mono"
+SRC_URI="
+ shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.tar.xz )
+ !shared? ( https://dl.winehq.org/wine/${PN}/${PV}/${P}-x86.msi )"
+S="${WORKDIR}"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
+SLOT="${PV}"
+KEYWORDS="amd64 x86"
+IUSE="+shared"
+
+src_install() {
+ insinto /usr/share/wine/mono
+
+ if use shared; then
+ doins -r ${P}
+ else
+ doins "${DISTDIR}"/${P}-x86.msi
+ fi
+}
diff --git a/app-emulation/wine-mono/wine-mono-7.4.0.ebuild b/app-emulation/wine-mono/wine-mono-7.4.0.ebuild
new file mode 100644
index 000000000000..27069cdc43d3
--- /dev/null
+++ b/app-emulation/wine-mono/wine-mono-7.4.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine"
+HOMEPAGE="https://wiki.winehq.org/Mono"
+SRC_URI="
+ shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz )
+ !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )"
+S="${WORKDIR}"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
+SLOT="${PV}"
+KEYWORDS="amd64 x86"
+IUSE="+shared"
+
+src_install() {
+ insinto /usr/share/wine/mono
+
+ if use shared; then
+ doins -r ${P}
+ else
+ doins "${DISTDIR}"/${P}-x86.msi
+ fi
+}
diff --git a/app-emulation/wine-mono/wine-mono-8.1.0.ebuild b/app-emulation/wine-mono/wine-mono-8.1.0.ebuild
new file mode 100644
index 000000000000..420d2e8387b2
--- /dev/null
+++ b/app-emulation/wine-mono/wine-mono-8.1.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine"
+HOMEPAGE="https://wiki.winehq.org/Mono"
+SRC_URI="
+ shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz )
+ !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )"
+S="${WORKDIR}"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
+SLOT="${PV}"
+KEYWORDS="amd64 x86"
+IUSE="+shared"
+
+src_install() {
+ insinto /usr/share/wine/mono
+
+ if use shared; then
+ doins -r ${P}
+ else
+ doins "${DISTDIR}"/${P}-x86.msi
+ fi
+}
diff --git a/app-emulation/wine-mono/wine-mono-9.0.0.ebuild b/app-emulation/wine-mono/wine-mono-9.0.0.ebuild
new file mode 100644
index 000000000000..f756896e7c2e
--- /dev/null
+++ b/app-emulation/wine-mono/wine-mono-9.0.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine"
+HOMEPAGE="https://wiki.winehq.org/Mono"
+SRC_URI="
+ shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz )
+ !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )"
+S="${WORKDIR}"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
+SLOT="${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="+shared"
+
+src_install() {
+ insinto /usr/share/wine/mono
+
+ if use shared; then
+ doins -r ${P}
+ else
+ doins "${DISTDIR}"/${P}-x86.msi
+ fi
+}
diff --git a/app-emulation/wine-mono/wine-mono-9.1.0.ebuild b/app-emulation/wine-mono/wine-mono-9.1.0.ebuild
new file mode 100644
index 000000000000..f756896e7c2e
--- /dev/null
+++ b/app-emulation/wine-mono/wine-mono-9.1.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Replacement for the .NET runtime and class libraries in Wine"
+HOMEPAGE="https://wiki.winehq.org/Mono"
+SRC_URI="
+ shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.tar.xz )
+ !shared? ( https://github.com/madewokherd/wine-mono/releases/download/${P}/${P}-x86.msi )"
+S="${WORKDIR}"
+
+LICENSE="BSD-2 GPL-2 LGPL-2.1 MIT MPL-1.1"
+SLOT="${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="+shared"
+
+src_install() {
+ insinto /usr/share/wine/mono
+
+ if use shared; then
+ doins -r ${P}
+ else
+ doins "${DISTDIR}"/${P}-x86.msi
+ fi
+}
diff --git a/app-emulation/wine-proton/Manifest b/app-emulation/wine-proton/Manifest
new file mode 100644
index 000000000000..34b2254d80d2
--- /dev/null
+++ b/app-emulation/wine-proton/Manifest
@@ -0,0 +1,2 @@
+DIST proton-wine-7.0-6.tar.gz 45780326 BLAKE2B f140fcfdd1a47904c34a49d0795fa3326d7cf0d3fac8d6c2ef2a4926181a46223f43a2d1ca96c543e800c8c46b2a3cc51ae306a029d68a42608876e869e177d5 SHA512 793bbe2b23042301a1b518717d78cfff01eaffa0388883d010659a45779b9136d33cfac63f0c3fbb1e458953a954b423eb70ac4fa87633352267db890ceb2fef
+DIST proton-wine-8.0-5c.tar.gz 48710071 BLAKE2B 99627baea6fb3d51231aa1e75a2734c3c1baba88326baf15b3d421d57a00472d25ba51c2140b51152c8aeae7dd240d3d77bb0d8835aa7eb3b745a51be120f8bb SHA512 0cf98d4e67866e55cc8cd5ea8da0d76aee8e37b130b3cbca604083c913e98ddf9038ecd6f9761d2e11443e282b372977400e251456c6d40e1365210c7578234d
diff --git a/app-emulation/wine-proton/files/README.gentoo b/app-emulation/wine-proton/files/README.gentoo
new file mode 100644
index 000000000000..48f3d568a013
--- /dev/null
+++ b/app-emulation/wine-proton/files/README.gentoo
@@ -0,0 +1,52 @@
+While this version of Wine is usable independently, it does contain some
+Steam-oriented changes that may be unexpected. Notably C:\users\steamuser
+is used rather than C:\users\<user-name> and it may be necessary to move
+files if converting from non-proton Wine prefixes (like games' save files).
+
+To keep a low maintenance cost, these changes are not reverted in Gentoo
+with the exception of re-enabling winemenubuilder for desktop entries.
+
+Also, given this Wine variant is oriented toward running games, some
+normally unrelated features (e.g. cups) may not have real upstream
+(Valve) support. Because of this, some are left always disabled.
+
+If needed, use other variants for the more expected Wine behavior.
+
+---
+
+Given Proton is not creating the Wine prefixes, some features are not
+enabled by default and PROTON_* variables to control them are unrecognized.
+
+To (optionally) setup some notable defaults of Proton:
+- export WINEFSYNC=1
+. Often improves performance for CPU-bound applications, recommended
+. but should be left disabled if get crashes mentioning fsync errors.
+. >Requires linux kernel >=5.16 if unpatched.
+- export WINE_LARGE_ADDRESS_AWARE=1
+. Allows 32bit applications to access more memory, notably helps
+. prevent crashes on memory-heavy applications while using dxvk below.
+- WINEPREFIX=/path/to setup_dxvk.sh install --symlink
+. Vulkan-based d3d9/10/11 that often provides both better performance
+. and compatibility (strongly recommended).
+. >Requires app-emulation/dxvk
+- WINEPREFIX=/path/to setup_vkd3d_proton.sh install --symlink
+. Like above, but for d3d12. Wine also supports vkd3d as-is but this
+. is the modified fork used by Proton (may or may not be better).
+. Intended to work with dxvk's dxgi.dll so, if used, install both.
+. >Requires app-emulation/vkd3d-proton
+
+For some applications it may be better to disable these or do other
+workarounds, see https://www.protondb.com/ for specific information.
+
+Many other proton-specific improvements / fixes are always enabled, and
+some game-specific quirks are auto-enabled as needed (can see a few from
+running winecfg).
+
+If have audio/video playback issues, note to look at GStreamer plugins.
+Notably USE=ffmpeg on media-plugins/gst-plugins-meta which Proton normally
+provide by default.
+
+---
+
+If have other Wine variants installed, remember to either use `eselect wine`
+to select this variant or call it as wine-proton.
diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch
new file mode 100644
index 000000000000..0776df12f241
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-musl.patch
@@ -0,0 +1,17 @@
+Wrongly assumes that futex_waitv is missing if no glibc-only __NR_futex_waitv.
+https://bugs.gentoo.org/868747
+--- a/configure.ac
++++ b/configure.ac
+@@ -2153,2 +2153,5 @@
+
++dnl Check for futex_waitv structure members
++AC_CHECK_MEMBERS(struct futex_waitv.val,,,[#include <linux/futex.h>])
++
+ dnl Check for socket structure members
+--- a/dlls/ntdll/unix/fsync.c
++++ b/dlls/ntdll/unix/fsync.c
+@@ -67,2 +67,4 @@
+ # define __NR_futex_waitv 449
++#endif
++#ifndef HAVE_STRUCT_FUTEX_WAITV_VAL
+ # define FUTEX_32 2
diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch
new file mode 100644
index 000000000000..92aa0b4b5c5d
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-noexecstack.patch
@@ -0,0 +1,7 @@
+Also write GNU-stack note on dummy files used for stub libraries.
+--- a/tools/winebuild/import.c
++++ b/tools/winebuild/import.c
+@@ -1675,2 +1675,3 @@
+ output( "\t.text\n" );
++ output_gnu_stack_note();
+ }
diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch
new file mode 100644
index 000000000000..760340791060
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-restore-menubuilder.patch
@@ -0,0 +1,14 @@
+Without Steam there is no launcher by default, users with more custom
+setups may not need this but others will want access to desktop entries.
+--- a/configure.ac
++++ b/configure.ac
+@@ -3683,2 +3683,3 @@
+ WINE_CONFIG_MAKEFILE(programs/winefile)
++WINE_CONFIG_MAKEFILE(programs/winemenubuilder)
+ WINE_CONFIG_MAKEFILE(programs/winemine)
+--- a/loader/wine.inf.in
++++ b/loader/wine.inf.in
+@@ -5630,2 +5630,3 @@
+ [Services]
++HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r"
+ HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16
diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch b/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch
new file mode 100644
index 000000000000..372def52ba0c
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-7.0.4-unwind.patch
@@ -0,0 +1,40 @@
+Fix build with llvm-libunwind, and also fix for non-llvm libunwind
+when using clang+bfd given clang doesn't have _Unwind_Find_FDE in
+its rtlib and expects it from llvm-libunwind.
+
+The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
+--- a/dlls/ntdll/unix/signal_x86_64.c
++++ b/dlls/ntdll/unix/signal_x86_64.c
+@@ -646,7 +646,9 @@
+ unsigned int cie_offset;
+ };
+
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
++#endif
+
+ static unsigned char dwarf_get_u1( const unsigned char **p )
+ {
+@@ -1368,7 +1370,7 @@
+ unw_proc_info_t info;
+ int rc;
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__)
+ rc = unw_getcontext( &unw_context );
+ if (rc == UNW_ESUCCESS)
+ rc = unw_init_local( &cursor, &unw_context );
+@@ -1491,11 +1493,13 @@
+ NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context )
+ {
+ struct dwarf_eh_bases bases;
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases );
+
+ if (fde)
+ return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde,
+ &bases, &dispatch->LanguageHandler, &dispatch->HandlerData );
++#endif
+ #ifdef HAVE_LIBUNWIND
+ return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context,
+ &dispatch->LanguageHandler, &dispatch->HandlerData );
diff --git a/app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch b/app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch
new file mode 100644
index 000000000000..54ecc49c7235
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-7.0.6-mingw64-11.0.0.patch
@@ -0,0 +1,20 @@
+Hack: this does not actually need stdarg.h, but including it ensures
+that _mingw.h will be loaded before the rest of Wine's winnt.h avoiding
+issues with mingw64-runtime-11.0.0, e.g.:
+
+ _mingw.h:602:60: error: redefinition of ‘__fastfail’
+ make[1]: *** [Makefile:5900: dlls/advapi32/crypt_des.cross.o] Error 1
+
+(other crypt_*.c happen to include stdarg.h first and don't fail, but this
+one does not, same for several other files in dlls/)
+
+Not an issue with non-proton Wine 7.0 as Wine did not define __fastfail
+until ~wine-7.10. Wine 8 does define it but does not seem to be a problem
+there (perhaps due to different header layout). A more "right" fix would
+be welcome, but given Proton-7 seems EOL it is not judged important.
+--- a/include/winnt.h
++++ b/include/winnt.h
+@@ -32,2 +32,3 @@
+ #include <string.h>
++#include <stdarg.h>
+ #endif
diff --git a/app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch b/app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch
new file mode 100644
index 000000000000..50fc5be57abc
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-8.0.1c-unwind.patch
@@ -0,0 +1,36 @@
+Fix build with llvm-libunwind, and also fix for non-llvm libunwind
+when using clang+bfd given clang doesn't have _Unwind_Find_FDE in
+its rtlib and expects it from llvm-libunwind.
+
+The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
+--- a/dlls/ntdll/unix/dwarf.h
++++ b/dlls/ntdll/unix/dwarf.h
+@@ -257,5 +257,7 @@
+ };
+
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
++#endif
+
+ static unsigned char dwarf_get_u1( const unsigned char **p )
+--- a/dlls/ntdll/unix/signal_x86_64.c
++++ b/dlls/ntdll/unix/signal_x86_64.c
+@@ -648,5 +648,5 @@
+ int rc;
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__)
+ rc = unw_getcontext( &unw_context );
+ if (rc == UNW_ESUCCESS)
+@@ -774,4 +774,5 @@
+ CONTEXT *context = params->context;
+ struct dwarf_eh_bases bases;
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases );
+
+@@ -779,4 +780,5 @@
+ return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde,
+ &bases, &dispatch->LanguageHandler, &dispatch->HandlerData );
++#endif
+ #ifdef HAVE_LIBUNWIND
+ return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context,
diff --git a/app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch b/app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch
new file mode 100644
index 000000000000..f278a2cbc264
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-8.0.4-restore-menubuilder.patch
@@ -0,0 +1,8 @@
+Without Steam there is no launcher by default, users with more custom
+setups may not need this but others will want access to desktop entries.
+--- a/loader/wine.inf.in
++++ b/loader/wine.inf.in
+@@ -5630,2 +5630,3 @@
+ [Services]
++HKLM,%CurrentVersion%\RunServices,"winemenubuilder",2,"%11%\winemenubuilder.exe -a -r"
+ HKLM,"System\CurrentControlSet\Services\Eventlog\Application",,16
diff --git a/app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch b/app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch
new file mode 100644
index 000000000000..78e4393d390d
--- /dev/null
+++ b/app-emulation/wine-proton/files/wine-proton-9.0-rpath.patch
@@ -0,0 +1,14 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -813,8 +813,11 @@
+ ;;
+ esac
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"])
+ ;;
+ esac
+
+ enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
diff --git a/app-emulation/wine-proton/metadata.xml b/app-emulation/wine-proton/metadata.xml
new file mode 100644
index 000000000000..cc21bdb8ce89
--- /dev/null
+++ b/app-emulation/wine-proton/metadata.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ionen@gentoo.org</email>
+ <name>Ionen Wolkens</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>wine@gentoo.org</email>
+ <name>Wine</name>
+ </maintainer>
+ <use>
+ <flag name="crossdev-mingw">
+ Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than
+ <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up)
+ </flag>
+ <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag>
+ <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag>
+ <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag>
+ <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag>
+ <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag>
+ <flag name="vkd3d">Enable DirectX 12 support using <pkg>app-emulation/vkd3d</pkg></flag>
+ <flag name="wow64">
+ Enable running 32bit applications without 32bit ELF
+ multilib by mapping to 64bit calls (experimental,
+ *may* have worse/unusable OpenGL performance or other
+ issues compared to USE=abi_x86_32, also lacks 16bit
+ support) -- still need <pkg>dev-util/mingw64-toolchain</pkg>
+ with abi_x86_32 which itself does not need multilib
+ </flag>
+ </use>
+ <upstream>
+ <changelog>https://github.com/ValveSoftware/Proton/wiki/Changelog</changelog>
+ <remote-id type="github">ValveSoftware/wine</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/app-emulation/wine-proton/wine-proton-7.0.6.ebuild b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild
new file mode 100644
index 000000000000..25ee6175708f
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-7.0.6.ebuild
@@ -0,0 +1,369 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.3
+WINE_MONO=7.4.0
+WINE_PV=$(ver_rs 2 -)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
+ EGIT_BRANCH="experimental_$(ver_cut 1-2)"
+else
+ SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-wine-${WINE_PV}"
+ KEYWORDS="-* amd64 ~x86"
+fi
+
+DESCRIPTION="Valve Software's fork of Wine"
+HOMEPAGE="https://github.com/ValveSoftware/wine/"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags debug
+ +fontconfig +gecko +gstreamer llvm-libunwind +mono nls openal
+ osmesa perl pulseaudio +sdl selinux +ssl udev udisks +unwind usb
+ v4l +vkd3d +xcomposite xinerama
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
+ media-libs/freetype[${MULTILIB_USEDEP}]
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ media-libs/vulkan-loader[${MULTILIB_USEDEP}]
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? (
+ dev-libs/gmp:=[${MULTILIB_USEDEP}]
+ net-libs/gnutls:=[${MULTILIB_USEDEP}]
+ )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ x11-base/xorg-proto
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ sys-devel/binutils
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900332)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.4-musl.patch
+ "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.0.4-restore-menubuilder.patch
+ "${FILESDIR}"/${PN}-7.0.4-unwind.patch
+ "${FILESDIR}"/${PN}-7.0.6-mingw64-11.0.0.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ eerror "--> Note that mingw builds are default for ${PN} even without this USE."
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # and it still gets used in install phase despite --with-mingw,
+ # drop as a quick fix for now which hopefully should be safe
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # similarly to staging, append to `wine --version` for identification
+ sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-proton
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ # upstream (Valve) doesn't really support misc configurations (e.g.
+ # adds vulkan code not always guarded by --with-vulkan), so force
+ # some major options that are typically needed by games either way
+ --with-freetype
+ --with-mingw # needed by many, notably Blizzard titles
+ --with-opengl
+ --with-vulkan
+ --with-x
+
+ # ...and disable most options unimportant for games and unused by
+ # Proton rather than expose as volatile USEs with little support
+ --without-capi
+ --without-cups
+ --without-gphoto
+ --without-gssapi
+ --without-krb5
+ --without-ldap
+ --without-netapi
+ --without-opencl
+ --without-pcap
+ --without-sane
+ ac_cv_lib_soname_odbc=
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+ $(use_with alsa)
+ $(use_with fontconfig)
+ $(use_with gstreamer)
+ $(use_with nls gettext)
+ $(use_with openal)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pulseaudio pulse)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vkd3d)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-proton-9 has proper fixes and builds with gcc-14, but would
+ # rather not have to worry about fixing old branches (bug #924486)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
+ if (( bits == 64 )); then
+ : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+ : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
+
+ # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
+ : "${CROSSCFLAGS:=$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-cflags -mno-avx #912268
+
+ CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
+ : "${CROSSLDFLAGS:=$(
+ filter-flags '-fuse-ld=*'
+ CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
+ export CROSS{CC,{C,LD}FLAGS}
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # symlink for plain 'wine' and install its man pages if 64bit-only #404331
+ if use abi_x86_64 && use !abi_x86_32; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+ use debug ||
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
+
+ dodoc ANNOUNCE AUTHORS README* documentation/README*
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
+}
+
+pkg_postinst() {
+ [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog
+
+ if use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
new file mode 100644
index 000000000000..9d8a60b340e9
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-8.0.5c.ebuild
@@ -0,0 +1,386 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.3
+WINE_MONO=8.1.0
+WINE_PV=$(ver_rs 2 -)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
+ EGIT_BRANCH="experimental_$(ver_cut 1-2)"
+else
+ SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-wine-${WINE_PV}"
+ KEYWORDS="-* amd64 ~x86"
+fi
+
+DESCRIPTION="Valve Software's fork of Wine"
+HOMEPAGE="https://github.com/ValveSoftware/wine/"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags
+ +fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa
+ perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind
+ usb v4l video_cards_amdgpu +xcomposite xinerama
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
+ media-libs/freetype[${MULTILIB_USEDEP}]
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ media-libs/vulkan-loader[${MULTILIB_USEDEP}]
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? (
+ dev-libs/gmp:=[${MULTILIB_USEDEP}]
+ net-libs/gnutls:=[${MULTILIB_USEDEP}]
+ )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+"
+# gcc: for -latomic with clang
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ sys-devel/gcc:*
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ x11-base/xorg-proto
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ sys-devel/binutils
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900332)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.4-musl.patch
+ "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
+ "${FILESDIR}"/${PN}-8.0.1c-unwind.patch
+ "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ eerror "--> Note that mingw builds are default for ${PN} even without this USE."
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # and it still gets used in install phase despite --with-mingw,
+ # drop as a quick fix for now which hopefully should be safe
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+
+ # needed by Valve's fsync patches if using clang (undef atomic_load_8)
+ sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+ -i dlls/{ntdll,winevulkan}/Makefile.in || die
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # similarly to staging, append to `wine --version` for identification
+ sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ dlls/winevulkan/make_vulkan -x vk.xml || die # python, needed for proton's
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-proton
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ # upstream (Valve) doesn't really support misc configurations (e.g.
+ # adds vulkan code not always guarded by --with-vulkan), so force
+ # some major options that are typically needed by games either way
+ # TODO?: --without-mingw could make sense *if* using clang, assuming
+ # bug #912237 is resolved (consider when do USE=wow64 in proton-9)
+ --with-freetype
+ --with-mingw # needed by many, notably Blizzard titles
+ --with-opengl
+ --with-vulkan
+ --with-x
+
+ # ...and disable most options unimportant for games and unused by
+ # Proton rather than expose as volatile USEs with little support
+ --without-capi
+ --without-cups
+ --without-gphoto
+ --without-gssapi
+ --without-krb5
+ --without-netapi
+ --without-opencl
+ --without-pcap
+ --without-sane
+ ac_cv_lib_soname_odbc=
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ $(use_enable video_cards_amdgpu amd_ags_x64)
+ --disable-tests
+ $(use_with alsa)
+ $(use_with fontconfig)
+ $(use_with gstreamer)
+ $(use_with nls gettext)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pulseaudio pulse)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-proton-9 has proper fixes and builds with gcc-14, but would
+ # rather not have to worry about fixing old branches (bug #924486)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ pe_arch=i386
+ if (( bits == 64 )); then
+ pe_arch=x86_64
+ : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+ : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
+
+ # CROSSCC is no longer recognized by Wine, but still use for now
+ # (future handling for CROSS* variables is subject to changes)
+ conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
+
+ # use *FLAGS for mingw, but strip unsupported
+ : "${CROSSCFLAGS:=$(
+ # >=wine-7.21 <8.10's configure.ac does not pass -fno-strict when
+ # it should (can be removed when proton is rebased on >=8.10)
+ append-cflags -fno-strict-aliasing
+
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-cflags -mno-avx #912268
+
+ CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
+ : "${CROSSLDFLAGS:=$(
+ filter-flags '-fuse-ld=*'
+ CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
+ export CROSS{C,LD}FLAGS
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # symlink for plain 'wine' and install its man pages if 64bit-only #404331
+ if use abi_x86_64 && use !abi_x86_32; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
+}
+
+pkg_postinst() {
+ [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog
+
+ if use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild
new file mode 100644
index 000000000000..fda342d879f2
--- /dev/null
+++ b/app-emulation/wine-proton/wine-proton-9.0.9999.ebuild
@@ -0,0 +1,420 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools flag-o-matic multilib multilib-build prefix
+inherit python-any-r1 readme.gentoo-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+WINE_PV=$(ver_rs 2 -)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/ValveSoftware/wine.git"
+ EGIT_BRANCH="experimental_$(ver_cut 1-2)"
+else
+ SRC_URI="https://github.com/ValveSoftware/wine/archive/refs/tags/proton-wine-${WINE_PV}.tar.gz"
+ S="${WORKDIR}/${PN}-wine-${WINE_PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Valve Software's fork of Wine"
+HOMEPAGE="https://github.com/ValveSoftware/wine/"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +abi_x86_32 +abi_x86_64 +alsa crossdev-mingw custom-cflags
+ +fontconfig +gecko +gstreamer llvm-libunwind +mono nls osmesa
+ perl pulseaudio +sdl selinux +ssl +strip udev udisks +unwind
+ usb v4l video_cards_amdgpu wow64 +xcomposite xinerama
+"
+REQUIRED_USE="wow64? ( abi_x86_64 !abi_x86_32 )"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ dev-libs/libgcrypt:=[${MULTILIB_USEDEP}]
+ media-libs/freetype[${MULTILIB_USEDEP}]
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ media-libs/vulkan-loader[${MULTILIB_USEDEP}]
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? (
+ dev-libs/gmp:=[${MULTILIB_USEDEP}]
+ net-libs/gnutls:=[${MULTILIB_USEDEP}]
+ )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+"
+# gcc: for -latomic with clang
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ sys-devel/gcc:*
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ x11-libs/libdrm[video_cards_amdgpu?,${MULTILIB_USEDEP}]
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[opengl,${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ x11-base/xorg-proto
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900332)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0.4-musl.patch
+ "${FILESDIR}"/${PN}-7.0.4-noexecstack.patch
+ "${FILESDIR}"/${PN}-8.0.1c-unwind.patch
+ "${FILESDIR}"/${PN}-8.0.4-restore-menubuilder.patch
+ "${FILESDIR}"/${PN}-9.0-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ eerror "--> Note that mingw builds are default for ${PN} even without this USE."
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # and it still gets used in install phase despite --with-mingw,
+ # drop as a quick fix for now which hopefully should be safe
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+
+ # needed by Valve's fsync patches if using clang (undef atomic_load_8)
+ sed -e '/^UNIX_LIBS.*=/s/$/ -latomic/' \
+ -i dlls/{ntdll,winevulkan}/Makefile.in || die
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # similarly to staging, append to `wine --version` for identification
+ sed -i "s/wine_build[^1]*1/& (Proton-${WINE_PV})/" configure.ac || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # proton variant also needs specfiles and vulkan
+ tools/make_specfiles || die # perl
+ dlls/winevulkan/make_vulkan -x vk.xml || die # python
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-proton
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ # upstream (Valve) doesn't really support misc configurations (e.g.
+ # adds vulkan code not always guarded by --with-vulkan), so force
+ # some major options that are typically needed by games either way
+ # TODO?: --without-mingw could make sense *if* using clang, assuming
+ # bug #912237 is resolved (consider when do USE=wow64 in proton-9)
+ --with-freetype
+ --with-mingw # needed by many, notably Blizzard titles
+ --with-opengl
+ --with-vulkan
+ --with-x
+
+ # ...and disable most options unimportant for games and unused by
+ # Proton rather than expose as volatile USEs with little support
+ --without-capi
+ --without-cups
+ --without-gphoto
+ --without-gssapi
+ --without-krb5
+ --without-netapi
+ --without-opencl
+ --without-pcap
+ --without-pcsclite
+ --without-sane
+ ac_cv_lib_soname_odbc=
+
+ # afaik wayland support in 9.0.x currently cannot do opengl/vulkan
+ # yet making it mostly pointless for a gaming-oriented build
+ # (IUSE="X wayland" may be added in wine-proton-10 or 11)
+ --without-wayland
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ $(use_enable video_cards_amdgpu amd_ags_x64)
+ --disable-tests
+ $(use_with alsa)
+ $(use_with fontconfig)
+ $(use_with gstreamer)
+ $(use_with nls gettext)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pulseaudio pulse)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+
+ --without-vosk # unpackaged, file a bug if you need this
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+ readme.gentoo_create_doc
+}
+
+pkg_preinst() {
+ has_version ${CATEGORY}/${PN} && WINE_HAD_ANY_SLOT=
+}
+
+pkg_postinst() {
+ [[ -v WINE_HAD_ANY_SLOT ]] || readme.gentoo_print_elog
+
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/Manifest b/app-emulation/wine-staging/Manifest
index 09f96cfd41f8..4ae8f88e9f68 100644
--- a/app-emulation/wine-staging/Manifest
+++ b/app-emulation/wine-staging/Manifest
@@ -1,9 +1,8 @@
-DIST gentoo-wine-patches-20200523.tar.xz 59740 BLAKE2B 951d7f305a6e5b3759c8095629d48de4830b8a0c9558de859a9e02d9824fe85553fda2bc0820ca97022a0ca63ac28473dadfe827821220445dbf1a7fd15c7c98 SHA512 46eea45c982b475e3ff444cbd87c6a0a235fc8dcaf3d83d89655a10ed8841a9ddb09e5a638a05803f3bf2c3bd34165c16067aba561efa4c183ee396dc31cdf75
-DIST wine-5.17.tar.xz 24064512 BLAKE2B a84433ff7bb93a1f43c41f3106ff3f9c648631665100e8140340ab7d347daf6f2c3b54ea8177e1a2c2222574aa67264f5b576d99f6ef461548c74af48c62eb62 SHA512 05338036fa9b195d9cf8a84a1bcc03f35422d5f07744ec4430f20874601829be5904be10060353599cb0187728123f959ccc75e79f1ce1c47178ae9cd55ef696
-DIST wine-5.18.tar.xz 24160316 BLAKE2B 4f359b6e869707a514d2198d2b8ba810b8552ea53ff3f37cbc7c23b732152db0fa5c0c909d2c16a03f6b0ff122435c92f8a9b8b462577aa50a39b2dcfa7bcd05 SHA512 70565fbea61b78580ca86443fcb4c10c7814c1dffcfa49ee38746fef21a52a00f2e040d9d2515892fed4021e7868720cc22b650d18872656838e4610d4d4e823
-DIST wine-5.19.tar.xz 24201860 BLAKE2B 34233747a58e2cf6c9b6b328cb8c0af5707479e02d20365da07d039163757c6557d25ec8136933fd9bd5a7aeb360d96e44c41c34fffb26a23f9e3ea137f03120 SHA512 b91eb1cb1225ac8abe26f5c5dd74fb376e6489b460035c70e6c7890595086e99273497741b6a736ef4884ae7bacc44482d2e3e8ba7e8d85c78c571bd4b133d8a
-DIST wine-5.20.tar.xz 24177960 BLAKE2B 50169bc00497feef91f5cf7fd56bce8f7784f70d2a24776494d0ab98cdb70b4387a92dece4571b2b22b15c42d82672595f39079a0678e551331f2bee4460f0f8 SHA512 30299287857376a827579335ba410d0575379df300860c8fdd50473f3eec074372d3602e5027f9e75fb13e272f28f51950ec652109839573a168aed23ba9c8f4
-DIST wine-staging-5.17.tar.gz 10342408 BLAKE2B aa8f864560eb476a4c2011e588df9b24410e4e4a8d6c8d81b5ff63208b3b4474870ae8bd718ba22cdb14b920b52aeac54274710bdb1b4dd427b7c7b0e8e9d14b SHA512 38c9860c8109e29026dd773a6448c9ac6faa373c0dfc04011a5f0b22be69c66dd6bdba95cb28bfb8e3656a53d726f2ffc0bae74bce4d437c4fe5a532e75a19ec
-DIST wine-staging-5.18.tar.gz 10357038 BLAKE2B 07df0de55d1bfa36d3492498a48d8f1402dffa161f3b02f3326185d524bea9a2f0893b85a70650797bf1b74c06f5814ddc09cb184a5977cfacb968921020aee1 SHA512 75911ac4d5aaf6cfef41aa487290369d714f153b1fba2279daca75d6c5cbc7e7de9d3f8ef55eb7c311a05b86a212163e2b81ff685c1527fb0e90f223ec23dcab
-DIST wine-staging-5.19.tar.gz 10348478 BLAKE2B 4c23d3f488fc7dcbd98abea0593767401711ac0ed533cba144e82fd38f1349ba557aeedf6faac898de107d2b55ba41030cde111272f63ebb7ba25952bf9824d9 SHA512 4335ce48437641bbfd8b882cc92cd2970493586f4ac6501ffb94a0f2dcd38ec632d6afabf71d2c1ab1806a5cf594c2988f94a86c508fcd24a7d42078c662add9
-DIST wine-staging-5.20.tar.gz 10378427 BLAKE2B 75910b198ca5b79f41f4aa115a962cb01a4dd208512feffc2ef9bc327d9c82d0c0babd543ea011917257c5dfd7c5f2f2815dae81d553dd4b239b627bafba1635 SHA512 64913c3af44890a959593c610c713113f068811a8fe79e234a61f262af963d194d1d71d336361c6a473ad0f3f64fc5a88cee36facdc0824cea6856fc74da9634
+DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
+DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91
+DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922
+DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80
+DIST wine-staging-9.0.tar.gz 9577631 BLAKE2B 0012978f54c618e73d407dd49dccff02853912d0c015098889802518e8c51b280f5d60e11291335dafc68944ee01cbcb7fd6c5825ef10ae1520c7b82d9846718 SHA512 362209fcadcf029152b681c76beb231d0cc8de1609b994094f1dc88ab871fddda08b3d8c2fe36ceb38909a9d634c1ade864ca0f28a6a7715ec286a8b2884981f
+DIST wine-staging-9.5.tar.gz 9526239 BLAKE2B a6f5a351a3979fc81a0d8c6325da4f08021d19eb7ac6ad52906a6fcf19552f01bdc8fbebc9b33fc82e14cdd6e6d50347dc7bc73e622d589d2e9eec5d577d3158 SHA512 8c756fe505092e21dd37c709ac3917c305b70881c05270f0e188ccdf9ff36b9fd224adad424d37c6919637d2af55afbfba49079eb5b6708a6cf4f2dd98966784
+DIST wine-staging-9.6.tar.gz 9522775 BLAKE2B 5598d408774e3142d6de5ccddccb68d8e1e4544c43b5691751599e6b86df6b8899f6113b8b58d75fb8e032a6c7aed9ffbb3ecb1553aa2d7593d69513e9a0177a SHA512 83691eb560c860d40669a524196a522007c76420b5b5076da4f446a4180fee7558ef228cf1f4179eb78a6d36c8ab78fd2784ffc879b0aacbef7c72a7f88e7ed2
+DIST wine-staging-9.7.tar.gz 9573710 BLAKE2B 34eee97f51268c07d649f0ed498b5e92bbc8bb1d8cee860040ee660d968307a7d9d3b59305567c50338d2ce97b3071f615b8782ca74716b42904ae4514404316 SHA512 3c5f100f715c6b3399c356b304b8eca1e51706e03782f2f834965474a7efeca4174ae806dff85080cded93501e9cfcd097eca43230d9425c78ae73a6f4485c76
diff --git a/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch b/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch
new file mode 100644
index 000000000000..4baa48cfc140
--- /dev/null
+++ b/app-emulation/wine-staging/files/wine-staging-7.17-noexecstack.patch
@@ -0,0 +1,7 @@
+Also write GNU-stack note on dummy files used for stub libraries.
+--- a/tools/winebuild/import.c
++++ b/tools/winebuild/import.c
+@@ -1676,2 +1676,3 @@
+ output( "\t.text\n" );
++ output_gnu_stack_note();
+ }
diff --git a/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch b/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch
new file mode 100644
index 000000000000..f130ef5c23b3
--- /dev/null
+++ b/app-emulation/wine-staging/files/wine-staging-7.20-unwind.patch
@@ -0,0 +1,36 @@
+Fix build with llvm-libunwind, and also fix for non-llvm libunwind
+when using clang+bfd given clang doesn't have _Unwind_Find_FDE in
+its rtlib and expects it from llvm-libunwind.
+
+The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
+--- a/dlls/ntdll/unix/dwarf.h
++++ b/dlls/ntdll/unix/dwarf.h
+@@ -255,5 +255,7 @@
+ };
+
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
++#endif
+
+ static unsigned char dwarf_get_u1( const unsigned char **p )
+--- a/dlls/ntdll/unix/signal_x86_64.c
++++ b/dlls/ntdll/unix/signal_x86_64.c
+@@ -632,5 +632,5 @@
+ int rc;
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__)
+ rc = unw_getcontext( &unw_context );
+ if (rc == UNW_ESUCCESS)
+@@ -755,4 +755,5 @@
+ {
+ struct dwarf_eh_bases bases;
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases );
+
+@@ -760,4 +761,5 @@
+ return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde,
+ &bases, &dispatch->LanguageHandler, &dispatch->HandlerData );
++#endif
+ #ifdef HAVE_LIBUNWIND
+ return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context,
diff --git a/app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch b/app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch
new file mode 100644
index 000000000000..5f0d63b0ec33
--- /dev/null
+++ b/app-emulation/wine-staging/files/wine-staging-8.13-rpath.patch
@@ -0,0 +1,15 @@
+Patch Source: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/wine/rpath.patch
+Alpine Bug: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13249
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -784,6 +784,9 @@ case $host_os in
+ [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"])
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"])
+ ;;
+ esac
+
diff --git a/app-emulation/wine-staging/metadata.xml b/app-emulation/wine-staging/metadata.xml
index 47f226562ce0..e20c128974c9 100644
--- a/app-emulation/wine-staging/metadata.xml
+++ b/app-emulation/wine-staging/metadata.xml
@@ -1,13 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>wine@gentoo.org</email>
<name>Wine</name>
- <description>
- This package must be kept in sync with repo/proj/wine repository.
- Any changes need to be run past the maintainer to ensure the two repositories are kept in sync.
- </description>
</maintainer>
<longdescription>
Wine is an Open Source implementation of the Windows API on top of X and Unix.
@@ -17,39 +13,32 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n
This variant of the Wine packaging includes the Wine-Staging patchset.
</longdescription>
<use>
- <flag name="capi">Enable ISDN support via CAPI</flag>
- <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag>
+ <flag name="capi">Enable ISDN support using <pkg>net-libs/libcapi</pkg></flag>
+ <flag name="crossdev-mingw">
+ Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than
+ <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up)
+ </flag>
<flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag>
- <flag name="faudio">Pull in <pkg>app-emulation/faudio</pkg> to provide XAudio2 functionality</flag>
- <flag name="gcrypt">Add support for the Diffie-Hellman key exchanges using dev-libs/libgcrypt</flag>
- <flag name="gecko">Add support for the Gecko engine when using iexplore</flag>
- <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag>
- <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;</flag>
- <flag name="mono">Add support for .NET using Wine's Mono add-on</flag>
- <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> to support Windows networks in netapi32.dll</flag>
- <flag name="opencl">Enable OpenCL support</flag>
- <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag>
+ <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag>
+ <flag name="mingw">Build PE files using a MinGW toolchain for better compatibility</flag>
+ <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag>
+ <flag name="netapi">Enable support for configuring remote shares using <pkg>net-fs/samba</pkg></flag>
+ <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag>
<flag name="pcap">Support packet capture software (e.g. wireshark)</flag>
- <flag name="perl">Install helpers written in perl (winedump/winemaker)</flag>
- <flag name="pipelight">Apply Wine-Staging patches for Pipelight/Silverlight support</flag>
- <flag name="prelink">Run prelink on DLLs during build;
- For Gentoo hardened, do not disable if you do not know what this means as it can break things at runtime</flag>
- <flag name="realtime">Pull in <pkg>sys-auth/rtkit</pkg> for low-latency pulseaudio support</flag>
- <flag name="run-exes">Use Wine to open and run .EXE and .MSI files</flag>
- <flag name="samba">Add support for NTLM auth. See:
- https://web.archive.org/web/20160108123008/http://wiki.winehq.org:80/NtlmAuthSetupGuide and
- https://web.archive.org/web/20150906013746/http://wiki.winehq.org/NtlmSigningAndSealing
- (these pages are not currently in the updated WineHQ Wiki).</flag>
- <flag name="sdl">Add support for gamepad detection using SDL</flag>
- <flag name="staging">Apply Wine-Staging patches for advanced feature support that haven't made it into upstream Wine yet</flag>
- <flag name="themes">Support GTK+:3 window theming through Wine-Staging</flag>
- <flag name="udev">Use <pkg>virtual/libudev</pkg> to provide plug and play support</flag>
- <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> to unwind the stack</flag>
- <flag name="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag>
- <flag name="vulkan">Enable Vulkan drivers</flag>
+ <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag>
+ <flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag>
+ <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag>
+ <flag name="wow64">
+ Enable running 32bit applications without 32bit ELF
+ multilib by mapping to 64bit calls (experimental,
+ *may* have worse/unusable OpenGL performance or other
+ issues compared to USE=abi_x86_32, also lacks 16bit
+ support) -- still need <pkg>dev-util/mingw64-toolchain</pkg>
+ with abi_x86_32 which itself does not need multilib
+ </flag>
</use>
<upstream>
- <remote-id type="github">wine-compholio/wine-staging</remote-id>
- <remote-id type="sourceforge">wine</remote-id>
+ <bugs-to>https://bugs.winehq.org/describecomponents.cgi?product=Wine-staging</bugs-to>
+ <remote-id type="github">wine-staging/wine-staging</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/wine-staging/wine-staging-5.17.ebuild b/app-emulation/wine-staging/wine-staging-5.17.ebuild
deleted file mode 100644
index 674958ea886a..000000000000
--- a/app-emulation/wine-staging/wine-staging-5.17.ebuild
+++ /dev/null
@@ -1,621 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-STAGING_P="wine-staging-${PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- pipelight? ( staging )
- test? ( abi_x86_32 )
- themes? ( staging )
- vaapi? ( staging )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
- themes? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- x11-libs/gtk+:3[${MULTILIB_USEDEP}]
- )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
- vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.0 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- staging? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${pn_live_val} ]]; then
- if use staging; then
- eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
- eerror "cannot be used to set the commit. Instead, you may use the"
- eerror "environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
- fi
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- if use staging; then
- local CURRENT_WINE_COMMIT=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
- einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
- einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
- fi
- fi
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- if use staging; then
- ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
- ewarn "Wine bugzilla should explicitly state that staging was used."
-
- local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
- use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
-
- # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
- ebegin "Running Wine-Staging patch installer"
- (
- set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
- cd "${STAGING_DIR}/patches"
- source "${STAGING_DIR}/patches/patchinstall.sh"
- )
- eend $? || die "Failed to apply Wine-Staging patches"
- fi
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gcrypt)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- else
- if use staging; then
- eselect wine deregister --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-staging/wine-staging-5.18.ebuild b/app-emulation/wine-staging/wine-staging-5.18.ebuild
deleted file mode 100644
index 5b6a507ddc06..000000000000
--- a/app-emulation/wine-staging/wine-staging-5.18.ebuild
+++ /dev/null
@@ -1,621 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-STAGING_P="wine-staging-${PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- pipelight? ( staging )
- test? ( abi_x86_32 )
- themes? ( staging )
- vaapi? ( staging )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
- themes? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- x11-libs/gtk+:3[${MULTILIB_USEDEP}]
- )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.0 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- staging? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${pn_live_val} ]]; then
- if use staging; then
- eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
- eerror "cannot be used to set the commit. Instead, you may use the"
- eerror "environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
- fi
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- if use staging; then
- local CURRENT_WINE_COMMIT=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
- einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
- einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
- fi
- fi
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- if use staging; then
- ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
- ewarn "Wine bugzilla should explicitly state that staging was used."
-
- local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
- use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
-
- # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
- ebegin "Running Wine-Staging patch installer"
- (
- set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
- cd "${STAGING_DIR}/patches"
- source "${STAGING_DIR}/patches/patchinstall.sh"
- )
- eend $? || die "Failed to apply Wine-Staging patches"
- fi
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gcrypt)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- else
- if use staging; then
- eselect wine deregister --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-staging/wine-staging-5.19.ebuild b/app-emulation/wine-staging/wine-staging-5.19.ebuild
deleted file mode 100644
index 9c6e2a76fa30..000000000000
--- a/app-emulation/wine-staging/wine-staging-5.19.ebuild
+++ /dev/null
@@ -1,621 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-STAGING_P="wine-staging-${PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- pipelight? ( staging )
- test? ( abi_x86_32 )
- themes? ( staging )
- vaapi? ( staging )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
- themes? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- x11-libs/gtk+:3[${MULTILIB_USEDEP}]
- )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.1 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- staging? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${pn_live_val} ]]; then
- if use staging; then
- eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
- eerror "cannot be used to set the commit. Instead, you may use the"
- eerror "environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
- fi
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- if use staging; then
- local CURRENT_WINE_COMMIT=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
- einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
- einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
- fi
- fi
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- if use staging; then
- ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
- ewarn "Wine bugzilla should explicitly state that staging was used."
-
- local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
- use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
-
- # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
- ebegin "Running Wine-Staging patch installer"
- (
- set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
- cd "${STAGING_DIR}/patches"
- source "${STAGING_DIR}/patches/patchinstall.sh"
- )
- eend $? || die "Failed to apply Wine-Staging patches"
- fi
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gcrypt)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- else
- if use staging; then
- eselect wine deregister --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-staging/wine-staging-5.20.ebuild b/app-emulation/wine-staging/wine-staging-5.20.ebuild
deleted file mode 100644
index 9c6e2a76fa30..000000000000
--- a/app-emulation/wine-staging/wine-staging-5.20.ebuild
+++ /dev/null
@@ -1,621 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-STAGING_P="wine-staging-${PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
-fi
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- pipelight? ( staging )
- test? ( abi_x86_32 )
- themes? ( staging )
- vaapi? ( staging )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
- themes? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- x11-libs/gtk+:3[${MULTILIB_USEDEP}]
- )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.1 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- staging? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${pn_live_val} ]]; then
- if use staging; then
- eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
- eerror "cannot be used to set the commit. Instead, you may use the"
- eerror "environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
- fi
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- if use staging; then
- local CURRENT_WINE_COMMIT=${EGIT_VERSION}
-
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
- einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
- einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
- fi
- fi
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- if use staging; then
- ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
- ewarn "Wine bugzilla should explicitly state that staging was used."
-
- local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
- use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
-
- # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
- ebegin "Running Wine-Staging patch installer"
- (
- set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
- cd "${STAGING_DIR}/patches"
- source "${STAGING_DIR}/patches/patchinstall.sh"
- )
- eend $? || die "Failed to apply Wine-Staging patches"
- fi
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gcrypt)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- else
- if use staging; then
- eselect wine register --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- else
- if use staging; then
- eselect wine deregister --staging ${P} || die
- fi
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-staging/wine-staging-9.0.ebuild b/app-emulation/wine-staging/wine-staging-9.0.ebuild
new file mode 100644
index 000000000000..537675f10ba0
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.0.ebuild
@@ -0,0 +1,479 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools edo flag-o-matic multilib multilib-build
+inherit prefix python-any-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=8.1.0
+WINE_P=wine-$(ver_cut 1-2)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
+ WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="
+ https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
+ https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
+"
+
+S="${WORKDIR}/${WINE_P}"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
+ pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ # patches known broken with USE=-mingw, retry occasionally (bug #921360)
+ $(usev !mingw '
+ -W winedevice-Default_Drivers
+ -W fltmgr.sys-FltBuildDefaultSecurityDescriptor
+ ')
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.5.ebuild b/app-emulation/wine-staging/wine-staging-9.5.ebuild
new file mode 100644
index 000000000000..08b56968b3ac
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.5.ebuild
@@ -0,0 +1,482 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools edo flag-o-matic multilib multilib-build optfeature
+inherit prefix python-any-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+WINE_P=wine-$(ver_cut 1-2)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
+ WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="
+ https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
+ https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
+"
+
+S="${WORKDIR}/${WINE_P}"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
+ pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ # patches known broken with USE=-mingw, retry occasionally (bug #921360)
+ $(usev !mingw '
+ -W winedevice-Default_Drivers
+ -W fltmgr.sys-FltBuildDefaultSecurityDescriptor
+ ')
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.6.ebuild b/app-emulation/wine-staging/wine-staging-9.6.ebuild
new file mode 100644
index 000000000000..2c9f8fc4ef2a
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.6.ebuild
@@ -0,0 +1,477 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools edo flag-o-matic multilib multilib-build optfeature
+inherit prefix python-any-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+WINE_P=wine-$(ver_cut 1-2)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
+ WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="
+ https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
+ https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
+"
+
+S="${WORKDIR}/${WINE_P}"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
+ pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9.7.ebuild b/app-emulation/wine-staging/wine-staging-9.7.ebuild
new file mode 100644
index 000000000000..2c9f8fc4ef2a
--- /dev/null
+++ b/app-emulation/wine-staging/wine-staging-9.7.ebuild
@@ -0,0 +1,477 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools edo flag-o-matic multilib multilib-build optfeature
+inherit prefix python-any-r1 toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+WINE_P=wine-$(ver_cut 1-2)
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
+ WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="
+ https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
+ https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
+"
+
+S="${WORKDIR}/${WINE_P}"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
+ pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
+
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ ${MY_WINE_STAGING_CONF}
+ )
+
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
+
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-staging/wine-staging-9999.ebuild b/app-emulation/wine-staging/wine-staging-9999.ebuild
index 11363b6b82bf..f4a2a5ce7f73 100644
--- a/app-emulation/wine-staging/wine-staging-9999.ebuild
+++ b/app-emulation/wine-staging/wine-staging-9999.ebuild
@@ -1,620 +1,477 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+PYTHON_COMPAT=( python3_{10..12} )
+inherit autotools edo flag-o-matic multilib multilib-build optfeature
+inherit prefix python-any-r1 toolchain-funcs wrapper
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
+WINE_GECKO=2.47.4
+WINE_MONO=9.1.0
+WINE_P=wine-$(ver_cut 1-2)
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine-staging.git"
+ WINE_EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="
+ https://dl.winehq.org/wine/source/${WINE_SDIR}/${WINE_P}.tar.xz
+ https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="-* ~amd64 ~x86"
fi
-S="${WORKDIR}/${MY_P}"
-
-STAGING_P="wine-staging-${PV}"
-STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging patchset"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
+HOMEPAGE="
+ https://wiki.winehq.org/Wine-Staging
+ https://gitlab.winehq.org/wine/wine-staging/
"
-if [[ ${PV} == "9999" ]] ; then
- STAGING_EGIT_REPO_URI="https://github.com/wine-staging/wine-staging.git"
-else
- SRC_URI="${SRC_URI}
- staging? ( https://github.com/wine-staging/wine-staging/archive/v${PV}.tar.gz -> ${STAGING_P}.tar.gz )"
-fi
+S="${WORKDIR}/${WINE_P}"
-LICENSE="LGPL-2.1"
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gcrypt +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pipelight +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl staging test themes +threads +truetype udev +udisks +unwind v4l vaapi vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls opencl +opengl osmesa pcap perl
+ pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+# TODO: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- pipelight? ( staging )
- test? ( abi_x86_32 )
- themes? ( staging )
- vaapi? ( staging )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
RESTRICT="test"
-COMMON_DEPEND="
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
X? (
x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
)
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gcrypt? ( dev-libs/libgcrypt:=[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
)
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- staging? ( sys-apps/attr[${MULTILIB_USEDEP}] )
- themes? (
- dev-libs/glib:2[${MULTILIB_USEDEP}]
- x11-libs/cairo[${MULTILIB_USEDEP}]
- x11-libs/gtk+:3[${MULTILIB_USEDEP}]
- )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vaapi? ( x11-libs/libva[X,${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.1 )
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
perl? (
dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
+ dev-perl/XML-LibXML
)
- samba? ( >=net-fs/samba-3.0.25[winbind] )
+ samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- staging? (
- dev-lang/perl
- dev-perl/XML-Simple
+"
+# gitapply.sh prefers git but can fallback to patch+extras
+BDEPEND="
+ ${PYTHON_DEPS}
+ || (
+ dev-vcs/git
+ (
+ sys-apps/gawk
+ sys-apps/util-linux
+ )
+ )
+ || (
+ sys-devel/binutils
+ sys-devel/lld
)
- xinerama? ( x11-base/xorg-proto )"
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900334)
+ res_getservers # false positive
+)
+QA_FLAGS_IGNORED="usr/lib/.*/wine/.*-unix/odbc32.so" # has no compiled objects
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
+ "${FILESDIR}"/${PN}-7.17-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
)
-PATCHES_BIN=()
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
+ eerror " crossdev --target ${mingw}"
eerror
- return 1
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${pn_live_val} ]]; then
- if use staging; then
- eerror "Because of the multi-repo nature of ${MY_PN}, ${pn_live_var}"
- eerror "cannot be used to set the commit. Instead, you may use the"
- eerror "environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
- fi
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environment variables:"
- eerror " EGIT_OVERRIDE_COMMIT_WINE"
- eerror " EGIT_OVERRIDE_COMMIT_WINE_STAGING_WINE_STAGING"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
+ done
fi
}
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- if use staging; then
- local CURRENT_WINE_COMMIT=${EGIT_VERSION}
+ if [[ ${PV} == *9999 ]]; then
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${P}
+ git-r3_src_unpack
- EGIT_CHECKOUT_DIR="${STAGING_DIR}" EGIT_REPO_URI="${STAGING_EGIT_REPO_URI}" git-r3_src_unpack
-
- local COMPAT_WINE_COMMIT=$("${STAGING_DIR}/patches/patchinstall.sh" --upstream-commit) || die
-
- if [[ "${CURRENT_WINE_COMMIT}" != "${COMPAT_WINE_COMMIT}" ]]; then
- einfo "The current Staging patchset is not guaranteed to apply on this WINE commit."
- einfo "If src_prepare fails, try emerging with the env var WINE_COMMIT."
- einfo "Example: EGIT_OVERRIDE_COMMIT_WINE=${COMPAT_WINE_COMMIT} emerge -1 wine"
- fi
- fi
+ # hack: use subshell to preserve state (including what git-r3 unpack
+ # sets) for smart-live-rebuild as this is not the repo to look at
+ (
+ EGIT_COMMIT=$(<"${EGIT_CHECKOUT_DIR}"/staging/upstream-commit) || die
+ EGIT_REPO_URI=${WINE_EGIT_REPO_URI}
+ EGIT_CHECKOUT_DIR=${S}
+ einfo "Fetching Wine commit matching the current patchset by default (${EGIT_COMMIT})"
+ git-r3_src_unpack
+ )
+ else
+ default
fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
}
src_prepare() {
+ local patchinstallargs=(
+ --all
+ --no-autoconf
+ ${MY_WINE_STAGING_CONF}
+ )
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- if use staging; then
- ewarn "Applying the Wine-Staging patchset. Any bug reports to the"
- ewarn "Wine bugzilla should explicitly state that staging was used."
-
- local STAGING_EXCLUDE="-W winemenubuilder-Desktop_Icon_Path" #652176
- use pipelight || STAGING_EXCLUDE="${STAGING_EXCLUDE} -W Pipelight"
+ edo "${PYTHON}" ../${P}/staging/patchinstall.py "${patchinstallargs[@]}"
- # Launch wine-staging patcher in a subshell, using eapply as a backend, and gitapply.sh as a backend for binary patches
- ebegin "Running Wine-Staging patch installer"
- (
- set -- DESTDIR="${S}" --backend=eapply --no-autoconf --all ${STAGING_EXCLUDE}
- cd "${STAGING_DIR}/patches"
- source "${STAGING_DIR}/patches/patchinstall.sh"
- )
- eend $? || die "Failed to apply Wine-Staging patches"
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
fi
default
- eapply_bin
- eautoreconf
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
fi
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-staging
}
src_configure() {
- wine_compiler_check || die
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
- multilib-minimal_src_configure
-}
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
+ $(use_with X x)
$(use_with alsa)
$(use_with capi)
- $(use_with lcms cms)
$(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
$(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gcrypt)
$(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
$(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
+ $(use_with kerberos gssapi)
$(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
+ $(use_with mingw)
$(use_with netapi)
$(use_with nls gettext)
- $(use_with openal)
$(use_with opencl)
$(use_with opengl)
$(use_with osmesa)
- $(use_with oss)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
$(use_with pcap)
- $(use_with png)
$(use_with pulseaudio pulse)
- $(use_with threads pthread)
$(use_with scanner sane)
$(use_with sdl)
- $(use_enable test tests)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
$(use_with truetype freetype)
$(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
$(use_with unwind)
+ $(use_with usb)
$(use_with v4l v4l2)
- $(use_with vkd3d)
$(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
+ $(use_with wayland)
$(use_with xcomposite)
$(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- use staging && myconf+=(
- --with-xattr
- $(use_with themes gtk3)
- $(use_with vaapi va)
)
- local PKG_CONFIG
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- tc-export PKG_CONFIG
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
fi
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # staging patchset is messier and would rather not have to worry
+ # about it (try to remove on bump now and then, bug #919758)
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
- einstalldocs
- prune_libtool_files --all
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
fi
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
done
- eshopts_pop
}
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- else
- if use staging; then
- eselect wine register --staging ${P} || die
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
fi
fi
- eselect wine update --all --if-unset || die
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
- xdg_desktop_database_update
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
}
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- else
- if use staging; then
- eselect wine deregister --staging ${P} || die
- fi
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
fi
- eselect wine update --all --if-unset || die
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
}
pkg_postrm() {
- xdg_desktop_database_update
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest
index 00d2ecd88751..cac10378d68e 100644
--- a/app-emulation/wine-vanilla/Manifest
+++ b/app-emulation/wine-vanilla/Manifest
@@ -1,10 +1,6 @@
-DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6 SHA512 5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2
-DIST gentoo-wine-patches-20191222.tar.xz 59236 BLAKE2B 1b2c7b3ab69e5603d0f176a88c13b6d532f94f319ad29821faa699e828d90cfbe92c02b6e73b72eb16e565707c49885833fe557809ed16f4a6f0f182de9bb6e6 SHA512 a030fad55be5e1d909bc50e430c9a99846b88d7555f12749e101ba83f04df5af23eeb726b5ed78f847a66d11ac0a838bc69bd5bf8cf53da77ad454d2a2fe65cf
-DIST gentoo-wine-patches-20200523.tar.xz 59740 BLAKE2B 951d7f305a6e5b3759c8095629d48de4830b8a0c9558de859a9e02d9824fe85553fda2bc0820ca97022a0ca63ac28473dadfe827821220445dbf1a7fd15c7c98 SHA512 46eea45c982b475e3ff444cbd87c6a0a235fc8dcaf3d83d89655a10ed8841a9ddb09e5a638a05803f3bf2c3bd34165c16067aba561efa4c183ee396dc31cdf75
-DIST wine-4.0.3.tar.xz 21680420 BLAKE2B a7caf4b82fa2594f77e31f29b2a3da59c08bb58f213268d61bdf48998345162bc36fbfc24db94d11cb07b6da347b3471e9d8976d9abfa0f76c183c0a519aa73e SHA512 a8fde0bcf600eaec56c3ce58c9aa992386784c85cf1c93aa84d50aff4c842b12a6b099c23391d3ad9a0059f3dc9069c0f8e00fad293305ba8a33afc70bf26e14
-DIST wine-5.0.1.tar.xz 22476496 BLAKE2B 8fd7729812c0144b6c9ec7f28ecc25bca5bc7801d9927346928f43fc46ca0be89ecb4caefb7a93cf2f3365e088d11e6bd53a028ea8cc9e170ef864ff63f21a5a SHA512 d9756f0a74417ea9e05d08a94ff29b83ebff3db3a3cbaa90979d5312754371ddfcab6bded73a246ef980252b908d8a26e93de2779b766c4bff92c91f8c315d98
-DIST wine-5.0.2.tar.xz 22484932 BLAKE2B 93253a86605b32dc8f7c79a16336643e6f84937094f8c96ea336289c2076a4d9f759fc1ad128f7b1a009da5eb2ed25cdc893da99e338093608bf5fc0ef1a85fc SHA512 9ff902ff929d9ac8c81843eea141c96446d26b14f70781a40a3ea1fdef5f412ca4c87374a5a3af9b42b52236159645e55d6e54f8b06178a4d210a72fb1d5358e
-DIST wine-5.17.tar.xz 24064512 BLAKE2B a84433ff7bb93a1f43c41f3106ff3f9c648631665100e8140340ab7d347daf6f2c3b54ea8177e1a2c2222574aa67264f5b576d99f6ef461548c74af48c62eb62 SHA512 05338036fa9b195d9cf8a84a1bcc03f35422d5f07744ec4430f20874601829be5904be10060353599cb0187728123f959ccc75e79f1ce1c47178ae9cd55ef696
-DIST wine-5.18.tar.xz 24160316 BLAKE2B 4f359b6e869707a514d2198d2b8ba810b8552ea53ff3f37cbc7c23b732152db0fa5c0c909d2c16a03f6b0ff122435c92f8a9b8b462577aa50a39b2dcfa7bcd05 SHA512 70565fbea61b78580ca86443fcb4c10c7814c1dffcfa49ee38746fef21a52a00f2e040d9d2515892fed4021e7868720cc22b650d18872656838e4610d4d4e823
-DIST wine-5.19.tar.xz 24201860 BLAKE2B 34233747a58e2cf6c9b6b328cb8c0af5707479e02d20365da07d039163757c6557d25ec8136933fd9bd5a7aeb360d96e44c41c34fffb26a23f9e3ea137f03120 SHA512 b91eb1cb1225ac8abe26f5c5dd74fb376e6489b460035c70e6c7890595086e99273497741b6a736ef4884ae7bacc44482d2e3e8ba7e8d85c78c571bd4b133d8a
-DIST wine-5.20.tar.xz 24177960 BLAKE2B 50169bc00497feef91f5cf7fd56bce8f7784f70d2a24776494d0ab98cdb70b4387a92dece4571b2b22b15c42d82672595f39079a0678e551331f2bee4460f0f8 SHA512 30299287857376a827579335ba410d0575379df300860c8fdd50473f3eec074372d3602e5027f9e75fb13e272f28f51950ec652109839573a168aed23ba9c8f4
+DIST wine-7.0.2.tar.xz 27179980 BLAKE2B 721ab574092638b32d3a483b6ae3def0c9d706cc888662ca461ab8c7060b10077e83cede69663ea2a8b97729f3801209fbba5f8e8828ce20454700ffbbd76cb5 SHA512 330c71005a6a8054b5068ac4484e9015e9f8bf55d5a451aaf5f79b7f78a025732b454251c31473abf21504cce3b78e50cf7e3e0d0116bb755dc8396bd790289a
+DIST wine-8.0.2.tar.xz 29060452 BLAKE2B dcffaba6c90c4e02a7bc591a81e11aced06c006370c4c316c8a367b2f5814926063482959fabfe9d674ee1b5a560e59087e9b711e28360ced3aee2bbd6bb8fdb SHA512 e86dd31247d757d48ffb2d24f20edab3fc6ef9c3e395567a7b363951bb681335ba3adb8b84639011b24b6eb274582d56880298d6d95fb100acc072383d4e973f
+DIST wine-9.0.tar.xz 30007216 BLAKE2B cf53177201a2f7eeb35d0d8ce220f80808d979099a928ad60652d1dee92620c433cc105dffab4e9309f41766087ad1544ef49d2922538bb420d62f6dd64117a1 SHA512 838daf2c4581f83f8573b988036f517d57b84894b090a2a17433255d6d044dfa880e6724cdb83082a36c333df9d2083ab68ae53927622a620edd59f33462ada4
+DIST wine-9.5.tar.xz 30371420 BLAKE2B c14ebf02f0f5b91bc2b2517ff3630f22c6af7fdc827c5d024d809a383a65446284a5349c8109835112f5353f361088f4f32de1a3d04299fbf39deacbc0e8e8bf SHA512 8ccad8f6e6b1428886dee9fae771796e2021b4122cd96464350352bede25421406e6a6a0fdd63d8b99b896db8dc529aa6e05d6ac7966bee49ce3055b18a8af91
+DIST wine-9.6.tar.xz 30261488 BLAKE2B 53115a8a80593856679718b2055340860221701bc82a784a111a992f5e67b031d7407a16f6df6d4da67f382f30c35d2dd82af2a671a058a76b621c91199e426e SHA512 cc2ea5597636da8d392d1d63b9c135679eff69ea671dc6b53b6f2d44a890aee0e17275174485f6e8dd99c7db737eb82a800a2b05c4966f15e28167c5a6098922
+DIST wine-9.7.tar.xz 30281616 BLAKE2B 4d27f6f2dfd088a0590bfce7228c7eca25b66a9a04706ddecb25af6364e83100c15a78c8d46f3294a42dc7f3503756506f752a02d7058a72ce16716994b334bc SHA512 0c15c3a0901162a386126f2dc987b276b379cc027fc72d9e31cf3122614742f876f30a5f24a495f546cd9c5bd5efce096bd9ca190d0f378fea3d42a298a06e80
diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch
new file mode 100644
index 000000000000..92aa0b4b5c5d
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-noexecstack.patch
@@ -0,0 +1,7 @@
+Also write GNU-stack note on dummy files used for stub libraries.
+--- a/tools/winebuild/import.c
++++ b/tools/winebuild/import.c
+@@ -1675,2 +1675,3 @@
+ output( "\t.text\n" );
++ output_gnu_stack_note();
+ }
diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch
new file mode 100644
index 000000000000..74f22362ea9b
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.0-unwind.patch
@@ -0,0 +1,40 @@
+Fix build with llvm-libunwind, and also fix for non-llvm libunwind
+when using clang+bfd given clang doesn't have _Unwind_Find_FDE in
+its rtlib and expects it from llvm-libunwind.
+
+The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
+--- a/dlls/ntdll/unix/signal_x86_64.c
++++ b/dlls/ntdll/unix/signal_x86_64.c
+@@ -635,7 +635,9 @@
+ unsigned int cie_offset;
+ };
+
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
++#endif
+
+ static unsigned char dwarf_get_u1( const unsigned char **p )
+ {
+@@ -1357,7 +1359,7 @@
+ unw_proc_info_t info;
+ int rc;
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__)
+ rc = unw_getcontext( &unw_context );
+ if (rc == UNW_ESUCCESS)
+ rc = unw_init_local( &cursor, &unw_context );
+@@ -1480,11 +1482,13 @@
+ NTSTATUS CDECL unwind_builtin_dll( ULONG type, DISPATCHER_CONTEXT *dispatch, CONTEXT *context )
+ {
+ struct dwarf_eh_bases bases;
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases );
+
+ if (fde)
+ return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde,
+ &bases, &dispatch->LanguageHandler, &dispatch->HandlerData );
++#endif
+ #ifdef HAVE_LIBUNWIND
+ return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context,
+ &dispatch->LanguageHandler, &dispatch->HandlerData );
diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch b/app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch
new file mode 100644
index 000000000000..63f9a06a5de8
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-7.20-unwind.patch
@@ -0,0 +1,36 @@
+Fix build with llvm-libunwind, and also fix for non-llvm libunwind
+when using clang+bfd given clang doesn't have _Unwind_Find_FDE in
+its rtlib and expects it from llvm-libunwind.
+
+The _CONFIG_H_ check is for <llvm-libunwind-15 (adds _VERSION).
+--- a/dlls/ntdll/unix/dwarf.h
++++ b/dlls/ntdll/unix/dwarf.h
+@@ -255,5 +255,7 @@
+ };
+
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ extern const struct dwarf_fde *_Unwind_Find_FDE (void *, struct dwarf_eh_bases *);
++#endif
+
+ static unsigned char dwarf_get_u1( const unsigned char **p )
+--- a/dlls/ntdll/unix/signal_x86_64.c
++++ b/dlls/ntdll/unix/signal_x86_64.c
+@@ -623,5 +623,5 @@
+ int rc;
+
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__)
+ rc = unw_getcontext( &unw_context );
+ if (rc == UNW_ESUCCESS)
+@@ -746,4 +746,5 @@
+ {
+ struct dwarf_eh_bases bases;
++#if defined(_LIBUNWIND_VERSION) || defined(____LIBUNWIND_CONFIG_H__) || !defined(__clang__)
+ const struct dwarf_fde *fde = _Unwind_Find_FDE( (void *)(context->Rip - 1), &bases );
+
+@@ -751,4 +752,5 @@
+ return dwarf_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context, fde,
+ &bases, &dispatch->LanguageHandler, &dispatch->HandlerData );
++#endif
+ #ifdef HAVE_LIBUNWIND
+ return libunwind_virtual_unwind( context->Rip, &dispatch->EstablisherFrame, context,
diff --git a/app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch b/app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch
new file mode 100644
index 000000000000..5f0d63b0ec33
--- /dev/null
+++ b/app-emulation/wine-vanilla/files/wine-vanilla-8.13-rpath.patch
@@ -0,0 +1,15 @@
+Patch Source: https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/community/wine/rpath.patch
+Alpine Bug: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13249
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -784,6 +784,9 @@ case $host_os in
+ [WINELOADER_LDFLAGS="$WINELOADER_LDFLAGS -Wl,-z,max-page-size=0x1000"])
+ ;;
+ esac
++
++ # do this at the end because it needs double dollar for makefile
++ WINE_TRY_CFLAGS([-Wl,-rpath,\\\$ORIGIN],[UNIXLDFLAGS="$UNIXLDFLAGS '-Wl,-rpath,\$\$ORIGIN'"])
+ ;;
+ esac
+
diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml
index 497dd69c907f..99ab7d2e9aab 100644
--- a/app-emulation/wine-vanilla/metadata.xml
+++ b/app-emulation/wine-vanilla/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="project">
<email>wine@gentoo.org</email>
@@ -13,34 +13,33 @@ Think of Wine as a compatibility layer for running Windows programs. Wine does n
This variant of the Wine packaging does not include external patchsets
</longdescription>
<use>
- <flag name="capi">Enable ISDN support via CAPI</flag>
- <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag>
+ <flag name="capi">Enable ISDN support using <pkg>net-libs/libcapi</pkg></flag>
+ <flag name="crossdev-mingw">
+ Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than
+ <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up)
+ </flag>
<flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag>
- <flag name="faudio">Pull in <pkg>app-emulation/faudio</pkg> to provide XAudio2 functionality</flag>
- <flag name="gecko">Add support for the Gecko engine when using iexplore</flag>
- <flag name="gssapi">Use GSSAPI (Kerberos SSP support)</flag>
- <flag name="gstreamer">Use <pkg>media-libs/gstreamer</pkg> to provide DirectShow functionality;</flag>
- <flag name="mono">Add support for .NET using Wine's Mono add-on</flag>
- <flag name="netapi">Use libnetapi from <pkg>net-fs/samba</pkg> to support Windows networks in netapi32.dll</flag>
- <flag name="opencl">Enable OpenCL support</flag>
- <flag name="osmesa">Add support for OpenGL in bitmaps using libOSMesa</flag>
+ <flag name="gecko">Enable mshtml support using <pkg>app-emulation/wine-gecko</pkg></flag>
+ <flag name="mingw">Build PE files using a MinGW toolchain for better compatibility</flag>
+ <flag name="mono">Enable .NET support using <pkg>app-emulation/wine-mono</pkg></flag>
+ <flag name="netapi">Enable support for configuring remote shares using <pkg>net-fs/samba</pkg></flag>
+ <flag name="osmesa">Enable off-screen rendering (OpenGL in bitmaps) support</flag>
<flag name="pcap">Support packet capture software (e.g. wireshark)</flag>
- <flag name="perl">Install helpers written in perl (winedump/winemaker)</flag>
- <flag name="prelink">Run prelink on DLLs during build;
- For Gentoo hardened, do not disable if you do not know what this means as it can break things at runtime</flag>
- <flag name="realtime">Pull in <pkg>sys-auth/rtkit</pkg> for low-latency pulseaudio support</flag>
- <flag name="run-exes">Use Wine to open and run .EXE and .MSI files</flag>
- <flag name="samba">Add support for NTLM auth. See:
- https://web.archive.org/web/20160108123008/http://wiki.winehq.org:80/NtlmAuthSetupGuide and
- https://web.archive.org/web/20150906013746/http://wiki.winehq.org/NtlmSigningAndSealing
- (these pages are not currently in the updated WineHQ Wiki).</flag>
- <flag name="sdl">Add support for gamepad detection using SDL</flag>
- <flag name="udev">Use <pkg>virtual/libudev</pkg> to provide plug and play support</flag>
- <flag name="unwind">Use <pkg>sys-libs/libunwind</pkg> to unwind the stack</flag>
- <flag name="vkd3d">Use <pkg>app-emulation/vkd3d</pkg> to provide Direct3D 12 support</flag>
- <flag name="vulkan">Enable Vulkan drivers</flag>
+ <flag name="perl">Install helpers that require perl (winedump/winemaker)</flag>
+ <flag name="samba">Pull in <pkg>net-fs/samba</pkg> with winbind for NTLM auth support</flag>
+ <flag name="sdl">Enable gamepad support using <pkg>media-libs/libsdl2</pkg></flag>
+ <flag name="vkd3d">Enable DirectX 12 support using <pkg>app-emulation/vkd3d</pkg></flag>
+ <flag name="wow64">
+ Enable running 32bit applications without 32bit ELF
+ multilib by mapping to 64bit calls (experimental,
+ *may* have worse/unusable OpenGL performance or other
+ issues compared to USE=abi_x86_32, also lacks 16bit
+ support) -- still need <pkg>dev-util/mingw64-toolchain</pkg>
+ with abi_x86_32 which itself does not need multilib
+ </flag>
</use>
<upstream>
+ <bugs-to>https://bugs.winehq.org/describecomponents.cgi?product=Wine</bugs-to>
<remote-id type="sourceforge">wine</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild
deleted file mode 100644
index f4c82a817bde..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-4.0.3.ebuild
+++ /dev/null
@@ -1,531 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n ltprune multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- MINOR_V=$(ver_cut 2)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20180120"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.7.5 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir=/etc/wine
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with v4l)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${D%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild
deleted file mode 100644
index c13d5834460c..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-5.0.1.ebuild
+++ /dev/null
@@ -1,538 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.0/${MY_P}.tar.xz"
- KEYWORDS="-* amd64 x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20191222"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.4 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-5.0-memset-O3.patch" #480508
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild
deleted file mode 100644
index 2c8da9a04c68..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-5.0.2.ebuild
+++ /dev/null
@@ -1,538 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.0/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20191222"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:4.9.4 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-5.0-memset-O3.patch" #480508
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG AR RANLIB
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- # set AR and RANLIB to make QA scripts happy; #483342
- tc-export PKG_CONFIG AR RANLIB
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild
deleted file mode 100644
index fed13ca5bb03..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-5.17.ebuild
+++ /dev/null
@@ -1,539 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.0 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- tc-export PKG_CONFIG
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild
deleted file mode 100644
index f411a705130e..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-5.18.ebuild
+++ /dev/null
@@ -1,539 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.0 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- tc-export PKG_CONFIG
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild
deleted file mode 100644
index 226b93efb90f..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-5.19.ebuild
+++ /dev/null
@@ -1,539 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.1 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- tc-export PKG_CONFIG
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild b/app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild
deleted file mode 100644
index 226b93efb90f..000000000000
--- a/app-emulation/wine-vanilla/wine-vanilla-5.20.ebuild
+++ /dev/null
@@ -1,539 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
-
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
-
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
- inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
-else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
- KEYWORDS="-* ~amd64 ~x86"
-fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
-
-DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
-"
-
-LICENSE="LGPL-2.1"
-SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
- X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
-
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
-RESTRICT="test"
-
-COMMON_DEPEND="
- X? (
- x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
- x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
- x11-libs/libXi[${MULTILIB_USEDEP}]
- x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
- )
- alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
- gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
- gstreamer? (
- media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
- )
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
- opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
- pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
- udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
- app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.1 )
- perl? (
- dev-lang/perl
- dev-perl/XML-Simple
- )
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
- selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
- sys-devel/flex
- >=sys-kernel/linux-headers-2.6
- virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
-
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
-
-PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
-)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
- eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
- eerror
- return 1
- fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
- fi
-}
-
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
- fi
-}
-
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
-
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
- fi
- fi
-}
-
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
-
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
-
- default
- eapply_bin
- eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
-}
-
-src_configure() {
- wine_compiler_check || die
-
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
-
- multilib-minimal_src_configure
-}
-
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
- $(use_with alsa)
- $(use_with capi)
- $(use_with lcms cms)
- $(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
- $(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
- $(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
- $(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
- $(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
- $(use_with netapi)
- $(use_with nls gettext)
- $(use_with openal)
- $(use_with opencl)
- $(use_with opengl)
- $(use_with osmesa)
- $(use_with oss)
- $(use_with pcap)
- $(use_with png)
- $(use_with pulseaudio pulse)
- $(use_with threads pthread)
- $(use_with scanner sane)
- $(use_with sdl)
- $(use_enable test tests)
- $(use_with truetype freetype)
- $(use_with udev)
- $(use_with unwind)
- $(use_with v4l v4l2)
- $(use_with vkd3d)
- $(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
- $(use_with xcomposite)
- $(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
- )
-
- local PKG_CONFIG
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- tc-export PKG_CONFIG
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
- fi
-
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
-
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
-
- einstalldocs
- prune_libtool_files --all
-
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
-
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
-
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
-
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
-
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
- fi
-
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
- done
- eshopts_pop
-}
-
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-
- xdg_desktop_database_update
-
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
- fi
-}
-
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
- fi
-
- eselect wine update --all --if-unset || die
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
-}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
new file mode 100644
index 000000000000..88eaa6f3c226
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-7.0.2.ebuild
@@ -0,0 +1,382 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.2
+WINE_MONO=7.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind debug custom-cflags +fontconfig +gecko gphoto2
+ +gstreamer kerberos ldap +mingw +mono netapi nls odbc openal
+ opencl +opengl osmesa pcap perl pulseaudio samba scanner +sdl
+ selinux +ssl +truetype udev udisks +unwind usb v4l +vkd3d +vulkan
+ +xcomposite xinerama
+"
+# bug #551124 for truetype
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
+ openal? ( media-libs/openal[${MULTILIB_USEDEP}] )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ dev-lang/perl
+ sys-devel/binutils
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] ) )
+ nls? ( sys-devel/gettext )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.0-unwind.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # ./configure will fail, abort early
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with ldap)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with openal)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vkd3d)
+ $(use_with vulkan)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # would rather not have to worry about fixing old branches
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ # CROSSCC_amd64/x86 are unused by Wine, but recognized here for users
+ if (( bits == 64 )); then
+ : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+ : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
+
+ # use *FLAGS for mingw, but strip unsupported (e.g. --hash-style=gnu)
+ if use mingw; then
+ : "${CROSSCFLAGS:=$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-cflags -mno-avx #912268
+
+ CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
+ : "${CROSSLDFLAGS:=$(
+ filter-flags '-fuse-ld=*'
+ CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
+ export CROSS{CC,{C,LD}FLAGS}
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # symlink for plain 'wine' and install its man pages if 64bit-only #404331
+ if use abi_x86_64 && use !abi_x86_32; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ if use mingw; then
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+ use debug ||
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} + || die
+ fi
+
+ dodoc ANNOUNCE AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
new file mode 100644
index 000000000000..f0641aa921fe
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-8.0.2.ebuild
@@ -0,0 +1,388 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.3
+WINE_MONO=7.4.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux +ssl +strip +truetype
+ udev udisks +unwind usb v4l +vulkan +xcomposite xinerama
+"
+# bug #551124 for truetype
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? ( app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}] )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ dev-lang/perl
+ sys-devel/binutils
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ ) )
+ nls? ( sys-devel/gettext )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # ./configure will fail, abort early
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ tc-ld-force-bfd # builds with non-bfd but broken at runtime (bug #867097)
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # temporary workaround for tc-ld-force-bfd not yet enforcing with mold
+ # https://github.com/gentoo/gentoo/pull/28355
+ [[ $($(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) == mold* ]] &&
+ append-ldflags -fuse-ld=bfd
+
+ # >=wine-vanilla-9 has proper fixes and builds with gcc-14, but
+ # would rather not have to worry about fixing old branches
+ append-cflags $(test-flags-CC -Wno-error=incompatible-pointer-types)
+
+ # build using upstream's way (--with-wine64)
+ # order matters: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ pe_arch=i386
+ if (( bits == 64 )); then
+ pe_arch=x86_64
+ : "${CROSSCC:=${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}"
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+ : "${CROSSCC:=${CROSSCC_x86:-i686-w64-mingw32-gcc}}"
+
+ if use mingw; then
+ # CROSSCC is no longer recognized by Wine, but still use for now
+ # (future handling for CROSS* variables is subject to changes)
+ conf+=( ac_cv_prog_${pe_arch}_CC="${CROSSCC}" )
+
+ # use *FLAGS for mingw, but strip unsupported
+ : "${CROSSCFLAGS:=$(
+ # >=wine-7.21 configure.ac no longer adds -fno-strict by mistake
+ append-cflags -fno-strict-aliasing
+
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ # -mavx with mingw-gcc has a history of obscure issues and
+ # disabling is seen as safer, e.g. `WINEARCH=win32 winecfg`
+ # crashes with -march=skylake >=wine-8.10, similar issues with
+ # znver4: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110273
+ append-cflags -mno-avx #912268
+
+ CC=${CROSSCC} test-flags-CC ${CFLAGS:--O2})}"
+ : "${CROSSLDFLAGS:=$(
+ filter-flags '-fuse-ld=*'
+ CC=${CROSSCC} test-flags-CCLD ${LDFLAGS})}"
+ export CROSS{C,LD}FLAGS
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # symlink for plain 'wine' and install its man pages if 64bit-only #404331
+ if use abi_x86_64 && use !abi_x86_32; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
new file mode 100644
index 000000000000..7326ea74dd64
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.0.ebuild
@@ -0,0 +1,427 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=8.1.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* amd64 x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild
new file mode 100644
index 000000000000..162e8b9a993c
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.5.ebuild
@@ -0,0 +1,430 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild
new file mode 100644
index 000000000000..162e8b9a993c
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.6.ebuild
@@ -0,0 +1,430 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild
new file mode 100644
index 000000000000..162e8b9a993c
--- /dev/null
+++ b/app-emulation/wine-vanilla/wine-vanilla-9.7.ebuild
@@ -0,0 +1,430 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
+
+WINE_GECKO=2.47.4
+WINE_MONO=9.0.0
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
+else
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
+ KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
+"
+
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
+SLOT="${PV}"
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
+ X? ( truetype )
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
+
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
+RESTRICT="test"
+
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
+ X? (
+ x11-libs/libXcursor[${MULTILIB_USEDEP}]
+ x11-libs/libXfixes[${MULTILIB_USEDEP}]
+ x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
+ x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
+ )
+ alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
+ gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
+ gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
+ media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
+ )
+ opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
+ pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
+ udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
+ app-emulation/wine-desktop-common
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
+ perl? (
+ dev-lang/perl
+ dev-perl/XML-LibXML
+ )
+ samba? ( net-fs/samba[winbind] )
+ selinux? ( sec-policy/selinux-wine )
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
+ sys-devel/flex
+ virtual/pkgconfig
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
+ eerror
+ eerror " crossdev --target ${mingw}"
+ eerror
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
+ fi
+ done
+ fi
+}
+
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
+ fi
+
+ default
+
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
+ fi
+ fi
+
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
+
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
+
+ # always update for patches (including user's wrt #432348)
+ eautoreconf
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
+}
+
+src_configure() {
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
+
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
+
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
+
+ $(use_with X x)
+ $(use_with alsa)
+ $(use_with capi)
+ $(use_with cups)
+ $(use_with fontconfig)
+ $(use_with gphoto2 gphoto)
+ $(use_with gstreamer)
+ $(use_with kerberos gssapi)
+ $(use_with kerberos krb5)
+ $(use_with mingw)
+ $(use_with netapi)
+ $(use_with nls gettext)
+ $(use_with opencl)
+ $(use_with opengl)
+ $(use_with osmesa)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
+ $(use_with pcap)
+ $(use_with pulseaudio pulse)
+ $(use_with scanner sane)
+ $(use_with sdl)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
+ $(use_with truetype freetype)
+ $(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
+ $(use_with unwind)
+ $(use_with usb)
+ $(use_with v4l v4l2)
+ $(use_with vulkan)
+ $(use_with wayland)
+ $(use_with xcomposite)
+ $(use_with xinerama)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
+ )
+
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
+ fi
+
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
+
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
+
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
+
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
+
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
+
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
+
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
+ fi
+
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
+ done
+}
+
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
+ fi
+
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
+
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
+
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
+ fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
+}
+
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
+ fi
+
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
+}
+
+pkg_postrm() {
+ eselect wine update --if-unset || die
+}
diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
index 226b93efb90f..61e41c9d9b98 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
@@ -1,539 +1,430 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 2022-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
-PLOCALES="ar ast bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW"
-PLOCALE_BACKUP="en"
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit autotools flag-o-matic multilib multilib-build optfeature
+inherit prefix toolchain-funcs wrapper
-inherit autotools eapi7-ver estack eutils flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils
+WINE_GECKO=2.47.4
+WINE_MONO=9.1.0
-MY_PN="${PN%%-*}"
-MY_P="${MY_PN}-${PV}"
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://source.winehq.org/git/wine.git"
- EGIT_BRANCH="master"
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
- SRC_URI=""
- #KEYWORDS=""
+ EGIT_REPO_URI="https://gitlab.winehq.org/wine/wine.git"
else
- MAJOR_V=$(ver_cut 1)
- SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.x/${MY_P}.tar.xz"
+ (( $(ver_cut 2) )) && WINE_SDIR=$(ver_cut 1).x || WINE_SDIR=$(ver_cut 1).0
+ SRC_URI="https://dl.winehq.org/wine/source/${WINE_SDIR}/wine-${PV}.tar.xz"
+ S="${WORKDIR}/wine-${PV}"
KEYWORDS="-* ~amd64 ~x86"
fi
-S="${WORKDIR}/${MY_P}"
-
-GWP_V="20200523"
-PATCHDIR="${WORKDIR}/gentoo-wine-patches"
DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets"
-HOMEPAGE="https://www.winehq.org/"
-SRC_URI="${SRC_URI}
- https://dev.gentoo.org/~sarnex/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz
+HOMEPAGE="
+ https://www.winehq.org/
+ https://gitlab.winehq.org/wine/wine/
"
-LICENSE="LGPL-2.1"
+LICENSE="LGPL-2.1+ BSD-2 IJG MIT OPENLDAP ZLIB gsm libpng2 libtiff"
SLOT="${PV}"
-IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind v4l vkd3d vulkan +X +xcomposite xinerama +xml"
-REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
+IUSE="
+ +X +abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups dos
+ llvm-libunwind custom-cflags +fontconfig +gecko gphoto2 +gstreamer
+ kerberos +mingw +mono netapi nls odbc opencl +opengl osmesa pcap
+ perl pulseaudio samba scanner +sdl selinux smartcard +ssl +strip
+ +truetype udev udisks +unwind usb v4l +vulkan wayland wow64
+ +xcomposite xinerama"
+# bug #551124 for truetype
+# TODO?: wow64 can be done without mingw if using clang (needs bug #912237)
+REQUIRED_USE="
X? ( truetype )
- elibc_glibc? ( threads )
- osmesa? ( opengl )
- test? ( abi_x86_32 )
- vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124
+ crossdev-mingw? ( mingw )
+ wow64? ( abi_x86_64 !abi_x86_32 mingw )
+"
-# FIXME: the test suite is unsuitable for us; many tests require net access
-# or fail due to Xvfb's opengl limitations.
+# tests are non-trivial to run, can hang easily, don't play well with
+# sandbox, and several need real opengl/vulkan or network access
RESTRICT="test"
-COMMON_DEPEND="
+# `grep WINE_CHECK_SONAME configure.ac` + if not directly linked
+WINE_DLOPEN_DEPEND="
X? (
x11-libs/libXcursor[${MULTILIB_USEDEP}]
- x11-libs/libXext[${MULTILIB_USEDEP}]
x11-libs/libXfixes[${MULTILIB_USEDEP}]
- x11-libs/libXrandr[${MULTILIB_USEDEP}]
x11-libs/libXi[${MULTILIB_USEDEP}]
+ x11-libs/libXrandr[${MULTILIB_USEDEP}]
+ x11-libs/libXrender[${MULTILIB_USEDEP}]
x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
+ opengl? (
+ media-libs/libglvnd[X,${MULTILIB_USEDEP}]
+ osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
+ )
+ xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
+ xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
+ )
+ cups? ( net-print/cups[${MULTILIB_USEDEP}] )
+ fontconfig? ( media-libs/fontconfig[${MULTILIB_USEDEP}] )
+ kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
+ netapi? ( net-fs/samba[${MULTILIB_USEDEP}] )
+ odbc? ( dev-db/unixODBC[${MULTILIB_USEDEP}] )
+ sdl? ( media-libs/libsdl2[haptic,joystick,${MULTILIB_USEDEP}] )
+ ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
+ truetype? ( media-libs/freetype[${MULTILIB_USEDEP}] )
+ udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
+ v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
+ vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
+"
+WINE_COMMON_DEPEND="
+ ${WINE_DLOPEN_DEPEND}
+ X? (
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+ x11-libs/libXext[${MULTILIB_USEDEP}]
)
alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
- capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] )
- cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
- faudio? ( app-emulation/faudio:=[${MULTILIB_USEDEP}] )
- fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
+ capi? ( net-libs/libcapi:=[${MULTILIB_USEDEP}] )
gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
- gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
- gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] )
gstreamer? (
+ dev-libs/glib:2[${MULTILIB_USEDEP}]
+ media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
- media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}]
)
- jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
- kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] )
- lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
- ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
- mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
- ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] )
- netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
- nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
- odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
- openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
- opengl? (
- virtual/glu[${MULTILIB_USEDEP}]
- virtual/opengl[${MULTILIB_USEDEP}]
- )
- osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] )
pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] )
- png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
- pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
- scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
- sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] )
- ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
- truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
+ pulseaudio? ( media-libs/libpulse[${MULTILIB_USEDEP}] )
+ scanner? ( media-gfx/sane-backends[${MULTILIB_USEDEP}] )
+ smartcard? ( sys-apps/pcsc-lite[${MULTILIB_USEDEP}] )
udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] )
- udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
- unwind? ( sys-libs/libunwind[${MULTILIB_USEDEP}] )
- v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
- vkd3d? ( >=app-emulation/vkd3d-1.2[${MULTILIB_USEDEP}] )
- vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] )
- xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
- xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
- xml? (
- dev-libs/libxml2[${MULTILIB_USEDEP}]
- dev-libs/libxslt[${MULTILIB_USEDEP}]
- )"
-
-RDEPEND="${COMMON_DEPEND}
+ unwind? (
+ llvm-libunwind? ( sys-libs/llvm-libunwind[${MULTILIB_USEDEP}] )
+ !llvm-libunwind? ( sys-libs/libunwind:=[${MULTILIB_USEDEP}] )
+ )
+ usb? ( dev-libs/libusb:1[${MULTILIB_USEDEP}] )
+ wayland? (
+ dev-libs/wayland[${MULTILIB_USEDEP}]
+ x11-libs/libxkbcommon[${MULTILIB_USEDEP}]
+ )
+"
+RDEPEND="
+ ${WINE_COMMON_DEPEND}
app-emulation/wine-desktop-common
- >app-eselect/eselect-wine-0.3
- !app-emulation/wine:0
- dos? ( >=games-emulation/dosbox-0.74_p20160629 )
- gecko? ( app-emulation/wine-gecko:2.47.1[abi_x86_32?,abi_x86_64?] )
- mono? ( app-emulation/wine-mono:5.1.1 )
+ dos? (
+ || (
+ games-emulation/dosbox
+ games-emulation/dosbox-staging
+ )
+ )
+ gecko? (
+ app-emulation/wine-gecko:${WINE_GECKO}[${MULTILIB_USEDEP}]
+ wow64? ( app-emulation/wine-gecko[abi_x86_32] )
+ )
+ gstreamer? ( media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] )
+ mono? ( app-emulation/wine-mono:${WINE_MONO} )
perl? (
dev-lang/perl
- dev-perl/XML-Simple
+ dev-perl/XML-LibXML
)
- pulseaudio? (
- realtime? ( sys-auth/rtkit )
- )
- samba? ( >=net-fs/samba-3.0.25[winbind] )
+ samba? ( net-fs/samba[winbind] )
selinux? ( sec-policy/selinux-wine )
- udisks? ( sys-fs/udisks:2 )"
-
-# tools/make_requests requires perl
-DEPEND="${COMMON_DEPEND}
+ udisks? ( sys-fs/udisks:2 )
+"
+DEPEND="
+ ${WINE_COMMON_DEPEND}
+ sys-kernel/linux-headers
+ X? ( x11-base/xorg-proto )
+"
+BDEPEND="
+ || (
+ sys-devel/binutils
+ sys-devel/lld
+ )
+ dev-lang/perl
+ sys-devel/bison
sys-devel/flex
- >=sys-kernel/linux-headers-2.6
virtual/pkgconfig
- virtual/yacc
- X? ( x11-base/xorg-proto )
- prelink? ( sys-devel/prelink )
- xinerama? ( x11-base/xorg-proto )"
+ mingw? ( !crossdev-mingw? (
+ >=dev-util/mingw64-toolchain-10.0.0_p1-r2[${MULTILIB_USEDEP}]
+ wow64? ( dev-util/mingw64-toolchain[abi_x86_32] )
+ ) )
+ nls? ( sys-devel/gettext )
+ wayland? ( dev-util/wayland-scanner )
+"
+IDEPEND=">=app-eselect/eselect-wine-2"
-# These use a non-standard "Wine" category, which is provided by
-# /etc/xdg/applications-merged/wine.menu
-QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
-usr/share/applications/wine-notepad.desktop
-usr/share/applications/wine-uninstaller.desktop
-usr/share/applications/wine-winecfg.desktop"
+QA_CONFIG_IMPL_DECL_SKIP=(
+ __clear_cache # unused on amd64+x86 (bug #900338)
+ res_getservers # false positive
+)
+QA_TEXTRELS="usr/lib/*/wine/i386-unix/*.so" # uses -fno-PIC -Wl,-z,notext
PATCHES=(
- "${PATCHDIR}/patches/${MY_PN}-5.0-winegcc.patch" #260726
- "${PATCHDIR}/patches/${MY_PN}-4.7-multilib-portage.patch" #395615
- "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
- "${PATCHDIR}/patches/${MY_PN}-5.9-Revert-makedep-Install-also-generated-typelib-for-in.patch"
+ "${FILESDIR}"/${PN}-7.0-noexecstack.patch
+ "${FILESDIR}"/${PN}-7.20-unwind.patch
+ "${FILESDIR}"/${PN}-8.13-rpath.patch
)
-PATCHES_BIN=()
-
-# https://bugs.gentoo.org/show_bug.cgi?id=635222
-if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then
- DEPEND+=" dev-util/patchbin"
-fi
-wine_compiler_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- # GCC-specific bugs
- if tc-is-gcc; then
- # bug #549768
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then
- ebegin "Checking for gcc-5 ms_abi compiler bug"
- $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die
- # Run in subshell to prevent "Aborted" message
- ( "${T}"/pr66838 || false ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/549768"
+pkg_pretend() {
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+ local mingw=-w64-mingw32
+ for mingw in $(usev abi_x86_64 x86_64${mingw}) \
+ $(use abi_x86_32 || use wow64 && echo i686${mingw}); do
+ if ! type -P ${mingw}-gcc >/dev/null; then
+ eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain"
+ eerror "yourself by installing sys-devel/crossdev then running:"
eerror
- return 1
- fi
- fi
- # bug #574044
- if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then
- ebegin "Checking for gcc-5-3 stack realignment compiler bug"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1
- if ! eend $?; then
- eerror "Wine cannot be built with this version of gcc-5.3"
- eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild,"
- eerror "or use gcc-config to select a different compiler version."
- eerror "See https://bugs.gentoo.org/574044"
+ eerror " crossdev --target ${mingw}"
eerror
- return 1
+ eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw"
+ die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found"
fi
- fi
- fi
-
- # Ensure compiler support
- if use abi_x86_64; then
- ebegin "Checking for 64-bit compiler with builtin_ms_va_list support"
- # Compile in subshell to prevent "Aborted" message
- ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1)
- if ! eend $?; then
- eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine"
- eerror
- eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine"
- eerror
- return 1
- fi
+ done
fi
}
-wine_build_environment_check() {
- [[ ${MERGE_TYPE} = "binary" ]] && return 0
-
- if use abi_x86_64; then
- if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then
- eerror "You need gcc-4.4+ to compile 64-bit wine"
- die
- elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then
- eerror "You need clang-3.8+ to compile 64-bit wine"
- die
- fi
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then
- ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by"
- ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in"
- ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4"
- fi
- if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then
- if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then
- ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work"
- ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine."
- ewarn "See package.env in man 5 portage for more information on how to do this."
- ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details"
- fi
- fi
-
- if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then
- eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
- eerror "See https://bugs.gentoo.org/487864 for more details."
- eerror
- return 1
+src_prepare() {
+ # sanity check, bumping these has a history of oversights
+ local geckomono=$(sed -En '/^#define (GECKO|MONO)_VER/{s/[^0-9.]//gp}' \
+ dlls/appwiz.cpl/addons.c || die)
+ if [[ ${WINE_GECKO}$'\n'${WINE_MONO} != "${geckomono}" ]]; then
+ local gmfatal=
+ [[ ${PV} == *9999 ]] && gmfatal=nonfatal
+ ${gmfatal} die -n "gecko/mono mismatch in ebuild, has: " ${geckomono} " (please file a bug)"
fi
-}
-wine_env_vcs_vars() {
- local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT"
- local pn_live_val="${pn_live_var}"
- eval pn_live_val='$'${pn_live_val}
- if [[ ! -z ${EGIT_COMMIT} ]]; then
- eerror "Commits must now be specified using the environmental variables"
- eerror "EGIT_OVERRIDE_COMMIT_WINE"
- eerror
- return 1
- fi
-}
+ default
-pkg_pretend() {
- wine_build_environment_check || die
-
- # Verify OSS support
- if use oss && ! use kernel_FreeBSD; then
- if ! has_version ">=media-sound/oss-4"; then
- eerror "You cannot build wine with USE=oss without having support from a"
- eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)"
- eerror
- die
+ if tc-is-clang; then
+ if use mingw; then
+ # -mabi=ms was ignored by <clang:16 then turned error in :17
+ # if used without --target *-windows, then gets used in install
+ # phase despite USE=mingw, drop as a quick fix for now
+ sed -i '/MSVCRTFLAGS=/s/-mabi=ms//' configure.ac || die
+ else
+ # fails in ./configure unless --enable-archs is passed, allow to
+ # bypass with EXTRA_ECONF but is currently considered unsupported
+ # (by Gentoo) as additional work is needed for (proper) support
+ # note: also fails w/ :17, but unsure if safe to drop w/o mingw
+ [[ ${EXTRA_ECONF} == *--enable-archs* ]] ||
+ die "building ${PN} with clang is only supported with USE=mingw"
fi
fi
-}
-pkg_setup() {
- wine_build_environment_check || die
- wine_env_vcs_vars || die
-
- WINE_VARIANT="${PN#wine}-${PV}"
- WINE_VARIANT="${WINE_VARIANT#-}"
-
- MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}"
- MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}"
- MY_DATADIR="${MY_DATAROOTDIR}"
- MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}"
- MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}"
- MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}"
- MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}"
- MY_MANDIR="${MY_DATADIR}/man"
-}
+ # ensure .desktop calls this variant + slot
+ sed -i "/^Exec=/s/wine /${P} /" loader/wine.desktop || die
-src_unpack() {
- if [[ ${PV} == "9999" ]] ; then
- EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack
- fi
-
- default
-
- l10n_find_plocales_changes "${S}/po" "" ".po"
-}
-
-src_prepare() {
-
- eapply_bin(){
- local patch
- for patch in ${PATCHES_BIN[@]}; do
- patchbin --nogit < "${patch}" || die
- done
- }
-
- local md5="$(md5sum server/protocol.def)"
+ # datadir is not where wine-mono is installed, so prefixy alternate paths
+ hprefixify -w /get_mono_path/ dlls/mscoree/metahost.c
- default
- eapply_bin
+ # always update for patches (including user's wrt #432348)
eautoreconf
-
- # Modification of the server protocol requires regenerating the server requests
- if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
- einfo "server/protocol.def was patched; running tools/make_requests"
- tools/make_requests || die #432348
- fi
- sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
- if ! use run-exes; then
- sed -i '/^MimeType/d' loader/wine.desktop || die #117785
- fi
-
- # Edit wine.desktop to work for specific variant
- sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die
-
- # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652
- cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die
-
- l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS
-
- # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-
- # Duplicate manpages input files for wine64
- local f
- for f in loader/*.man.in; do
- cp ${f} ${f/wine/wine64} || die
- done
- # Add wine64 manpages to Makefile
- if use abi_x86_64; then
- sed -i "/wine.man.in/i \
- \\\twine64.man.in \\\\" loader/Makefile.in || die
- sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
-\164\2/' loader/Makefile.in || die
- fi
-
- rm_man_file(){
- local file="${1}"
- loc=${2}
- sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
- }
-
- while read f; do
- l10n_for_each_disabled_locale_do rm_man_file "${f}"
- done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print)
+ tools/make_requests || die # perl
+ # tip: if need more for user patches, with portage can e.g. do
+ # echo "post_src_prepare() { tools/make_specfiles || die; }" \
+ # > /etc/portage/env/app-emulation/wine-vanilla
}
src_configure() {
- wine_compiler_check || die
+ WINE_PREFIX=/usr/lib/${P}
+ WINE_DATADIR=/usr/share/${P}
- export LDCONFIG=/bin/true
- use custom-cflags || strip-flags
+ local conf=(
+ --prefix="${EPREFIX}"${WINE_PREFIX}
+ --datadir="${EPREFIX}"${WINE_DATADIR}
+ --includedir="${EPREFIX}"/usr/include/${P}
+ --libdir="${EPREFIX}"${WINE_PREFIX}
+ --mandir="${EPREFIX}"${WINE_DATADIR}/man
- multilib-minimal_src_configure
-}
+ $(usev wow64 --enable-archs=x86_64,i386)
+
+ $(use_enable gecko mshtml)
+ $(use_enable mono mscoree)
+ --disable-tests
-multilib_src_configure() {
- local myconf=(
- --prefix="${MY_PREFIX}"
- --datarootdir="${MY_DATAROOTDIR}"
- --datadir="${MY_DATADIR}"
- --docdir="${MY_DOCDIR}"
- --includedir="${MY_INCLUDEDIR}"
- --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}"
- --libexecdir="${MY_LIBEXECDIR}"
- --localstatedir="${MY_LOCALSTATEDIR}"
- --mandir="${MY_MANDIR}"
- --sysconfdir="${EPREFIX}/etc/wine"
+ $(use_with X x)
$(use_with alsa)
$(use_with capi)
- $(use_with lcms cms)
$(use_with cups)
- $(use_with ncurses curses)
- $(use_with udisks dbus)
- $(use_with faudio)
$(use_with fontconfig)
- $(use_with ssl gnutls)
- $(use_enable gecko mshtml)
$(use_with gphoto2 gphoto)
- $(use_with gsm)
- $(use_with gssapi)
$(use_with gstreamer)
- --without-hal
- $(use_with jpeg)
+ $(use_with kerberos gssapi)
$(use_with kerberos krb5)
- $(use_with ldap)
- --without-mingw # linux LDFLAGS leak in mingw32: bug #685172
- $(use_enable mono mscoree)
- $(use_with mp3 mpg123)
+ $(use_with mingw)
$(use_with netapi)
$(use_with nls gettext)
- $(use_with openal)
$(use_with opencl)
$(use_with opengl)
$(use_with osmesa)
- $(use_with oss)
+ --without-oss # media-sound/oss is not packaged (OSSv4)
$(use_with pcap)
- $(use_with png)
$(use_with pulseaudio pulse)
- $(use_with threads pthread)
$(use_with scanner sane)
$(use_with sdl)
- $(use_enable test tests)
+ $(use_with smartcard pcsclite)
+ $(use_with ssl gnutls)
$(use_with truetype freetype)
$(use_with udev)
+ $(use_with udisks dbus) # dbus is only used for udisks
$(use_with unwind)
+ $(use_with usb)
$(use_with v4l v4l2)
- $(use_with vkd3d)
$(use_with vulkan)
- $(use_with X x)
- $(use_with X xfixes)
+ $(use_with wayland)
$(use_with xcomposite)
$(use_with xinerama)
- $(use_with xml)
- $(use_with xml xslt)
+ $(usev !odbc ac_cv_lib_soname_odbc=)
)
- local PKG_CONFIG
- # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
- tc-export PKG_CONFIG
-
- if use amd64; then
- if [[ ${ABI} == amd64 ]]; then
- myconf+=( --enable-win64 )
- else
- myconf+=( --disable-win64 )
- fi
-
- # Note: using --with-wine64 results in problems with multilib.eclass
- # CC/LD hackery. We're using separate tools instead.
+ filter-lto # build failure
+ use custom-cflags || strip-flags # can break in obscure ways at runtime
+
+ # wine uses linker tricks unlikely to work with non-bfd/lld (bug #867097)
+ # (do self test until https://github.com/gentoo/gentoo/pull/28355)
+ if [[ $(LC_ALL=C $(tc-getCC) ${LDFLAGS} -Wl,--version 2>/dev/null) != @(LLD|GNU\ ld)* ]]
+ then
+ has_version -b sys-devel/binutils &&
+ append-ldflags -fuse-ld=bfd ||
+ append-ldflags -fuse-ld=lld
+ strip-unsupported-flags
fi
- ECONF_SOURCE=${S} \
- econf "${myconf[@]}"
- emake depend
-}
-
-multilib_src_test() {
- # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
- if [[ ${ABI} == x86 ]]; then
- if [[ $(id -u) == 0 ]]; then
- ewarn "Skipping tests since they cannot be run under the root user."
- ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf"
- return
- fi
-
- WINEPREFIX="${T}/.wine-${ABI}" \
- Xemake test
- fi
-}
+ if use mingw; then
+ use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
-multilib_src_install_all() {
- local DOCS=( ANNOUNCE AUTHORS README )
- add_locale_docs() {
- local locale_doc="documentation/README.$1"
- [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
- }
- l10n_for_each_locale_do add_locale_docs
+ # CROSSCC was formerly recognized by wine, thus been using similar
+ # variables (subject to change, esp. if ever make a mingw.eclass).
+ local mingwcc_amd64=${CROSSCC:-${CROSSCC_amd64:-x86_64-w64-mingw32-gcc}}
+ local mingwcc_x86=${CROSSCC:-${CROSSCC_x86:-i686-w64-mingw32-gcc}}
+ local -n mingwcc=mingwcc_$(usex abi_x86_64 amd64 x86)
- einstalldocs
- prune_libtool_files --all
+ conf+=(
+ ac_cv_prog_x86_64_CC="${mingwcc_amd64}"
+ ac_cv_prog_i386_CC="${mingwcc_x86}"
- if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
- rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \
- "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die
- fi
+ CROSSCFLAGS="${CROSSCFLAGS:-$(
+ filter-flags '-fstack-protector*' #870136
+ filter-flags '-mfunction-return=thunk*' #878849
- # Remove wineconsole if neither backend is installed #551124
- if ! use X && ! use ncurses; then
- rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die
- rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die
- rm_wineconsole() {
- rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die
- }
- multilib_foreach_abi rm_wineconsole
- fi
+ # some bashrc-mv users tend to do CFLAGS="${LDFLAGS}" and then
+ # strip-unsupported-flags miss these during compile-only tests
+ # (primarily done for 23.0 profiles' -z, not full coverage)
+ filter-flags '-Wl,-z,*'
- use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055
- use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader}
+ CC=${mingwcc} test-flags-CC ${CFLAGS:--O2}
+ )}"
- # Avoid double prefix from dosym and make_wrapper
- MY_PREFIX=${MY_PREFIX#${EPREFIX}}
+ CROSSLDFLAGS="${CROSSLDFLAGS:-$(
+ filter-flags '-fuse-ld=*'
- if use abi_x86_64 && ! use abi_x86_32; then
- dosym wine64 "${MY_PREFIX}"/bin/wine # 404331
- dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
+ CC=${mingwcc} test-flags-CCLD ${LDFLAGS}
+ )}"
+ )
fi
- # Failglob for binloops, shouldn't be necessary, but including to stay safe
- eshopts_push -s failglob #615218
- # Make wrappers for binaries for handling multiple variants
- # Note: wrappers instead of symlinks because some are shell which use basename
- local b
- for b in "${ED%/}${MY_PREFIX}"/bin/*; do
- make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}"
+ # order matters with multilib: configure+compile 64->32, install 32->64
+ local -i bits
+ for bits in $(usev abi_x86_64 64) $(usev abi_x86_32 32); do
+ (
+ einfo "Configuring ${PN} for ${bits}bits in ${WORKDIR}/build${bits} ..."
+
+ mkdir ../build${bits} || die
+ cd ../build${bits} || die
+
+ if (( bits == 64 )); then
+ conf+=( --enable-win64 )
+ elif use amd64; then
+ conf+=(
+ $(usev abi_x86_64 --with-wine64=../build64)
+ TARGETFLAGS=-m32 # for widl
+ )
+ # _setup is optional, but use over Wine's auto-detect (+#472038)
+ multilib_toolchain_setup x86
+ fi
+
+ ECONF_SOURCE=${S} econf "${conf[@]}"
+ )
done
- eshopts_pop
}
-pkg_postinst() {
- eselect wine register ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine register --vanilla ${P} || die
+src_compile() {
+ use abi_x86_64 && emake -C ../build64 # do first
+ use abi_x86_32 && emake -C ../build32
+}
+
+src_install() {
+ use abi_x86_32 && emake DESTDIR="${D}" -C ../build32 install
+ use abi_x86_64 && emake DESTDIR="${D}" -C ../build64 install # do last
+
+ # Ensure both wine64 and wine are available if USE=abi_x86_64 (wow64,
+ # -abi_x86_32, and/or EXTRA_ECONF could cause varying scenarios where
+ # one or the other could be missing and that is unexpected for users
+ # and some tools like winetricks)
+ if use abi_x86_64; then
+ if [[ -e ${ED}${WINE_PREFIX}/bin/wine64 && ! -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine64 ${WINE_PREFIX}/bin/wine
+ dosym wine64-preloader ${WINE_PREFIX}/bin/wine-preloader
+
+ # also install wine(1) man pages (incl. translations)
+ local man
+ for man in ../build64/loader/wine.*man; do
+ : "${man##*/wine}"
+ : "${_%.*}"
+ insinto ${WINE_DATADIR}/man/${_:+${_#.}/}man1
+ newins ${man} wine.1
+ done
+ elif [[ ! -e ${ED}${WINE_PREFIX}/bin/wine64 && -e ${ED}${WINE_PREFIX}/bin/wine ]]; then
+ dosym wine ${WINE_PREFIX}/bin/wine64
+ dosym wine-preloader ${WINE_PREFIX}/bin/wine64-preloader
+ fi
fi
- eselect wine update --all --if-unset || die
+ use perl || rm "${ED}"${WINE_DATADIR}/man/man1/wine{dump,maker}.1 \
+ "${ED}"${WINE_PREFIX}/bin/{function_grep.pl,wine{dump,maker}} || die
- xdg_desktop_database_update
+ # create variant wrappers for eselect-wine
+ local bin
+ for bin in "${ED}"${WINE_PREFIX}/bin/*; do
+ make_wrapper "${bin##*/}-${P#wine-}" "${bin#"${ED}"}"
+ done
- if ! use gecko; then
- ewarn "Without Wine Gecko, wine prefixes will not have a default"
- ewarn "implementation of iexplore. Many older windows applications"
- ewarn "rely upon the existence of an iexplore implementation, so"
- ewarn "you will likely need to install an external one, like via winetricks"
- fi
- if ! use mono; then
- ewarn "Without Wine Mono, wine prefixes will not have a default"
- ewarn "implementation of .NET. Many windows applications rely upon"
- ewarn "the existence of a .NET implementation, so you will likely need"
- ewarn "to install an external one, like via winetricks"
+ if use mingw; then
+ # don't let portage try to strip PE files with the wrong
+ # strip executable and instead handle it here (saves ~120MB)
+ dostrip -x ${WINE_PREFIX}/wine/{i386,x86_64}-windows
+
+ if use strip; then
+ ebegin "Stripping Windows (PE) binaries"
+ find "${ED}"${WINE_PREFIX}/wine/*-windows -regex '.*\.\(a\|dll\|exe\)' \
+ -exec $(usex abi_x86_64 x86_64 i686)-w64-mingw32-strip --strip-unneeded {} +
+ eend ${?} || die
+ fi
fi
+
+ dodoc ANNOUNCE* AUTHORS README* documentation/README*
}
-pkg_prerm() {
- eselect wine deregister ${P}
- if [[ ${PN} == "wine-vanilla" ]]; then
- eselect wine deregister --vanilla ${P} || die
+pkg_postinst() {
+ if use !abi_x86_32 && use !wow64; then
+ ewarn "32bit support is disabled. While 64bit applications themselves will"
+ ewarn "work, be warned that it is not unusual that installers or other helpers"
+ ewarn "will attempt to use 32bit and fail. If do not want full USE=abi_x86_32,"
+ ewarn "note the experimental/WIP USE=wow64 can allow 32bit without multilib."
+ elif use abi_x86_32 && { use opengl || use vulkan; } &&
+ has_version 'x11-drivers/nvidia-drivers[-abi_x86_32]'
+ then
+ ewarn "x11-drivers/nvidia-drivers is installed but is built without"
+ ewarn "USE=abi_x86_32 (ABI_X86=32), hardware acceleration with 32bit"
+ ewarn "applications under ${PN} will likely not be usable."
fi
- eselect wine update --all --if-unset || die
+ optfeature "/dev/hidraw* access used for *some* controllers (e.g. DualShock4)" \
+ games-util/game-device-udev-rules
+
+ eselect wine update --if-unset || die
}
pkg_postrm() {
- xdg_desktop_database_update
+ eselect wine update --if-unset || die
}
diff --git a/app-emulation/winetricks/Manifest b/app-emulation/winetricks/Manifest
index 23a38cf1c76c..bb6973b41b47 100644
--- a/app-emulation/winetricks/Manifest
+++ b/app-emulation/winetricks/Manifest
@@ -1,4 +1,3 @@
-DIST winetricks-20190912.tar.gz 679544 BLAKE2B 633c407f8560fa3aa38806befded957d0bf1276164483b08fb3ef285fe873531d6362ae6305f5a33a85891d75990e6e0271fe954358e49425c4f36f0f918f48d SHA512 a0017cc08c56a511e523116daf2024b1462460d00b3d07de87720c7912dccab3d953db3653d7d611c5ae3b457a45de8d36688ee703e805c1e1f5be5c0fa7739f
-DIST winetricks-20191224.tar.gz 683074 BLAKE2B 53e89f57883c7527e083610d4ea036887cc8e058d281ee77b0e8fd7dec8520bcd27d5d86f6cadfa5d11bc191a33571086128e6729642e7f302dc37e27b1ce402 SHA512 31c0866e78d866e569da6c1123af7823a07b6358a79fcba84296938d89a39447ec9f504ca524471abc74ec2e3b24024bbc8a579413b4fe0ee74b1d5612f5d41a
-DIST winetricks-20200412.tar.gz 684548 BLAKE2B e29eba0c73ec0649523dac0f0efd145a5c9fe60d94ae98bc55ec430f511cc5bdf3149d87289973a85a373f2f91c3bd5521470853e06f5ec4af83fc810aa4fdc5 SHA512 d6ca5628b7d296b3168ef088ca0b03aff8b73da8a139061ca64fac0685ec29bf2b7e075b89226f8ce3af511947eac45d4c72cfb1199e6b72666fc67547b77588
+DIST winetricks-20230212.tar.gz 694504 BLAKE2B 8f36a618edd0b17ccb7dbd1f054d45d2d35c3c8e5bfb2f12d91b8f9c87c9942db5b430a2b3017a42c3900dfe8f0510a6b8a6d78035e3fb467d88a3db0b64eff8 SHA512 3d2211091754a2a254d5ac8dab27d59d488d512149d8060828cf9d69df96f5ccad183f2ba9f2172452a2ae322236e86e7fce560836a2bc05dc9a36c2a422f245
+DIST winetricks-20240105.tar.gz 675763 BLAKE2B 0ca29d06ae35c95027ead0da2fa26b2950b4b4d495b61c972b9f93ae26fcadc7891931224bc2a8776e06f8bf2816e2fd5b84a0ef342de296aae20129dd5480b0 SHA512 254b505e1175477df3a27b361f227a02a2346a1b7ace255b6170e8bd463883dda8fef9fcbf2cd54606d69742fd6236f9aa58f589e2a34eb66bd04dfaa7bd6799
DIST winetricks-gentoo-2012.11.24.tar.bz2 6398 BLAKE2B 54a4502f6e8ef15d21b02c43e3ce599e32d476c2559246064de14cc4ce2243ff11dde681d24c8a7f4913c3d7a10b855bda47e8fb8ecad31e00d839705416be6f SHA512 59c93b73f3a7b2d11aefcde2ff66659ff1de21ad4b5f232f4b60572f3a48b15a6c49f369b1696862bf1b33fde190bf5598945e9536fb41ddec42d8def4d2be2a
diff --git a/app-emulation/winetricks/metadata.xml b/app-emulation/winetricks/metadata.xml
index 15c062872f15..0ada2835dd03 100644
--- a/app-emulation/winetricks/metadata.xml
+++ b/app-emulation/winetricks/metadata.xml
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>chiitoo@gentoo.org</email>
<name>Jimi Huotari</name>
</maintainer>
- <maintainer type="person">
- <email>NP-Hardass@gentoo.org</email>
- <name>NP-Hardass</name>
- </maintainer>
<maintainer type="project">
<email>wine@gentoo.org</email>
<name>Wine</name>
diff --git a/app-emulation/winetricks/winetricks-20191224.ebuild b/app-emulation/winetricks/winetricks-20191224.ebuild
deleted file mode 100644
index 2a88c5a5cb66..000000000000
--- a/app-emulation/winetricks/winetricks-20191224.ebuild
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit desktop xdg
-
-if [[ ${PV} == "99999999" ]] ; then
- EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
- inherit git-r3
- SRC_URI=""
-else
- SRC_URI="https://github.com/Winetricks/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
-fi
-
-wtg="winetricks-gentoo-2012.11.24"
-
-SRC_URI="${SRC_URI}
- gtk? ( https://dev.gentoo.org/~chiitoo/distfiles/${wtg}.tar.bz2 )
- kde? ( https://dev.gentoo.org/~chiitoo/distfiles/${wtg}.tar.bz2 )
-"
-
-DESCRIPTION="Easy way to install DLLs needed to work around problems in Wine"
-HOMEPAGE="https://github.com/Winetricks/winetricks https://wiki.winehq.org/Winetricks"
-
-LICENSE="LGPL-2.1+"
-SLOT="0"
-IUSE="gtk kde rar test"
-
-BDEPEND="
- test? (
- dev-python/bashate
- dev-util/checkbashisms
- dev-util/shellcheck
- )
-"
-DEPEND=""
-RDEPEND="${DEPEND}
- app-arch/cabextract
- app-arch/p7zip
- app-arch/unzip
- net-misc/wget
- virtual/wine
- x11-misc/xdg-utils
- gtk? ( gnome-extra/zenity )
- kde? ( kde-apps/kdialog )
- rar? ( app-arch/unrar )
-"
-
-RESTRICT="!test? ( test )"
-
-# Test targets include syntax checks only, not the "heavy duty" tests
-# that would require a lot of disk space, as well as network access.
-
-# This uses a non-standard "Wine" category, which is provided by
-# '/etc/xdg/menus/applications-merged/wine.menu' from the
-# 'app-emulation/wine-desktop-common' package.
-# https://bugs.gentoo.org/451552
-QA_DESKTOP_FILE="usr/share/applications/winetricks.desktop"
-
-src_unpack() {
- if [[ ${PV} == "99999999" ]]; then
- git-r3_src_unpack
-
- if use gtk || use kde; then
- unpack ${wtg}.tar.bz2
- fi
-
- else
- default
- fi
-}
-
-src_test() {
- ./tests/shell-checks || die "Test(s) failed."
-}
-
-src_install() {
- default
-
- if use gtk || use kde; then
- cd "${WORKDIR}/${wtg}" || die
- domenu winetricks.desktop
- insinto /usr/share/icons/hicolor/scalable/apps
- doins wine-winetricks.svg
- fi
-}
diff --git a/app-emulation/winetricks/winetricks-20190912.ebuild b/app-emulation/winetricks/winetricks-20230212.ebuild
index 3cb7eb82c4b2..afdf44a0f734 100644
--- a/app-emulation/winetricks/winetricks-20190912.ebuild
+++ b/app-emulation/winetricks/winetricks-20230212.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit desktop xdg
+inherit xdg
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
@@ -29,11 +29,17 @@ SLOT="0"
IUSE="gtk kde rar test"
RESTRICT="!test? ( test )"
+# dev-util/shellcheck is not available for x86
+RESTRICT+=" x86? ( test )"
+
BDEPEND="
test? (
dev-python/bashate
dev-util/checkbashisms
- dev-util/shellcheck
+ || (
+ dev-util/shellcheck-bin
+ dev-util/shellcheck
+ )
)
"
DEPEND=""
@@ -78,10 +84,8 @@ src_test() {
src_install() {
default
- if use gtk || use kde; then
- cd "${WORKDIR}/${wtg}" || die
- domenu winetricks.desktop
- insinto /usr/share/icons/hicolor/scalable/apps
- doins wine-winetricks.svg
+ if ! use gtk && ! use kde; then
+ rm -r "${ED}"/usr/share/applications || die
+ rm -r "${ED}"/usr/share/icons || die
fi
}
diff --git a/app-emulation/winetricks/winetricks-20200412.ebuild b/app-emulation/winetricks/winetricks-20240105.ebuild
index 380da376c94c..91fa5d31a9b7 100644
--- a/app-emulation/winetricks/winetricks-20200412.ebuild
+++ b/app-emulation/winetricks/winetricks-20240105.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit desktop xdg
+inherit xdg
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
@@ -29,6 +29,9 @@ SLOT="0"
IUSE="gtk kde rar test"
RESTRICT="!test? ( test )"
+# dev-util/shellcheck is not available for x86
+RESTRICT+=" x86? ( test )"
+
BDEPEND="
test? (
dev-python/bashate
@@ -81,10 +84,8 @@ src_test() {
src_install() {
default
- if use gtk || use kde; then
- cd "${WORKDIR}/${wtg}" || die
- domenu winetricks.desktop
- insinto /usr/share/icons/hicolor/scalable/apps
- doins wine-winetricks.svg
+ if ! use gtk && ! use kde; then
+ rm -r "${ED}"/usr/share/applications || die
+ rm -r "${ED}"/usr/share/icons || die
fi
}
diff --git a/app-emulation/winetricks/winetricks-99999999.ebuild b/app-emulation/winetricks/winetricks-99999999.ebuild
index 380da376c94c..91fa5d31a9b7 100644
--- a/app-emulation/winetricks/winetricks-99999999.ebuild
+++ b/app-emulation/winetricks/winetricks-99999999.ebuild
@@ -1,9 +1,9 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-inherit desktop xdg
+inherit xdg
if [[ ${PV} == "99999999" ]] ; then
EGIT_REPO_URI="https://github.com/Winetricks/${PN}.git"
@@ -29,6 +29,9 @@ SLOT="0"
IUSE="gtk kde rar test"
RESTRICT="!test? ( test )"
+# dev-util/shellcheck is not available for x86
+RESTRICT+=" x86? ( test )"
+
BDEPEND="
test? (
dev-python/bashate
@@ -81,10 +84,8 @@ src_test() {
src_install() {
default
- if use gtk || use kde; then
- cd "${WORKDIR}/${wtg}" || die
- domenu winetricks.desktop
- insinto /usr/share/icons/hicolor/scalable/apps
- doins wine-winetricks.svg
+ if ! use gtk && ! use kde; then
+ rm -r "${ED}"/usr/share/applications || die
+ rm -r "${ED}"/usr/share/icons || die
fi
}
diff --git a/app-emulation/x48/metadata.xml b/app-emulation/x48/metadata.xml
index e4472f348708..44a724679bcf 100644
--- a/app-emulation/x48/metadata.xml
+++ b/app-emulation/x48/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>voyageur@gentoo.org</email>
diff --git a/app-emulation/x48/x48-0.6.4-r2.ebuild b/app-emulation/x48/x48-0.6.4-r2.ebuild
index 9e603e25e582..74f99e360606 100644
--- a/app-emulation/x48/x48-0.6.4-r2.ebuild
+++ b/app-emulation/x48/x48-0.6.4-r2.ebuild
@@ -11,7 +11,7 @@ SRC_URI="mirror://sourceforge/x48.berlios/${P}.tar.bz2"
LICENSE="GPL-3"
SLOT="0"
-KEYWORDS="~alpha amd64 hppa ~ia64 ppc ppc64 sparc x86"
+KEYWORDS="~alpha amd64 ~hppa ~ia64 ppc ppc64 sparc x86"
IUSE="readline"
RDEPEND="
diff --git a/app-emulation/xcpc/Manifest b/app-emulation/xcpc/Manifest
index 202bdb898f57..23162f00274d 100644
--- a/app-emulation/xcpc/Manifest
+++ b/app-emulation/xcpc/Manifest
@@ -1 +1 @@
-DIST xcpc-20070122.tar.gz 496627 BLAKE2B 13fc9974e3810fa4ef45e90764641cb0a220657055829d1ec9a185c1a894234d3a654581e317327ac5937454b9dfab14af2654775157041edcc0176975753835 SHA512 7f5700340fbbf23d2f2111e31ce803c846799ef6681cf63e28bc67564e092534fc4140cb99d718fae9126668ee8f3053bbd097537c04637b5b809ce7b986dd26
+DIST xcpc-0.37.0.tar.gz 1094259 BLAKE2B 670de05f53d05d375c9cb252e672f8fa9027419302b521b88dc1904ec99571fa95b390bfdc5eea3eb2355730c02a955c10cbc2f29d7e4c52506173e8f5d6c540 SHA512 8579711595ac5234c1c8a6e9d0279950c97966a2a8919d4f0ba404c5bd5609f299ab0b5131d6973f5decfc12bff184facf3009522bef568a108b5cfb7e74be11
diff --git a/app-emulation/xcpc/metadata.xml b/app-emulation/xcpc/metadata.xml
index 55dccaa5b8f2..d63de1a63526 100644
--- a/app-emulation/xcpc/metadata.xml
+++ b/app-emulation/xcpc/metadata.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<upstream>
<remote-id type="sourceforge">xcpc</remote-id>
+ <remote-id type="bitbucket">ponceto/xcpc</remote-id>
</upstream>
</pkgmetadata>
diff --git a/app-emulation/xcpc/xcpc-0.37.0-r1.ebuild b/app-emulation/xcpc/xcpc-0.37.0-r1.ebuild
new file mode 100644
index 000000000000..130b749e94db
--- /dev/null
+++ b/app-emulation/xcpc/xcpc-0.37.0-r1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit xdg
+
+DESCRIPTION="XCPC is a portable Amstrad CPC 464/664/6128 emulator written in C"
+HOMEPAGE="http://www.xcpc-emulator.net/doku.php/index"
+SRC_URI="https://bitbucket.org/ponceto/xcpc/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ app-arch/bzip2
+ sys-libs/zlib
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ x11-libs/libXext"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf \
+ --disable-athena \
+ --disable-motif2 \
+ --with-x11-toolkit=gtk3
+}
diff --git a/app-emulation/xcpc/xcpc-20070122.ebuild b/app-emulation/xcpc/xcpc-20070122.ebuild
deleted file mode 100644
index bfe344f89853..000000000000
--- a/app-emulation/xcpc/xcpc-20070122.ebuild
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-DESCRIPTION="XCPC is a portable Amstrad CPC 464/664/6128 emulator written in C."
-HOMEPAGE="http://www.xcpc-emulator.net/doku.php/index"
-SRC_URI="http://sourceforge.net/projects/${PN}/files/${PN}/${P}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE=""
-
-RDEPEND="app-emulation/libdsk"
diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch
deleted file mode 100644
index ee9b86e91396..000000000000
--- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-gentoo.patch
+++ /dev/null
@@ -1,35 +0,0 @@
---- usr/sbin/xe-linux-distribution.orig 2011-04-18 10:56:30.000000000 -0500
-+++ usr/sbin/xe-linux-distribution 2013-12-31 01:35:51.995831278 -0600
-@@ -249,6 +249,24 @@
- write_to_output "${distro}" "${major}" "${minor}" "${description}"
- }
-
-+identify_gentoo()
-+{
-+ gentoo_release="$1"
-+ if [ ! -e "${gentoo_release}" ] ; then
-+ return 1
-+ fi
-+ distro="gentoo"
-+ eval $(cat ${gentoo_release} | awk '{ print "release=" $5 }' )
-+ if [ -z "${release}" ] ; then
-+ return 1
-+ fi
-+ eval $(echo $release | awk -F. -- '{ print "major=" $1 ; print "minor=" $2 }' )
-+ if [ -z "${major}" -o -z "$minor" ] ; then
-+ return 1
-+ fi
-+ write_to_output "${distro}" "${major}" "${minor}" "${distro}"
-+}
-+
- if [ $# -eq 1 ] ; then
- exec 1>"$1"
- fi
-@@ -258,6 +276,7 @@
- identify_sles /etc/SuSE-release && exit 0
- identify_lsb lsb_release && exit 0
- identify_debian /etc/debian_version && exit 0
-+ identify_gentoo /etc/gentoo-release && exit 0
-
- if [ $# -eq 1 ] ; then
- rm -f "$1"
diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch
deleted file mode 100644
index c60994effa65..000000000000
--- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-5.6.100_p651-update-guest-attrs.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- usr/sbin/xe-update-guest-attrs.orig 2011-04-18 10:56:30.000000000 -0500
-+++ usr/sbin/xe-update-guest-attrs 2013-12-31 04:34:57.750083257 -0600
-@@ -172,7 +172,7 @@
- # collisions:0 txqueuelen:0
- # RX bytes:3604609 (3.4 MiB) TX bytes:3604609 (3.4 MiB)
-
--eval $(/sbin/ifconfig | \
-+eval $(/bin/ifconfig | \
- sed -n -e '/^[0-9a-z][0-9a-z]*\:/,/^$/d' \
- -e 's/^\([0-9a-z][0-9a-z]*\) .*/ifs="\$ifs \1"; current="\1"; /gp;' \
- -e 's/ *inet addr:\('$IPADDR_RE'\) .*/eval inet_\${current}="\1"; /gp;')
diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch
index d431cdfcf999..29c8ebc91074 100644
--- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch
+++ b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Guest-Attributes.patch
@@ -1,5 +1,5 @@
---- usr/sbin/xe-update-guest-attrs.orig 2013-06-14 07:57:18.000000000 -0500
-+++ usr/sbin/xe-update-guest-attrs 2014-04-19 13:38:14.627477193 -0500
+--- a/xe-update-guest-attrs
++++ b/xe-update-guest-attrs
@@ -1,6 +1,7 @@
#!/bin/sh
diff --git a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch
index 45b0bbc56c69..d1ec22668603 100644
--- a/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch
+++ b/app-emulation/xe-guest-utilities/files/xe-guest-utilities-6.2.0_p1120-Linux-Distribution.patch
@@ -1,5 +1,5 @@
---- usr/sbin/xe-linux-distribution.orig 2013-06-14 07:57:18.000000000 -0500
-+++ usr/sbin/xe-linux-distribution 2014-04-19 13:54:13.270477193 -0500
+--- a/xe-linux-distribution
++++ b/xe-linux-distribution
@@ -1,6 +1,7 @@
#! /bin/sh
diff --git a/app-emulation/xe-guest-utilities/metadata.xml b/app-emulation/xe-guest-utilities/metadata.xml
index b1dc4728a9d2..c53ad2005ebe 100644
--- a/app-emulation/xe-guest-utilities/metadata.xml
+++ b/app-emulation/xe-guest-utilities/metadata.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
-<maintainer type="person">
+<maintainer type="person" proxied="yes">
<email>chicago@blkid.net</email>
<name>Chicago</name>
</maintainer>
@@ -21,6 +21,6 @@
<name>Gentoo Xen Project</name>
</maintainer>
<use>
- <flag name="xenstore">Use xenstore binaries bundled by Citrix instead of building app-emulation/xen-tools</flag>
+ <flag name="xenstore">Use xenstore binaries bundled by Citrix instead of building <pkg>app-emulation/xen-tools</pkg></flag>
</use>
</pkgmetadata>
diff --git a/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120.ebuild b/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120-r1.ebuild
index d3211b5fdcf1..145e42fb64b0 100644
--- a/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120.ebuild
+++ b/app-emulation/xe-guest-utilities/xe-guest-utilities-6.2.0_p1120-r1.ebuild
@@ -1,43 +1,50 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=5
-inherit eutils rpm linux-info
-DESCRIPTION="XenServer Virtual Machine Tools"
-HOMEPAGE="https://www.citrix.com/"
+EAPI=8
+
+inherit rpm linux-info udev
+
PV_BASE=${PV/_*}
PV_FULL=${PV/_p/-}
+
+DESCRIPTION="XenServer Virtual Machine Tools"
+HOMEPAGE="https://www.citrix.com/"
SRC_URI="http://updates.vmd.citrix.com/XenServer/${PV_BASE}/rhel4x/SRPMS/xe-guest-utilities-${PV_FULL}.src.rpm"
+S="${WORKDIR}"
+
LICENSE="LGPL-3 LGPL-2.1"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="xenstore"
-DEPEND="app-arch/rpm2targz"
+
+BDEPEND="app-arch/rpm2targz"
RDEPEND="
!xenstore? ( app-emulation/xen-tools )
- xenstore? ( !app-emulation/xen-tools )"
-S=${WORKDIR}
+ xenstore? ( !app-emulation/xen-tools )
+"
+
CONFIG_CHECK="~XEN_COMPAT_XENFS ~XENFS"
QA_PREBUILT="usr/bin/xenstore* usr/bin/xeninfo"
+PATCHES=(
+ "${FILESDIR}"/${PN}-6.2.0_p1120-Guest-Attributes.patch
+ "${FILESDIR}"/${PN}-6.2.0_p1120-Linux-Distribution.patch
+)
+
src_unpack() {
rpm_src_unpack ${A}
# Upstream includes xenstore-sources.tar.bz2
# but it is NOT the complete source :-(
}
-src_prepare() {
- epatch "${FILESDIR}"/${PN}-6.2.0_p1120-Guest-Attributes.patch
- epatch "${FILESDIR}"/${PN}-6.2.0_p1120-Linux-Distribution.patch
-}
-
src_install() {
- newinitd "${FILESDIR}/xe-daemon.initd" xe-daemon
+ newinitd "${FILESDIR}"/xe-daemon.initd xe-daemon
dosbin xe-daemon
dosbin xe-linux-distribution
dosbin xe-update-guest-attrs
- insinto /lib/udev/rules.d
- newins xen-vcpu-hotplug.rules 10-xen-vcpu-hotplug.rules
+
+ udev_newrules xen-vcpu-hotplug.rules 10-xen-vcpu-hotplug.rules
if use xenstore; then
dobin usr/bin/xeninfo
@@ -47,6 +54,8 @@ src_install() {
}
pkg_postinst() {
+ udev_reload
+
if [ ! -e /etc/runlevels/boot/xe-daemon ]; then
elog "To start the xe-daemon automatically by default"
elog "you should add it to the boot runlevel :"
diff --git a/app-emulation/xen-pvgrub/Manifest b/app-emulation/xen-pvgrub/Manifest
deleted file mode 100644
index aa2198b35781..000000000000
--- a/app-emulation/xen-pvgrub/Manifest
+++ /dev/null
@@ -1,8 +0,0 @@
-DIST grub-0.97.tar.gz 971783 BLAKE2B a7b6feb6dddb6eeb20e027071091b2d37930e5b40687f8c8ff860839db208f832713db61389014d21842e1e152cad0466dc9722a79cbb81bfa1566a30b6b82cc SHA512 c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb
-DIST lwip-1.3.0.tar.gz 398933 BLAKE2B 3567a593eec3d247213daaaab57d9456c9cae50329498ca55cee7726a59461f8e9d77d96cfc8204d6b7b7962f00664f44d3bc7f16a5a53f5e068a02d405fb457 SHA512 1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d
-DIST newlib-1.16.0.tar.gz 12024353 BLAKE2B 26d3308148fb99baf8ad02eee4cc699cfac690100ea63aaa4be03b86d12dade238478342514bd083cbc3d27964ac42eb8dae3873fdac5ff2c593fc4fb39b2309 SHA512 40eb96bbc6736a16b6399e0cdb73e853d0d90b685c967e77899183446664d64570277a633fdafdefc351b46ce210a99115769a1d9f47ac749d7e82837d4d1ac3
-DIST pciutils-2.2.9.tar.bz2 212265 BLAKE2B 014b664e90c64e7255c9e21fc25a2cc60d57f47ce282fc0331a0481a460b237783bd3774dd0689e1596d4a0be0d2889faad904da01a6f02147464bce1d1b1bc0 SHA512 2b3d98d027e46d8c08037366dde6f0781ca03c610ef2b380984639e4ef39899ed8d8b8e4cd9c9dc54df101279b95879bd66bfd4d04ad07fef41e847ea7ae32b5
-DIST polarssl-1.1.4-gpl.tgz 611340 BLAKE2B 613da06dda9e4b86db5a4d616a0a0afee98c907c3c6b352eed3d9e500fc5739e62eb4f6fc32ff02579c6a6de9bd49fcd2c8bd8b2d158a5050cbaa82118d61ef0 SHA512 88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad
-DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90
-DIST xen-4.14.0.tar.gz 39950576 BLAKE2B db4c3e79cfdfb10260d0d14d9d28e8c8bd9bf23f42aee743acf8f560bf4cdb96a425c0df887c70f9755f62680be24bfbe0149e52a4cb843ae83090cd9d6afc71 SHA512 ebce47a2f754955d8517123d69f62006634d97620fbbe3784869a0667466e586a249f57ffaf7846d5bcb45d69377cde43354c82c233fbb5407e55653b9a33ac0
-DIST zlib-1.2.3.tar.gz 496597 BLAKE2B 603020b70cd52b83e48bde420b86e2acfd29d69bf7476eecbeeb07d1b8bcab703d2cbd3eab77772990bddb8c268f13594592ce985798d49e2d6ba25104d49f22 SHA512 021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e
diff --git a/app-emulation/xen-pvgrub/files/newlib-implicits.patch b/app-emulation/xen-pvgrub/files/newlib-implicits.patch
deleted file mode 100644
index 73c04931b31d..000000000000
--- a/app-emulation/xen-pvgrub/files/newlib-implicits.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-diff -ur newlib-1.16.0.orig/newlib/libc/stdlib/wcstoull.c newlib-1.16.0/newlib/libc/stdlib/wcstoull.c
---- newlib/libc/stdlib/wcstoull.c 2007-07-07 04:03:28.000000000 +0800
-+++ newlib/libc/stdlib/wcstoull.c 2012-12-02 14:19:40.905136553 +0800
-@@ -124,7 +124,7 @@
- #include <errno.h>
- #include <stdlib.h>
- #include <reent.h>
--
-+#include <wchar.h>
- #ifndef _REENT_ONLY
-
- unsigned long long
-diff -ur newlib-1.16.0.orig/newlib/doc/makedoc.c
-newlib-1.16.0/newlib/doc/makedoc.c
---- newlib/doc/makedoc.c 2007-01-03 01:59:59.000000000 +0900
-+++ newlib/doc/makedoc.c 2012-12-02 16:53:42.700289294 +0800
-@@ -39,7 +39,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
--
-+#include <string.h>
- #define DEF_SIZE 5000
- #define STACK 50
-
-diff -ur newlib-1.16.0.orig/newlib/libc/reent/lseek64r.c newlib-1.16.0/newlib/libc/reent/lseek64r.c
---- newlib/libc/reent/lseek64r.c 2003-06-04 03:48:07.000000000 +0800
-+++ newlib/libc/reent/lseek64r.c 2012-12-02 18:29:45.435760985 +0800
-@@ -1,8 +1,8 @@
- /* Reentrant versions of lseek system call. */
-
--#include <reent.h>
-+#include "../include/reent.h"
- #include <unistd.h>
--#include <_syslist.h>
-+#include "../include/_syslist.h"
-
- /* Some targets provides their own versions of this functions. Those
- targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */
-diff -ur newlib-1.16.0.orig/newlib/libc/stdio64/fseeko64.c newlib-1.16.0/newlib/libc/stdio64/fseeko64.c
---- newlib/libc/stdio64/fseeko64.c 2007-07-14 04:37:53.000000000 +0800
-+++ newlib/libc/stdio64/fseeko64.c 2012-12-02 18:26:29.955778906 +0800
-@@ -119,7 +119,7 @@
- ptr->_errno = EOVERFLOW;
- return EOF;
- }
-- return (_off64_t) _fseeko_r (ptr, fp, offset, whence);
-+ return (_off64_t) _fseeko64_r (ptr, fp, offset, whence);
- }
-
- /* Make sure stdio is set up. */
-
-diff -ur newlib-1.16.0.orig/newlib/libc/reent/fstat64r.c newlib-1.16.0/newlib/libc/reent/fstat64r.c
---- newlib/libc/reent/fstat64r.c 2012-12-03 13:17:26.569703981 +0800
-+++ newlib/libc/reent/fstat64r.c 2003-06-04 03:48:07.000000000 +0800
-@@ -1,10 +1,10 @@
- /* Reentrant versions of fstat system call. This implementation just
- calls the fstat system call. */
-
--#include <reent.h>
-+#include "../include/reent.h">
- #include <unistd.h>
- #include <sys/stat.h>
--#include <_syslist.h>
-+#include "../include/_syslist.h"
-
- #ifdef __LARGE64_FILES
-
-diff -ur newlib-1.16.0.orig/libgloss/i386/cygmon-gmon.c newlib-1.16.0/libgloss/i386/cygmon-gmon.c
---- libgloss/i386/cygmon-gmon.c 2002-10-26 03:18:46.000000000 +0800
-+++ libgloss/i386/cygmon-gmon.c 2012-12-03 14:38:41.454257066 +0800
-@@ -68,6 +68,9 @@
-
- #include "cygmon-gmon.h"
-
-+#include <unistd.h>
-+#include <stdlib.h>
-+#include <strings.h>
- /*
- * froms is actually a bunch of unsigned shorts indexing tos
- */
-@@ -78,6 +78,8 @@
- static char *s_lowpc = 0;
- static char *s_highpc = 0;
- static unsigned long s_textsize = 0;
-+extern void profil_write(int, char*, int);
-+extern int moncontrol (int);
-
- static int ssiz;
- static char *sbuf;
-diff -ur newlib-1.16.0.orig/newlib/libc/include/_syslist.h
-newlib-1.16.0/newlib/libc/include/_syslist.h
---- newlib/libc/include/_syslist.h 2005-08-23 05:13:35.000000000 +0800
-+++ newlib/libc/include/_syslist.h 2012-12-03 17:20:03.092369483 +0800
-@@ -2,6 +2,7 @@
- and only provide C names, so that we end up in violation of ANSI */
- #ifndef __SYSLIST_H
- #define __SYSLIST_H
-+#include <sys/types.h>
-
- #ifdef MISSING_SYSCALL_NAMES
- #define _close close
-
-#diff -ur newlib-1.16.0.orig/newlib/libc/Makefile.in newlib-1.16.0/newlib/libc/Makefile.in
-#--- newlib/libc/Makefile.in 2007-05-25 01:33:30.000000000 +0800
-#+++ newlib/libc/Makefile.in 2012-12-03 21:52:05.621873084 +0800
-diff -ur newlib-1.16.0.orig/newlib/libc/stdio64/ftello64.c newlib-1.16.0/newlib/libc/stdio64/ftello64.c
---- newlib/libc/stdio64/ftello64.c 2007-07-14 04:37:53.000000000 +0800
-+++ newlib/libc/stdio64/ftello64.c 2012-12-04 18:34:46.491509484 +0800
-@@ -93,7 +93,7 @@
-
- /* Only do 64-bit tell on large file. */
- if (!(fp->_flags & __SL64))
-- return (_off64_t) _ftello_r (ptr, fp);
-+ return (_off64_t) _ftello64_r (ptr, fp);
-
- /* Ensure stdio is set up. */
-
-diff -ur newlib-1.16.0.orig/newlib/libc/reent/open64r.c newlib-1.16.0/newlib/libc/reent/open64r.c
---- newlib/libc/reent/open64r.c 2002-08-27 02:56:06.000000000 +0800
-+++ newlib/libc/reent/open64r.c 2012-12-04 20:06:10.044006769 +0800
-@@ -1,8 +1,8 @@
- /* Reentrant versions of open system call. */
-
--#include <reent.h>
-+#include "../include/reent.h">
- #include <unistd.h>
--#include <fcntl.h>
-+#include <sys/_default_fcntl.h>
- #include <_syslist.h>
-
- #ifdef __LARGE64_FILES
-diff -ur newlib-1.16.0.orig/newlib/libc/reent/signalr.c newlib-1.16.0/newlib/libc/reent/signalr.c
---- newlib/libc/reent/signalr.c 2012-12-05 07:33:25.623393126 +0800
-+++ newlib/libc/reent/signalr.c 2012-12-05 07:34:03.943389613 +0800
-@@ -1,10 +1,10 @@
- /* Reentrant versions of syscalls need to support signal/raise.
- These implementations just call the usual system calls. */
-
--#include <reent.h>
-+#include "../include/reent.h"
- #include <signal.h>
- #include <unistd.h>
--#include <_syslist.h>
-+#include "../include/_syslist.h"
-
- /* Some targets provides their own versions of these functions. Those
- targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */
-
diff --git a/app-emulation/xen-pvgrub/files/xen-4.10-externals.patch b/app-emulation/xen-pvgrub/files/xen-4.10-externals.patch
deleted file mode 100644
index b206144e304e..000000000000
--- a/app-emulation/xen-pvgrub/files/xen-4.10-externals.patch
+++ /dev/null
@@ -1,74 +0,0 @@
---- a/stubdom/Makefile 2013-07-09 18:46:56.000000000 +0800
-+++ b/stubdom/Makefile 2013-07-21 16:07:08.094663570 +0800
-@@ -68,12 +68,12 @@
- ##############
-
- newlib-$(NEWLIB_VERSION).tar.gz:
-- $(FETCHER) $@ $(NEWLIB_URL)/$@
-
- newlib-$(NEWLIB_VERSION): newlib-$(NEWLIB_VERSION).tar.gz
- tar xzf $<
- patch -d $@ -p0 < newlib.patch
- patch -d $@ -p0 < newlib-chk.patch
-+ patch -d $@ -p0 < newlib-implicits.patch
- patch -d $@ -p1 < newlib-stdint-size_max-fix-from-1.17.0.patch
- find $@ -type f | xargs perl -i.bak \
- -pe 's/\b_(tzname|daylight|timezone)\b/$$1/g'
-@@ -85,7 +85,7 @@
- $(NEWLIB_STAMPFILE): mk-headers-$(XEN_TARGET_ARCH) newlib-$(NEWLIB_VERSION)
- mkdir -p newlib-$(XEN_TARGET_ARCH)
- ( cd newlib-$(XEN_TARGET_ARCH) && \
-- CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
-+ CC_FOR_TARGET="$(CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) $(NEWLIB_CFLAGS)" AR_FOR_TARGET=$(AR) LD_FOR_TARGET=$(LD) LDFLAGS= RANLIB_FOR_TARGET=$(RANLIB) ../newlib-$(NEWLIB_VERSION)/configure --prefix=$(CROSS_PREFIX) --verbose --target=$(GNU_TARGET_ARCH)-xen-elf --enable-newlib-io-long-long --disable-multilib && \
- $(MAKE) DESTDIR= && \
- $(MAKE) DESTDIR= install )
-
-@@ -94,7 +94,6 @@
- ############
-
- zlib-$(ZLIB_VERSION).tar.gz:
-- $(FETCHER) $@ $(ZLIB_URL)/$@
-
- zlib-$(XEN_TARGET_ARCH): zlib-$(ZLIB_VERSION).tar.gz
- tar xzf $<
-@@ -105,7 +104,7 @@
- cross-zlib: $(ZLIB_STAMPFILE)
- $(ZLIB_STAMPFILE): zlib-$(XEN_TARGET_ARCH) $(NEWLIB_STAMPFILE)
- ( cd $< && \
-- CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC=$(CC) ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
-+ CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" CC="$(CC)" ./configure --prefix=$(CROSS_PREFIX)/$(GNU_TARGET_ARCH)-xen-elf && \
- $(MAKE) DESTDIR= libz.a && \
- $(MAKE) DESTDIR= install )
-
-@@ -114,7 +113,6 @@
- ##############
-
- pciutils-$(LIBPCI_VERSION).tar.bz2:
-- $(FETCHER) $@ $(LIBPCI_URL)/$@
-
- pciutils-$(XEN_TARGET_ARCH): pciutils-$(LIBPCI_VERSION).tar.bz2
- tar xjf $<
-@@ -142,7 +140,6 @@
- ######
-
- lwip-$(LWIP_VERSION).tar.gz:
-- $(FETCHER) $@ $(LWIP_URL)/$@
-
- lwip-$(XEN_TARGET_ARCH): lwip-$(LWIP_VERSION).tar.gz
- tar xzf $<
-@@ -180,7 +177,6 @@
- # cross-polarssl
- #############
- polarssl-$(POLARSSL_VERSION)-gpl.tgz:
-- $(FETCHER) $@ $(POLARSSL_URL)/$@
-
- polarssl-$(XEN_TARGET_ARCH): polarssl-$(POLARSSL_VERSION)-gpl.tgz
- tar xzf $<
-@@ -385,7 +382,6 @@
- ######
-
- grub-$(GRUB_VERSION).tar.gz:
-- $(FETCHER) $@ $(GRUB_URL)/$@
-
- grub-upstream: grub-$(GRUB_VERSION).tar.gz
- tar xzf $<
diff --git a/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch b/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch
deleted file mode 100644
index aebc1ee5926e..000000000000
--- a/app-emulation/xen-pvgrub/files/xen-pvgrub-4.8-jserver.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tools/firmware/vgabios/Makefile b/tools/firmware/vgabios/Makefile
-index 3284812..ef242b3 100644
---- a/tools/firmware/vgabios/Makefile
-+++ b/tools/firmware/vgabios/Makefile
-@@ -30,7 +30,7 @@ distclean: clean
-
- .PHONY: release
- release:
-- VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" make bios cirrus-bios
-+ VGABIOS_VERS=\"-DVGABIOS_VERS=\\\"$(RELVERS)\\\"\" $(MAKE) bios cirrus-bios
- /bin/rm -f *.o *.s *.ld86 \
- temp.awk.* vgabios.*.orig _vgabios_.*.c core *.bak .#*
- cp VGABIOS-lgpl-latest.bin ../$(RELEASE).bin
diff --git a/app-emulation/xen-pvgrub/metadata.xml b/app-emulation/xen-pvgrub/metadata.xml
deleted file mode 100644
index fd12a2726425..000000000000
--- a/app-emulation/xen-pvgrub/metadata.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>hydrapolic@gmail.com</email>
- <name>Tomáš Mózes</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
- </maintainer>
- <maintainer type="project">
- <email>xen@gentoo.org</email>
- <name>Gentoo Xen Project</name>
- </maintainer>
-</pkgmetadata>
diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild
deleted file mode 100644
index d901f4638e9b..000000000000
--- a/app-emulation/xen-pvgrub/xen-pvgrub-4.13.1.ebuild
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-PYTHON_REQ_USE='xml,threads(+)'
-
-inherit flag-o-matic multilib python-single-r1 toolchain-funcs
-
-MY_PV=${PV/_/-}
-
-XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
-LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
-GRUB_URL=mirror://gnu-alpha/grub
-
-UPSTREAM_VER=
-[[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
-
-SRC_URI="
- https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
- $GRUB_URL/grub-0.97.tar.gz
- $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz
- $LIBPCI_URL/pciutils-2.2.9.tar.bz2
- $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz
- $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz
- $XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz
- ${UPSTREAM_PATCHSET_URI}"
-
-S="${WORKDIR}/xen-${MY_PV}"
-
-DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem"
-HOMEPAGE="https://www.xenproject.org"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="amd64 x86"
-IUSE=""
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND="sys-devel/gettext
- sys-devel/bin86
- sys-apps/texinfo
- x11-libs/pixman"
-
-RDEPEND="${PYTHON_DEPS}
- >=app-emulation/xen-tools-${PV}"
-
-# python2 only
-RESTRICT="test"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-retar-externals() {
- # Purely to unclutter src_prepare
- local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz"
-
- # eapply can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative
- sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \
- -i "${WORKDIR}"/zlib-1.2.3/configure || die
- sed -e 's:^AR=ar rc:AR=ar:' \
- -e s':$(AR) $@:$(AR) rc $@:' \
- -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in} || die
- einfo "zlib Makefile edited"
-
- cd "${WORKDIR}" || die
- tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz || die
- tar czp grub-0.97 -f grub-0.97.tar.gz || die
- tar czp lwip -f lwip-1.3.0.tar.gz || die
- tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz || die
- tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz || die
- mv $set "${S}"/stubdom/ || die
- einfo "tarballs moved to source"
-}
-
-src_prepare() {
- # Upstream's patchset
- if [[ -n ${UPSTREAM_VER} ]]; then
- einfo "Try to apply Xen Upstream patch set"
- EPATCH_SUFFIX="patch" \
- EPATCH_FORCE="yes" \
- EPATCH_OPTS="-p1" \
- eapply "${WORKDIR}"/patches-upstream
- fi
-
- # Patch the unmergeable newlib, fix most of the leftover gcc QA issues
- cp "${FILESDIR}"/newlib-implicits.patch stubdom || die
-
- # Patch stubdom/Makefile to patch insource newlib & prevent internal downloading
- eapply "${FILESDIR}"/${PN/-pvgrub/}-4.10-externals.patch
-
- # fix jobserver in Makefile
- eapply "${FILESDIR}"/${PN}-4.8-jserver.patch
-
- #Substitute for internal downloading. pciutils copied only due to the only .bz2
- cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom"
- retar-externals || die "re-tar procedure failed"
-
- default
-}
-
-src_configure() {
- local myconf="--prefix=${PREFIX}/usr \
- --libdir=${PREFIX}/usr/$(get_libdir) \
- --libexecdir=${PREFIX}/usr/libexec \
- --disable-werror \
- --disable-xen"
-
- econf ${myconf}
-}
-
-src_compile() {
- unset CFLAGS
- if test-flag-CC -fno-strict-overflow; then
- append-flags -fno-strict-overflow
- fi
-
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/libs
-
- if use x86; then
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
- XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
- elif use amd64; then
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
- XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub
- if has_multilib_profile; then
- multilib_toolchain_setup x86
- emake CC="$(tc-getCC)" AR="$(tc-getAR)" \
- XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
- fi
- fi
-}
-
-src_install() {
- if use x86; then
- emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
- fi
- if use amd64; then
- emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub
- if has_multilib_profile; then
- emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
- fi
- fi
-}
-
-pkg_postinst() {
- elog "Official Xen Guide and the offical wiki page:"
- elog "https://wiki.gentoo.org/wiki/Xen"
- elog "https://wiki.xen.org/wiki/Main_Page"
-}
diff --git a/app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild b/app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild
deleted file mode 100644
index c3980e0437ec..000000000000
--- a/app-emulation/xen-pvgrub/xen-pvgrub-4.14.0.ebuild
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6..9} )
-PYTHON_REQ_USE='xml,threads(+)'
-
-inherit flag-o-matic multilib python-single-r1 toolchain-funcs
-
-MY_PV=${PV/_/-}
-
-XEN_EXTFILES_URL="http://xenbits.xensource.com/xen-extfiles"
-LIBPCI_URL=ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci
-GRUB_URL=mirror://gnu-alpha/grub
-
-UPSTREAM_VER=
-[[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-pvgrub/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
-
-SRC_URI="
- https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
- $GRUB_URL/grub-0.97.tar.gz
- $XEN_EXTFILES_URL/zlib-1.2.3.tar.gz
- $LIBPCI_URL/pciutils-2.2.9.tar.bz2
- $XEN_EXTFILES_URL/lwip-1.3.0.tar.gz
- $XEN_EXTFILES_URL/newlib/newlib-1.16.0.tar.gz
- $XEN_EXTFILES_URL/polarssl-1.1.4-gpl.tgz
- ${UPSTREAM_PATCHSET_URI}"
-
-S="${WORKDIR}/xen-${MY_PV}"
-
-DESCRIPTION="allows to boot Xen domU kernels from a menu.lst laying inside guest filesystem"
-HOMEPAGE="https://www.xenproject.org"
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-DEPEND="sys-devel/gettext
- sys-devel/bin86
- sys-apps/texinfo
- x11-libs/pixman"
-
-RDEPEND="${PYTHON_DEPS}
- >=app-emulation/xen-tools-${PV}"
-
-# python2 only
-RESTRICT="test"
-
-pkg_setup() {
- python-single-r1_pkg_setup
-}
-
-retar-externals() {
- # Purely to unclutter src_prepare
- local set="grub-0.97.tar.gz lwip-1.3.0.tar.gz newlib-1.16.0.tar.gz polarssl-1.1.4-gpl.tgz zlib-1.2.3.tar.gz"
-
- # eapply can't patch in $WORKDIR, requires a sed; Bug #455194. Patchable, but sed informative
- sed -e s':AR=${AR-"ar rc"}:AR=${AR-"ar"}:' \
- -i "${WORKDIR}"/zlib-1.2.3/configure || die
- sed -e 's:^AR=ar rc:AR=ar:' \
- -e s':$(AR) $@:$(AR) rc $@:' \
- -i "${WORKDIR}"/zlib-1.2.3/{Makefile,Makefile.in} || die
- einfo "zlib Makefile edited"
-
- cd "${WORKDIR}" || die
- tar czp zlib-1.2.3 -f zlib-1.2.3.tar.gz || die
- tar czp grub-0.97 -f grub-0.97.tar.gz || die
- tar czp lwip -f lwip-1.3.0.tar.gz || die
- tar czp newlib-1.16.0 -f newlib-1.16.0.tar.gz || die
- tar czp polarssl-1.1.4 -f polarssl-1.1.4-gpl.tgz || die
- mv $set "${S}"/stubdom/ || die
- einfo "tarballs moved to source"
-}
-
-src_prepare() {
- # Upstream's patchset
- if [[ -n ${UPSTREAM_VER} ]]; then
- einfo "Try to apply Xen Upstream patch set"
- EPATCH_SUFFIX="patch" \
- EPATCH_FORCE="yes" \
- EPATCH_OPTS="-p1" \
- eapply "${WORKDIR}"/patches-upstream
- fi
-
- # Patch the unmergeable newlib, fix most of the leftover gcc QA issues
- cp "${FILESDIR}"/newlib-implicits.patch stubdom || die
-
- # Patch stubdom/Makefile to patch insource newlib & prevent internal downloading
- eapply "${FILESDIR}"/${PN/-pvgrub/}-4.10-externals.patch
-
- # fix jobserver in Makefile
- eapply "${FILESDIR}"/${PN}-4.8-jserver.patch
-
- #Substitute for internal downloading. pciutils copied only due to the only .bz2
- cp "${DISTDIR}"/pciutils-2.2.9.tar.bz2 ./stubdom/ || die "pciutils not copied to stubdom"
- retar-externals || die "re-tar procedure failed"
-
- default
-}
-
-src_configure() {
- local myconf="--prefix=${PREFIX}/usr \
- --libdir=${PREFIX}/usr/$(get_libdir) \
- --libexecdir=${PREFIX}/usr/libexec \
- --disable-werror \
- --disable-xen"
-
- econf ${myconf}
-}
-
-src_compile() {
- unset CFLAGS
- if test-flag-CC -fno-strict-overflow; then
- append-flags -fno-strict-overflow
- fi
-
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/include
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" -C tools/libs
-
- if use x86; then
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
- XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
- elif use amd64; then
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" \
- XEN_TARGET_ARCH="x86_64" -C stubdom pv-grub
- if has_multilib_profile; then
- multilib_toolchain_setup x86
- emake CC="$(tc-getCC)" AR="$(tc-getAR)" \
- XEN_TARGET_ARCH="x86_32" -C stubdom pv-grub
- fi
- fi
-}
-
-src_install() {
- if use x86; then
- emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
- fi
- if use amd64; then
- emake XEN_TARGET_ARCH="x86_64" DESTDIR="${D}" -C stubdom install-grub
- if has_multilib_profile; then
- emake XEN_TARGET_ARCH="x86_32" DESTDIR="${D}" -C stubdom install-grub
- fi
- fi
-}
-
-pkg_postinst() {
- elog "Official Xen Guide and the offical wiki page:"
- elog "https://wiki.gentoo.org/wiki/Xen"
- elog "https://wiki.xen.org/wiki/Main_Page"
-}
diff --git a/app-emulation/xen-tools/Manifest b/app-emulation/xen-tools/Manifest
index d697a2518d4b..f5c6218ff757 100644
--- a/app-emulation/xen-tools/Manifest
+++ b/app-emulation/xen-tools/Manifest
@@ -1,14 +1,10 @@
-DIST OpenSSL_1_1_1b.tar.gz 8384386 BLAKE2B f720ee2bb1ba9a104334cc39988942b5f18e9df54ec114969983e013d1d5e766e2605237281dfbd7218523b0f64ed465238d2da995791c4a789cb5e20b2d9be3 SHA512 f09f07226c1ea7d903d65572f6c63e1dd8afbbe4789438572ccae3c31445c30cf353dbf2e7637ab9d1042a2dc221cacdbed6167e881c1a1ad40163f751a33b28
+DIST OpenSSL_1_1_1t.tar.gz 10061233 BLAKE2B aef89c338644230305bcc75dbc13d6799a04ed8c712b6aed07a782703031e977c3e300924f26e5854d0b89ecf39d2d516a50838167754e8f63322fba51de9478 SHA512 f28a323fd78be0b16ae6db9a8f163e64c74410e12ddd1a9836dfdda34c264112184f4e22583c84b6fa56716e5aaac9cb860cb183bd3d0cb064091eea1e21815e
DIST berkeley-softfloat-b64af41c3276f97f0e181920400ee056b9c88037.tar.gz 148741 BLAKE2B 72014022926b636147e202d74c42df2ce9cfed00b91c275d5b2e0afbc5c68765445cbe7ac6389d7c2512bd1d45b0e16e999936552d09bbc733ab66c92968bd31 SHA512 8420c29faa7ff57e06d6758b03e81ca0630c59946bc031e8611f1449e23634cf901b502161f2c1423c0cff949b5481445e36a3aa53dc885b61ca2c673b3ba567
-DIST edk2-20d2e5a125e34fc8501026613a71549b2a1a3e54.tar.gz 14567879 BLAKE2B 381d47674afcc7b611edee91531694a70e6799c2b351d81632777fb382a8cce968e44a1f3e17c4852db28e81624e2ec1ebb98ed121c2a6cc3f2982939eb546a5 SHA512 1a4b4d8eacd495e705fea924b16640d6814fba7ec25a3153222eb981d43b0fd9b16b54baf8feecf99cd89b10f7735ff4b075660453d0fc2722fe4608353c8aeb
-DIST ipxe-git-1dd56dbd11082fb622c2ed21cfaced4f47d798a6.tar.gz 3810726 BLAKE2B b95266ec7fcee5c27065ba999b023ded9eb42a3690555e626911493f1dc995927fa67071bdc6432b3995df82134f8c49ea0d72eaf407f455dd1e2675d5b8d844 SHA512 8120696ba6d79fd9189664deed9b0489825d8d1edf7b931023b3979b7b9f82248e5b808c4517036cd40a85442ddf51a8dcad3b05d7f3c3cc6650654d53da4050
-DIST seabios-1.12.1.tar.gz 613450 BLAKE2B cb926b650c41a9962db407945cb5b6558079b061bd61f32ea56aedf0d37a00d10ad4434acbe717ffbc0dd1d1c0767304af8e640a53b0fc3784969dfa1590f681 SHA512 58755ce842adcb99c0f2f3ebbf9ec6d4a5072753966ab46805a96db1570847b109a90e6e03d61f9088ef877ca8ba96a8006777dc38ec434fce6b487f6c1f91d0
-DIST seabios-1.13.0.tar.gz 620952 BLAKE2B 460a7dd2b2775b981bbd890ed0a50fe905794c68b0b895799667dd1378bb84125712330c2f6945112709d42cfb7b01196c7fff99051e44b6211d47d19531cfae SHA512 7f158badf7deecc2998eab2a08f3615dfe5a7c0a51323f7b4568a4d1280935bc32bb466c8226d87d2ca7e13f9f117ff0092befcc0699bc31c5018e84754e8393
-DIST xen-4.13.1-upstream-patches-2.tar.xz 53744 BLAKE2B 769b5b8022f7db66f677d8107c6473606376718bffeac7eba09c4270f4005811f472fb9ed2a2804260e0486228edbadfcf8f81bf1dae6d68df37da213d281390 SHA512 b07c865b96c6f48b9d0b4e4c2f3ec19f4dc44884f4024e440a3e537f594f9f5edd6edf805bdefc82e5f1f2520f35f940b64c158972cbf5bfdc8fb2ca7a1b0ac1
-DIST xen-4.13.1-upstream-patches-3.tar.xz 87056 BLAKE2B 01d7133b8f7e3c9a42b9771dcb7739777f79f229941114cce70ba2897dd52bf53f08de35602a0b40a120fc155c274dbf91e107856f4afdae2c4f7b4bc0a67cdd SHA512 d67e9ddfbf27dc5a23a77679b1b2524a49c2aec3ff9eb3472f9e075893d87401f8e99707b0652744eb4af7a3ed9a815c3925de49995bcd7c82d97c13a69b5309
-DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90
-DIST xen-4.14.0-upstream-patches-1.tar.xz 45360 BLAKE2B 0f72a2cc3d18557b86a2a83f97e4141be46a20e3ba59ccc881a34a4408988eba9827e3b927bc07aba9678123d783303e7d47d789e57323a7f6691d718c019dc8 SHA512 3d5093e4367d27e7f6e8d4cc31841a5c80cc3fb870d6cb32131d064e16cbb559e9a783c70eec1ce13c960b3e2a8d5e23e18d26b936bc418b434df3bb801d3e4f
-DIST xen-4.14.0.tar.gz 39950576 BLAKE2B db4c3e79cfdfb10260d0d14d9d28e8c8bd9bf23f42aee743acf8f560bf4cdb96a425c0df887c70f9755f62680be24bfbe0149e52a4cb843ae83090cd9d6afc71 SHA512 ebce47a2f754955d8517123d69f62006634d97620fbbe3784869a0667466e586a249f57ffaf7846d5bcb45d69377cde43354c82c233fbb5407e55653b9a33ac0
-DIST xen-gentoo-patches-21.tar.xz 18280 BLAKE2B 95446da72fc16cb82e4e51df8796c64db05a30894a351a98dbd6700ce354c34956ca09a1af98125a4e56c337936e8fae296d806519b8afa23a82b078aa0db8f1 SHA512 3cffac162606a09b10b47dca604f167897e6ac8d153411d3464ef29a7a4d46ac5b92340884cb21279cb2d053b131f1ea5cb2111e3e9a21b3298b5ab3320ee34d
-DIST xen-gentoo-patches-22.tar.xz 18764 BLAKE2B e0da49b39fbc6b689db47e40a4fbb4f6568644fe192b114cce01b0406cba4bf23339ad1bf39b972f895df004916827b6e774f97fc079aeb8ac436763efda5fc3 SHA512 5b7959af4ed30edd2526698ab60a86353e35d9dc48dc941b6df7659a7c4904260461e0decbd8d788542bd69384736f2175861d4943c3738618d20788b19ea9b1
-DIST xen-security-patches-28.tar.xz 1580 BLAKE2B c304894801b37259508582fc6947e26c0b8665e982d91de86c16efd5eaecd6c9bb19570534642d39e81175fe58baccf576990a481f40f8848692d3465ad17a85 SHA512 b442b5568e76e0f2a5cfc91063515b96347f8b30f6101a81536b78edecc400861fd99281e1994bc6626bff28ece3df8f8306575c8abbb2cddaf3a6d3542c0b2f
+DIST brotli-f4153a09f87cbb9c826d8fc12c74642bb2d879ea.tar.gz 512229 BLAKE2B cd86cc2cc7eefad24f87cda8006409bf764922b5f23ccfb951e7a41214b12004ce532b11f94f5fb858b3bf71f9abf8ef17ba219fa96bd5be23b51873afad0fd5 SHA512 7f48e794e738b31c2005e7cef6d8c0cc0d543f1cd8c137ae8ba14602cac2873de6299a3f32ad52be869f513e7548341353ed049609daef1063975694d9a9b80b
+DIST edk2-b16284e2a0011489f6e16dfcc6af7623c3cbaf0b.tar.gz 15245558 BLAKE2B 33876c08040fa876b4e3741fe859d113654013c948fa8a8b391955226e6215bbbe26fc484e56ba5b399d2c4e4d198900f2de42eccfbac6901e01cd73a80e803b SHA512 7d71ec3d98c652b86194607dbcab767160c708991f49f69eda1f5d844ced0c4842e849d19bf99ea09b1db523b91ced1e5552a4ddcea32b94b9db6b8f6f5c5931
+DIST ipxe-git-1d1cf74a5e58811822bee4b3da3cff7282fcdfca.tar.gz 4074878 BLAKE2B d335d1e69bf736c53622e34e5ebeea77e294637f39bd5e2704f13b8e334b684130c259bd48b832050eebfabfc898f9786979a4c00903145fdb347a497b399f31 SHA512 e27644cbb030c43e2841058003bedea6deb979ba71591f967e01312527ed869bb863f9a03fc7b5a266752433d30164929ea1b935953a245600ad713c9fb25cb5
+DIST seabios-1.16.0.tar.gz 635419 BLAKE2B b645f20bae341d56ce4fc4a7044446050d8490c6c136377f6dccf02c88100b0644bc13d210b4a517a8be6002d5671b0fba77120a2aca3a9bafbad5e88d037e40 SHA512 9daefcfb1c9edda4462a4b080c9bac552154d577ae19703a914928e43005e7a52edd86869c6507e94a7f0c61ce8b3e6f5dea38cd5146628cb138a130947c522f
+DIST xen-4.17.3.tar.gz 46505735 BLAKE2B f7a783d951d3e31391aca2b779b9d11440dc28b0756739f7733cd7d2f160de54a018c00dce5d2a6c55a6494c2151a31a64bbeddefbed34eff179463f2e762d93 SHA512 56ead90af00b4c1aa452b5edba980a2873e4c76e8c518220a88089a2771cd76fe2478e15a41abf5d247e4bc5af8415d53614dff7eb028ced80701c1a1263f91f
+DIST xen-4.17.4.tar.gz 46527369 BLAKE2B 2fcd1248d75157b6455727b29ecc3a4e5941eb187d645b35b6cf48a23fdfae11e810c55a1a7c0396c6a23dc977f22b8fd06ee9b91a1edc3a7ba8561023e07cfc SHA512 50dc2efd26e48131afdbc8efb1ca90154a84fe5fba5a6bc81d9801a3c13aebea91c8211872b5c69ce2773644f2c935c31cc56584a05b10b81e8728282d89eb84
+DIST xen-gentoo-patches-4.17.0-gentoo-patchset-2.tar.bz2 4001 BLAKE2B 7afce426759952e202a1dd819fe0a23108072bf9552ba14a0bd787a96ffe5e7a36f37e03dad8db9c46f5731acbc122c258eef6d517816aad9c8db1ca64700d19 SHA512 bcb1479f9ff5e194a4e452da9d0479febc2bcd465b4be69bb8f30e2e6b858fb77a71216dcb3e74dfb65e7ca6513742c294cd6b5eaa5ce82d0b122a00f1cbc450
+DIST xen-upstream-patches-4.17.4-pre-patchset-1.tar.bz2 77410 BLAKE2B 1c00d613f9d12d81a284455d9099c031ba3ea7066508c75ad6f7e13330a09e2eb4e74bf5bc54fed9c4f90e18856cc01ff0e4ab4721d36388519eb40f99be42d8 SHA512 7a56cb0ac9b59043ffbc891819cbe54c9efe411e2e67eebc212a3b519ca60a37a377dd21b0ba851d6828cf268781983b082c6fecee0f0156501b5c447050789a
diff --git a/app-emulation/xen-tools/files/README.gentoo b/app-emulation/xen-tools/files/README.gentoo
new file mode 100644
index 000000000000..e0c84a5f3359
--- /dev/null
+++ b/app-emulation/xen-tools/files/README.gentoo
@@ -0,0 +1,16 @@
+Official Xen Guide and the offical wiki page:
+- https://wiki.gentoo.org/wiki/Xen
+- https://wiki.xen.org/wiki/Main_Page
+
+
+If you use OpenRC:
+It is recommended to utilise the xencommons script to configure the system at
+boot time.
+
+
+If you use QEMU:
+The qemu-bridge-helper is renamed to the xen-bridge-helper in the in
+source build of qemu. This allows for app-emulation/qemu to be emerged
+concurrently with the qemu capable xen. It is up to the user to
+distinguish between and utilise the qemu-bridge-helper and the
+xen-bridge-helper. File bugs of any issues that arise.
diff --git a/app-emulation/xen-tools/files/gentoo-patches.conf b/app-emulation/xen-tools/files/gentoo-patches.conf
deleted file mode 100644
index 0a0bf8aa468d..000000000000
--- a/app-emulation/xen-tools/files/gentoo-patches.conf
+++ /dev/null
@@ -1,84 +0,0 @@
-# Bug 496708
-_gx045=" xen-tools-4.10.1-unbundle-ipxe.patch"
-_gx054=" xen-tools-4.12.0-unbundle-ipxe.patch"
-
-# Bug 379537
-_gx017=" fix-gold-ld.patch"
-
-# Bug 477676
-_gx038=" xen-tools-4.8-ar-cc.patch"
-_gx039=" xen-tools-4.14-ar-cc.patch"
-
-# Prevent file collision with qemu package Bug 478064
-_gx043=" xen-4.10-qemu-bridge.patch"
-_gx051=" xen-4.12-qemu-bridge.patch"
-_gx052=" xen-tools-4.14-qemu-bridge.patch"
-#mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
-
-# Fix po file collision with app-emulation/qemu, while USE=qemu is enabled, Bug 508302
-_gx027=" xen-tools-4-qemu-fix-po-collision.patch"
-
-# Fix build failure with ncurses[tinfo], bug 526526
-_gx028=" xen-tools-4.4.1-tinfo.patch"
-
-# Don't download ovmf, use pre-released
-_gx029=" xen-tools-4-anti-ovmf-download.patch"
-
-# increase stack to fix xenqemu err
-# https://lists.gnu.org/archive/html/qemu-devel/2016-09/msg03961.html
-_gx037=" xen-tools-4.6-increase-stack-size.patch"
-
-#Fix missing makedev(), major(), minor()
-_gx042=" xen-tools-4.8.2-makedev.patch"
-
-# Disable failing shim
-_gx046=" xen-tools-4.10.1-shim.patch"
-_gx050=" xen-tools-4.12.0-shim.patch"
-
-# Fix building with gcc 8, bug #657388
-_gx048=" xen-tools-4.11.1-gcc8.patch"
-_gx053=" xen-tools-4.12.0-gcc8.patch"
-
-# Fix building with gcc 9, bug #689082
-_gx055=" xen-tools-4.11.2-gcc9.patch"
-
-# Fix pdf document generation, bug #650396
-_gx049=" xen-tools-4.10.1-pdfdoc.patch"
-
-# Add xenstat python-binding, Gento Bug #711066
-_gx056=" xen-tools-4.12.2-libxenstat-makefile.patch"
-
-# Fix building with gcc 10, bug #722930
-_gx060=" xen-tools-4.13.0-gcc10.patch"
-
-# xen-tools-4.12.3 patches set
-_gpv_xen_tools_4123_0="
-${_gx038}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037} ${_gx042}
-${_gx053} ${_gx050} ${_gx051}
-${_gx054} ${_gx056}
-${_gx060}
-"
-
-# xen-tools-4.13.1 patches set
-_gpv_xen_tools_4131_0="
-${_gx038}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037}
-${_gx053} ${_gx050} ${_gx051}
-${_gx054} ${_gx056}
-${_gx060}
-"
-
-# xen-tools-4.14.0 patches set
-_gpv_xen_tools_4140_0="
-${_gx039}
-${_gx027}
-${_gx028} ${_gx029}
-${_gx037}
-${_gx053} ${_gx050} ${_gx052}
-${_gx054} ${_gx056}
-"
diff --git a/app-emulation/xen-tools/files/xenstored.initd-r1 b/app-emulation/xen-tools/files/xenstored.initd-r1
index 88d3ad7ba890..0c420851937e 100644
--- a/app-emulation/xen-tools/files/xenstored.initd-r1
+++ b/app-emulation/xen-tools/files/xenstored.initd-r1
@@ -3,7 +3,7 @@
# Distributed under the terms of the GNU General Public License v2
depend() {
- before xendomains xend sshd ntp-client ntpd nfs nfsmount rsyncd portmap dhcp
+ before xendomains xend sshd ntp-client ntpd nfs rsyncd portmap dhcp
need xencommons
}
diff --git a/app-emulation/xen-tools/metadata.xml b/app-emulation/xen-tools/metadata.xml
index dd590bd080fa..fb98e4a01835 100644
--- a/app-emulation/xen-tools/metadata.xml
+++ b/app-emulation/xen-tools/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>hydrapolic@gmail.com</email>
<name>Tomáš Mózes</name>
</maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
@@ -15,10 +15,8 @@
</maintainer>
<use>
<flag name="api">Build the C libxenapi bindings</flag>
- <flag name="flask">Enable the Flask XSM module from NSA</flag>
<flag name="hvm">Enable support for hardware based virtualization (VT-x,AMD-v)</flag>
<flag name="ipxe">Enable ipxe support</flag>
- <flag name="ocaml">Enable support for the ocaml language</flag>
<flag name="ovmf">Enable support to boot UEFI guest vm, needed by hvm</flag>
<flag name="pygrub">Install the pygrub boot loader</flag>
<flag name="qemu">Enable IOEMU support via the use of qemu-dm</flag>
diff --git a/app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild b/app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild
deleted file mode 100644
index 6e50b8d46e37..000000000000
--- a/app-emulation/xen-tools/xen-tools-4.14.0-r2.ebuild
+++ /dev/null
@@ -1,511 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6..9} )
-PYTHON_REQ_USE='ncurses,xml,threads(+)'
-
-inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
-
-MY_PV=${PV/_/-}
-
-if [[ $PV == *9999 ]]; then
- inherit git-r3
- REPO="xen.git"
- EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
- S="${WORKDIR}/${REPO}"
-else
- KEYWORDS="~amd64 ~arm ~arm64 ~x86"
- UPSTREAM_VER=1
- SECURITY_VER=28
- # xen-tools's gentoo patches tarball
- GENTOO_VER=22
- # xen-tools's gentoo patches version which apply to this specific ebuild
- GENTOO_GPV=0
- # xen-tools ovmf's patches
- OVMF_VER=
-
- SEABIOS_VER="1.13.0"
- EDK2_COMMIT="20d2e5a125e34fc8501026613a71549b2a1a3e54"
- EDK2_OPENSSL_VERSION="1_1_1b"
- EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
- IPXE_COMMIT="1dd56dbd11082fb622c2ed21cfaced4f47d798a6"
-
- [[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
- [[ -n ${SECURITY_VER} ]] && \
- SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-security-patches-${SECURITY_VER}.tar.xz"
- [[ -n ${GENTOO_VER} ]] && \
- GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz"
- [[ -n ${OVMF_VER} ]] && \
- OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
-
- SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
- https://github.com/qemu/seabios/archive/rel-${SEABIOS_VER}.tar.gz -> seabios-${SEABIOS_VER}.tar.gz
- ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
- ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
- https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
- https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
- ${OVMF_PATCHSET_URI} )
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
-
- S="${WORKDIR}/xen-${MY_PV}"
-fi
-
-DESCRIPTION="Xen tools including QEMU and xl"
-HOMEPAGE="https://www.xenproject.org"
-DOCS=( README )
-
-LICENSE="GPL-2"
-SLOT="0/$(ver_cut 1-2)"
-# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
-# >=dev-lang/ocaml-4 stable
-# Masked in profiles/eapi-5-files instead
-IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
-
-REQUIRED_USE="
- ${PYTHON_REQUIRED_USE}
- ipxe? ( rombios )
- ovmf? ( hvm )
- pygrub? ( python )
- rombios? ( hvm )
- system-ipxe? ( rombios )
- ?? ( ipxe system-ipxe )
- ?? ( qemu system-qemu )"
-
-COMMON_DEPEND="
- sys-apps/pciutils
- dev-libs/lzo:2
- dev-libs/glib:2
- dev-libs/yajl
- dev-libs/libaio
- dev-libs/libgcrypt:0
- sys-libs/zlib
- ${PYTHON_DEPS}
-"
-
-DEPEND="${COMMON_DEPEND}
- >=sys-kernel/linux-headers-4.11
- $(python_gen_cond_dep '
- dev-python/lxml[${PYTHON_MULTI_USEDEP}]
- pam? ( dev-python/pypam[${PYTHON_MULTI_USEDEP}] )
- ')
- x86? ( sys-devel/dev86
- system-ipxe? ( sys-firmware/ipxe[qemu] )
- sys-power/iasl )
- api? ( dev-libs/libxml2
- net-misc/curl )
-
- ovmf? (
- !arm? ( !arm64? ( dev-lang/nasm ) )
- $(python_gen_impl_dep sqlite)
- )
- !amd64? ( >=sys-apps/dtc-1.4.0 )
- amd64? ( sys-power/iasl
- system-seabios? ( sys-firmware/seabios )
- system-ipxe? ( sys-firmware/ipxe[qemu] )
- rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
- dev-lang/perl
- app-misc/pax-utils
- doc? (
- app-text/ghostscript-gpl
- app-text/pandoc
- $(python_gen_cond_dep '
- dev-python/markdown[${PYTHON_MULTI_USEDEP}]
- ')
- dev-texlive/texlive-latexextra
- media-gfx/transfig
- )
- hvm? ( x11-base/xorg-proto )
- qemu? (
- app-arch/snappy:=
- x11-libs/pixman
- sdl? (
- media-libs/libsdl[X]
- media-libs/libsdl2[X]
- )
- )
- system-qemu? ( app-emulation/qemu[xen] )
- ocaml? ( dev-ml/findlib
- >=dev-lang/ocaml-4 )
- python? ( >=dev-lang/swig-4.0.0 )"
-
-RDEPEND="${COMMON_DEPEND}
- sys-apps/iproute2[-minimal]
- net-misc/bridge-utils
- screen? (
- app-misc/screen
- app-admin/logrotate
- )"
-
-# hvmloader is used to bootstrap a fully virtualized kernel
-# Approved by QA team in bug #144032
-QA_WX_LOAD="
- usr/libexec/xen/boot/hvmloader
- usr/share/qemu-xen/qemu/hppa-firmware.img
- usr/share/qemu-xen/qemu/s390-ccw.img
- usr/share/qemu-xen/qemu/u-boot.e500
-"
-
-QA_PREBUILT="
- usr/libexec/xen/bin/elf2dmp
- usr/libexec/xen/bin/ivshmem-client
- usr/libexec/xen/bin/ivshmem-server
- usr/libexec/xen/bin/qemu-edid
- usr/libexec/xen/bin/qemu-img
- usr/libexec/xen/bin/qemu-io
- usr/libexec/xen/bin/qemu-keymap
- usr/libexec/xen/bin/qemu-nbd
- usr/libexec/xen/bin/qemu-pr-helper
- usr/libexec/xen/bin/qemu-system-i386
- usr/libexec/xen/bin/virtfs-proxy-helper
- usr/libexec/xen/libexec/xen-bridge-helper
- usr/share/qemu-xen/qemu/s390-ccw.img
- usr/share/qemu-xen/qemu/s390-netboot.img
- usr/share/qemu-xen/qemu/u-boot.e500
-"
-
-RESTRICT="test"
-
-pkg_setup() {
- python_setup
- export "CONFIG_LOMOUNT=y"
-
- #bug 522642, disable compile tools/tests
- export "CONFIG_TESTS=n"
-
- if [[ -z ${XEN_TARGET_ARCH} ]] ; then
- if use x86 && use amd64; then
- die "Confusion! Both x86 and amd64 are set in your use flags!"
- elif use x86; then
- export XEN_TARGET_ARCH="x86_32"
- elif use amd64 ; then
- export XEN_TARGET_ARCH="x86_64"
- elif use arm; then
- export XEN_TARGET_ARCH="arm32"
- elif use arm64; then
- export XEN_TARGET_ARCH="arm64"
- else
- die "Unsupported architecture!"
- fi
- fi
-}
-
-src_prepare() {
- local i
-
- # Upstream's patchset
- if [[ -n ${UPSTREAM_VER} ]]; then
- einfo "Try to apply Xen Upstream patch set"
- eapply "${WORKDIR}"/patches-upstream
- fi
-
- # Security patchset
- if [[ -n ${SECURITY_VER} ]]; then
- einfo "Try to apply Xen Security patch set"
- # apply main xen patches
- # Two parallel systems, both work side by side
- # Over time they may concdense into one. This will suffice for now
- EPATCH_SUFFIX="patch"
- EPATCH_FORCE="yes"
-
- source "${WORKDIR}"/patches-security/${PV}.conf || die
-
- for i in ${XEN_SECURITY_MAIN}; do
- eapply "${WORKDIR}"/patches-security/xen/$i
- done
-
- # apply qemu-xen/upstream patches
- pushd "${S}"/tools/qemu-xen/ > /dev/null
- for i in ${XEN_SECURITY_QEMUU}; do
- eapply "${WORKDIR}"/patches-security/qemuu/$i
- done
- popd > /dev/null
-
- # apply qemu-traditional patches
- pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
- for i in ${XEN_SECURITY_QEMUT}; do
- eapply "${WORKDIR}"/patches-security/qemut/$i
- done
- popd > /dev/null
- fi
-
- # move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
- mv ../seabios-rel-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
- pushd tools/firmware/ > /dev/null
- ln -s seabios-dir-remote seabios-dir || die
- popd > /dev/null
-
- # Gentoo's patchset
- if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
- einfo "Try to apply Gentoo specific patch set"
- source "${FILESDIR}"/gentoo-patches.conf || die
- _gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
- for i in ${!_gpv}; do
- eapply "${WORKDIR}"/patches-gentoo/$i
- done
- fi
-
- # Ovmf's patchset
- if use ovmf; then
- if [[ -n ${OVMF_VER} ]];then
- einfo "Try to apply Ovmf patch set"
- pushd "${WORKDIR}"/edk2-*/ > /dev/null
- eapply "${WORKDIR}"/patches-ovmf
- popd > /dev/null
- fi
- mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
- rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
- rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
- mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
- mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
- cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
- fi
-
- # ipxe
- if use ipxe; then
- cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die
-
- # gcc 10
- cp "${WORKDIR}/patches-gentoo/xen-tools-4.13.0-ipxe-gcc10.patch" tools/firmware/etherboot/patches/ipxe-gcc10.patch || die
- echo ipxe-gcc10.patch >> tools/firmware/etherboot/patches/series || die
- fi
-
- # gcc 10
- # libxlu_pci.c:32:18: error: 'func' may be used uninitialized in this function
- sed -e '/CFLAGS/s/Werror/Wno-error/g' \
- -i tools/libxl/Makefile || die
-
- mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
-
- # Fix texi2html build error with new texi2html, qemu.doc.html
- sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
-
- use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
- sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
- -i tools/firmware/Makefile || die
-
- # Drop .config, fixes to gcc-4.6
- sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
-
- # drop flags
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
- unset CPPFLAGS
-
- if ! use pygrub; then
- sed -e '/^SUBDIRS-y += pygrub/d' -i tools/Makefile || die
- fi
-
- if ! use python; then
- sed -e '/^SUBDIRS-y += python$/d' -i tools/Makefile || die
- fi
-
- if ! use hvm; then
- sed -e '/SUBDIRS-$(CONFIG_X86) += firmware/d' -i tools/Makefile || die
- # Bug 351648
- elif ! use x86 && ! has x86 $(get_all_abis); then
- mkdir -p "${WORKDIR}"/extra-headers/gnu || die
- touch "${WORKDIR}"/extra-headers/gnu/stubs-32.h || die
- export CPATH="${WORKDIR}"/extra-headers
- fi
-
- if use qemu; then
- if use sdl; then
- sed -i -e "s:\$\$source/configure:\0 --enable-sdl:" \
- tools/Makefile || die
- else
- sed -i -e "s:\${QEMU_ROOT\:\-\.}/configure:\0 --disable-sdl:" \
- tools/qemu-xen-traditional/xen-setup || die
- sed -i -e "s:\$\$source/configure:\0 --disable-sdl:" \
- tools/Makefile || die
- fi
- else
- # Don't bother with qemu, only needed for fully virtualised guests
- sed -i '/SUBDIRS-$(CONFIG_QEMU_XEN)/s/^/#/g' tools/Makefile || die
- fi
-
- # Reset bash completion dir; Bug 472438
- sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
- -i Config.mk || die
- sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
-
- # xencommons, Bug #492332, sed lighter weight than patching
- sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
- -i tools/hotplug/Linux/init.d/xencommons.in || die
-
- # fix bashishm
- sed -e '/Usage/s/\$//g' \
- -i tools/hotplug/Linux/init.d/xendriverdomain.in || die
-
- # respect multilib, usr/lib/libcacard.so.0.0.0
- sed -e "/^libdir=/s/\/lib/\/$(get_libdir)/" \
- -i tools/qemu-xen/configure || die
-
- #bug 518136, don't build 32bit exactuable for nomultilib profile
- if [[ "${ARCH}" == 'amd64' ]] && ! has_multilib_profile; then
- sed -i -e "/x86_emulator/d" tools/tests/Makefile || die
- fi
-
- # uncomment lines in xl.conf
- sed -e 's:^#autoballoon=:autoballoon=:' \
- -e 's:^#lockfile=:lockfile=:' \
- -e 's:^#vif.default.script=:vif.default.script=:' \
- -i tools/examples/xl.conf || die
-
- # disable capstone (Bug #673474)
- sed -e "s:\$\$source/configure:\0 --disable-capstone:" \
- -i tools/Makefile || die
-
- # disable glusterfs
- sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
- -i tools/Makefile || die
-
- default
-}
-
-src_configure() {
- local myconf="--prefix=${PREFIX}/usr \
- --libdir=${PREFIX}/usr/$(get_libdir) \
- --libexecdir=${PREFIX}/usr/libexec \
- --localstatedir=${EPREFIX}/var \
- --disable-werror \
- --disable-xen \
- --enable-tools \
- --enable-docs \
- $(use_enable api xenapi) \
- $(use_enable ipxe) \
- $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \
- $(use_enable ocaml ocamltools) \
- $(use_enable ovmf) \
- $(use_enable pam) \
- $(use_enable rombios) \
- --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \
- "
-
- use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
- use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64"
- use amd64 && myconf+=" $(use_enable qemu-traditional)"
- tc-ld-disable-gold # Bug 669570
- econf ${myconf}
-}
-
-src_compile() {
- local myopt
- use debug && myopt="${myopt} debug=y"
- use python && myopt="${myopt} XENSTAT_PYTHON_BINDINGS=y"
-
- if test-flag-CC -fno-strict-overflow; then
- append-flags -fno-strict-overflow
- fi
-
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
-
- if use doc; then
- emake -C docs build
- else
- emake -C docs man-pages
- fi
-}
-
-src_install() {
- # Override auto-detection in the build system, bug #382573
- export INITD_DIR=/tmp/init.d
- export CONFIG_LEAF_DIR=../tmp/default
-
- # Let the build system compile installed Python modules.
- local PYTHONDONTWRITEBYTECODE
- export PYTHONDONTWRITEBYTECODE
-
- emake DESTDIR="${ED}" DOCDIR="/usr/share/doc/${PF}" \
- XEN_PYTHON_NATIVE_INSTALL=y install-tools
-
- # Created at runtime
- rm -rv "${ED}/var/run" || die
-
- # Fix the remaining Python shebangs.
- python_fix_shebang "${D}"
-
- # Remove RedHat-specific stuff
- rm -rf "${D}"/tmp || die
-
- if use doc; then
- emake DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-docs
- dodoc -r docs/{pdf,txt}
- else
- emake -C docs DESTDIR="${D}" DOCDIR="/usr/share/doc/${PF}" install-man-pages # Bug 668032
- fi
- dodoc ${DOCS[@]}
-
- newconfd "${FILESDIR}"/xendomains.confd xendomains
- newconfd "${FILESDIR}"/xenstored.confd xenstored
- newconfd "${FILESDIR}"/xenconsoled.confd xenconsoled
- newinitd "${FILESDIR}"/xendomains.initd-r2 xendomains
- newinitd "${FILESDIR}"/xenstored.initd-r1 xenstored
- newinitd "${FILESDIR}"/xenconsoled.initd xenconsoled
- newinitd "${FILESDIR}"/xencommons.initd xencommons
- newconfd "${FILESDIR}"/xencommons.confd xencommons
- newinitd "${FILESDIR}"/xenqemudev.initd xenqemudev
- newconfd "${FILESDIR}"/xenqemudev.confd xenqemudev
- newinitd "${FILESDIR}"/xen-watchdog.initd xen-watchdog
-
- if use screen; then
- cat "${FILESDIR}"/xendomains-screen.confd >> "${D}"/etc/conf.d/xendomains || die
- cp "${FILESDIR}"/xen-consoles.logrotate "${D}"/etc/xen/ || die
- keepdir /var/log/xen-consoles
- fi
-
- # For -static-libs wrt Bug 384355
- if ! use static-libs; then
- rm -f "${D}"/usr/$(get_libdir)/*.a "${D}"/usr/$(get_libdir)/ocaml/*/*.a
- fi
-
- # for xendomains
- keepdir /etc/xen/auto
-
- # Remove files failing QA AFTER emake installs them, avoiding seeking absent files
- find "${D}" \( -name openbios-sparc32 -o -name openbios-sparc64 \
- -o -name openbios-ppc -o -name palcode-clipper \) -delete || die
-
- keepdir /var/lib/xen/dump
- keepdir /var/lib/xen/xenpaging
- keepdir /var/lib/xenstored
- keepdir /var/log/xen
-
- if use python; then
- python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/xenstat.py"
- python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/_xenstat.so"
- fi
-
- python_optimize
-}
-
-pkg_postinst() {
- elog "Official Xen Guide and the offical wiki page:"
- elog "https://wiki.gentoo.org/wiki/Xen"
- elog "https://wiki.xen.org/wiki/Main_Page"
- elog ""
- elog "Recommended to utilise the xencommons script to config system at boot"
- elog "Add by use of rc-update on completion of the install"
-
- if ! use hvm; then
- echo
- elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
- elog "support enable the hvm use flag."
- elog "An x86 or amd64 system is required to build HVM support."
- fi
-
- if use qemu; then
- elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
- elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
- elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
- elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
- fi
-}
diff --git a/app-emulation/xen-tools/xen-tools-4.13.1-r3.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild
index 939b9bae6f65..c4bcc325110c 100644
--- a/app-emulation/xen-tools/xen-tools-4.13.1-r3.ebuild
+++ b/app-emulation/xen-tools/xen-tools-4.17.4.ebuild
@@ -1,73 +1,75 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{6,7,8} )
-PYTHON_REQ_USE='ncurses,xml,threads(+)'
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
-inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
+inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
-MY_PV=${PV/_/-}
-
-if [[ $PV == *9999 ]]; then
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
REPO="xen.git"
- EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/${REPO}"
S="${WORKDIR}/${REPO}"
else
KEYWORDS="amd64 ~arm ~arm64 x86"
- UPSTREAM_VER=2
- SECURITY_VER=28
- # xen-tools's gentoo patches tarball
- GENTOO_VER=21
- # xen-tools's gentoo patches version which apply to this specific ebuild
- GENTOO_GPV=0
- # xen-tools ovmf's patches
- OVMF_VER=
-
- SEABIOS_VER="1.12.1"
- EDK2_COMMIT="20d2e5a125e34fc8501026613a71549b2a1a3e54"
- EDK2_OPENSSL_VERSION="1_1_1b"
+
+ SEABIOS_VER="1.16.0"
+ EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b"
+ EDK2_OPENSSL_VERSION="1_1_1t"
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
- IPXE_COMMIT="1dd56dbd11082fb622c2ed21cfaced4f47d798a6"
-
- [[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
- [[ -n ${SECURITY_VER} ]] && \
- SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-security-patches-${SECURITY_VER}.tar.xz"
- [[ -n ${GENTOO_VER} ]] && \
- GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz"
- [[ -n ${OVMF_VER} ]] && \
- OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
-
- SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
- https://github.com/qemu/seabios/archive/rel-${SEABIOS_VER}.tar.gz -> seabios-${SEABIOS_VER}.tar.gz
- ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
+ EDK2_BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea"
+ IPXE_COMMIT="1d1cf74a5e58811822bee4b3da3cff7282fcdfca"
+
+ XEN_GENTOO_PATCHSET_NUM=2
+ XEN_GENTOO_PATCHSET_BASE=4.17.0
+ XEN_PRE_PATCHSET_NUM=
+ XEN_PRE_VERSION_BASE=
+
+ XEN_BASE_PV="${PV}"
+ if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
+ XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
+ fi
+
+ SRC_URI="
+ https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
+ https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
+ ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
- ${OVMF_PATCHSET_URI} )
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
+ https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
+ )
+ "
- S="${WORKDIR}/xen-${MY_PV}"
+ if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
+ XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
+ XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
+ XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
+ fi
+ if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
+ XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+ XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
+ XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
+ fi
fi
DESCRIPTION="Xen tools including QEMU and xl"
-HOMEPAGE="https://www.xenproject.org"
+HOMEPAGE="https://xenproject.org"
DOCS=( README )
+S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
+
LICENSE="GPL-2"
SLOT="0/$(ver_cut 1-2)"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
-IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
+IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
@@ -80,21 +82,39 @@ REQUIRED_USE="
?? ( qemu system-qemu )"
COMMON_DEPEND="
- sys-apps/pciutils
+ lzma? ( app-arch/xz-utils )
+ qemu? (
+ dev-libs/glib:2
+ sys-libs/pam
+ )
+ zstd? ( app-arch/zstd )
+ app-arch/bzip2
+ app-arch/zstd
+ dev-libs/libnl:3
dev-libs/lzo:2
- dev-libs/glib:2
dev-libs/yajl
- dev-libs/libaio
- dev-libs/libgcrypt:0
+ sys-apps/util-linux
+ sys-fs/e2fsprogs
+ sys-libs/ncurses
sys-libs/zlib
${PYTHON_DEPS}
"
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/iproute2[-minimal]
+ net-misc/bridge-utils
+ screen? (
+ app-misc/screen
+ app-admin/logrotate
+ )
+ selinux? ( sec-policy/selinux-xen )"
+
DEPEND="${COMMON_DEPEND}
+ app-misc/pax-utils
>=sys-kernel/linux-headers-4.11
+ x11-libs/pixman
$(python_gen_cond_dep '
- dev-python/lxml[${PYTHON_MULTI_USEDEP}]
- pam? ( dev-python/pypam[${PYTHON_MULTI_USEDEP}] )
+ dev-python/lxml[${PYTHON_USEDEP}]
')
x86? ( sys-devel/dev86
system-ipxe? ( sys-firmware/ipxe[qemu] )
@@ -108,24 +128,29 @@ DEPEND="${COMMON_DEPEND}
)
!amd64? ( >=sys-apps/dtc-1.4.0 )
amd64? ( sys-power/iasl
- system-seabios? ( sys-firmware/seabios )
+ system-seabios? (
+ || (
+ sys-firmware/seabios
+ sys-firmware/seabios-bin
+ )
+ )
system-ipxe? ( sys-firmware/ipxe[qemu] )
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
- dev-lang/perl
- app-misc/pax-utils
+ arm64? ( sys-power/iasl
+ rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
doc? (
app-text/ghostscript-gpl
- app-text/pandoc
$(python_gen_cond_dep '
- dev-python/markdown[${PYTHON_MULTI_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
')
dev-texlive/texlive-latexextra
- media-gfx/transfig
+ >=media-gfx/fig2dev-3.2.9-r1
+ virtual/pandoc
)
hvm? ( x11-base/xorg-proto )
qemu? (
app-arch/snappy:=
- x11-libs/pixman
+ dev-build/meson
sdl? (
media-libs/libsdl[X]
media-libs/libsdl2[X]
@@ -133,26 +158,30 @@ DEPEND="${COMMON_DEPEND}
)
system-qemu? ( app-emulation/qemu[xen] )
ocaml? ( dev-ml/findlib
- >=dev-lang/ocaml-4 )
+ dev-lang/ocaml[ocamlopt] )
python? ( >=dev-lang/swig-4.0.0 )"
-RDEPEND="${COMMON_DEPEND}
- sys-apps/iproute2[-minimal]
- net-misc/bridge-utils
- screen? (
- app-misc/screen
- app-admin/logrotate
- )"
+BDEPEND="dev-lang/perl
+ app-alternatives/yacc
+ sys-devel/gettext"
# hvmloader is used to bootstrap a fully virtualized kernel
# Approved by QA team in bug #144032
QA_WX_LOAD="
usr/libexec/xen/boot/hvmloader
+ usr/libexec/xen/boot/ovmf.bin
+ usr/libexec/xen/boot/xen-shim
usr/share/qemu-xen/qemu/hppa-firmware.img
+ usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/u-boot.e500
"
+QA_EXECSTACK="
+ usr/share/qemu-xen/qemu/hppa-firmware.img
+"
+
QA_PREBUILT="
usr/libexec/xen/bin/elf2dmp
usr/libexec/xen/bin/ivshmem-client
@@ -163,8 +192,14 @@ QA_PREBUILT="
usr/libexec/xen/bin/qemu-keymap
usr/libexec/xen/bin/qemu-nbd
usr/libexec/xen/bin/qemu-pr-helper
+ usr/libexec/xen/bin/qemu-storage-daemon
usr/libexec/xen/bin/qemu-system-i386
usr/libexec/xen/bin/virtfs-proxy-helper
+ usr/libexec/xen/boot/ovmf.bin
+ usr/libexec/xen/boot/xen-shim
+ usr/libexec/xen/libexec/qemu-pr-helper
+ usr/libexec/xen/libexec/virtfs-proxy-helper
+ usr/libexec/xen/libexec/virtiofsd
usr/libexec/xen/libexec/xen-bridge-helper
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/s390-netboot.img
@@ -198,94 +233,55 @@ pkg_setup() {
}
src_prepare() {
- local i
-
- # Upstream's patchset
- if [[ -n ${UPSTREAM_VER} ]]; then
- einfo "Try to apply Xen Upstream patch set"
- eapply "${WORKDIR}"/patches-upstream
- fi
-
- # Security patchset
- if [[ -n ${SECURITY_VER} ]]; then
- einfo "Try to apply Xen Security patch set"
- # apply main xen patches
- # Two parallel systems, both work side by side
- # Over time they may concdense into one. This will suffice for now
- EPATCH_SUFFIX="patch"
- EPATCH_FORCE="yes"
-
- source "${WORKDIR}"/patches-security/${PV}.conf || die
-
- for i in ${XEN_SECURITY_MAIN}; do
- eapply "${WORKDIR}"/patches-security/xen/$i
- done
-
- # apply qemu-xen/upstream patches
- pushd "${S}"/tools/qemu-xen/ > /dev/null
- for i in ${XEN_SECURITY_QEMUU}; do
- eapply "${WORKDIR}"/patches-security/qemuu/$i
- done
- popd > /dev/null
-
- # apply qemu-traditional patches
- pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
- for i in ${XEN_SECURITY_QEMUT}; do
- eapply "${WORKDIR}"/patches-security/qemut/$i
- done
- popd > /dev/null
- fi
-
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
- mv ../seabios-rel-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
+ mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
pushd tools/firmware/ > /dev/null
ln -s seabios-dir-remote seabios-dir || die
popd > /dev/null
- # Gentoo's patchset
- if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
- einfo "Try to apply Gentoo specific patch set"
- source "${FILESDIR}"/gentoo-patches.conf || die
- _gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
- for i in ${!_gpv}; do
- eapply "${WORKDIR}"/patches-gentoo/$i
- done
+ if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
+ eapply "${XEN_UPSTREAM_PATCHES_DIR}"
fi
- # Ovmf's patchset
+ if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"
+ fi
+
+ # Rename qemu-bridge-helper to xen-bridge-helper to avoid file
+ # collisions with app-emulation/qemu.
+ sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
+ tools/qemu-xen/include/net/net.h \
+ tools/qemu-xen/meson.build \
+ tools/qemu-xen/qemu-bridge-helper.c \
+ tools/qemu-xen/qemu-options.hx \
+ || die
+ mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
+
if use ovmf; then
- if [[ -n ${OVMF_VER} ]];then
- einfo "Try to apply Ovmf patch set"
- pushd "${WORKDIR}"/edk2-*/ > /dev/null
- eapply "${WORKDIR}"/patches-ovmf
- popd > /dev/null
- fi
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
+ rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
+ rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
+ cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
+ cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
fi
# ipxe
if use ipxe; then
- cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die
+ cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
- # gcc 10
- cp "${WORKDIR}/patches-gentoo/xen-tools-4.13.0-ipxe-gcc10.patch" tools/firmware/etherboot/patches/ipxe-gcc10.patch || die
- echo ipxe-gcc10.patch >> tools/firmware/etherboot/patches/series || die
+ # gcc 11
+ cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
+ echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
fi
- mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
-
# Fix texi2html build error with new texi2html, qemu.doc.html
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
- use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
- sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
- -i tools/firmware/Makefile || die
-
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
@@ -328,9 +324,8 @@ src_prepare() {
fi
# Reset bash completion dir; Bug 472438
- sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
- -i Config.mk || die
- sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
+ sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
+ -i config/Paths.mk.in || die
# xencommons, Bug #492332, sed lighter weight than patching
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
@@ -363,33 +358,59 @@ src_prepare() {
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
-i tools/Makefile || die
+ # disable jpeg automagic
+ sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
+ -i tools/Makefile || die
+
+ # disable png automagic
+ sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
+ -i tools/Makefile || die
+
+ # disable docker (Bug #732970)
+ sed -e "s:\$\$source/configure:\0 --disable-containers:" \
+ -i tools/Makefile || die
+
+ # disable abi-dumper (Bug #791172)
+ sed -e 's/$(ABI_DUMPER) /echo /g' \
+ -i tools/libs/libs.mk || die
+
+ # Remove -Werror
+ find . -type f \( -name Makefile -o -name "*.mk" \) \
+ -exec sed -i \
+ -e 's/-Werror //g' \
+ -e '/^CFLAGS *+= -Werror$/d' \
+ -e 's/, "-Werror"//' \
+ {} + || die
+
default
}
src_configure() {
- local myconf="--prefix=${PREFIX}/usr \
- --libdir=${PREFIX}/usr/$(get_libdir) \
- --libexecdir=${PREFIX}/usr/libexec \
- --localstatedir=${EPREFIX}/var \
- --disable-werror \
- --disable-xen \
- --enable-tools \
- --enable-docs \
- $(use_enable api xenapi) \
- $(use_enable ipxe) \
- $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \
- $(use_enable ocaml ocamltools) \
- $(use_enable ovmf) \
- $(use_enable pam) \
- $(use_enable rombios) \
- --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \
- "
-
- use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
- use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64"
- use amd64 && myconf+=" $(use_enable qemu-traditional)"
+ local myconf=(
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --libexecdir="${EPREFIX}/usr/libexec"
+ --localstatedir="${EPREFIX}/var"
+ --disable-golang
+ --disable-pvshim
+ --disable-werror
+ --disable-xen
+ --enable-tools
+ --enable-docs
+ $(use_enable api xenapi)
+ $(use_enable ipxe)
+ $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
+ $(use_enable ocaml ocamltools)
+ $(use_enable ovmf)
+ $(use_enable rombios)
+ $(use_enable systemd)
+ --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
+ )
+
+ use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
+ use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
+ use amd64 && myconf+=( $(use_enable qemu-traditional) )
tc-ld-disable-gold # Bug 669570
- econf ${myconf}
+ econf ${myconf[@]}
}
src_compile() {
@@ -401,7 +422,21 @@ src_compile() {
append-flags -fno-strict-overflow
fi
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
+ # bug #845099
+ if use ipxe; then
+ local -x NO_WERROR=1
+ fi
+
+ emake \
+ HOSTCC="$(tc-getBUILD_CC)" \
+ HOSTCXX="$(tc-getBUILD_CXX)" \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ OBJDUMP="$(tc-getOBJDUMP)" \
+ RANLIB="$(tc-getRANLIB)" \
+ build-tools ${myopt}
if use doc; then
emake -C docs build
@@ -475,32 +510,15 @@ src_install() {
keepdir /var/log/xen
if use python; then
- python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/xenstat.py"
- python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/_xenstat.so"
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
fi
python_optimize
+
+ readme.gentoo_create_doc
}
pkg_postinst() {
- elog "Official Xen Guide and the offical wiki page:"
- elog "https://wiki.gentoo.org/wiki/Xen"
- elog "https://wiki.xen.org/wiki/Main_Page"
- elog ""
- elog "Recommended to utilise the xencommons script to config system at boot"
- elog "Add by use of rc-update on completion of the install"
-
- if ! use hvm; then
- echo
- elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
- elog "support enable the hvm use flag."
- elog "An x86 or amd64 system is required to build HVM support."
- fi
-
- if use qemu; then
- elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
- elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
- elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
- elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
- fi
+ readme.gentoo_print_elog
}
diff --git a/app-emulation/xen-tools/xen-tools-4.13.1-r4.ebuild b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild
index db9aab75f88c..e283301b0bd5 100644
--- a/app-emulation/xen-tools/xen-tools-4.13.1-r4.ebuild
+++ b/app-emulation/xen-tools/xen-tools-4.17.4_pre2.ebuild
@@ -1,73 +1,75 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8} )
-PYTHON_REQ_USE='ncurses,xml,threads(+)'
+PYTHON_COMPAT=( python3_{10..11} )
+PYTHON_REQ_USE='ncurses,xml(+),threads(+)'
-inherit bash-completion-r1 flag-o-matic multilib python-single-r1 toolchain-funcs
+inherit bash-completion-r1 flag-o-matic multilib python-single-r1 readme.gentoo-r1 toolchain-funcs
-MY_PV=${PV/_/-}
-
-if [[ $PV == *9999 ]]; then
+if [[ ${PV} == *9999 ]]; then
inherit git-r3
REPO="xen.git"
- EGIT_REPO_URI="git://xenbits.xen.org/${REPO}"
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/${REPO}"
S="${WORKDIR}/${REPO}"
else
KEYWORDS="amd64 ~arm ~arm64 x86"
- UPSTREAM_VER=3
- SECURITY_VER=28
- # xen-tools's gentoo patches tarball
- GENTOO_VER=21
- # xen-tools's gentoo patches version which apply to this specific ebuild
- GENTOO_GPV=0
- # xen-tools ovmf's patches
- OVMF_VER=
-
- SEABIOS_VER="1.12.1"
- EDK2_COMMIT="20d2e5a125e34fc8501026613a71549b2a1a3e54"
- EDK2_OPENSSL_VERSION="1_1_1b"
+
+ SEABIOS_VER="1.16.0"
+ EDK2_COMMIT="b16284e2a0011489f6e16dfcc6af7623c3cbaf0b"
+ EDK2_OPENSSL_VERSION="1_1_1t"
EDK2_SOFTFLOAT_COMMIT="b64af41c3276f97f0e181920400ee056b9c88037"
- IPXE_COMMIT="1dd56dbd11082fb622c2ed21cfaced4f47d798a6"
-
- [[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P/-tools/}-upstream-patches-${UPSTREAM_VER}.tar.xz"
- [[ -n ${SECURITY_VER} ]] && \
- SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-security-patches-${SECURITY_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-security-patches-${SECURITY_VER}.tar.xz"
- [[ -n ${GENTOO_VER} ]] && \
- GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-gentoo-patches-${GENTOO_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${PN/-tools/}-gentoo-patches-${GENTOO_VER}.tar.xz"
- [[ -n ${OVMF_VER} ]] && \
- OVMF_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN/-tools}-ovmf-patches-${OVMF_VER}.tar.xz"
-
- SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/xen-${MY_PV}.tar.gz
- https://github.com/qemu/seabios/archive/rel-${SEABIOS_VER}.tar.gz -> seabios-${SEABIOS_VER}.tar.gz
- ipxe? ( http://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
+ EDK2_BROTLI_COMMIT="f4153a09f87cbb9c826d8fc12c74642bb2d879ea"
+ IPXE_COMMIT="1d1cf74a5e58811822bee4b3da3cff7282fcdfca"
+
+ XEN_GENTOO_PATCHSET_NUM=2
+ XEN_GENTOO_PATCHSET_BASE=4.17.0
+ XEN_PRE_PATCHSET_NUM=1
+ XEN_PRE_VERSION_BASE=4.17.3
+
+ XEN_BASE_PV="${PV}"
+ if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
+ XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
+ fi
+
+ SRC_URI="
+ https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz
+ https://www.seabios.org/downloads/seabios-${SEABIOS_VER}.tar.gz
+ ipxe? ( https://xenbits.xen.org/xen-extfiles/ipxe-git-${IPXE_COMMIT}.tar.gz )
ovmf? ( https://github.com/tianocore/edk2/archive/${EDK2_COMMIT}.tar.gz -> edk2-${EDK2_COMMIT}.tar.gz
https://github.com/openssl/openssl/archive/OpenSSL_${EDK2_OPENSSL_VERSION}.tar.gz
https://github.com/ucb-bar/berkeley-softfloat-3/archive/${EDK2_SOFTFLOAT_COMMIT}.tar.gz -> berkeley-softfloat-${EDK2_SOFTFLOAT_COMMIT}.tar.gz
- ${OVMF_PATCHSET_URI} )
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
+ https://github.com/google/brotli/archive/${EDK2_BROTLI_COMMIT}.tar.gz -> brotli-${EDK2_BROTLI_COMMIT}.tar.gz
+ )
+ "
- S="${WORKDIR}/xen-${MY_PV}"
+ if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
+ XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
+ XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
+ XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
+ fi
+ if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
+ XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+ XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
+ XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
+ fi
fi
DESCRIPTION="Xen tools including QEMU and xl"
-HOMEPAGE="https://www.xenproject.org"
+HOMEPAGE="https://xenproject.org"
DOCS=( README )
+S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
+
LICENSE="GPL-2"
SLOT="0/$(ver_cut 1-2)"
# Inclusion of IUSE ocaml on stabalizing requires maintainer of ocaml to (get off his hands and) make
# >=dev-lang/ocaml-4 stable
# Masked in profiles/eapi-5-files instead
-IUSE="api debug doc flask +hvm +ipxe ocaml ovmf +pam pygrub python +qemu +qemu-traditional +rombios screen sdl static-libs system-ipxe system-qemu system-seabios"
+IUSE="api debug doc +hvm +ipxe lzma ocaml ovmf pygrub python +qemu +qemu-traditional +rombios screen selinux sdl static-libs system-ipxe system-qemu system-seabios systemd zstd"
REQUIRED_USE="
${PYTHON_REQUIRED_USE}
@@ -80,21 +82,39 @@ REQUIRED_USE="
?? ( qemu system-qemu )"
COMMON_DEPEND="
- sys-apps/pciutils
+ lzma? ( app-arch/xz-utils )
+ qemu? (
+ dev-libs/glib:2
+ sys-libs/pam
+ )
+ zstd? ( app-arch/zstd )
+ app-arch/bzip2
+ app-arch/zstd
+ dev-libs/libnl:3
dev-libs/lzo:2
- dev-libs/glib:2
dev-libs/yajl
- dev-libs/libaio
- dev-libs/libgcrypt:0
+ sys-apps/util-linux
+ sys-fs/e2fsprogs
+ sys-libs/ncurses
sys-libs/zlib
${PYTHON_DEPS}
"
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/iproute2[-minimal]
+ net-misc/bridge-utils
+ screen? (
+ app-misc/screen
+ app-admin/logrotate
+ )
+ selinux? ( sec-policy/selinux-xen )"
+
DEPEND="${COMMON_DEPEND}
+ app-misc/pax-utils
>=sys-kernel/linux-headers-4.11
+ x11-libs/pixman
$(python_gen_cond_dep '
- dev-python/lxml[${PYTHON_MULTI_USEDEP}]
- pam? ( dev-python/pypam[${PYTHON_MULTI_USEDEP}] )
+ dev-python/lxml[${PYTHON_USEDEP}]
')
x86? ( sys-devel/dev86
system-ipxe? ( sys-firmware/ipxe[qemu] )
@@ -108,24 +128,29 @@ DEPEND="${COMMON_DEPEND}
)
!amd64? ( >=sys-apps/dtc-1.4.0 )
amd64? ( sys-power/iasl
- system-seabios? ( sys-firmware/seabios )
+ system-seabios? (
+ || (
+ sys-firmware/seabios
+ sys-firmware/seabios-bin
+ )
+ )
system-ipxe? ( sys-firmware/ipxe[qemu] )
rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
- dev-lang/perl
- app-misc/pax-utils
+ arm64? ( sys-power/iasl
+ rombios? ( sys-devel/bin86 sys-devel/dev86 ) )
doc? (
app-text/ghostscript-gpl
- app-text/pandoc
$(python_gen_cond_dep '
- dev-python/markdown[${PYTHON_MULTI_USEDEP}]
+ dev-python/markdown[${PYTHON_USEDEP}]
')
dev-texlive/texlive-latexextra
- media-gfx/transfig
+ >=media-gfx/fig2dev-3.2.9-r1
+ virtual/pandoc
)
hvm? ( x11-base/xorg-proto )
qemu? (
app-arch/snappy:=
- x11-libs/pixman
+ dev-build/meson
sdl? (
media-libs/libsdl[X]
media-libs/libsdl2[X]
@@ -133,26 +158,30 @@ DEPEND="${COMMON_DEPEND}
)
system-qemu? ( app-emulation/qemu[xen] )
ocaml? ( dev-ml/findlib
- >=dev-lang/ocaml-4 )
+ dev-lang/ocaml[ocamlopt] )
python? ( >=dev-lang/swig-4.0.0 )"
-RDEPEND="${COMMON_DEPEND}
- sys-apps/iproute2[-minimal]
- net-misc/bridge-utils
- screen? (
- app-misc/screen
- app-admin/logrotate
- )"
+BDEPEND="dev-lang/perl
+ app-alternatives/yacc
+ sys-devel/gettext"
# hvmloader is used to bootstrap a fully virtualized kernel
# Approved by QA team in bug #144032
QA_WX_LOAD="
usr/libexec/xen/boot/hvmloader
+ usr/libexec/xen/boot/ovmf.bin
+ usr/libexec/xen/boot/xen-shim
usr/share/qemu-xen/qemu/hppa-firmware.img
+ usr/share/qemu-xen/qemu/opensbi-riscv32-generic-fw_dynamic.elf
+ usr/share/qemu-xen/qemu/opensbi-riscv64-generic-fw_dynamic.elf
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/u-boot.e500
"
+QA_EXECSTACK="
+ usr/share/qemu-xen/qemu/hppa-firmware.img
+"
+
QA_PREBUILT="
usr/libexec/xen/bin/elf2dmp
usr/libexec/xen/bin/ivshmem-client
@@ -163,8 +192,14 @@ QA_PREBUILT="
usr/libexec/xen/bin/qemu-keymap
usr/libexec/xen/bin/qemu-nbd
usr/libexec/xen/bin/qemu-pr-helper
+ usr/libexec/xen/bin/qemu-storage-daemon
usr/libexec/xen/bin/qemu-system-i386
usr/libexec/xen/bin/virtfs-proxy-helper
+ usr/libexec/xen/boot/ovmf.bin
+ usr/libexec/xen/boot/xen-shim
+ usr/libexec/xen/libexec/qemu-pr-helper
+ usr/libexec/xen/libexec/virtfs-proxy-helper
+ usr/libexec/xen/libexec/virtiofsd
usr/libexec/xen/libexec/xen-bridge-helper
usr/share/qemu-xen/qemu/s390-ccw.img
usr/share/qemu-xen/qemu/s390-netboot.img
@@ -198,94 +233,55 @@ pkg_setup() {
}
src_prepare() {
- local i
-
- # Upstream's patchset
- if [[ -n ${UPSTREAM_VER} ]]; then
- einfo "Try to apply Xen Upstream patch set"
- eapply "${WORKDIR}"/patches-upstream
- fi
-
- # Security patchset
- if [[ -n ${SECURITY_VER} ]]; then
- einfo "Try to apply Xen Security patch set"
- # apply main xen patches
- # Two parallel systems, both work side by side
- # Over time they may concdense into one. This will suffice for now
- EPATCH_SUFFIX="patch"
- EPATCH_FORCE="yes"
-
- source "${WORKDIR}"/patches-security/${PV}.conf || die
-
- for i in ${XEN_SECURITY_MAIN}; do
- eapply "${WORKDIR}"/patches-security/xen/$i
- done
-
- # apply qemu-xen/upstream patches
- pushd "${S}"/tools/qemu-xen/ > /dev/null
- for i in ${XEN_SECURITY_QEMUU}; do
- eapply "${WORKDIR}"/patches-security/qemuu/$i
- done
- popd > /dev/null
-
- # apply qemu-traditional patches
- pushd "${S}"/tools/qemu-xen-traditional/ > /dev/null
- for i in ${XEN_SECURITY_QEMUT}; do
- eapply "${WORKDIR}"/patches-security/qemut/$i
- done
- popd > /dev/null
- fi
-
# move before Gentoo patch, one patch should apply to seabios, to fix gcc-4.5.x build err
- mv ../seabios-rel-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
+ mv ../seabios-${SEABIOS_VER} tools/firmware/seabios-dir-remote || die
pushd tools/firmware/ > /dev/null
ln -s seabios-dir-remote seabios-dir || die
popd > /dev/null
- # Gentoo's patchset
- if [[ -n ${GENTOO_VER} && -n ${GENTOO_GPV} ]]; then
- einfo "Try to apply Gentoo specific patch set"
- source "${FILESDIR}"/gentoo-patches.conf || die
- _gpv=_gpv_${PN/-/_}_${PV//./}_${GENTOO_GPV}
- for i in ${!_gpv}; do
- eapply "${WORKDIR}"/patches-gentoo/$i
- done
+ if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
+ eapply "${XEN_UPSTREAM_PATCHES_DIR}"
fi
- # Ovmf's patchset
+ if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"
+ fi
+
+ # Rename qemu-bridge-helper to xen-bridge-helper to avoid file
+ # collisions with app-emulation/qemu.
+ sed -i 's/qemu-bridge-helper/xen-bridge-helper/g' \
+ tools/qemu-xen/include/net/net.h \
+ tools/qemu-xen/meson.build \
+ tools/qemu-xen/qemu-bridge-helper.c \
+ tools/qemu-xen/qemu-options.hx \
+ || die
+ mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
+
if use ovmf; then
- if [[ -n ${OVMF_VER} ]];then
- einfo "Try to apply Ovmf patch set"
- pushd "${WORKDIR}"/edk2-*/ > /dev/null
- eapply "${WORKDIR}"/patches-ovmf
- popd > /dev/null
- fi
mv ../edk2-${EDK2_COMMIT} tools/firmware/ovmf-dir-remote || die
rm -r tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
rm -r tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
+ rm -r tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
+ rm -r tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
mv ../openssl-OpenSSL_${EDK2_OPENSSL_VERSION} tools/firmware/ovmf-dir-remote/CryptoPkg/Library/OpensslLib/openssl || die
mv ../berkeley-softfloat-3-${EDK2_SOFTFLOAT_COMMIT} tools/firmware/ovmf-dir-remote/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 || die
+ cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/BaseTools/Source/C/BrotliCompress/brotli || die
+ cp -r ../brotli-${EDK2_BROTLI_COMMIT} tools/firmware/ovmf-dir-remote/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli || die
cp tools/firmware/ovmf-makefile tools/firmware/ovmf-dir-remote/Makefile || die
fi
# ipxe
if use ipxe; then
- cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/_ipxe.tar.gz || die
+ cp "${DISTDIR}/ipxe-git-${IPXE_COMMIT}.tar.gz" tools/firmware/etherboot/ipxe.tar.gz || die
- # gcc 10
- cp "${WORKDIR}/patches-gentoo/xen-tools-4.13.0-ipxe-gcc10.patch" tools/firmware/etherboot/patches/ipxe-gcc10.patch || die
- echo ipxe-gcc10.patch >> tools/firmware/etherboot/patches/series || die
+ # gcc 11
+ cp "${XEN_GENTOO_PATCHES_DIR}/ipxe/${PN}-4.15.0-ipxe-gcc11.patch" tools/firmware/etherboot/patches/ipxe-gcc11.patch || die
+ echo ipxe-gcc11.patch >> tools/firmware/etherboot/patches/series || die
fi
- mv tools/qemu-xen/qemu-bridge-helper.c tools/qemu-xen/xen-bridge-helper.c || die
-
# Fix texi2html build error with new texi2html, qemu.doc.html
sed -i -e "/texi2html -monolithic/s/-number//" tools/qemu-xen-traditional/Makefile || die
- use api || sed -e "/SUBDIRS-\$(LIBXENAPI_BINDINGS) += libxen/d" -i tools/Makefile || die
- sed -e 's:$(MAKE) PYTHON=$(PYTHON) subdirs-$@:LC_ALL=C "$(MAKE)" PYTHON=$(PYTHON) subdirs-$@:' \
- -i tools/firmware/Makefile || die
-
# Drop .config, fixes to gcc-4.6
sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
@@ -328,9 +324,8 @@ src_prepare() {
fi
# Reset bash completion dir; Bug 472438
- sed -e "s:^BASH_COMPLETION_DIR ?= \$(CONFIG_DIR)/bash_completion.d:BASH_COMPLETION_DIR ?= $(get_bashcompdir):" \
- -i Config.mk || die
- sed -i -e "/bash-completion/s/xl\.sh/xl/g" tools/libxl/Makefile || die
+ sed -e "s;^BASH_COMPLETION_DIR :=.*;BASH_COMPLETION_DIR := $(get_bashcompdir);" \
+ -i config/Paths.mk.in || die
# xencommons, Bug #492332, sed lighter weight than patching
sed -e 's:\$QEMU_XEN -xen-domid:test -e "\$QEMU_XEN" \&\& &:' \
@@ -363,33 +358,59 @@ src_prepare() {
sed -e "s:\$\$source/configure:\0 --disable-glusterfs:" \
-i tools/Makefile || die
+ # disable jpeg automagic
+ sed -e "s:\$\$source/configure:\0 --disable-vnc-jpeg:" \
+ -i tools/Makefile || die
+
+ # disable png automagic
+ sed -e "s:\$\$source/configure:\0 --disable-vnc-png:" \
+ -i tools/Makefile || die
+
+ # disable docker (Bug #732970)
+ sed -e "s:\$\$source/configure:\0 --disable-containers:" \
+ -i tools/Makefile || die
+
+ # disable abi-dumper (Bug #791172)
+ sed -e 's/$(ABI_DUMPER) /echo /g' \
+ -i tools/libs/libs.mk || die
+
+ # Remove -Werror
+ find . -type f \( -name Makefile -o -name "*.mk" \) \
+ -exec sed -i \
+ -e 's/-Werror //g' \
+ -e '/^CFLAGS *+= -Werror$/d' \
+ -e 's/, "-Werror"//' \
+ {} + || die
+
default
}
src_configure() {
- local myconf="--prefix=${PREFIX}/usr \
- --libdir=${PREFIX}/usr/$(get_libdir) \
- --libexecdir=${PREFIX}/usr/libexec \
- --localstatedir=${EPREFIX}/var \
- --disable-werror \
- --disable-xen \
- --enable-tools \
- --enable-docs \
- $(use_enable api xenapi) \
- $(use_enable ipxe) \
- $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '') \
- $(use_enable ocaml ocamltools) \
- $(use_enable ovmf) \
- $(use_enable pam) \
- $(use_enable rombios) \
- --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored') \
- "
-
- use system-seabios && myconf+=" --with-system-seabios=/usr/share/seabios/bios.bin"
- use system-qemu && myconf+=" --with-system-qemu=/usr/bin/qemu-system-x86_64"
- use amd64 && myconf+=" $(use_enable qemu-traditional)"
+ local myconf=(
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --libexecdir="${EPREFIX}/usr/libexec"
+ --localstatedir="${EPREFIX}/var"
+ --disable-golang
+ --disable-pvshim
+ --disable-werror
+ --disable-xen
+ --enable-tools
+ --enable-docs
+ $(use_enable api xenapi)
+ $(use_enable ipxe)
+ $(usex system-ipxe '--with-system-ipxe=/usr/share/ipxe' '')
+ $(use_enable ocaml ocamltools)
+ $(use_enable ovmf)
+ $(use_enable rombios)
+ $(use_enable systemd)
+ --with-xenstored=$(usex ocaml 'oxenstored' 'xenstored')
+ )
+
+ use system-seabios && myconf+=( --with-system-seabios=/usr/share/seabios/bios.bin )
+ use system-qemu && myconf+=( --with-system-qemu=/usr/bin/qemu-system-x86_64 )
+ use amd64 && myconf+=( $(use_enable qemu-traditional) )
tc-ld-disable-gold # Bug 669570
- econf ${myconf}
+ econf ${myconf[@]}
}
src_compile() {
@@ -401,7 +422,21 @@ src_compile() {
append-flags -fno-strict-overflow
fi
- emake CC="$(tc-getCC)" LD="$(tc-getLD)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" build-tools ${myopt}
+ # bug #845099
+ if use ipxe; then
+ local -x NO_WERROR=1
+ fi
+
+ emake \
+ HOSTCC="$(tc-getBUILD_CC)" \
+ HOSTCXX="$(tc-getBUILD_CXX)" \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ OBJDUMP="$(tc-getOBJDUMP)" \
+ RANLIB="$(tc-getRANLIB)" \
+ build-tools ${myopt}
if use doc; then
emake -C docs build
@@ -475,32 +510,15 @@ src_install() {
keepdir /var/log/xen
if use python; then
- python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/xenstat.py"
- python_domodule "${S}/tools/xenstat/libxenstat/bindings/swig/python/_xenstat.so"
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/xenstat.py"
+ python_domodule "${S}/tools/libs/stat/bindings/swig/python/_xenstat.so"
fi
python_optimize
+
+ readme.gentoo_create_doc
}
pkg_postinst() {
- elog "Official Xen Guide and the offical wiki page:"
- elog "https://wiki.gentoo.org/wiki/Xen"
- elog "https://wiki.xen.org/wiki/Main_Page"
- elog ""
- elog "Recommended to utilise the xencommons script to config system at boot"
- elog "Add by use of rc-update on completion of the install"
-
- if ! use hvm; then
- echo
- elog "HVM (VT-x and AMD-V) support has been disabled. If you need hvm"
- elog "support enable the hvm use flag."
- elog "An x86 or amd64 system is required to build HVM support."
- fi
-
- if use qemu; then
- elog "The qemu-bridge-helper is renamed to the xen-bridge-helper in the in source"
- elog "build of qemu. This allows for app-emulation/qemu to be emerged concurrently"
- elog "with the qemu capable xen. It is up to the user to distinguish between and utilise"
- elog "the qemu-bridge-helper and the xen-bridge-helper. File bugs of any issues that arise"
- fi
+ readme.gentoo_print_elog
}
diff --git a/app-emulation/xen/Manifest b/app-emulation/xen/Manifest
index 8e18f8dc978d..50042de97f70 100644
--- a/app-emulation/xen/Manifest
+++ b/app-emulation/xen/Manifest
@@ -1,5 +1,4 @@
-DIST xen-4.13.1-upstream-patches-3.tar.xz 87056 BLAKE2B 01d7133b8f7e3c9a42b9771dcb7739777f79f229941114cce70ba2897dd52bf53f08de35602a0b40a120fc155c274dbf91e107856f4afdae2c4f7b4bc0a67cdd SHA512 d67e9ddfbf27dc5a23a77679b1b2524a49c2aec3ff9eb3472f9e075893d87401f8e99707b0652744eb4af7a3ed9a815c3925de49995bcd7c82d97c13a69b5309
-DIST xen-4.13.1-upstream-patches-4.tar.xz 100580 BLAKE2B 1ac4ac5fe7aa7da2b486f2ac5ae60b96cf3c012acac50e8472b88ae273d99e9545f48a896f21eebd5e58427a817e11aa9806d9b45750784fc5382cbadf8162d4 SHA512 54230ea6aa2add038a438d46caae3bba83f2cc8b92021e2c34761015ec08a807331767d432bfa2c7bab864f5b8d0d667c68fc04a089fd35eda9a4f0afd4f6df6
-DIST xen-4.13.1.tar.gz 39024612 BLAKE2B efff138699fac2c14fad2e0dfd4535ebd744577df3dddccc2a589b81a76f24fc81c75e295f4cd33ca2e820929417b22d714504b576cb0737a563037bd56b6a95 SHA512 b56d20704155d98d803496cba83eb928e0f986a750831cd5600fc88d0ae772fe1456571654375054043d2da8daca255cc98385ebf08b1b1a75ecf7f4b7a0ee90
-DIST xen-4.14.0-upstream-patches-2.tar.xz 62512 BLAKE2B 0ab30f542809bc09b45ef88e1a60bedfa9273cd13b4f8a7b770c75432eedd5cfcd9c7f34845ebbc6fe98479aded4ea88e4c71071a88c6c12a898392e5f441312 SHA512 50a1452007cb94abb9a535dfba5e1e0fe627b8c79773221203cc960f067861870d610c04ba6811d987bb40423fc9084c9966bac817bd7484f5789a69598397f0
-DIST xen-4.14.0.tar.gz 39950576 BLAKE2B db4c3e79cfdfb10260d0d14d9d28e8c8bd9bf23f42aee743acf8f560bf4cdb96a425c0df887c70f9755f62680be24bfbe0149e52a4cb843ae83090cd9d6afc71 SHA512 ebce47a2f754955d8517123d69f62006634d97620fbbe3784869a0667466e586a249f57ffaf7846d5bcb45d69377cde43354c82c233fbb5407e55653b9a33ac0
+DIST xen-4.17.3.tar.gz 46505735 BLAKE2B f7a783d951d3e31391aca2b779b9d11440dc28b0756739f7733cd7d2f160de54a018c00dce5d2a6c55a6494c2151a31a64bbeddefbed34eff179463f2e762d93 SHA512 56ead90af00b4c1aa452b5edba980a2873e4c76e8c518220a88089a2771cd76fe2478e15a41abf5d247e4bc5af8415d53614dff7eb028ced80701c1a1263f91f
+DIST xen-4.17.4.tar.gz 46527369 BLAKE2B 2fcd1248d75157b6455727b29ecc3a4e5941eb187d645b35b6cf48a23fdfae11e810c55a1a7c0396c6a23dc977f22b8fd06ee9b91a1edc3a7ba8561023e07cfc SHA512 50dc2efd26e48131afdbc8efb1ca90154a84fe5fba5a6bc81d9801a3c13aebea91c8211872b5c69ce2773644f2c935c31cc56584a05b10b81e8728282d89eb84
+DIST xen-gentoo-patches-4.17.0-gentoo-patchset-2.tar.bz2 4001 BLAKE2B 7afce426759952e202a1dd819fe0a23108072bf9552ba14a0bd787a96ffe5e7a36f37e03dad8db9c46f5731acbc122c258eef6d517816aad9c8db1ca64700d19 SHA512 bcb1479f9ff5e194a4e452da9d0479febc2bcd465b4be69bb8f30e2e6b858fb77a71216dcb3e74dfb65e7ca6513742c294cd6b5eaa5ce82d0b122a00f1cbc450
+DIST xen-upstream-patches-4.17.4-pre-patchset-1.tar.bz2 77410 BLAKE2B 1c00d613f9d12d81a284455d9099c031ba3ea7066508c75ad6f7e13330a09e2eb4e74bf5bc54fed9c4f90e18856cc01ff0e4ab4721d36388519eb40f99be42d8 SHA512 7a56cb0ac9b59043ffbc891819cbe54c9efe411e2e67eebc212a3b519ca60a37a377dd21b0ba851d6828cf268781983b082c6fecee0f0156501b5c447050789a
diff --git a/app-emulation/xen/files/xen-4.11-efi.patch b/app-emulation/xen/files/xen-4.11-efi.patch
deleted file mode 100644
index c7173d91b244..000000000000
--- a/app-emulation/xen/files/xen-4.11-efi.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/xen/Makefile b/xen/Makefile
-index af27147777..a5299b3868 100644
---- a/xen/Makefile
-+++ b/xen/Makefile
-@@ -57,9 +57,15 @@ _install: Z=$(CONFIG_XEN_INSTALL_SUFFIX)
- _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
- [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
- $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_FULLVERSION)$(Z)
-- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
-- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
-- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z)
-+ if [ 'x$(EFI_VENDOR)' == 'x' ]; then \
-+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \
-+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \
-+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \
-+ else \
-+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \
-+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \
-+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \
-+ fi;
- [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
- $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
- $(INSTALL_DATA) $(TARGET)-syms.map $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION).map
-diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
-index ec02972f2b..628c245564 100644
---- a/xen/arch/x86/Makefile
-+++ b/xen/arch/x86/Makefile
-@@ -156,7 +156,7 @@ note.o: $(TARGET)-syms
- --rename-section=.data=.note.gnu.build-id -S $@.bin $@
- rm -f $@.bin
-
--EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
-+EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
- EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug
- EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20
- EFI_LDFLAGS += --major-image-version=$(XEN_VERSION)
diff --git a/app-emulation/xen/files/xen-4.14-efi.patch b/app-emulation/xen/files/xen-4.14-efi.patch
deleted file mode 100644
index 351e17843523..000000000000
--- a/app-emulation/xen/files/xen-4.14-efi.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-diff --git a/xen/Makefile b/xen/Makefile
-index 0ade7f9..46c25d9 100644
---- a/xen/Makefile
-+++ b/xen/Makefile
-@@ -272,9 +272,17 @@ _install: Z=$(CONFIG_XEN_INSTALL_SUFFIX)
- _install: $(TARGET)$(CONFIG_XEN_INSTALL_SUFFIX)
- [ -d $(D)$(BOOT_DIR) ] || $(INSTALL_DIR) $(D)$(BOOT_DIR)
- $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_FULLVERSION)$(Z)
-- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z)
-- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z)
-- ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z)
-+
-+ if [ 'x$(EFI_VENDOR)' == 'x' ]; then \
-+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \
-+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \
-+ ln -f -s $(T)-$(XEN_FULLVERSION)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \
-+ else \
-+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION).$(XEN_SUBVERSION)$(Z); \
-+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)-$(XEN_VERSION)$(Z); \
-+ $(INSTALL_DATA) $(TARGET)$(Z) $(D)$(BOOT_DIR)/$(T)$(Z); \
-+ fi;
-+
- [ -d "$(D)$(DEBUG_DIR)" ] || $(INSTALL_DIR) $(D)$(DEBUG_DIR)
- $(INSTALL_DATA) $(TARGET)-syms $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION)
- $(INSTALL_DATA) $(TARGET)-syms.map $(D)$(DEBUG_DIR)/$(T)-syms-$(XEN_FULLVERSION).map
-diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
-index 07eeefb..6b1c16b 100644
---- a/xen/arch/x86/Makefile
-+++ b/xen/arch/x86/Makefile
-@@ -163,7 +163,7 @@ note.o: $(TARGET)-syms
- --rename-section=.data=.note.gnu.build-id -S $@.bin $@
- rm -f $@.bin
-
--EFI_LDFLAGS = $(patsubst -m%,-mi386pep,$(XEN_LDFLAGS)) --subsystem=10
-+EFI_LDFLAGS = -mi386pep $(patsubst -m%,-mi386pep,$(LDFLAGS)) --subsystem=10
- EFI_LDFLAGS += --image-base=$(1) --stack=0,0 --heap=0,0 --strip-debug
- EFI_LDFLAGS += --section-alignment=0x200000 --file-alignment=0x20
- EFI_LDFLAGS += --major-image-version=$(XEN_VERSION)
diff --git a/app-emulation/xen/metadata.xml b/app-emulation/xen/metadata.xml
index 574d6261f8e3..bad2422fe3f9 100644
--- a/app-emulation/xen/metadata.xml
+++ b/app-emulation/xen/metadata.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
- <maintainer type="person">
+ <maintainer type="person" proxied="yes">
<email>hydrapolic@gmail.com</email>
<name>Tomáš Mózes</name>
</maintainer>
- <maintainer type="project">
+ <maintainer type="project" proxied="proxy">
<email>proxy-maint@gentoo.org</email>
<name>Proxy Maintainers</name>
</maintainer>
@@ -14,7 +14,8 @@
<name>Gentoo Xen Project</name>
</maintainer>
<use>
+ <flag name="boot-symlinks">Symlink xen.gz variants in /boot, disable on fat filesystems</flag>
<flag name="flask">Enable the Flask XSM module from NSA</flag>
- <flag name="efi">Adds efi boot support, requires LDFLAG -melf_x86_64 for amd64</flag>
+ <flag name="uefi">Adds UEFI boot support, requires LDFLAG -melf_x86_64 for amd64</flag>
</use>
</pkgmetadata>
diff --git a/app-emulation/xen/xen-4.13.1-r4.ebuild b/app-emulation/xen/xen-4.13.1-r4.ebuild
deleted file mode 100644
index 5e92a5f18903..000000000000
--- a/app-emulation/xen/xen-4.13.1-r4.ebuild
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs
-
-MY_PV=${PV/_/-}
-MY_P=${PN}-${MY_PV}
-
-if [[ $PV == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
- SRC_URI=""
-else
- KEYWORDS="amd64 ~arm -x86"
- UPSTREAM_VER=3
- SECURITY_VER=
- GENTOO_VER=
-
- [[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
- [[ -n ${SECURITY_VER} ]] && \
- SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
- [[ -n ${GENTOO_VER} ]] && \
- GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
- SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
-fi
-
-DESCRIPTION="The Xen virtual machine monitor"
-HOMEPAGE="https://www.xenproject.org"
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="debug efi flask"
-
-DEPEND="${PYTHON_DEPS}
- efi? ( >=sys-devel/binutils-2.22[multitarget] )
- !efi? ( >=sys-devel/binutils-2.22 )"
-RDEPEND=""
-PDEPEND="~app-emulation/xen-tools-${PV}"
-
-# no tests are available for the hypervisor
-# prevent the silliness of /usr/lib/debug/usr/lib/debug files
-# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
-RESTRICT="test splitdebug strip"
-
-# Approved by QA team in bug #144032
-QA_WX_LOAD="boot/xen-syms-${PV}"
-
-REQUIRED_USE="arm? ( debug )"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
- python-any-r1_pkg_setup
- if [[ -z ${XEN_TARGET_ARCH} ]]; then
- if use amd64; then
- export XEN_TARGET_ARCH="x86_64"
- elif use arm; then
- export XEN_TARGET_ARCH="arm32"
- elif use arm64; then
- export XEN_TARGET_ARCH="arm64"
- else
- die "Unsupported architecture!"
- fi
- fi
-
- if use flask ; then
- export "XSM_ENABLE=y"
- export "FLASK_ENABLE=y"
- fi
-}
-
-src_prepare() {
- # Upstream's patchset
- [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream
-
- # Security patchset
- if [[ -n ${SECURITY_VER} ]]; then
- einfo "Try to apply Xen Security patch set"
- # apply main xen patches
- # Two parallel systems, both work side by side
- # Over time they may concdense into one. This will suffice for now
- source "${WORKDIR}"/patches-security/${PV}.conf
-
- local i
- for i in ${XEN_SECURITY_MAIN}; do
- eapply "${WORKDIR}"/patches-security/xen/$i
- done
- fi
-
- # Gentoo's patchset
- [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo
-
- eapply "${FILESDIR}"/${PN}-4.11-efi.patch
-
- # Drop .config
- sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
-
- if use efi; then
- export EFI_VENDOR="gentoo"
- export EFI_MOUNTPOINT="/boot"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- # remove flags
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
-
- tc-ld-disable-gold # Bug 700374
-}
-
-src_compile() {
- # Send raw LDFLAGS so that --as-needed works
- emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
-}
-
-src_install() {
- local myopt
- use debug && myopt="${myopt} debug=y"
-
- # The 'make install' doesn't 'mkdir -p' the subdirs
- if use efi; then
- mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
- fi
-
- emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
-
- # make install likes to throw in some extra EFI bits if it built
- use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
-}
-
-pkg_postinst() {
- elog "Official Xen Guide:"
- elog " https://wiki.gentoo.org/wiki/Xen"
-
- use efi && einfo "The efi executable is installed in /boot/efi/gentoo"
-
- elog "You can optionally block the installation of /boot/xen-syms by an entry"
- elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
- elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
-
- ewarn
- ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause"
- ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems"
- ewarn "to work fine."
- ewarn
- ewarn "Add sched=credit to xen command line options to use the legacy scheduler."
- ewarn
- ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B"
-}
diff --git a/app-emulation/xen/xen-4.13.1-r5.ebuild b/app-emulation/xen/xen-4.13.1-r5.ebuild
deleted file mode 100644
index 7638cb7bc0bf..000000000000
--- a/app-emulation/xen/xen-4.13.1-r5.ebuild
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs
-
-MY_PV=${PV/_/-}
-MY_P=${PN}-${MY_PV}
-
-if [[ $PV == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
- SRC_URI=""
-else
- KEYWORDS="~amd64 ~arm -x86"
- UPSTREAM_VER=4
- SECURITY_VER=
- GENTOO_VER=
-
- [[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
- [[ -n ${SECURITY_VER} ]] && \
- SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
- [[ -n ${GENTOO_VER} ]] && \
- GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
- SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
-fi
-
-DESCRIPTION="The Xen virtual machine monitor"
-HOMEPAGE="https://www.xenproject.org"
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="debug efi flask"
-
-DEPEND="${PYTHON_DEPS}
- efi? ( >=sys-devel/binutils-2.22[multitarget] )
- !efi? ( >=sys-devel/binutils-2.22 )"
-RDEPEND=""
-PDEPEND="~app-emulation/xen-tools-${PV}"
-
-# no tests are available for the hypervisor
-# prevent the silliness of /usr/lib/debug/usr/lib/debug files
-# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
-RESTRICT="test splitdebug strip"
-
-# Approved by QA team in bug #144032
-QA_WX_LOAD="boot/xen-syms-${PV}"
-
-REQUIRED_USE="arm? ( debug )"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
- python-any-r1_pkg_setup
- if [[ -z ${XEN_TARGET_ARCH} ]]; then
- if use amd64; then
- export XEN_TARGET_ARCH="x86_64"
- elif use arm; then
- export XEN_TARGET_ARCH="arm32"
- elif use arm64; then
- export XEN_TARGET_ARCH="arm64"
- else
- die "Unsupported architecture!"
- fi
- fi
-
- if use flask ; then
- export "XSM_ENABLE=y"
- export "FLASK_ENABLE=y"
- fi
-}
-
-src_prepare() {
- # Upstream's patchset
- [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream
-
- # Security patchset
- if [[ -n ${SECURITY_VER} ]]; then
- einfo "Try to apply Xen Security patch set"
- # apply main xen patches
- # Two parallel systems, both work side by side
- # Over time they may concdense into one. This will suffice for now
- source "${WORKDIR}"/patches-security/${PV}.conf
-
- local i
- for i in ${XEN_SECURITY_MAIN}; do
- eapply "${WORKDIR}"/patches-security/xen/$i
- done
- fi
-
- # Gentoo's patchset
- [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo
-
- eapply "${FILESDIR}"/${PN}-4.11-efi.patch
-
- # Drop .config
- sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
-
- if use efi; then
- export EFI_VENDOR="gentoo"
- export EFI_MOUNTPOINT="/boot"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- # remove flags
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
-
- tc-ld-disable-gold # Bug 700374
-}
-
-src_compile() {
- # Send raw LDFLAGS so that --as-needed works
- emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
-}
-
-src_install() {
- local myopt
- use debug && myopt="${myopt} debug=y"
-
- # The 'make install' doesn't 'mkdir -p' the subdirs
- if use efi; then
- mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
- fi
-
- emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
-
- # make install likes to throw in some extra EFI bits if it built
- use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
-}
-
-pkg_postinst() {
- elog "Official Xen Guide:"
- elog " https://wiki.gentoo.org/wiki/Xen"
-
- use efi && einfo "The efi executable is installed in /boot/efi/gentoo"
-
- elog "You can optionally block the installation of /boot/xen-syms by an entry"
- elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
- elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
-
- ewarn
- ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause"
- ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems"
- ewarn "to work fine."
- ewarn
- ewarn "Add sched=credit to xen command line options to use the legacy scheduler."
- ewarn
- ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B"
-}
diff --git a/app-emulation/xen/xen-4.14.0-r3.ebuild b/app-emulation/xen/xen-4.14.0-r3.ebuild
deleted file mode 100644
index b8aba255f187..000000000000
--- a/app-emulation/xen/xen-4.14.0-r3.ebuild
+++ /dev/null
@@ -1,165 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6..9} )
-
-inherit flag-o-matic mount-boot multilib python-any-r1 toolchain-funcs
-
-MY_PV=${PV/_/-}
-MY_P=${PN}-${MY_PV}
-
-if [[ $PV == *9999 ]]; then
- inherit git-r3
- EGIT_REPO_URI="git://xenbits.xen.org/xen.git"
- SRC_URI=""
-else
- KEYWORDS="~amd64 ~arm -x86"
- UPSTREAM_VER=2
- SECURITY_VER=
- GENTOO_VER=
-
- [[ -n ${UPSTREAM_VER} ]] && \
- UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz
- https://github.com/hydrapolic/gentoo-dist/raw/master/xen/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
- [[ -n ${SECURITY_VER} ]] && \
- SECURITY_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-security-patches-${SECURITY_VER}.tar.xz"
- [[ -n ${GENTOO_VER} ]] && \
- GENTOO_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${PN}-gentoo-patches-${GENTOO_VER}.tar.xz"
- SRC_URI="https://downloads.xenproject.org/release/xen/${MY_PV}/${MY_P}.tar.gz
- ${UPSTREAM_PATCHSET_URI}
- ${SECURITY_PATCHSET_URI}
- ${GENTOO_PATCHSET_URI}"
-fi
-
-DESCRIPTION="The Xen virtual machine monitor"
-HOMEPAGE="https://www.xenproject.org"
-LICENSE="GPL-2"
-SLOT="0"
-IUSE="debug efi flask"
-
-DEPEND="${PYTHON_DEPS}
- efi? ( >=sys-devel/binutils-2.22[multitarget] )
- !efi? ( >=sys-devel/binutils-2.22 )"
-RDEPEND=""
-PDEPEND="~app-emulation/xen-tools-${PV}"
-
-# no tests are available for the hypervisor
-# prevent the silliness of /usr/lib/debug/usr/lib/debug files
-# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
-RESTRICT="test splitdebug strip"
-
-# Approved by QA team in bug #144032
-QA_WX_LOAD="boot/xen-syms-${PV}"
-
-REQUIRED_USE="arm? ( debug )"
-
-S="${WORKDIR}/${MY_P}"
-
-pkg_setup() {
- python-any-r1_pkg_setup
- if [[ -z ${XEN_TARGET_ARCH} ]]; then
- if use amd64; then
- export XEN_TARGET_ARCH="x86_64"
- elif use arm; then
- export XEN_TARGET_ARCH="arm32"
- elif use arm64; then
- export XEN_TARGET_ARCH="arm64"
- else
- die "Unsupported architecture!"
- fi
- fi
-
- if use flask ; then
- export "XSM_ENABLE=y"
- export "FLASK_ENABLE=y"
- fi
-}
-
-src_prepare() {
- # Upstream's patchset
- [[ -n ${UPSTREAM_VER} ]] && eapply "${WORKDIR}"/patches-upstream
-
- # Security patchset
- if [[ -n ${SECURITY_VER} ]]; then
- einfo "Try to apply Xen Security patch set"
- # apply main xen patches
- # Two parallel systems, both work side by side
- # Over time they may concdense into one. This will suffice for now
- source "${WORKDIR}"/patches-security/${PV}.conf
-
- local i
- for i in ${XEN_SECURITY_MAIN}; do
- eapply "${WORKDIR}"/patches-security/xen/$i
- done
- fi
-
- # Gentoo's patchset
- [[ -n ${GENTOO_VER} ]] && eapply "${WORKDIR}"/patches-gentoo
-
- eapply "${FILESDIR}"/${PN}-4.14-efi.patch
-
- # Drop .config
- sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
-
- if use efi; then
- export EFI_VENDOR="gentoo"
- export EFI_MOUNTPOINT="/boot"
- fi
-
- default
-}
-
-src_configure() {
- use arm && myopt="${myopt} CONFIG_EARLY_PRINTK=sun7i"
-
- use debug && myopt="${myopt} debug=y"
-
- # remove flags
- unset CFLAGS
- unset LDFLAGS
- unset ASFLAGS
-
- tc-ld-disable-gold # Bug 700374
-}
-
-src_compile() {
- # Send raw LDFLAGS so that --as-needed works
- emake V=1 CC="$(tc-getCC)" LDFLAGS="$(raw-ldflags)" LD="$(tc-getLD)" -C xen ${myopt}
-}
-
-src_install() {
- local myopt
- use debug && myopt="${myopt} debug=y"
-
- # The 'make install' doesn't 'mkdir -p' the subdirs
- if use efi; then
- mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
- fi
-
- emake LDFLAGS="$(raw-ldflags)" DESTDIR="${D}" -C xen ${myopt} install
-
- # make install likes to throw in some extra EFI bits if it built
- use efi || rm -rf "${D}/usr/$(get_libdir)/efi"
-}
-
-pkg_postinst() {
- elog "Official Xen Guide:"
- elog " https://wiki.gentoo.org/wiki/Xen"
-
- use efi && einfo "The efi executable is installed in /boot/efi/gentoo"
-
- elog "You can optionally block the installation of /boot/xen-syms by an entry"
- elog "in folder /etc/portage/env using the portage's feature INSTALL_MASK"
- elog "e.g. echo ${msg} > /etc/portage/env/xen.conf"
-
- ewarn
- ewarn "Xen 4.12+ changed the default scheduler to credit2 which can cause"
- ewarn "domU lockups on multi-cpu systems. The legacy credit scheduler seems"
- ewarn "to work fine."
- ewarn
- ewarn "Add sched=credit to xen command line options to use the legacy scheduler."
- ewarn
- ewarn "https://wiki.gentoo.org/wiki/Xen#Xen_domU_hanging_with_Xen_4.12.2B"
-}
diff --git a/app-emulation/xen/xen-4.17.4.ebuild b/app-emulation/xen/xen-4.17.4.ebuild
new file mode 100644
index 000000000000..7b2ca8a62fef
--- /dev/null
+++ b/app-emulation/xen/xen-4.17.4.ebuild
@@ -0,0 +1,179 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit flag-o-matic mount-boot python-any-r1 secureboot toolchain-funcs
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/xen.git"
+ SRC_URI=""
+else
+ KEYWORDS="amd64 ~arm -x86"
+
+ XEN_GENTOO_PATCHSET_NUM=2
+ XEN_GENTOO_PATCHSET_BASE=4.17.0
+ XEN_PRE_PATCHSET_NUM=
+ XEN_PRE_VERSION_BASE=
+
+ XEN_BASE_PV="${PV}"
+ if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
+ XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
+ fi
+
+ SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
+
+ if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
+ XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
+ XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
+ XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
+ fi
+ if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
+ XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+ XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
+ XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
+ fi
+fi
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="https://xenproject.org"
+
+S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+boot-symlinks debug uefi flask"
+REQUIRED_USE="arm? ( debug )"
+
+DEPEND="${PYTHON_DEPS}
+ uefi? ( >=sys-devel/binutils-2.22[multitarget] )
+ !uefi? ( >=sys-devel/binutils-2.22 )
+ flask? ( sys-apps/checkpolicy )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+# no tests are available for the hypervisor
+# prevent the silliness of /usr/lib/debug/usr/lib/debug files
+# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
+RESTRICT="test splitdebug strip"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+ if [[ -z ${XEN_TARGET_ARCH} ]]; then
+ if use amd64; then
+ export XEN_TARGET_ARCH="x86_64"
+ elif use arm; then
+ export XEN_TARGET_ARCH="arm32"
+ elif use arm64; then
+ export XEN_TARGET_ARCH="arm64"
+ else
+ die "Unsupported architecture!"
+ fi
+ fi
+ use uefi && secureboot_pkg_setup
+}
+
+src_prepare() {
+ if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
+ eapply "${XEN_UPSTREAM_PATCHES_DIR}"
+ fi
+
+ if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"
+ fi
+
+ # Symlinks do not work on fat32 volumes # 829765
+ if ! use boot-symlinks || use uefi; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
+ fi
+
+ # Workaround new gcc-11 options
+ sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
+
+ # Drop .config
+ sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
+
+ if use uefi; then
+ export EFI_VENDOR="gentoo"
+ export EFI_MOUNTPOINT="/boot"
+ fi
+
+ default
+}
+
+xen_make() {
+ # Setting clang to either 'y' or 'n' tells Xen's build system
+ # whether or not clang is used.
+ local clang=n
+ if tc-is-clang; then
+ clang=y
+ fi
+
+ # Send raw LDFLAGS so that --as-needed works
+ emake \
+ V=1 \
+ LDFLAGS="$(raw-ldflags)" \
+ HOSTCC="$(tc-getBUILD_CC)" \
+ HOSTCXX="$(tc-getBUILD_CXX)" \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ OBJDUMP="$(tc-getOBJDUMP)" \
+ RANLIB="$(tc-getRANLIB)" \
+ clang="${clang}" \
+ "$@"
+}
+
+src_configure() {
+ cd xen || die
+
+ touch gentoo-config || die
+ if use arm; then
+ echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
+ fi
+ if use debug; then
+ cat <<-EOF >> gentoo-config || die
+ CONFIG_DEBUG=y
+ CONFIG_CRASH_DEBUG=y
+EOF
+ fi
+ if use flask; then
+ echo "CONFIG_XSM=y" >> gentoo-config || die
+ fi
+
+ # remove flags
+ unset CFLAGS
+
+ tc-ld-disable-gold # Bug 700374
+
+ xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
+}
+
+src_compile() {
+ xen_make -C xen
+}
+
+src_install() {
+ # The 'make install' doesn't 'mkdir -p' the subdirs
+ if use uefi; then
+ mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+ fi
+
+ xen_make DESTDIR="${D}" -C xen install
+
+ if use uefi; then
+ secureboot_auto_sign --in-place
+ else
+ # make install likes to throw in some extra EFI bits if it built
+ rm -rf "${D}/usr/$(get_libdir)/efi"
+ fi
+}
diff --git a/app-emulation/xen/xen-4.17.4_pre2.ebuild b/app-emulation/xen/xen-4.17.4_pre2.ebuild
new file mode 100644
index 000000000000..ea958743d3db
--- /dev/null
+++ b/app-emulation/xen/xen-4.17.4_pre2.ebuild
@@ -0,0 +1,179 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit flag-o-matic mount-boot python-any-r1 secureboot toolchain-funcs
+
+if [[ ${PV} == *9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://xenbits.xen.org/git-http/xen.git"
+ SRC_URI=""
+else
+ KEYWORDS="amd64 ~arm -x86"
+
+ XEN_GENTOO_PATCHSET_NUM=2
+ XEN_GENTOO_PATCHSET_BASE=4.17.0
+ XEN_PRE_PATCHSET_NUM=1
+ XEN_PRE_VERSION_BASE=4.17.3
+
+ XEN_BASE_PV="${PV}"
+ if [[ -n "${XEN_PRE_VERSION_BASE}" ]]; then
+ XEN_BASE_PV="${XEN_PRE_VERSION_BASE}"
+ fi
+
+ SRC_URI="https://downloads.xenproject.org/release/xen/${XEN_BASE_PV}/xen-${XEN_BASE_PV}.tar.gz"
+
+ if [[ -n "${XEN_PRE_PATCHSET_NUM}" ]]; then
+ XEN_UPSTREAM_PATCHES_TAG="$(ver_cut 1-3)-pre-patchset-${XEN_PRE_PATCHSET_NUM}"
+ XEN_UPSTREAM_PATCHES_NAME="xen-upstream-patches-${XEN_UPSTREAM_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-upstream-patches.git/snapshot/${XEN_UPSTREAM_PATCHES_NAME}.tar.bz2"
+ XEN_UPSTREAM_PATCHES_DIR="${WORKDIR}/${XEN_UPSTREAM_PATCHES_NAME}"
+ fi
+ if [[ -n "${XEN_GENTOO_PATCHSET_NUM}" ]]; then
+ XEN_GENTOO_PATCHES_TAG="$(ver_cut 1-3 ${XEN_GENTOO_PATCHSET_BASE})-gentoo-patchset-${XEN_GENTOO_PATCHSET_NUM}"
+ XEN_GENTOO_PATCHES_NAME="xen-gentoo-patches-${XEN_GENTOO_PATCHES_TAG}"
+ SRC_URI+=" https://gitweb.gentoo.org/proj/xen-gentoo-patches.git/snapshot/${XEN_GENTOO_PATCHES_NAME}.tar.bz2"
+ XEN_GENTOO_PATCHES_DIR="${WORKDIR}/${XEN_GENTOO_PATCHES_NAME}"
+ fi
+fi
+
+DESCRIPTION="The Xen virtual machine monitor"
+HOMEPAGE="https://xenproject.org"
+
+S="${WORKDIR}/xen-$(ver_cut 1-3 ${XEN_BASE_PV})"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+boot-symlinks debug uefi flask"
+REQUIRED_USE="arm? ( debug )"
+
+DEPEND="${PYTHON_DEPS}
+ uefi? ( >=sys-devel/binutils-2.22[multitarget] )
+ !uefi? ( >=sys-devel/binutils-2.22 )
+ flask? ( sys-apps/checkpolicy )"
+RDEPEND=""
+PDEPEND="~app-emulation/xen-tools-${PV}"
+
+# no tests are available for the hypervisor
+# prevent the silliness of /usr/lib/debug/usr/lib/debug files
+# prevent stripping of the debug info from the /usr/lib/debug/xen-syms
+RESTRICT="test splitdebug strip"
+
+# Approved by QA team in bug #144032
+QA_WX_LOAD="boot/xen-syms-${PV}"
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+ if [[ -z ${XEN_TARGET_ARCH} ]]; then
+ if use amd64; then
+ export XEN_TARGET_ARCH="x86_64"
+ elif use arm; then
+ export XEN_TARGET_ARCH="arm32"
+ elif use arm64; then
+ export XEN_TARGET_ARCH="arm64"
+ else
+ die "Unsupported architecture!"
+ fi
+ fi
+ use uefi && secureboot_pkg_setup
+}
+
+src_prepare() {
+ if [[ -v XEN_UPSTREAM_PATCHES_DIR ]]; then
+ eapply "${XEN_UPSTREAM_PATCHES_DIR}"
+ fi
+
+ if [[ -v XEN_GENTOO_PATCHES_DIR ]]; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"
+ fi
+
+ # Symlinks do not work on fat32 volumes # 829765
+ if ! use boot-symlinks || use uefi; then
+ eapply "${XEN_GENTOO_PATCHES_DIR}"/no-boot-symlinks/${PN}-4.16-no-symlinks.patch
+ fi
+
+ # Workaround new gcc-11 options
+ sed -e '/^CFLAGS/s/-Werror//g' -i xen/Makefile || die
+
+ # Drop .config
+ sed -e '/-include $(XEN_ROOT)\/.config/d' -i Config.mk || die "Couldn't drop"
+
+ if use uefi; then
+ export EFI_VENDOR="gentoo"
+ export EFI_MOUNTPOINT="/boot"
+ fi
+
+ default
+}
+
+xen_make() {
+ # Setting clang to either 'y' or 'n' tells Xen's build system
+ # whether or not clang is used.
+ local clang=n
+ if tc-is-clang; then
+ clang=y
+ fi
+
+ # Send raw LDFLAGS so that --as-needed works
+ emake \
+ V=1 \
+ LDFLAGS="$(raw-ldflags)" \
+ HOSTCC="$(tc-getBUILD_CC)" \
+ HOSTCXX="$(tc-getBUILD_CXX)" \
+ CC="$(tc-getCC)" \
+ CXX="$(tc-getCXX)" \
+ LD="$(tc-getLD)" \
+ AR="$(tc-getAR)" \
+ OBJDUMP="$(tc-getOBJDUMP)" \
+ RANLIB="$(tc-getRANLIB)" \
+ clang="${clang}" \
+ "$@"
+}
+
+src_configure() {
+ cd xen || die
+
+ touch gentoo-config || die
+ if use arm; then
+ echo "CONFIG_EARLY_PRINTK=sun7i" >> gentoo-config || die
+ fi
+ if use debug; then
+ cat <<-EOF >> gentoo-config || die
+ CONFIG_DEBUG=y
+ CONFIG_CRASH_DEBUG=y
+EOF
+ fi
+ if use flask; then
+ echo "CONFIG_XSM=y" >> gentoo-config || die
+ fi
+
+ # remove flags
+ unset CFLAGS
+
+ tc-ld-disable-gold # Bug 700374
+
+ xen_make KCONFIG_ALLCONFIG=gentoo-config alldefconfig
+}
+
+src_compile() {
+ xen_make -C xen
+}
+
+src_install() {
+ # The 'make install' doesn't 'mkdir -p' the subdirs
+ if use uefi; then
+ mkdir -p "${D}"${EFI_MOUNTPOINT}/efi/${EFI_VENDOR} || die
+ fi
+
+ xen_make DESTDIR="${D}" -C xen install
+
+ if use uefi; then
+ secureboot_auto_sign --in-place
+ else
+ # make install likes to throw in some extra EFI bits if it built
+ rm -rf "${D}/usr/$(get_libdir)/efi"
+ fi
+}
diff --git a/app-emulation/xtrs/files/xtrs-4.9d-implicit.patch b/app-emulation/xtrs/files/xtrs-4.9d-implicit.patch
new file mode 100644
index 000000000000..959c3fb375a7
--- /dev/null
+++ b/app-emulation/xtrs/files/xtrs-4.9d-implicit.patch
@@ -0,0 +1,35 @@
+https://bugs.gentoo.org/875674
+
+--- xtrs-4.9d/trs_disk.c
++++ xtrs-4.9d/trs_disk.c
+@@ -3137,7 +3137,7 @@
+ }
+
+ void
+-real_restore(curdrive)
++real_restore(int curdrive)
+ {
+ #if __linux
+ DiskState *d = &disk[curdrive];
+--- xtrs-4.9d/trs_memory.c
++++ xtrs-4.9d/trs_memory.c
+@@ -153,7 +153,7 @@
+ memory_map = which + (trs_model << 4) + (romin << 2);
+ }
+
+-void mem_romin(state)
++void mem_romin(int state)
+ {
+ romin = (state & 1);
+ memory_map = (memory_map & ~4) + (romin << 2);
+--- xtrs-4.9d/trs_printer.c
++++ xtrs-4.9d/trs_printer.c
+@@ -18,7 +18,7 @@
+ #include "z80.h"
+ #include "trs.h"
+
+-void trs_printer_write(value)
++void trs_printer_write(int value)
+ {
+ if(value == 0x0D)
+ {
diff --git a/app-emulation/xtrs/metadata.xml b/app-emulation/xtrs/metadata.xml
index c7db543a8141..21164efb7794 100644
--- a/app-emulation/xtrs/metadata.xml
+++ b/app-emulation/xtrs/metadata.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>ulm@gentoo.org</email>
diff --git a/app-emulation/xtrs/xtrs-4.9d-r5.ebuild b/app-emulation/xtrs/xtrs-4.9d-r6.ebuild
index 4785a873f452..0ed2d6293064 100644
--- a/app-emulation/xtrs/xtrs-4.9d-r5.ebuild
+++ b/app-emulation/xtrs/xtrs-4.9d-r6.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=8
inherit flag-o-matic toolchain-funcs readme.gentoo-r1
@@ -25,7 +25,10 @@ RDEPEND="sys-libs/ncurses:0=
DEPEND="${RDEPEND}
ls-dos? ( app-arch/unzip dev-util/xdelta:3 )"
-PATCHES=("${FILESDIR}"/${P}-lcmod.patch)
+PATCHES=(
+ "${FILESDIR}"/${P}-lcmod.patch
+ "${FILESDIR}"/${P}-implicit.patch
+)
src_prepare() {
default
@@ -62,10 +65,10 @@ src_install() {
dodoc ChangeLog README xtrsrom4p.README cpmutil.html dskspec.html
- DOC_CONTENTS="For copyright reasons, xtrs does not include actual ROM
- images. Because of this, unless you supply your own ROM, xtrs will
- not function in any mode except 'Model 4p' mode (a minimal free ROM
- is included for this), which can be run like this:
+ local DOC_CONTENTS="For copyright reasons, xtrs does not include actual
+ ROM images. Because of this, unless you supply your own ROM, xtrs
+ will not function in any mode except 'Model 4p' mode (a minimal
+ free ROM is included for this), which can be run like this:
\n\nxtrs -model 4p -diskdir /usr/share/xtrs
\n\nIf you already own a copy of the ROM software (e.g., if you have
a TRS-80 with this ROM), then you can make yourself a copy of this